Linux學(xué)習(xí)——用戶管理
1用戶/組概覽
Linux系統(tǒng)是多用戶、多任務(wù)的分時(shí)操作系統(tǒng),系統(tǒng)上每一個(gè)進(jìn)程都有一個(gè)特定的文件,每個(gè)文件都被一個(gè)特定的用戶所擁有。如果需要使用系統(tǒng)資源,首先必須向系統(tǒng)超級(jí)用戶申請(qǐng)成為普通用戶,然后以普通用戶的身份進(jìn)入系統(tǒng)。超級(jí)用戶可以對(duì)普通用戶進(jìn)行跟蹤,并設(shè)置他們的訪問權(quán)限,這樣可以保證系統(tǒng)的安全。
每個(gè)用戶都屬于一個(gè)用戶組或者多個(gè)組,系統(tǒng)可以對(duì)—個(gè)用戶組中的所有用戶進(jìn)行集中管理。組與組的控制權(quán)限是不同的,系統(tǒng)根據(jù)不同的需求,把用戶分別放在不同的組中,
3.1.1 用戶標(biāo)識(shí) :UID與GID
每個(gè)用戶都有唯一的系統(tǒng)可識(shí)別的UID,它類似與居民身份證編號(hào)。
” id “ ——查看當(dāng)前用戶登錄信息,UID為用戶的ID,GID為用戶所屬組的ID,groups為用戶所屬于的所有組的ID
[root@localhost ~]# id uid=0(root) gid=0(root) 組=0(root) 環(huán)境=unconfined_uunconfined_tc0.c1023
” ll “——查看文件的所有者
[root@localhost ~]# ll /home 總用量 12 drwxrwxrwx. 2 root root 31 10月 18 15:21 dir01 drwxr-sr-x. 2 root hr 19 10月 18 15:11 hr drwx------. 3 linux linux 78 11月 1 15:19 linux drwx------. 3 linux01 linux01 78 11月 1 15:22 linux01 drwx------. 3 linux02 linux02 78 11月 1 15:22 linux02 drwx------. 3 linux03S linux03S 78 11月 1 15:22 linux03S drwx------. 17 none none 4096 11月 15 15:19 none drwx------. 5 qf01 qf01 123 10月 18 14:50 qf01 drwx------. 3 qf02 qf02 78 10月 11 14:15 qf02 drwx------. 15 siso siso 4096 11月 8 14:50 siso drwx------. 3 tom tom 78 10月 18 14:05 tom drwx------. 3 1003 user06 78 9月 27 14:34 user03 drwx------. 15 user05 user05 4096 9月 27 15:19 user05 drwx------. 6 user06 user06 120 9月 27 15:21 user06 drwx------. 3 ysq ysq 78 11月 14 22:22 ysq
” ps aux |less “ 查看進(jìn)程
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 193908 7060 ? Ss 12:00 0:26 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 root 2 0.0 0.0 0 0 ? S 12:00 0:00 [kthreadd] root 4 0.0 0.0 0 0 ? S< 12:00 0:00 [kworker/0:0H] root 6 0.0 0.0 0 0 ? S 12:00 0:00 [ksoftirqd/0] root 7 0.0 0.0 0 0 ? S 12:00 0:00 [migration/0] root 8 0.0 0.0 0 0 ? S 12:00 0:00 [rcu_bh] root 9 0.0 0.0 0 0 ? S 12:00 0:20 [rcu_sched] root 10 0.0 0.0 0 0 ? S< 12:00 0:00 [lru-add-drain] root 11 0.0 0.0 0 0 ? S 12:00 0:00 [watchdog/0] root 12 0.0 0.0 0 0 ? S 12:00 0:00 [watchdog/1] root 13 0.0 0.0 0 0 ? S 12:00 0:00 [migration/1] root 14 0.0 0.0 0 0 ? S 12:00 0:00 [ksoftirqd/1] root 16 0.0 0.0 0 0 ? S< 12:00 0:00 [kworker/1:0H] root 17 0.0 0.0 0 0 ? S 12:00 0:00 [watchdog/2] root 18 0.0 0.0 0 0 ? S 12:00 0:00 [migration/2] root 19 0.0 0.0 0 0 ? S 12:00 0:00 [ksoftirqd/2] root 21 0.0 0.0 0 0 ? S< 12:00 0:00 [kworker/2:0H] root 22 0.0 0.0 0 0 ? S 12:00 0:02 [watchdog/3] root 23 0.0 0.0 0 0 ? S 12:00 0:00 [migration/3] root 24 0.0 0.0 0 0 ? S 12:00 0:00 [ksoftirqd/3]
安裝Apache服務(wù)器,重啟服務(wù)后,使用”ps aux “命令可以查看運(yùn)行的http進(jìn)程的用戶名
[root@localhost ~]# yum -y install httpd //安裝軟件包 [root@localhost ~]# systemctl start httpd //重啟服務(wù) [root@localhost ~]# ps aux | grep httpd root 43382 0.0 0.0 112824 988 pts/1 S+ 21:56 0:00 grep --color=auto httpd
3.1.2 用戶/組相關(guān)文件
在Linux系統(tǒng)中,所有用戶的用戶名和密碼都存放在/etc/passw和/etc/shadow這兩個(gè)文件中。
在/etc/passwd文件中,一行記錄對(duì)應(yīng)一個(gè)用戶,每行記錄又被冒號(hào)(:)分隔為7個(gè)字段, 依次為用戶名稱、密碼占位符、用戶UID、主組GID、注釋性描述、用戶主目錄、用戶的Shell,具體如下所示。
[root@localhost ~]# 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 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt
在/etc/shadow 文件中,每行記錄也由冒號(hào)分隔為9個(gè)字段, 依次為用戶名稱、加密后的密碼、最近改動(dòng)密碼時(shí)間、密碼不可變更時(shí)間(99999 為沒有限制)、密碼重新變更時(shí)間、密碼過期時(shí)間、密碼過期寬恕時(shí)間、用戶失效時(shí)間、保留,具體如下所示。
[root@localhost ~]# cat /etc/shadow root:$6$B5PGgwIX$1O51A5REbQ7GGaD71YI/vNEUNQIRebdO3cRWSLwt7Ezt91JEKiYo3uu8ATKETRYfV99YzIa/jjvzCZZ./K51x1:19655:0:99999:7::: bin:*:18353:0:99999:7::: daemon:*:18353:0:99999:7::: adm:*:18353:0:99999:7::: lp:*:18353:0:99999:7::: sync:*:18353:0:99999:7::: shutdown:*:18353:0:99999:7::: halt:*:18353:0:99999:7:::
第 2個(gè)字段又分為三部分: $6 表示加密算法的$id, $id 包括$1(MD5)、$5(SHA-256)、$6(SHA-512), $id號(hào)越大加密程度越高; $iXOPTKmyXMvd/uDJ表示 salt值(這個(gè)值是由系統(tǒng)隨機(jī)生成的,若兩個(gè)用戶使用同一個(gè)密碼,由于系統(tǒng)為它們生成的 salt值不同,哈希值也是不同的); 最后一個(gè)$后的內(nèi)容是系統(tǒng)產(chǎn)生的哈希值。$id+salt值+哈希值就是最終的加密密碼。
例如,創(chuàng)建密碼一樣的兩個(gè)用戶,查看哈希值,具體如下所示。
qf1:$6$8FtewMfM$RPD0aIuDGmpE. rAMt7GKCWP8jNs2TtG3nmxbRFqdwm/r3T91R7A4jfTimRj/qbEH PbXQ6ncIcZtryXV2E5MPK.: qf2:$6$FRsRAaAa$WJuDA0I8w7aM5t. L8484mVRd/defTv44xi. PNjxv1G7XpKJQGCvH8R492ZDs6Bdo PIMjoMTpn18f15c5Ipwtt0:
注意,從CentOS 6開始, UID為0是特權(quán)用戶, UID為1~499是系統(tǒng)用戶, UID為500 以上是普通用戶。
3.1.3 用戶管理類型
1.超級(jí)管理員用戶
超級(jí)管理員主要識(shí)別是否是root和#這兩個(gè)必備的條件來(lái)確定當(dāng)前狀態(tài)下是否為管理員用戶
超級(jí)管理員用戶的權(quán)限的特點(diǎn)是可以使用所有系統(tǒng)及程序命令在Linux操作系統(tǒng)中,UID是指用戶ID(User ID),是Linux系統(tǒng)中用來(lái)標(biāo)識(shí)用戶的數(shù)字ID。每個(gè)用戶在Linux系統(tǒng)中都有一個(gè)唯一的UID,這個(gè)UID是系統(tǒng)內(nèi)部用來(lái)識(shí)別不同用戶的數(shù)字編號(hào),系統(tǒng)管理員可以用這個(gè)UID來(lái)對(duì)不同用戶進(jìn)行管理和授權(quán)。
在Linux中,UID為0的用戶是超級(jí)管理員(也就是root用戶),其余用戶通常是從1000開始分配的非特權(quán)用戶。當(dāng)一個(gè)用戶創(chuàng)建了一個(gè)文件或目錄時(shí),該文件或目錄的所有者UID就會(huì)設(shè)置為該用戶的UID。UID也用于系統(tǒng)安全性方面的考慮,因?yàn)橹挥蠻ID為0的超級(jí)管理員才能進(jìn)行關(guān)鍵系統(tǒng)操作,其他用戶只能按照分配給他們的權(quán)限執(zhí)行相應(yīng)的操作。因此,使用UID和權(quán)限機(jī)制可以保證系統(tǒng)的安全性和穩(wěn)定性。
2.普通用戶
普通用戶主要是以#標(biāo)識(shí)來(lái)參考當(dāng)前狀態(tài)下是否為普通用戶,與超級(jí)管理員不同的是普通用戶只可以使用有限的系統(tǒng)命令和具有使用權(quán)限的程序命令。
在Linux系統(tǒng)中,UID從0到999是保留給系統(tǒng)內(nèi)部特定用戶(例如,root用戶)和特殊組的,因此,普通用戶的UID通常從1000開始。在大多數(shù)Linux發(fā)行版中,普通用戶的UID編號(hào)范圍通常是1000到65535。
3.程序用戶
程序用戶是比較特殊的一種用戶、程序用戶可以運(yùn)行指令但不允許登錄系統(tǒng)和創(chuàng)建家目錄
UID編號(hào)范圍也與普通用戶和超級(jí)管理員用戶大不相同,程序用戶的UID編號(hào)范圍通常是1到999。
3.2 管理用戶/組
管理用戶與用戶組主要是創(chuàng)建、更改、刪除等操作
3.2.1 創(chuàng)建用戶/組
“useradd”——?jiǎng)?chuàng)建用戶
[root@localhost ~]# useradd qf1 [root@localhost ~]# grep "qf1" /etc/passwd /etc/passwd /etc/group /etc/passwd:qf1:x:1015:1015::/home/qf1:/bin/bash /etc/passwd:qf1:x:1015:1015::/home/qf1:/bin/bash /etc/group:qf1:x:1015: [root@localhost ~]# ls /home/ dir01 linux linux02 none qf02 siso user03 user06 hr linux01 linux03S qf01 qf1 tom user05 ysq [root@localhost ~]# ls /var/spool/mail/ linux linux02 none qf02 root siso user03 user06 linux01 linux03S qf01 qf1 rpc tom user05 ysq
useradd命令中的參數(shù)
參數(shù) | 說明 |
---|---|
-d | 指定用戶的主目錄 |
-u | 指定用戶特定的UID(整數(shù)) |
-g | 指定用戶主組的名稱或UID |
-G | 指定用戶的附加組列表 |
-s | 指定用戶的登錄shell |
“ groupadd ”——?jiǎng)?chuàng)建用戶組
“useradd -G”——?jiǎng)?chuàng)建用戶,并指定已存在的附加組
[root@localhost ~]# groupadd hh [root@localhost ~]# groupadd hhh [root@localhost ~]# useradd qf2 -G hh [root@localhost ~]# useradd qf3 -G hh,hhh [root@localhost ~]# id qf2 uid=1016(qf2) gid=1016(qf2) 組=1016(qf2),2006(hh) [root@localhost ~]# id qf3 uid=1017(qf3) gid=1017(qf3) 組=1017(qf3),2006(hh),2007(hhh)
“groupadd -g/gid”——指定組的GID
[root@localhost ~]# groupadd hhhh -g 2000 groupadd:GID “2000”已經(jīng)存在 [root@localhost ~]# groupadd hhhh -g 1802 [root@localhost ~]# grep "hhhh" /etc/group hhhh1802:
“usermod/gpasswd” ——修改一些錯(cuò)誤的設(shè)置數(shù)據(jù)
[root@localhost ~]# useradd qf4 -G hh [root@localhost ~]# id qf4 uid=1018(qf4) gid=1018(qf4) 組=1018(qf4),2006(hh) [root@localhost ~]# gpasswd -d qf4 hh 正在將用戶“qf4”從“hh”組中刪除 [root@localhost ~]# id qf4 uid=1018(qf4) gid=1018(qf4) 組=1018(qf4) [root@localhost ~]# gpasswd -a qf4 hhh 正在將用戶“qf4”加入到“hhh”組中 [root@localhost ~]# id qf4 uid=1018(qf4) gid=1018(qf4) 組=1018(qf4),2007(hhh)
用戶組的信息存在/etc/group文件中
[root@localhost ~]# tail /etc/group sie2004:ysq robot2005:ysq mysql27: qf011014: qf11015: hh2006:qf2,qf3 hhh2007:qf3,qf4 qf21016: qf31017: qf41018:
3.2.2 刪除用戶/組
“userdel” ——?jiǎng)h除用戶
“userdel -r”——同時(shí)在/home目錄與mail spool中刪除用戶
“userdel rm -rf ”——用戶不存在,手動(dòng)刪除
root@localhost ~]# id qf4 uid=1018(qf4) gid=1018(qf4) 組=1018(qf4),2007(hhh) [root@localhost ~]# userdel qf4 [root@localhost ~]# id qf4 id: qf4: no such user [root@localhost ~]# ls /home dir01 linux linux02 none qf02 qf2 qf4 tom user05 ysq hr linux01 linux03S qf01 qf1 qf3 siso user03 user06 [root@localhost ~]# ls /var/spool/mail linux linux02 none qf02 qf2 qf4 rpc tom user05 ysq linux01 linux03S qf01 qf1 qf3 root siso user03 user06 [root@localhost ~]# userdel -r qf3 [root@localhost ~]# ls /home dir01 linux linux02 none qf02 qf2 siso user03 user06 hr linux01 linux03S qf01 qf1 qf4 tom user05 ysq [root@localhost ~]# ls /var/spool/mail linux linux02 none qf02 qf2 root siso user03 user06 linux01 linux03S qf01 qf1 qf4 rpc tom user05 ysq
“groupdel”——?jiǎng)h除用戶組,如果某個(gè)初始用戶正在使用該用戶組,則無(wú)法刪除,此時(shí)需要修改該用戶的GID或者直接刪除該用戶
[root@localhost ~]# grep "hhhh" /etc/group hhhh1802: [root@localhost ~]# groupdel hhhh [root@localhost ~]# grep "hhhh" /etc/group
3.2.3 修改用戶密碼
任何用戶都可以通過 passwd 命令修改自己的密碼。只有root 用戶可以修改其他用戶的密碼。普通用戶修改密碼需要提供原密碼,對(duì)新密碼要求也比較苛刻,root 用戶修政普通用戶的密碼則不需要提供原密碼。當(dāng)新密碼個(gè)足 8位時(shí),系統(tǒng)給予警告。
[root@localhost ~]# passwd qf1
3.2.4 安全用戶
“ userdd -s ”——指定用戶的登錄Shell為sbin/nologin,可以將其設(shè)置為安全用戶
[root@localhost ~]# useradd qf8 -s /sbin/nologin [root@localhost ~]# tail -2 /etc/passwd qf2:x:1016:1016::/home/qf2:/bin/bash qf8:x:1017:1017::/home/qf8:/sbin/nologin
查看可登錄當(dāng)前系統(tǒng)的用戶
[root@localhost ~]# grep "bash$" /etc/passwd root:x:0:0:root:/root:/bin/bash none:x:1000:1000:None:/home/none:/bin/bash user05:x:1004:1006::/home/user05:/bin/bash qf02:x:1006:2002::/home/qf02:/bin/bash tom:x:1007:1007::/home/tom:/bin/bash linux:x:1008:1008::/home/linux:/bin/bash linux01:x:1009:1009::/home/linux01:/bin/bash linux02:x:1010:1010::/home/linux02:/bin/bash linux03S:x:1011:1011::/home/linux03S:/bin/bash siso:x:1012:1012::/home/siso:/bin/bash ysq:x:1013:1013::/home/ysq:/bin/bash qf01:x:1014:1014::/home/qf01:/bin/bash qf1:x:1015:1015::/home/qf1:/bin/bash qf2:x:1016:1016::/home/qf2:/bin/bash
“which reboot ”——查看reboot命令的絕對(duì)路徑
[root@localhost ~]# which reboot /usr/sbin/reboot [root@localhost ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash [root@localhost ~]# setenforce 0 //臨時(shí)關(guān)閉Selinux [root@localhost ~]# getenforce //查看Selinux狀態(tài) Permissive
3.2.5 配置文件
/etc/login.defs與/etc/default/useradd是命令useradd的配置文件,決定useradd創(chuàng)建用戶默認(rèn)的數(shù),文件中的配置對(duì)root用戶無(wú)效。
第15行為郵件目錄
#QMAIL_DIR Maildir MAIL_DIR /var/spool/mail #MAIL_FILE .mail # Password aging controls:
第25~28行為密碼相關(guān)配置
PASS_MAX_DAYS 99999 PASS_MIN_DAYS 0 PASS_MIN_LEN 5 PASS_WARN_AGE 7
第71行為密碼加密算法配置
# Use SHA512 to encrypt password. ENCRYPT_METHOD SHA512
/etc/default/useradd文件:
# useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
3.2.6 su/sudo 命令
" su "——切換用戶
[none@localhost ~]$ whoami none [none@localhost ~]$ su - 密碼: 上一次登錄:五 11月 24 23:29:31 CST 2023pts/2 上 [root@localhost ~]# su none [none@localhost root]$
“ sudo ”——只有加入wheel組才可以使用此命令,用戶在使用sudo時(shí),必須先輸入密碼,之后有五分鐘的有效時(shí)間,超過時(shí)限必須重新輸入密碼。
[root@localhost ~]# useradd qf9 -G wheel [root@localhost ~]# id qf9 uid=1018(qf9) gid=1018(qf9) 組=1018(qf9),10(wheel) [root@localhost ~]# su none [none@localhost root]$ useradd qf10 useradd: Permission denied. useradd:無(wú)法鎖定 /etc/passwd,請(qǐng)稍后再試。 [none@localhost root]$ sudo useradd qf10 [sudo] none 的密碼: [none@localhost root]$ sudo id qf10 uid=1019(qf10) gid=1019(qf10) 組=1019(qf10)
3.3 本章小結(jié)
本章首先介紹了用戶與用戶組標(biāo)識(shí)符的意義,用戶的shell作用以及如何對(duì)用戶/用戶組進(jìn)行增、刪、改、查等操作;其次,講解了如何設(shè)置/etc/passwd與/etc/shadow這兩個(gè)重要文件以及useadd的文件配置;最后演示了用戶如何使用su命令進(jìn)行身份切換,普通用戶如何使用sudo命令提權(quán)。
-
Linux
+關(guān)注
關(guān)注
87文章
11324瀏覽量
209938 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6858瀏覽量
123486
原文標(biāo)題:Linux學(xué)習(xí)——用戶管理
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論