
私のホームディレクトリから私の開発サーバーに関するドキュメントを提供したいと思います。これはパーソナルラップトップなので、ほとんどのサーバー/ Webホスティングの状況ではセキュリティについてはあまり気にしません。
次のようになりますhttpd.conf
。
DocumentRoot "/home/myuser/www"
#
# Relax access to content within /var/www.
#
<Directory "/home/myuser/www">
AllowOverride all
# Allow open access:
Require all granted
</Directory>
# Further relax access to the default document root:
<Directory "/home/myuser/www">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
これまではとても良かったので、myuser/www
ディレクトリ内のドキュメントを見ることができますhttp://localhost/
。
しかし、Apacheはディレクトリに書き込むことができず、selinuxセキュリティ警告が表示されます。
apache
私のユーザーをグループに追加し、ディレクトリの権限をmyuser/www
設定しようとしましたが、うまくいきませんでした。755
Apacheがこのディレクトリに書き込むことを許可するにはどうすればよいですか?
編集する:
ディレクトリのグループと権限を変更すると、ファイルが表示されますが、/home/myuser/www/
アプリケーションはApacheがtmpディレクトリに書き込めないと文句を言い、selinuxエラーを発生させます。セキュリティメッセージに提案されている修正は、次のコマンドを実行することですが、私は何も変更せずに行いました。
# semanage fcontext -a -t httpd_sys_rw_content_t 'tmp'
# restorecon -v 'tmp'
答え1
chgrp apache
ホームディレクトリ(およびApacheが書き込み可能にするすべてのファイルとサブディレクトリ)で作業を実行し、そのディレクトリchmod g+w
で作業を実行します。これにより、ディレクトリが7に設定されます。75モード、ファイルサイズは664です。
答え2
httpd_selinux
パッケージに付属のマニュアルページで確認してくださいselinux-policy-doc
。
httpdがホームディレクトリを読み取れるようにするには、httpd_enable_homedirsブール値を有効にする必要があります。デフォルトでは無効になっています。
setsebool -P httpd_enable_homedirs 1
あなたの質問は、/tmp
あなたが正確に何をしたいかによって異なります。デフォルトでは、httpd
Fedoraはプライベートネームスペースを使用しているため、/tmp
これはソフトウェアでは望ましくない可能性があります。あなたのアプリケーションはこれをどのような用途に使用しますか?