使用 NOPASSWD 时 sudo 仍然要求输入密码

db_*_*_ch 5 security linux unix sudo

我阅读了关于 serverfault 的所有 sudo 帖子,但我仍然无法弄清楚我做错了什么。通常我终于找到了解决方案,但这次不是:

我希望 apache 用户能够以用户“hremotessh”的身份执行此命令:

sudo /home/hremotessh/scripts/redirect.sh 8892 8893
Run Code Online (Sandbox Code Playgroud)

因此我在 visudo 中添加了这个:

apache ALL=(hremotessh) NOPASSWD: /home/hremotessh/scripts/redirect.sh
Run Code Online (Sandbox Code Playgroud)

但是 sudo 仍在询问密码?

sudo /home/hremotessh/scripts/redirect.sh
[sudo] password for apache:
Run Code Online (Sandbox Code Playgroud)

我试过这个,但不是更好:

sudo -u hremotessh /home/hremotessh/scripts/redirect.sh
hremotessh is not in the sudoers file.  This incident will be reported.
Run Code Online (Sandbox Code Playgroud)

任何想法都会受到热烈欢迎:-)

丹尼斯

HBr*_*ijn 5

除非你想以 root 身份运行命令,否则你需要指定用户名,所以

 su - apache -s /bin/bash 
 sudo -u hremotessh /home/hremotessh/scripts/redirect.sh 8892 8893
Run Code Online (Sandbox Code Playgroud)

是测试 sudo 命令的正确语法。

由于没有提示您输入 apache 用户的密码,因此 sudo 似乎配置正确。

结果警告:hremotessh is not in the sudoers file.表示sudo在redirect.sh 脚本中使用了另一个命令。并且该用户没有(有效的)sudo 政策。