文档根目录中的 php 文件,所有者和组作为根目录被浏览器访问
Posted
技术标签:
【中文标题】文档根目录中的 php 文件,所有者和组作为根目录被浏览器访问【英文标题】:php file in document root with owner and group as root getting accessed by browser 【发布时间】:2017-07-20 12:25:53 【问题描述】:我对 Linux 的文件权限及其使用感到困惑。
网络服务器:Apache, 操作系统:Ubuntu 16.04 LTS
我在 /var/www/html/ 文件夹中有一个文件 test.php,权限为 644,所有者和组为 root。现在,这个文件做了一些与数据库相关的内部日常工作,即它与数据库交互,这个文件是通过 cron 作业执行的。现在,当我通过浏览器通过输入 www.example.com/test.php 请求该文件时,令我惊讶的是,该文件被执行并完成了数据库的所有工作。
现在,我有一些困惑。
test.php文件编译执行了,执行需要在权限中设置execute位,实际没有设置。
当浏览器请求该文件时,它会将请求发送给 apache,即 www-data 用户,该用户执行了该文件。但是文件的所有者和组是root。另外,除了文件所有者和组之外的其他用户只有读取权限,那么它是如何执行的。
注意:即使我将权限设置为 000,并以 root 作为所有者和组,当通过浏览器请求时,文件也会被执行。
【问题讨论】:
授予完全权限Chmod -R 0777 /var/www/html/
但是我需要限制test.php的权限,使其无法通过浏览器执行。
【参考方案1】:
文件 664 和文件夹 755 以及用户和组 www-data。
$ sudo chown -R www-data:www-data /var/www
$ sudo chmod -R 755 /var/www
并测试到http://localhost/test.php
我使用我的个人用户,然后将我的用户添加到组 www-data 并更改文件夹 775 和文件管理器 664 的权限。以及所有者个人用户:www-data
$ sudo usermod -aG www-data personaluser
$ sudo chown -R personaluser:www-data /var/www
$ sudo chmod -R 775 /var/www
www-data 是运行 apache 的用户/组。所以 www-data 执行(解释器)代码。
对于使用域“example.dev”或其他您已使用虚拟主机的访问。检查这个:https://www.digitalocean.com/community/tutorials/como-configurar-virtual-hosts-de-apache-en-ubuntu-16-04-es
【讨论】:
以上是关于文档根目录中的 php 文件,所有者和组作为根目录被浏览器访问的主要内容,如果未能解决你的问题,请参考以下文章