web-dev-qa-db-ja.com

Apache CentOS 7 403 Forbidden誰か?

Linux CentOS 7サーバーにFTPで接続し、Windows 7システムからWebサイトファイルを更新できる状況をセットアップしようとしています。この時点で、vsftp(/ home/robert)を使用してユーザーのフォルダーにFTPで転送できます。ApacheはデフォルトのWebサイト(/ var/www/html)で動作するようです。私はポート8080の仮想ホストを作成し、/ var/www/8080/public_htmlをポイントすると正常に動作しますが、/ home/robert/public_htmlをポイントするとすぐに、403 Forbiddenが返されます。このサーバーで/にアクセスする権限がありません。 Apacheエラーログが示す

[Wed Mar 18 16:12:27.546621 2015] [core:error]
[pid 21204] (13)Permission denied: [client 192.168.1.66:57090]
AH00035: access to / denied (filesystem path '/home/robert')
because search permissions are missing on a component of the path

Apache confファイル(/etc/httpd/conf/httpd.conf)には、仮想ホスト用のこのエントリがあります

Listen 80
Listen 8080

# Virtual Hosts
<VirtualHost *:8080>
    ServerName 192.168.1.10:8080
#   DocumentRoot /var/www/8080/public_html
    DocumentRoot /home/robert/public_html
</VirtualHost>

/home/robert/public_html/index.htmlの権限は以下のとおりです

drwxr-xr-x.   7 root root   66 Mar  9 17:16 home
dr-x---r-x. 15 robert robert 4096 Mar 16 22:51 robert
drwxr-xr-x. 2 robert robert   23 Mar 17 23:28 public_html
-rwxr-xr-x. 1 robert robert 332 Mar 17 23:28 index.html

これは権限の問題のようですが、どうすればよいかわかりません。ロバート個人グループにApacheユーザーを追加する必要がありますか? selinuxはここで何かをしていますか?任意の助けいただければ幸いです。ありがとうございました。

更新:わかりました。すべてのWebサイトは/ var/www /フォルダーの下にあると思われます。 selinuxはそれを望んでいるようです。それでは、どうすればリモートでFTPしてWebサイトファイルにアクセス(読み取り/書き込み)できますか?ユーザーrobertが/ var/www/testwebにFTPで接続し、そこのファイルを読み書きできるようにしたいとします。それはどのように達成されますか?

更新:投稿された回答を見て、以下の3つのコマンドを実行しました

setsebool -P httpd_enable_homedirs on
setsebool -P ftp_home_dir on
restorecon -r -v /home

それは何かをしたように見えますが、結果は同じです。 FTPでユーザーフォルダに移動できますが、Webサイトが表示されません... 403エラー。

更新:次のコマンドも実行しようとしましたが、すべてのファイルでエラーが発生しました

実行したコマンド

chcon -Rv --type=httpd_t /home/robert/public_html

受け取ったエラー

chcon: failed to change context of ‘index.html’ to ‘unconfined_u:object_r:httpd_t:s0’: Permission denied

また、setenforce 0を使用してselinuxをオフにしましたが、それでも403を取得しました。アドバイスありがとうございます...ありがとうございます。

4
1Raptor007

私はそれを理解したと思います。 Apacheは機能していましたが、selinuxを実行したままFTPを機能させる最後のコマンドは

setsebool -P ftpd_full_access on

それを設定すると、FTPは正常に機能しました。これで、Windows 7マシンからFTPで転送し、Webサイトファイルを更新、公開、変更できるようになり、Apacheがコンテンツを楽しく配信できるようになりました。うわー...それは解決するのに何日もかかりました。クレイジー。テストのために別のユーザーをセットアップしましたが、すべてうまくいきます。

1
1Raptor007