歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux基礎知識 >> linux 學習7 用戶管理相關文件

linux 學習7 用戶管理相關文件

日期:2017/3/2 17:15:28   编辑:Linux基礎知識

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用戶

Copyright © Linux教程網 All Rights Reserved