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组成员,是内部威胁的主要入口。