實驗内容和步驟
任務一:建立與删除普通使用者賬戶,管理組
管理帳戶的俱行工具及功能如下:
useradd [] 添加新使用者
usermod [] 修改已存在的指定使用者
userdel [-r] 删除已存在的指定帳戶,-r參數用于删除使用者自家目錄
groupadd [] 加新組
groupmod [] 修改已存在的指定組
groupdel 删除已存在的指定組
1)建立一個新使用者user1
useradd user1
檢視使用者是否建立成功
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5iNhVmYkhzN3UWN5IjNjNTOwAjN2ADMkZGMzEWMyUTY08CX0EzLclDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL3M3Lc9CX6MHc0RHaiojIsJye.png)
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建立密碼,設定為:111111
passwd 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
任務三: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
分析與思考
1)思考還有哪些加強linux賬戶安全的管理方法?
1.引導程式安全
Linux系統的root密碼是很容易破解的,當然前提是你沒有設定引導程式密碼,如GRUB或LIlLO,為了防止通過引導程式破譯root密碼,強烈建議設定GRUB或LILO的引導密碼,可以編輯其配置檔案/etc/grub.conf或/etc/lilo.conf,設定password參數。
2.不安全權限設定
大家常見的Linux下檔案權限是r w x,其實還有一種權限叫s,如果給某個檔案賦予的s權限,那麼這個檔案在執行的時候就會擁有相應宿主使用者或宿主組使用者的權限,例如:
#chmod u+s testfile
#ls -la testfile
rwsr----- root root 10 testfile
這樣,當這個檔案被其它使用者執行的時候,此使用者就具有了此檔案宿主使用者root的對testfile的執行權限。類似,當檔案的宿主組具有s權限後,執行此檔案的使用者就具有了此檔案宿主組使用者對此檔案的權限,這是相當危險的。
大家可以試想下,如果指令chmod的檔案被賦予了s權限,那麼其它使用者還有什麼事情是不能做的呢?那它就可以更改任何檔案的權限了,當然,s權限需要和x權限結合使用,沒有x權限的s權限是沒有任何意義的。
3.自動登出
當某個使用者使用伺服器後忘記登出,也是很危險的事情,此時,管理者可以設
置/etc/profile檔案的timeout參數,當使用者一段時間不做任何操作時,系統自動登出此用
4.設定密碼複雜度.
為了防止系統使用者密碼過于簡單而被破譯,可以編輯/etc/login.defs檔案, 設定系統用
戶令複雜度,例如密碼最長,最短,過期時間等。
5.禁止不必要使用者登陸系統
為了防止其它非系統使用者登陸系統,可以在添加使用者時,賦予此使用者不存在的主目錄和
不存在的shell環境,當然,最好還更改/etc/passwd和/etc/shadow兩個檔案的通路權限,
使之後root使用者可以通路。
2)比較一下linux賬戶跟unix賬戶管理的異同。
Unix
作為一個作業系統,Unix主要用于伺服器、工作站,也可以用于個人電腦。它在建立網際網路,建立計算機網絡或者用戶端,伺服器模型方面發揮非常重要的作用。
Unix系統支援多任務,與Multics對比控制簡單、所有資料都純文字形式存儲、儲存單根檔案、可以同時通路多個賬戶。
Linux
Linux的基石就是Unix,它基于Unix的基本特性以及POSIX和Single UNIX Specification的标準。