web-dev-qa-db-ja.com

SELinux httpd_read_user_contentを有効にし、ファイルをhttpd_user_content_tに設定した後でも、Fedora 20がホームディレクトリへのアクセスを拒否するのはなぜですか?

私の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にアクセスする権限がありません。

誰かが私が他に何をチェックできるか知っているでしょうか?

1

ため息...常にあなたの許可をチェックしてください、人々。 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で私は立ち上がった。あなたたちが私に頼んだすべてをチェックせずにそれをすることはできなかったでしょう、そして私はあなたに感謝します。

0