Linux下的賬戶系統檔案
Linux下的帳戶系統檔案主要有/etc/passwd、/etc/shadow、/etc/group和/etc/gshadow 4個。
(1)/etc/passwd檔案中每行定義一個使用者帳号,一行中又劃分為多個不同的字段定義使用者帳号的不同屬性,各字段用“:”隔開。
各字段定義如下:
使用者名:使用者登入系統時使用的使用者名,它在系統中是唯一的。
密碼:此字段存放加密的密碼。在此檔案中的密碼是x,這表示使用者的密碼是被/etc/shadow檔案保護的,所有加密密碼以及和密碼有關的設定都儲存在/etc/shadow中。
使用者辨別号:是一個整數,系統内部用它來辨別使用者。每個使用者的UID都是唯一的。root使用者的UID是0,1~499是系統的标準帳戶,普通使用者從500開始。
組辨別号:是一個整數,系統内部用它來辨別使用者所屬的組。
注釋性描述:例如存放使用者全名等資訊。
自家目錄:使用者登入系統後進入的目錄。
指令解釋器:批示該使用者使用的shell,Linux預設為bash。
(2)/etc/passwd檔案對任何使用者均可讀,為了增加系統安全性,使用者的密碼通常用shadow passwords保護。/etc/shadow隻對root使用者可讀。在安裝系統時,會詢問使用者是否啟用shadow passwords功能。在安裝好系統後也可以用pwconv指令和pwunconv來啟動或取消shadow passwords保護。經過shadow passwords保護的帳戶密碼和相關設定資訊儲存在/etc/shadow檔案裡。
各字段意義如下:
使用者名:使用者的帳戶名
密碼:使用者的密碼,是加密過的
最後一次修改時間:從1970年1月1日起,到使用者最後一次更改密碼的天數
最小時間間隔:從1970年1月1日起,到使用者可以更改密碼的天數
最大時間間隔:從1970年1月1日起,到使用者必須更改密碼的天數
警告時間:在使用者密碼過期之前多少天提醒使用者更新
不活動時間:在使用者密碼過期之後到禁用帳戶的天數
失效時間:從1970年1月1日起,到帳戶被禁用的天數
标志:保留位
(3)/etc/group檔案。将使用者分組是Linux中對使用者進行管理及控制通路權限的一種手段。當一個使用者同時是多個組的成員時,在/etc/passwd中記錄的是使用者所屬的主組,也就是登入時所屬的預設組,而其他的組稱為附加組。使用者要通路附加組的檔案時,必須首先使用newgrp指令使自己成為所要通路的組的成員。組的所有屬性都存放在/etc/group中,此檔案對任何使用者均可讀。
各字段意義如下:
組名:該組的名稱
組密碼:使用者組密碼,由于安全性原因,已不使用該字段儲存密碼,用“x”占位
GID:組的識别号,和UID類似,每個組都有自己獨有的ID号,不同組的GID不會相同
組成員:屬于這個組的成員
(4)/etc/gshadow檔案用于定義使用者組密碼、組管理者等資訊,該檔案隻有root使用者可以讀取。
組名:使用者組名稱,該字段與group檔案中的組名稱對應
組密碼:使用者組密碼,該字段用于儲存已加密的密碼
組的管理者帳号:組的管理者帳号,管理者有權對該組添加、删除帳号
組成員:屬于該組的使用者成員清單,用“,”分隔
任務一:建立與删除普通使用者賬戶,管理組
管理帳戶的俱行工具及功能如下:
useradd [] 添加新使用者
usermod [] 修改已存在的指定使用者
userdel [-r] 删除已存在的指定帳戶,-r參數用于删除使用者自家目錄
groupadd [] 加新組
groupmod [] 修改已存在的指定組
groupdel 删除已存在的指定組
1)建立一個新使用者user1
useradd user1
檢視使用者是否建立成功
2)建立一個新組group1
groupadd group1
3)建立一個新使用者user2并将其加入使用者組group1中
useradd -G group1 user2
4)建立一個新使用者user3,指定登入目錄為/www,不建立自家使用者目錄(-M)
useradd -d /www -M user3
5)将使用者user2添加到附加組group1中
usermod -G group1 user1
至此,group1組中有user1,user2兩個使用者,用指令檢視/etc/group檔案如下圖:(注:使用者user3不屬于組group1中的使用者)
6)删除使用者user3,使用者uers3從使用者組中消失
userdel user3
7)删除使用者user2,同時删除自家目錄
userdel -r user2
8)删除組group1,則組group1中的使用者則被配置設定到其自己配置設定的私有組中。
groupdel group1
任務二:使用者密碼管理與密碼時效管理
(1)passwd指令
passwd指令用來設定使用者密碼,格式為:passwd [] []
使用者修改自己的使用者密碼可直接鍵入passwd,若修改其他使用者密碼需加使用者名。超級使用者還可以使用如下指令進行使用者密碼管理:
passwd -l //禁用使用者帳戶密碼
passwd -S //檢視使用者帳戶密碼狀态
passwd -u //恢複使用者帳戶密碼
passwd -d //删除使用者帳戶密碼
在建立完使用者user1後,沒給使用者passwd密碼時,賬戶預設為禁用狀态:
1. 給使用者user1建立密碼,設定為:111111passwd user1
接下來我們再次檢視user1狀态時,則為如下圖所示:
密碼已經設定,且為MD5加密
2. 禁用賬戶user1
passwd -l user1
3. 恢複賬戶user1的賬戶密碼:
passwd -u user1
4. 删除使用者賬戶密碼
passwd -d user1
使用者user1的密碼即為空。
(2)chage指令
密碼時效是系統管理者用來防止機構内不良密碼的一種技術。在Linux系統上,密碼時效是通過chage指令來管理的,格式為:chage []
下面列出了chage指令的選項說明:
-m days: 指定使用者必須改變密碼所間隔的最少天數。如果值為0,密碼就不會過期。
-M days: 指定密碼有效的最多天數。當該選項指定的天數加上-d選項指定的天數小于目前的日期時,使用者在使用該帳号前就必須改變密碼。
-d days: 指定從1970年1月1日起,密碼被改變的天數。
-I days: 指定密碼過期後,帳号被鎖前不活躍的天數。如果值為0,帳号在密碼過期後就不會被鎖。
-E date: 指定帳号被鎖的日期。日期格式YYYY-MM-DD。若不用日期,也可以使用自1970年1月1日後經過的天數。
-W days: 指定密碼過期前要警告使用者的天數。
-l: 列出指定使用者目前的密碼時效資訊,以确定帳号何時過期。
例如下面的指令要求使用者user1兩天内不能更改密碼,并且密碼最長的存活期為30天,并且密碼過期前5天通知使用者
chage -m 2 -M 30 -W 5 user1
可以使用如下指令檢視使用者user1目前的密碼時效資訊:chage -l user1
日志檔案路徑:var/log
boot.log:引導過程日志(開機自檢)
last.log:最後一次使用者成功登入的時間、登入時使用的IP等資訊
messages:系統和服務錯誤資訊
secure:安全日志,使用者和使用者組的變化情況、使用者登入認證情況
btmp:記錄登入失敗的使用者、時間及嘗試登入時使用的IP等資訊
syslog:隻記錄警告資訊,主要是系統出問題的資訊,可通過lastlog指令檢視
wtmp:永久記錄了每個使用者登入、登出及系統的啟動、停機的事件,可使用last指令檢視。
utmp:記錄了有關目前登入的每個使用者的資訊,如who、w、users、finger等就需要通路這個檔案。
任務三:PAM可插拔驗證子產品
PAM(Plugable Authentication Module,可插拔驗證子產品)是由Sun提出的一種認證機制。管理者通過它可以靈活地根據需要給不同的服務配置不同的認證方式而無需更改服務程式,同時也便于向系統中添加新的認證手段。不少應用軟體都可以與PAM進行內建,當然,作業系統的登入驗證過程也可以通過對PAM進行配置來進行。如指定密碼複雜性、指定使用者試圖登入的失敗次數等,以下列出對這些賬号的安全性配置。
1. 指定密碼複雜性
修改/etc/pam.d/system-auth配置:(注意:在root使用者下進行,其餘使用者對這個檔案隻有讀的權限)
vi /etc/pam.d/system-auth
限制密碼最少有:2個大寫字母,3個小寫字母,3個數字,2個符号
檔案中有一行為:
password requisite pam_cracklib.so try_first_pass retry=3
在其後追加如下參數:
ucredit=-2 lcredit=-3 dcredit=-3 ocredit=-2
2. 驗證時若出現任何與pam_tally有關的錯誤則停止登入
auth required pam_tally.so onerr=fail magic_root
3. 賬号驗證過程中一旦發現連續5次輸入密碼錯誤,就通過pam_tally鎖定此賬号600秒
account required pam_tally.so deny=5 lock_time=600 magic_root reset
然後輸入:WQ:W是write,寫入,Q是退出
驗證:
建立一個使用者user1 并且配置密碼,輸入密碼不符合要求需要重新輸入,達到最大次數則不能繼續輸入。
心得體會
通過這次試驗我掌握了linux管理賬戶的基本指令并且了解了linux使用者管理的一般原則;
分析與思考
1)思考還有哪些加強linux賬戶安全的管理方法?
開啟防火牆,僅開啟必要端口
關閉不必要的服務
清除不必要的系統賬戶
使用特定賬戶開啟特定服務,盡量不使用root
禁止root遠端登陸
修改ssh協定端口号
更改系統資訊,不要顯示系統版本、核心版本等
設定連續失敗次數鎖定賬戶
2)比較一下linux賬戶跟unix賬戶管理的異同。
參考見下面連結
javascript:void(0)
https://wenku.baidu.com/view/54834f09bed5b9f3f90f1ca7.html