大背景
说需求不讲背景就是耍流氓。 ———– by 一个被虐的码农
git,专门用于跑git命令,那么执行 sudo adduser git,并设置密码git用户添加到sudo组:sudo adduser git sudo[此步骤非必须]/www下面,且Owner是git,那么执行sudo mkdir /www && sudo chown -R git:git /wwwps aux | grep php-fpm, 确认www-data为我们的运行用户

www-data加到git用户组:sudo usermod -aG git www-datawww-data用户不需要密码就能切换到git用户,并且用git用户的身份执行/usr/bin/git命令,修改sudoers:sudo vim /etc/sudoers,添加一行配置:www-data ALL=(git) NOPASSWD: /usr/bin/gitsudo chmod -R g+s /www[此步骤非必须]www-data切换成git用户来执行/usr/bin/git命令,那么实际上git pull等命令使用的SSH key是git用户的SSH key,确保已经将git用户的/home/git/.ssh/id_rsa.pub文件的内容设置到gitlab项目中请参考gitlab-php-webhooks,具体逻辑请看代码注释