有没有办法找出谁在控制台上登录X?
在Ubuntu 16.04中,我可以使用who
来告诉你你的位置,就像这个例子中test1
:在 X-console 中登录的那样我使用ssh
登录。
$ who
test1 tty7 2017-08-12 02:00 (:0)
ulf pts/1 2017-08-16 13:56 (192.168.1.20)
但是在Debian 4.0和OpenBSD 5.1上who
都不会告诉我这一点,输出略有不同。
是否有一种稳定的方法可以在大多数系统上运行以获取在 X-console 上登录的用户?
答案 0 :(得分:0)
FROM字段可以在w -f
的大多数系统上显示。
答案 1 :(得分:0)
logname
可能会满足您的需求。即使在su
之后,它也会显示最初登录的用户。见POSIX: logname。
logname实用程序应将用户的登录名写入标准输出。登录名应为POSIX.1-2008的系统接口卷中定义的getlogin()函数返回的字符串。在getlogin()函数失败的情况下,logname实用程序应将诊断消息写入标准错误并以非零退出状态退出。
我发现一些终端仿真器无法提供正确的反馈,例如Ubuntu 16.04中的gnome-terminal。我不确定它是Ubuntu的bug还是只是那个版本的gnome-terminal; Fedora和debian上的gnome-terminal没有问题。
有人讨论logname
可能被邪恶的应用程序伪造,但我没有再找到这个链接,我认为这是一个侏儒讨论。