/etc/passwd & /etc/shadow詳解 1.passwd檔案 passwd檔案存放在/etc目錄下。這個檔案存放著所有使用者帳號的資訊,包括使用者名稱和密碼,因此,它對系統來說是至關重要的。可以使用如下命令查看該檔案:cat /etc/passwdPasswd檔案由許多條記錄組成,每條記錄佔一行,記錄了一個使用者帳號的所有資訊。每條記錄由7個欄位組成,欄位間用冒號“:”隔開,其格式如下: username:password:User ID:Group ID:comment:home directory:shell 欄位含義: username 使用者名稱它唯一地標識了一個使用者帳號,使用者在登入時使用的就是它。password 該帳號的口令passwd檔案中存放的密碼是經過加密處理的。Linux的密碼編譯演算法很嚴密,其中的口令幾乎是不可能被破解的。盜用帳號的人一般都藉助專門的駭客程 序,構造出無數個密碼,然後使用同樣的密碼編譯演算法將其加密,再和本欄位進行比較,如果相同的話,就代表構造出的口令是正確的。因此,建議不要使用生日、常用 單詞等作為口令,它們在駭客程式面前幾乎是不堪一擊的。特別是對那些直接連入較大網路的系統來說,系統安全性顯得尤為重要。User ID 使用者識別碼,簡稱UID。 Linux系統內部使用UID來標識使用者,而不是使用者名稱。UID是一個整數,使用者的UID互不相同。Group ID 使用者組識別碼,簡稱GID。不同的使用者可以屬於同一個使用者組,享有該使用者組共有的許可權。與UID類似,GID唯一地標識了一個使用者組。comment 這是給使用者帳號做的註解它一般是使用者真實姓名、電話號碼、住址等,當然也可以是空的。home directory 主目錄這個目錄屬於該帳號,當使用者登入後,它就會被置於此目錄中,就像回到家一樣。一般來說,root帳號的主目錄是/root,其他帳號的家目錄都在/home目錄下,並且和使用者名稱同名。login command 使用者登入後執行的命令一般來說,這個命令將啟動一個shell程式。例如,用bbs帳號登入後,會直接進入bbs系統,這是因為bbs帳號的login command指向的是bbs程式,等系統登入到bbs時就自動運行這些命令。 系統帳號 系統中還有一些預設的帳號,如daemon、bin等。這些帳號有著特殊的用途,一般用於進行系統管理。這些帳號的口令大部分用(x)號表示,代表它們不能在登入時使用。 2.shadow檔案 為了增強系統的安全性,Linux系統還可以為使用者提供MD5和Shadow安全密碼服務。如果在安裝 Linux 時在相關配置的選項上選中了MD5和Shadow服務,那麼將看到的/etc/passwd檔案裡的passwd項上無論是什麼使用者,都是一個“x”,這就表示這些使用者都登入不了;系統其實是把真正的密碼資料放在了/etc/shadow檔案裡。 /etc/shadow檔案只能以root身份來瀏覽。為什麼要這樣做呢,原因其實很簡單,在系統設計的時候,/etc/passwd檔案是任何人都可以讀的,那麼那些心有所圖的 人就可以利用這個檔案,使用各種各樣的工具按照Linux密碼加密的方法把使用者甚至root的密碼試出來,這樣整個系統就會被他所控制,嚴重危害系統的安 全和使用者資料的保密性。 3.有關命令 pwconv根據/etc/passwd檔案產生/etc/shadow。它把所有口令從/etc/passwd移到/etc/shadow中。pwunconv將/etc/shadow中的資訊儘可能地恢複到/etc/passwd。