对于脚本,我需要不带密码提示的 sudo。我哪里做错了?

对于脚本,我需要不带密码提示的 sudo。我哪里做错了?

我位于 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

这应该可行,但如果不可行,请告知我们。

相关内容