linux权限安全的核心是“最小权限原则”,需严格实施一人一账号、按职能分组、sudo命令级授权及关键文件加固。

Linux 系统中,权限失控往往不是因为功能不够强,而是因为配置太随意。真正安全高效的管理,核心是让每个用户只拥有“刚好够用”的权限——不多一分,不少一毫。这需要从账号创建、组设计、sudo 授权到关键文件加固,环环相扣。
一人一账号,禁用共用 root
每个真实运维人员必须拥有独立账号,不能多人共享 root 或同一普通账号。系统靠 UID 识别身份,root 的 UID 永远是 0;一旦普通用户被误设为 UID 0,就等同于获得全部控制权。生产环境必须禁用 root 直接登录:
- SSH 配置中关闭 PermitRootLogin yes,改用普通用户 + sudo 方式操作
- 新用户家目录默认权限应设为 700(仅用户可读写执行)
- 避免使用 useradd -u 0 或手动修改 /etc/passwd 将 UID 改为 0
按职能分组,主组统一、辅组精简
组是批量授权的载体,不能把所有人塞进 wheel 或 sudo 这类大组。应围绕实际职责建组:
-
功能组:如
dbadmins(仅允许操作数据库服务)、webdeploy(仅允许重启 nginx、同步静态文件) -
项目组:如
project-alpha(只对/srv/project-alpha下资源有读写权) -
审计组:如
auditors(仅可读/var/log/secure和/var/log/auth.log) - 用户主组建议统一设为
users,附加组不超过 5 个;用usermod -aG group1,group2 user追加,避免覆盖原有组关系
sudo 权限必须命令级控制
sudo 不是“给 root 权限”,而是“授权执行特定命令”。所有规则应写入 /etc/sudoers.d/ 下独立文件(用 visudo -f /etc/sudoers.d/deployer 编辑),禁止直接改 /etc/sudoers:
- 示例配置:
%webdeploy ALL=(root) NOPASSWD: /bin/systemctl restart nginx, /usr/bin/rsync - 禁止危险提权路径:
! /bin/sh, ! /usr/bin/bash, ! /usr/bin/python* - 每条规则后建议加
Defaults logfile="/var/log/sudo-deploy.log",便于定向审计 - 子配置文件权限必须设为 440,归属
root:root
关键文件与日志目录强制加固
权限问题常源于初始设置松散。敏感文件必须严格限制访问:
-
/etc/shadow→ chmod 600(仅 root 可读写) -
/etc/sudoers及/etc/sudoers.d/*→ chmod 440,chown root:root -
/etc/passwd→ 保持 644 即可,但禁止普通用户写入 - 日志目录启用追加保护:
chattr +a /var/log/,防止误删或覆盖历史记录 - 运维账号统一设
umask 027(新建目录 750,文件 640)











