5

私はファイルのパーミッションに関する多くのチュートリアルを読みましたが、彼らが言うのは、例えば「他の人にあなたのファイルを書かせたくない場合は、それをxxxに設定してください...」ということだけです。
しかし、ウェブホストでは、誰が本当に誰ですか?Webサーバー(Apache)とphp、mysql、その他のプログラムだけがあります。「他のユーザー」は存在しません。チュートリアルでは、apacheは「パブリック」と見なされると述べています。しかし、アップロードされたファイルを取得して「ダウンロード」ディレクトリに配置するphpスクリプトがあります。そのディレクトリのアクセス許可を744に設定しました。これは、グループとパブリックが「読み取る」ことのみが可能であり、所有者がフルアクセス権を持っていることを意味します。「public」の「書き込み」権限がないため、アップロードしたファイルがそのディレクトリに転送されないことを期待していました。しかし、ファイルはそこにありました。さらに混乱したのは、ファイルをダウンロードしようとしたときに「禁止」エラーが発生したことです。一般の人が「読み取り」権限を持っていたので、ファイルをダウンロードできると思っていました。

4

1 に答える 1

3

この場合のユーザーは、Web サーバー自体です。Apache は通常、サーバーのファイルシステムに対してファイルを読み書きするときに、ユーザー「apache」または「www-data」として実行されます。静的コンテンツは、サーバーによって読み取り可能である必要があります。アップロード場所は書き込み可能である必要があります。システム上の他のユーザーによっては、Web サーバーを「他の」ユーザーと見なし、Webmaster アカウントを実際のファイル所有者と見なすことができます。

于 2014-11-21T08:51:26.080 に答える