[原创]网站可写目录权限何必777_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
2
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2440 | 回复: 1   主题: [原创]网站可写目录权限何必777        下一篇 
wulcan
版主
等级:中校
经验:1795
发帖:124
精华:0
注册:2014-3-19
状态:离线
发送短消息息给wulcan 加好友    发送短消息息给wulcan 发消息
发表于: IP:您无权察看 2015-1-23 15:23:53 | [全部帖] [楼主帖] 楼主

  无数的网站架设教程中,每遇到可写的目录和文件,清一色是用chmod 777,我认为这是一种偷懒的做法,在很多时候会带来不必要的麻烦,并且在一些情境中,还有安全的隐患。

情境一:

网站系统某个tmp文件夹用了777权限,普通管理员每天都要用abc用户登录查看机器运行状态和日志。某天abc用户的密码被盗,tmp文件就面临重大危险了。
可能有人说管理员不是root用户吗?不是还有sudo吗?
我只能说一句:千万别跟风好不好?否则你会死的很惨的!不遇到系统级的问题,滥用root权限的人基本上没有什么安全意识,不给sudo加密码的更是弱智。

情境二:

比较常见的Discuz升级,现在Discuz可以在线升级了。但是升级需要有可写的权限,这时候怎么办呢?
把整个网站目录置成777当然可以,但是等你升级完成后,你还需要再把权限改回来,并且还需要把“必须”有写权限的目录,比如log、attachments等文件和文件夹置为777——问题是:你能记住到底哪些目录需要可写权限吗?都是官方的模块还可以问百度,遇到私有的模块你就抓狂吧。
用终端升级其实最好,但是提醒一下,一定要注意备份好,cp命令跟windows下的粘贴命令有时不太一样,遇到重名的文件夹可不一定会保留里面原有的文件!

那么有其他好的方式吗?
Unix/Linux文件还有个属主(owner)的概念记得吗?我们可以从它身上来做文章。
每个文件都有一个属主,每个进程也有一个属主,apache和nignx一般系统中都是apache或www,mysql的一般就是mysql,这些都是文件权限的范畴,可以参考其他资料,在本文中就不再深入探讨。
对于网站系统,比如用apache,使用的是apache的用户和组。
对于整个网站目录,把它指定一个除了apache之外的用户和用户组,比如abc:admin,冒号后面代表组,对应的命令是:

# chown -R abc:admin /website_root/


对于必须有写权限的文件和文件夹,把用户指定为apache:apache,对应的命令是:

# chown -R apache:apache /website_root/must_write


而文件权限,如果可能的话,尽可能设置为644,甚至是644,这样基本上保证只读不可写,但是对于php-fpm之类的,会提示没有权限,因为php需要可执行权限,这种情况下,可以设置为755。

这样设置后,先看安全性:网站系统即使有了漏洞,也只能修改那几个可写目录里面的文件,其他文件不是apache的文件,没有写权限。
如果abc用户被盗,同样对于整个web系统也没有写权限,只能查看文件,不能修改。
如果你想更有安全感,把可写文件目录设置为600也是可以的,这样比如php系统,既使黑客拿下系统,把另外的php shell上传到这些目录,由于不具备可执行权限,也不能执行。

再看Discuz升级,升级时只需要改变一下整个目录的权限为777既可,这个命令还是比较快速的,升级完再全部改为644或755,又回到了升级前的样子,非常方便。




赞(0)    操作        顶端 
running
注册用户
等级:中尉
经验:491
发帖:0
精华:0
注册:2015-1-20
状态:离线
发送短消息息给running 加好友    发送短消息息给running 发消息
发表于: IP:您无权察看 2015-1-23 23:20:55 | [全部帖] [楼主帖] 2  楼

北京联动北方科技有限公司



赞(0)    操作        顶端 
总帖数
2
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论