linux-3. 用戶和用戶組管理

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:$61pgb5fLa1pgb5fLajtjmHA2rocUmD1qwrbe6EuSPC11wW8wDuK2qAudUnBZ3iKg.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個字段 組中附加用戶

二、用戶管理相關件

用戶添加的相關文件

  1. 用戶的家目錄
    • 普通用戶:/home/用戶名/,所有者和所屬組都是此用戶,權限是700
    • 超級用戶:/root/,所有者和所屬組都量root用戶,權限是550
  2. 用戶的郵箱
    • /var/spool/mail/用戶名/
  3. 用戶模板目錄
    • /etc/skel/
      創建家目錄時,裏面初始的文件就是從/etc/skel/目錄中拷貝過去的
      在這裏插入圖片描述

三、用戶管理命令

  1. 常用命令
    # 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. 手工刪除用戶:

    # 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/用戶名/
    
  2. 用戶默認值文件

    # 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
發佈了140 篇原創文章 · 獲贊 44 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章