Git
允許使用者 ‘git’ 通過 sudo 將 ‘git pull’ 作為 ‘www-data’ 執行
我想允許 git 以使用者“www-data”的身份執行“git pull”。據我所理解
git ALL=(www-data) git pull
在 /etc/sudoers 中應該可以。
遺憾的是,我收到此行的語法錯誤,並且 visudo 語法突出顯示在“www-data”中的“-”之後立即中斷
在 /etc/sudoers 使用者名中找不到有關禁止的“-”的資訊。有小費嗎?
您需要為“git”命令使用完整路徑名,以下行在 visudo 中不會產生語法錯誤並且可以正常工作。
git ALL = (www-data) /usr/bin/git pull
請注意,我使用的是git使用者名,因此,如果您使用的是gitosis或任何其他使用者名,請填寫您的使用者名!
在root使用者的控制台中執行以下命令:
visudo
“vi”編輯器將被打開。添加這些行:
Defaults:git !authenticate git ALL=(www-data) ALL
結果文件(通過呼叫“visudo”在“vi”編輯器中打開)應該如下所示:
# /etc/sudoers # # This file MUST be edited with the 'visudo' command as root. # # See the man page for details on how to write a sudoers file. # Defaults env_reset Defaults:git !authenticate # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL) ALL git ALL=(www-data) ALL # Allow members of group sudo to execute any command # (Note that later entries override this, so you might need to move # it further down) %sudo ALL=(ALL) ALL # #includedir /etc/sudoers.d
然後按 CTRL+O 保存文件,然後按 Enter 接受文件名 (bla bla bla),然後按 CTRL+X 關閉“vi”編輯器。
瞧!現在git使用者可以以****www-data使用者的身份執行命令:
sudo -u www-data git pull origin master