Linux 下修改或者重新命名使用者名稱稱或者UID/GID
阿新 • • 發佈:2019-02-19
摘要
在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 $
公眾號: DailyJobOps