Linux使用者管理

brucexia發表於2023-04-28

Linux 使用者管理

使用者管理是Linux 的優良特性之一,透過本節讀者可以瞭解Linux 中的使用者型別和使用者的登入過程。

Linux 的使用者型別

Linux 的使用者型別分為3 類:超級使用者、系統使用者和普通使用者。舉一個簡單的例子,機房管理員可以出入機房的任意一個地方,而普通使用者就沒有這個許可權。

1 )超級使用者:使用者名稱為root USER ID UID )為0 的賬號,具有一切許可權,可以作業系統中的所有資源。root 可以進行基礎的檔案操作及特殊的系統管理,還可進行網路管理,可以修改系統中的任何檔案。日常工作中應避免使用此類賬號,錯誤的操作可能帶來不可估量的損失,只有必要時才用root 登入系統。

2 )系統使用者:正常執行系統時使用的賬戶。每個程式執行在系統裡都有一個相應的屬主,比如某個程式以何種身份執行,這些身份就是系統裡對應的使用者賬號。注意,系統賬號是不能用來登入的,比如bin daemon mail 等。

3 )普通使用者:普通使用者能使用Linux 的大部分資源,一些特定的許可權受到控制。使用者只對自己的目錄有寫許可權,讀寫許可權受一定的限制,從而有效保證了Linux 的系統安全,大部分使用者屬於此類。

注意: 出於安全考慮,使用者的密碼至少有8 個字元,並且包含字母、數字和其他特殊符號。如果忘記密碼,很容易解決,root 使用者可以更改任何使用者的密碼。

使用者管理機制

中的使用者管理涉及使用者賬號檔案/etc/passwd 、使用者密碼檔案/etc/shadow 、使用者組檔案/etc/group 。本小節將簡要介紹這些檔案的作用及格式。

1. 使用者賬號檔案/etc/passwd

該檔案為純文字檔案,可以使用cat head 等命令檢視。該檔案記錄了每個使用者的必要資訊,檔案中的每一行對應一個使用者的資訊,每行的欄位之間使用“: ”分隔,共7 個欄位:

使用者名稱稱: 使用者密碼:USER ID:GROUP ID: 相關注釋: 主目錄: 使用的Shell

根據以下示例進行分析:

root:x:0:0:root:/root:/bin/bash

1 )使用者名稱稱:在Linux 系統中用唯+一的字串區分不同的使用者,使用者名稱可以由字母、數字和下劃線組成,注意Linux 系統對字母大小寫是敏感的,比如USERNAME1 username1 分別屬於不同的使用者。

2 )使用者密碼:在使用者校驗時驗證使用者的合法性。超級使用者root 可以更改系統中所有使用者的密碼,普通使用者登入後可以使用passwd 命令來更改自己的密碼。在/etc/passwd 檔案中該欄位一般為x ,這是因為出於安全考慮該欄位加密後的密碼資料已經移至/etc/shadow 中。注意/etc/shadow 檔案是不能被普通使用者讀取的,只有超級使用者root 才有許可權讀取。

3 )使用者標識號(USER ID UID ):是一個數值,用於唯+一標識Linux 系統中的使用者來區別不同的使用者。在Linux 系統中最多可以使用65535 個使用者名稱,使用者名稱和UID 都可以用於標識使用者。相同UID 的使用者可以認為是同一使用者,同時它們也具有相同的許可權,當然對於使用者而言使用者名稱更容易記憶和使用。

4 )組標識號(GROUP ID GID ):當前使用者所屬的預設使用者組標識。當新增使用者時,系統預設會建立一個和使用者名稱一樣的使用者組,多個使用者可以屬於相同的使用者組。使用者的組標識號存放在/etc/passwd 檔案中。使用者可以同時屬於多個組,每個組也可以有多個使用者,除了在/etc/passwd 檔案中指定其歸屬的基本組之外,在/etc/group 檔案中也指明一個組所包含的使用者。

5 )相關注釋:用於存放使用者的一些其他資訊,比如使用者含義說明、使用者地址等資訊。

6 )主目錄:該欄位定義了使用者的主目錄,登入後Shell 將把該目錄作為使用者的工作目錄。登入系統後可以使用pwd 命令檢視。超級使用者root 的工作目錄為/root 。每個使用者都有自己的主目錄,一般預設在/home 下建立與使用者名稱一致的目錄,同時建立使用者時可以指定其他目錄作為使用者的主目錄。

7 )使用的Shell Shell 是當使用者登入系統時執行的程式名稱,通常是/bin/bash 同時系統中可能存在其他的Shell ,比如tsh 。使用者可以自己指定Shell ,也可以隨時更改,比較流行的是/bin/bash

2. 使用者密碼檔案/etc/shadow

該檔案為文字檔案,但這個檔案只有超級使用者才能讀取,普通使用者沒有許可權讀取。任何使用者對/etc/passwd 檔案都有讀的許可權,雖然密碼經過加密,但是可能還是有人會獲取加密後的密碼。透過把加密後的密碼移動到shadow 檔案中並限制只有超級使用者root 才能夠讀取,有效保證了Linux 使用者密碼的安全性。

/etc/passwd 檔案類似,shadow 檔案由9 個欄位組成:

使用者名稱: 密碼: 上次修改密碼的時間: 兩次修改密碼間隔的最少天數: 兩次修改密碼間隔的最多天數: 提前多少天警告使用者密碼將過期: 在密碼過期多少天后禁用此使用者: 使用者過期時間: 保留欄位

根據以下示例進行分析:

root:$1$qb1cQvv/$ku20Uld75KAOx.4WK6d/t/:15649:0:99999::::

1 )使用者名稱:也稱為登入名,/etc/shadow 中的使用者名稱和/etc/passwd 中的相同,每一行是一一對應的,這樣就把passwd shadow 中的使用者記錄聯絡在了一起。

2 )密碼:該欄位是經過加密的,如果有些使用者在這段的開頭是“! ”,就表示這個使用者已經被禁止使用,不能登入系統。

3 )上次修改密碼的時間:該列表示從1970 1 1 日起到最近一次修改密碼的時間間隔,以天數為單位。

4 )兩次修改密碼間隔的最少天數:該欄位如果為0 ,就表示此功能被禁用;如果是不為0 的整數,就表示使用者必須經過多少天才能修改其密碼。

5 )兩次修改密碼間隔的最多天數:主要作用是管理使用者密碼的有效期,增強系統的安全性,該示例中為99999 ,表示密碼基本不需要修改。

6 )提前多少天警告使用者密碼將過期:在快超出有效期時,當使用者登入系統後,系統程式會提醒使用者密碼將要作廢,以便及時更改。

7 )在密碼過期多少天后禁用此使用者:此欄位表示使用者密碼作廢多少天后系統會禁用此使用者。

8 )使用者過期時間:此欄位指定了使用者作廢的天數,從1970 1 1 日開始算起的天數,如果這個欄位的值為空,就表示該賬號永+久可用,注意與第7 個欄位的區別。

9 )保留欄位:目前為空,將來可能會用。

3. 使用者組檔案/etc/group

該檔案用於儲存使用者組的所有資訊,透過它可以更好地對系統中的使用者進行管理。它對使用者分組來說是一種有效的手段,使用者組和使用者之間屬於多對多的關係,一個使用者可以屬於多個組,一個組也可以包含多個使用者。使用者登入時預設的組存放在/etc/passwd 中。

此檔案的格式也類似於/etc/passwd 檔案,欄位如下:

使用者組名: 使用者組密碼: 使用者組標識號: 組內使用者列表

根據以下示例進行分析:

root:x:0:

1 )使用者組名:可以由字母、數字和下劃線組成,使用者組名是唯+一的,和使用者名稱一樣,不可重複。

2 )使用者組密碼:該欄位存放的是使用者組加密後的密碼欄位。這個欄位一般很少使用,Linux 系統的使用者組都沒有密碼,即這個欄位一般為空。

3 )使用者組標識號:GROUP ID ,簡稱GID ,和使用者標識號UID 類似,也是一個整數,用於唯+一標識一個使用者組。

4 )組內使用者列表:屬於這個組的所有使用者的列表,不同使用者之間用逗號分隔,不能有空格。這個使用者組可能是使用者的主組,也可能是附加組。

 

-------------------------------------------

本文節選自《Red Hat Enterprise Linux 9 系統管理實戰》

本次內容釋出,獲得作者和出版社授權,供讀者個人非商業目的使用。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18841117/viewspace-2949444/,如需轉載,請註明出處,否則將追究法律責任。

相關文章