摘要
在Linux操作系統下怎麼樣用命令行去修改用戶的名稱(也就是重命名),或者UID/GID
切記不要手動用vi之類的文本編輯器去修改/etc/passwd
文件
修改用戶名稱
Usage:
usermod -l login-name old-name
修改用戶的名稱 old-name
改成 login-name
,別的都沒有改變。其實我們也應該考慮是否把用戶的HOME目錄也改成新的用戶。
另外這裏有個問題需要注意
如果出現如下報錯
root@pts/0 $ usermod -l newjames james
usermod: user James is currently used by process 12345
說明有用james
用戶運行的程序,需要把相關的程序停掉之後再執行上面的命令
Examples:
## add user 'james' for test
root@pts/0 $ useradd james
## check original id
root@pts/0 $ id james
uid=1007(james) gid=1008(james) 組=1008(james)
## check HOME directory
root@pts/0 $ ls -ld /home/james/
drwx------ 2 james james 4096 12月 23 11:46 /home/james/
## try to change or rename and verify
root@pts/0 $ usermod -l newjames james
root@pts/0 $ id james
id: james: no such user
root@pts/0 $ id newjames
uid=1007(newjames) gid=1008(james) 組=1008(james)
## check HOME folder
root@pts/0 $ ls -ld /home/james/
drwx------ 2 newjames james 4096 12月 23 11:46 /home/james/
root@pts/0 $ ls -ld /home/newjames
ls: 無法訪問/home/newjames: 沒有那個文件或目錄
Dev-web-solr [~] 2016-12-23 11:47:22
root@pts/0 $
從上面可以看出,變化只僅僅是username,UID/GUID/HOME目錄都沒有改變
修改UID/GID相對很簡單,結合上面的例子。繼續如下:
修改UID
Usage:
usermod -u NEW-UID username
Examples:
## original UID is 1007
root@pts/0 $ id newjames
uid=1007(newjames) gid=1008(james) 組=1008(james)
## change 1007 to 2007
root@pts/0 $ usermod -u 2007 newjames
## modified to 2007
root@pts/0 $ id newjames
uid=2007(newjames) gid=1008(james) 組=1008(james)
修改GID/group-name
Usage:
groupmod -g NEW-GID groupname
Examples:
## james to newjames, but james's group is still 'james'
root@pts/0 $ groupmod -g 2007 newjames
groupmod:“newjames”組不存在
root@pts/0 $ id newjames
uid=2007(newjames) gid=1008(james) 組=1008(james)
root@pts/0 $ groupmod -g 2007 james
## try to rename group
root@pts/0 $ groupmod --help
用法:groupmod [選項] 組
選項:
-g, --gid GID 將組 ID 改爲 GID
-h, --help 顯示此幫助信息並推出
-n, --new-name NEW_GROUP 改名爲 NEW_GROUP
-o, --non-unique 允許使用重複的 GID
-p, --password PASSWORD 將密碼更改爲(加密過的) PASSWORD
-R, --root CHROOT_DIR chroot 到的目錄
root@pts/0 $ groupmod -n newjamesgroup james
## find that group was renamed
root@pts/0 $ id newjames
uid=2007(newjames) gid=1008(newjamesgroup) 組=1008(newjamesgroup)
## try to change GID
root@pts/0 $ groupmod -g 2007 james
root@pts/0 $ id newjames
uid=2007(newjames) gid= 2007(newjamesgroup) 組= 2007(newjamesgroup)
修改用戶HOME顯示
最後我們來考慮下前面說過的rename用戶名稱之後,HOME家目錄的顯示沒有改變。
Usage:
usermod -d /home/new-user -m new-user
Examples:
root@pts/0 $ ls -ld /home/james
drwx------ 2 newjames 1008 4096 12月 23 11:46 /home/james
root@pts/0 $ ls -ld /home/newjames
ls: 無法訪問/home/newjames: 沒有那個文件或目錄
## change HOME folder
root@pts/0 $ usermod -d /home/newjames -m newjames
root@pts/0 $ ls -ld /home/newjames
drwx------ 2 newjames 1008 4096 12月 23 11:46 /home/newjames
root@pts/0 $ ls -ld /home/james
ls: 無法訪問/home/james: 沒有那個文件或目錄
root@pts/0 $