一、基礎知識
/etc/login.defs 檔案用于在建立使用者時,對使用者的一些基本屬性做預設設定,例如指定使用者 UID 和 GID 的範圍,使用者的過期時間,密碼的最大長度,等等。
需要注意的是,該檔案的使用者預設配置對 root 使用者無效。并且,當此檔案中的配置與 /etc/passwd 和 /etc/shadow 檔案中的使用者資訊有沖突時,系統會以/etc/passwd 和 /etc/shadow 為準。
/etc/login.defs檔案内容
設定項 含義
MAIL_DIR /var/spool/mail 建立使用者時,系統會在目錄 /var/spool/mail 中建立一個使用者郵箱,比如 lamp 使用者的郵箱是 /var/spool/mail/lamp。
PASS_MAX_DAYS 99999 密碼有效期,99999 是自 1970 年 1 月 1 日起密碼有效的天數,相當于 273 年,可了解為密碼始終有效。
PASS_MIN_DAYS 0 表示自上次修改密碼以來,最少隔多少天後使用者才能再次修改密碼,預設值是 0。
PASS_MIN_LEN 5 指定密碼的最小長度,預設不小于 5 位,但是現在使用者登入時驗證已經被 PAM 子產品取代,是以這個選項并不生效。
PASS_WARN_AGE 7 指定在密碼到期前多少天,系統就開始通過使用者密碼即将到期,預設為 7 天。
UID_MIN 500 指定最小 UID 為 500,也就是說,添加使用者時,預設 UID 從 500 開始。注意,如果手工指定了一個使用者的 UID 是 550,那麼下一個建立的使用者的 UID 就會從 551 開始,哪怕 500~549 之間的 UID 沒有使用。
UID_MAX 60000 指定使用者最大的 UID 為 60000。
GID_MIN 500 指定最小 GID 為 500,也就是在添加組時,組的 GID 從 500 開始。
GID_MAX 60000 使用者 GID 最大為 60000。
CREATE_HOME yes 指定在建立使用者時,是否同時建立使用者主目錄,yes 表示建立,no 則不建立,預設是 yes。
UMASK 077 使用者主目錄的權限預設設定為 077。
USERGROUPS_ENAB yes 指定删除使用者的時候是否同時删除使用者組,準備地說,這裡指的是删除使用者的初始組,此項的預設值為 yes。
ENCRYPT_METHOD SHA512 指定使用者密碼采用的加密規則,預設采用 SHA512,這是新的密碼加密模式,原先的 Linux 隻能用 DES 或 MD5 加密。
-l : 列出使用者密碼老化資訊
-d : 設定最近一次修改密碼的時間
-m : 設定密碼修改的最小間隔時間(機關:天)
小于這個天數時将不允許修改密碼
-W : 密碼過期前幾天開始警告
二、修改使用者密碼到期時間
sed -i "s/PASS_MAX_DAYS 365/PASS_MAX_DAYS 365/g" /etc/login.defs
sed -i "s/PASS_MIN_DAYS 1/PASS_MIN_DAYS 1/g" /etc/login.defs
chage -l admin
chage -I -1 -m 0 -M 99999 -E -1 admin