我已经通过visudo编辑了/ etc / sudoers文件并添加了
www-data ALL=(git) NOPASSWD: ALL git ALL=(www-data) NOPASSWD: ALL
所以现在用户“git”应该能够执行“www-data”命令,但是当我尝试时
sudo -u git ls /tmp/redmine_git_hosting
我得到:
ls: cannot open directory /tmp/redmine_git_hosting/: Permission denied
目录的权限是:
drwx------ 2 www-data www-data 4096 Jan 31 09:02 redmine_git_hosting
我可以通过运行列出目录:
sudo -u www-data ls /tmp/redmine_git_hosting
我想你误解了sudo是如何工作的。 它的作用是让用户使用sudo以用户www-data的方式运行命令 – 但为了这样做,用户git必须运行sudo,仅仅从用户那里成为用户而不使用sudo 是不够的。
总之,你需要做类似的事情
sudo -u git sudo -u www-data ls /tmp/redmine_git_hosting
代替。