Можно ли предоставить одному пользователю без доступа sudo возможность выполнить защищенную sudo команду, например chmod
?
решение1
судоФайлы конфигурации хранятся в /etc/sudoers
файле и /etc/sudoers.d
каталоге. Предпочтительно добавить файл,с тем же именем, что и у пользователявы хотите установить sudo для, /etc/sudoers.d
хотя вы также можете редактировать /etc/sudoers
.
Основной синтаксис:кто где = (как_кто) что
Например:
root ALL = (ALL:ALL) ALL
menas позволяет пользователю root
запускать на любом хосте (ALL = ) как любой пользователь:группа (ALL:ALL) любую команду (ALL)
В вашем случае вам нужно сделать что-то вроде:
echo "ltd_user ALL=NOPASSWD:/bin/cat, PASSWD:/bin/chmod" > /etc/sudoers.d/ltd_user
Это дает пользователю ltd_user
право запуска cat
без ввода пароля и chmod
после ввода пароля на любом хосте, как любой пользователь.
После создания файла /etc/sudoers.d
вам следует установить разрешение 440
chmod 440 /etc/sudoers.d/ltd_user
Также обратите внимание, что я привел очень простой пример (и поэтому использовал echo и перенаправление), но было бы хорошей практикой использовать visudo
команду для редактирования файлов конфигурации sudo, которая гарантирует, что только один человек редактирует файл в каждый момент времени, имеет необходимые права и отказывается записывать файл и выходить, если во внесенных изменениях есть синтаксические ошибки.
visudo -f /etc/sudoers.d/ltd_user
man sudoers
для более подробной информации и расширенных примеров см .