问题是我有无法在浏览器中工作的PHP文件。我怀疑是因为用户缺少read
权限。
这些文件位于名为“ ajax”的目录中
drwxrwxrwx. 2 root root 4096 Sep 13 14:33 ajax
该目录的内容:
-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
我100%确定以root用户身份登录:
[root@accept: nl (MP-git-branch)] $
使用命令仔细检查id
:
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
它让我发疯。
尝试了sudo(即使我已经是root了)。
sudo chmod 777 filename
尝试过chown(即使我已经是所有者root)。
sudo root filename
完全没有错误或警告。
操作系统是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)>
如果文件位于非标准位置,则应在文件标签数据库中添加规则。这样可以避免下次重新标记文件系统或restorecon
使用文件系统时出现问题。选择标签适当或使用已应用的标签(与检查现有的安全标签ls -lZ
)。
/path/to/directory
使用为其添加标签规则及其内容semanage
:
semanage fcontext -a -t httpd_user_rw_content_t '/path/to/directory(/.*)?'
如果文件位于不同的文件系统上,则可以使用挂载点context
选项来应用/覆盖默认标签。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句