passwd檔案是以行為單位的配置檔案,每行定義系統上的乙個使用者,行內分為字段,字段之間由乙個冒號隔開。這些字段依次為:
使用者名稱密碼使用者id
組id使用者全名
主目錄登入shell
補充:密碼:在舊的unix系統上,這個字段含有使用者的加密密碼,為了安全性,現在的linux均顯示為 x 或 * 號。
使用者全名:安裝linux時如果不輸入全名,則顯示為跟使用者名稱一樣,如果輸入,則顯示為全名(不可用於登入)
shadow檔案
通過perl生成linux系統使用者儲存在shadow中的密碼:
perl -e 'print crypt("12345678",q($1$ildiyncq)),"\n"'
\\其中12345678為要給使用者設定的密碼,
$1$ildiyncq字串是自定義字串,shadow裡一般用$1$後面跟8個字元這種格式。
生成的密碼串樣式如下:
$1$ildiyncq$0napsn3qck9sj4fqp5rfz0
中間有個$,前面算salt,這個salt是隨機寫入的,跟後面的加密值,合在一起叫hash
"$1$" stands for md5, 後面只能跟8個字元
"$2a$" is blowfish,
"$5$" is sha-256
"$6$" is sha-512,
crypt 本身預設用des演算法
如果salt以$1$開頭就使用md5演算法
des演算法命令如下:
perl -e 'print crypt("12345678","/g"),"\n"'
生成的密碼串樣式如下:
/gsr78mzt1eyi
可以通過檢視libcrypt[._*]鏈結到/usr/lib下的哪些庫檔案來得知系統密碼所使用的加密演算法。
如果鏈結到libcrypt*庫,那麼使用的為md5;
如果為libdescrypt*,就應該為des了。
具體操作如下:
#cd /usr/lib
#ls -l libcrypt[._]*
linux的passwd和shadow重要檔案說明
l etc passwd vim etc passwd root x 0 0 root root bin bash 省略 說明 每一行都代表乙個賬號。有很多賬號是系統中必須要的,簡稱系統賬號,例如bin,nobody 等。每一行使用 分隔開,共有七段,分別是 1,賬號名稱。對應 uid 用的!2,密...
Linux下passwd和shadow檔案內容詳解
一 etc passwd name password uid gid comment home shell name 使用者登入名 password 使用者口令。此域中的口令是加密的,常用x表示。當使用者登入系統時,系統對輸入的口令採取相同的演算法,與此域中的內容進行比較。如果此域為空,表明該使用者...
shadow 檔案詳解
一 etc shadow檔案的來歷 在以前的linux系統中,使用者名稱 所在的使用者組 密碼 單向加密 等資訊都儲存在 etc shadow的 檔案中,很多軟體通過呼叫這個檔案來獲取使用者名稱和使用者組,例如ls命令通過使用者id來找到 etc passwd檔案中的使用者名稱。這意味著,所有使用者...