歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu中的用戶管理(四)密碼管理

Ubuntu中的用戶管理(四)密碼管理

日期:2017/2/28 15:44:44   编辑:Linux教程

密碼是Linux安全的重要組成部分,通過這部分的學習,你應該學會怎樣為你的Linux系統建立一個密碼策略,密碼保存在什麼地方,怎樣為你的用戶管理密碼等。

有效的密碼策略是一個好的系統管理計劃的重要組成部分。這個策略需要包括以下幾點:

允許的密碼組成和禁止的密碼組成
修改密碼的頻率
取回或重置丟失的密碼
用戶對密碼的操作
密碼文件是/etc/passwd,它是系統上所有用戶的數據庫文件。每一行的形式如下:

username:password:uid:gid:gecos:homedir:shell

簡要介紹下gecos字段。這個字段是為了記錄用戶的多樣性的信息。例如,用戶的全名,辦公室的位置,辦公室電話,家庭電話,簡單備注等。出於安全和隱私上的考慮,這個字段目前已經越來越少的被使用到了。但是,系統管理員要知道這個字段,因為傳統的Unix程序例如finger,mail會用到這個字段。因此gecos字段通常被成為finger information field。這個字段是逗號界限格式,可以通過chfn(change finger)命令更改。如果密碼字段出現一個星號,那麼這個用戶將不能登陸Linux系統。系統管理員可以通過修改密碼字段或者使用passwd -l命令鎖住用戶。一些系統用戶通常有root權限,因此系統管理員不希望這些用戶可以登陸Linux系統,可以通過將這些系統用戶的shell設置為sbin/nologin或者bin/false阻止這些賬戶的登陸。

下面給出/etc/passwd文件的內容形式:

www.linuxidc.com@linuxidc:~$cat /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

man:x:6:12:man:/var/cache/man:/bin/sh

lp:x:7:7:lp:/var/spool/lpd:/bin/sh

mail:x:8:8:mail:/var/mail:/bin/sh

news:x:9:9:news:/var/spool/news:/bin/sh

uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh

cindy:x:1000:1000:cindy,,,:/home/cindy:/bin/bash

……

我們注意到沒有一個用戶顯示了密碼,而是在密碼字段有一個x。這是因為用戶密碼是陰影密碼(shadow passwords),這屬於Linux中的一個安全增強機制。真正的密碼保存在文件/etc/shadow中。/etc/shadow文件只對於系統管理員和PAM可讀。Ubuntu中自動啟用了shadow password。下面給出/etc/shadow文件的內容形式:

www.linuxidc.com@linuxidc:~$sudo cat /etc/shadow

[sudo]password for cindy:

root:$7$h9pRtnF/$Zf8pynVBJ/m.DfAl.Q1lgw8ZCmeGYqKCe/47sNfEV6FUq59UnB1CTcZVr4.7AwtyLpizdnwlqxe0f2J/mD6th.:15536:0:99999:7:::

daemon:*:15453:0:99999:7:::

bin:*:15453:0:99999:7:::

sys:*:15453:0:99999:7:::

sync:*:15453:0:99999:7:::

games:*:15453:0:99999:7:::

man:*:15453:0:99999:7:::

lp:*:15453:0:99999:7:::

cindy:$6$/IMKHjoh$osdeLeLwe3f11QXlRts2huVISmSKUpTyaDeXihtYV39.7OAqakAeLda4WAWXpIeeopBmrU/zCDaKhp/aL1gqW1:15536:0:99999:7:::

……

冒號分開的各個字段的解釋:

第1個字段是用戶名。
第2個字段是編碼後的密碼。
第3個字段是上次修改密碼的時間,這個時間是從1970年1月1日起計算。這個日子在UNIX領域被成為epoch。
第4個字段是再過多少天密碼才可以被再次修改的時間(避免修改密碼到新密碼後快速修改會原始密碼)
第5個字段是再過多少天密碼必須被再次修改的時間。
第6個字段是密碼過期前多少天,用戶會收到警告。
第7個字段是密碼過期後多少天,用戶會被禁用。
第8個字段是從1970年1月1日起,該帳號disabled的天數。
第9個字段為保留字段。
需要注意的是密碼過期日期和警告在Ubuntu中是默認禁用的。如果需要啟用相應的密碼策略,需要系統管理員建立相應的密碼策略。etc/shadow的權限時600,常規用戶不可讀。

系統管理員可以手動編輯/etc/shadow文件或者使用chage命令更改密碼規則(詳細信息請參考shadow和chage的man頁)。

系統管理員可通過命令chpasswd批量修改用戶密碼。命令接受的輸入為用戶名/密碼對:

sudo chpasswd username:password

可以通過重定向文件輸入來批量工作。此外,Ubuntu還提供了newusers命令,批量增加文本文件中的用戶,並為用戶分配群組,分配/home目錄等。

Copyright © Linux教程網 All Rights Reserved