1. 程式人生 > >Linux 下修改或者重新命名使用者名稱稱或者UID/GID

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 1223 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 1223 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 1223 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 1223 11:46 /home/newjames

root@pts/0 $ ls -ld /home/james
ls: 無法訪問/home/james: 沒有那個檔案或目錄
root@pts/0 $

公眾號: DailyJobOps

    公眾號: DailyJobOps