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
多个用户,这可能会很有用。