rootが所有するファイルのroot権限を変更することはできません。

rootが所有するファイルのroot権限を変更することはできません。

問題は、私の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

私はrootとしてログインしたと100%確信しています。

[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を試しました(すでにルートにもかかわらず)。

sudo chmod 777 filename

chownを試しました(すでにルートにもかかわらず)。

 sudo root filename

エラーや警告はまったくありません。

オペレーティングシステムはCentOS 6です。

答え1

CentOS(およびその他のFedora / RHEL派生製品)は、SELinuxと呼ばれる追加のセキュリティメカニズムを有効にします。ほとんどのシステムデーモンに追加の制限を適用します。これらの追加の制限は、通常のUNIX権限の後に確認されます。

デフォルト以外の設定では、SELinuxを調整する必要があることがよくあります。ファイルには、SELinux がセキュリティポリシーを適用するために使用する特定のセキュリティラベルが含まれています。問題が特定のファイルでのみ発生する場合は、問題のあるファイルのSELinuxラベルを修正する必要があります。使用chcon--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オプションデフォルトのラベルを適用/オーバーライドするためにマウントポイントに使用されます。

関連情報