Linux权限加固核心是“三道门”管控:谁可登录(禁用无用账户、禁root远程、密钥认证)、谁能执行什么(sudo白名单授权、日志审计)、哪些文件可被改(关键配置文件严格限权、服务进程降权运行)。

Linux 系统权限加固不是“加一堆限制”,而是让每个用户、每个进程、每个文件只拥有它真正需要的权限——不多一分,不少一毫。核心是守住三道门:谁可以登录、谁能执行什么、哪些文件能被谁改。
账户与登录权限收紧
默认账户和弱口令是入侵最常见入口,必须从源头卡死:
- 删除或禁用无用系统账户(如 games、lp、sync),仅保留 root 和明确业务所需的运维账号
- 禁止 root 远程直连:在 /etc/ssh/sshd_config 中设 PermitRootLogin no
- 关闭密码登录,强制使用 SSH 密钥:设 PasswordAuthentication no + PubkeyAuthentication yes
- 限制可登录用户范围:用 AllowUsers user1@192.168.10.0/24 user2@10.0.5.100 精确控制来源
- 设置登录失败防护:MaxAuthTries 3,配合 fail2ban 封禁暴力尝试
sudo 权限最小化分配
普通用户提权不能“全放开”,要按需授权、留痕可查:
- 避免直接给用户 ALL=(ALL) ALL,改用细粒度命令白名单,例如:
%ops ALL=(ALL) /usr/bin/systemctl start nginx, /usr/bin/journalctl -u nginx - 禁用 shell 转义:在 sudoers 中添加 Defaults !shell_no 和 Defaults env_reset
- 启用 sudo 操作日志:确保 /etc/sudoers 含 Defaults logfile="/var/log/sudo.log"
- 定期审计 sudo 使用情况:grep "USER" /var/log/sudo.log | awk '{print $1,$2,$3,$NF}' | sort | uniq -c | sort -nr
关键文件与目录权限锁定
防止配置篡改、后门写入、提权利用,重点保护以下路径:
- /etc/passwd、/etc/shadow、/etc/sudoers:权限必须为 644(passwd)、600(shadow)、440(sudoers)
- /root/.ssh/ 及其内容:目录权限 700,私钥 600,公钥 644
- /etc/ssh/sshd_config:属主 root:root,权限 600
- 所有启动脚本和服务单元文件(如 /etc/systemd/system/*.service):确保非 root 用户不可写
- 用 chown root:root 和 chmod 统一修复,避免 chmod 777 —— 它会直接导致 vLLM、supervisor 等服务拒绝启动
服务与进程权限隔离
运行中的服务不该以 root 身份干所有事,该降权就降权:
- Nginx/Apache 启动后,主进程保留 root(绑定端口),工作进程应自动降权至 www-data 或 nginx 用户
- 自定义服务 unit 文件中明确指定 User= 和 Group=,例如:
User=appuser
Group=appgroup
NoNewPrivileges=yes
RestrictSUIDSGID=yes - 容器场景下,Dockerfile 中禁用 root:用 USER 1001 替代默认 root,并确保镜像不含敏感凭证硬编码
- 检查进程实际有效用户:ps -eo pid,user,comm,args --sort=user | grep -v 'root '(排除 root 启动但已降权的进程)
不复杂但容易忽略。


















