打印通过 su 获取 root 权限的子 shell 用户 -

打印通过 su 获取 root 权限的子 shell 用户 -

su -获取 root 权限后,我可以在 root 控制台上打印获取 root 权限的用户名吗?

user1$ su -
password:

obtained root via user1
#

答案1

以前我推荐下面的脚本...我找到了更好的方法!:)只需执行:

logname

另外,您可以使用$SUDO_USER,但如果您使用,则不起作用sudo su -
顺便说一句,who am i就像who -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

.bash_profile如果您使用登录 shell 或.bashrc使用交互式非登录 shell,请调用它。

答案2

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

将其添加到 root 中.bashrc以便在您时执行su

您也可以尝试

pstree -p -u |grep "$$"

查看带有用户名的整个流程链。如果您嵌套了su多个用户,这可能会很有用。

相关内容