sudo все еще просят пароль, когда NOPASSWD используется

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

Я хочу, чтобы апачский пользователь смог выполнить эту команду как пользователь "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.

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

Denis

4
задан 21 July 2014 в 13:55
2 ответа

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

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

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

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

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

5
ответ дан 3 December 2019 в 03:30

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

-1
ответ дан 3 December 2019 в 03:30

Теги

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