Ict-innovation/LPI/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.
屬於組
使用者可以屬於任意數量的組。但是,在任何時間(例如建立檔案時),只有一個組是有效組。
使用者所屬所有組的列表可以透過groups或id命令獲得。
使用者 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中。此檔案具有以下結構
# 登入名
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/group和gshadow files:
同樣,有關組的資訊儲存在/etc/group中。此檔案有 4 個欄位,由冒號分隔。
# 組名
|
示例/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