使用對象:Linux初學者
Linux系統中用戶和組管理是很重要的一部分內容。許多初學者在學習或剛接觸到用戶管理的時候會覺得很難理解,命令多、選項多、配置文件也多,用命令可以修改,用配置文件也可以修改,三兩下就被繞進去了。其實完全沒必要暈,只要了解了用戶管理的方式,就會很容易理解命令選項與配置文件之間的關系。下面我們就來了解下用戶管理命令與配置文件。
目錄
1.5、配置文件/etc/defaults/useradd. 4
一、新建用戶
1.1useradd命令
新建用戶其實就是增加用戶,我們使用useradd命令(user是用戶的意思,add是增加的意思,在一起就是useradd)。命令格式為:
useradd USERNAME
輸入該命令,執行之后,新的用戶就被添加到系統中了。
1.2 passwd文件
Linux系統中用戶信息是保存在/etc/passwd文件里面的,用戶密碼保存在/etc/shadow文件中。所以,剛才的命令執行完之后,會在這兩個文件的文件末尾增加關于testuser1的信息,每個文件增加一條信息。
首先,我們來看/etc/passwd文件。使用cat命令打開該文件,在文件的最下方可以看到下圖
從圖中我們可以看到,testuser1的信息被:(冒號)分成7個部分,我們來簡要介紹一下這7個部分的含義:
第一個字段testuser1:表示用戶名稱
第二個字段x :表示用戶密碼。不過Centos6和7中密碼都被保存在/etc/shadow文件中了,所以這里就不再保存密碼了,但是為了和之前舊版本的linux系統兼容,這個字段又不能取消或為空,所以就使用x來代替。
第三個字段1018 :表示系統給用戶分配的UID(user id)號碼
第四個字段1018 :表示系統給用戶分配的GID(group id)號碼
第五個字段 :表示用戶的描述信息,因為我們創建用戶的時候沒有添加這個信息,所以這里顯示為空白
第六個字段/home/testuser1 :表示用戶的家目錄位置是/home/testuser1
第七個字段/bin/bash :表示該用戶使用的shell是bash
1.3 shadow文件
我們再來看/etc/shadow文件中關于testuser1的信息
同樣,可以看到testuser1的信息被:(冒號)分割成9個部分,我們來簡單介紹下這9個部分的含義:
第一個字段testuser1 :表示用戶的名稱
第二個字段!! :表示用戶的密碼。因為我們剛才沒有給testuser1用戶設置密碼,所以這里用!!代表未給用戶設置密碼。我們給用戶設置的密碼都是在這里以密文的方式在這里顯示的。
第三個字段17097 : 表示用戶創建的時間。從1970年1月1日到剛才創建用戶的日期之間的天數。
第四個字段0 :表示用戶密碼的最小使用時間。0表示用戶隨時可以修改密碼。其他的數字表示從用戶修改密碼之日起多少天內不能修改密碼。
第五個字段99999 :表示用戶的密碼最長使用時間
第六個字段7 :表示在密碼到期前7天對用戶發出警告,提示用戶密碼快到期
第七個字段 :表示用戶密碼到期后的寬限時間。也就是說用戶密碼到期之后幾天內還可以使用。
第八個字段 :表示用戶賬戶的過期時間
第九個字段 :保留字段。
1.4、配置文件/etc/login.defs
我們此前使用的命令是useradd testuser1,后面并沒有跟任何的其他信息,那么為什么系統會自動給用戶分配UID GID呢,為什么用戶的家目錄會創建在/home/下,而且目錄名跟用戶名一樣呢,還有為什么用戶的shell是/bin/bash而不是其他的呢?這就要跟我們的配置文件有關了。
Linux系統管理用戶是通過該用戶的UID來實現的,而不是用戶名。所以每個用戶都會擁有自己的用戶ID即UID。默認情況下,超級管理員root 的UID是0 ,系統用戶的UID以及普通用戶的UID在不同的Linux版本下也各不相同。
CentOS 6 |
CentOS 7 |
|
系統用戶UID范圍 |
1–499 |
201–999 |
普通用戶UID范圍 |
500–60000 |
1000–60000 |
這個范圍的定義是由/etc/login.defs文件來控制的。以CentOS 7為例,打開該文件,在文件中可以看到以下信息
這里就定義了系統用戶和普通用戶的UID范圍。我們剛才創建的testuser1用戶是普通用戶,所以他的ID范圍在1000—60000之間。
這個文件除了定義用戶UID范圍之外,還定義了其他的參數,我們來看一下:
1) 給用戶創建郵件的目錄
2) 用戶密碼的相關選項
這里我們看到,默認定義了4個選項:
PASS_MAX_DAYS 99999 密碼最長使用期限
PASS_MIN_DAYS 0 密碼最短使用期限
PASS_MIN_LEN 5 密碼最短長度
PASS_WARN_AGE 7 密碼到期前的警告期限
3) 家目錄是否創建
4) 用戶權限設置
5) 刪除用戶的時候如果用戶組中不存在其他用戶的話,是否刪除組
6) 用戶密碼加密方式
1.5、配置文件/etc/defaults/useradd
1)GROUP 表示如果用戶創建的時候不指定組的話,默認加入的系統用戶組ID
2)HOME 表示用戶創建家目錄的路徑
3)INACTIVE表示用戶賬戶密碼過期之后是否馬上禁用該賬號。-1表示不馬上禁用
4)EXPIRE 表示用戶賬號的過期時間 為空表示永不過期
5)SHELL 表示創建用戶的時候默認給新用戶使用的shell
6)SKEL 表示創建用戶家目錄的模板目錄,給用戶創建哪些文件
7)CREATE_MAIL_SPOOL 表示是否給新用戶創建郵件
我們可以通過修改以上的兩個配置文件中相應的參數來控制創建新用戶的相關信息。
1.6、useradd命令
除了通過修改配置文件,我們也可以在執行useradd命令的時候,給命令添加選項和參數來控制新建用戶的信息。
使用方式如下:
useradd [options] 用戶名
選項有很多,我們只列舉幾種常用的:
-u UID 手動給用戶指定UID
-g GID 手動給用戶指定GID
-G groupname 指定用戶屬于哪個附加組
-c COMMENT :指定用戶的注釋信息
-d DIR :指定用戶的家目錄
-s SHELL:指定用戶使用的SHELL
-r :創建系統用戶
-N : 不創建用戶組,并將用戶的主組設置為USER組
我們除了通過查看配置文件來看創建用戶的默認設置之外,還可以通過useradd -D命令來查看和修改創建用戶的默認設置。
useradd -D [options]
useradd -D 后面不加選項和參數表示顯示新增用戶的默認配置
-b DIR :表示修改默認選項中的家目錄位置
-e 時間:修改默認選項中用戶賬戶的失效時間
-f 數字 :修改默認選項中用戶密碼到期前的警告天數
-g GID :修改默認選項中用戶賬號自動加入的GID
-s SHELL : 修改默認選項中用戶使用的shell類型
二、用戶信息修改
2.1 usermod命令
創建完用戶之后,如果需要對用戶的信息進行修改,要是用usermod命令。
具體使用格式:
usermod [options] 用戶名
常用選項如下:
-u, –uid UID : 修改用戶UID為指定的UID
-g, –gid GROUP :修改用戶所屬基本組ID
-G, –groups GROUP1[,GROUP2,…[,GROUPN]]] :修改用戶的附加組,原來的附加組會被覆蓋
-a, –append: 與-G一同使用,為用戶增加新的附加組
-c, –comment COMMENT : 修改用戶注釋信息
-d, –home-dir HOME_DIR : 修改用戶家目錄:用戶原有的文件不會轉移至新位置。如果需要將文件一同移動,需要和-m一同使用
-m, –move-home: 只能與-d一同使用,用于移動原家目錄中的文件
-l, –login NEW_LOGIN:修改用戶名
-s, –shell SHELL : 修改用戶登錄后默認使用的shell
-L, –lock: 鎖定用戶密碼
-U, –unlock: 解鎖用戶密碼
2.2 passwd命令
如果需要變更用戶的密碼,或者對密碼信息進行修改,要使用passwd命令。具體使用格式為:
passwd [OPTIONS] 用戶名
passwd 用戶名:不加選項表示修改指定用戶密碼
-l , -u :鎖定和解鎖用戶,鎖定之后只是不能登錄,切換可以
-d, –delete :刪除和清除用戶密碼
-e, –expire DATE:過期期限,日期。不加時間默認強制讓用戶下次登錄時輸入口令
-i DAYS:非活動期限
-n DAYS:最短使用時間
-x DAYS:最長使用時間
-w DAYS: 警告時間
三、用戶刪除
如果不需要某個用戶,刪除用戶要使用userdel命令。
具體使用格式:
userdel [options] 用戶名
-r 表示連同用戶的家目錄一起刪除
四、新建組
我們在新建用戶的時候,系統會默認創建一個跟用戶同名的組,并把這個組設置為該用戶的主組。用戶組的相關信息存放在/etc/group以及/etc/gshadow文件中。
4.1 /etc/group文件
該組信息被:(冒號)分為四個部分:
第一部分testuser1 :表示組名稱
第二部分x :表示組密碼。組密碼存放在/etc/gshadow文件中,跟用戶名密碼存放在/etc/shadow文件類似。
第三部分1018 : 表示該組的GID
第四部分 :表示組內暫時沒有其他的用戶
4.2/etc/gshadow文件
該文件被冒號分為四個部分:
第一部分testuser1 :表示組名稱
第二部分!! :表示組密碼。!!表示該組暫未設置密碼。
第三部分 :表示該組的管理員。為空表示沒有管理員。
第四部分 :表示該組的其他成員。為空表示無其他成員。
4.3 新建用戶命令groupadd
testuser1用戶,在如果不通過新建用戶,怎么增加組呢?跟新建用戶一樣,新建組也有一個單獨的命令groupadd。使用格式為:
groupadd [options] group
-g GID:手動指定GID
-r:創建系統組
五、修改組
修改組屬性信息要使用groupmod命令。
其格式為:
groupmod [options] GROUP
-g GID 組名:表示修改指定組的gid
-n :表示修改組名稱
-p :表示給組設置密碼
六、刪除用戶組
刪除用戶組使用groupdel命令。使用格式為:
groupdel [options] GROUP
七、其他命令
除了以上的用戶、組管理命令之外,Linux還提供其他的命令來對用戶或者組進行修改。
例如:groupmems、chage、chsh、chfn、finger等。
我們只簡單的羅列一下,不再進行詳細描述命令的使用。如果想獲得更加詳細的命令使用信息,大家可以使用man幫助進行查看。
原創文章,作者:jacklei,如若轉載,請注明出處:http://www.www58058.com/53735