sudo su和用户之间的权限差异? (特别是用git)

时间:2013-06-11 22:42:13

标签: git ubuntu permissions sudo su

我有一个奇怪的权限问题。似乎以特定用户身份登录时,我拥有的权限与我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:

但这不是一个可行的解决方案,因为这需要从脚本运行,无法提示输入密码。

我认为这些应该是相同的?

2 个答案:

答案 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"