我对Linux的文件权限及其用途感到困惑。
Web服务器:Apache, 操作系统:Ubuntu 16.04 LTS
我在/ var / www / html /文件夹中有一个文件test.php,权限为644,所有者和组为root。现在,这些文件执行与数据库相关的一些内部例程工作,即它与数据库交互,并且该文件通过cron作业执行。现在,当我通过www.example.com/test.php通过浏览器请求此文件时,然后,对我来说,文件已经执行并完成了数据库的所有工作。
现在,我有一些困惑点。
test.php文件已经编译并执行,为了执行它,我应该在权限中设置执行位,这实际上没有设置。
当浏览器请求该文件时,它将请求发送给apache,即www-data用户,该用户执行该文件。但该文件的所有者和组是root。此外,除文件所有者和组以外的其他用户只具有读取权限,然后执行该操作。
注意:即使我以root身份授予000作为所有者和组的权限,也可以通过浏览器请求执行文件。
答案 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"> </td>
<td width="280"><img src="resources/estilosSID/images/transparente.gif" width="3" height="30"></td>
</tr>
<tr>
<td> </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ña:</td>
<td class="celdaCampo"><input type="password" name="lf_pass" size="15"></td>
</tr>
<tr>
<td> </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>
我使用我的个人用户,然后将我的用户添加到组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