RHCSA 考試 (EX200) 用戶和組管理
介紹
在這篇文章中,我們將看到 Linux 用戶和組管理,這適用于 RHEL 8 / 7 版本的 RHCSA 考試,我們將看到 Linux 用戶和組的創(chuàng)建、修改、刪除,可以通過命令或 GUI 工具來管理用戶和組
對于 RHCSA 考試,我們有用戶和組管理問題之一,通過創(chuàng)建具有不同場景的用戶和組來練習,默認情況下創(chuàng)建的用戶很少,每個用戶都是為服務/應用程序使用而創(chuàng)建的。
必須注意的三個重要文件
User /etc/passwd
Group /etc/groups
Shadow /etc/shadow
用戶文件
/etc/passwd 文件包含用戶名、密碼、用戶 ID、組 ID、組名、shell。
值用冒號(:)分隔,x 表示密碼,存儲在 /etc/shadow
文件中
[root@server1?~]#?cat?/etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
組文件
/etc/group
包含在服務器中創(chuàng)建的組列表,用戶與組映射
[root@server1?~]#?cat?/etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
shadow文件
/etc/shadow
文件由用戶名、密碼和密碼到期組成
[root@server1?~]#?cat?/etc/shadow
root:$6$mSW2hm02cqJh1wJh$NQVuSxJiaX4sY2MiMwQoXydkQ.49Tmp0RIVx6lQGrEk8E/jtdxeQPw8uc3YD9R3fTU8z9P8I1DUCofTobrm151::0:99999:7:::
bin::18358:0:99999:7:::?daemon::18358:0:99999:7:::
daemon:*:18358:0:99999:7:::
根用戶
root 用戶或管理員用戶將用戶和組 id 設置為 0
[root@server1?~]#?id?root
uid=0(root)?gid=0(root)?groups=0(root)
需要注意的幾點
用戶和組 ID 以 1000 開頭,但是我們可以手動更改用戶和組 ID
我們將創(chuàng)建組 web 和 db,并且用戶到 web / db 組和一個用戶有多個組
用戶可以是單個組或多個組。root 用戶始終可以覆蓋用戶/組權(quán)限。
用戶管理
創(chuàng)建用戶
使用不同的 UID 將用戶創(chuàng)建為 user1 和 user2 和 user3
[root@server1?~]#?useradd?user1
[root@server1?~]#?useradd?user2
驗證用戶是否創(chuàng)建成功,現(xiàn)在可以看到 user1 和 user2 分別創(chuàng)建了用戶/組 ID 1000,1001
[root@server1?~]#?id?user1
uid=1000(user1)?gid=1000(user1)?組=1000(user1)
[root@server1?~]#?id?user2
uid=1001(user2)?gid=1001(user2)?組=1001(user2)
設置密碼
使用 passwd 命令設置密碼,密碼區(qū)分大小寫,最少 8 個字符,使用 passwd 命令設置所有其他用戶的密碼。
[root@server1?~]#?passwd?user2
Changing?password?for?user?user2.
New?password:
Retype?new?password:
passwd:?all?authentication?tokens?updated?successfully.
[root@server1?~]#
使用特定用戶 ID 創(chuàng)建用戶
在場景中,很少有應用程序需要特定的用戶 ID 和組 ID
[root@server1?~]#?useradd?-u?501?user6
[root@server1?~]#?id?user6
uid=501(user6)?gid=1004(user6)?group=1004(user6)
組管理
創(chuàng)建組
我們將使用group命令創(chuàng)建兩個組 web 和 db
[root@server1?~]#?groupadd?web
[root@server1?~]#?groupadd?db
驗證是否已創(chuàng)建組
[root@server1?~]#?grep?web?/etc/group
web:x:1002:
[root@server1?~]#?grep?db?/etc/group
db:x:1003:user5
[root@server1?~]#?grep?db?/etc/group
具有特定組 ID 的組
在少數(shù)情況下,應用程序 /db 需要創(chuàng)建特定的組 ID,使用 groupadd / groupmod 命令中的 -g 選項,我們可以分配特定的組 ID
[root@server1?~]#?groupadd?-g?555?testgroup
[root@server1?~]#?grep?555?/etc/group
testgroup:x:555:
創(chuàng)建新用戶并使用特定組
我們將分配一個具有特定組的用戶,而不是分配的默認組,我們將在組web中創(chuàng)建user3
[root@server1?~]#?useradd?user3?-g?web
創(chuàng)建 user4 并分配組db
[root@server1?~]#?useradd?user4?-g?db
創(chuàng)建user5,主組為web,輔助組為db
[root@server1?~]#?useradd?user5?-g?web?-G?db
驗證創(chuàng)建的所有三個用戶的用戶和組 ID
[root@server1?~]#?id?user3
uid=1002(user3)?gid=1002(web)?groups=1002(web)
[root@server1?~]#?id?user4
uid=1003(user4)?gid=1003(db)?groups=1003(db)
[root@server1?~]#?id?user5
uid=1004(user5)?gid=1002(web)?groups=1002(web),1003(db)
用戶只能有一個主要組和多個次要組,主要組用-g表示,次要組用-G表示,多個次要組用-G group1, group2,..,groupX
用戶/組修改
我們可以根據(jù)需要更改用戶和組。假設我們要將用戶更改為其他組或設置默認 shell 變量,我們可以使用以下方法
將輔助組添加到數(shù)據(jù)庫,主組保持與 user2 相同
[root@server1?~]#?id?user2
uid=1001(user2)?gid=1001(user2)?group=1001(user2)
我們要將 user2 輔助組更改為 db 并使用id命令驗證它
[root@server1?~]#?usermod?-G?db?user2
[root@server1?~]#?id?user2
uid=1001(user2)?gid=1001(user2)?groups=1001(user2),1003(db)
在上面的例子中,我們可以看到 user2 的主要組是 user2,次要組是db
為用戶添加多個組
添加一個或多個輔助組,現(xiàn)在 user2 將成為 user2 組的一部分,以及 web 和 db 作為輔助組
[root@server1?~]#?usermod?-G?db,web?user2
[root@server1?~]#?id?user2
uid=1001(user2)?gid=1001(user2)?groups=1001(user2),1002(web),1003(db)
在上面的示例中,我們可以看到 user2 的輔助組將是 web 和 db,我們還可以驗證 /etc/group 中的更改也已更新
root@server1?~]#?grep?user2?/etc/group
user2:x:1001:
web:x:1002:user2
db:x:1003:user5,user2
在上面的輸出中,我們可以看到用戶在 user2/web/db 組中
組修改
使用組修改命令,我們將測試組重命名為 devgroup
[root@server1?~]#?groupmod?testgroup?-n?devgroup
[root@server1?~]#?grep?555?/etc/group
devgroup:x:555:
刪除用戶/組
我們要刪除 user6 和組 devgroup,檢查id命令輸出,我們可以看到 user6 已經(jīng)分配了組 devgroup
[root@server1?~]#?id?user6
uid=501(user6)?gid=555(devgroup)?groups=555(devgroup)
[root@server1?~]#?userdel?user6
[root@server1?~]#?groupdel?devgroup
使用id命令驗證命令
[root@server1?~]#?id?user6
id:?'user6':?no?such?user
[root@server1?~]#