Чтобы убедиться, что настроена правильная переменная среды PATH, я использую sudo -i
варианты, но я обнаружил, что sudoers
файл не соблюдается.
Вот моя установка:
/etc/sudoers
:
Defaults env_reset
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL) ALL
user ALL=(ALL) ALL
user ALL=NOPASSWD: /usr/local/bin/chef-solo
Бег sudo chef-solo -v
не запрашивает пароль. Бег sudo -i chef-solo -v
запросит пароль.
sudo -i
выполняет вашу оболочку, а не команду. Он передает команду оболочке.
Чтобы sudo -i работала без пароля, для правила, использующего псевдоним ALL в качестве команды для запуска, необходим флаг NOPASSWD.
Политика может запретить его использование для любой команды, которая может выполняться от имени пользователя root (включая su). Раньше это было правдой в моем окружении, но теперь это не так; Обоснование этого изменения состоит в том, что для уже прошедшего аутентификацию пользователя предпочтительнее запускать команды от имени пользователя root без пароля, чем полагаться для этого на учетную запись службы.
Чтобы переключить учетную запись без использования su, используйте NOPASSWD вместе с пользователем, не являющимся root-пользователем, выполняющим от имени, как в следующем правиле:
% group ALL = (пользователь) NOPASSWD: ALL
Затем это позволяет использовать как «sudo -iu user», так и «sudo -u user command and args».