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

Почему sudo -i не уважает файл sudoers

Чтобы убедиться, что настроена правильная переменная среды 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».