在Linux中,每個檔案都分3類許可權:賬戶本身的許可權,賬戶所在群組的許可權和其它許可權。賬戶和群組是多對多的關係,即一個賬戶可以屬於多個群組,一個群組可以包含多個賬戶。但是,對於每一個已登入的賬戶,只能存在一個當前生效的群組(初始群組)。
賬戶管理相關設定檔如下:賬戶資訊檔是/etc/passwd、賬戶密碼檔案是/etc/shadow、群組資訊檔是/etc/group、群組密碼檔案是/etc/gshadow。
1、/etc/passwd檔案怎麼看
如,/etc/passwd檔案中每一行為一個賬戶,以冒號作為分割的每個欄位意思按序號分別如下:
[1] 賬戶名。改名使用命令usermod -l
[2] 密碼,該欄位已啟用。賬戶密碼在/etc/shadow檔案配置
[3] UID,賬戶的唯一標識。影響該欄位值的命令包括:useradd -u、usermod -u
[4] GID,初始群組的唯一標識,關聯/etc/group檔案的第3個欄位。該群組為賬戶預設的有效群組(有效群組可以使用newgrp命令進行切換)。影響該欄位值的命令包括:useradd -g、usermod -g
[5] 描述。影響該欄位值的命令包括:useradd -c、usermod -c
[6] 家目錄絕對路徑。影響該欄位值的命令包括:useradd -d、usermod -d
[7] shell,賬戶預設啟用的shell,當為/sbin/nologin時賬戶無法登入。賬戶能使用的shell可以用命令chsh -l查詢(查詢結果為/etc/shells檔案的內容)。影響該欄位值的命令包括:useradd -s、usermod -s
2、/etc/shadow檔案怎麼看
如,檔案/etc/shadow的每一行對應一個賬戶的密碼資訊,以冒號作為分割的每個欄位意思按序號分別如下:
[1] 賬戶名,關聯/etc/passwd檔案的第1個欄位
[2] 密碼,加密後的密文,密碼編譯演算法由/etc/login.defs檔案中的ENCRYPT_METHOD指定,此處為SHA512。影響該欄位值的命令包括:usermod -L(前置!!凍結)、usermod -U(解凍)、passwd -l(凍結)、passwd -u(解凍)、
[3] 建立日期,顯示的是一個數字,該數字表示自1970-01-01以來所經曆的天數。影響該欄位值的命令包括:chage -d
[4] 密碼建立之後需經曆多少天才能再次修改,0表示無此限制。影響該欄位值的命令包括:passwd -n、chage -m
[5] 密碼建立多少天之後就到期,99999天約等於99999/365年,好幾百年意味著密碼不會到期。影響該欄位值的命令包括:passwd -x、chage -M
[6] 密碼到期前多少天開始向使用者發送警告資訊。影響該欄位值的命令包括:passwd -w、chage -W
[7] 密碼到期後還能寬限多少天,在此時間段內使用者還可以登入和修改密碼,過了這個時間段使用者就不能夠登入了。影響該欄位值的命令包括:useradd -f、usermod -f、passwd -i、chage -I
[8] 失效日期,一個數字,該數字表示自1970-01-01以來所經曆的天數。過了這一天使用者的密碼就失效,無論是否到期均不可再登入。影響該欄位值的命令包括:useradd -e、usermod -e、chage -E
[9] 保留
3、/etc/group檔案怎麼看
如,檔案/etc/group的每一行對應一個群組,以冒號作為分割的每個欄位意思按序號分別如下:
[1] 群組名。改名使用命令:groupmod -n
[2] 密碼,已啟用,群組密碼在/etc/gshadow檔案中配置
[3] GID,群組唯一標識,由/etc/passwd檔案中的第4個欄位關聯,作為對應賬戶的初始群組。影響該欄位值的命令包括:groupadd -g、groupmod -g
[4] 帳號名列表,以逗號隔開。這些帳號可以主動切換為該群組的成員,如使用者mophee(初始群組為mophee)可使用newgrp命令將其生效群組切換為mysql或mail。影響該欄位值的命令包括:useradd -G、usermod -[a]G
4、/etc/gshadow檔案怎麼看
如,檔案/etc/gshadow中的每一行對應一個群組的密碼資訊,以冒號作為分割後的每個欄位意思按序號分別如下:
[1] 群組名,與/etc/group中的群組名對應
[2] 密碼,加密後的密文,使用命令gpasswd group_name可設定群組密碼,使用gpasswd -r group_name刪除密碼
[3] 群組管理員,使用命令gpasswd -A user1,... group_name 可設定群組的管理員。註:群組管理員可以為群組成員設定密碼
[4] 群組成員,該欄位與/etc/group的第4個欄位相同且同步更改,除了使用useradd -G、usermod -G命令維護外,還可使用gpasswd -[adM]進行維護。影響該欄位值的命令包括:useradd -G、usermod -[a]G
-----------------------------------------------
理論上,修改以上4個設定檔就可以進行賬戶管理,但不建議這樣進行賬戶管理。Linux提供足夠的命令對賬戶進行管理,雖然這些命令實質上也是修改這4個檔案的內容,但建議使用這些命令:
useradd:添加賬戶
useradd mophee #建立群組mophee,建立賬戶mophee,建立家目錄/home/mophee且許可權為700。無密碼,無法登入。useradd -u 519 -g users mophee2 #建立賬目mophee2並指定UID為519,指定初始群組為usersuseradd -r mophee3 #建立系統帳號mophee3,UID和GID範圍:100~499,無家目錄
usermod:修改賬戶
userdel:刪除賬戶
userdel mophee #刪除賬戶mophee:#1、從/etc/passwd和/etc/shadow刪除;#2、從/etc/group和/etc/gshadow的最後一個欄位除移;#3、若其初始群組無其它成員賬戶,則刪除群組userdel -r mophee #除了刪除賬戶外,還刪除其家目錄和郵件目錄
passwd:賬戶密碼管理
passwd -S mophee #列出帳號mophee相關的密碼資訊
chage:修改賬戶密碼,一般使用者可用此命令修改自己的密碼
chage -l mophee #列出帳號mophee相關的密碼資訊
groupadd:添加群組
groupmod:修改群組
groupdel:刪除群組
gpasswd:群組密碼、群組管理員和成員管理
groups:查看所屬群組
groups mophee #列出帳號mophee所屬的群組
newgrp:切換有效群組
----------------------------------------------
與賬戶管理有關的其它設定檔:/etc/login.defs、/etc/default/useradd(使用命令useradd時的一些預設值)。
1、檔案/etc/default/useradd怎麼看
GROUP:預設的群組ID
HOME:家目錄的基準目錄,添加賬戶且建立其家目錄等同於在該基準目錄下建立一個與賬戶名同名的目錄,影響/etc/passwd的第6個欄位
INACTIVE:設定密碼到期後是否失效,-1表示不會失效,影響/etc/shadow的第7個欄位
EXPIRE:密碼失效日期,影響/etc/shadow的第8個欄位
SHELL:預設的shell,影響/etc/passwd的第7個欄位
SKEL:建立家目錄是參考的初始內容,即建立家目錄時會將該目錄下的內容複寫一份到家目錄中
CREATE_MAIL_SPOOL:是否建立對應的mailbox目錄,yes/no,yes時會在/var/spool/mail/目錄下建立與帳號名同名的目錄用於儲存該賬戶的郵件
2、檔案/etc/login.defs怎麼看
MAIL_DIR:郵件目錄的基準目錄,一般為/var/spool/mail
PASS_MAX_DAYS:自密碼建立之日起到到期的天數,影響/etc/shadow的第5個欄位
PASS_MIN_DAYS:密碼建立之後不允許更改的天數,影響/etc/shadow的第4個欄位
PASS_MIN_LEN:設定密碼允許的最短長度,已啟用,由pam模組取代該功能
PASS_WARN_AGE:密碼到期之前開始發送警告資訊的天數,影響/etc/shadow的第6個欄位
UID_MIN:小於該數字值的UID均為系統帳號,預設設為500。使用useradd且未添加-r選項時添加的賬戶UID均大於此值
UID_MAX:系統支援最大的UID值
GID_MIN:與UID_MIN功能類似,影響的是GID
GID_MAX:與UID_MAX功能類似,影響的是GID
CREATE_HOME:預設是否建立家目錄,yes/no
UMASK:家目錄預設許可權的反碼,即該值為077時,家目錄的許可權為700
USERGROUPS_ENAB:設定在使用userdel命令刪除賬戶時,如果其初始群組下沒有其它成員賬戶,是否將群組也刪除。yes/no
ENCRYPT_METHOD:密碼編譯演算法,如SHA512