Users

使用者名、顯示名和登錄名有什麼區別?

  • August 30, 2018
  1. 使用者名、顯示名和登錄名有什麼區別?
  2. 如果存在實質性差異,修改它們中的每一個的後果是什麼?
  3. 我該如何修改這些?

我知道這usermod在這裡是相關的,但是如果沒有明確的術語,解釋它的選項並不是立即的。並且可能還有其他用於相同或相似目的的命令。

經過。感謝您澄清這一點。

哪個是哪個

使用者名是一個模棱兩可的術語,可以指代

  • 到某個系統已知的正式使用者 ID字元串,或
  • 顯示名稱,如John Smith.

出於這個原因,我們有更具體的術語,例如login name,它告訴我們這是用於登錄的字元串,likejsmith和 not John Smith

使用者 ID也可用於此目的,但它與數字使用者 ID 不一致。這必須從上下文中清楚。例如在 Unix 中,使用者通常不處理數字使用者 ID。如果提示要求輸入“使用者 ID”,人們只知道他們不應該輸入1003但是jsmith.

顯示名稱(也稱為真實使用者名)告訴我們這是某個軟體對象(例如使用者帳戶)的名稱,用於在使用者界面和程序輸出(例如診斷或調試消息)中引用它。這意味著顯示名稱在這些對像中不一定是唯一的,並且不能用作明確引用對象的鍵。它實際上僅用於顯示目的。“顯示名”不一定是使用者名;這必鬚根據上下文來確定。任何可以有名稱的東西都可能有一個顯示名稱。

在傳統的 Unix 中,該/etc/passwd文件將您的數字使用者 ID登錄名(文本使用者 ID)和顯示名稱相關聯。

變化和後果

chfn實用程序用於更改顯示名稱,即真實使用者名和相關資訊。這樣做應該沒有任何後果。

更改文本使用者 ID又名登錄名需要特權;root可以編輯密碼文件來編輯它。效果將立竿見影:新名稱將出現在系統中以數字使用者 ID顯示為其文本等價物的任何位置。例如,如果有人列出了一個使用目錄ls -l並且該目錄包含該使用者擁有的文件,他們將立即看到新名稱,因為ls程序從密碼數據庫中選擇了它。

更改將破壞或可能破壞系統中的各種事物,因此是一個壞主意:

  • 首先,如果新名稱與另一個名稱衝突,那顯然很糟糕;為了完整起見,我提到這一點。讓我們假設情況並非如此。
  • 我們還假設某些使用者的名稱在他們不知情的情況下被更改,導致他們無法登錄。
  • 剩下的問題是,在文件系統中可能存在對文本使用者 ID進行編碼的配置文件:無論是在它們的路徑名中,還是在它們的內容中。當然,這些繼續引用密碼文件中不再存在的舊使用者 ID。除非所有這些都被追捕和修復,否則名稱更改是不完整的。
  • 如果創建了與舊名稱匹配的新密碼文件條目,則問題可能會更加複雜。這些配置現在指的是一個有效的使用者,但是是錯誤的。

舉個例子

  1. 讓我們考慮該sudo實用程序存在於系統中並通過/etc/sudoers文件進行配置。假設該/etc/sudoers文件授予使用者bob使用超級使用者憑據執行某些危險管理命令的權限。
  2. 現在假設我們在密碼文件中重命名bobrobert並且不更新這個條目。現在robert無法再執行該命令;該sudoers文件授予bob不這樣做的權限robert
  3. 第二天,添加了一個新使用者,並且恰好被呼叫bob。這bob現在有權以 root 身份執行該管理命令。

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