mahatmanich Asked: 2016-03-27 16:04:45 +0800 CST2016-03-27 16:04:45 +0800 CST 2016-03-27 16:04:45 +0800 CST 通过 su 获取 root 的 subshell 的打印用户 - 772 我可以su -在获得root后在root控制台上打印正在获得root访问权限的用户名吗? user1$ su - password: obtained root via user1 # linux 2 个回答 Voted Best Answer Jose Raul Barreras 2016-03-27T23:14:38+08:002016-03-27T23:14:38+08:00 以前我推荐下面的脚本...我找到了更好的方法!:) 只需执行: 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 ,请调用它。 Jakub Pasoń 2016-03-28T00:35:59+08:002016-03-28T00:35:59+08:00 who am i|awk '{print "Obtained root via "$1}' 将其添加到 root.bashrc以在您执行su. 你也可以试试 pstree -p -u |grep "$$" 使用用户名查看整个流程链。su如果您嵌套了多个用户,这可能会很有用。
以前我推荐下面的脚本...我找到了更好的方法!:) 只需执行:
此外,您可以使用
$SUDO_USER
,但如果您正在使用 则不起作用sudo su -
顺便说一句,
who am i
就像who -m
该脚本也可以完成工作:
.bash_profile
如果您使用登录 shell 或.bashrc
使用交互式非登录 shell ,请调用它。who am i|awk '{print "Obtained root via "$1}'
将其添加到 root
.bashrc
以在您执行su
.你也可以试试
pstree -p -u |grep "$$"
使用用户名查看整个流程链。
su
如果您嵌套了多个用户,这可能会很有用。