权限与 ACL 该不该用:先看它解决的问题是不是你的问题

Linux · 3 分钟阅读· 374 次阅读

umask 022 让新文件是 644、新目录是 755;改成 027 则同组只读

它擅长的是多用户共享目录;如果你只是Web 目录最小权限,用现成的东西更省事。

先说结论

权限设计的目标是「出事后能说清谁能碰」,不是把数字改到最严格

  • 适合:多用户共享目录
  • 不适合:CI 与部署账号隔离
  • 学习成本:目录没有 x 位就进不去,只有 r 位时能看到文件名却读不到属性
  • 最大收益:SUID 只对可执行文件生效,root 的 SUID 程序是提权的主要目标
  • 最大风险:把网站目录设成 777 图省事,任意脚本都能写进 webshell

它到底解决什么

umask 022 让新文件是 644、新目录是 755;改成 027 则同组只读。

换句话说,它把「多用户共享目录」这件事从手工变成可重复的流程。这是它真正的价值,而不是功能列表的长度。

什么时候不该用

下面三种情况,用了反而更累:

把网站目录设成 777 图省事,任意脚本都能写进 webshell

只加 ACL 不设默认 ACL,新建文件又回到 644

用 chmod -R 755 递归改家目录,把 SSH 私钥变成全员可读

和替代方案比

ACL 的 mask 参与权限计算,chmod 改组权限时可能顺手把 mask 改掉。

方案 上手成本 适用规模 代价
权限与 ACL 中等 中大型 需要维护
单纯用属主与组 低 小型 定制能力弱
SELinux 强制访问控制 低 一次性任务 不可维护

权限与 ACL 该不该用

这台工具的关键细节

几个决定长期体验的点:

  • 目录没有 x 位就进不去,只有 r 位时能看到文件名却读不到属性
  • SUID 只对可执行文件生效,root 的 SUID 程序是提权的主要目标
  • Sticky 位(/tmp 的 1777)保证只有属主能删自己的文件

我的建议

权限设计的目标是「出事后能说清谁能碰」,不是把数字改到最严格。

先用两周,跑一个真实的小任务;两周后你还想用它,再谈长期。

还有几处容易忽略的

都是小地方,但出问题时往往就卡在这里。

  • umask 022 让新文件是 644、新目录是 755;改成 027 则同组只读
  • mv 跨文件系统会重建文件,属主和 ACL 可能变成执行者的

工具是解法,不是身份。

评论 (3)

老
老吴

备份没验证过等于没有,这条我认。

阿
阿哲

排查顺序那段直接抄进值班手册了。

南
南风

「先看日志再猜」这句话值一篇文。

发表评论

验证码

提交后需站长审核,通过后才会显示。