跳轉到內容

Ict-innovation/LPI/107.1

來自華夏公益教科書,開放的書籍,用於開放的世界

107.1 管理使用者和組帳戶

[編輯 | 編輯原始碼]

候選人應該能夠新增、刪除、暫停和更改使用者帳戶。


關鍵知識領域

  • 新增、修改和刪除使用者和組。
  • 管理使用者/組資訊在密碼/組資料庫中。
  • 建立和管理特殊用途和有限帳戶。

Linux 是一個多使用者環境。每個使用者屬於一個主組(通常作為預設值建立),並且可能屬於其他組。Linux 中檔案的歸屬權與使用者 ID 和組密切相關。主題 107.1 為您準備學習如何新增、刪除和管理使用者和組。您還將瞭解 檔案在/etc中儲存了使用者和組資訊。

建立新使用者

[編輯 | 編輯原始碼]

/usr/sbin/useradd 命令將新使用者新增到系統中,符號連結 adduser 指向它。

語法:useradd [選項] 登入名

示例:新增一個登入名為 brian 的使用者

useradd brian

未指定任何選項時將使用預設值。您可以使用 useradd –D 列出這些值。

使用useradd –D

GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel    


列出的預設選項

注意:此資訊也位於 /etc/default/useradd 檔案中 id 命令可用於顯示有關使用者的基本資訊,例如他們的使用者 ID、他們的組以及他們可能屬於的任何其他組。

# id brian

uid=503(brian) gid=503(brian) groups=503(brian)

要允許使用者訪問其帳戶,管理員必須使用 passwd 工具為使用者分配密碼。 工具。

語法:passwd 登入名

按 Enter 鍵後,系統將提示您輸入密碼。現在使用者 brian 擁有一個密碼。由於使用者是使用 useradd 命令的預設設定建立的,因此使用者的環境(例如主目錄預設 shell 和他的組)都已設定。

useradd (選項)

-c 註釋(全名)
-d 主目錄路徑
-g 初始組 (GID)。GID 必須已經存在
-G 以逗號分隔的輔助組列表
-u 使用者的 UID
-s 使用者的預設 shell
-p 密碼(md5 加密,使用引號!)
-e 帳戶過期日期
-k skel 目錄
-n 關閉 UPG 組方案

使用組

[編輯 | 編輯原始碼]

每個新使用者都分配到一個初始(或)組。存在兩種約定。

傳統上,此組對所有使用者都相同,稱為 users,組 ID (GID) 為 100。許多 Linux 發行版都遵循這種約定,例如 Suse 和 Debian。

使用者私有組方案 (UPG) 由 RedHat 引入,它改變了這種約定,而不會改變 UNIX 組的工作方式。使用 UPG,每個新使用者都屬於他們自己的組。該組與登入名(預設)具有相同的名稱,並且 GID 在 500 到 60000 的範圍內(與 UID 相同)。

注意:使用傳統的組方案時,使用者的umask (見 LPI 101)設定為022,而在 UPG 方案中,umask設定為002.


屬於組

使用者可以屬於任意數量的組。但是,在任何時間(例如建立檔案時),只有一個組是有效組。

使用者所屬所有組的列表可以透過groupsid命令獲得。

使用者 root 的示例

id
uid=0(root) gid=0(root) groups=0(root), 1(bin), 2(daemon), 3(sys), 4(adm), 6(disk), 10(wheel), 600(sales)


groups
root bin daemon sys adm disk wheel sales

加入組

加入組會更改使用者的有效組,並開始一個新的會話,使用者可以從該會話中登出。這是使用 newgrp 命令完成的。該組應該已經存在。

示例:加入ict

newgrp ict

如果發出 groups 命令,列表中的第一個組將不再是root 而是ict

建立和刪除組

groupadd 工具用於新增新組。它將在/etc/group檔案中新增一個條目。

示例:建立 devel 組

groupadd devel


groupadd (選項)

-g 分配 GID

groupdel 工具用於刪除組。這將刪除/etc/group檔案中新增一個條目。

示例:刪除 devel 組

[[Image:]]groupdel devel

將使用者新增到組

可以使用gpasswd工具執行管理任務。可以新增-a或刪除-d組中的使用者,並分配管理員-A。該工具最初設計用於在組上設定單個密碼,允許同一組的成員使用相同的密碼登入。出於安全原因,此功能不再有效。

示例:將 andrew 新增到 devel 組

gpasswd -a andrew devel

配置檔案

注意:此資訊也位於 /etc/default/useradd 檔案中/etc/passwd/etc/shadow檔案:

系統中所有使用者的名稱都儲存在/etc/passwd中。此檔案具有以下結構

# 登入名
  1. 密碼(或 x 如果使用 shadow 檔案)
  1. UID
  1. GID
  1. 使用者的文字描述
  2. 使用者的 home 目錄

7. 使用者的 shell

這 7 個欄位由冒號分隔。如下面的示例所示。

george:$1$K05gMbOv$b7ryoKGTd2hDrW2sT.h:Dr G Micheal:/home/georges:/bin/bash

Shadow 密碼

為了將加密密碼隱藏在普通使用者之外,您應該使用 shadow 檔案。然後,/etc/shadow檔案包含使用者名稱和加密密碼,並且只有 root 可以讀取。

如果沒有 shadow 檔案在/etc中,您應該發出以下命令

/usr/sbin/pwconv (passwd -> shadow)

這將在/etc/passwd的第二個欄位中留下一個“x”,並建立 /etc/shadow 檔案。如果您不想使用 shadow 密碼,可以使用

/usr/sbin/pwunconv (shadow -> passwd)

注意:使用 shadow 密碼檔案時,/etc/passwd檔案可能是世界可讀的(644),並且 /etc/shadow 檔案必須限制更多(600 甚至 400)。但是,使用 pwunconv 時,請確保更改/etc/password (600 或 400)的許可權。

注意:此資訊也位於 /etc/default/useradd 檔案中/etc/groupgshadow files:

同樣,有關組的資訊儲存在/etc/group中。此檔案有 4 個欄位,由冒號分隔。

# 組名
  1. 組密碼(或 x 如果存在 gshadow 檔案)
  2. GID
  3. 以逗號分隔的成員列表

示例/etc/group條目

java:x:550:jade, eric, rufus

與使用者一樣,有一個/etc/gshadow檔案,它在使用 shadow 組密碼時建立。用於在 shadow 檔案和非 shadow 檔案之間來回切換的實用程式如下

/usr/sbin/grpconv 建立 /etc/gshadow 檔案


/usr/sbin/grpunconv 刪除 gshadow 檔案

/etc/login.defs/etc/skel/ 檔案

注意:此資訊也位於 /etc/default/useradd 檔案中/etc/login.defs檔案包含以下資訊

  • 郵件儲存目錄:MAIL_DIR
  • 密碼老化控制:PASS_MAX_DAYS、PASS_MIN_DAYS、PASS_MAX_LEN、PASS_WARN_AGE
  • useradd 中自動 UID 選擇的最大/最小值:UID_MIN、UID_MAX
  • groupadd 中自動 GID 選擇的最大/最小值:GID_MIN、GID_MAX
  • 使用 useradd 自動建立主目錄:CREATE_HOME


注意:此資訊也位於 /etc/default/useradd 檔案中/etc/skel目錄包含將在建立新使用者時複製到使用者主目錄的預設檔案.bashrc.bash_profiles、…這些可以透過檢視使用者主目錄中的隱藏檔案來檢視。

修改帳戶和預設設定

[編輯 | 編輯原始碼]

在建立使用者或組時,所有可用選項都可以修改。可以使用usermod實用程式具有以下主要選項


usermod (選項)

-d 使用者目錄
-g 使用者初始 GID
-l 使用者的登入名
-u 使用者的 UID
-s 預設 shell。

注意這些選項與以下選項相同useradd.

在下面的示例中,使用者 brian 已重新命名為 user2,其 shell 現在為 TurboC shell,其主目錄也已更改。

# usermod -l user2 -s /bin/tcsh -d /home/user2 brian

同樣,您可以使用以下命令更改有關組的詳細資訊groupmod 實用程式。主要有兩個選項

-g GID
-n 組名。

鎖定帳戶

可以透過在使用者密碼前新增感嘆號來鎖定使用者的帳戶。這也可以使用以下命令列工具完成

鎖定 解鎖
passwd -l passwd -u
usermod -L usermod -U

使用影子密碼時,將x替換為* 。一個不太有用的選項是使用以下命令完全刪除密碼passwd -d。最後,還可以分配/bin/false到使用者的預設 shell 中/etc/passwd.

更改密碼過期日期

預設情況下,使用者的密碼有效期為 99999 天,即 273,9 年(預設 PASS_MAX_DAYS)。系統會提前 7 天提醒使用者其密碼即將過期(預設 PASS_WARN_AGE),當用戶登入時會顯示以下訊息


警告:您的密碼將在 6 天后過期

還有另一個密碼老化策略編號稱為 PASS_MIN_DAYS。這是使用者可以更改其密碼的最短天數;預設情況下設定為零。

注意:此資訊也位於 /etc/default/useradd 檔案中chage tool 允許管理員更改所有這些選項。

用法chage [-l] [-m min_days] [-M max_days] [-W warn] [-I inactive] [-E expire] [-d last_day] user

第一個選項–l 列出使用者的當前策略值。我們將僅討論–E 選項。這會在給定日期鎖定帳戶。日期以 UNIX 天數或 YYYY/MM/DD 格式表示。

注意,所有這些值都儲存在/etc/shadow 檔案中,並且可以直接編輯。

刪除帳戶

可以使用以下命令刪除使用者的帳戶 userdel 命令。若要確保使用者的 home 目錄也被刪除,請使用-r 選項。

userdel -r jade


專用帳戶

root 的使用者 ID 為 0,而其他一些使用者的使用者 ID 從在/etc/login.defs 中設定的 UID_MIN 值開始,通常設定為 500 或 1000。

root 不是 Linux 系統上唯一的專用帳戶。還有其他一些帳戶用於守護程序,例如郵件、SSH、FTP、新聞等。這些帳戶可以從以下檔案檢視/etc/passwd 檔案.

ntp:x:38:38::/etc/ntp:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin news:x:9:13:news:/etc/news: nobody:x:99:99:Nobody:/:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin apache:x:48:48:Apache:/var/www:/sbin/nologin gopher:x:13:30:gopher:/var/gopher:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

可以想象,無法透過常規登入訪問專用帳戶。它們有助於控制檔案和守護程序,因此具有特殊的登入 shell /sbin/nologin,或者/bin/false。對這些 shell 的任何登入嘗試都會自動失敗。



以下是已使用檔案、術語和實用程式的部分列表。* /etc/passwd

  • /etc/shadow
  • /etc/group
  • /etc/skel
  • chage[檢查拼寫]
  • groupadd
  • groupdel
  • groupmod
  • passwd
  • useradd
  • userdel
  • usermod


上一章 | 下一章

華夏公益教科書