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 抽查高危操作。