7.1、用戶配置文件
7.2、用戶管理相關文件
7.3、用戶管理命令
7.4、用戶組管理命令
7.1.1 用戶信息文件/etc/passwd
7.1.2 影子文件/etc/shadow
7.1.3 組信息文件/etc/group和組密碼文件 /etc/gshadow
7.1.2 影子文件/etc/shadow 1、影子文件/etc/shadow ?第1字段:用戶名 ?第2字段:加密密碼 ?加密算法升級為SHA512散列加密算法 ?如果密碼位是“!!”或“*”代表沒有密碼,不能登錄 ?第3字段:密碼最後一次修改日期 ?使用1970年1月1日作為標准時間,每過一天時間戳加1 ?第4字段:兩次密碼的修改間隔時間(和第3字段相比) ?第5字段:密碼有效期(和第3字段相比) ?第6字段:密碼修改到期前的警告天數(和第5字段相比) ?第7字段:密碼過期後的寬限天數(和第5字段相比) ?0:代表密碼過期後立即失效 ?-1:則代表密碼永遠不會失效。 ?第8字段:賬號失效時間 ?要用時間戳表示 ?第9字段:保留 2、時間戳換算 ?把時間戳換算為日期 ?date -d "1970-01-01 16066 days" ?把日期換算為時間戳 ?echo $(($(date --date="2014/01/06" +%s)/86400+1))
7.1.3 組信息文件/etc/group和組密碼文件 /etc/gshadow 1、組信息文件/etc/group ?第一字段:組名 ?第二字段:組密碼標志 ?第三字段:GID ?第四字段:組中附加用戶 2、組密碼文件/etc/gshadow 第一字段:組名 第二字段:組密碼 第三字段:組管理員用戶名 第四字段:組中附加用戶
7.2、用戶管理相關文件
1、用戶的家目錄
?普通用戶:/home/用戶名/,所有者和所屬組都是此用戶,權限是700
?超級用戶:/root/,所有者和所屬組都是root用戶,權限是550
2、用戶的郵箱
?/var/spool/mail/用戶名/
3、用戶模板目錄
?/etc/skel/
7.3 用戶管理命令
7.3.1 用戶添加命令useradd
7.3.2 修改用戶密碼passwd
7.3.3 修改用戶信息usermod 修改用戶密碼狀態chage
7.3.4 刪除用戶userdel 用戶切換命令su
1、useradd命令格式 [root@localhost ~]#useradd [選項] 用戶名 選項: -u UID: 手工指定用戶的UID號 -d 家目錄: 手工指定用戶的家目錄 //默認就好 -c 用戶說明: 手工指定用戶的說明 // 空格要加雙引號 -g 組名: 手工指定用戶的初始組 -G 組名: 指定用戶的附加組 // 用逗號分隔多個組 -s shell: 手工指定用戶的登錄shell。默認是/bin/bash 2、添加默認用戶 ?[root@localhost ~]# useradd lamp ?[root@localhost ~]# grep "lamp" /etc/passwd ?[root@localhost ~]# grep "lamp" /etc/shadow ?[root@localhost ~]# grep "lamp" /etc/group ?[root@localhost ~]# grep "lamp" /etc/gshadow ?[root@localhost ~]# ll -d /home/lamp/ ?[root@localhost ~]# ll /var/spool/mail/lamp 3、指定選項添加用戶 ?groupadd lamp1 ?useradd -u 550 -g lamp1 -G root -d /home/lamp1 \ -c "test user" -s /bin/bash lamp1 4、用戶默認值文件 ?/etc/default/useradd ?GROUP=100 #用戶默認組 ?HOME=/home #用戶家目錄 ?INACTIVE=-1 #密碼過期寬限天數(7) ?EXPIRE= #密碼失效時間(8) ?SHELL=/bin/bash #默認shell ?SKEL=/etc/skel #模板目錄 ?CREATE_MAIL_SPOOL=yes #是否建立郵箱 ?/etc/login.defs ?PASS_MAX_DAYS 99999 #密碼有效期(5) ?PASS_MIN_DAYS 0 #密碼修改間隔(4) ?PASS_MIN_LEN 5 #密碼最小5位(PAM) ?PASS_WARN_AGE 7 #密碼到期警告(6) ?UID_MIN 500 #最小和最大UID范圍 ?GID_MAX 60000 ?ENCRYPT_METHOD SHA512 #加密模式
7.3.2 修改用戶密碼passwd 1、passwd命令格式 [root@localhost ~]#passwd [選項] 用戶名 選項: -S 查詢用戶密碼的密碼狀態。僅root用戶 可用。 -l 暫時鎖定用戶。僅root用戶可用 -u 解鎖用戶。僅root用戶可用 --stdin 可以通過管道符輸出的數據作為用戶 的密碼。 2、查看密碼狀態 ?[root@localhost ~]# passwd -S lamp lamp PS 2013-01-06 0 99999 7 -1 #用戶名 密碼設定時間(2013-01-06) 密碼修改間隔時間(0) #密碼有效期(99999 ) 警告時間(7) 密碼不失效(-1) 3、鎖定用戶和解鎖用戶 ?[root@localhost ~]# passwd -l lamp ?[root@localhost ~]# passwd -u lamp 4、使用字符串作為用戶的密碼 ?[root@localhost ~]# echo "123" | passwd --stdin lamp 7.3.3 修改用戶信息usermod 修改用戶密碼狀態chage 1、修改用戶信息usermod [root@localhost ~]#usermod [選項] 用戶名 選項: -u UID: 修改用戶的UID號 -c 用戶說明: 修改用戶的說明信息 -G 組名: 修改用戶的附加組 -L: 臨時鎖定用戶(Lock) -U: 解鎖用戶鎖定(Unlock) ?[root@localhost ~]# usermod -c "test user" lamp #修改用戶的說明 ?[root@localhost ~]# usermod -G root lamp #把lamp用戶加入root組 ?[root@localhost ~]# usermod -L lamp #鎖定用戶 ?[root@localhost ~]# usermod -U lamp #解鎖用戶 2、修改用戶密碼狀態chage //直接修改shadow文件更直觀,只需要-d [root@localhost ~]#chage [選項] 用戶名 選項: -l: 列出用戶的詳細密碼狀態 -d 日期: 修改密碼最後一次更改日期(shadow3字段)//如果為0,則系統認為從來沒有改過密碼,這樣用戶一登陸就要就該密碼 -m 天數: 兩次密碼修改間隔(4字段) -M 天數: 密碼有效期(5字段) -W 天數: 密碼過期前警告天數(6字段) -I 天數: 密碼過後寬限天數(7字段) -E 日期: 賬號失效時間(8字段) ?[root@localhost ~]# chage -d 0 lamp #這個命令其實是把密碼修改日期歸0了(shadow第3字段)#這樣用戶一登陸就要修改密碼
7.3.4 刪除用戶userdel 用戶切換命令su 1、刪除用戶userdel [root@localhost ~]# userdel [-r] 用戶名 //一定要加上-r 選項: -r 刪除用戶的同時刪除用戶家目錄 手工刪除用戶 //再次useradd, 看能否添加成功,則證明刪除成功 ?[root@localhost ~]# vi /etc/passwd ?[root@localhost ~]# vi /etc/shadow ?[root@localhost ~]# vi /etc/group ?[root@localhost ~]# vi /etc/gshadow ?[root@localhost ~]# rm -rf /var/spool/mail/lamp ?[root@localhost ~]# rm -rf /home/lamp/ 2、查看用戶ID [root@localhost ~]# id 用戶名 3、切換用戶身份su [root@localhost ~]# su [選項] 用戶名 選項: - : 選項只使用“-”代表連帶用戶的環境 變量一起切換 -c 命令: 僅執行一次命令,而不切換用戶身份 ?[lamp@localhost ~]$ su – root #切換成root ?[lamp@localhost ~]$ su - root -c "useradd user3" #不切換成root,但是執行useradd命令添加user1用戶