Linux系統中修改用戶名


Ubuntu創建新用戶

$是普通管員,#是系統管理員,在Ubuntu下,root用戶默認是沒有密碼的,因此也就無法使用(據說是爲了安全)。想用root的話,得給root用戶設置一個密碼:
sudo passwd root
然後登錄時用戶名輸入root,再輸入密碼就行了。
ubuntu建用戶最好用adduser,雖然adduser和useradd是一樣的在別的linux糸統下,但是我在ubuntu下用useradd時,並沒有創建同名的用戶主目錄。
例子:adduser user1
這樣他就會自動創建用戶主目錄,創建用戶同名的組。
root@ubuntu:~# sudo adduser linuxidc
[sudo] password for xx:
輸入xx用戶的密碼,出現如下信息
正在添加用戶"linuxidc"…
正在添加新組"linuxidc" (1006)…
正在添加新用戶"linuxidc" (1006) 到組"linuxidc"…
創建主目錄"/home/linuxidc"…
正在從"/etc/skel"複製文件…
輸入新的 UNIX 口令:
重新輸入新的 UNIX 口令:
兩次輸入linuxidc的初始密碼,出現的信息如下
passwd: password updated successfully
Changing the user information for linuxidc
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Full Name []:等信息一路回車
這個信息是否正確? [Y/n] y

添加sudo權限

不論是adduser還是useradd的用戶都暫時沒有sudo的權限,所以要想實現sudo還需進行配置。

修改group

因爲Ubuntu安裝的時候,默認用戶是有sudo的,那麼就是因爲默認用戶處在sudo的group下,只用:

cat /etc/group | grep 'sudo'
  • 1
  • 1

這樣就能到sudo的group了,可以看到一般數字是:27.

修改用戶組:

usermod -G 27 new_username
  • 1
  • 1

這樣就可以了。

修改sudoers

直接修改sudoers文件,然後在root ALL=(ALL:ALL) ALL下面添加上:

new_username ALL=(ALL:ALL) ALL
  • 1
  • 1

就這樣就可以了。




二.修改主機名

裝ubuntu12.04系統時忘記修改主機名了,打開終端顯示olhho@xxx-virtual-machine

也可以在終端輸入: hostname 來查看主機名,可以通過以下方法來改成自己喜歡的主機名:

 

1.終端輸入su - 切換到root用戶,然後用vim編輯器打開配置文件/etc/hostname,也可以用gedit打開

root@xxx-virtual-machine:~# vim /etc/hostname

打開的文件內容就是主機名,修改爲你自己的就可以了,保存退出。

Linux系統Ubuntu下修改用戶名和主機名

 

2.修改hosts文件,打開hosts文件,修改127.0.1.1這一行,把127.0.1.1後面的主機名修改成你自己的,

保存並退出。然後重啓Ubuntu系統即可。

Linux系統Ubuntu下修改用戶名和主機名


在安裝系統的時候,經常會無意識的隨便起個用戶名,後面如果發現該用戶名不好或因爲環境需要須重起個用戶名,經過查找資料和親自測試發現有兩種方案可選:手動修改和使用usermod等命令自動修改。

方案一:手動修改各個關聯用戶文件

  1. 以root身份登錄
    系統文件的修改需要root權限,這裏不管是原root用戶登錄還是普通用戶切換到root下都可以,只要有修改權限就行。

  2. 修改/etc/passwd這個文件中的用戶名部分、用戶組部分和主目錄部分
    如我本來的用戶名爲hadoop,現在想修改爲seed,則要修改下面部分:


    修改/etc/passwd文件

    注意用戶組部分爲1000:1000中的第二個1000(組標識號),這裏沒有修改,因爲不需要新增加組而只是把原來的組名改掉即可(組標識號不變),見3。

  3. 修改/etc/group這個文件中的組名部分(組標識號不變),同時也將/etc/gshadow改寫一下
    etc/group文件修改


    修改/etc/group文件

    /etc/gshadow文件修改


    修改/etc/gshadow文件
  4. 修改/etc/shadow文件中的用戶名部分,這個不改將無法登錄系統,這步非常重要。


    修改/etc/shadow文件
  5. 修改/home/olduser爲/home/newuser,同時注意一定要修改其所屬的用戶和用戶組,這個很關鍵。


    注意:這步使用命令mv hadoop seed修改後,其下所有的文件所屬用戶和用戶組都自動修改好,不需要自己手動用chown -R修改。

    上面這5個步驟缺一不可,操作失誤很可能導致無法登入系統,認真完成上面的5個步驟重啓系統後即可修改成功。

  6. 修改sudoers文件
    經過上述步驟後,一般人都認爲大功告成了,而網上資料也最多隻有上面幾個步驟,其實還有一點很重要,以後你在使用sudo時會提示"xxx is not in the sudoers file. This incident will be reported.其中xxx是你的用戶名,也就是你的用戶名沒有權限使用sudo,這主要是因爲sudoers文件裏記錄的還是原來的用戶名,需要更新過來,步驟如下:

    (1)進入超級用戶模式。也就是輸入"su -"
    注意這裏有"-" ,這和su是不同的,在用命令”su”的時候只是切換到root,但沒有把root的環境變量傳過去,還是當前用戶的環境變量,用”su -”命令將環境變量也一起帶過去,就象和root登錄一樣。

    (2)添加文件的寫權限。

    chmod u+w /etc/sudoers

    (3)編輯/etc/sudoers文件。

    vi /etc/sudoers

    進入編輯模式,找到這一 行:
    root ALL=(ALL) ALL
    在它的下面添加:
    hadoop ALL=(ALL) ALL
    這裏的hadoop是你的新用戶名,然後保存退出。

    (4)撤銷文件的寫權限。

    chmod u-w /etc/sudoers


方案二:使用命令usermod修改

首先介紹下usermod命令的基本用法:

usermod [-LU][-c <備註>][-d <登入目錄>[-m]][-e <有效期限>]
[-f <緩衝天數>][-g <羣組>][-G <羣組>][-l <帳號名稱>][-s <shell>]
[-u <uid>[-o]] [用戶帳號]

描述:
usermod命令會參照你命令列上指定的部分修改系統帳號檔。下列爲usermod可選用的參數。
-c <備註>
更新/etc/passwd中的註解欄。
-d <登入目錄>
更新使用者新的登入目錄(用戶目錄)。如果給定-m選項,使用者舊目錄會搬到新的目錄去,如舊目錄不存在則建個新的。
-e <有效期限>
加上使用者帳號停止日期。日期格式爲MM/DD/YY.
-f <緩衝天數>
帳號過期幾日後永久停權。當值爲0時帳號則立刻被停權。而當值爲-1時則關閉此功能。預設值爲-1。
-g <羣組>
更新使用者新的起始登入羣組。羣組名須已存在。羣組ID必須參照既有的的羣組。羣組ID預設值爲1。
-G <羣組>
定義使用者爲一堆groups的成員。羣組名同-g選項的限制。如果使用者現在的羣組不再此列,則將使用者由該羣組中移除。
-l <帳號名稱>
變更使用者login時的名稱爲login_name,即修改用戶登錄名。其於不變。特別是,使用者目錄名應該也會跟着更動成新的登入名。
-s <shell>
指定新登入shell。如此欄留白,系統將選用系統預設shell。
-u <uid>
使用者ID值。必須爲唯一的ID值,除非用-o選項。數字不可爲負值。預設爲最小不得小於99而逐次增加。0~99傳統上是保留給系統帳號使用。使用者目錄樹下所有的檔案目錄其userID會自動改變。放在使用者目錄外的檔案則要自行手動更動。

警告

usermod不允許你改變正在線上的使用者帳號名稱。當usermod用來改變userID,必須確認這名user沒在電腦上執行任何程序,否則會報“usermod: user xxx is currently logged in”錯誤。因此必須root用戶登錄或者其他用戶登錄然後切換到root身份,而不能在當前用戶下切換至root進行修改。

修改用戶名步驟如下:以原來的用戶名seed修改爲hadoop用戶名爲例:

  1. 以root身份登錄

  2. usermod -l hadoop seed
    該命令相當於做了兩件事:
    (1)將/etc/passwd下的用戶名欄從seed修改爲hadoop,其他部分不變


    (2)將/etc/shadow下的用戶名欄從seed修改爲hadoop,其他部分不變


  3. usermod -c hadoop hadoop
    相當於將/etc/passwd下的註解欄修改爲hadoop,其他部分不變


  4. groupmod -n hadoop seed
    將原來的用戶組seed修改爲hadoop,只修改組名,組標識號不變,相當於修改了文件/etc/group和/etc/gshadow

  5. usermod -md /home/hadoop hadoop
    相當於做了兩件事:
    (1)將/etc/passwd下的登入目錄欄修改爲/home/hadoop,其他部分不變


    (2)將原來的用戶目錄/home/seed修改爲新的用戶目錄/home/hadoop


這些步驟可以說與方案一的一一對應,缺一不可。方案二簡單一點,但方案一更能讓我們理解這背後的運作機制。

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