linux权限加固核心是遵循最小权限原则:只对真正需要者开放刚好够用的权限,需先用ls -l/-ld/-z查看现状,再结合chown、chmod、getfacl等命令精准配置,避免777/666,且须持续校验权限漂移。

Linux 权限加固不是把所有东西设成 600 或 700 就完事,而是让每个文件、目录只对真正需要它的人开放刚好够用的权限。核心是“谁需要什么、在什么条件下能做什么”,而不是“怎么让它能用”。
先看清现状:别改之前先看清楚
执行 ls -l 查看文件权限结构,注意三组 rwx(如 -rw-r-----)分别对应所有者、所属组、其他人;用 ls -ld 看目录本身权限;对 Web 服务类场景,还要加 ls -Z 检查 SELinux 上下文,避免被策略静默拦截。
常用排查命令:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
- find /path -type f -perm /o+w:找其他用户可写的文件(高风险)
- find /etc -type f -perm 644 -o -perm 600:确认配置文件是否已按最小原则收紧
- getfacl /path/file:检查是否有隐藏 ACL 覆盖了 chmod 设置
chmod:精准控制读写执行位
数字模式适合批量设定,符号模式适合微调。关键不是“设多少”,而是“为什么设这个”。
- 普通配置文件(如 /etc/nginx/nginx.conf)设为 640:仅属主可读写,属组可读,其他人无权
- 可执行脚本(如 /usr/local/bin/backup.sh)设为 750:属主全权限,属组可执行+读,其他人禁止访问
- 日志目录(如 /var/log/myapp)设为 750,日志文件本身设为 640:目录需 x 位供进程进入,文件无需 x
- 绝对避免 777 和 666,尤其在 /tmp 以外的路径;临时放宽权限后务必及时回调
chown:归属对了,权限才有意义
权限再严,如果文件归错人,照样失效。属主和属组要反映实际使用关系,不是“谁创建就是谁”。
- Web 服务目录(如 /var/www/html)应归 www-data:www-data(或 nginx 用户),而非 root
- 应用配置目录若需开发组协同维护,设属组为 devs,再用 chown :devs /opt/app/conf,配合组权限 750
- 敏感凭证文件(如 /etc/myapp/secrets.env)归属 appuser:appgroup,并确保 appuser 不是 sudo 用户
- 慎用 chown -R,特别是跨挂载点或含符号链接时;优先分层处理,比如先 chown 目录,再单独处理内部关键文件
加固不是一次操作,而是持续习惯
权限会随部署、更新、日志轮转等动作悄悄漂移。定期做三件事:
- 用 sudo find / -path "/proc" -prune -o -path "/sys" -prune -o -perm -2 -type f -print 扫描世界可写文件
- 把关键路径(如 /etc、/var/www)的权限和归属写入部署清单,每次上线后比对
- 在 CI/CD 流水线中加入权限校验步骤,比如检测新部署的 .sh 文件是否含 x 位、.conf 是否为 640










