ウェブサイトの作り方:
Webサイトファイルが別のコンピュータから圧縮フォルダにコピーされました。
WEBSITE.tar.gz
解凍し、コンテンツを/var/html/www
新しいWebサーバーに移動し、その結果ファイルの場所は次のようになります。
/var/html/www/index.html
/var/html/www/css/styles.css
/var/html/www/img/photo.jpeg
ファイルとディレクトリに対する権限が以前のコンピュータとの違いを引き起こしていたため、権限をすばやく変更できるソリューションを調査して見つけました。
sudo chmod -R u+rwX,go+rX,go-w /var/www/html/*
ファイルの権限を確認した結果、期待どおりに表示されます。
cd /var/www/html
ls -a -l
drwxr-xr-x. 2 root root size month day hour css
drwxr-xr-x. 2 root root size month day hour img
-rw-r--r--. 1 root root size month day hour index.html
cd /var/www/html/img
ls -a -l
-rw-r--r--. 1 root root size month day hour photo.jpeg
cd /var/www/html/css
ls -a -l
-rw-r--r--. 1 root root size month day hour styles.css
質問:
サイトのページにアクセスしようとすると、次のメッセージが表示されます。
アクセス禁止このサーバーの/index.htmlにアクセスする権限がありません。
それから実験をしました。
sudo mv index.html index.html.backup
sudo cp index.html.backup index.html
これでページが正しく読み込まれますが、画像とスタイルは表示されません。したがって、コピープロセスが完了すると、Webサイトに表示したい画像とスタイルが得られます。
sudo mv css css.backup
sudo cp css.backup css
sudo mv img img.backup
sudo cp img.backup img
動作しますが、説明は何ですか?私はこれを理解したくないファイルをコピーするだけでなく、問題を解決する「一般的な」方法が何であるかを知りたいです。
答え1
LinuxにGNU-coreutilsを含めるにはls
、モードビットの終わりにある点は、SELinux「コンテキスト」が適用されることを示します。- 詳細を表示するにはls [-l] -Z
(または)を使用してください。 - そして(最近)RedHat / CentOSは、SELinuxがデフォルトでファイルを含むさまざまなリソースへのアクセスを制限することを許可します。--context
SELinux機能を使用してアクセスを制御する必要がない限り、最も簡単な方法は[sudo] restorecon [-R]
ファイルからそれらを無視することです。man restorecon
SELinux を無効にする方法をご覧ください。man setenforce