私のFedora20では、PHPのようなプロセスによるファイルへの書き込みアクセスをApache経由で許可するには、プロセス所有者(私の場合はApache
)が必要であることを学びました。ファイルへの書き込み権限。また、SELinuxが有効になっているため、ファイルにはhttpd_system_rw_content_t
コンテキストが必要です。
また、SELinuxポリシーにより、httpdが/home
の下のファイルにアクセスできないように見えます。これを修正するには、アクセスするファイルにセキュリティコンテキストhttpd_user_content_t
またはhttpd_user_rw_content_t
が必要であることにほぼ全員が同意します。私はこれを確実に行っていますが、Apacheはまだディレクトリにアクセスする権限がないと言っています。これらのファイルにuser_contentコンテキストがない場合、実際にSELinux警告が表示されます。コンテキストが設定されている場合、警告は表示されませんが、Apacheはファイルにアクセスできません。 /home/me/game
の下にあるものはすべて、次のユーザー権限とセキュリティコンテキストを持っています。
$ Sudo chcon -Rv --type=httpd_user_rw_content_t game
$ Sudo setsebool -P httpd_read_user_content 1
$ Sudo chown -R :Apache game
$ ll -Zd game
drwxrwxr-x. me Apache unconfined_u:object_r:httpd_user_rw_content_t:s0 game
それでもApacheは私にこう言っています:
このサーバー上の/ gameにアクセスする権限がありません。
誰かが私が他に何をチェックできるか知っているでしょうか?
ため息...常にあなたの許可をチェックしてください、人々。 SELinuxの設定は良好でしたが、Apache
に到達したいパスに到達する途中に、そのユーザーが読み取り/実行できないディレクトリがありました。
まず第一に、私は/var/log/httpd/error_log
を見るべきでした。
(13)アクセス許可が拒否されました:[client 127.0.0.1:38628] AH00035:パスのコンポーネントに検索アクセス許可がないため、/ game /へのアクセスが拒否されました(ファイルシステム>パス '/ home/me/game')
グーグルでエラーを調べて、私は このページ も問題を詳しく説明しているのを見つけました。 /var/www
からのサービスに問題がなかったので、ディレクトリのアクセス許可を最後まで確認しました。
$ ll -d /
drwxr-xr-x. 18 root root 4096 Jun 22 18:52 /
$ ll -d /var
drwxr-xr-x. 21 root root 4096 Jun 22 12:51 /var
$ ll -d /var/www
drwxr-xr-x. 8 root root 4096 Jun 21 09:19 /var/www
私は私の家のdirsまでずっと同じことをしました:
$ ll -d /home
drwxr-xr-x. 4 root root 4096 Jun 13 21:31 /home
$ ll -d /home/me
drwx------. 35 me me 4096 Jun 22 19:05 /home/me
うん...単純なSudo chmod o=rx /home/me
で私は立ち上がった。あなたたちが私に頼んだすべてをチェックせずにそれをすることはできなかったでしょう、そして私はあなたに感謝します。