请教个 linux 服务器多网站权限的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nonozone
V2EX    问与答

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

  •  
  •   nonozone 2014-11-24 09:45:20 +08:00 3581 次点击
    这是一个创建于 3983 天前的主题,其中的信息可能已经有所发展或是发生改变。
    加入一台服务器上有多个网站,而且这些网站都不是放在各自的用户目录而是放在同一个目录里面。那么目录权限如何设置比较好?

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

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

    有么有更好的办法?
    10 条回复    2014-11-24 18:36:43 +08:00
    wangxingcs
        1
    wangxingcs  
       2014-11-24 10:00:04 +08:00
    给www,安全些,一般也都这么作,也见过每个网站给个不同权限的,好处是网站出问题后可以通过资源占用直接判断是哪个网站。
    nonozone
        2
    nonozone  
    OP
       2014-11-24 10:03:19 +08:00
    @wangxingcs 但是这样怎么防止跨站呢?
    kungfuchicken
        3
    kungfuchicken  
       2014-11-24 11:57:25 +08:00
    1. apache的话可以考虑 suphp, 每个用户都是用自己的帐号来运行php进程, 互相隔离
    2. nginx + php-fpm的话每个用户都用自己的独立的php-fpm进程,进程使用用户帐号和组启动,配置openbase_dir + chroot
    lincanbin
        4
    lincanbin  
       2014-11-24 12:29:37 +08:00
    给所有vhost都设置open_basedir,设置后每个vhost下的PHP脚本只能访问指定目录的文件。
    extreme
        5
    extreme  
       2014-11-24 13:08:14 +08:00
    不清楚楼主所说的处于同一目录是什么意思。
    那同处在/算不算是在同一个目录?
    要别人帮助你解决问题,那就必须说得清楚一点。
    是多个网站程序同时放在某个目录,抑或是多个网站分别放在同一个目录中不同的子目录?
    还有如何访问?只给网站根目录绑定了域名,访问不同网站时加上子目录名称?抑或不同网站使用不同的域名?
    nonozone
        6
    nonozone  
    OP
       2014-11-24 13:13:34 +08:00
    @extreme 比如同在/var/www下
    /var/www/site1.com
    /var/www/site2.com
    这种
    extreme
        7
    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
        8
    extreme  
       2014-11-24 13:40:57 +08:00
    @extreme 跨站几乎是不可能的前提是你使用Linux KIT的Shell Script添加站点时给每个站点设置了不同的用户。
    nonozone
        9
    nonozone  
    OP
       2014-11-24 14:48:49 +08:00
    @extreme 之前就是没有给每个网站单独的pool,结果一个网站感染,整个全部感染...
    现在就是debian+nginx+php-fpm。
    你的网址貌似打不开。
    extreme
        10
    extreme  
       2014-11-24 18:36:43 +08:00
    @nonozone 貌似IP是183开头的节点宕机了。
    刚刚删掉183的DNS记录了,有几个DNS记录的TTL是3600,可能没生效,你用nslookup看另外一个122开头的IP,然后更改hosts再访问吧。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3287 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 11:47 PVG 19:47 LAX 04:47 JFK 07:47
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86