Linux中使用者賬戶檔案解釋

2021-10-25 05:48:23 字數 3591 閱讀 9776

通過指令vi/etc/passwd開啟passwd檔案來看看,下面列舉部分內容:

root:x:0:0: root:/ root:/bin/ bash

daemon:x:1:1:daemon:/usr/sbin:/bin/sh

bin:x:2:2:bin:/bin:/bin/sh

sys:x:3:3:sys:/dev:/bin/sh

我們先來看一下每個limux系統都會有的第一-行,就是root這個系統管理員那行,可以明顯地看出來,每一行使用冒號分隔開,共有七個域。

(1)賬號名稱

賬號名稱用來對應uid.例如,root 的uid對應就是0
(2)口令

早期unix系統的口令就是放在這字段上。但是因為這個檔案的特性是所有的程式都能夠讀取,這樣一來很容易造成口令 個資料被竊取,因此後來就將這個欄位的口令資料改放到/etc/shadow中了。
(3)uid

這個就是使用者識別符號。預設的系統管理員的uid為0,我們新增使用者的時候最好使用1000以上的uid, 1~1 000範圍的uid最好保留給系統用。
(4)gid

這個與/etc/group有關。其實/etc/ group的觀念與/et/passwd差不多,只是它是用來規範組名與gid的對應而已。
(5)使用者資訊說明欄

這個字段基本上並沒有什麼重要用途,只是用來解釋這個賬號的意義而已!不過,如果使用finger的功能時,這個字段可以提供很多的資訊。
(6)家目錄

這是使用者的家目錄,以上面為例,root 的家目錄在/root,所以當root 登入之後,就會立刻跑到/root目錄裡。如果有個賬號的使用空間特別大,你想要將該賬號的家目錄移動到其他的硬碟去該怎麼做?可以在這個字段進行修改,預設的使用者家目錄在/home/ yourname。
(7)shell

當使用者登入系統後就會取得乙個shell 來與系統的核心溝通以進行使用者的操作任務。那為何預設shell會使用bash呢?就是在這個字段指定的!這裡比較需要注意的是,有乙個shell可以用來替代成讓賬號無法取得shell環境的登入動作,那就是/sbin/nologin,這也可以用來製作純pop郵件賬號者的資料。

通過指令head-n 4 /etc/shadow列舉passwd檔案部分內容來看看:

bin: * :14126:0:99999:7:::
基本上,shadw 同樣以冒號作為分隔符,如果數一 數,會發現共有九個字段,這九個欄位的用途如下。

(1)賬號名稱

由於口令也需要與賬號對應,因此,這個檔案的第一欄就是賬號, 必須要與/etelpasswd相同才行!
(2)口令

這個欄位內的資料才是真正的口令,而且是經過編碼的口令(加密)。需要特別留意的是,雖然這些加密過的口令很難被解出來,但是很難不等於不會,所以,這個檔案的預設許可權是「rw — — — — — — —」或者是「— r — — — — — — — — 」亦即只有root才可以讀寫。

另外,由於各種口令編碼的技術不一樣,因此不同的編碼系統會造成這個欄位的長度不相同。舉例來說,舊式的des編碼系統產生的口令長度就與目前慣用的md5不同。md5的口令長度明顯比較長。由於固定的編碼系統產生的口令長度必須一致,因此當你讓這個欄位的長度改變後,該口令就會失效(算不出來)。很多軟體透過這個功能,在此字段前加上!或*改變口令字段長度,就會讓口令暫時失效了。

(3)最近更改口令的日期

這個字段記錄了「更改口令那一天」的日期,不過,很奇怪呀!在例子中怎麼會是14126呢?這是因為計算linux日期的時間是以2023年1月1日作為1而累加的日期,2023年1月1日則為366啦!得注意一下這個資料。上述的14126指的就是2008-09-04那一一天。而想要了解該日期可以使用本章後面chage命令的幫忙!至於想要知道某個日期的累積日數,可使用如下的程式計算:

[root@localhost~]# echo $ (( $ (date— —"date=2008/09/04"十%s)/86400+1))

14126

上述命令中,2008/09/04 為你想要計算的日期,86400 為每一天的秒數,%s為1970/01/01以來的累積總秒數。由於bash僅支援整數,因此最終需要加上1補齊1970/01/01當天。

(4)口令不可被更動的天數(與第三字段相比)

第4個字段記錄了這個賬號的口令在最近次被更改後需 要經過幾天才可以再被變更!如果是0的話,表示口令隨時可以更改。這的限制是為了怕口令被某些人一改再改而設計的!如果配置為20天的話,那麼當你配置了口令之後,20天之內都無法改變這個口令。
(5)口令需要重新變更的天數(與第三字段相比)。

經常變更口倉是個好習慣!為了強制要求使用者變重口令,這個字段可以指定在最近一次更改口令後,在多少天數內需要再次變更口令才行。你必須要在這個天數內重新配置你的口令,否則這個賬號的口令將會「變為過 期特性」。而如果像99999 (計算為273年)的話,那就表示口令的變更沒有 強制性。
(6)口令需要變更期限前的警告天數(與第5欄位相比)。

當賬號的口令有效期限快要到的時候(第5欄位),系統會依據這個欄位的配置,發出警告給這個賬號,提醒「再過n天你的口令就要過期了,請盡快重新配置你的口令」,如上面的例子,則是口令到期之前的7天之內,系統會警告該使用者。
(7)口令過期後的賬號寬限時間(口令失效日) (與第5欄位相比)。

口令有效日期為「公升級日期(第3欄位)」+「重新變更日期(第5段)」,過了該期限後使用者依舊沒有公升級口令,那該口令就算過期了。雖然口令過期但是該賬號還是可以用來進行其他工作的,包括登入系統取得bash。不過如果口令過期了,那當你登入系統時,系統會強制要求你必須要重新配置口令才能登入繼續使用,這就是口令過期特性。

這個欄位的功能是在口令過期幾天後,如果使用者還是沒有登入更改口令,那麼這個賬號的口令將會失效,亦即該賬號再也無法使用該口令登入了。要注意口令過期與口令失效並不相同。

(8)賬號失效日期。

這個日期跟第3個字段一樣,都是使用2023年以來的總日數配置。這個字段表示:這個賬號在此字段規定的日期之後,將無法再使用。就是所謂的賬號失效,此時不論你的口令是否過期,這個賬號都不能再被使用!這個欄位會被使用通常應該是在收費服務的系統中,你可以規定乙個日期讓該賬號不能再使用。
(9)保留。

最後乙個欄位是保留的,看以後有沒有新功能加入。

Linux使用者賬戶檔案

linux每個使用者都有乙個uid,所有的使用者資訊都存放在 etc password檔案中,每個使用者的資訊都佔單獨的一行,各項之間用 隔開。為了安全起見,每個使用者的密碼都以加密的形勢存放在 etc shadow中。使用者uid的取值其實具有一定的限制,具體取值範圍如下 id 範圍 該 id 使...

Linux中使用者及檔案許可權管理

who am i 輸入的第一列表示開啟當前偽終端的使用者的使用者名稱 要檢視當前登入使用者的使用者名稱,去掉空格直接使用whoami即可 第二列的pts 0中pts表示偽終端,所謂偽是相對於 dev tty裝置而言的,還記得上一節講終端時的那七個使用 ctrl alt f1 f7 進行切換的 dev...

linux中使用者管理

使用者就是系統使用者的身份,在系統中使用者儲存為若干竄字元 若干個系統配置檔案 使用者資訊涉及到的系統配置檔案 etc passwd 使用者資訊 使用者 密碼 uid gid 說明 家目錄 使用者使用的shell etc shadow 使用者認證資訊 組名稱 組密碼 組id 附加組成員 etc gs...