Linux, Ubuntu,

使用者帳號與程序管理

/etc/passwd

提到使用者帳號就必須要談到這個檔案,檔案裡的每一行都代表一個帳號,所以總共幾行就表示有多少的帳號在你的系統中,至於每一行所成列的順序與意義如下:

帳號名稱:密碼:UID:GID:使用者資訊:家目錄:Shell

 

/etc/shadow

早期Unix 系統的密碼是放在/etc/passwd,但基於檔案特性而易使密碼被竊,因此密碼資料改放至/etc/shadow裡,所以要打開這個檔案是必須要有系統管理者權限,但打開後是不是真的密碼一覽無疑呢?當然沒那麼簡單,系統會加密所有的密碼。重點來了,使用者在登入系統時,系統如何去驗證密碼的正確性呢?其實,在你登入系統時所鍵入的密碼,系統仍然會將你鍵入的密碼加密,在去/etc/shadow裡比對兩組都已被加密的密碼是否一致,因此密碼是沒有經過解密的程序。至於檔案每行成列的順序與意義如下:

帳號名稱:密碼:近期更動密碼的日期(1970/1/1):密碼不可被更動的天數:密碼需要重新變更的天數:密碼需要變更期限前的警告天數:密碼過期後的帳號寬限時間:使用者帳號的有效期限:保留欄位
<Tips>
基於系統安全,系統的最高權限root通常不會設定密碼,否則有心人士知道密碼後,即可在你的系統內恣意妄為,當然你也可以直接把root停權,其做法就是在/etc/shadow找到root此行後,直接在加密密碼前加上”!“,下次就無法用該帳號登入了,其他帳號的停權方式也是比照辦理,但編輯此檔案務必謹慎小心,只要少一個冒號都有可能發生慘劇,務必謹慎,謹慎,再謹慎!

 

adduser : 新增使用者帳號(互動式)

useradd : 新增使用者帳號(非互動式)

~# useradd [使用者帳號] -g [加入已存在的群組] -d [使用者家目錄] -m

<Tips>
1.除非加上 -m 參數,否則不會自動建立使用者目錄
2.須使用passwd指令給予密碼使帳號生效

 

userdel : 刪除使用者

~# userdel [使用者帳號]

<Tips>
加上 -r 參數會連同使用者的家目錄一併刪除

usermod : 編輯一個已存在的使用者帳號

~# usermod -l test user

將使用者帳號user改成test

~# usermod -m -d /home/test  user

將user的家目錄改成/home/test(加上 -m 參數會自動建立目錄)

passwd : 管理使用者密碼

~# passwd user -l

將user使用者帳號封鎖停權(-u 參數可解鎖)

~# passwd user -e

強制user使用者下次登入時更改密碼

 

/etc/group

群組名稱:群組密碼:GID:已加入此群組的使用者名稱

groupadd : 新增群組

~# groupadd [群組名稱] -g [自訂GID,未加則系統會自動給予]

groupdel : 刪除群組

~# groupdel [群組名稱]