Linux账号权限须遵循最小化原则:普通用户禁用root权限,提权仅限sudo;禁用非必要系统账号并锁定shell与密码;强化密码策略与多因素认证;启用操作审计与日志集中留存。

账号权限最小化原则
Linux系统中每个账号的权限必须严格遵循“最小必要”原则。普通用户不应拥有root权限,临时提权应通过sudo而非直接切换root。检查账号权限的第一步是运行:
sudo -l -U username —— 查看该用户被允许执行的sudo命令
groups username —— 查看所属用户组,特别注意是否在red">wheel、sudo或docker等高危组中
禁用无用账号与默认账户
系统安装后常残留ftp、sync、games等非必要系统账号,它们shell通常设为/bin/false或/usr/sbin/nologin,但仍有潜在风险。建议统一锁定:
- sudo usermod -s /usr/sbin/nologin username —— 禁止登录shell
- sudo usermod -L username —— 锁定密码(在/etc/shadow中加!前缀)
- 对确认废弃的账号,直接删除:sudo userdel -r username
特别注意:不要删除root、daemon、sys等核心系统账号,仅调整其shell和密码状态。
密码策略与多因素加固
仅靠密码已不足以保障安全。需组合使用以下措施:
- 启用PAM密码复杂度校验:编辑/etc/pam.d/common-password,添加行:
password requisite pam_pwquality.so retry=3 minlen=12 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 - 设置密码有效期:sudo chage -M 90 -m 7 -W 7 username(90天过期,7天前警告)
- 对关键运维账号,部署SSH密钥+YubiKey或TOTP(如libpam-google-authenticator),禁用密码登录:
在/etc/ssh/sshd_config中设PasswordAuthentication no,重启sshd
操作行为审计与日志留存
权限治理必须配套可追溯的审计能力。重点配置以下日志源:
- /var/log/auth.log(Debian/Ubuntu)或/var/log/secure(RHEL/CentOS):记录所有sudo、su、SSH登录事件
- 启用命令执行记录:在/etc/bash.bashrc或用户~/.bashrc中添加:
export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.info "$(whoami) [$$] $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//") [$RETRN_VAL]"' - 集中收集日志:用rsyslog或journalctl将auth日志转发至SIEM系统,保留至少180天
定期用sudo ausearch -m USER_CMD -ts today(需启用auditd)或grep "sudo:" /var/log/auth.log抽查高危操作。










