萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux Shadow 密碼套件:用戶管理與密碼老化完整指南

Shadow Suite 核心指令

Shadow Suite 提供 useradd、usermod、userdel 三大用戶管理指令,並強化 passwd 實現密碼老化與帳號鎖定。所有操作自動同步更新 /etc/passwd 與 /etc/shadow,避免手動編輯導致的競態條件。

1. useradd:新增用戶

首先檢查預設值:

useradd -D
# 輸出範例
GROUP=100
HOME=/home
INACTIVE=0
EXPIRE=60
SHELL=/bin/bash
SKEL=/etc/skel

修改預設值:

useradd -D -g 100 -e 60 -f 0 -s /bin/bash

新增用戶 fred:

useradd -m -c "Fred Flintstone" fred
# /etc/passwd: fred:*:505:100:Fred Flintstone:/home/fred:/bin/bash
# /etc/shadow: fred:!:0:0:60:0:0:0:0

解鎖帳號(設定密碼):

passwd fred
# 輸入兩次新密碼後,/etc/shadow 變為:
# fred:J0C.WDR1amIt6:9559:0:60:0:0:0:0

互動式新增用戶腳本範例

#!/bin/bash
# /sbin/newuser
GROUP=100; HOME=/home; SKEL=/etc/skel
INACTIVE=0; EXPIRE=60; SHELL=/bin/bash
PASSMIN=0; PASSWARN=14

[ $(whoami) != "root" ] && { echo "需 root 權限"; exit 1; }
read -p "Username: " USERNAME
read -p "Full name: " FULLNAME
/usr/sbin/useradd -c "$FULLNAME" -d $HOME/$USERNAME -e $EXPIRE \
  -f $INACTIVE -g $GROUP -m -k $SKEL -s $SHELL $USERNAME
/bin/passwd -n $PASSMIN -w $PASSWARN $USERNAME >/dev/null 2>&1
/bin/passwd $USERNAME
grep "^$USERNAME:" /etc/passwd /etc/shadow
passwd -S $USERNAME

2. usermod:修改用戶屬性

usermod -s /bin/tcsh fred        # 改 shell
usermod -e 09/15/97 fred         # 設定帳號到期日

3. userdel:刪除用戶

userdel -r username   # 連同家目錄一併刪除
# 僅鎖定帳號請用 passwd -l username

passwd 密碼老化參數

選項功能
-l / -u鎖定 / 解鎖帳號
-x 天數密碼最大有效天數
-n 天數密碼最小變更間隔天數
-w 天數密碼到期前警告天數
-i 天數密碼過期後寬限天數(過期仍可登入,但需改密碼)
-S顯示密碼狀態
# 範例:設定 fred 密碼 60 天到期,到期前 14 天警告,過期後 14 天寬限
passwd -x 60 -n 0 -w 14 -i 14 fred
# 輸出:fred P 03/04/96 0 60 14 14

/etc/login.defs 設定檔

控制登入行為與密碼老化預設值,包含:

  • 日誌記錄層級旗標
  • 指向其他設定檔的指標
  • 密碼老化預設值(PASS_MAX_DAYS, PASS_MIN_DAYS, PASS_WARN_AGE 等)

務必檢查並調整此檔案以符合站點安全政策。

copyright © 萬盛學電腦網 all rights reserved