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 密钥,禁用密码登录