在Linux 中,用戶的相關(guān)信息保存在對應(yīng)的文件中,這些文件分別是:/etc/passwd 和/etc/shadow 。
/etc/passwd
系統(tǒng)的每一個(gè)合法用戶帳號都對應(yīng)于該文件中的一行記錄。每行記錄定義了一個(gè)用戶帳號的屬性。可以用#cat /etc/passwd 或者#vim /etc/passwd 打開查看。
passwd 文件中每行對應(yīng)一個(gè)帳號,每個(gè)帳號由7 部分組成,各部分之間用“:”分隔。分別代表 用戶名:用戶密碼(用x 密碼占位符表示):UID (用戶標(biāo)識號):GID (用戶基本組標(biāo)識號):備注(用戶全名及用戶信息):用戶家目錄:默認(rèn)使用的shell (命令解釋程序)
/etc/shadow
Linux 將用戶的口令(密碼)保存在shadow 文件中,該文件不能被普通用戶讀取,只有root 用戶才有權(quán)利讀取。shadow 文件與passwd 文件一樣,每個(gè)用戶對應(yīng)其中的一行,并且用8 個(gè)冒號分成了9 個(gè)部分(稱為“域”)。如上圖,每段分別表示
1 、用戶名:與passwd 用戶名相對應(yīng)。
2 、用戶密碼:已被加密 如果它的開頭是“$ 1 $” 這意味著基于MD5 算法的加密 !如果是在密碼欄的第一個(gè)字符為* 或者是! ,表示此賬號并不會被用來登入,如果是!!表示帳號被鎖定(禁用),如果為空,表示用戶不需要密碼即可登陸。
3 、最近更動密碼的日期:這個(gè)字段記錄了更動密碼的那一天的日期。注意:Linux 日期的時(shí)間是以1970/01/01 作為 1 ,而1971/01/01 則為366 ,所以這個(gè)日期是累加的天數(shù)是一個(gè)絕對時(shí)間!
4 、密碼不可被更動的天數(shù):如果是0 ,表示密碼隨時(shí)可以更動。如果在此期間修改系統(tǒng)會提示:You must wait longer to change your password passwd: Authentication token manipulation error
5 、密碼必須在限制的天數(shù)內(nèi)修改的天數(shù):必須要在這個(gè)時(shí)間之內(nèi)重新設(shè)定的密碼,否則這個(gè)賬號將會暫時(shí)失效。而99999 ,表示密碼不需要重新輸入!
6 、密碼需要修改期限前的警告期限:當(dāng)賬號的密碼失效期限快要到的時(shí)候,系統(tǒng)會依據(jù)這個(gè)字段的設(shè)定,發(fā)出警告(Warning: your password will expire in 5 days )給這個(gè)賬號,提醒再過n 天密碼就要失效了。。。
7 、密碼過期的寬限時(shí)間:當(dāng)密碼失效后,還可以用這個(gè)密碼在n 天內(nèi)進(jìn)行登入。 而在這個(gè)天數(shù)后還沒有修改密碼,賬號就絕對失效了!
8 、賬號失效日期:也是用1970 年以來的總天數(shù)設(shè)定。賬號在此規(guī)定的日期之后,將無法再使用。通常應(yīng)用在收費(fèi)服務(wù)的系統(tǒng)中,可以規(guī)定一個(gè)日期讓該賬號不能再使用!
9 、保留:最后一個(gè)字段是保留的,看以后有沒有新功能加入
用戶組的信息保存在/etc/group 和/etc/gshadow 文件下
/etc/group
該文件記錄了系統(tǒng)中所有用戶組的信息,分為四段,各段含義如下:
1、 用戶組名稱:就是組的名字
2、 用戶組密碼:通常不需要設(shè)置,如果需要不一個(gè)用戶臨時(shí)加入其他組可能要用到。密碼記錄在/etc/gshadow 中。
3、 GID :用戶組標(biāo)識。
4、 用戶列表:以該組為附加組的所有帳號(如果該組是某用戶的基本組則該用戶不再此段列出),每個(gè)用戶用“,”隔開。
/etc/gshadow
與/etc/group 類似,也分為四個(gè)段,各段含義如下:
1、 用戶組名稱
2、 密碼欄:同樣的,開頭為!表示無法登陸
3、 用戶管理員帳號:
4、 該用戶組的所屬帳號:與/etc/group 內(nèi)容相同。
帳號管理常用命令
1、 新增用戶命令:useradd
語法:useradd[-c][-d][-e][-f][-g][-G group[,...]][-m[-k skeleton_dir]/-M]
[-s][-u[-o][-n][-r] username
選項(xiàng):-c 【comment 】新帳號說明欄,對應(yīng)于/etc/passwd 第五欄的內(nèi)容。
-d 【home_dir 】設(shè)定用戶的家目錄,不設(shè)定時(shí)使用預(yù)設(shè)值。
-e 【expire_date 】帳號終止日期,日期的指定格式為MM/DD/YY 。
-f 【inactive_days 】帳號過期幾日后永久停權(quán)。當(dāng)值為0 時(shí)帳號則立刻被停權(quán)。而當(dāng)值為-1 則關(guān)閉此功能。預(yù)設(shè)值為-1.
-g 【initial_group 】設(shè)置用戶所屬的組。
-G 【group ,[...] 】設(shè)置用戶的附加組。
-m
-M 不建立使用者目錄。
-n
-r 建立系統(tǒng)帳號。
-s 【shell 】使用者登錄后使用的shell
-u uid 用戶ID 值。
2 、添加密碼命令:passwd
格式:passwd username
選項(xiàng):
注釋:使用useradd 建立帳號之后,默認(rèn)情況,該帳號暫時(shí)被封鎖,需要給他設(shè)置密碼才能啟用。passwd 常用的方式用兩種,一種是root 用戶幫其他用戶設(shè)置或改密碼,命令格式#passwd otherusername root 可以不用知道該用戶的密碼。另一種是用戶自己改密碼直接passwd 回車即開始更改。
3 、修改帳號信息命令:usermod
格式:usermod [-cdegGlsuLu] username
選項(xiàng):-L 暫時(shí)凍結(jié)用戶密碼,讓其無法登陸
-U 解凍用戶密碼。
4 、刪除用戶命令:userdel
語法:#userdel [-r] username
選項(xiàng): -r : 連同用戶的家目錄也一起刪了,不加則只刪除帳號,不刪除家目錄。
用戶組的管理:
1 、新增用戶組命令:groupadd
語法:#groupadd [-g gid] [-r] groupname
選項(xiàng):-g :后邊接某個(gè)特定的GID, 用來指定GID
-r :建立系統(tǒng)用戶組。
2 、修改用戶組命令:groupmod
語法:groupmod [-g newgid] [-n newgroup_name] oldgroup_name
選項(xiàng):-g :修改已有的用戶組GID 號。
-n :修改已有的用戶組名稱。
注釋:不要隨意更改GID, 否則容易造成系統(tǒng)資源的混亂。
3 、刪除用戶組命令:groupdel
語法:groupdel [groupname]
注釋:要刪除一個(gè)用戶組必須確認(rèn)沒有用戶使用該組作為初始用戶組。
4 、設(shè)置用戶組密碼:gpasswd
語法:#gpasswd [-r] groupname
選項(xiàng): :如果沒有參數(shù),表示給groupname 設(shè)置密碼。
-r :將groupname 的密碼刪除。
-R :讓groupname 的密碼欄失效,所以newgrp 就不能用了。