web-dev-qa-db-ja.com

Fedoraのホームディレクトリへのシンボリックリンクに続いてhttpdがエラーを出すのはなぜですか?

OSの変更後、アプリを再度有効にしました。それへのシンボリックリンクはもちろん/ var/www/myappにあります。パーミッションを0775(一時的な0777でも)に変更し、所有者をApache:myuser、myuser:Apache、myuser:myuser、Apache:apacheに変更し、SELinuxを無効にした後-十分でした。何も機能せず、いらいらするメッセージが表示されます。

禁止このサーバーにアクセスする権限がありません

エラーログ:

[クライアント127.0.0.1:38050] AH00037:シンボリックリンクが許可されていないか、リンクターゲットにアクセスできません:/ var/www/myapp

私はこの状況に完全に腹を立てており、ほぼ夕方と半夜に無駄になっています:/

/ var/www/myappとその中のすべてのファイルは775で、Apache:apacheが実行されています。

また、httpd、php、およびApacheモジュールを再インストールして、www全体をサーフィンし、何もしませんでした。 :/できるだけ早く助けが必要です!

編集:言及するのを忘れました-/ var/www/myappは/ home/myfolder/projects/myappへのシンボリックリンクです<---これもchmodおよびchownされています。

編集2:

これで、ユーザーとグループをconf/httpd.confに「my user」として追加したので、ホームフォルダーに書き込むことができますsymlinkエラーはなくなりましたが、Apacheは私のユーザーがフォルダーに書き込むことができませんの所有者です...また、conf/httpd.confで私のユーザーとApacheユーザーを混在させ、/ home /.../myappに同様の権限を設定しようとしました。 RedHatディストリビューションを備えた1つの大きなW T F !!私の場合、このように特権が無視されるのは初めてではありません。 :/

編集3: Fedora OSを削除してUBUNTU:Dをインストールすることで問題を解決しました。同じ特権、同じファイル-シンボリックリンクやApache:my_userへの書き込みに問題はありません...取得できません... -_-

2
Mr.TK

この質問に対する答えは、シンボリックリンクが指しているファイル/ディレクトリの所有者がシンボリックリンクを所有することです。

この追加の手順はパッチとして導入されました(Fedoraのみが適用されているため、表示されます)。

Apacheソースを読むと(Web上に見つけることができる答えがないため、これを行う必要がありました。これはそれに最も近いものです。)OPT_SYM_OWNERが犯人であり、これがあなた(と私)を捕らえています。

修正はchown -h myuser:mygroup <the_symlink> どこ myuser:mygroupは宛先ファイル/ディレクトリと同じです。

3
PhillB

Apache自体の内部でシンボリックリンクが有効になっていることを確認します。 Apacheは、パーミッションに問題がない場合でも、必ずしもシンボリックリンクリダイレクトを許可しているわけではありません。

<Directory /var/www/myapp>
    Options +FollowSymLinks
    AllowOverride All
    ...
</Directory>
2
Nate

FollowSymLinksが正しく設定されていると仮定すると、問題は、ホームディレクトリが他のユーザーによるアクセスを許可していないことだと思います( サブディレクトリにアクセスするときに、親ディレクトリの権限が重要ですか? )。これがFedoraのデフォルトです。それ のように見えます Ubuntuのデフォルトはより寛容です、それがそれに切り替えることがうまくいった理由です。

これが事実であると仮定すると、エラーメッセージはほとんどの情報ではありませんが、それも間違いではありません。

ご不便をおかけして申し訳ございませんが、ここで本当に不思議なことが起こっているとは思いませんし、特に悪いこともありません。 Fedoraのデフォルトは、箱から出してすぐに、より安全でプライバシーに敏感です。 (記録としては、SELinuxを有効にしてこれを機能させ、必要に応じて保護を強化することも かなり簡単 です。)

したがって、免責事項:私はFedoraに取り組んでおり、誰もがFedoraを使用できれば素晴らしいと思いますが、使用しなくても大丈夫です。それは大きなLinuxの世界です。ただし、これが...遅かれ早かれ、Ubuntuでこのようなものが見つかりますが、奇妙なエラーメッセージは表示されません。全体の話をします。そして、それを窓から外してArchやopenSUSEや$ flavorofthedayに行ったり、Fedoraに戻ったりすることで問題が解決されるかもしれませんわずかに異なる構成があるためです。しかし、次のそのような問題までどのくらいかかりますか?私はあなたが本当にあなたの仕事を終わらせてあなたのコンピュータを邪魔させたくないことを知っています、しかし結局、怒りそしてすべてを切り替えることはより多くの仕事をもたらすでしょう。

2
mattdm

私はそれをSELinuxからのメッセージで動作させました:

SELinuxは、httpdがディレクトリ*****への読み取りアクセスを妨げています。

*****プラグインcatchall_boolean(89.3信頼度)は******************を提案します

Httpdにユーザーコンテンツの読み取りを許可する場合は、「httpd_read_user_content」ブール値を有効にして、SELinuxにこれを通知する必要があります。

...

行う setsebool -P httpd_read_user_content 1

2
Roger