我在sudo组中:
$ id
uid=1002(molot) gid=1002(molot) groups=1002(molot),27(sudo),33(www-data)
在我看来,我似乎有适当的设置:
sudo ALL=(ALL:ALL) NOPASSWD: ALL
这是最后一条未注释的行。
但是,当我尝试git pull
输入时,我被要求重新输入密码:
$ sudo -u www-data git --git-dir /var/www/.git --work-tree /var/www pull "origin" master
[sudo] password for molot:
当我登录控制台时这不是问题,但是在脚本中是不可接受的。那么,如何允许sudo组中的任何人git pull作为www-data而不重新输入密码?
当我直接输入我的名字时:
molot ALL=(ALL) NOPASSWD: ALL
这个对我有用。但是,显然,不适合玛丽安或sudo组的其他用户。据我了解的手册,用户名和组名都应该在第一个文件中工作。
@jimbobmcgee这是一个git钩子,所以不,我不能在上面添加任何内容。它由推送git更改的用户调用,但我没有找到解决之道。
—
Mołot
第一个字段(如果我对
—
CVn 2014年
sudoers
文件格式的快速理解正确)是调用用户的用户名。您是否尝试过用通配符替换它*
,还是git钩子以哪个用户身份运行?
@MichaelKjörling谢谢,您的评论让我寻找特殊字符,并允许我找到答案:D编辑:删除了自己的答案,并从同一时间接受了第三者的答案。
—
Mołot
sudo -u www-data ./your_script.sh
吗 该脚本的目的是什么?