文件根目录中的php文件,所有者和组以root身份访问浏览器

时间:2017-07-20 12:25:53

标签: php linux apache

我对Linux的文件权限及其用途感到困惑。

Web服务器:Apache, 操作系统:Ubuntu 16.04 LTS

我在/ var / www / html /文件夹中有一个文件test.php,权限为644,所有者和组为root。现在,这些文件执行与数据库相关的一些内部例程工作,即它与数据库交互,并且该文件通过cron作业执行。现在,当我通过www.example.com/test.php通过浏览器请求此文件时,然后,对我来说,文件已经执行并完成了数据库的所有工作。

现在,我有一些困惑点。

  1. test.php文件已经编译并执行,为了执行它,我应该在权限中设置执行位,这实际上没有设置。

  2. 当浏览器请求该文件时,它将请求发送给apache,即www-data用户,该用户执行该文件。但该文件的所有者和组是root。此外,除文件所有者和组以外的其他用户只具有读取权限,然后执行该操作。

  3. 注意:即使我以root身份授予000作为所有者和组的权限,也可以通过浏览器请求执行文件。

1 个答案:

答案 0 :(得分:0)

文件664和文件夹755以及用户和组www-data。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<html>
<head>
<title>SID Login</title>
<link href="resources/estilosSID/estilosLogin.css" rel="stylesheet" type="text/css" />
</head>
<body>

<table width="100%"  height="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><div align="center">
      <table width="1000" height="600" border="0" cellspacing="0" cellpadding="0" background="resources/estilosSID/images/login.png">
        <tr>
          <td>
            <form name="flogin" method="post" AUTOCOMPLETE="false"'>  
                <input type="submit" style="display:none">
                  <table width="322" border="0" align="center" cellpadding="0" cellspacing="0">
                    <tr>
                      <td width="42">&nbsp;</td>
                      <td width="280"><img src="resources/estilosSID/images/transparente.gif" width="3" height="30"></td>
                    </tr>
                    <tr>
                      <td>&nbsp;</td>
                      <td><table width="85%" border="0" cellspacing="0" cellpadding="3">
                          <td width="45%" class="tituloCampo"> Usuario:</td>
                          <td width="55%" class="celdaCampo"><input type="text" name="lf_user" size="15"></td>
                        </tr>
                        <tr>
                          <td class="tituloCampo"> Contrase&ntilde;a:</td>
                          <td class="celdaCampo"><input type="password" name="lf_pass" size="15"></td>
                        </tr>
                        <tr>
                          <td>&nbsp;</td>
                          <td><div align="right">
                            <img src="resources/estilosSID/images/btnLogin.png" width="79" height="29" onclick="document.flogin.submit();"></div></td>
                        </tr>
                      </table></td>
                    </tr>
                  </table>
                  </form>
                  </td>
                </tr>
              </table>
    </div></td>
  </tr>
</table>

</body>
</html>

并测试http://localhost/test.php

我使用我的个人用户,然后将我的用户添加到组www-data并将权限更改为文件夹775和文件管理器664.和所有者personaluser:www-data

$ sudo chown -R www-data:www-data /var/www  
$ sudo chmod -R 755 /var/www

www-data是运行apache的用户/组。所以www-data执行(Interpreter)代码。

用于访问域&#34; example.dev&#34;或其他你使用虚拟主机。检查一下:https://www.digitalocean.com/community/tutorials/como-configurar-virtual-hosts-de-apache-en-ubuntu-16-04-es