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

Другие вопросы по тегам