请教个 linux 服务器多网站权限的问题

2014-11-24 09:45:20 +08:00
 nonozone
加入一台服务器上有多个网站,而且这些网站都不是放在各自的用户目录而是放在同一个目录里面。那么目录权限如何设置比较好?

直接把这些目录归属给www,然后权限700比较好,还是把文件都归属给root或者,但是权限基本644,再针对个别目录777?

前面一种方法实际操作更方便些,但是万一某个网站感染,比如webshell,有跨站的风险。
第二种方法貌似比较安全,但是实际操作很麻烦,比如类似WP这种想在线升级一下子,蛋疼的很。

有么有更好的办法?
3256 次点击
所在节点    问与答
10 条回复
wangxingcs
2014-11-24 10:00:04 +08:00
给www,安全些,一般也都这么作,也见过每个网站给个不同权限的,好处是网站出问题后可以通过资源占用直接判断是哪个网站。
nonozone
2014-11-24 10:03:19 +08:00
@wangxingcs 但是这样怎么防止跨站呢?
kungfuchicken
2014-11-24 11:57:25 +08:00
1. apache的话可以考虑 suphp, 每个用户都是用自己的帐号来运行php进程, 互相隔离
2. nginx + php-fpm的话每个用户都用自己的独立的php-fpm进程,进程使用用户帐号和组启动,配置openbase_dir + chroot
lincanbin
2014-11-24 12:29:37 +08:00
给所有vhost都设置open_basedir,设置后每个vhost下的PHP脚本只能访问指定目录的文件。
extreme
2014-11-24 13:08:14 +08:00
不清楚楼主所说的处于同一目录是什么意思。
那同处在/算不算是在同一个目录?
要别人帮助你解决问题,那就必须说得清楚一点。
是多个网站程序同时放在某个目录,抑或是多个网站分别放在同一个目录中不同的子目录?
还有如何访问?只给网站根目录绑定了域名,访问不同网站时加上子目录名称?抑或不同网站使用不同的域名?
nonozone
2014-11-24 13:13:34 +08:00
@extreme 比如同在/var/www下
/var/www/site1.com
/var/www/site2.com
这种
extreme
2014-11-24 13:37:29 +08:00
@nonozone 应该每个网站都以不同的域名访问吧?让每个网站的PHP都以各自的身份运行就行了。
Apache的用mod_php的可以用mod_itk或mod_ruid2。
FastCGI我没用,不了解。
Nginx With PHP FPM的话,给每个网站都建立一个pool,并且以不同的用户身份启动。
把各网站的文件的所有者更改为PHP执行用户就行了,mod_php的可以给700权限,如果用Apache with FastCGI或PHP FPM,则需要把Apache或Nginx的执行用户加入各PHP执行用户的用户组中,网站文件权限设置为750。

有些地方我不知道如何表达才能让你更好理解,不知道你能不能看明白……
你可以考虑使用我的Linux KIT: http://linuxk.it/,只要你不乱改文件权限,跨站几乎是不可能事件,推荐在Debian 7使用Linux KIT。
extreme
2014-11-24 13:40:57 +08:00
@extreme 跨站几乎是不可能的前提是你使用Linux KIT的Shell Script添加站点时给每个站点设置了不同的用户。
nonozone
2014-11-24 14:48:49 +08:00
@extreme 之前就是没有给每个网站单独的pool,结果一个网站感染,整个全部感染...
现在就是debian+nginx+php-fpm。
你的网址貌似打不开。
extreme
2014-11-24 18:36:43 +08:00
@nonozone 貌似IP是183开头的节点宕机了。
刚刚删掉183的DNS记录了,有几个DNS记录的TTL是3600,可能没生效,你用nslookup看另外一个122开头的IP,然后更改hosts再访问吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/148810

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX