运行“sudo -u”而不询问当前用户的密码

运行“sudo -u”而不询问当前用户的密码

如果我在这里漏掉了一个答案,我很抱歉。但是我确实在 Google 上搜索过这个问题,但找不到直接的答案。

我想让apache用户以另一个用户的身份运行命令,但是当我这样做时:

echo "PASSWORD" | sudo -u another_user -S echo "X"

PHP 脚本内部,我得到:

[sudo] password for apache:

用户apache没有密码,所以我不能直接输出密码来运行sudo。有什么方法可以让用户在不使用密码的情况下在该帐户下apache运行sudo一组特定的命令吗?another_user


附言:我目前有

apache ALL=(yourhost) /usr/bin/git --git-dir=/* --work-tree=/* pull origin master

在我的sudoers档案里。

答案1

在 sudoers 文件中查找“NOPASSWD”的用法。

例如:

apache ALL=(yourhost) NOPASSWD:/usr/bin/git --git-dir=/* --work-tree=/* pull origin master

这是否是一个好主意,则是一个不同的讨论。

相关内容