文章目錄
- 使用者登入流程
- `/etc/passwd`檔案結構
- `etc/shadow`檔案結構
使用者登入流程
- 先在
檔案内尋找是否存在該使用者,沒有則跳出,若有則将該賬号對應的UID和GID(在/etc/passwd
中)讀出來。該賬号的主檔案與shell設定也一并讀出。/etc/group
- 然後是核對密碼表,系統會進入
内找出對應的賬号與UID,然後比對使用者輸入的密碼與檔案内儲存的密碼是否相同。/etc/shadow
/etc/passwd
檔案結構
/etc/passwd
該檔案中的每一行都代表着一個賬号。有幾行就代表系統中有幾個賬号。每個Linux系統該檔案的第一行都是系統管理者的賬号。
每行有7個字段,字段之間有
:
隔開,分别是:
- 賬号名稱:就是賬号,對應UID,例如root使用者的UID是0。
- 密碼:早起UNIX系統的賬号密碼就是存放在這個字段内,但是這個檔案的特性是所有應用都能讀取,于是密碼字段的資料就被放到了
檔案内了,而該字段就存放了一個“X”。/etc/shadow
- UID:使用者辨別符,Linux對這個UID有一定限制。當UID為0的時候,代表這個賬号是系統管理者。而UID從1~499都是系統賬号的UID,500以上就是可登陸賬号的UID。
- GID:就是Group ID,與
有關,該檔案的結構與/etc/group
差不多,就是用來規定組名與GID的對應而已。etc/passwd
- 使用者資訊說明:用來解釋這個賬号的意義
- 主檔案夾:隻是使用者的主檔案夾
- Shell:指定使用者預設使用的Shell
etc/shadow
檔案結構
etc/shadow
很多程式的運作都跟權限有關系,而權限又跟UID、GID有關系,是以各程式都需要能夠讀取
/etc/passwd
來了解不同賬号的權限。如果密碼之間儲存在
/etc/passwd
中就很容易被竊取。于是才有了
/etc/shadow
這個檔案将密碼單獨儲存。這個檔案的權限是600。
這個檔案中的内容也是一行對應一個賬号,而一行中有9個字段,分别是:
- 賬号名稱:因為密碼需要與賬号配對,是以這個字段必須存在于
中/etc/passwd
- 密碼:這個字段内的資料才是真正的密碼,而且是經過加密的密碼。
- 最近更改密碼的日期:該字段記錄了最近改動密碼的時間
- 密碼不可更改的日期:這個字段記錄了這個賬号的密碼在最近一次被更改之後要經過多長時間才能重新更改。
- 密碼需要重新更改的日期:為了強制使用者更改密碼,這個字段可以指定在最近一次更改密碼後多長時間内需要再次更改密碼。使用者必須在這個日期内更改密碼,否則這個賬号的密碼将會變為過期。
- 密碼需要更改期限前的警告天數:當密碼重新更改的日期快要到的時候,系統回依據這個字段的設定來為使用者發出警告。
- 密碼過期後的賬号寬限時間:如果在規定的期限内使用者沒有更改密碼,密碼就會過期,雖然密碼過期了但是該賬号還是可以進行其他操作包括登入系統取得bash。**不過如果密碼過期了,當使用者登入系統時,系統會強制要求使用者更改密碼。**但是如果連寬限時間都過了,那麼使用者就無法用這個密碼進行登入。
- 賬号失效日期:所謂的賬号過期,就是不論使用者的密碼是否過期,這個賬号都不能再使用,這個字段同長是使用在收費系統中。
- 保留字段