如果我在这里漏掉了一个答案,我很抱歉。但是我确实在 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
这是否是一个好主意,则是一个不同的讨论。