xorg.conf перезаписан при загрузке (отключен gpu-manager)

TL; DR

Единственный способ предотвратить создание пользователем псевдонимов - предоставить им оболочку, которая не поддерживает псевдонимы. Это, как правило, проблема X / Y, где X действительно представляет собой модель угрозы, которая должна быть решена с помощью соответствующих элементов управления или архитектуры, а не для решения проблемы post-facto после того, как пользователю предоставлена ​​оболочка в общей системе. [!d1 ]

Ниже, я предоставляю технически правильный ответ, а также некоторые рекомендации о том, какие проблемы это будет и не решит.

Использование ограниченной оболочки Bash

Вы можете использовать ограниченную оболочку Bash, назначив rbash в качестве оболочки входа пользователя. Например:

foo:x:2001:2001:restricted user:/home/foo:/bin/rbash

Затем вы должны отключить встроенный пользователь post-facto для пользователя, желательно, не нарушая оболочку всех остальных. В качестве примера вы можете добавить следующее в файл, например /etc/profile.d/rbash.sh:

# Limit effect to users in a specific UID range.
if ((UID >= 2000)) && ((UID < 3000)); then
    # Check shell options; disable alias builtins when shell is restricted.
    if [[ $- =~ r ]]; then
        enable -n alias
        enable -n unalias
    fi
fi

Предостережения

Если вы не разместили пользователя в chroot тюрьму или предоставил им модифицированный файл /etc/profile.d/rbash.sh , который не включает доступ к другим оболочкам, нет ничего, что помешало бы пользователю просто ввести bash в приглашение и получение неограниченной оболочки.

Кроме того, по дизайну ограниченная оболочка предотвращает многие общие действия, такие как смена каталогов:

$ cd /tmp
rbash: cd: restricted

, но не препятствует другим скриптам или программам в PATH от этого. Это означает, что вы должны тщательно обрабатывать среду пользователя и, в частности, чтобы вы не могли изменять PATH в своих файлах запуска, потому что, хотя rbash делает PATH только для чтения, он делает это после инициализации.

Лучший выбор

Даже если вы используете rbash, вам нужно сделать это как часть более широкого набора элементов управления. Некоторые примеры могут включать в себя:

Предотвращение случайного вызова нетехнических пользователей опасными командами путем предоставления псевдонимов по умолчанию, таких как rm -i, mv -i и cp -i в файле /etc/bash.bashrc. Учитывая ваш оригинальный пример, это, вероятно, самое разумное решение. Вы можете комбинировать это с enable -n alias, если хотите. Это не помешает знакомым пользователям изменять псевдонимы, но этого может быть достаточно, чтобы нетехнические пользователи не делали то, что вас беспокоит. Традиционные разрешения Unix или ACL для POSIX для защиты файлов и каталогов. Логины, которые выполняют одну неинтерактивную команду. Например:
foo:x:2001:2001:run foo.sh:/home/foo:/usr/local/bin/foo.sh
Использовать принудительные команды SSH для каждой клавиши. Например:
# ~foo/.ssh/authorized_keys
command="/usr/local/bin/foo.sh" [remainder of line]
Используйте опцию OpenSSH ForceCommand с условным блоком Match. Используйте специальные инструменты, такие как гитолит или scponly, предназначенные для вашего конкретного случая использования. Используйте chroot тюрьму. Используйте виртуализацию, такую ​​как Xen, OpenVZ, LXC, VMware, VirtualBox или другие технологии для обеспечения изолированной среды.

После того как вы точно определили свою модель угрозы, вы можете определить наиболее подходящие элементы управления для вашего варианта использования. Без более значимого понимания PATH вы хотите предотвратить наложение псевдонимов (например, какую проблему в реальной жизни он разрешает?) Вы не можете выбрать наиболее подходящие элементы управления.

0
задан 13 August 2017 в 14:34

2 ответа

, если вы хотите предотвратить файл, вы можете использовать следующие методы: 1. выполнить сценарий в /etc/init.d 2. изменить разрешение для файла. Многие файловые системы не могут быть изменены и будут перезаписаны после reboot.i рекомендую вам написать скрипт bash в /etc/init.d, как для него сбросить разрешение или записать файл всякий раз.

-2
ответ дан 18 July 2018 в 08:35

, если вы хотите предотвратить файл, вы можете использовать следующие методы: 1. выполнить сценарий в /etc/init.d 2. изменить разрешение для файла. Многие файловые системы не могут быть изменены и будут перезаписаны после reboot.i рекомендую вам написать скрипт bash в /etc/init.d, как для него сбросить разрешение или записать файл всякий раз.

-2
ответ дан 24 July 2018 в 19:07

Другие вопросы по тегам:

Похожие вопросы: