Linuxシステムにいくつかのアプリケーションをインストールしようとしているときに問題が発生しました。私が置いた/ var/www/html/xxxディレクトリ内のファイルは書き込み可能ではないと言われています。コマンドchmod 777 xxx
を機能させようとしましたが、アプリケーションを再度開いたときにエラーが残ります。
具体的には、システムにphpFreeChatをインストールしたいので、それらのファイルを/ var/www/html/freechatディレクトリのcd
に置き、chmod 777 data/private
、chmod 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は読み取り不可
この状況は、このアプリケーションのインストールだけでなく、すべてで発生したため、私はこれとかなり混乱しています。間違いは私がしなければなりませんが、それは何ですか?
この問題は、SELinuxをシャットダウンするコマンドsetenforce 0
によって解決されました。
私はなんてばかげている!私はこのことについて考えたことはありません。
とにかくFlimzyとnjdに感謝します。
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を持つようにします。
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内のファイル/ディレクトリのすべてのコンテキストを(再帰的に)デフォルト(変更されたばかり)に設定する」と述べています。
各ディレクトリのアクセス許可を確認すると、次のようになります。
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