我必须使用sudo
来运行我的程序:
sudo ./my_program
我正在尝试从我的程序运行git clone
,但它尝试使用root用户的SSH密钥而不是我的。
有没有办法像最初调用我的程序的用户一样执行这个命令?
我想我能做到:
su - original_user -c "git --version"
但是如何计算原始用户的用户名?或者还有另一种优雅的解决方案吗?
答案 0 :(得分:3)
sudo
手册显示$SUDO_USER
应该为您提供原始用户的用户名,$SUDO_UID
会提供原始用户的UID。
答案 1 :(得分:0)
在从Web应用程序创建文件时,我在NAS上遇到了Samba问题。
在这种情况下,我检索了正在运行的进程,并确定哪个用户正在运行samba。 隔离该名称后,我拥有了正确的用户帐户。也许这对你的情况也有效?
在这种情况下,我想你需要过滤ps输出并查找你的程序名称。通过在bash上测试它是否有效。