web-dev-qa-db-ja.com

chmodコマンドの後、ファイルは/ var / www / htmlにまだ書き込みできません

Linuxシステムにいくつかのアプリケーションをインストールしようとしているときに問題が発生しました。私が置いた/ var/www/html/xxxディレクトリ内のファイルは書き込み可能ではないと言われています。コマンドchmod 777 xxxを機能させようとしましたが、アプリケーションを再度開いたときにエラーが残ります。

具体的には、システムにphpFreeChatをインストールしたいので、それらのファイルを/ var/www/html/freechatディレクトリのcdに置き、chmod 777 data/privatechmod 777 data/publicと入力しました。バッシュで。 list -al dataの結果は次のとおりです。

drwxr-xr-x.  4 root root 4096  Jun 17 15:07 .
drwxr-xr-x. 13 root root 4096  Jun 17 15:22 ..
drwxrwxrwx.  2 root root 4096  Jun 17 15:07 private
drwxrwxrwx.  3 root root 4096  Jun 17 15:07 public

ブラウザにhttp://localhost/freechatと入力するまで、これらはすべて問題ないように思えました。結果は次のとおりです。

phpFreeChatを初期化できません。次のエラーを修正してください。

/var/www/html/freechat/src/../data/privateは書き込み可能ではありません/var/www/html/freechat/src/../data/private/cacheを作成できません/ var/www/html /freechat/src/../data/private/cacheは書き込み可能ではありません/var/www/html/freechat/src/../data/private/cacheは読み取り可能ではありません/ var/www/html/freechat/srcを作成できません/../data/public/themes/defaultは/var/www/html/freechat/src/../data/public/themes/default/var/www/html/freechat/src/../data/を作成できませんprivate/chatを作成できません/var/www/html/freechat/src/../data/private/chatは書き込み可能ではありません/var/www/html/freechat/src/../data/private/chat is読み取り不可/var/www/html/freechat/src/../data/private/chat/s_d0ba868e1391b6c0d897996049a68adaを作成できません/var/www/html/freechat/src/../data/private/chat/s_d0ba868e1391b6c0d897996049a68ada is書き込み不可/var/www/html/freechat/src/../data/private/chat/s_d0ba868e1391b6c0d897996049a68adaは読み取り不可

この状況は、このアプリケーションのインストールだけでなく、すべてで発生したため、私はこれとかなり混乱しています。間違いは私がしなければなりませんが、それは何ですか?

2
lastland

この問題は、SELinuxをシャットダウンするコマンドsetenforce 0によって解決されました。

私はなんてばかげている!私はこのことについて考えたことはありません。

とにかくFlimzyとnjdに感謝します。

2
lastland

Data/privateおよびdata/publicに含まれるすべてのファイルとサブディレクトリに影響を与えるには、再帰的なchmodを実行する必要があります。

chmod -R 777 /var/www/html/freechat/private
chmod -R 777 /var/www/html/freechat/public

さて、そうは言っても、あなたはすべきです ない モード777を使用している。特にあなた以外の誰かがそのサーバーにログインアカウントを持っている場合。 777は、ワールドの読み取り、書き込み、および実行可能ファイルを意味します。基本的に、システム上のすべてのユーザーは、これらのファイルの読み取り、書き込み、削除、またはその他の方法で混乱する可能性があります。

少なくとも、これをモード774に変更する必要があります。つまり、ユーザーとグループ(現時点では両方ともroot)のみがファイルを書き込むことができ、すべてのユーザーがファイルを読み取ることができます。

理想的には、ファイルをすべて、freechatソフトウェアを実行する同じ非rootユーザーが所有するようにし、そのユーザー/グループに読み取り/書き込み権限のみを付与します。

少なくとも、モードを770に変更して、rootユーザーとrootグループのみがaccを持つようにします。

0
Flimzy

SEを殺さずにこれを行う適切な方法はこれを行うことです

semanage fcontext -a -t httpd_sys_rw_content_t '/ var/www/html/freechat/data(/.*)'

restorecon -R/var/www/html/freechat/data簡単な説明:

最初のビットは、「/ var/www/html/freechat/dataで始まるすべてのものにデフォルトのコンテキスト「httpd_sys_rw_content_t」が必要です」と述べています。

もう1つは、「httpd_sys_rw_content_t内のファイル/ディレクトリのすべてのコンテキストを(再帰的に)デフォルト(変更されたばかり)に設定する」と述べています。

0
KJ4IPS

各ディレクトリのアクセス許可を確認すると、次のようになります。

ls -ld / /var /var/www /var/www/html /var/www/html/freechat

最初の列に注意してください。次のように始まる行が表示されます。

drwxr-xr-x  

少なくとも、最初の列の最後にxがあるはずです。これがないと、Webサーバーはfreechatディレクトリのコンテンツにアクセスできません。

だからあなたはする必要があるかもしれません

chmod o+x /var/www/html

そしてさえ

chmod o+x /var/www
0
njd