打印subhell的用户通过su –

我可以通过su -在根控制台上打印获得root权限的用户名吗?

 user1$ su - password: obtained root via user1 # 

以前我推荐下面的脚本…我find了更好的方法! :)只是执行:

 logname 

另外,你可以使用$SUDO_USER ,但是如果你使用的是sudo su -
顺便问一下, who am iwho -mwho -m

这个脚本也做这个工作:

 #!/bin/bash curpid=`awk '/^PPid:/{print $2}' /proc/$BASHPID/status` ppui=`awk '/^PPid:/{print $2}' /proc/$curpid/status` ppui=`awk '/^PPid:/{print $2}' /proc/$ppui/status` uid=`awk '/^Uid:/{print $2}' /proc/$ppui/status` name=`cat /etc/passwd | grep $uid | awk -F: '{print $1}'` echo $name 

如果使用loginshell或.bashrc如果使用交互式非loginshell),则通过.bash_profile调用它。

who am i|awk '{print "Obtained root via "$1}'

将它添加到根的.bashrc以便在执行时执行。

你也可以试试

pstree -p -u |grep "$$"

用用户名来查看整个stream程链。 如果你有多个用户嵌套su ,这可能会很有用。