通过sudo或su运行脚本时,我想获取原始用户。无论发生多次sudo还是su相互内部运行,都应该发生sudo su -。
sudo
su
sudo su -
结果:
使用who am i | awk '{print $1}'OR,logname因为没有其他方法可以保证。
who am i | awk '{print $1}'
logname
以自身身份登录:
evan> echo $USER evan evan> echo $SUDO_USER evan> echo $LOGNAME evan evan> whoami evan evan> who am i | awk '{print $1}' evan evan> logname evan evan>
普通sudo:
evan> sudo -s root> echo $USER root root> echo $SUDO_USER evan root> echo $LOGNAME root root> whoami root root> who am i | awk '{print $1}' evan root> logname evan root>
须藤su-:
evan> sudo su - [root ]# echo $USER root [root ]# echo $SUDO_USER [root ]# echo $LOGNAME root [root ]# whoami root [root ]# who am i | awk '{print $1}' evan [root ]# logname evan [root ]#
苏多苏-; su tom:
evan> sudo su - [root ]# su tom tom$ echo $USER tom tom$ echo $SUDO_USER tom$ echo $LOGNAME tom tom$ whoami tom tom$ who am i | awk '{print $1}' evan tom$ logname evan tom$