前文:Linux文件管理命令
Linux用戶管理相關命令
一、useradd
useradd - 創建一個新用戶或更新默認新用戶信息.
用法:
useradd [選項] 登錄
useradd -D
useradd -D [選項]
用法描述
如果使用時不帶 -D 選項,useradd命令使用命令行上指定的值和系統的默認值創建一個新用戶。
根據命令行選項,useradd命令也會更新系統文件和創建新用戶的主目錄並複製初始文件。
默認上,也會爲用戶創建組 (察看 -g, -N, -U,和 USERGROUPS_ENAB)。
常用選項:
-b, --base-dirBASE_DIR
如果未指定-dhome_dir,則爲系統的默認基目錄。BaseIdir是與帳戶名連接以定義主目錄。基目錄必須存在否則無法創建主目錄。
如果選項沒有指定,useradd 將使用 /etc/default/useradd 中的 HOME 變量,或者默認的 /home。
-c, --commentCOMMENT
任何字符串。通常是關於登錄的簡短描述,當前用於用戶全名。
-d, --home-dir HOME_DIR
將使用home_dir作爲用戶登錄目錄的值創建新用戶。這個默認情況下,將登錄名附加到base_dir,並將其用作登錄目錄名。
-D, --defaults
看下邊,“更改默認值”子節。
-e, --expiredateEXPIRE_DATE
用戶賬戶將被禁用的日期。日期以 YYYY-MM-DD 格式指定。
如果沒有指定,useradd 將使用 /etc/default/useradd 中 EXPIRE
變量指定的默認過期日期,或者一個空字符串(不過期)。
-f, --inactiveINACTIVE
密碼過期後,賬戶被徹底禁用之前的天數。0 表示立即禁用,-1 表示禁用這個功能。
如果未指定,useradd 將使用 /etc/default/useradd 中的 INACTIVE 指定的默認禁用週期,或者默認爲
-1。
-g, --gidGROUP
用戶初始登陸組的組名或號碼。組名必須已經存在。組號碼必須指代已經存在的組。
如果沒有指定, useradd 的行爲將依賴於 /etc/login.defs 文件中的 USERGROUPS_ENAB
參數。如果此參數設置爲了 yes (或者在命令行上指定了-U/--user-group),將會爲用戶創建一個組,組名和登錄名相同。如果選項設置爲了 no
(或者在命令行上指定了 -N/--no-user-group),useradd 會把新用戶的主組設置爲/etc/default/useradd 中 GROUP 變量指定的值,再或者默認是 100。
-G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]
用戶還屬於的附加組列表。每個組都用逗號隔開,沒有中間的空格。這裏的組受到了 -g
選項給定的組同樣的限制。默認上,用戶只屬於初始組。
-h, --help
現實幫助信息並退出。
-k, --skelSKEL_DIR
骨架目錄,包含使用 useradd 創建用戶時,要複製到用戶主目錄中的文件和目錄。
這個選項只有在指定 -m (或 --create-home) 選項時纔有效。
如果此項沒有設置,骨架目錄使用 /etc/default/useradd 中的 SKEL 的變量或默認爲 /etc/skel。
如果可以,也複製 ACL 和擴展屬性。
-K, --keyKEY=VALUE
默認覆蓋 /etc/login.defs (UID_MIN, UID_MAX, UMASK, PASS_MAX_DAYS 及其它)。 例如:-K
PASS_MAX_DAYS=-1 可以用於創建一個密碼不會過期的系統賬戶,即使系統賬戶沒有密碼。可以指定多個
-K 選項,如:-K UID_MIN=100-K UID_MAX=499
-l, --no-log-init
不要將用戶添加到最近登錄和登錄失敗數據庫。
默認上,最近登錄和登錄失敗中用戶的條目會被重置,以避免重新使用先前刪除的用戶的條目。
-m, --create-home
如果不存在,則創建用戶主目錄。骨架目錄中的文件和目錄(可以使用 -k
選項指定),將會複製到主目錄。
默認上,如果沒有指定此選項並且 CREATE_HOME 沒有啓用,不會創建主目錄。
創建用戶主目錄的目錄必須存在並具有正確的selinux上下文和權限。否則,無法創建或訪問用戶的主目錄。
-M, --no-create-home
即使系統範圍的設置來自/etc/login.defs,也不要創建用戶的主目錄。
(CREATE_HOME)設置爲是。
-N, --no-user-group
不要創建同名組,而是將用戶添加到 -g 選項指定的組,或根據 /etc/default/useradd 中的 GROUP
變量。
如果沒有指定 -g, -N 和 -U 選項,默認行爲由 /etc/login.defs 中的 USERGROUPS_ENAB 變量指定。
-o, --non-unique
允許使用重複的 UID 創建用戶賬戶。
此選項只有和 -u 選項組合使用纔有效。
-p, --passwordPASSWORD
加密了的密碼,就像 crypt(3) 的返回值。默認爲禁用密碼。
注意:不推薦使用這個選項,因爲密碼(或加密過的密碼)會被用戶通過列出這個過程而看到。
您應該確保密碼符合系統的密碼政策。
-r, --system
創建一個系統賬戶。
創建系統用戶時,在/etc/shadow中沒有老化信息及其數字
標識符是在SYS_UID_MIN-SYS_UID_MAX範圍中選擇的,在/etc/login.defs中定義,
而不是 UID_MIN-UID_MAX(以及創建組的gid對應項)。
注意:useradd 不會爲這種用戶創建主目錄,無論 /etc/login.defs (CREATE_HOME)中是的默認設置是怎樣。如果想爲要創建的系統賬戶創建主目錄,需要指定 -m 選項。
-R, --rootCHROOT_DIR
在chroot_dir目錄中應用更改,並使用chroot_dir目錄中的配置文件。
-s, --shellSHELL
用戶的登錄 shell 名。默認爲留空,讓系統根據 /etc/default/useradd 中的 SHELL
變量選擇默認的登錄 shell,默認爲空字符串。
-u, --uidUID
用戶 ID 的數字值。此值必須爲唯一的,除非使用了 -o 選項。此值必須非負,默認使用大於等於
UID_MIN,且大於任何其他用戶 ID 最小值。
請參考 -r 選項和 UID_MAX 的描述。
-U, --user-group
創建一個和用戶同名的組,並將用戶添加到組中。
如果沒有指定 -g, -N 和 -U 選項,默認行爲由 /etc/login.defs 中的 USERGROUPS_ENAB 變量指定。
-Z, --selinux-userSEUSER
用戶登陸的 SELinux 用戶。默認爲留空,這會造成系統選擇默認的 SELinux 用戶。
二、usermod
usermod - 修改一個用戶賬戶
用法:
usermod [選項] 登錄
用法描述
usermod 修改系統賬戶文件和在命令行上指定的相關更改。
常用選項:
-a, --append
將用戶添加到附加組。只能和 -G 選項一起使用。
-c, --commentCOMMENT
用戶密碼文件中註釋字段的新值。通常使用 chfn(1) 工具對其進行修改。
-d, --homeHOME_DIR
用戶的新登錄目錄。
如果給定-m選項,則當前主目錄的內容將移動到新的主目錄,如果新的主目錄不存在,則會創建新的主目錄。如果當前主目錄不存在,則不會創建新的主目錄。
-e, --expiredateEXPIRE_DATE
用戶賬戶將被禁用的日期。日期以 YYYY-MM-DD 格式指定。
空 EXPIRE_DATE 參數將禁用賬戶過期。
此選項需要一個 /etc/passwd 文件。如果沒有,將會創建一條 /etc/shadow 項目。
-f, --inactiveINACTIVE
密碼過期之後,賬戶被徹底禁用之前的天數。
0 表示密碼過期時,立即禁用賬戶;-1 表示不使用這個功能。
此選項需要一個 /etc/passwd 文件。如果沒有,將會創建一條 /etc/shadow 項目。
-g, --gidGROUP
用戶的新初始登錄組的組名或數字代號。此組必須存在。
用戶主目錄中,屬於原來的主組的文件將轉交新組所有。
主目錄之外的文件所屬的組必須手動修改。
如果home dir owner uid與當前或新用戶ID不同,也不會更改用戶主目錄中文件的組所有權。這是對特殊主目錄(如/)的安全措施。
-G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]
用戶還屬於的附加組列表。組之間使用逗號分隔,沒有空格。這些組需要遵守和 -g
選項中給的組同樣的限制。
如果用戶當前是一個組的成員,而這個組沒有列在這裏,用戶將被從那個組裏便刪除。這個行爲可以通過
-a 選項修改,這使用戶追加到給出的附加組列表中。
-l, --loginNEW_LOGIN
用戶的名稱將會從 LOGIN 修改爲
NEW_LOGIN。不會更改別的任何東西。特別是,用戶的主目錄名和郵件池也需要手動修改以和新登錄名對應。
-L, --lock
鎖定用戶的密碼。這會在用戶加密的密碼之前放置一個“!”,可以快速禁用密碼。您可以和 -p 或 -U
配合使用此選項。
注意:如果希望鎖定賬戶(不僅僅是通過密碼訪問),您也需要設置 EXPIRE_DATE 爲 1。
-m, --move-home
將用戶主目錄的內容移動到新位置。如果當前主目錄不存在,則不會創建新的主目錄。
這個選項只有和 -d (或 --home) 選項組合使用時纔有效。
usermod 會改寫文件的屬主並複製模式、ACL 和擴展屬性,但是稍後也可能需要手動修改。
-o, --non-unique
使用 -u 選項時,可以將用戶 ID 改爲非唯一的值。
-R, --rootCHROOT_DIR
在chroot_dir目錄中應用更改,並使用chroot_dir目錄中的配置文件。
-s, --shellSHELL
用戶的新登錄 shell 的名稱。將此字段設置爲空會讓系統選擇默認的登錄 shell。
-u, --uidUID
用戶 ID 的新數值。
這個值必須是唯一的,除非使用了 -o 選項,必須是非負值。
用戶的郵箱,用戶主目錄中屬於此用戶的文件的屬主 ID 也將自動更改。
用戶主目錄之外文件所有權必須手動修復。
如果home dir owner uid與當前或新的用戶ID不同,也不會更改用戶主目錄中文件的用戶所有權。這是特殊主目錄(如/)的安全措施。
請在chroot_dir目錄中應用更改,並使用 chroot_dir目錄中的配置文件。
不會對 /etc/login.defs 中的 UID_MIN, UID_MAX, SYS_UID_MIN 和 SYS_UID_MAX 進行檢查。
-U, --unlock
解鎖用戶的密碼。這將移除加密的密碼之前的“!”。您可以將此選項和 -p 或 -L 配合使用。
注意:如果您希望解鎖賬戶(不只是使用密碼訪問),您也應該設置 EXPIRE_DATE (例如設置爲
99999,或者 /etc/default/useradd 中的 EXPIRE 值)。
-Z, --selinux-userSEUSER
用戶登陸的 SELinux 用戶。
空的 SEUSER 將移除用戶 LOGIN 的 SELinux 用戶映射(如果有)。
三、userdel
userdel - 刪除用戶賬戶和相關文件
用法:
userdel [選項] 登錄
用法描述
userdel 修改系統賬戶文件,刪除與用戶名 LOGIN 相關的所以項目。給出的用戶名必須存在。
常用選項:
-f, --force
此選項強制刪除用戶賬戶,甚至用戶仍然在登錄狀態。它也強制 userdel
刪除用戶的主目錄和郵箱,即使其它用戶也使用同一個主目錄或郵箱不屬於指定的用戶。如果
/etc/login.defs 中的 USERGROUPS_ENAB 定義爲
yes,並且如果有一個和用戶同名的組,也會刪除此組,即使它仍然是別的用戶的主組。
注意:此選項危險,可能會破壞系統的穩定性。
-h, --help
現實幫助信息並退出。
-r, --remove
用戶主目錄中的文件將隨用戶主目錄和用戶郵箱一起刪除。在其它文件系統中的文件必須手動搜索並刪除。
郵箱在 login.defs 文件中的 MAIL_DIR 變量中定義。
-R, --rootCHROOT_DIR
在chroot_dir目錄中應用更改,並使用chroot_dir目錄中的配置文件。
-Z, --selinux-user
移除用戶登錄的所有 SELinux 用戶映射。
實例:
創建用戶tom,指定UID爲5001,指定家目錄爲/tmp/tom, 指定shell爲/bin/zsh, 指定基本組爲tom,附加組爲jack