如果您是一個網管人員,管理帳號是平常很常做的工作,但要控管好整個系統的帳號並不是那麼容易的事情,尤其您還可能遇到各種不同的需求或考量。如果您是個工程師,雖然網管不是您主要負責的工作,但或多或少都會碰到,如果您是個初學者,管理帳號也一定是您必修的技能,以下我們就來學習一下基本的帳號管理吧。

相關檔案

檔案路徑 說明
1 /etc/passwd 帳號資訊。
格式:[帳號名稱]:x:[UID]:[GID]:[帳號資訊說明]:[家目錄]:[指定shell]
2 /etc/shadow 帳號密碼,早期密碼是放在/etc/passwd。
格式:[帳號名稱]:[加密的密碼]:[密碼最後更改日期]:[密碼有效最小日數]:[密碼有效最大日數]:[密碼過期前幾天出現警告]:[幾日無登入鎖定]:[有效日期]:[保留]
3 /etc/group 群組資訊。
格式:[群組名稱]:x:[GID]:[群組資訊說明]:[成員清單]
4 /etc/gshadow 群組管理員密碼。
格式:[群組名稱]:[加密的密碼]:[群組管理員]:[成員清單]

早期帳號密碼的資訊都是寫在 /etc/passwd 裡面,後來因為資訊安全的原因才將帳密分離成兩個檔案,另外 /etc/passwd 與 /etc/gshadow 的成員清單是一樣的。

新增帳號

            
                $ useradd -G [群組] -s /bin/bash [帳號名稱]      // 建立帳號
                $ useradd -G [群組] -s /sbin/nologin [帳號名稱]    // 建立帳號 (不登入)
                $ passwd [帳號名稱]                               // 設定密碼
            
        

有時候你可能會希望新增的帳號不能讓使用者拿來登入,例如:用來寄發 mail 的帳號,就可以使用 useradd -G [群組] -s /sbin/nologin [帳號名稱] 指令來新建帳號。


此外,您也可以使用 adduser 指令來新增帳號,這個指令使用互動式方式運行,提示您設定新使用者的密碼、全名、電話等訊息。

            
                $ adduser test
                Adding user `test' ...
                Adding new group `test' (1002) ...
                Adding new user `test' (1002) with group `test' ...
                Creating home directory `/home/test' ...
                Copying files from `/etc/skel' ...
                New password: 
                Retype new password: 
                passwd: password updated successfully
                Changing the user information for test
                Enter the new value, or press ENTER for the default
                        Full Name []: test
                        Room Number []: 
                        Work Phone []: 
                        Home Phone []:   
                        Other []: 
                Is the information correct? [Y/n] Y
            
        

首次登入強制更改密碼

有時候,當您建立好帳號,並將帳號分配給其他同事時,您可能希望要求他們首次登入後強制更改密碼。為此,您可以使用以下指令:

            
                $ chage -d 0 [帳號名稱]
            
        

刪除帳號

            
                $ userdel [-r] [帳號名稱]    // 刪除帳號
            
        

-r 代表連同家目錄一起刪除。

使用 sudo 指令切換帳號

使用 su 指令切換帳號,會需要用到該帳號的密碼,sudo 指令可以讓您使用自己的密碼來切換不同帳號執行指令,通常網管人員希望您可以管理這台電腦但又不想直接把 root 帳密給您,就會使用這種方式。但並不是所有的帳號都可以使用 sudo 指令,預設只有 root 帳號可以,但是我們還是可以透過編輯 /etc/sudoers 檔案來規範特定帳號或群組使用 sudo 指令。 編輯 /etc/sudoers 檔案或者輸入 visudo 指令,在檔案下面加入以下文字:

            
                root      ALL=(ALL:ALL) ALL       // 代表 root 帳號
                %wheel    ALL=(ALL:ALL) ALL       // 代表 wheel 群組
            
        

這樣 root 帳號跟屬於 wheel 群組的使用者就可以使用 sudo 指令了,請注意該動作需要是 root 帳號才能使用

參考資料