静态网站文件与目录的所有权及权限配置最佳实践咨询
静态网站文件与目录的所有权及权限配置最佳实践咨询
嘿,你的这个思路其实挺合理的,不过咱们可以拆解下看看有没有更贴合常见场景或者更省心的做法~
首先得肯定你:你提到的root:<server-group>搭配文件权限640、目录权限750的配置,核心逻辑是完全站得住脚的——让服务器进程通过组权限读取所有内容,同时限制普通用户不管是误操作还是有意为之,都没法随意修改文件,必须用sudo才能操作,这确实能有效降低文件被篡改的风险。
不过这个方案确实有点“重”,因为把所有权给到root,后续日常维护修改文件的时候,每次都得用sudo,时间长了会有点繁琐。其实很多生产环境里,大家会用更轻量化的配置:
- 所有权设置为
<deploy-user>:<server-group>:这里的<deploy-user>可以是你日常用来部署网站的普通用户(比如你自己的登录账号,或者专门创建的deploy运维账号),而不是root。这样你日常更新文件的时候,不用每次都敲sudo,直接用这个用户就能操作,服务器进程依然能通过组权限正常读取内容。 - 权限保持
640(文件)和750(目录):这个权限设置的安全性没问题,既保证了服务器能读取文件和遍历目录,又把访问权限限制在了所有者和服务器组内,其他无关用户碰不到。
如果你的服务器环境比较可控(比如只有你和信任的运维人员使用),也可以考虑更开放一点但依然安全的配置:把权限设为644(文件)和755(目录),所有权用<deploy-user>:<server-group>甚至<deploy-user>:<deploy-user>——不过这种情况要确保服务器进程(比如nginx、Apache)有读取权限,而且服务器上的其他用户不会恶意修改文件。
总的来说,你的核心安全思路是对的,只是可以根据维护便利性调整所有权,不用非得绑定root。如果追求极致安全,你的方案完全没问题;如果想兼顾安全和易用性,用专门的部署用户来做所有者会更顺手。
备注:内容来源于stack exchange,提问作者Anton
相关产品推荐
相关产品推荐

