如何从sudo'd程序中执行作为原始用户的命令?

Sur*_*rya 5 c unix sudo

我必须用来sudo运行我的程序:

 sudo ./my_program
Run Code Online (Sandbox Code Playgroud)

我试图git clone从我的程序运行,但它尝试使用root用户的SSH密钥而不是我的.有没有办法以最初调用我的程序的用户身份执行此单个命令?

我想我能做到:

su - original_user -c "git --version"
Run Code Online (Sandbox Code Playgroud)

但是如何计算原始用户的用户名?还是有另一种优雅的解决方案吗?

don*_*man 3

手册sudo显示$SUDO_USER应该为您提供原始用户的用户名和$SUDO_UID原始用户的 UID。