Linux 下修改或者重命名用戶名稱或者UID/GID

摘要

在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 $

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章