【发布时间】: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的权限,使其无法通过浏览器执行。