Назад | Перейти на главную страницу

Как выполнить 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.

Есть ли (простой) способ запустить скрипт от имени конкретного пользователя без необходимости указывать его в командной строке?

Я не думаю, что для этого есть параметр конфигурации. Вы можете взломать исходный код и перекомпилируйте его. Вы также можете использовать псевдоним, например

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 Больше подробностей