1、系統用戶管理 用戶的分類(用戶的ID): UID:用戶的身份標識符,每個用戶都會被分配一個獨特的ID 系統用戶(服務用戶):0 ~ 999 之間 普通用戶:1000 ~ 6000之間 用戶名和UID信息通常存儲在/etc/passwd文件中 用戶的存在是為了能更好的控制系統許可權 1 root:x ...
1、系統用戶管理
用戶的分類(用戶的ID):
UID:用戶的身份標識符,每個用戶都會被分配一個獨特的ID
-
系統用戶(服務用戶):0 ~ 999 之間
-
普通用戶:1000 ~ 6000之間
-
用戶名和UID信息通常存儲在/etc/passwd文件中
-
1 root:x:0:0:root:/root:/bin/bash 2 root:用戶名 3 x:密碼占位符 # 表示用戶登錄時是否需要驗證密碼 4 0:用戶UID #身份標識符 5 0:用戶GID #用戶私有組 6 root:用戶描述信息 #描述這個用戶是乾什麼的(防止用戶名被泄露) 7 /root:用戶家目錄 #用戶登錄之後在那個目錄下 8 /bin/bash:登錄shell信息 #用戶登錄系統之後運行的第一個程式 9 /bin/bash 運行bash shell 表示可以登錄系統 10 /sbin/nologin 禁止登錄shell 表示不能登錄系統
2、系統用戶組管理
用戶組:在創建用戶時,如果沒有指定用戶的組,則自動創建一個以用戶名命名的組並將這個用戶加入到該組
-
私有組(屬組):在用戶創建時,一併指定的則,稱之為私有組
-
-
-
同一個組中的所有用戶能共用屬於這個組的文件
1 [root@example ~]# id user 2 uid=1000(user) gid=1000(user) groups=1000(user) 3 4 itgroup: zhangsan、lisi、wangwu 5 sagroup: alice、bob、mike、zhangsan 6 #zhangsan:itgroup(私有組),sagroup(公共組) 7 8 root:x:0:zhangsan 9 root:#表示組名 10 x:#組的密碼占位符 11 0:#組的ID 12 zhangsan:#表示組內用戶,在root組內有zhangsan這個用戶,多個用戶用逗號隔開;如果改組是某個用戶的私有組,則該用戶不會出現在該組中
3、useradd創建
-
-
-g:用戶組,指定用戶所屬的用戶組
-
-c:comment指定一段註釋性描述
-
-d:目錄,指定用戶主目錄,如果此目錄不存在,則同時使用 -m選項,可以創建主目錄
-
-G:用戶組,用戶組指定用戶所屬的附加組
-
-s:shell文件,指定用戶的登錄shell
1 root@example ~]# useradd -u 3000 ituser 2 [root@example ~]# id ituser 3 uid=3000(ituser) gid=3000(ituser) groups=3000(ituser) 4 5 [root@example ~]# useradd -g zhangsan ituser1 6 [root@example ~]# id ituser1 7 uid=3001(ituser1) gid=1001(zhangsan) groups=1001(zhangsan) 8 9 [root@example ~]# useradd -c "rhce user" ituser2 10 ituser2:x:3002:3002:rhce user:/home/ituser2:/bin/bash$ 11 12 [root@example ~]# useradd -d /ituser3 ituser3 13 ituser3:x:3003:3003::/ituser3:/bin/bash 14 15 [root@example ~]# useradd -s /sbin/nologin ituser4 16 ituser4:x:3004:3004::/home/ituser4:/sbin/nologin 17 18 [root@example ~]# su -s /bin/bash ituser4 19 [ituser4@example root]$ cd 20 [ituser4@example ~]$ pwd 21 /home/ituser4
用戶的UID可以重覆,一個UID可以對應多個用戶名,但是UID是唯一的存在;
系統會進行ID保留機制,部分UID已經提前分配給了應用程式,比如:38分配給了KVM,所以將保留的UID分配出去,就會導致新創建的用戶繼承到這個許可權;每次創建用戶都會將 /etc/passwd 中最大的UID加 1 分配給新的用戶;
4、usermod修改
usermod modify 修改
-
-g:指定私有組
-
-u:指定UID
-
-G:指定附加組
-
-c:描述信息
-
-d:家目錄(-m:移動家目錄,與 -d 一起使用)
-
-s:登錄shell
1 [root@example ~]# usermod -u 1003 ituser1 2 [root@example ~]# usermod -g 1000 ituser1 3 [root@example ~]# usermod -G user ituser1 4 [root@example ~]# usermod -c "test user" ituser1 5 [root@example ~]# usermod -d /demo/user1 ituser1
5、其它相關命令
-
userdel 用戶名:刪除一個用戶,僅僅只是從系統中將用戶刪除
-
1 # 解決辦法 2 [root@example ~]# rm -rf /var/spool/用戶名 3 4 [root@example ~]# rm -rf /home/用戶名
-
groupadd:創建新的組
-
-g:指定gid
-
gpasswd:設置組密碼
-
newgrp:登錄到指定組,並且登錄之後該組將成為用戶的私有組(臨時授權)
-
-
groupmod:修改組的信息
-
-n:指定新的組名
-
-
groupmems:管理組內成員
-
-g:指定組
-
-a:添加用戶
-
-d:刪除用戶
-
-l:列出組內用戶
-
-
1 [root@example ~]# groupmems -a ituser -g itgroup 2 [root@example ~]# groupmems -l -g itgroup 3 ituser 4 [root@example ~]# groupmems -d ituser -g itgroup
6、用戶的密碼信息
/etc/shadow:保存用戶的密碼信息(加密)
1 root:$6$HSqKs:19678:0:99999:7::: 2 第一列: #用戶名 3 第二列:#用戶密碼(密文) 4 PS:!!表示該用戶沒有設置密碼 5 * 表示用戶從來沒有設置密碼 6 預設是hash512演算法 7 第三列:上一次修改密碼的時間 8 第四列:密碼最短有效期 9 第五列:密碼最長有效期 10 第六列:警告天數 11 第七列:密碼鎖定天數 12 第八列:密碼過期時間(刪除密碼時間),是一個日期 13 第九列:保留欄位 14 15 #加密類型(演算法)安全套件:openssl 16 [root@example ~]# openssl passwd -5 redhat 17 $5$HY9wotlwulgPch2g$IbRLwroQqoZ0q45zLqybs7hdR3IHdg2F7/ItLeOvWeA 18 [root@example ~]# openssl passwd -6 redhat 19 $6$qQzsl2yVJjkxD421$XRmbyb/3lSD6611xPVmgQuDKN5tHNGW7SBuVEwxbw6jXLJlIODFJpwIimswycqF72iXC9PiEJduV1BfAs8mS// 20 [root@example ~]# openssl passwd -1 redhat 21 $1$cNtRJaY6$t4AQopvQ3M0NFr5w4Lp1t/ 22 23 [root@example ~]# chage user 24 Changing the aging information for user 25 Enter the new value, or press ENTER for the default 26 Minimum Password Age [0]: 5 #密碼最短有效期 27 Maximum Password Age [99999]: 77777 #密碼最長有效期 28 Last Password Change (YYYY-MM-DD) [2023-11-25]: #上一次修改密碼時間 29 Password Expiration Warning [7]: 5 # 警告天數 30 Password Inactive [-1]: 5 #鎖定天數 31 Account Expiration Date (YYYY-MM-DD) [-1]: 55555 #失效時間 32 33 #修改密碼預設規則 34 [root@example ~]# vim /etc/login.defs
7、Linux文件安全
-
文件UID和GID
-
每一個文件都有一個uid和gid
-
-
決定於哪個用戶可以訪問相應的文件
-
當程式在訪問文件時,會得到三類訪問許可權
-
程式的UID和文件的UID一致,則是以文件擁有人的身份訪問文件
-
程式的GID和文件的GID一致,則是以文件擁有組的身份訪問文件
-
程式的UID、GID和文件的UID、GID均不一致,則是以文件其他人身份訪問文件
-
-
文件許可權優先順序
-
如果UID一致,UID匹配文件成功;文件擁有人的身份訪問文件(user)
-
如果UID不一致,GID一致,GID匹配文件成功;文件擁有組的身份訪問文件(group)
-
如果UID、GID均不一致,則匹配文件的其他人身份;文件其他人的身份訪問文件(other)
1 -rw-r--r--. 1 root root 0 Nov 26 21:48 test.txt 2 -:表示文件類型(-:普通文件;d:目錄;l:軟鏈接(字元文件);b:塊設備) 3 rw-:表示擁有人的許可權 4 r--:表示擁有組的許可權 5 r--:表示其他人的許可權 6 .:表示文件受到seLinux的保護(安全機制) 7 1:表示文件的硬鏈接數(硬鏈接數決定了在系統中文件有幾份) 8 第一個root:文件的UID(文件的擁有人;文件的所有者) 9 第二個root:文件的GID(文件的擁有組) 10 0:文件的大小 11 Nov 26 21:48:文件最後一次修改的時間 12 test.txt:文件名
-
Linux文件系統許可權
-
查看文件和目錄的許可權
-
ls -l 文件名
-
ls -ld 目錄名
-
chmod u/g/o +/-/= 文件名:修改許可權(u+g+o=all)
-
-
1 -rw-r--r--. 1 root zhangsan 0 Nov 26 21:44 zhangsan.txt 2 3 許可權分配 文件所屬人 文件所屬組用戶 其它用戶 4 字元表示 r w x r w x r w x 5 許可權項 讀 寫 執行 讀 寫 執行 讀 寫 執行 6 數字表示 4 2 1 4 2 1 4 2 1 7 -:表示對應欄位沒有許可權 8 r:表示可以讀取文件內容 9 w:表示可以修改文件內容 10 x:表示文件可以被執行 11 12 #文件的擁有人可以強制對文件進行保存 13 #如果是對文件進行操作只需要看文件所在目錄的許可權;如果是對文件的內容進行操作,要看文件本身的許可權 14 15 #十進位 16 1表示該欄位有許可權 r w x 17 0表示該欄位沒有許可權 1 0 0 4 18 0 1 0 2 19 0 0 1 1 20 21 [root@example tmp]# chmod 751 zhangsan.txt 22 [root@example tmp]# ls -l zhangsan.txt 23 -rwxr-x--x. 1 root zhangsan 0 Nov 26 21:44 zhangsan.txt 24 [root@example tmp]# chmod u+r zhangsan.txt 25 [root@example tmp]# ls -l zhangsan.txt 26 -r--------. 1 root zhangsan 0 Nov 26 21:44 zhangsan.txt 27 [root@example tmp]# chmod u+w zhangsan.txt 28 [root@example tmp]# ls -l zhangsan.txt 29 -rw-------. 1 root zhangsan 0 Nov 26 21:44 zhangsan.txt 30 [root@example tmp]# chmod u+w,g+rw,o+r zhangsan.txt 31 [root@example tmp]# ls -l zhangsan.txt 32 -rw-rw-r--. 1 root zhangsan 0 Nov 26 21:44 zhangsan.txt 33 root@example tmp]# chmod +x zhangsan.txt 34 [root@example tmp]# ls -l zhangsan.txt 35 -rwxrwxr-x. 1 root zhangsan 0 Nov 26 21:44 zhangsan.txt
8、設置文件屬主和屬組
-
chown :用於設置文件的屬主和屬組(只能root用戶可以使用)
-
chgrp:只能設置文件的屬組
普通用戶可以賦權嗎?
-
普通用戶只能修改擁有人自己文件的許可權,不能修改其它人文件的許可權;普通用戶不能修改文件的擁有人/組
1 [root@example tmp]# chown zhangsan zhangsan/ 2 [root@example tmp]# ls -l 3 total 0 4 drwxr-xr-x. 2 zhangsan root 6 Nov 28 21:56 zhangsan 5 [root@example tmp]# chown root:zhangsan zhangsan/ 6 [root@example tmp]# ls -l 7 total 0 8 drwxr-xr-x. 2 root zhangsan 6 Nov 28 21:56 zhangsan 9 [root@example tmp]# chown :ituser zhangsan/ 10 [root@example tmp]# ls -l 11 total 0 12 drwxr-xr-x. 2 root ituser 6 Nov 28 21:56 zhangsan 13 [root@example tmp]# chgrp zhangsan zhangsan/ 14 [root@example tmp]# ls -l 15 total 0 16 drwxr-xr-x. 2 root zhangsan 6 Nov 28 21:56 zhangsan