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

sudo по-прежнему запрашивает пароль при использовании NOPASSWD

Я прочитал все сообщения sudo о serverfault, но до сих пор не могу понять, что делаю не так. Обычно я наконец нахожу решение, но не в этот раз:

Я хочу, чтобы пользователь apache мог выполнять эту команду как пользователь «hremotessh»:

sudo /home/hremotessh/scripts/redirect.sh 8892 8893

Поэтому я добавил это в visudo:

apache ALL=(hremotessh) NOPASSWD: /home/hremotessh/scripts/redirect.sh

Но sudo все еще спрашивает пароль?

sudo /home/hremotessh/scripts/redirect.sh
[sudo] password for apache:

Я пробовал это, но не лучше:

sudo -u hremotessh /home/hremotessh/scripts/redirect.sh
hremotessh is not in the sudoers file.  This incident will be reported.

Любая идея будет тепло приветствоваться :-)

Денис

Если вы не хотите запускать команду от имени root, вам нужно указать имя пользователя, поэтому

 su - apache -s /bin/bash 
 sudo -u hremotessh /home/hremotessh/scripts/redirect.sh 8892 8893

- это правильный синтаксис для проверки команды sudo.

Поскольку вам не предлагается ввести пароль пользователя apache, похоже, sudo настроен правильно.

Получающееся предупреждение: hremotessh is not in the sudoers file. указывает, что другой sudo команда используется в скрипте redirect.sh. И для этого пользователя нет (действующей) политики sudo.

У меня была аналогичная проблема при попытке запустить код python3 как sudo из сценария и не вводить пароль из сценария. Решением было отредактировать visudo, чтобы python3 запускался как sudo без запроса пароля, а НЕ запускал скрипт python3 как sudo. Поэтому я считаю, что вам нужно запускать apache как sudo без запроса пароля, а НЕ запускать сценарий .sh как sudo без пароля.