使用者及使用者組管理指令彙總
指令總結:
useradd, usermod, userdel, passwd
groupadd, groupdel, groupmod, gpasswd, newgrp
chage, chsh, chfn, who, id, finger
su, w
============================================================================================================
檔案總結:
/etc/passwd 使用者的賬号資訊
/etc/shadow 使用者密碼和相關的賬戶設定
/etc/group 組的賬号資訊
/etc/gshadow 組的密碼資訊
/etc/passwd檔案:
account:password:UID:GID:GECOS:directory:SHELL
登入名:密碼點位符:UID:GID:注釋資訊:家目錄:使用者的預設shell
使用者可以加入多個組:
基本組(passwd檔案中的GID為使用者的基本組,附加組資訊在/etc/group中)
附加組
/etc/shadow檔案:
username:encrypted_password:Last_password_change_date:minimun_password_age:maximum_password_age:password_warning_period:password_inactivity_period:account_expiration_date:reserved_filed
使用者名:加密的密碼:最近一次修改密碼的時間:密碼最短使用期限:密碼最長使用期限:密碼過期警告區間:密碼非活動期限:賬号過期期限:保留區域
username: 必須為有效并存在的使用者名
encrypted_password:
Last_password_change_date:
上次密碼修改時間,從1970年1月1日起-至修改當時的天數
0:表示下次登陸必須修改密碼
空:表示密碼aging功能被禁用
minimum_password_age:
允許使用者再次修改密碼的時間段
0 表示不限制再次修改密碼的時間
maximum_password_age:
xx天後,使用者必須要更改密碼的時間段。
xx天後,原密碼仍然有效,下次登陸時候會被提示更改密碼
空: 使用者沒有maximum_password_age和password_warning_period, password_inactivity_period.
如果maximum < minimum, 則使用者不能更改密碼
password_warning_period:
距離maximum的日期,使用者會被警告需要更改密碼
0:不會被提醒更改密碼
password_inactivity_period:
密碼過期後的寬限期天數,從maximum到inactivity之間,原密碼仍然有效
過了maximum,繼續超過inactivity的天數,則密碼無法再次登入
空: 沒有過期後的inactivity強制時間段
account_expiration_date:
賬号過期的日期,從1970年1月1日到設定的天數
不同于密碼過期,如果賬号過期,使用者将無法通過密碼登陸系統
空: 賬号永不過期
0: 賬戶過期日期為1970年1月1号, 可了解為賬戶被禁用
reserved_filed:
保留字段,目前無用
man 5 shadow 可以檢視全部詳細/etc/shadows檔案的解釋文檔
/etc/group檔案:
groupname:組密碼點位符:GID:user_list(屬于該groupname組的username_list,使用逗号隔開)
user_list: 以此組作為附加組的使用者清單
groupname:encrypted password:administrators:members
groupname: 系統中存在的有效的組名
encrypted password: 加密的密碼
administrators: 必須是逗号分隔的使用者名
administrators内的使用者可以更改組密碼, 也可以更改組内成員
members: 必須是逗号分割的使用者名
members内的使用者可以無需密碼通路該組
應該使用/etc/group内的user list
使用者賬号管理:
useradd - 建立新使用者,或者 更新 新使用者賬号資訊
useradd [-D] [options] LOGIN
當不加 -D 選項, 系統将更新系統檔案來完成建立:
1. 添加新使用者(/etc/passwd)
2. 與使用者同名的組(/etc/group)
3. 建立與使用者名同名的HOME目錄(/home/USERNAME)
[options]
-u UID 使用者辨別符
-g GID 所屬的基本組
-G GID 所屬的附加組
-c 'COMMENT' 注釋資訊
-d /path/to/home 指定user家目錄,如果此目錄事先存在,建立時會有警告
-s SHELL: 必須是/etc/shells檔案中存在的shell
-m 強制給使用者建立家目錄
-M 不給使用者建立家目錄
-r 建立系統使用者(0<UID<499, 沒有aging資訊,沒有家目錄,如果需要給系統使用者建立家目錄,需要-m指定)
usermod - 修改一個使用者賬号
usermod [options] USERNAME
-u UID
-g GID
-G GID 修改使用者的附加組;此選項與-a一起使用來追加方式修改附加組
-c 'COMMENT'
-d /path/to/home
-m選項可保證建立家目錄,并将使用者原有的檔案移動至新的家目錄中
-s SHELL
-l LOGIN_NAME 修改登入名
-L lock 鎖定
-U unlock 解鎖
userdel - 删除使用者賬号,并且删除相關檔案
userdel [options]
-f,--force 強制删除使用者,甚至使用者已經登陸。并且強制删除使用者home,mail,spool
-r, --remove 删除使用者,home,mail,spool. 位于其他檔案系統的檔案不會被删除
passwd - 更新使用者的授權密碼的工具
--stdin: 從标準輸入讀取密碼(從管道)
-l: lock 鎖定密碼(root only)
-u: unlock 解鎖密碼(root only)
====================================================================================================
使用者組管理
groupadd - 建立新組
groupadd [options] group
-g: GID 指定GID
-r: 系統組
groupdel - 删除組
groupdel group
groupmod - 修改系統中的組定義
groupmod [options] group
-g: GID: 修改為指定的GID
-n:修改為新的組名
gpasswd - 管理 /etc/group 和 /etc/gshadow
-a, --add 添加使用者到該組
-d, --delete 從該組中删除使用者
-A, --administrators 設定該組的管理者
-M, --members 設定該組的成員
newgrp - 在目前登陸的session中更改GID, 如果使用了[-] 則登陸的使用者的環境将重新初始化, 如果沒用[-] 則不會改變目前環境變量,家目錄等。
如果沒有給定組名,将嘗試登陸該使用者的預設組
newgrp相當于login指定,當他是以相同的賬号,另一個組的名字,再次登入系統。
若使用newgrp切換GID,使用者必須是該組的使用者(root使用者除外),或者知道該組密碼。
newgrp [-] [group]
===========================================================================================================
使用者,使用者組的管理小工具
chage - 更改使用者密碼過期資訊
-d, --lastday 最後一次更改的日期天數,從1970年1月1日開始計算
-E, --expiredate 更改使用者密碼過期的日期天數,從1970年1月1日開始計算
也可以使用 YYYY-MM-DD 格式來設定
-I, --inactive
-l, --list 檢視賬戶的aging information
-m, --mindays 從更改密碼當時開始,設定最小有效天數
-M, --maxdays 設定最大有效密碼天數
-W, --warndays 設定需要更改密碼之前的警告天數
chsh - 更改使用者shell
chfn - 修改使用者的finger information
who - 顯示登陸的使用者資訊
id - 檢視使用者資訊
id USERNAME
-g
-G
-n
-u
finger - 使用者資訊檢視
su - 切換使用者:
su [option] USERNAME
-l: 完全切換, l可省略
-c: 'COMMAND': 僅以指定使用者運作指令,并取回結果
w - 檢視登陸的使用者,而且可以檢視他們正在做什麼
w - [husfV] [user]
-h 不列印标題
-u 檢視目前程序和cpu用時的資訊時候,忽略使用者名
-s 短模式,不列印login tim, JCPU or PCPU times
-f
-V 顯示版本資訊