Как sudo как другой пользователь, без указания имени пользователя
В настоящее время я пытаюсь создать файл 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
,
Есть ли (простой) способ запустить скрипт от имени определенного пользователя, не указывая его в командной строке?
3 ответа
Я не думаю, что есть параметр конфигурации для этого. Вы можете взломать исходный код и перекомпилировать его. Вы также можете использовать псевдоним, например
alias sudo='sudo -u pedro'
но тогда вам придется помнить, чтобы \
перед Судо для чего-либо еще
\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
Больше подробностей