/etc/shadow文件是/etc/passwd 的影子文件,這個文件並不禁/etc/passwd 而產生的,這兩個文件是應該是對應互補的;shadow內容包括用戶及被加密的密碼以及其它/etc/passwd 不能包括的信息,好比用戶的有效期限等;這個文件只有root權限能夠讀取和操做,權限以下:
-r-------- 1 root root 1.5K 10月 16 09:49 /etc/shadow
/etc/shadow 的權限不能隨便改成其它用戶可讀,這樣作是危險的。若是您發現這個文件的權限變成了其它用戶組或用戶可讀了,要進行檢查,以防系統安全問題的發生;
若是咱們以普通用戶查看這個文件時,應該什麼也查看不到,提示是權限不夠:
[beinan@localhost ~]$ more /etc/shadow
/etc/shadow: 權限不夠
2)/etc/shadow 的內容分析;
/etc/shadow 文件的內容包括9個段位,每一個段位之間用:號分割;咱們以以下的例子說明;
beinan:$1$VE.Mq2Xf$2c9Qi7EQ9JP8GKF8gH7PB1:13072:0:99999:7:::
linuxsir:$1$IPDvUhXP$8R6J/VtPXvLyXxhLWPrnt/:13072:0:99999:7::13108:
第一字段:用戶名(也被稱爲登陸名),在/etc/shadow中,用戶名和/etc/passwd 是相同的,這樣就把passwd 和shadow中用的用戶記錄聯繫在一塊兒;這個字段是非空的;
第二字段:密碼(已被加密),若是是有些用戶在這段是x,表示這個用戶不能登陸到系統;這個字段是非空的;
第三字段:上次修改口令的時間;這個時間是從1970年01月01日算起到最近一次修改口令的時間間隔(天數),您能夠經過passwd 來修改用戶的密碼,而後查看/etc/shadow中此字段的變化;
第四字段:兩次修改口令間隔最少的天數;若是設置爲0,則禁用此功能;也就是說用戶必須通過多少天才能修改其口令;此項功能用處不是太大;默認值是經過/etc/login.defs文件定義中獲取,PASS_MIN_DAYS 中有定義;
第五字段:兩次修改口令間隔最多的天數;這個能加強管理員管理用戶口令的時效性,應該說在加強了系統的安全性;若是是系統默認值,是在添加用戶時由/etc/login.defs文件定義中獲取,在PASS_MAX_DAYS 中定義;
第六字段:提早多少天警告用戶口令將過時;當用戶登陸系統後,系統登陸程序提醒用戶口令將要做廢;若是是系統默認值,是在添加用戶時由/etc/login.defs文件定義中獲取,在PASS_WARN_AGE 中定義;
第七字段:在口令過時以後多少天禁用此用戶;此字段表示用戶口令做廢多少天后,系統會禁用此用戶,也就是說系統會不能再讓此用戶登陸,也不會提示用戶過時,是徹底禁用;
第八字段:用戶過時日期;此字段指定了用戶做廢的天數(從1970年的1月1日開始的天數),若是這個字段的值爲空,賬號永久可用;
第九字段:保留字段,目前爲空,以備未來Linux發展之用;
若是更爲詳細的,請用 man shadow來查看幫助,您會獲得更爲詳盡的資料;
再根據實例分析:
beinan:$1$VE.Mq2Xf$2c9Qi7EQ9JP8GKF8gH7PB1:13072:0:99999:7:::
linuxsir:$1$IPDvUhXP$8R6J/VtPXvLyXxhLWPrnt/:13072:0:99999:7::13108:
第一字段:用戶名(也被稱之爲登陸名),在例子中有峽谷兩條記錄,也表示有兩個用戶beinan和linuxsir
第二字段:被加密的密碼,若是有的用戶在此字段中是x,表示這個用戶不能登陸系統,也能夠看做是虛擬用戶,不過虛擬用戶和真實用戶都是相對的,系統管理員隨時能夠對任何用戶操做;
第三字段:表示上次更改口令的天數(距1970年01月01日),上面的例子能說明beinan和linuxsir這兩個用戶,是在同一天更改了用戶密碼,固然是經過passwd 命令來更改的,更改密碼的時間距1970年01月01日的天數爲13072;
第四字段:禁用兩次口令修改之間最小天數的功能,設置爲0
第五字段:兩次修改口令間隔最多的天數,在例子中都是99999天;這個值若是在添加用戶時沒有指定的話,是經過/etc/login.defs來獲取默認值,PASS_MAX_DAYS 99999;您能夠查看/etc/login.defs來查看,具體的值;
第六字段:提早多少天警告用戶口令將過時;當用戶登陸系統後,系統登陸程序提醒用戶口令將要做廢;若是是系統默認值,是在添加用戶時由/etc/login.defs文件定義中獲取,在PASS_WARN_AGE 中定義;在例子中的值是7 ,表示在用戶口令將過時的前7天警告用戶更改期口令;
第七字段:在口令過時以後多少天禁用此用戶;此字段表示用戶口令做廢多少天后,系統會禁用此用戶,也就是說系統會不能再讓此用戶登陸,也不會提示用戶過時,是徹底禁用;在例子中,此字段兩個用戶的都是空的,表示禁用這個功能;
第八字段:用戶過時日期;此字段指定了用戶做廢的天數(從1970年的1月1日開始的天數),若是這個字段的值爲空,賬號永久可用;在例子中,咱們看到beinan這個用戶在此字段是空的,表示此用戶永久可用;而linuxsir這個用戶表示在距1970年01月01往後13108天后過時,算起來也就是2005年11月21號過時;哈哈,若是有興趣的的弟兄,本身來算算,大致仍是差很少的;);