linux 裏 /etc/passwd 、/etc/shadow和/etc/group 文件內容解釋

linux 裏 /etc/passwd 、/etc/shadow和/etc/group 文件內容解釋

一、/etc/passwd 是用戶數據庫,其中的域給出了用戶名、加密口令和用戶的其他信息

/etc/shadow文件中的記錄行與/etc/passwd中的一一對應,它由pwconv命令根據/etc/passwd中的數據自動產生。它的文 件格式與/etc/passwd類似,由若干個字段組成,字段之間用“:”隔開。這些字段是:


登錄名:加密口令:最後一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標誌
1)“登錄名”是與/etc/passwd文件中的登錄名相一致的用戶賬號
2)“口令”字段存放的是加密後的用戶口令字,長度爲13個字符。如果爲空,則對應用戶沒有口令,登
錄時不需要口令;
3)“最後一次修改時間”表示的是從某個時刻起,到用戶最後一次修改口令時的天數。時間起點對不同
的系統可能不一樣。例如在SCOLinux中,這個時間起點是1970年1月1日。
4)“最小時間間隔”指的是兩次修改口令之間所需的最小天數。
5)“最大時間間隔”指的是口令保持有效的最大天數。
6)“警告時間”字段表示的是從系統開始警告用戶到用戶密碼正式失效之間的天數。
7)“不活動時間”表示的是用戶沒有登錄活動但賬號仍能保持有效的最大天數。
8)“失效時間”字段給出的是一個絕對的天數,如果使用了這個字段,那麼就給出相應賬號的生存期。
期滿後,該賬號就不再是一個合法的賬號,也就不能再用來登錄了。

 

下面是/etc/shadow的一個例子:
#cat /etc/shadow
root:Dnakfw28zf38w:8764:0:168:7:::

/etc/passwd
該目錄存儲的是操作系統用戶信息,該文件爲所有用戶可見。
給linux系統添加一個帳號:
useradd -g mysql -d /home/test -m test(:新建一個用戶test, 屬於mysql組,開始目錄是/home/test)
然後進入 /etc/passwd,可以看到如下信息,在最後一行可以看到剛加的用戶的信息。如下
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dovecot:x:97:97:dovecot:/usr/libexec/dovecot:/sbin/nologin
webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologin
squid:x:23:23::/var/spool/squid:/sbin/nologin
pcap:x:77:77::/var/arpwatch:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
hsqldb:x:96:96::/var/lib/hsqldb:/sbin/nologin
gdm:x:42:42::/var/gdm:/sbin/nologin
hzmc:x:500:500:hzmc:/home/hzmc:/bin/bash
mysql:x:501:501::/home/mysql:/bin/bash
chenhua:x:503:501::/home/chenhua:/bin/bash
test:x:504:501::/home/test:/bin/bash
可以看出/etc/passwd文件存放的是用戶的信息,由6個分號組成的7個信息,解釋如下
(1):用戶名。
(2):密碼(已經加密)
(3):UID(用戶標識),操作系統自己用的
(4):GID組標識。
(5):用戶全名或本地帳號
(6):開始目錄
(7):登錄使用的Shell,就是對登錄命令進行解析的工具。

 

二、/etc/shadow是在安裝了影子(shadow)口令軟件的系統上的影子口令文件

shadow 是 passwd 的影子文件。
在linux中,口令文件在/etc/passwd中,早期的這個文件直接存放加密後的密碼,前兩位是"鹽"值,是一個隨機數,後面跟的是加密的密碼。爲了安全,現在的linux都提供了 /etc/shadow這個影子文件,密碼放在這個文件裏面,並且是隻有root可讀的。
/etc/passwd文件的每個條目有7個域,分別是名字:密碼:用戶id:組id:用戶信息:主目錄:shell 
例如:ynguo:x:509:510::/home/ynguo:/bin/bash 
在利用了shadow文件的情況下,密碼用一個x表示,普通用戶看不到任何密碼信息。影子口令文件保存加密的口令;/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

 

下面爲test用戶設置密碼,執行如下命令
passwd test
[root@localhost etc]# passwd test
Changing password for user test.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@localhost etc]#
然後進入/etc/shadow文件下面可以看到如下信息
gdm:!!:14302:0:99999:7:::
hzmc:$1$JZMjXqxJ$bvRpGQxbuRiEa86KPLhhC1:14302:0:99999:7:::
mysql:!!:14315:0:99999:7:::
chenhua:$1$YBJZNyXJ$BnpKFD58vSgqzsyRO0ZeO1:14316:0:99999:7:::
test:$1$hKjqUA40$OelB9h3UKOgnttKgmRpFr/:14316:0:99999:7:::
可以發現,共有9個欄目
(1):帳號名稱
(2):密碼:這裏是加密過的,但高手也可以解密的。要主要安全問題(代!符號標識該帳號不能用
來登錄)
(3):上次修改密碼的日期
(4):密碼不可被變更的天數
(5):密碼需要被重新變更的天數(99999表示不需要變更)
(6):密碼變更前提前幾天警告
(7):帳號失效日期
(8):帳號取消日期
(9):保留條目,目前沒用

 

Unix 系統最初是用明文保存密碼的,後來由於安全的考慮,採用crypt()算法加密密碼並存放在/etc/passwd文件。現在,由 於計算機處理能力的提高,使密碼破解變得越來越容易。/etc/passwd文件是所有合法用戶都可訪問的,大家都可互相看到密碼的加密字符串,這給系統 帶來很大的安全威脅。現代的Unix系統使用影子密碼系統,它把密碼從/etc/pa sswd文件中分離出來,真正的密碼保存在/etc/shadow文件中,shadow文件只能由超級用戶訪問。這樣入侵者就不能獲得加密密碼串,用於破 解。使用shadow密碼文件後,/etc/passwd文件中所有帳戶的password域的內容爲"x",如果password域的內容爲"*",則 該帳號被停用。使用passwd這個程序可修改用戶的密碼。

 

三、/etc/group 存儲有關本地用戶組的信息

1)groupname GID到名稱的一種映射,組名
2)password 保存密碼的位置
3)GID 組ID
4)user 組成員

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章