8

Как я могу ограничить моего пользователя выполнять только выборочные команды. У меня есть пользователь TOMC в группе TOMC. Мне нужно, чтобы этот пользователь был пользователем sudo, а затем имел ограниченный доступ к bash. Я пробовал следующий код в /etc/sudoers , но он не работает, так как пользователь может выполнять другие команды, такие как mkdir , rm

%tomc ALL=/bin/bash,/usr/bin/vim /*

2 ответа2

11

Вы можете пойти по этому неправильному пути. Вместо того, чтобы предоставлять пользователю «ограниченную» оболочку bash, вы должны предоставить им только доступ к командам, которые ему понадобятся для запуска от имени пользователя root. Например, в вашем файле sudoers:

tomc ALL=(root) /usr/bin/vim /etc/myapp.conf
tomc ALL=(root) /usr/bin/less /var/log/myapp/*.log

Будьте внимательны, разрешив пользователям запускать vim от имени пользователя root. Vim имеет множество встроенных функций, таких как экранирование в оболочку и возможность запуска команд из vim. В зависимости от вашего дистрибутива у вас может быть доступен sudoedit . Он работает так же, как обычный Vim, за исключением того, что он предназначен для обработки экранирования оболочки и тому подобного.

2

На моей Synology Diskstation под управлением DSM 6 только пользователи с правами администратора могут последовательно подключаться к ssh (пользователи без прав администратора имеют оболочку как /sbin /nologin в /etc /passwd - вы можете установить ее в /bin /sh, чтобы временно разрешить ssh, но при перезагрузке файл /etc /passwd сбрасывается). По этой причине для учетной записи, которая в противном случае существует только для выполнения, требуется какое-то ограничение sudo, например /sbin /poweroff. Следующие строки в /etc /sudoers работали для меня:

# Allow guestx user to remote poweroff
guestx ALL=(ALL) !ALL
guestx ALL=NOPASSWD: /sbin/poweroff

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

При такой конфигурации sudo запрашивает пароль, а затем не выполняет команды, отличные от белого списка:

guestx@ds:~$ sudo su -
Password: 
Sorry, user guestx is not allowed to execute '/bin/su -' as root on ds.
guestx@ds:~$ 

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