Итак, я сейчас пытаюсь создать файл sudoers, но столкнулся с чем-то, чего не могу понять.
Конечный результат, которого я ищу, заключается в том, что я хочу, чтобы пользователи могли делать что-то вроде:
sudo /usr/sbin/script.pl
Но вместо того, чтобы запускаться как root, я бы хотел, чтобы сценарий запускался как «other_user».
Я заглянул в файл sudoers и попытался добавить строку вроде:
pedro ALL = (other_user) /usr/sbin/script.pl
Но это работает, только если я укажу пользователя, выполнив sudo -u other_user /usr/sbin/script
.
Есть ли (простой) способ запустить скрипт от имени конкретного пользователя без необходимости указывать его в командной строке?
Я не думаю, что для этого есть параметр конфигурации. Вы можете взломать исходный код и перекомпилируйте его. Вы также можете использовать псевдоним, например
alias sudo='sudo -u pedro'
но тогда вам нужно не забыть \
перед sudo для чего-либо еще
\sudo somecommand
вот что может сработать:
alias sudop='sudo -u pedro'
alias sudoa='sudo -u alice'
Вам все равно нужно указать что-то в дополнение к sudo, но оно глубоко сцеплено и довольно легко вводится. Я использую вариант этого для общих команд sudo, которые мне нужно запустить.
Делать sudo chown other_user /usr/sbin/script; sudo chmod 6777
Это изменит владельца скрипта на other_user, затем установит его как редактируемый и исполняемый для всех и, наконец, установит его для запуска как other_user.
sudo chown other_user /usr/sbin/script; sudo chmod 6555
// то же, что и выше, но только для чтения sudo chown other_user /usr/sbin/script; sudo chmod 6755
// то же, что и 6777, но может редактироваться только other_user
Видеть man chmod
и man chown
Больше подробностей