/etc/passwd、/etc/shadow和/etc/group
Debian學習筆記
這三個配置文件用於系統帳號管理,都是文本文件,可用vi等文本編輯器打開。/etc/passwd用於存放用戶帳號信息,/etc/shadow用於存放每個用戶加密的密碼,/etc/group用於存放用戶的組信息。
-
/etc/passwd文件的內容如下:
root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh ...
每一行是由分號分隔的字串組成,它的格式如下:
username:password:uid:gid:gecos:homedir:shell 各域對應的中文說明如下: 用戶名:密碼:用戶ID:組ID:用戶全名:主目錄:登錄shell gecos是通用電子計算機操作系統的縮寫,是Bell實驗室中的一臺大型主機。
Unix系統最初是用明文保存密碼的,後來由於安全的考慮,採用crypt()算法加密密碼並存放在/etc/passwd文件。現在,由於計算機處理能力的提高,使密碼破解變得越來越容易。/etc/passwd文件是所有合法用戶都可訪問的,大家都可互相看到密碼的加密字符串,這給系統帶來很大的安全威脅。現代的Unix系統使用影子密碼系統,它把密碼從/etc/pa sswd文件中分離出來,真正的密碼保存在/etc/shadow文件中,shadow文件只能由超級用戶訪問。這樣入侵者就不能獲得加密 密碼串,用於破解。使用shadow密碼文件後,/etc/passwd文件中所有帳戶的password域的內容爲"x",如果password域的內 容爲"*",則該帳號被停用。使用passwd這個程序可修改用戶的密。
-
/etc/shadow存放加密的口令,該文件只能由root讀取和修改。下面是shadow文件的內容:
root:$1$43ZR5j08$kuduq1uH36ihQuiqUGi/E9:12973:0:99999:7::: daemon:*:12973:0:99999:7::: bin:*:12973:0:99999:7::: sys:*:12973:0:99999:7::: sync:*:12973:0:99999:7::: ... 我們可用chage命令顯示test用戶的帳號信息: debian:~# chage -l test 最小: 0 最大: 99999 警告日: 7 失效日: -1 最後修改: 7月 09, 2005 密碼過期: 從不 密碼失效: 從不 帳戶過期: 從不
/etc/shadow文件的格式如下:
username:password:last_change:min_change:max_change:warm:failed_expire:expiration:reserved 各字段的簡要說明: last_change:表示自從Linux使用以來,口令被修改的天數。可用chage -d命令修改。 min_change:表示口令的最小修改間隔。可用chage -m命令修改。 max_change:表示口令更改週期。可用chage -M命令修改。 warm:表示口令失效的天數。可用chage -W命令修改。 failed_expire:表示口令失效後帳號的鎖定天數。可用chage -I命令修改。 expiration:表示帳號到期日時間。可用chage -E命令修改。 reserved:沒有使用,留待以後使用。
在debian系統中,使用shadowconfig on/off命令可控制啓用和禁用shadow口令功能。
-
/etc/group是帳號分組文件,控制用戶如何分組。下面是組文件的內容:
root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4: ...
它的格式如下:
groupname:password:gid:members
這裏的password代表組口令,很少用到。它可使原先不在這個羣組中的用戶可以通過newgrp命令暫時繼承該組的權限,使用newgrp命令時會新開一個shell。口令的加密方式和passwd文件中的口令一樣,所以如果需設置組口令,要用passwd程序虛設一個用戶,再把該用戶password節中的加密口令拷貝到/etc/group文件中。members列代表組成員,我們可把需加入該組的用戶以逗號分隔添加到這裏即可。同一組的成員可繼承該組所擁有的權限。