linux 运维权限管理必须遵循最小化原则:按角色隔离用户、sudo 精确到命令与参数、服务降权运行、文件目录权限严格收敛。

Linux 运维中权限分级和最小化不是可选项,而是安全底线。核心原则是:每个用户、服务或脚本只拥有完成其任务所必需的最低权限,不多不少。
用户账号按角色严格隔离
避免长期使用 root 或 sudo-all 账户操作。应为不同职责创建专用系统用户,例如:
- deploy:仅能执行预定义部署脚本(通过 sudoers 限制命令路径和参数)
- backup:仅可读取指定目录、调用 rsync/tar,禁止 shell 交互
- monitor:只读访问 /proc、/sys、日志目录,禁用写入和进程控制
创建时禁用密码登录,强制使用 SSH 密钥,并设置 nologin 或rbash限制 shell 能力。
sudo 权限精确到命令与参数
在 /etc/sudoers 中避免使用ALL=(ALL) ALL。应明确限定:
- 允许运行的绝对路径(如/usr/bin/systemctl restart nginx)
- 禁止通配符和 shell 转义(用 !/bin/sh、!/usr/bin/perl 显式拒绝)
- 对高危命令加 NOPASSWD 但限定目标用户(如deploy ALL=(nginx) NOPASSWD: /bin/systemctl reload nginx)
服务进程降权运行
系统服务默认不应以 root 启动。通过 systemd unit 文件控制:
- 设置 User= 和Group=为非特权用户(如www-data、redis)
- 用 ProtectSystem=strict、ProtectHome=true 限制文件系统访问
- 敏感服务(如数据库)禁用 Capabilities=CAP_SYS_ADMIN 等冗余能力
检查方式:systemctl show –property=User,Group,ProtectSystem service-name
文件与目录权限收敛到最小集合
定期审计关键路径,确保:
- /etc/sudoers、/etc/shadow权限为640,属组仅限root:wheel
- 应用配置目录(如/etc/myapp/)属主为服务用户,权限750,不开放 group 写
- 日志轮转脚本、crontab 条目使用专用低权用户,而非 root crontab
自动化检查可用 find /etc -type f -perm /o+w 快速定位异常可写文件。






























