linux 下php 服务器权限问题

该段落出处:
来自开源中国社区—-关于linux下php权限问题
http://www.oschina.net/question/782079_141232

要设置安全的权限系统,你要先弄清楚以下几个问题:

1. 网站的文件所有者帐号是什么?

2.   apache/php-fpm以什么帐号身份运行?

3. 网站哪些目录需要有写入权限(如日志生成、附件上传等)

针对这个问题,建议的设置如下:

1. 网站所有者,可设置为ftp, www帐号

2. nginx/php-fpm/apache,建议以nobody帐号运行,反正不能使用网站文件所有者帐号。

3. 需要可写权限的目录,手工设置权限为777即可

4. php生成的日志、附件文件的所有者会是nobody, 这时www,ftp帐号却无法修改、删除这些文件。
    那么在php生成文件时,可调用chmod($filename, 0777)。即解钤还需系钤人。


这样,php脚本只能向指定的目录中写入文件,一方面规范了程序代码的行为,另一方面,也一定程度上提高了网站的安装性。

权限配置:http://jingyan.baidu.com/article/9158e0008855e2a2541228e1.html

网站目录文件权限的设置对网站的安全至关重要,下面简单介绍网站目录文件权限的基本设定。
我们假设http服务器运行的用户和用户组是www,网站用户为centos,网站根目录是/home/centos/web。

我们首先设定网站目录和文件的所有者和所有组为centos,www,如下命令:
chown -R centos:www /home/centos/web

设置网站目录权限为750750是centos用户对目录拥有读写执行的权限,这样centos用户可以在任何目录
下创建文件,用户组有有读执行权限,这样才能进入目录,其它用户没有任何权限。
find -type d -exec chmod 750 {} \;

设置网站文件权限为640640指只有centos用户对网站文件有更改的权限,http服务器只有读取文件的权限,
无法更改文件,其它用户无任何权限。
find -not -type d -exec chmod 640 {} \;

针对个别目录设置可写权限。比如网站的一些缓存目录就需要给http服务有写入权限。例如discuz x2的/data/目录
就必须要写入权限。
find data -type d -exec chmod 770 {} \;

你可能感兴趣的:(php,程序猿)