新添加了用戶user1, 將其改為user2, UID/GID不變, 用戶名,基本組名和家目錄均改為user2.
1. 創建用戶user1;
useradd -m user1;
ll /home;
cat /etc/passwd;
id user1;
我們成功創建了user1;
2. 更改user1的家目錄為user2;
由於man下沒找到usermod更改家目錄的命令具體格式(可能是我沒看清楚沒找到),最早使用了一下幾個命令:
usermod -dm /home/user2 user1;
usermod -dm /home/user2 1001;
usermod -d -m /home/user2 1001;
usermod -d /home/user2 -m 1001;
等類似命令,均不能實現.
之后度娘, 發現有很多人在問這個問題,而比較一致的回答是要加-u選項,后跟UID和用戶名,具體命令為:
usermod -dm /home/user2 -u 1001 user1;
使用此命令仍報錯,報錯信息是usermod命令的使用說明(可能是Ubuntu特有的報錯模式?)
我最初猜測可能是因為沒有/home/user2這個目錄,所以先創建了一個,再執行上述命令,仍是同樣結果:
mkdir user2;
usermod -dm /home/user2 -u 1001 user1;
仍是同樣的報錯信息.
當時百思不得其解,為什么別人用這個命令可以,我用就不可以?
我又嘗試了命令
usermod -d -m /home/user2 -u 1001 user1;
報錯.
usermod -m -d /home/user2 -u 1001 user1;
這次出現了不一樣的報錯信息,提示目錄/home/user2不存在,但實際上我已經用root創建了user2目錄,怎么可能不存在?難道是因為目錄user2的屬主和屬組都是root,權限或usermod命令的局限性所致無法將其屬主改為user2?於是我把user2目錄手動刪除之后再usermod:
rmdir user2;
usermod -m -d /home/user2 -u 1001 user1;
提示信息為usermod無改變,難道user1的家目錄已經變為/home/user2?我用finger命令查看了一下:
finger user1;
user1的家目錄確實已經變成/home/user2,但此時ll /home並沒有發現user2目錄.
於是我重新整理思路,嘗試將其家目錄先變回user1,再重新變為user2;
usermod -m -d /home/user1 -u 1001 user1;
提示/home/user1不存在,但是
finger user1;
發現其實已經變回來了,再使用命令:
usermod -m -d /home/user2 -u 1001 user1;
終於沒有報錯!
ll /home;
發現/home/user2目錄出現,屬主為user1,屬組為user1,以前的/home/user1目錄不見了.
使用su - 命令切換到用戶user1看是否成功創建了家目錄:
su - user1; #此處應使用su - user1而不是su user1以改變各種環境變量等,否則可能出現假陽性?
ll;
pwd;
成功切換,一切正常.
至此,終於將user1的家目錄切換為/home/user2.
正確的命令為:
usermod -m -d /home/user2 -u 1001 user1;
或
usermod -d /home/user2 -m -u 1001 user1;
最后,再改變用戶名和組名為user2:
usermod -l user2 user1;
ll;

groupmod -n user2 user1;
ll;

finger user2;

cat /etc/passwd;

至此,成功將user1的登錄名,基本組名和家目錄改為了user2(即把user1改名叫user2了,和使用命令useradd -m user2是一樣的效果).
1,更改用戶名:usermod -l newusername username。將username用戶名更改為newusername。
2,usermod其他參數如下:
-c<備注> 修改用戶帳號的備注文字。
-d登入目錄> 修改用戶登入時的目錄。
-e<有效期限> 修改帳號的有效期限。
-f<緩沖天數> 修改在密碼過期后多少天即關閉該帳號。
-g<群組> 修改用戶所屬的群組。
-G<群組> 修改用戶所屬的附加群組。
-l<帳號名稱> 修改用戶帳號名稱。
-L 鎖定用戶密碼,使密碼無效。
-s 修改用戶登入后所使用的shell。
-u 修改用戶ID。
-U 解除密碼鎖定。