在管理linux中,賬戶的管理是重要的一個環節,它是權限控制的重要的組成部分。也是管理員管理整個linux中十分基礎的一部分。
一、用戶和組相關的配置文件
/etc/passwd: 用戶的帳號信息
/etc/shadow: 用戶密碼和相關的帳戶設定
/etc/group: 組的帳號信息
/etc/gshaow: 組的密碼信息
1、/etc/passwd
在passwd文件中,一行代表一個賬戶的信息,有多少行,就代表有多少個用戶。如下,查看前3個用戶,可以看到相關的賬戶配置信息。
[root@bogon /]# head -3 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin
通過man 5 passwd中,可以看到/etc/passwd的詳細解析。
每一個用戶的格式爲
account:password:UID:GID:GECOS:directory:shell
(1)account 賬戶名稱,名稱不應該出現大寫字母。
(2)password 賬戶的密碼錶示,在此處顯示爲x,密碼的詳細信息會保存在/etc/shadow文件中,詳細可瀏覽下文。
(3)UID 標示賬戶的ID。
需要注意的是:
0爲系統管理員。
1-500爲系統用戶,可以分配改數字段給系統進程使用。
500-65535爲自定義的用戶,如果要建立一個普通得賬號,使用該數字段。
(4)GID 該賬戶所屬的組ID。組相關的信息保存在/etc/group,詳細可瀏覽下文。
(5)GECOS,General Electric Comprehensive Operating System。其實就是用戶的註釋信息。
(6)directory 用戶的家目錄。如root賬號,家目錄在/root。如果新建一個用戶,用戶默認家目錄在/home/yourAccount。
(7)shell 用戶的默認shell,如果爲空,默認使用/bin/sh。
2、/etc/shadow
如上文提到,用戶的密碼詳細信息,將保存在/etc/shadow中。同樣,每一行代表一個用戶的密碼詳細信息。如下,查看前3個賬戶密碼,可以看到相關的賬戶信息。
[root@bogon ~]# head -3 /etc/shadow root:b3Vg6K9PN86O6:16673:0:99999:7::: bin:*:15980:0:99999:7::: daemon:*:15980:0:99999:7:::
(1)賬號名稱。與/etc/passwd下的用戶名對應。
(2)密碼。經過加密後的密碼。可以看到root賬戶密碼加密後是一串複雜的編碼。bin該位爲*,代表該用戶是不允許登陸的。如果在賬戶密碼的第一位加上*,那麼,該賬戶就不能登陸到系統了。
(3)上次更改密碼的日期。記錄的是從1970 年 1 月 1 日到更改密碼時候過經過的天數。
(4)密碼不可被更改的天數。設置爲0,則隨時可以改。
(5)需要重新更改密碼的天數。
(6)到達需要重新更改密碼的期限前得警告天數。
(7)賬戶失效的期限。過了失效期限還沒有重新設置密碼,則賬戶會被停用
(8)賬戶取消日期。這個字段跟第三個字段表示的情況一樣,都是從1970 年 1 月 1 日開始計算。
(9)被保留下來的位置。
3、/etc/group
用戶組的信息將會保存在改文件中,組對應的用戶列表,也會保存在裏面。同樣,每一行代表一個組的詳細信息。如下,查看前3個組,可以看到相關的賬戶信息。
[root@bogon ~]# head -3 /etc/group root:x:0: bin:x:1:bin,daemon daemon:x:2:bin,daemon
每一個組的格式爲
group_name:passwd:GID:user_list
(1)組名。
(2)組密碼。一般不會設置。同樣會表示爲x,詳細信息在/etc/gshaow保存。
(3)組ID。
(4)該組存在的賬戶。
二、賬戶管理相關命令
1、useradd
新增一個賬戶
格式:useradd 選項 賬戶名稱
常用選項:
-u UID:指定新建賬戶的ID。
-g GID:指定賬戶所屬的基本組。
-G GID: 指定賬戶所屬的附加組。
-c ‘COMMIT’:給新建賬戶添加註釋。
如:
# useradd -u 1100 test
2、userdel
刪除指定的賬戶
格式:userdel 選項 賬戶名稱
-r 連同改賬戶的家目錄一併刪除
如:
#userdel -r test
3、groupadd
添加一個組
格式:groupadd 選項 組名
-g GID:指定新建組的組ID。
-r 創建系統組
如:
# groupadd -g 1101 testgrp
4、groupdel
刪除指定的組
格式:groupdel 組名
如:
# groupdel testgrp
5、passwd
給指定的賬戶設定密碼
格式:passwd USERNAME
--stdin :通過標準的輸入給指定的賬戶設定密碼
如:
# passwd test # echo ’testpwd’ | passwd --stdin test
6、usermod
修改賬戶設定的信息
格式:usermod 選項 USERNAME
-u UID:修改賬戶ID
-g GID:修改賬戶的組ID
-G GID:修改賬戶的附加組
-c :修改賬戶的備註信息
-d :修改賬戶的家目錄路徑
-s :修改賬戶的SHELL
-l :修改賬戶的名稱
-L :lock(鎖定)賬戶
-U :unlock(解鎖)賬戶
如:
# usermod -u 1101 test # usermod -l testing test
7、groupmod
修改組信息
格式:groupmod 選項 GROUPNAME
-g GID:修改指定的組ID
-n :設定新的組名
如:
# groupmod -g 502 test # groupmod -n testing test
8、chage
修改用戶的屬性
格式:chage 選項 USERNAME
-m :最短使用時間
-M : 最長使用時間
-I :非活動期限
如:
#chage -m 2 testing
9、id
查看賬戶的信息
格式:id 選項 USERNAME
-u UID:查看賬戶ID
-g GID:查看組ID
如:
# id -u testing
10、su
切換用戶
格式 su 選項 USERNAME
如:
# su -root
綜合練習:
1、創建用戶mandriva, 其ID爲2200, 基本組爲distro,組ID爲3300, 附加組爲peguin;
[root@bogon /]# groupadd -g 3300 distro [root@bogon /]# groupadd peguin [root@bogon /]# useradd -u 2200 -g distro -G peguin mandriva
2、創建用戶gentoo,其全名爲“Gentoo”,默認shell爲/bin/tcsh;
[root@bogon /]# useradd -c 'Gentoo' -s /bin/tcsh gentoo
3、修改mandriva的UID爲4400, 基本組爲linux, 附加組爲distro和gentoo;
[root@bogon /]# usermod -u 4400 -g linux -a -G distro,gentoo mandriva
4、給gentoo添加密碼,並設定其密碼最短使用期限爲2天,最長爲60天,警告爲3天,非活動期限爲7天;
[root@bogon /]# echo "gentoopwd" | passwd --stdin gentoo [root@bogon /]# chage -m 2 -M 60 -I 7 gentoo
gentoo 賬戶在/etc/shadow文件中記錄的信息變成如下:
gentoo:$6$IdeEfsVq$8Ry23Fj..hKe60swCdYHYpFW9pg6rXIry1n9xnjw.4rUYAC3Pv6A2JueZblguCRJR13R2jC0HD6Q39uMzp.Gu/:16680:2:60:7:7::