Linux运维权限分级_权限最小化实践

4次阅读

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

Linux运维权限分级_权限最小化实践

Linux运维中权限分级和最小化不是可选项,而是安全底线。核心原则是:每个用户、服务或脚本只拥有完成其任务所必需的最低权限,不多不少。

用户账号按角色严格隔离

避免长期使用root或sudo-all账户操作。应为不同职责创建专用系统用户,例如:

  • deploy:仅能执行预定义部署脚本(通过sudoers限制命令路径和参数)
  • backup:仅可读取指定目录、调用rsync/tar,禁止shell交互
  • monitor:只读访问/proc、/sys、日志目录,禁用写入和进程控制

创建时禁用密码登录,强制使用ssh密钥,并设置nologinrbash限制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-dataredis
  • ProtectSystem=strictProtectHome=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快速定位异常可写文件。

text=ZqhQzanResources