谁在DISPLAY登录:0

时间:2017-08-16 12:10:50

标签: x11

有没有办法找出谁在控制台上登录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 上登录的用户?

2 个答案:

答案 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可能被邪恶的应用程序伪造,但我没有再找到这个链接,我认为这是一个侏儒讨论。