man useradd 可以查看到以下相關的有用信息
一、用戶配置文件
1.1 用戶信息文件:/etc/passwd
root: x:0:0:root:/root:/bin/bash
字段 | 作用 |
---|---|
第1個字段 | 用戶名稱 |
第2個字段 | 密碼標誌 x:代表此用戶有密碼,最後會去/etc/shadow中去找密碼,如果不寫,代表沒有密碼 |
第3個字段 | UID(用戶ID) 0:超級用戶, 1-499:系統用戶(僞用戶)500-65535:普通用戶 |
第4個字段 | GID(用戶初始組ID) |
第5個字段 | 用戶說明 |
第6個字段 | 家目錄 普通用戶:/home/用戶名/, 超級用戶:/root/ |
第7個字段 | 登錄之後的Shell |
如果想把一個普通用戶變成超級用戶,只需要將其UID改寫成0
初始組:就是指用戶一登錄就立刻擁有這個用戶組的相關權限,每個用戶的初始組只能有一個,一般就是和這個用戶的用戶相同的組名作爲這個用戶的初始組
附加組:指用戶可以加入多個其他的用戶組,並擁有這些組的權限,附加組可以有多個
1.2 影子文件:/etc/shadow
root:$6jtjmHA2rocUmD1qwrbe6EuSPC11wW8wDuK2qAudUnBZ3iKg.MaYNRLKUf1Mp0OilcXwA74msPaeUp/3OIL4sf/:18267:0:99999:7:::
字段 | 作用 |
---|---|
第1個字段 | 用戶名稱 |
第2個字段 | 加密密碼 , 如果密碼位是"!!"或“*”代表沒有密碼,不能登錄 |
第3個字段 | 密碼最後一次修改日期,使用1970年1月1日作爲標準時間,每過一天時間戳加1 |
第4個字段 | 再次修改密碼時,兩次密碼的修改間隔時間(和第3個字段相比)0: 代表再次修改密碼時,不需要時間間隔 |
第5個字段 | 密碼有效期(和第3個字段相比) |
第6個字段 | 密碼修改到期前的警告天數(和第5字段相比) |
第7個字段 | 密碼過期後的寬限天數(和第5字段相比)0:代表密碼過期後立即生效,-1:代表密碼永遠不會失效 |
第8個字段 | 賬號失效時間,要用時間戳表示 |
第9個字段 | 保留 |
1.3 組信息文件/etc/group和組密碼文件/etc/gshadow
/etc/group
root: x:0:
字段 | 作用 |
---|---|
第1個字段 | 組名 |
第2個字段 | 組密碼標誌 |
第3個字段 | GID |
第4個字段 | 組中附加用戶 |
/etc/gshadow
cdrom:*::panxiong
字段 | 作用 |
---|---|
第1個字段 | 組名 |
第2個字段 | 組密碼 |
第3個字段 | 組管理員用戶名 |
第4個字段 | 組中附加用戶 |
二、用戶管理相關件
用戶添加的相關文件
- 用戶的家目錄
- 普通用戶:/home/用戶名/,所有者和所屬組都是此用戶,權限是700
- 超級用戶:/root/,所有者和所屬組都量root用戶,權限是550
- 用戶的郵箱
- /var/spool/mail/用戶名/
- 用戶模板目錄
- /etc/skel/
創建家目錄時,裏面初始的文件就是從/etc/skel/目錄中拷貝過去的
- /etc/skel/
三、用戶管理命令
- 常用命令
# 1. 用戶添加命令:useradd # useradd [option] 用戶名 # -u UID:手工指定用戶的UID號 # -d 家目錄:手工指定用戶的家目錄 # -c 用戶說明:手工指定用戶的說明 # -g 組名:手工指定用戶的初始組 # -G 組名:指定用戶的附加組,多個附加組可以用逗號分隔 # -s shell:手工指定用戶的登錄shell。默認是/bin/bash useradd px # 創建一個用戶後,系統會自動修改或添加以下的文件: # grep px /etc/passwd # grep px /etc/shadow # grep px /etc/group # grep px /etc/gshadow # ll -d /home/px # ll /var/spool/mail/px useradd -u 550 -G root,bin -d /px -c "test user" -s /bin/bash px # # 2. 修改用戶密碼:passwd # passwd [option] 用戶名 # -S:查詢用戶密碼的密碼狀態。僅root用戶可用 # -l:暫時鎖定用戶,遠程就沒有辦法登錄,原理是在/etc/shadow下相關用戶的密碼前加上了!!。僅root用戶可用 # -u:解鎖用戶。僅root用戶可用 # --stdin:可以通過管道符輸出的數據作爲用戶的密碼 # 修改當前用戶的密碼 passwd passwd -S px # 輸出 px 01/06/2020 0 99999 7 -1 # 用戶名密碼設定時間(01/06/2020)密碼修改間隔時間(0) 密碼有效期(99999) # 警告時間(7) 密碼不失效(-1) echo "123" | passwd --stdin px # 3. 修改用戶信息:usermod # usermod [option] 用戶名 # -u UID:修改用戶的UID號 # -c 用戶說明:修改用戶的說明信息 # -G 組名:修改用戶的附加組 # -L:臨時鎖定用戶 # -U:解鎖用戶鎖定 # 修改用戶說明 usermod -c "test user" px # 把px用戶加入root組 usermod -G root px # 鎖定用戶 usermod -L px # 解鎖用戶 usermod -U px # 4. 修改用戶密碼狀態:chage # chage [option] 用戶名 # -l:列出用戶的詳細密碼狀態 # -d 日期:修改密碼最後一次更改日期(shadow 3字段) # -m 天數:再次密碼修改間隔(4字段) # -M 天數:密碼有效期(5字段) # -W 天數:密碼過期前警告天數(6字段) # -I 天數:密碼過後寬限天數(7字段) # -E 天數:賬號失效時間(8字段) # 這個命令其實是把密碼修改日期歸0了(shadow 3字段),這樣用戶一登陸就要修改密碼 chage -d 0 px # 5. 刪除用戶:userdel # userdel [-r] 用戶名 # -r:刪除用戶的同時刪除用戶家目錄 # 6. 用戶切換命令:su # su [option] 用戶名 # - :選項只使用“-” 代表連帶用戶的環境變量一起切換 # -c 命令:僅執行一次命令,而不切換用戶身份 su - root # 不切換成root, 但是執行useradd命令添加px用戶 su - root -c "useradd px" # 7. 查看用戶ID # id 用戶名 id px # 輸出:uid=0(root) gid=0(root) groups=0(root)
Linux下創建用戶時會用到useradd和adduser這兩個命令,他們的區別如下:
1.使用useradd時,如果後面不添加任何參數選項,例如:#sudo useradd test創建出來的用戶將是默認“三無”用戶:一無Home Directory,二無密碼,三無系統Shell。
2.使用adduser時,創建用戶的過程更像是一種人機對話,系統會提示你輸入各種信息,然後會根據這些信息幫你創建新用戶。
adduser會提示設置密碼,而useradd不會。
adduser會創建用戶目錄,比如/home/freebird freebird是用戶,useradd不會
dduser會創建用戶目錄,比如/home/freebird freebird是用戶,useradd不會
adduser會詢問全名,房間號碼,電話號碼等用戶信息,useradd不會
在Linux中,adduser更適合初級使用者,因爲不用去記那些繁瑣的參數選項,只要跟着系統的提示一步一步進行下去就行,缺點就是整個創建過程比較複雜而漫長;而useradd比較適合有些高階經驗的使用者,往往一行命令加參數就能解決很多問題,所以創建起來十分方便。
-
手工刪除用戶:
# 1. 刪除/etc/passwd中相關內容 vim /etc/passwd # 2. 刪除/etc/shadow中相關內容 vim /etc/shadow # 3. 刪除/etc/group相關內容 vim /etc/group # 4. 刪除/etc/gshadow中相關內容 vim /etc/gshadow # 5. 刪除郵箱 rm -rf /var/spool/mail/用戶名/ # 6. 刪除家目錄 rm -rf /home/用戶名/
-
用戶默認值文件
# 1. /etc/default/useradd文件 vim /etc/default/useradd - GROUP=100 # 用戶默認組 - HOME=/home # 用戶家目錄 - INACTIVE=-1 # 密碼過期寬限天數(shadow文件7字段) - EXPIRE= # 密碼失效時間(shadow文件8字段) - SHELL=/bin/bash # 默認shell - SKEL=/etc/skel # 模板目錄 - CREATE_MAIL_SPLLO=yes # 是否建立郵箱 # 2 /etc/login.defs PASS_MAX_DAYS 99999 # 密碼有效期(5) PASS_MIN_DAYS 0 # 密碼修改間隔(4) PASS_MIN_LEN 5 # 密碼最小5位(PAM) PASS_WANR_AGE 7 # 密碼到期警告(6) UID_MIN 500 # 最小和最在UID範圍 UID_MAX 60000 ENCRYPT_METHOD SHA512 # 加密模式
四、用戶組管理命令
# 8. 添加用戶組
# groupadd [option] 組名
# -g GID:指定組ID
groupadd group1
# 10. 修改用戶組
# groupmod [option] 組名
# -g GID:修改組ID
# -n 新組名:修改組名
# 把組名group1修改爲newgrp
groupmod -n newgrp group1
# 11. 刪除用戶組
# groupdel 組名
groupdel newgrp
# 12.把用戶添加入組或組中刪除
# gpasswd 選項 組名
# -a 用戶名:把用戶加入組
# -d 用戶名:把用戶從組中刪除
# 把用戶px加入newgrp組中
gpasswd -a px newgrp
# 把用戶px從newgrp組中刪除
gpasswd -d px newgrp