/etc/shadow文件介紹


      linux的root密碼存在於“/etc/shadow”這個文件中,不過要有root權限才能在linux下看到“/etc/shadow”這個文件。我用自己的虛擬機做一個演示,如下圖所示:

014

      上面這個圖中,我沒有設置root的密碼,可以看到root那一行最開始有個“!”。接着看下面的圖,已經設置了root密碼:

015

      在這里,主要是對shadow密碼存儲結構做一些介紹,參考了一下網絡上的相關內容,自己總結一下。

      密文字符串格式為:$id$salt$encrypted,通過$來分割,其中$id用來指定使用的算法,如下表格所示:

ID Method
1 MD5
2a

Blowfish(not in mainline glibc;added in some Linux distribution)

5

SHA-256(since glibc 2.7)

6

SHA-512(since glibc 2.7)

      從我上面的截圖可以看到,密文采用的是SHA-512算法。$salt是一個最多16個字符的隨機生成的字符串,用來增加破解難度。$encrypted就是通過加密算法和salt算出來的密文。

      接下來,描述一下這個密碼存儲的結構。

  1. 賬戶名:賬戶名與/etc/passwd里面的賬戶名是一一對應的關系。
  2. 密碼:這里可以看到3類,分別是奇奇怪怪的字符串、*!!其中,奇奇怪怪的字符串就是加密過的密碼文件。星號代表帳號被鎖定,雙嘆號表示這個密碼已經過期了。奇奇怪怪的字符串是以$6$開頭的,表明是用SHA-512加密的,$1$ 表明是用MD5加密的、$2$ 是用Blowfish加密的、$5$是用 SHA-256加密的。
  3. 修改日期:這個是表明上一次修改密碼的日期與1970-1-1相距的天數密碼不可改的天數:假如這個數字是8,則8天內不可改密碼,如果是0,則隨時可以改。
  4. 密碼需要修改的期限:如果是99999則永遠不用改。如果是其其他數字比如12345,那么必須在距離1970-1-1的12345天內修改密碼,否則密碼失效。
  5. 修改期限前N天發出警告:比如你在第五條規定今年6月20號規定密碼必須被修改,系統會從距離6-20號的N天前向對應的用戶發出警告。
  6. 密碼過期的寬限:假設這個數字被設定為M,那么帳號過期的M天內修改密碼是可以修改的,改了之后賬戶可以繼續使用。
  7. 帳號失效日期:假設這個日期為X,與第三條一樣,X表示的日期依然是1970-1-1相距的天數,過了X之后,帳號失效。
  8. 保留:被保留項,暫時還沒有被用上。

      參考文章:http://www.yucoat.com/linux_opensource/linux_etc_shadow.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM