我有这个 PHP 代码:
<?php
$myfile = fopen("testfile.txt", "w")
?>
/usr/share/nginx/html
我的目录中的权限如下
drwxrwxrwx. 3 root root 4096 Nov 20 08:51 .
drwxr-xr-x. 3 root root 17 Nov 18 23:48 ..
-rwxrwxrwx. 1 root root 537 Sep 16 14:56 50x.html
-rwxrwxrwx. 1 root root 1171 Nov 20 03:50 make.php
但是当我运行上面的 PHP 代码时,make.php
它并没有创建testfile.txt
!
这里出了什么问题?我也尝试使用nginx
命令将用户更改为chown
,但是没有用。
答案1
答案2
哈哈!首先……我喜欢你的用户名“ctrlz”。
关于您的问题和 SELinux:
网络上有很多人建议禁用 SELinux。这绝对是最简单的“解决方案”,但在生产环境中并不理想,因为它会使您的服务器更容易受到攻击。
昨天,我再次深入学习了 SELinux。我发现了这样一个话题:面向普通用户的 SELinux(40分钟),作者托马斯·卡梅伦很有帮助。
我不知道你使用的是什么 Linux 发行版(我也不确定 SELinux 与其他发行版之间的差异有多大),但 CentOS 提供了一个SELinux 指南。
快速介绍:
SELinux “上下文”以 格式显示user:role:type:range
。默认情况下,SELinux 以targeted
模式运行,该模式通过属性限制对资源的访问type
。
您可以将标志附加到-Z
诸如ps
、、、、、、等命令,以查看不同资源上的ls
SELinux上下文。cp
mv
mkdir
netstat
要查看 Web 文件夹的 SELinux 上下文,请运行:
ls -lZ /usr/share/nginx/html
要查看进程的上下文nginx
,请运行:
ps -auxZ | grep -i nginx
还有一些 SELinux“布尔值”可以针对常见用例启用/禁用。要查看与 Web 服务器相关的布尔值列表(nginx
在本例中),请运行:
getsebool -a | grep -i httpd
要更新布尔值,可以使用命令进行设置setsebool
。例如:
setsebool httpd_read_user_content 1
其他一些有用的命令:
- SELinux 标签
- 实用工具
这就是我目前对 SELinux 的了解程度。我知道这是一篇老帖子,但我希望它能对其他人有所帮助。