web-dev-qa-db-ja.com

アップロードされたファイルはApacheの許可を上書きできますか?

リベラルアーツ専攻にWeb開発コースを教えています。Webサーバー(Ubuntu Apache)は私のオフィスにあります。各学期の初めに、生徒ごとにpublic_htmlディレクトリを作成し、ファイルが正しく提供されるようにアクセス許可を再帰的に設定します。

時々、生徒はアップロードしたファイルのパーミッションの問題を報告します。 Filezillaでパーミッションを調整することでこれを修正するのは十分簡単ですが、私は常にこの問題の明らかに矛盾した性質について疑問に思っていました。

考えられる説明1.アカウントを作成するときに失敗し、実際にアクセス許可を再帰的に設定することを覚えていませんでした。

考えられる説明2.アップロードされたファイルには、サーバーに設定したアクセス許可を上書きする特定のアクセス許可が既に添付されています。

Webサーバーについて私が理解していると思うすべてに基づいて、最初のオプションははるかに可能性が高いようです。可能な説明2は理論的にも可能ですか?

ありがとう!

2
Aaron Delwiche

"オプション1。"

スクリプトを作成します。何かのようなもの

create_account <student name>

うまくいくでしょう。スクリプトでディレクトリを作成し、権限が正しいことを確認します。多かれ少なかれ、そのようなもの:

mkdir -p ~$1/public_html/{js,css,images}
chown -R $1:www-data ~$1/public_html

同時に学生アカウントを作成することもできます。 (user_add)

私のサンプルでは、​​<student name>が1つのWord(スペースまたは特殊文字なし)であると想定していることに注意してください。

"オプション2。"

FTPツールであるFilezillaに言及しています。

ほとんどのFTPツールには、所有権と権限を変更するために使用できるCHOWNおよびCHMOD命令があります。

ユーザーが移行先サーバーで高いアクセス許可を持っていない場合、CHOWNは失敗します。

CHMOD命令は成功し、たとえば書き込み権限を削除する場合があります。

どちらの方法でも、ファイルのユーザー/所有者は、別のCHMODで許可を変更できます。 Filezillaがそのようなものをサポートしているかどうかはわかりませんが、可能性はあります。また、特にファイルがMS-Windowsシステムからのものである場合、CHMODが自動的に適用されるかどうかもわかりません。

この「オプション」(実際には「ケース」)に適切に答えるには、完璧なスクリプトを実行した後に問題を再現できるかどうかを調べる必要があります。まず、スクリプトを修正してから再試行してください。

サイドノート

FTPは安全とは見なされません。SSHははるかに安全です。 SSHで動作するSFTPがあり、少なくともそれを使用する必要があります。指定しないので、間違ったプロトコルを使用しているかどうかはわかりません。

1
Alexis Wilke