1. 程式人生 > >[Linux][Ubuntu]Ubuntu修改使用者名稱和密碼

[Linux][Ubuntu]Ubuntu修改使用者名稱和密碼

因有時會copy別人的linux映象,為了方便會修改使用者名稱和密碼,今天查了下資料,自己嘗試了下,記錄下來,以防忘記!

修改密碼

輸入下列命令,並鍵入舊密碼和新密碼,即可修改成功
$sudo passwd xxxx
$sudo passwd root

轉自:更改ubuntu使用者名稱

修改使用者名稱

方案一(方便快捷)

開啟虛擬機器,不要登入,使用CTRL+ALT+F1開啟一個字元終端用root使用者登陸(CTRL+ALT+F7返回操作介面);首先登入當前使用者如:sailer,設定root使用者密碼,命令:exit,sailer使用者退出系統,以root使用者登陸。

# usermod -l sailor -md /home/sailor sailer
# groupmod -n sailor sailer

方案二(比較繁瑣,可以使用)

在vim下,通過輸入以下命令,將檔案內字串進行替換,str2替換str1

:%s/str1/str2/

這種方法更加本質,直接修改與使用者和組相關的幾個配置檔案。其實userdel、useradd、passwd等命令本質上也是修改這幾個檔案。Linux下沒有直接更改使用者名稱的命令工具,或者有這樣的工具但我不知道,但即使有這樣的工具,其本質也是修改這幾個配置檔案。

$ su -
# vim /etc/passwd
... ...
sailer:x:1000:1000:sailer,,,:/home/sailer:/bin/bash

這個檔案每行對應著一個使用者,每行由冒號分割為7個欄位,其含義分別為:
使用者名稱:口令:使用者標識號:組標識號:註釋性描述:主目錄:登入Shell

例如上面的passwd檔案我們改成這個樣子:

# vim /etc/passwd
... ...
sailor:x:1000:1000:sailor,,,:/home/sailor:/bin/bash

修改一下使用者的主目錄的目錄名:

# mv /home/sailer /home/sailor

使用者的登陸密碼其實並不存放在/etc/passwd檔案中,而是在/etc/shadow檔案中。開啟它:

# vim /etc/shadow
... ...    
sailer:$6$tDOxH2en$Neyhp/0oRtJk7kjxX.L3OAkcVIiyxNt8P/rsoo5aeTMQbjG5rSNwsXs3BR15qJ6mNedU47h2YFepMAVG9uMyx0:17035:0:99999:7:::

這個檔案存放了使用者的密碼(經過加密)還有密碼的失效時間等一些資訊。最後我們還需要把這個使用者加入到若干組中去。開啟/etc/group檔案:

# vim /etc/group
... ...
sudo:x:27:sailer
... ...
plugdev:x:46:sailer
... ...
sailer:x:1000:

這個檔案每行對應一個使用者組,其格式為“組名:組密碼佔位符:組ID:組內使用者列表”。另外Linux下有一個私有組概念,即每建立一個使用者,系統會自動建立一個與使用者同名的組,該組為該使用者的主組(或稱私有組)。使用者除了屬於與自己同名的主組外,還會屬於其他組,這些組稱為使用者的附加組。

改完後是如下效果:

# vim /etc/group
... ...
sudo:x:27:sailor
... ...
plugdev:x:46:sailor
... ...
sailor:x:1000:

與passwd檔案對應一個shadow檔案用於儲存使用者登陸密碼類似,group檔案也對應一個gshadow檔案用於存放使用者組的密碼。其實使用者組密碼對於我們這種桌面應用環境來說根本用不著,但作為強迫症患者還是要把系統修改完美。我們開啟這個檔案看一下:

# vim /etc/gshadow
saned:!::
davfs2:!::
sailer:!::

同樣每行對應一個組,格式為:“組名:密碼:組管理者:組內使用者列表”,其中密碼欄位為”!”表示沒有密碼。這裡我們只需要將組名sailer改為sailor就行了。

好了,到這裡才算大功告成了!

方案三 (有一些問題)

  1. 檢視所屬使用者組
    登入Ubuntu,在當前使用者情況下,檢視屬於哪些使用者組;

    $ groups
    sailer adm cdrom sudo dip plugdev lpadmin sambashare

  2. 刪除當前使用者
    因當前使用者是無法刪除自己的,即使sudo也不行。例如:

    $ sudo userdel sailer
    userdel: user sailer is currently used by process 5046

    所以,當前使用者必須退出系統,用另一個使用者(如root使用者)登陸並執行userdel操作。先輸入使用者密碼,在輸入兩次新密碼,修改成功;

    $ sudo passwd

    然後在root下reboot,不要登入,使用CTRL+ALT+F1開啟一個字元終端用root使用者登陸(CTRL+ALT+F7返回操作介面),然後刪除剛才的使用者,(使用者的主目錄刪掉/修改檔名):

    $ su

    root# userdel sailer
    1、root# mv /home/sailer /home/sailor
    2、root# rm -rf /home/sailer

  3. 建立新使用者
    接著建立新的使用者,併為之設定密碼

    root# useradd sailor
    root# passwd sailor

  4. 新增使用者組
    這時你建立的新使用者僅僅會屬於使用者的私有組,最後我們還需要把這個使用者加入到第一步記下來的若干組中去:
    root# usermod -G adm,cdrom,sudo,dip,plugdev,lpadmin,sambashare sailor