Как выполнить команду sudo без пароля и без указания пути?

У меня есть каталог со сценариями: / etc / scripts.

Теперь я хочу выполнить такие сценарии, как: sudo scriptname без необходимости указывать пароль или указывать путь к сценарию.

Я добавил / etc / scripts в переменную $ PATH:

/etc/scripts:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

, а также добавил различные пути к этим скриптам в конец моего файла sudoers, например:

steven ALL=(ALL) NOPASSWD:/etc/scripts/dns_add_zone,/etc/scripts/dns_add_record

Итак, выполняю скрипт типа sudo / etc / scripts / scriptname работает, но не без указания пути.

1
задан 19 November 2020 в 20:24

1 ответ

В Ubuntu sudo настроен на поиск программ в собственном secure_path, определенном в /etc/sudoers , а не PATH вызывающего пользователя или целевого (корневого) пользователя:

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

Если вы хотите, чтобы он находил программы в /etc/scripts, вам нужно добавить этот каталог в безопасный_путь. Однако вы можете рассмотреть возможность использования одного из местоположений, которое уже находится в secure_path, например /usr/local/sbin, что будет более соответствовать иерархии файловой системы. Стандарт.

1
ответ дан 19 November 2020 в 13:03

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

Похожие вопросы: