如何在Linux操作系統下使用命令行工具更改用戶名(重命名用戶名)或UID?如何在Linux下更改或重命名用戶名?
在Linux操作系統下,你需要使用usermod命令來更改用戶名。該命令會修改系統賬戶文件,以反映在命令行中指定的更改。不要用手或使用vi等文本編輯器編輯/etc/passwd文件。本頁介紹了如何在Linux系統中使用usermod命令修改或重命名用戶名。
按用戶名重命名語法如下:
usermod -l login-name old-name
我們在Linux中使用usermod命令來重命名用戶賬戶。用戶的名字將從原來的名字改為login_name。其他的內容都不會改變。特別是,用戶的主目錄名可能應該被改變以反映新的登錄名。
通過UID(用戶ID)重命名語法如下:
usermod -u UID username
其中:
用戶ID(UID)的數值。這個值必須是唯一的,除非使用-o選項。該值必須是非負數。0到99之間的值通常是為系統賬戶保留的。任何用戶擁有的、位於以用戶主目錄為根的目錄樹中的文件都會自動改變文件用戶ID。用戶主目錄之外的文件必須手動更改。
一、列出Linux系統中的所有用戶
輸入以下cat命令。
cat /etc/passwd
我們可以使用grep命令來過濾掉用戶名稱。
grep -w '^username' /etc/passwd
grep -w '^jerry' /etc/passwd
另一個選擇是使用 cut 命令。
cut -d: -f1 /etc/passwd
二、如何在Linux中更改或重命名用戶名和UID?
讓我們看看如何重命名用戶登錄。首先,確保用戶名沒有登錄服務器,並且任何其他進程沒有以同一用戶名運行。我還建議你在更改用戶名之前備份任何數據或服務器文件。
1、查看名為tom的用戶的當前用戶和組成員信息
首先使用id命令獲取用戶身份。
id tom
接下來使用grep命令從/etc/passwd文件中抓取名為tom的用戶的登錄信息。
grep '^tom:' /etc/passwd
使用 groups 命令查看名為tom的用戶的組信息。
grep 'tom' /etc/group
groups tom
查找用戶tom的主目錄權限,運行以下ls命令。
ls -ld /home/tom/
最后,使用ps命令查看名為tom的用戶和組擁有的所有Linux進程。
ps aux | grep tom
ps -u tom

2、在Linux上將用戶名從Tom改成Jerry。
輸入usermod命令如下。
# id tom
# usermod -l jerry tom
## Verify ###
# id tom
# id jerry
# ls -ld /home/tom
關於運行過程的說明
如果 tom 登錄並運行工作,你可能會看到如下錯誤。
# usermod -l jerry tom
usermod:用戶Tom目前被6886進程使用。
你需要結束所有名為tom的用戶所擁有的Linux進程,並強制將其退出系統。
# pkill -u tom pid
# pkill -9 -u tom
# usermod -l jerry tom
重命名並將主組名從Tom改為Jerry。
輸入usermod命令如下。
# id tom
# groupmod -n jerry tom
## Verify it ###
# id tom
# ls -ld /home/tom

3、如何將用戶主目錄從/home/tom/改為/home/jerry?
語法如下:
# usermod -d /home/jerry -m jerry
# id jerry
# ls -ld /home/jerry
輸出:
uid=1001(jerry) gid=1001(jerry) groups=1001(jerry)
drwxr-xr-x 2 jerry jerry 4096 Apr 21 15:53 /home/jerry/
4、如何將用戶tom UID從5001改為10000?
輸入usermod命令如下:
# id tom
# usermod -u 10000 tom
# id tom
5、獲取關於usermod命令的幫助
你可以給usermod命令傳遞--help選項。例如,在Linux的shell提示符下鍵入以下命令。
usermod --help
在本文中,你了解了如何在Linux中使用usermod命令更改或重命名用戶名和UID。
