R / Richie全部文章 ↑

Linux · 1 分钟阅读

用户有效期与随机密码

2026 年常规:临时账号用 chage 强制到期;密码生成交给 pwgen 或硬件 key;xencdpass 这种小工具基本被 pass / gpg 取代了。

用户到期

# 查看账号状态
chage -l username

# 设账号到期日
usermod -e 2026-12-31 username

# 设密码有效期 90 天
chage -M 90 username

# 立即过期,强制下次登录改密
chage -d 0 username

# 登录前必须改密
chage -d 0 -m 0 -M 90 -W 7 username

随机密码生成

openssl(系统自带)

# 20 字符 base64
openssl rand -base64 15

# 32 字符十六进制
openssl rand -hex 16

urandom

# 字母 + 数字,20 字符
tr -dc 'A-Za-z0-9' </dev/urandom | head -c20

pwgen

yum install -y pwgen
pwgen -s 16 1        # 一个 16 字符强密码
pwgen 12 5           # 5 个 12 字符易记密码

gpg

gpg --gen-random --armor 1 16

pass(推荐,集成 GPG)

# macOS
brew install pass
# Linux
apt install -y pass

# 初始化(需要 GPG 密钥 ID)
pass init "<gpg-id>"

# 生成 + 存储
pass generate work/db 16

# 取出来用
pass show work/db | head -1

密码策略

# /etc/security/pwquality.conf
minlen = 12
minclass = 3
dcredit = -1
ucredit = -1
lcredit = -1
ocredit = -1

一些经验

  • 服务账号、临时账号必设 chage -M;人走账号还在是最常见的审计灾难
  • 用密码管理器(pass / 1Password / Bitwarden)取代手工记忆
  • 长短语(passphrase)比复杂短密码更安全也更易记
  • 服务器上的服务账号配 SSH 密钥,禁用密码登录

参考