usermod更改用戶家目錄


個人原創,歡迎交流^_^
系統: Ubuntu 16.04 LTS
今天使用usermod命令更改用戶的家目錄, 總是失敗. 上網查詢了各種方法也還是不可以, 最后慢慢嘗試總算找到了對的方法, 現記錄下來.

例: 新添加了用戶user1, 將其改為user2, UID/GID不變, 用戶名,基本組名和家目錄均改為user2.
1. 創建用戶user1;
useradd -m user1;
ll /home;
usermod更改用戶家目錄
cat /etc/passwd;
usermod更改用戶家目錄
id user1;
usermod更改用戶家目錄
我們成功創建了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更改用戶家目錄
使用此命令仍報錯,報錯信息是usermod命令的使用說明(可能是Ubuntu特有的報錯模式?)
最初猜測可能是因為沒有/home/user2這個目錄,所以先創建了一個,再執行上述命令,仍是同樣結果:
mkdir user2;
usermod更改用戶家目錄
usermod -dm /home/user2 -u 1001 user1;
仍是同樣的報錯信息.
當時百思不得其解,為什么別人用這個命令可以,我用就不可以?
我又嘗試了命令
usermod -d -m /home/user2 -u 1001 user1;
報錯.
usermod -m -d /home/user2 -u 1001 user1;
usermod更改用戶家目錄
這次出現了不一樣的報錯信息,提示目錄/home/user2不存在,但實際上我已經用root創建了user2目錄,怎么可能不存在?難道是因為目錄user2的屬主和屬組都是root,權限或usermod命令的局限性所致無法將其屬主改為user2?於是我把user2目錄手動刪除之后再usermod:
rmdir user2;
usermod -m -d /home/user2 -u 1001 user1;

usermod更改用戶家目錄
提示信息為usermod無改變,難道user1的家目錄已經變為/home/user2?我用finger命令查看了一下:
finger user1;
usermod更改用戶家目錄
user1的家目錄確實已經變成/home/user2,但此時ll /home並沒有發現user2目錄.
於是我重新整理思路,嘗試將其家目錄先變回user1,再重新變為user2;
usermod -m -d /home/user1 -u 1001 user1;
usermod更改用戶家目錄
提示/home/user1不存在,但是
finger user1;
usermod更改用戶家目錄
發現其實已經變回來了,再使用命令:
usermod -m -d /home/user2 -u 1001 user1;
終於沒有報錯!
ll /home;
usermod更改用戶家目錄
發現/home/user2目錄出現,屬主為user1,屬組為user1,以前的/home/user1目錄不見了.
使用su - 命令切換到用戶user1看是否成功創建了家目錄:
su - user1; #此處應使用su - user1而不是su user1以改變各種環境變量等,否則可能出現假陽性?
ll;
usermod更改用戶家目錄
pwd;
usermod更改用戶家目錄
成功切換,一切正常.
至此,終於將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;

  usermod更改用戶家目錄
groupmod -n user2 user1;
ll;

usermod更改用戶家目錄
finger user2;
usermod更改用戶家目錄
cat /etc/passwd;
usermod更改用戶家目錄
至此,成功將user1的登錄名,基本組名和家目錄改為了user2(即把user1改名叫user2了,和使用命令useradd -m user2是一樣的效果).
Tips:
1. 很多linux的短選項可以縮寫,如-m -n 可以寫為-mn,但在usermod命令中,-m -d 縮寫為-dm是不可以的(至少在我的電腦上我的這個版本上是不可以的),所以 當某個短選項后面加參數時不要和其他短選項混合縮寫.
2. Ubuntu可使用 gnome-screenshot -a局部截圖,但是后來發現這個桌面版直接在系統設置里可以設置成快捷鍵.
3. 花了一下午加半個晚上終於搞定了這個命令,這效率我也是醉了...智商堪憂,只好繼續努力...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM