Ubuntu

打開終端時不需要登錄?

  • May 10, 2016

談到 Linux,特別是 Ubuntu(從 14.04 開始)系統:

案例 1 - 正如在這個答案中指出的那樣,分配偽終端的程序不需要登錄:例如,cups. 無論如何,它們沒有who在命令輸出中列出。

案例 2 - 如果我進行 GUI 登錄,執行檔gnome-terminal(或者xfce4-terminal,根據桌面環境)可以打開很多偽終端,而我的使用者已經登錄,並且對於每個打開的偽終端,who命令中都會有一個新行將出現輸出。

所以,

1)程序和使用者都可以打開終端,所以它們必須有一些共同的特徵(因為它們可以以類似的方式行事)和一些差異。從系統shell的角度來看,使用者(打開終端顯然需要登錄並列在who命令中)和程序(誰不需要登錄使用終端和誰)有什麼區別?未在who命令中列出)?我的疑問是,一個程序可以在需要時打開終端,而無需系統檢查,而使用者必須始終登錄。

2) GUI 中的唯一登錄如何“解鎖”終端模擬器打開的偽終端的所有登錄?如果我/dev/tty1通過Ctrl``Alt``F1.

程序正在執行可執行二進製文件的實例。每個程序,類似於每個文件等,都屬於某個使用者。(這有點複雜,因為一個程序有不同的使用者 ID,但大多數時候它們是相同的。)

終端線(tty)可以隨時被任何程序打開,就像程序可以打開/創建文件、TCP 套接字等一樣。在這方面,終端沒有什麼特別之處。

這是一個古老的使用者級概念,存在一個 utmp/wtmp 數據庫來跟踪登錄。圖形登錄管理器更新屬於整個圖形登錄的記錄(或多或少有意義),終端仿真器自願更新(或不更新)屬於給定終端行的記錄(在我看來,這在https中有詳細說明://bugzilla.gnome.org/show_bug.cgi?id=747046,沒有任何意義)。這來自終端是真實終端而不是圖形模擬器的時代,確保跟踪誰從哪裡登錄是有意義的。

在我看來,說打開圖形終端模擬器意味著“登錄”,或者應該為打開的終端視窗/選項卡創建一個日誌條目,who並且類似的實用程序應該報告這一點,這是一個過時的、糟糕的傳統。

who諸如基於這些或多或少正確維護的 utmp/wtmp 文件列印資訊之類的實用程序,其可用性和可靠性也非常有限。

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