我在 Redhat 盒子上拥有 sudo 权限;一旦我必须sudo su -
成为 shell 中的 root,我可以运行任何命令来查看我使用的用户名是什么?
答案1
shell 的父进程是su -
,它的父进程是sudo su -
。因此,您需要sudo su -
通过以下两个步骤向后搜索来找出运行父进程的用户ps
:
ps -o user= $(ps -o ppid= $(ps -o ppid= $PPID))
sudo su -
但如果您的 sudo 版本不是太旧而无法使用,则您不应该这样做sudo -i
。 Sudo 将环境变量设置SUDO_USER
为运行 sudo 的用户的名称。你不会看到它,sudo su -
因为su -
它会破坏环境。
$ sudo -i
# echo $SUDO_USER
gilles
答案2
运行命令whoami
它会返回类似的内容:
gladimdim tty2 2011-01-27 23:54 (:0)
粗体的“gladimdim”是最初登录到系统的用户。
答案3
我认为他的意思是:
$ who -am i
它可以(取决于)被解析为相同:
$ who -am
“-a”列出了当前登录的所有用户,“-m”则筛选出与 STDIN 相关联的用户(实际上应该是一个),也就是说,它会告诉您谁登录了你的终端。这就是您要寻找的。
$ who -am