`who` 命令结果 `root :0` 是什么意思?

`who` 命令结果 `root :0` 是什么意思?

命令的返回值who将始终包含root :0在 X Window pts 中。我想这实际上意味着 GNOME 登录。我对吗?

另一个问题是从哪里获得这些知识,因为我在 中没有看到它man who,在info who.

例子

[root@localhost root]# who
root     :0           Sep 11 06:33 
root     pts/0        Sep 11 06:36     (:0.0)

答案1

参见info who(who的 Stallman 域)

如果没有给出非选项参数,“who”将打印当前登录的每个用户的以下信息:登录名、终端线路、登录时间和远程主机名或 X 显示

这是 X 显示编号(也可能是屏幕编号,例如 0:0)

不过,它不包含任何root适用于我的伪终端 X windows 的内容。如果您以 登录root,从安全角度来看这可能很糟糕。

更新: 显示和屏幕是X windows系统的逻辑概念。当我在这里说“屏幕”或“显示器”时,我指的是 X windows 屏幕或显示器,而不是任何物理设备(who也指 X windows 显示器和屏幕)。

在此输入图像描述

显示的要点是您的计算机可能同时运行多个 X 服务器实例,那么它们被称为在不同的显示器上运行。例如,您的正常图形环境可以由位于 display:0 的 X 服务器实例 1 显示,并且您还可能有一个远程桌面应用程序,例如XephyrXnest在 display:1 处启动另一个 X 服务器实例并输出到单个窗口:请参阅https://superuser.com/questions/363988/display-remote-x-session-complete-desktop-in-one-client-x-window

X windows系统的设计是为了让X服务器和X客户端通过网络分开。对于它们的交互,它依赖于伯克利插座机制。每个X 服务器在与客户端的交互方面就像一个Web 服务器(例如Apache)。就像 Apache 创建 TCP/IP 套接字来侦听连接的浏览器、处理它们的请求并发送响应一样,Xorg 创建

  • 用于远程 X 客户端的 TCP/IP 套接字
  • 用于本地 X 客户端的 Unix 域套接字

它处理它们的要求绘制到显示器上而不是发送响应事件- 用户活动通知(单击鼠标按钮、按下键盘按键等)。

每个显示器对应一个单独的 X Server 实例,并且显示器应侦听 TCP/IP 端口号和 Unix 域套接字名称的约定。要确定 TCP/IP 端口号,请将 6000 添加到显示编号。例如,显示器编号 1 侦听 TCP 端口 6001 (1 + 6000 = 6001)。 Xorg 的 Unix 域套接字通常位于/tmp/.X11-unix/并适当命名。

屏幕:屏幕设计用于处理以下情况:您的计算机有多个物理监视器,但一个 X 服务器实例在两个物理监视器上绘制其输出。那么第一个显示器称为 screen0,第二个显示器称为 screen1。 Xclient 只能为自己选择 1 个屏幕。说实话,我自己从来没有处理过这个案子,现在它几乎已经死了,因为Xinerama 扩展您可能有一个 X 屏幕,例如 0:0 跨度到多个物理显示器,如维基百科上的图片所示。

答案2

WHO

当您运行该命令时,who它通常会显示如下输出:

$ who
saml     tty1         2013-09-06 22:22 (:0)
saml     pts/0        2013-09-06 22:23 (:0.0)
saml     pts/5        2013-09-07 04:28 (:0.0)
saml     pts/9        2013-09-09 01:39 (:0.0)
saml     pts/13       2013-09-10 12:20 (:0.0)
saml     pts/44       2013-09-10 22:50 (:0.0)
saml     pts/78       2013-09-11 14:49 (:0.0)

这表明我以用户 saml 身份登录,并且有一个控制台 (tty1) 和 6 个伪终端 (pts)。每次我调用 shell 或在 gnome-terminal 中打开一个构成 pts 终端的选项卡时。

第四栏

第四列告诉您两件事中的一件。如果您是本地连接,那么它会省略主机名,只显示显示编号和屏幕编号。这些由字符串 0.0 中冒号 ( :) 后面的 2 位数字表示。第一个数字是显示屏,第二个数字是屏幕。

显示屏

显示 # 和屏幕 # 可能有点令人困惑,但可以这样想。一台计算机可以挂有多个视频卡和显示器。这些视频卡和屏幕可以通过这样一种方式进行设置,即您可以同时驱动它们,并且这些值允许您在启动应用程序时定位特定的视频卡和屏幕。一般来说,这些总是:0.0,或者您会看到 的简写符号:0

如果这是远程连接,则主机名将以冒号为前缀,如下所示:somehost:0.0。这表示主机somehost的显示器 (0) 和屏幕 (0) 之间存在连接。这很重要,因此如果在此连接中调用基于 GUI 的应用程序,它将显示在该主机的显示器 0 和屏幕 0 上。

进一步阅读

这些信息大部分位于 Xserver 手册页和 Xorg 手册页中。

相关内容