用戶相關的文件及命令
阿新 • • 發佈:2018-07-27
oldboy efault 2.3 密碼 設置 用戶登錄 min sys 登錄shell 第1章 用戶管理的基本介紹
Linux system每個文件和進程,都需要對應一個用戶和組,
Linux system是通過UID和GID來識別用戶和組的。用戶名相當於人名,UID相當於×××號,系統只能識別UID。
1.1 用戶和組的關系:
一對一,一對多,多對一,多對多。
1.2 Linux system 用戶分類:
由/etc/login.defs這個文件裏面的內容來控制
超級用戶:UID為0,代表root
普通用戶:UID範圍500-65535,由超級用戶或者具有超級用戶權限的用戶創建的用戶
虛擬用戶:UID範圍1-499,存在滿足文件或者服務啟動的需要,一般都不能登錄。
第2章 用戶相關的文件說明
2.1 /etc/skel/
/etc/skel目錄是用來存放新用戶的環境變量文件的目錄,下面好多隱藏文件,當我們使用useradd指令創建新用戶的時候,這個目錄下的所有文件都會被自動的復制到新用戶的家目錄下。我們可有通過添加刪除修改這個目錄下的內容,來為新用戶提供統一的標準的初始化用戶環境
[root@oldboy_50 skel]# ls -a . .. .bash_completion .bash_logout .bash_profile .bashrc [root@oldboy_50 skel]# touch 123.txt [root@oldboy_50 skel]# useradd 122 [root@oldboy_50 skel]# ls /home/122/ 123.txt 2.2 /etc/passwd [root@oldboy_50 tmp]# cat /etc/passwd| head -n 2 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin 裏面存放的是用戶的相關信息分別代表 按照冒號分隔來說: 第一段:用戶名稱 usermod -l 可以修改 第二段:密碼位,但是真實的密碼不再這個文件裏面,在/etc/shadow裏面存放著,而且是密文 第三段:用戶的UID useradd -u 指定 第四段:用戶的GID useradd -g指定 ,usermod -g 修改 第五段:用戶的說明信息,useradd -c添加, 第六段:指定用戶登錄時的目錄 useradd -m 指定,usermod -d 修改 第七段:登錄時使用的shell useradd -s 指定,usermod -s 修改
2.3 /etc/shadow
存放的是給用戶密碼,有效期有關的配置
[root@oldboy_50 tmp]# tail -3 /etc/shadow zsf:$6$4WcGshTr$RTDci2kvT9ODqJyKjLOZOHlDCHoLvOVqz66muWo5WntqVA3o4ipCao3bLEjWQ82W.CoPQSyUby81EpTT/XqRd1:17728:0:99999:7::: haha:123123:17727:0:99999:7::: xixi:123:17728:0:99999:7::: 按照“:”來分隔 第一段:用戶名稱 第二段:用戶的密碼。沒有就用!表示,通過passwd設置的是密文的,useradd -p指定的密碼是明文的 第三段:“密碼最後一次修改時間”,在centos裏表示從“1970年1月1日”到修改密碼的那一天經歷的天數 第四段:密碼最小修改的間隔,在最下間隔之內不能修改密碼 第五段:密碼最長多久必須更改一次密碼,在這個天數之內必須改次密碼 第六段:警告時間,密碼過期前多少天提醒 第七段:不活動時間,用戶沒有登錄活動但賬號仍能保持有效的最大天數 第八段:失效時間,密碼的生存周期,超過這個天數該賬號就不能用了。時間也是相對於“1970年1月1日”開始的,通過usermod -e來更改
2.4 /etc/group
存放給用戶組相關的
[root@oldboy_50 tmp]# grep "root" /etc/group
root:x:0:
以“:”分隔
第一段:用戶組名稱
第二段:用戶組密碼
第三段:用戶組GID
第四段:這個群組裏面所有的賬號
2.5 /etc/gshadow
[root@oldboy_50 tmp]# grep "root" /etc/gshadow
root:::
以冒號分隔:
第一段:用戶組名稱
2.6 /etc/login.defs
用來定義創建用戶時需要的一些用戶的配置信息。
PASS_MAX_DAYS 99999 密碼的有效期
PASS_MIN_DAYS 0 兩次修改密碼的最小間隔
PASS_MIN_LEN 5 密碼的最小長度
PASS_WARN_AGE 7 密碼到期前多少天提醒
創建用戶的時候最小UID和最大UID
UID_MIN 500
UID_MAX 60000
創建用戶的時候最小GID和最大GID
GID_MIN 500
GID_MAX 60000
CREATE_HOME yes #是否自動創建家目錄
UMASK 077 #umask值控制用戶家目錄的
# This enables userdel to remove user groups if no members exist.
#刪除用的時候要刪除用戶組
USERGROUPS_ENAB yes
2.7 /etc/defaulst/useradd
創建用戶默認信息的配置文件
[root@oldboy_50 default]# cat useradd
#useradd defaults file
GROUP=100 #依賴於/etc/login.defs的USERGROUPS_ENAB參數,如果為no,則此處控制
HOME=/home 用戶家目錄存在的地方
INACTIVE=-1 是否啟用賬號過期停權,-1表示不使用
EXPIRE= 賬號終止日期
SHELL=/bin/bash 創建用戶的時候默認使用的shell
SKEL=/etc/skel 創建用戶從哪個目錄拷貝初始環境到家目錄下
CREATE_MAIL_SPOOL=yes 是否創建maill文件,在/var/mail
useradd 創建用戶(修改的是/etc/passwd這個文件)
3.1 命令說明
useradd - create a new user or update default new user information
創建一個新的用戶,或者更高這個新用戶的默認信息
修改的是/etc/passwd這個文件
3.2 命令格式
useradd [options] user_name
3.3 命令選項
3.3.1.1 -m 創建家目錄,默認選項
[root@oldboy_50 ~]# useradd useradd_user
[root@oldboy_50 ~]# ll -d /home/useradd_user/
drwx------ 2 useradd_user useradd_user 4096 Jul 14 18:41 /home/useradd_user/
3.3.1.2 -g 創建用戶所屬組,如果不指定就創建一個和用戶uid,名字一樣的用戶組
[root@oldboy_50 ~]# id useradd_user
uid=500(useradd_user) gid=500(useradd_user) groups=500(useradd_user)
3.3.1.3 -G 指定用戶的附屬組
[root@oldboy_50 tmp]# useradd 123 -G zsf 指定附屬組是
[root@oldboy_50 tmp]# grep zsf /etc/group
zsf:x:500:123
[root@oldboy_50 tmp]# id 123
uid=502(123) gid=502(123) groups=502(123),500(zsf)
3.3.1.4 -s 指定用戶的登錄shell,如果不指定默認是/bin/bash
[root@oldboy_50 ~]# grep "useradd_" /etc/passwd
useradd_user:x:500:500::/home/useradd_user:/bin/bash
3.3.1.5 -M 創建時不創建用戶家目錄
[root@oldboy_50 ~]# useradd test_zsf -M
[root@oldboy_50 ~]# ll -d /home/test_zsf
ls: cannot access /home/test_zsf: No such file or directory
3.3.1.6 -N 創建是不創建用戶組
3.3.1.7 -p “密碼” 創建時指定用戶密碼,在/etc/shadow文件裏面是明文顯示,不安全
[root@oldboy_50 tmp]# useradd zsf -p "123456"
3.3.1.8 -u 指定UID
[root@oldboy_50 tmp]# useradd -u 888 zsf
[root@oldboy_50 tmp]# id zsf
uid=888(zsf) gid=888(zsf) groups=888(zsf)
3.3.1.9 -c “說明信息”,添加用戶的說明信息
修改的是/etc/passwd 第五段
[root@oldboy_50 ~]# useradd zsf -c "this is test user"
[root@oldboy_50 ~]# grep ^zsf /etc/passwd
zsf:x:502:502:this is test user:/home/zsf:/bin/bash
第4章 usermod 更改用戶屬性
4.1 命令說明
修改用戶的基本屬性,沒辦法改變正在使用的賬號信息
4.2 命令格式
usermod [options] user_name
4.3 命令選項
4.3.1 -c 修改用戶的說明信息
[root@oldboy_50 ~]# usermod zsf -c "this is test usermod_c"
[root@oldboy_50 ~]# grep ^zsf /etc/passwd
zsf:x:502:502:this is test usermod_c:/home/zsf:/bin/bash
4.3.2 -d 修改用戶登錄時的目錄,一般默認為家目錄,作為登錄時的目錄,首先這個用戶要對這個目錄具有權限
[root@oldboy_50 ~]# grep ^zsf /etc/passwd
zsf:x:502:502:this is test usermod_c:/zsf:/bin/bash
4.3.3 -g 修改用戶的屬組
[root@oldboy_50 ~]# usermod -g fsz zsf
[root@oldboy_50 ~]# grep ^zsf /etc/passwd
zsf:x:502:503:this is test usermod_c:/zsf:/bin/bash
4.3.4 -G 修改用戶的附屬組
[root@oldboy_50 ~]# usermod -G zsf zsf
[root@oldboy_50 ~]# grep "^zsf" /etc/gshadow
zsf:!::zsf
4.3.5 -s 修改用戶登錄的shell
[root@oldboy_50 tmp]# grep test /etc/passwd
test:x:501:501::/home/test:/bin/bash
[root@oldboy_50 tmp]# usermod test -s /sbin/nologin
[root@oldboy_50 tmp]# grep test /etc/passwd
test:x:501:501::/home/test:/sbin/nologin
4.3.6 -L 鎖定用戶
4.3.7 -U 解鎖用戶
4.3.8 -s 修改用的登錄的shell
[root@oldboy_50 ~]# usermod zmy -s /sbin/nologin
[root@oldboy_50 ~]# grep "502" /etc/passwd
zmy:x:502:503:this is test usermod_c:/zsf:/sbin/nologin
4.3.9 -l 修改賬號的名稱
要更改成的名稱放在前面,賬戶的UID沒有變,只是名稱變了而已
[root@oldboy_50 ~]# usermod -l zmy zsf
[root@oldboy_50 ~]# grep "502" /etc/passwd
zmy:x:502:503:this is test usermod_c:/zsf:/bin/bash
4.3.10 -e "時間" 指定用戶到那一天到期,到期後就不能登錄使用了
直接在配置文件裏面改也行,但是比較麻煩
[root@oldboy_50 tmp]# usermod -e "2018-01-01" test
[root@oldboy_50 tmp]# grep test /etc/shadow
test:!!:17877:0:99999:7::17532:
第5章 userdel 刪除用戶
5.1 命令說明
刪除指定的用戶,以及用戶相關的文件。若不加選項只是刪除用戶的賬號,而不刪除相關的文件
5.2 命令格式
userdel [options] user_name
5.3 命令選項
5.4 -f 強制刪除,和rm的參數選項類似
5.5 -r 刪除用戶的同時,刪除與用戶相關的所有文件,刪除用戶家目錄
[root@oldboy_50 tmp]# userdel 123
[root@oldboy_50 tmp]# ll -d /home/123/
drwx------ 2 502 502 4096 Dec 12 01:18 /home/123/
[root@oldboy_50 tmp]# userdel -r test
[root@oldboy_50 tmp]# ll -d /home/test
ls: cannot access /home/test: No such file or directory
第9章 chage 修改賬號和密碼的有效期
9.1 命令說明
用來修改賬號和密碼的有效日期,主要修改/etc/shadow
9.2 命令格式
chage [options] userName
9.3 命令選項
9.3.1 後面直接跟用戶名,交互式修改
[root@oldboy_50 tmp]# chage zsf
Changing the aging information for zsf
Enter the new value, or press ENTER for the default
-m Minimum Password Age [0]: 7 兩次更改密碼的間隔
-M Maximum Password Age [99999]: 20 密碼多少天之內必須更改
-d Last Password Change (YYYY-MM-DD) [2018-07-16]: 2018-07-17 最後一次修改密碼的時間
-w Password Expiration Warning [7]: 9 密碼過期多少天前提醒
-i Password Inactive [-1]: 密碼到期多少天以後還不改密碼,就禁止使用
-E Account Expiration Date (YYYY-MM-DD) [-1]: 2018-08-08 用戶賬號到期時間
9.3.2 -m 修改賬號更改密碼的間隔,相當於/ect/shadow第4段
9.3.3 -M 修改久不修改密碼的時間,相當於/ect/shadow第5段
9.3.4 -d 最後一次修改密碼的時間,相當於/etc/shadow第3段
9.3.5 -w 密碼過期前多少天提醒,相當於/ect/shadow第6段
9.3.6 -i 密碼過期多少天以後還不更改密碼,此賬號不能用,相當於/etc/shadow第7段
9.3.7 -E 賬號到期的時間,相當於/etc/shadow第8段
9.3.8 -l 列出以上這些信息
[root@oldboy_50 tmp]# chage -l zsf
1)Last password change : Jul 17, 2018
2)Password expires : Aug 06, 2018
3)Password inactive : never
4)Account expires : Aug 08, 2018
5)Minimum number of days between password change : 7
6)Maximum number of days between password change : 20
7)Number of days of warning before password expires : 9
說明:
1)最近一次修改密碼的時間 /ect/shadow中的第3段
2)密碼的到期時間
3)密碼到期後多少天不改密碼就禁用 /ect/shadow中的第7段
4)賬戶的到期時間 /ect/shadow中的第8段
5)兩次改密碼的時間最小間隔,在這個間隔內不能再更改密碼 /ect/shadow中的第4段
6)密碼的最大改密碼間隔,在這個時間內必須改密碼 /ect/shadow中的第5段
7)密碼到期多少天之前提醒。 /ect/shadow中的第6段
用戶相關的文件及命令