Users
使用者名、顯示名和登錄名有什麼區別?
- 使用者名、顯示名和登錄名有什麼區別?
- 如果存在實質性差異,修改它們中的每一個的後果是什麼?
- 我該如何修改這些?
我知道這
usermod
在這裡是相關的,但是如果沒有明確的術語,解釋它的選項並不是立即的。並且可能還有其他用於相同或相似目的的命令。經過。感謝您澄清這一點。
哪個是哪個
使用者名是一個模棱兩可的術語,可以指代
- 到某個系統已知的正式使用者 ID字元串,或
- 顯示名稱,如
John Smith
.出於這個原因,我們有更具體的術語,例如login name,它告訴我們這是用於登錄的字元串,like
jsmith
和 notJohn Smith
。使用者 ID也可用於此目的,但它與數字使用者 ID 不一致。這必須從上下文中清楚。例如在 Unix 中,使用者通常不處理數字使用者 ID。如果提示要求輸入“使用者 ID”,人們只知道他們不應該輸入
1003
但是jsmith
.顯示名稱(也稱為真實使用者名)告訴我們這是某個軟體對象(例如使用者帳戶)的名稱,用於在使用者界面和程序輸出(例如診斷或調試消息)中引用它。這意味著顯示名稱在這些對像中不一定是唯一的,並且不能用作明確引用對象的鍵。它實際上僅用於顯示目的。“顯示名”不一定是使用者名;這必鬚根據上下文來確定。任何可以有名稱的東西都可能有一個顯示名稱。
在傳統的 Unix 中,該
/etc/passwd
文件將您的數字使用者 ID與登錄名(文本使用者 ID)和顯示名稱相關聯。變化和後果
該
chfn
實用程序用於更改顯示名稱,即真實使用者名和相關資訊。這樣做應該沒有任何後果。更改文本使用者 ID又名登錄名需要特權;
root
可以編輯密碼文件來編輯它。效果將立竿見影:新名稱將出現在系統中以數字使用者 ID顯示為其文本等價物的任何位置。例如,如果有人列出了一個使用目錄ls -l
並且該目錄包含該使用者擁有的文件,他們將立即看到新名稱,因為ls
程序從密碼數據庫中選擇了它。更改將破壞或可能破壞系統中的各種事物,因此是一個壞主意:
- 首先,如果新名稱與另一個名稱衝突,那顯然很糟糕;為了完整起見,我提到這一點。讓我們假設情況並非如此。
- 我們還假設某些使用者的名稱在他們不知情的情況下被更改,導致他們無法登錄。
- 剩下的問題是,在文件系統中可能存在對文本使用者 ID進行編碼的配置文件:無論是在它們的路徑名中,還是在它們的內容中。當然,這些繼續引用密碼文件中不再存在的舊使用者 ID。除非所有這些都被追捕和修復,否則名稱更改是不完整的。
- 如果創建了與舊名稱匹配的新密碼文件條目,則問題可能會更加複雜。這些配置現在指的是一個有效的使用者,但是是錯誤的。
舉個例子
- 讓我們考慮該
sudo
實用程序存在於系統中並通過/etc/sudoers
文件進行配置。假設該/etc/sudoers
文件授予使用者bob
使用超級使用者憑據執行某些危險管理命令的權限。- 現在假設我們在密碼文件中重命名
bob
為robert
並且不更新這個條目。現在robert
無法再執行該命令;該sudoers
文件授予bob
不這樣做的權限robert
。- 第二天,添加了一個新使用者,並且恰好被呼叫
bob
。這bob
現在有權以 root 身份執行該管理命令。