Linux中的Usermod命令

usermod 是一個命令行實用程序,允許您修改用戶的登錄信息。

本文介紹了如何使用 usermod 命令以將用戶添加到組,更改用戶外殼,登錄名,主目錄等。

usermod 命令#

的語法 usermod 命令採用以下形式:

usermod [options] USER

僅root用戶或具有 sudo 訪問可以調用 usermod 並修改用戶帳戶。 成功後,該命令將不顯示任何輸出。

將用戶添加到組#

最典型的用例 usermod 正在將用戶添加到組中。

要將現有用戶添加到輔助組,請使用 -a -G 組名稱和用戶名後跟隨選項:

usermod -a -G GROUP USER

如果要一次將用戶添加到多個組,請在 -G 選項用 , (逗號),中間沒有空格。

例如,添加用戶 linuxizegames 組,您將運行以下命令:

sudo usermod -a -G games linuxize

始終使用 -a (添加)選項,將用戶添加到新組中。 如果您省略 -a 選項,該用戶將被從未列出的組中刪除。 -G 選項。

如果該用戶或組不存在,該命令將警告您。

更改用戶主要組號

要更改用戶的主要組,請調用 usermod 用命令 -g 選項後面是組的名稱和用戶名:

sudo usermod -g GROUP USER

在以下示例中,我們將更改用戶的主要組 linuxizedevelopers

usermod -g developers linuxize

每個用戶可以完全屬於一個主要組,零個或多個次要組。

更改用戶信息

要更改GECOS(用戶的全名)信息,請使用以下命令運行命令 -c 選項,後跟新的評論和用戶名:

usermod -c "GECOS Comment" USER

這是顯示如何向用戶linuxize添加附加信息的示例:

usermod -c "Test User" linuxize

此信息存儲在 /etc/passwd 文件。

更改用戶主目錄

在大多數Linux系統上,用戶主目錄以用戶名命名,並在 /home 目錄。

如果出於某種原因要更改用戶的主目錄,請調用 usermod 用命令 -d 選項後跟新主目錄的絕對路徑和用戶名:

usermod -d HOME_DIR USER

默認情況下,該命令不會將用戶主目錄的內容移動到新目錄。 要移動內容,請使用 -m 選項。 如果新目錄尚不存在,則會創建該目錄:

usermod -d HOME_DIR -m USER

這是顯示如何更改用戶的主目錄的示例 www-data/var/www

usermod -d /var/www www-data

更改用戶默認Shell#

默認外殼程序是登錄系統後運行的外殼程序。 默認情況下,在大多數Linux系統上,默認外殼程序設置為Bash Shell。

要更改用戶的默認外殼,請使用以下命令運行命令 -s option遵循外殼程序的絕對路徑和用戶名:

usermod -s SHELL USER

在下面的示例中,我們將用戶外殼更改為Zsh:

sudo usermod -s /usr/bin/zsh linuxize

您可以通過顯示以下內容來找出系統上可用的外殼程序: /etc/shells 文件的內容。

更改用戶UID#

UID(用戶標識符)是分配給每個用戶的號碼。 操作系統使用它來引用用戶。

要更改用戶UID,請使用 -u 選項後跟新的UID和用戶名:

usermod -u UID USER

以下示例顯示了如何將“ UID”數字更改為“ 1050”:

sudo usermod -u 1050 linuxize

用戶擁有的文件的UID位於用戶的主目錄中,並且用戶的郵箱文件將自動更改。 所有其他文件的所有權必須手動更改。

更改用戶名

儘管不是很經常,但有時您可能想要更改現有用戶的名稱。 的 -l 選項用於更改用戶名:

usermod -l NEW_USER USER

在下面的示例中,我們正在重命名用戶 linuxizelisa 到“ 1050”:

sudo usermod -l linuxize lisa

更改用戶名時,您可能還希望更改用戶的主目錄以反映新的用戶名。

設置用戶有效日期

到期日期是將禁用用戶帳戶的日期。 要設置用戶的到期日期,請使用 -e 選項:

sudo usermod -e DATE USER

到期日期必須使用以下格式設置 YYYY-MM-DD

例如,禁用用戶 linuxize2022-02-21,您將運行以下命令:

sudo usermod -e "2022-02-21" linuxize

要禁用帳戶的到期時間,請設置一個空的到期日期:

sudo usermod -e "" linuxize

使用 chage -l 查看用戶的到期日期的命令:

sudo chage -l linuxize
Last password change					: Jul 24, 2018
Password expires					: never
Password inactive					: never
Account expires						: never
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7

到期日期存儲在 /etc/shadow 文件。

鎖定和解鎖用戶帳戶#

-L 選項允許您鎖定用戶帳戶:

usermod -L USER

這些命令將插入一個感嘆號(!)標記在加密密碼前面。 當密碼字段在 /etc/shadow 如果文件包含感嘆號,則用戶將無法使用密碼身份驗證登錄到系統。 仍然允許使用其他登錄方法,例如基於密鑰的身份驗證或切換到用戶。 如果要鎖定帳戶並禁用所有登錄方法,則還需要將到期日期設置為1。

以下示例顯示了如何鎖定用戶 linuxize

sudo usermod -L linuxize
sudo usermod -L -e 1 linuxize

要解鎖用戶,請運行 usermod-U 選項:

usermod -U USER

結論#

我們已經向您展示了如何使用 usermod 命令設置用戶帳戶信息。

如有任何疑問,請隨時發表評論。

終端用戶

Sidebar