Для некоторых пользователей «bob» в Linux возможно ограничить исполняемый файл «bob» только определенными путями.

В качестве примера предположим, что у 'bob' есть домашний каталог /home /bob

'bob' не должен быть способен читать / писать / выполнять (с нулевыми правами) что-либо выше / home / bob.

/bin, /lib, /usr /bin, /usr /lib, /usr /local /bin, /usr /local /lib и т. д. явно заданы соответствующие параметры rx - так что 'bob' может выполнять вещи из этих путей, но не пиши им.

У 'bob' есть права rwx на собственный каталог (/home/bob), но есть возможность запретить bob выполнять вещи из его собственного каталога по умолчанию, а затем разрешить некоторые вещи (программы запуска, сценарии и т. д.) выборочно выполняться с помощью 'bob '

пожалуйста, обратите внимание - 'bob' может скомпилировать собственный материал в /home /bob и запустить его (это должно быть предотвращено). Также 'bob' всегда может использовать chmod, chgrp и т.д. Для файлов, принадлежащих ему самому. Что необходимо, так это предотвращение выполнения - даже для собственных файлов.

1 ответ1

2

Поместите домашние каталоги в файловую систему noexec . Это поможет предотвратить выполнение пользователем хранимых там двоичных файлов, хотя это не является гарантией 100%.

Поместите любые другие доступные для записи места, такие как /tmp, также в файловые системы noexec.

Поместите все, что вы хотите, чтобы пользователи могли выполнять, например, /usr /local, принадлежащий root и с соответствующими разрешениями.

Обратите внимание, что это не помешает парсерам анализировать и выполнять код, хранящийся в домашнем каталоге bob. Например, для сценария Perl может быть либо установлен бит исполнения, и он может быть выполнен как ./myscript.pl либо он может быть выполнен как perl ./myscript.pl в этом случае он будет считываться только как ввод для интерпретатора Perl.

Если вы хотите получить больше гарантий, чем это, рассмотрите возможность увеличения с помощью chroot jails, SELinux или, возможно, даже полностью удалите доступ к оболочке bob. Если ему разрешено использовать только свою учетную запись в качестве прославленного хранилища файлов, нужен ли ему вообще доступ к оболочке? Может ли, например, ограничение использования недоверенными пользователями доступа по sftp, SMB/CIFS/NFS или WebDAV работать лучше в вашем случае использования?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .