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文件控制:CentOS Linux 7.9.2009 CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
下载设置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快速定位异常可写文件。
