Users
什麼是“登錄使用者”?
$ 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
命令從該數據庫中讀取資訊。您開始使用的 shell
su -
是一個“登錄”shell,它的行為方式與由login
程序或 ssh 守護程序啟動的登錄 shell(執行相同的初始化文件等)相同,但它不會在utmp
文件中記錄登錄,因此,您不會在who
命令的輸出中看到這些 shell。另一方面,如果你例如。啟動
screen
會話,screen
在文件中記錄一個條目,utmp
您可以在命令的輸出中看到會話who
。此外,在某些圖形 DE 中,您打開的每個新終端視窗都被視為一個新登錄名並記錄在 中
utmp
,而在另一些中則不是 -utmp
登錄到整個 DE 會話的使用者只有一個主條目。當然,這取決於終端應用程序。