Tho*_*mas 5 permissions selinux ownership
问题是我的 PHP 文件在浏览器中不起作用。我怀疑是因为用户缺少read
权限。
这些文件位于名为“ajax”的目录中
drwxrwxrwx. 2 root root 4096 Sep 13 14:33 ajax
Run Code Online (Sandbox Code Playgroud)
该目录的内容:
-rwxrwxrwx. 1 root root 13199 Sep 13 14:33 getOrderDeliveryDates.php
-rwxrwxrwx. 1 root root 20580 Sep 13 14:33 getParcelShops.php
-rwxrwxrwx. 1 root root 1218 Sep 13 14:33 index.php
-rwxrwxrwx. 1 root root 814 Sep 13 14:33 lang.php
-rwxrwxrwx. 1 root root 6001 Sep 13 14:33 prod_reviews.php
Run Code Online (Sandbox Code Playgroud)
我 100% 确定以 root 身份登录:
[root@accept: nl (MP-git-branch)] $
Run Code Online (Sandbox Code Playgroud)
用命令仔细检查id
:
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Run Code Online (Sandbox Code Playgroud)
它让我发疯。
试过 sudo (即使我已经是 root 了)。
sudo chmod 777 filename
Run Code Online (Sandbox Code Playgroud)
尝试 chown (即使我已经是所有者根)。
sudo root filename
Run Code Online (Sandbox Code Playgroud)
根本没有错误或警告。
操作系统是 CentOS 6
CentOS(和其他 Fedora/RHEL 衍生产品)启用称为 SELinux 的附加安全机制。它对大多数系统守护进程应用了额外的限制。在常规 unix 权限之后检查这些附加限制。
对于非默认配置,您通常需要调整 SELinux。文件包含一个特定的安全标签,SELinux 使用它来应用安全策略。如果您的问题仅出现在某些文件上,则需要更正问题文件上的 SELinux 标签。使用chcon
with--reference=
选项从文件中复制标签,该文件可在有问题的文件上应用相同的标签:
chcon --reference=<path to working file> <path to not working file(s)>
Run Code Online (Sandbox Code Playgroud)
如果您的文件位于非标准位置,则应在文件标签数据库中添加规则。这可以避免下次重新标记或restorecon
使用文件系统时出现问题。适当地选择标签或使用已经应用的标签(用 来检查现有的安全标签ls -lZ
)。
添加标签规则/path/to/directory
及其内容使用semanage
:
semanage fcontext -a -t httpd_user_rw_content_t '/path/to/directory(/.*)?'
Run Code Online (Sandbox Code Playgroud)
如果您的文件位于不同的文件系统上,您可以使用挂载点context
选项来应用/覆盖默认标签。
归档时间: |
|
查看次数: |
6804 次 |
最近记录: |