linux 系统 root 权限管理核心是可控、可审计、可追溯,须禁用直接 root 登录,实施最小权限、职责分离与操作留痕,通过 sudo 精细授权、日志归集与定期审计保障安全。

Linux 系统中 root 权限不是“越少用越好”,而是“必须可控、可审计、可追溯”。直接以 root 身份登录、长期保持 root shell、或随意授予 sudo 权限,都是高危操作。核心原则是:最小权限、职责分离、操作留痕。
禁止直接 root 登录,强制使用普通用户 +sudo
直接通过 SSH 或控制台以 root 身份登录,会绕过所有用户行为审计。应禁用 root 远程登录,并限制本地控制台登录(如需保留,仅限物理终端)。
- 编辑/etc/ssh/sshd_config,设置PermitRootLogin no,重启 sshd 服务
- 确保 /etc/passwd 中 root 用户的 shell 为/sbin/nologin(非/bin/bash)
- 为运维人员创建独立账号,加入 wheel 组(RHEL/CentOS)或 sudo 组(Ubuntu/Debian)
- 通过 /etc/sudoers 精细授权,避免使用 %sudo ALL=(ALL:ALL) ALL 这类宽泛规则
sudo 权限按需分配,禁用 NOPASSWD 滥用
给用户无密码执行任意命令(NOPASSWD)等于变相赋予 root 权限,极易被提权利用。应明确限定可执行命令、目标用户、运行环境。
- 用 visudo 编辑 sudoers,优先使用 Defaults env_reset 和Defaults requiretty增强隔离
- 按角色定义别名,例如:Cmnd_Alias RESTART_NGINX = /bin/systemctl restart nginx
- 授权示例:%webadmin ALL=(root) RESTART_NGINX,不允许多条命令合并或通配符
- 敏感命令(如useradd、mount、iptables)必须单独审批,记录在变更工单中
关键操作强制二次确认与日志归集
即使拥有 sudo 权限,涉及系统配置变更、服务重启、用户管理等操作,也应触发人工确认或自动审计留痕。
- 在 /etc/sudoers 中启用 Defaults log_output,结合Defaults iolog_dir=”/var/log/sudo-io” 记录命令输入输出
- 对高危命令(如rm -rf、dd、mkfs)设别名并包装为带提示的脚本,例如alias rm=’rm -i’(仅限交互式 shell)
- 将/var/log/auth.log(Debian 系)或/var/log/secure(RHEL 系)实时转发至集中日志平台(如 ELK、Graylog),保留至少 180 天
- 定期检查lastlog、lastb、journalctl _UID=0,识别异常 root 级活动
定期清理与权限复核机制
权限不会自动过期。未及时回收的 sudo 权限、残留的 root SSH 密钥、废弃的 wheel 组成员,是内部威胁的主要入口。
- 每季度执行一次权限审计:比对 getent group wheel sudo 成员与 HR 在职名单,清理离职人员账号
- 检查 ~/.ssh/authorized_keys 中是否含 root 用户的公钥,禁止除跳板机外的任何 root 密钥登录
- 用 sudo -l -U username 验证每位授权用户的实际能力,发现隐式继承或配置错误
- 对临时提权需求(如紧急故障处理),采用时效性 sudo token(如 sudo -v 后限时 15 分钟),不延长默认超时






























