介紹
usermod
命令是系統管理員可用於用戶管理的多個 Linux 命令之一。它用於修改現有的用戶帳戶詳細信息,例如用戶名、密碼、主目錄位置、默認 shell 等。
在本教程中,您將學習如何在 Linux 中使用 usermod
命令來更改用戶登錄信息。
先決條件
-
運行 Linux 的系統
-
訪問命令行
usermod Linux Syntax
usermod
命令的基本語法是:
usermod [options] [username]
usermod
命令修改包含用戶帳戶信息的配置文件。這些文件是:
-
/etc/passwd
– 有關用戶帳戶的信息 -
/etc/shadow
– 與用戶安全相關的信息 -
/etc/組
– 有關組的信息 -
/etc/gshadow
– 組安全相關信息 -
/etc/login.defs
– 影子密碼套件配置
可以使用nano或vim等文本編輯器直接編輯上述文件。但是, usermod
使該過程更快,更直接。
用戶模式命令示例
下面是 usermod
選項的列表,以及特定於選項的語法和示例。
向用戶添加信息
將 usermod
與 -c
選項結合使用,可以將有關用戶的一段信息添加到 /etc/passwd
文件中。這有助於識別用戶,並為與用戶相關的臨時注釋提供空間。
sudo usermod -c "[information]" [username]
使用 getent
命令檢查 /etc/passwd
文件中與用戶相關的條目。
該條目現在包含使用 usermod
添加的注釋。
設置用戶的主目錄
當您在 Linux 中創建用戶時,系統會自動在 /home/[username]
中為他們創建一個主文件夾。要更改用戶個人文件夾的位置,請使用 -d
選項:
sudo usermod -d [directory-location] [username]
上面的示例將用戶的個人文件夾從 /home/mike
更改為 /var/mike
。 getent
命令確認更改成功。
-d
選項不會將個人文件夾的內容移動到新位置。如果用戶以前使用主文件夾來存儲其文件,請添加 -m
選項以移動用戶主目錄的內容:
sudo usermod -d [location] -m [username]
對於上面示例中的用戶,該命令如下所示:
sudo usermod -d /var/mike -m mike
**
注意:不能使用 usermod
更改當前登錄用戶的名稱。此外,在更改用戶的 ID (UID) 時,請確保用戶當前未執行任何進程。
設置用戶帳戶到期日期
默認情況下,用戶帳戶在 Linux 中不會過期。使用 chage -l
命令檢查用戶的帳戶賬齡信息:
sudo chage -l [username]
如上面的示例所示,帳戶設置為不過期。通過使用帶有 -e
選項 的 usermod
來更改此設置。它允許您指定帳戶到期的年、月和日期:
sudo usermod -e [YYYY-MM-DD] [username]
通過再次使用 chage -l
命令檢查帳戶來確認更改是否成功:
設置用戶的外殼程序
使用 usermod -s
更改單個用戶的默認 shell:
sudo usermod -s [shell] [username]
如果更改成功, getent
將在條目末尾顯示新的默認 shell。
更改用戶的 UID
UID(用戶標識符)是在使用 useradd 命令創建帳戶時分配給 用戶的唯一
編號。 /etc/login.defs
文件定義 UID 值的范圍。使用 usermod -u
命令更改用戶的 UID:
sudo usermod -u [new-UID] [username]
在 passwd
條目中,找到緊跟在用戶名和密碼后面的 UID:
更改用戶的登錄名
通過添加 -l
選項更改用戶名。語法如下:
sudo usermod -l [newname] [oldname]
如上面的示例所示,使用舊用戶名檢查 /etc/passwd
文件不再返回數據。但是,現在在新名稱下可以使用相同的數據。
**
注意:** NAME_REGEX
/etc/adduser.conf
文件中的值定義了創建新用戶名的標准。但是, usermod
不會強制執行相同的標准來修改用戶名。雖然任何字符串都可以作為 usermod -l
** 的新用戶名,但仍建議遵守標准命名約定。
鎖定和解鎖用戶
使用 -L
選項鎖定用戶帳戶。
sudo usermod -L [username]
使用 -L
鎖定帳戶后,用戶的登錄嘗試在鍵入密碼時將失敗:
要解鎖之前鎖定的帳戶,請鍵入 usermod -U
,后跟帳戶名稱:
sudo usermod -U [username]
正如您在上面的示例中看到的,密碼現在再次起作用,並且 zsh shell 將啟動。
為用戶設置密碼
為用戶設置密碼的最常見方法是使用 passwd 命令。 usermod
還具有用於創建密碼的專用 -p
選項:
sudo usermod -p [password] [username]
但是,不建議使用此創建密碼的方法,因為密碼在 /etc/shadow
文件中可見。如果使用 grep 命令在 /etc/shadow
文件中查找用戶名,則該條目將包含使用 usermod
創建的密碼的純文本版本:
更改用戶的主要組
使用 usermod -g 更改用戶
的主要組:
sudo usermod -g [group] [username]
id
命令確認主組的成功更改:
將用戶添加到補充組
除了其主要組之外,用戶還可以是任意數量的補充組的成員。 -G
選項將用戶添加到補充組:
sudo usermod -G [group] [username]
但是,如果用戶已經屬於某些補充組, 則 usermod -G
會從這些組中刪除這些組,並僅添加到命令之后指定的組。
在下面的示例中,用戶已經是補充組的成員。 -a
和 -G
選項的組合將用戶添加到指定的組,並將他們保留在它們已經是其成員的補充組中。
sudo usermod -a -G [group] [username]
使用多個選項更改用戶帳戶
在一個命令中使用多個選項,以便更方便地編輯用戶。下面的示例顯示了一個 usermod
命令, 該命令:
-
更改主文件夾和外殼程序,
-
設置帳戶到期日期,
-
添加注釋,
-
更改 UID,以及
-
將用戶添加到補充組。
sudo usermod -d [home-folder] -s [shell] -e [YYYY-MM-DD] -c "[comment]" -u [UID] -aG [group] [username]
顯示所有用戶模式命令和參數
要閱讀 usermod
幫助,請使用 --help
參數:
usermod --help
有關選項和函數的更詳細列表,請使用 man 命令:
man usermod
結論
本指南解釋了 usermod
命令的使用及其眾多選項。閱讀后,您應該知道如何使用該命令修改用戶帳戶設置和登錄信息。