【转载】/etc/passwd /etc/shadow 详解
轉載自:http://blog.csdn.net/snlying/article/details/6130468
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的用戶名;
轉載于:https://www.cnblogs.com/vanishfan/p/4443950.html
總結
以上是生活随笔為你收集整理的【转载】/etc/passwd /etc/shadow 详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual Studio 2010 将
- 下一篇: hihocoder #1015 : KM