将某些命令分配给用户

Assigning certain commands to users

我只想允许 "git" 用户能够执行 运行 git 命令,我使用 sudo visudo 编辑了我的 sudoers 文件并添加了

# Cmnd alias specification
Cmnd_Alias GIT_CMDS = /usr/bin/git

# User privilege specification
root    ALL=(ALL:ALL) ALL
git ALL=(ALL) NOPASSWD: GIT_CMDS

然后,当我尝试从 git 用户执行 运行 git 命令时,我收到一条错误消息,提示我没有正确的访问权限。 我该如何解决这个问题?

"access right" 可能不同于 "command execution right"

git 仍然可以 运行 git 命令,但可能无法更新不属于 git/git 组的文件夹。

这就是为什么你有像“Allow User 'git' to run 'git pull' as 'www-data' via sudo”这样的问题,为了让

 sudo -u www-data git <a command>

在您的情况下,由于您指定了 (ALL),请检查您的访问错误是否随着正确的 sudo -u <auser> 而消失,当您在 运行 命令中使用 git不属于 git.

的文件夹