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

Moł*_*łot 9 linux sudo git

我在 sudo 组中:

$ id
uid=1002(molot) gid=1002(molot) groups=1002(molot),27(sudo),33(www-data)
Run Code Online (Sandbox Code Playgroud)

在我的 sudores 中,我似乎有合适的设置:

sudo    ALL=(ALL:ALL) NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)

这是那里最后一个未注释的行。

但是当我尝试时git pull,我必须重新输入密码:

$ sudo -u www-data git --git-dir /var/www/.git --work-tree /var/www pull "origin" master
[sudo] password for molot:
Run Code Online (Sandbox Code Playgroud)

当我登录控制台时这不是问题,但在脚本中是不可接受的。那么我怎样才能允许 sudo 组中的任何人在不重新输入密码的情况下将 git pull 作为 www-data 呢?

当我直接输入我的名字时:

molot ALL=(ALL) NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)

这个对我有用。但是,显然,不适用于来自 sudo 组的 marian 或其他用户。据我了解manual,用户名和组名都应该在第一个文件中工作。

小智 19

似乎您的 sudoers 中的相关行缺少一个字符:

sudo ALL=(ALL:ALL) NOPASSWD: ALL

匹配名为“sudo”的用户。对于“sudo 组中的所有用户”,它应该是:

%sudo ALL=(ALL:ALL) NOPASSWD: ALL

(注意开头的 % 符号)。