1. 程式人生 > >Linux用戶管理機制

Linux用戶管理機制

作用 改密碼 同時 能夠 更改 一行 相同 運行 文本

Linux系統中的用戶管理涉及用戶賬號文件 /etc/passwd、用戶密碼文件 /etc/shadow、用戶組文件 /etc/group。

一、用戶賬號文件 /etc/passwd

該文件為純文本文件,可以使用cat、head等命令查看。該文件記錄了每個用戶的必要信息,文件中的每一行對應一個用戶信息,每行的字段之間使用分隔,共7個字段。如果 /etc/passwd 文件中某行第一個字符是*,表示該賬戶已經被禁止使用,該用戶無法登陸系統。

用戶名稱:用戶密碼:USER ID:GROUP ID:相關註釋:主目錄:使用的shell

根據示例進行分析: root:x:0:0:root:/root:/bin/bash

  1. 用戶名稱:在Linux系統中用唯一的字符串區分不同的用戶,用戶名可以由字母、數字、下劃線組成。註意Linux系統中對字母大小寫是敏感的。 比如USERNAME1 和username1是兩個不同的用戶。
  2. 用戶密碼:在用戶校驗時驗證用戶的合法性。超級用戶root可以更改系統中所有用戶的密碼,普通用戶登陸後可以使用 pawwd 命令來更改自己的密碼。在 /etc/passwd 文件中該字段一般為 x ,這是因為處於安全考慮該字段加密後的密碼數據已經移至 /etc/shadow 中。 /etc/shadow 文件不能被普通用戶讀取,只有超級用戶才有權讀取。
  3. 用戶標識號(USER ID):USER ID,簡稱UID,是一個數值,用於唯一標識Linux系統中的用戶。在Linux系統中最多可使用65535個用戶名,用戶名和UID都可以用於標識用戶。相同UID的用戶可以認為是同一用戶,同時他們也具有相同的權限,當然對於使用者來說用戶名更容易記憶和使用。
  4. 組標識號(GROUP ID):GROUP ID,檢查GID,這是當前用戶所屬的默認用戶組標識。當添加用戶時,系統會默認建立一個和用戶名一樣的用戶組,多個用戶可以屬於相同的用戶組。用戶可以同時屬於多個組,每個組也可以有多個用戶。除了在 /etc/passwd 文件中指定其歸屬的基本組外,/etc/group 文件中也指明一個組所包含的用戶。
  5. 相關註釋:用於存放一些用戶的其它信息,比如用戶含義說明、用戶地址信息等。
  6. 主目錄:該字段定義了用戶的主目錄,登錄後shell將把該目錄作為用戶的工作目錄。登錄系統後可以使用 pwd 命令查看。超級用戶 root的工作目錄為 /root。每個用戶都有自己的主目錄,默認一般在 /home 下建立與用戶名一致的目錄,同時建立目錄時可以指定其它目錄作為用戶的主目錄。
  7. 使用的shell:shell是當前用戶登錄系統是運行的程序的名稱,通常是 /bin/bash。同時系統中可能存在其它的shell,比如 tsh。用戶可以自己指定shell,也可以隨時更改,比較流行的就行 /bin/bash。

二、用戶密碼文件 /etc/shadow

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

和 /etc/passwd 文件類似,shadow文件由9個字段組成,具體含義如下:

技術分享圖片

根據以下實例進行分析:

技術分享圖片

  1. 用戶名:也被稱為登錄名,/etc/shadow 中的用戶名和 /etc/passwd 相同,每一行是一一對應的,這樣就把 passwd 和 shadow 中的用戶記錄聯系在一起。
  2. 密碼:該字段是經過加密,如果是有些這個字段為 x ,表示這個用戶已經被禁止使用,不能登錄系統。
  3. 上次修改密碼時間:表示從1970年01月01日起到最近一次修改密碼的時間間隔,以天數為單位。
  4. 兩次修改密碼間隔的最少天數:該字段如果為0,表示此功能被禁用,如果是不為0的整數表示用戶必須經過多少天才能修改密碼。
  5. 兩次修改密碼間隔的最多天數:主要作用是管理用戶密碼的有效期,增強系統的安全性,該示例中為99999,表示密碼基本不需要修改。
  6. 提前多少天警告用戶密碼過期:在快到有效期時,當用戶登陸後,系統程序會提醒用戶密碼將要作廢,以便及時更改。
  7. 在密碼過期多少天後禁用此用戶:此字段表示用戶密碼作廢多少天後,系統會禁用此用戶。
  8. 用戶過期時間:指定了用戶作廢的天數,從1970年01月01日開始的天數。
  9. 保留字段: 目前為空,未使用。

三、用戶組文件 /etc/group

該文件用於保存用戶組的所有信息,通過它可以更好地對系統中的用戶進行管理。對用戶分組是一種有效的手段,用戶組和用戶之間屬於多對多的關系,一個用戶可以屬於多個組,一個組也可以包含多個用戶。用戶登錄時默認的組存放在 /etc/passwd 中。

此文件格式也類似於 /etc/passwd 文件,字段含義如下:

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

根據示例進行分析root:x:0:root

  1. 用戶組名:可以由字母、數字、下劃線組成,用戶組名是唯一的,和用戶名一樣不可重復。
  2. 用戶組密碼:該字段存放的是用戶組加密後的密碼,這一字段基本不使用,Linux系統的用戶組都沒有密碼。
  3. 用戶組標識號:GROUP ID 簡稱GID,和用戶標識號UID類似,也是一個整數,用於唯一標識一個用戶組。
  4. 組內用戶列表:是屬於這個組的所有用戶的列表,不同用戶之間用逗號分隔,不能有空格。這個用戶組可能是用戶的主組,也可能是附加組。

Linux用戶管理機制