關於用戶和組的知識
- 家目錄
用戶都有家目錄:root用戶家目錄爲/root。其他用戶的家目錄在/home/,如user1的家目錄爲/home/user1
當我們創建用戶時,系統就會自動創建該用戶的家目錄。
家目錄用~表示。cd ~
表示移動到家目錄中。
- 用戶
用戶的信息被保存在
/etc/passwd
。該文件保存了用戶名、用戶id、用戶所在的組id和shell等信息。
用戶都擁有id號。用uid表示。
- 組
組的概念:將用戶分組。這樣就可以將用戶按組來管理。
組都有id號。用gid表示。
組分爲主組和副組。用戶所在的主組只能有一個,副組可以有多個。
默認情況下,創建用戶時,自動創建該用戶的主組。用戶id和主組id相同。
關於用戶的命令
last #查看服務器的用戶登錄信息(tty表示物理機登錄,pts表示遠程登錄)
whoami #查看當前登錄用戶(我是誰)
who #查看當前登錄用戶(現在有誰登錄這臺服務器)
id #查看當前用戶id信息(uid和gid)
管理員用戶
管理員用戶是一個特殊用戶,他擁有很大的權限(僅此於root)。
- 添加一個管理員用戶
[root@localhost ~]$ vim /etc/sudoers
user1 ALL(ALL) ALL #添加管理員user1
#這樣就可以擁有很大的權限,比如:
[user1@localhost ~]$ sudo systemctl restart firewalld #重啓服務(在命令前加sudo)
關於用戶和組的管理文件
/etc/passwd
cat /etc/passwd
輸出:
......
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
user1:x:1000:1000::/home/user1:/bin/bash
這個文件分爲多個字段,字段之間用冒號:隔開。
字段分別是 用戶名:x表示密碼:uid:gid:用戶的描述信息:家目錄:用戶默認的shell
其中第二個字段表示密碼,用x佔位,真正的密碼保存在/etc/shadow文件中。
如果用戶默認的shell爲/sbin/nologin,表示用戶無法登陸。
- uid
root的UID爲0
系統用戶UID爲1~999
普通用戶UID爲1000+
/etc/shadow
這個文件保存着用戶的密碼(散列值)。
- 查看/etc/shadow
cat /etc/shadow
輸出:
root:$6$9tYeXsFoaHYvM.X4$c6g4oDV9A/l7OYerkrYmr1hNJXNccboRWUqnn4sjCvWnsPWNOO1S21OHqR1gTiGaUZhr9OxCYqv4aWugZGe9L1::0:99999:7:::
......
解釋:
格式
$id$salt$encrypted
解釋
id爲1,md5加密
id爲5,SHA256加密
id爲6,SHA512加密
salt爲鹽值,是對密碼進行hash的一個干擾值
注意:
這個文件非常重要,不能讓他人得到。
密碼最好最好定期更換,且設置複雜密碼。
否則容易被他人破解:https://blog.csdn.net/netrookiex/article/details/96431981
用戶管理命令
su-切換用戶
su user1 #切換到user1(不改變當前所在目錄)
su - user1 #切換到user1(改變當前所在目錄->user1的家目錄)
su #切換到超級用戶root
exit #退出當前用戶
增加用戶
創建用戶時,系統會自動創建出家目錄、郵箱目錄(/var/spool/mail/<用戶名>)
比如:
useradd user1 #增加用戶user1
passwd user1 #修改用戶user1的密碼
參數:
-d #指定家目錄
-g #指定基本組(主組)
-G #指定擴展組(副組)
-u #指定用戶UID
-s #指定Shell解釋器
-e #指定賬戶到期時間(YYYY-MM-DD)
-c #用戶描述
比如:
useradd -d /user3 user3 #創建用戶user3,並指定家目錄爲/user3,而不是/home/user3
useradd -s /sbin/nologin user4 #創建用戶user4,但是這個用戶無法登陸
- 增加組的命令類似:
groupadd userGroup #添加組userGroup
修改用戶信息
usermod #用法、參數與useradd幾乎一樣
-L #鎖定用戶(禁止登陸)
-U #解除鎖定(允許登陸)
-md #修改家目錄,並轉移舊數據至新家目錄
修改用戶密碼
passwd user1 #修改user1的密碼
-l #鎖定用戶(禁止登陸)
-u #解除鎖定(允許登陸)
-d #使用戶可使用空密碼(需要系統允許)
-e #下次登陸時修改密碼
-S #顯示用戶密碼配置信息
--stdin #從標準輸入中讀入密碼
舉例:
echo "123" | passwd --stdin user6 #user6的密碼變成了123,而不是用戶輸入
刪除
userdel user6 #刪除用戶user6
-r #同時刪除用戶相關目錄