我位于 sudo 组中:
$ id
uid=1002(molot) gid=1002(molot) groups=1002(molot),27(sudo),33(www-data)
在我的 sudores 中我似乎有适当的设置:
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 组中的任何人以 www-data 身份进行 git pull 而无需重新输入密码?
当我直接说出我的名字时:
molot ALL=(ALL) NOPASSWD: ALL
对我来说是可行的。但显然对 marian 或 sudo 组的其他用户来说不是。据我所知手动的,用户名和组名都应该在第一个文件中起作用。
答案1
似乎你的 sudoers 中的相关行缺少一个字符:
sudo ALL=(ALL:ALL) NOPASSWD: ALL
匹配名为“sudo”的用户。对于“sudo 组中的所有用户”,它应该是:
%sudo ALL =(ALL:ALL)NOPASSWD:ALL
(注意开头的 % 符号)。
答案2
sudo visudo
然后,假设molot
是您的用户名,转到文件末尾并:
molot ALL=(ALL) NOPASSWD: ALL
这应该可行,但如果不可行,请告知我们。