0

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

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

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

4

2 回答 2

0

您的环境可能是问题所在(sudo 会清除一些环境,然后保留其余环境)。

我会尝试删除 su 并结合使用 sudo 的 -u 标志和 -i 标志来模拟登录条件:

sudo -u quantka -i git fetch
于 2013-06-11T23:02:15.277 回答
0

事实证明这是一个环境变量问题。ssh 访问远程 git repo 的相关环境变量是SSH_AUTH_SOCK.

-E标志添加到 sudo 命令指定应保留环境变量,因此可以使用:

sudo -E su quantka -c "git fetch"
于 2013-06-13T20:28:55.097 回答