linux – 什么用户应该运行apache和PHP? / var / www文件应具有哪些权限?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 什么用户应该运行apache和PHP? / var / www文件应具有哪些权限?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4548字,纯文字阅读大概需要7分钟。
内容图文
我只是旋转了一个Ubuntu 11.10框,然后运行apt-get install apache2 php5来安装apache2和PHP 5.现在它作为“Web服务器”运行,它加载“It Works!”页.现在我正在努力加强安全性,我对linux web服务器有以下问题:
>谁应该运行阿帕奇?
>该用户应该在哪个群组中?
>哪些软件包可以使PHP(和Apache?)作为文件的所有者运行? (比如在共享的Web主机上)我应该使用这些包吗?它们在小型系统上维护是否容易/可行?
>对于使用作为www-data运行的apache的文件和文件夹,默认权限应该是什么?对于以用户身份运行的apache / php?
我在检查默认设置时做了以下事情:
文件结构
当我cd /并做一个ls -al的内容列表时,我看到/ var:
drwxr-xr-x 13 root root 4096 2012-02-04 20:47 var/
如果我cd进入var并做ls -al我看到:
drwxr-xr-x 2 root root 4096 2012-02-04 20:47 www/
最后,在/ var / www里面我看到:
drwxr-xr-x 2 root root 4096 2012-02-04 20:47 ./
drwxr-xr-x 13 root root 4096 2012-02-04 20:47 ../
-rw-r--r-- 1 root root 177 2012-02-04 20:47 index.html
我的主要内容是到目前为止所有这些文件都属于root:root,文件的权限为644,目录的权限为755.
Apache的权限
如果我在/var/www/test.php中以root身份创建一个文件,其内容如下:
<?php echo shell_exec('whoami');
并将该文件加载到浏览器中,它告诉我www-data,这与/ etc / apache2 / envvars文件中的相同:
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
如果我做ps aux | grep -i apache我看到以下内容:
root 1916 1.2 104664 7488 Ss 20:47 /usr/sbin/apache2 -k start
www-data 1920 0.8 105144 5436 S 20:47 /usr/sbin/apache2 -k start
www-data 1921 1.0 105144 6312 S 20:47 /usr/sbin/apache2 -k start
www-data 1922 0.7 104688 4624 S 20:47 /usr/sbin/apache2 -k start
www-data 1923 0.7 104688 4624 S 20:47 /usr/sbin/apache2 -k start
www-data 1924 0.7 104688 4624 S 20:47 /usr/sbin/apache2 -k start
www-data 1925 0.7 104688 4624 S 20:47 /usr/sbin/apache2 -k start
那运行的apache是??谁?看起来第一个进程可能是root用户,可能是在系统启动时来自/etc/init.d/apache脚本,而另一个进程是从第一个进程生成的www-data.那是对的吗?
接下来,如果我输入www-data组,那么我会看到www-data:www-data – 所以它看起来只在www-data组中.我猜这也是标准做法.
共享主机和安全性
因此,如果我理解正确,如果apache作为www-data运行并且我希望apache能够读取目录,则需要为world(其他)组(ox)设置x位,这也需要在所有父目录上设置一直到链(www,var).如果我希望apache能够从文件中读取,那么需要设置o位.
不幸的是,我相信这会在同一个Linux机器上为多个应用程序和/或多个用户引入一个安全漏洞:所有Web文件都需要是世界可读的,因此系统上的其他应用程序和其他用户也可以访问它们.如果系统上安装的一个应用程序存在允许原始的,未经验证的用户输入的安全漏洞(然后由PHP执行),则远程攻击者可以浏览Web系统上可读的所有其他文件.同样,如果盒子有多个用户,并且用户知道另一个用户的web文件的路径,那么他/她可以读取文件内容(并查看敏感的东西,如数据库连接字符串等).
我听说过两个软件包,即suphp和phpsuexec,它们允许用户的文件在共享系统上“按原样”提供.其中一个细节是它允许Web应用程序(如Wordpress)创建和修改文件 – 这对添加主题,插件和升级软件非常有帮助.当然,手动执行这些操作可能更安全,但是可以使用上面提到的其中一个软件包进行折衷吗?或者通过使用chown使wordpress目录组属于www-data并设置组上的粘滞位(g s)?
我只是将它们用作网络托管公司的最终用户,因此我不知道它们的细节,如果它们甚至可以合理地安装在小型系统上,或者是否还有其他的我应该使用安全措施,但我想我会在这里提及它们,因为它们似乎是解决我的一些问题的可能方法.
回到问题
>谁应该运行阿帕奇?
>该用户应该在哪个群组中?
>哪些软件包可以使PHP(和Apache?)作为文件的所有者运行? (比如在共享的Web主机上)我应该使用这些包吗?它们在小型系统上维护是否容易/可行?
>对于使用作为www-data运行的apache的文件和文件夹,默认权限应该是什么?对于以用户身份运行的apache / php?
解决方法:
>不是root
>不是root
> SuEXEC
>取决于.文件644和文件夹755是一个安全的默认值.
除非您希望php能够编辑该文件/文件夹的内容,否则不要将任何内容的所有权更改为www-data
无论你做什么,文件夹都需要读取和执行权限,以便用户查找文件;文件需要读取权限才能让用户读取它们.如果您在更改内容时遇到任何权限错误 – 您已设法删除这些根本所需的权限.
如果您没有通过php应用程序编写任何文件,您可以保留您拥有的文件:您.在这种情况下,世界许可(xx4 / 5)是适用的.
如果您将文件保留为您所拥有的文件:您具有644(文件)的文件权限,这意味着只有您可以编辑网站文件 – www-data不是您 – 因此它无法编辑文件.
如果你想限制对apache的访问并阻止所有其他访问chown -R你:www-data *.使用640的文件权限和750的文件夹权限,您可以编辑,www-data可以读取 – 因为然后apache读取组权限(x4 / 5x).
将apache / php写入的路径限制到最小 – 如果有一个tmp目录,应用程序需要写入 – 允许它只写入该文件夹 – 并且对于任何可写位置,如果可能的话,请确保它在记录根目录或采取措施确保此可写路径不可通过Web访问.
请注意,“你”不应该是root.允许以root身份直接ssh访问是其他安全漏洞的指示(例如不禁止密码登录),但这本身就是一大堆问题.
内容总结
以上是互联网集市为您收集整理的linux – 什么用户应该运行apache和PHP? / var / www文件应具有哪些权限?全部内容,希望文章能够帮你解决linux – 什么用户应该运行apache和PHP? / var / www文件应具有哪些权限?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。