【问题标题】:php file in document root with owner and group as root getting accessed by browser文档根目录中的 php 文件,所有者和组作为根目录被浏览器访问
【发布时间】: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 请求该文件时,令我惊讶的是,该文件被执行并完成了数据库的所有工作。

现在,我有一些困惑。

  1. test.php文件编译执行了,执行需要在权限中设置execute位,实际没有设置。

  2. 当浏览器请求该文件时,它会将请求发送给 apache,即 www-data 用户,该用户执行了该文件。但是文件的所有者和组是root。另外,除了文件所有者和组之外的其他用户只有读取权限,那么它是如何执行的。

注意:即使我将权限设置为 000,并以 root 作为所有者和组,当通过浏览器请求时,文件也会被执行。

【问题讨论】:

  • 授予完全权限Chmod -R 0777 /var/www/html/
  • 但是我需要限制test.php的权限,使其无法通过浏览器执行。

标签: php linux apache


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    • 2023-04-01
    • 2021-12-05
    • 2016-10-17
    • 1970-01-01
    相关资源
    最近更新 更多