Users

什麼是“登錄使用者”?

  • January 13, 2021
$ users
vorac


# Non-login shell, /root/.profile not sourced.
$ su
$ users
vorac

# Login shell, /root/.profile sourced.
$ su -
$ users
vorac

因此,我們在上一個範例中以另一個使用者身份啟動登錄 shell,但仍然只有原始使用者“登錄”。“登錄使用者”的概念是如何定義的?

Unix/Linux 系統在文件中維護一個目前登錄使用者的數據庫/var/run/utmp(在某些 Unix 變體中還有一個並行utmpx文件,但它們都用於相同的目的)。該login程序控制物理控制台上的登錄,具有 X 伺服器的機器的 ssh 守護程序或 GUI 登錄程序會在使用者登錄或註銷時更新該文件中的資訊。who命令從該數據庫中讀取資訊。

您開始使用的 shellsu -是一個“登錄”shell,它的行為方式與由login程序或 ssh 守護程序啟動的登錄 shell(執行相同的初始化文件等)相同,但它不會在utmp文件中記錄登錄,因此,您不會在who命令的輸出中看到這些 shell。

另一方面,如果你例如。啟動screen會話,screen在文件中記錄一個條目,utmp您可以在命令的輸出中看到會話who

此外,在某些圖形 DE 中,您打開的每個新終端視窗都被視為一個新登錄名並記錄在 中utmp,而在另一些中則不是 -utmp登錄到整個 DE 會話的使用者只有一個主條目。當然,這取決於終端應用程序。

引用自:https://unix.stackexchange.com/questions/628957