我们有一个正在使用 WP-Engine 开发的网站。为了简化流程,我为站点设置了 git 存储库,以自动将代码更改推送到 WP-Engine 暂存区域,使用如下所示的 Post Receive 挂钩:
#!/bin/bash -x
PUSH_AS_USER="admin"
sudo -u $PUSH_AS_USER git push wp-engine-staging master
我还做了它,以便 admin 组中的任何用户都可以 sudo -u admin git,而无需输入密码(作为参考,将以下内容添加到 /etc/sudoers
%admin ALL=(admin) NOPASSWD: /usr/bin/git`
当我推送到存储库时,它会触发 post commit hook,但由于某种原因它只对我有用。另外两个用户收到以下警告:
[username@server repository]$ sudo -u admin git push wp-engine-staging master
fatal: unable to access '/home/username/.config/git/config': Permission denied
奇怪的是,我的用户没有这个文件,我的工作正常。此外,如果我为这些用户创建文件,我似乎无法授予管理员查看它的权限,即使我将 admin 添加到用户自己的组中,并向文件的每个目录中的组授予读取权限。(即 /home/username/.config/git/ 和配置文件本身)。
作为这个奇怪问题的另一个例子:
[daniel@server repository]$ sudo su username
[username@server repository]$ sudo -u admin git config --global --list
fatal: unable to access '/home/username/.config/git/config': Permission denied
[username@server repository]$ exit
[daniel@server repository]$ sudo -u admin git config --global --list
user.email=daniel@example.com
user.name=Daniel
[daniel@server repository]$ cat /home/daniel/.config/git/config
cat: /home/daniel/.config/git/config: No such file or directory
这很扰乱我们的工作流程。有任何想法吗?