我有一个奇怪的权限问题。似乎以特定用户身份登录时,我拥有的权限与我sudo su进入该用户时的权限不同。
使用su成为quantka会导致git权限错误:
sudo su quantka -c "git fetch"
conq: repository access denied.
fatal: The remote end hung up unexpectedly
但只是以quantka的身份登录:
quantka@quantka:~$ whoami
quantka
quantka@quantka:~$ git fetch
quantka@quantka:~$
为了增加神秘感,这也有效:
quantka@quantka:~$ su quantka -c "git fetch"
Password:
但这不是一个可行的解决方案,因为这需要从脚本运行,无法提示输入密码。
我认为这些应该是相同的?
答案 0 :(得分:0)
你的环境可能是个问题(sudo会磨掉一些环境,剩下的就剩下了)。
我尝试删除su并将sudo的-u标志与-i标志结合使用来模拟登录条件:
sudo -u quantka -i git fetch
答案 1 :(得分:0)
事实证明这是一个环境变量问题。 ssh访问远程git仓库的相关环境变量是SSH_AUTH_SOCK
。
将-E
标志添加到sudo命令指定应保留环境变量,因此这有效:
sudo -E su quantka -c "git fetch"