/etc/passwd & /etc/shadow 詳解

snlying發表於2020-04-06

1,passwd檔案
passwd檔案存放在/etc目錄下。這個檔案存放著所有使用者帳號的資訊,包括使用者名稱和密碼,因此,它對系統來說是至關重要的。可以使用如下命令檢視該檔案:cat
/etc/passwd
Passwd檔案由許多條記錄組成,每條記錄佔一行,記錄了一個使用者帳號的所有資訊。每條記錄由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。

 

=================================================================================

 

在linux中,口令檔案在/etc/passwd中,早期的這個檔案直接存放加密後的密碼,前兩位是"鹽"值,是一個隨機數,後面跟的是加密的密碼。為了安全,現在的linux都提供了 /etc/shadow這個影子檔案,密碼放在這個檔案裡面,並且是隻有root可讀的。

下面來分析一下/etc/passwd檔案,他的每個條目有7個域,分別是名字:密碼:使用者id:組id:使用者資訊:主目錄:shell 例如:ynguo:x:509:510::/home/ynguo:/bin/bash

在利用了shadow檔案的情況下,密碼用一個x表示,普通使用者看不到任何密碼資訊。如果你仔細的看看這個檔案,會發現一些奇怪的使用者名稱,她們是系 統的預設賬號,預設賬號是攻擊者入侵的常用入口,因此一定要熟悉預設賬號,特別要注意密碼域是否為空。下面簡單介紹一下這些預設賬號

adm擁有賬號檔案,起始目錄/var/adm通常包括日誌檔案
bin擁有使用者命令的可執行檔案
daemon用來執行系統守護程式
games用來玩遊戲
halt用來執行halt命令
lp擁有印表機後臺列印檔案
mail擁有與郵件相關的程式和檔案
news擁有與usenet相關的程式和檔案
nobody被NFS(網路檔案系統)使用
shutdown執行shutdown命令
sync執行sync命令
uucp擁有uucp工具和檔案

 

 

傳統上,/etc/passwd檔案在很大範圍內是可讀的,因為許多應用程式需要用他來把UID轉換為使用者名稱。例如,如果不能訪問/etc/passwd,那麼ls -l命令將顯示UID而不是使用者名稱。但是使用口令猜測程式,具有加密口令的可讀/etc/passwd檔案有巨大的安全危險。所以出現了影子檔案/etc/shadow。

影子口令系統把口令檔案分成兩部分:/etc/passwd和/etc/shadow。影子口令檔案儲存加密的口令;/etc/passwd檔案中的密碼全部變成x。Shadow只能是root可讀,從而保證了安全。/etc/shadow檔案每一行的格式如下:

使用者名稱:加密口令:上一次修改的時間(從1970年1月1日起的天數):口令在兩次修改間的最小天數:口令修改之前向使用者發出警告的天數:口令終止後賬號被禁用的天數:從1970年1月1日起賬號被禁用的天數:保留域。

例如:root:$1$t4sFPHBq$JXgSGgvkgBDD/D7FVVBBm0:11037:0:99999:7:-1:-1:1075498172

bin:*:11024:0:99999:7:::
daemon:*:11024:0:99999:7:::預設情況下,口令更新並不開啟。如果你的系統沒有啟動影子檔案,那麼執行pwconv程式。

 

==========================================================================

 

●        /etc/passwd

與使用者相關的系統配置檔案主要有/etc/passwd 和/etc/shadow,其中/etc/shadow是使用者資訊的加密檔案,比如使用者的密碼口令的加密儲存等;/etc/passwd 和/etc/shadow 檔案是互補的。/etc/passwd 的內容簡介:

在/etc/passwd 中,每一行都表示的是一個使用者的資訊;一行有7個段位;每個段位用:號分割

第一欄位:使用者名稱(也被稱為登入名);

第二欄位:口令;其實密碼已被對映到/etc/shadow 檔案中;

第三欄位:UID ,使用者ID;

第四欄位:GID,組ID;

第五欄位:使用者名稱全稱,這是可選的;

第六欄位:使用者的家目錄所在位置;

第七欄位:使用者所用SHELL 的型別;

●        /etc/shadow

/etc/shadow檔案是/etc/passwd 的影子檔案,這個檔案並不由/etc/passwd 而產生的,這兩個檔案是應該是對應互補的;shadow內容包括使用者及被加密的密碼以及其它/etc/passwd 不能包括的資訊,比如使用者的有效期限等;這個檔案只有root許可權可以讀取和操作,許可權如下:

# ls -l /etc/shadow

-r——– 1 root root 1256 08-08 05:01 /etc/shadow

/etc/shadow 的許可權不能隨便改為其它使用者可讀,這樣做是危險的。如果您發現這個檔案的許可權變成了其它使用者組或使用者可讀了,要進行檢查,以防系統安全問題的發生。

/etc/shadow 的內容分析;

/etc/shadow 檔案的內容包括9個段位,每個段位之間用:號分割;

第一欄位:使用者名稱(也被稱為登入名),在/etc/shadow中,使用者名稱和/etc/passwd 是相同的,這樣就把passwd 和shadow中用的使用者記錄聯絡在一起;這個欄位是非空的;
第二欄位:密碼(已被加密),這個欄位是非空的;
第三欄位:上次修改口令的時間;這個時間是從1970年01月01日算起到最近一次修改口令的時間間隔(天數),您可以通過passwd 來修改使用者的密碼,然後檢視/etc/shadow中此欄位的變化;
第四欄位:兩次修改口令間隔最少的天數;如果這個欄位的值為空,帳號永久可用;

第五欄位:兩次修改口令間隔最多的天數;如果這個欄位的值為空,帳號永久可用;

第六欄位:提前多少天警告使用者口令將過期;如果這個欄位的值為空,帳號永久可用;

第七欄位:在口令過期之後多少天禁用此使用者;如果這個欄位的值為空,帳號永久可用;

第八欄位:使用者過期日期;此欄位指定了使用者作廢的天數(從1970年的1月1日開始的天數),如果這個欄位的值為空,帳號永久可用;
第九欄位:保留欄位,目前為空,以備將來發展之用; 

●      /etc/group 簡介

/etc/group 檔案是使用者組的配置檔案,內容包括使用者和使用者組,並且能顯示出使用者是歸屬哪個使用者組或哪幾個使用者組,因為一個使用者可以歸屬一個或多個不同的使用者組;同一使用者組的使用者之間具有相似的特徵。比如我們把某一使用者加入到root使用者組,那麼這個使用者就可以瀏覽root使用者家目錄的檔案,如果root使用者把某個檔案的讀寫執行許可權開放,root使用者組的所有使用者都可以修改此檔案,如果是可執行的檔案(比如指令碼),root使用者組的使用者也是可以執行的;使用者組的特性在系統管理中為系統管理員提供了極大的方便,但安全性也是值得關注的,如某個使用者下有對系統管理有最重要的內容,最好讓使用者擁有獨立的使用者組,或者是把使用者下的檔案的許可權設定為完全私有;另外root使用者組一般不要輕易把普通使用者加入進去,

●        理解/etc/group 內容

/etc/group 的內容包括使用者組(Group)、使用者組口令、GID及該使用者組所包含的使用者(User),每個使用者組一條記錄;格式如下:

group_name:passwd:GID:user_list

在/etc/group 中的每條記錄分四個欄位:

第一欄位:使用者組名稱;

第二欄位:使用者組密碼;

第三欄位:GID

第四欄位:使用者列表,每個使用者之間用,號分割;本欄位可以為空;如果欄位為空表示使用者組為GID的使用者名稱;

 

 

相關文章