轉自:http://blog.csdn.net/sailor201211/article/details/52305591
方案二:修改與用戶和組相關的配置文件
這種方法更加本質,直接修改與用戶和組相關的幾個配置文件。其實userdel、useradd、passwd等命令本質上也是修改這幾個文件。Linux下沒有直接更改用戶名的命令工具,或者有這樣的工具但我不知道,但即使有這樣的工具,其本質也是修改這幾個配置文件。
同方案一一樣,首先還是查看一下,當前用戶屬於哪些用戶組,並記下來。然后設置root用戶密碼。接着以root用戶身份打開/etc/passwd文件,這個文件設置了當前系統的所有用戶相關信息。
$ su - # vim /etc/passwd ... ... sailer:x:1000:1000:sailer,,,:/home/sailer:/bin/bash
這個文件每行對應着一個用戶,每行由冒號分割為7個字段,其含義分別為:
用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄Shell
這里我們找到我們需要修改的用戶,將該行的用戶名更改一下即可,另外把用戶的主目錄最好也改一下,讓主目錄與用戶名相同(這樣符合強迫症患者的習慣)。而用戶的uid和gid都無需改動。例如上面的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:::
這個文件存放了用戶的密碼(經過加密)還有密碼的失效時間等一些信息。同passwd文件一樣,每行對應一個用戶,每行以冒號分割為若干字段,其中第一個字段為用戶名。找到我們要修改的用戶名,直接改之。經過前面兩步,其實用戶名已經改好了,而密碼還是原來的密碼,原來的用戶的uid和gid也不變。最后我們還需要把這個用戶加入到若干組中去。打開/etc/group文件:
# vim /etc/group ... ... sudo:x:27:sailer ... ... plugdev:x:46:sailer ... ... sailer:x:1000:
這個文件每行對應一個用戶組,其格式為“組名:組密碼占位符:組ID:組內用戶列表”。另外Linux下有一個私有組概念,即每創建一個用戶,系統會自動創建一個與用戶同名的組,該組為該用戶的主組(或稱私有組)。用戶除了屬於與自己同名的主組外,還會屬於其他組,這些組稱為用戶的附加組。
剛才我們修改了用戶名,那么用戶所屬的私有組的組名也應該一並修改(當然不改也不會有任何問題,私有組和附加組並無實質區別,但我們是強迫症嘛,所以改之),找到要修改的組名sailer,改為sailor。原sailer用戶屬於若干個附加組中,如sudo組、plugdev組等,我們將這些組的組內成員列表的sailer改為sailor。改完后是如下效果:
# 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就行了。
好了,到這里才算大功告成了!