/var/www をルートとウェブサーバーのみアクセス可能にする

/var/www をルートとウェブサーバーのみアクセス可能にする

私は Web 開発者です。数人のユーザーに自分のマシンへの SSH アクセスを許可しています。

内のファイルにアクセスできないようにしたいのです/var/www/

では、これらのファイルを Web サーバーのみが読み取り可能にし、ルート ユーザーに読み取り/書き込みアクセス権を与えることは可能ですか?

答え1

Apache ユーザーは と呼ばれると仮定しますwww-data。 内のファイルを/var/www/このユーザーだけが読み取り可能にしたい場合は、所有権を与える必要があります。

sudo chown -R www-data /var/www/

ここで、www-data実際にこれらを読み書きできる唯一のユーザーになりたいとします。

sudo chmod -R 700 /var/www/

root権限に関係なく、常にすべてのファイルへの読み取り/書き込みアクセス権があることに注意してください。この設定がよいアイデアかどうかはわかりませんが、私はむしろこれらのSSHユーザーをホームフォルダーにchrootする方がよいと思います。特定のディレクトリにのみアクセスできる SSH ユーザーを作成できますか?

答え2

Web サーバーのユーザー (通常は www-data) に応じて次のようになります。

chown www-data /var/www
chmod -R 700 /var/www

これにより、www-data ユーザーが /var/www ディレクトリの所有者に設定され、所有者のみがディレクトリにアクセスできるようになります。

答え3

ウェブ コンテンツの所有者を root または別のユーザーにすることもできます。これにより、スクリプトまたは他のエントリ ポイント経由で誰かがアクセスした場合に、ウェブ サーバーがコンテンツを上書きするのを防ぐことができます。rootこれらのコマンドの を、コンテンツを所有する任意のユーザーに置き換えます。

chown -R root:www-data /var/www
chmod 2750 /var/www

(root 以外の) ユーザーがコンテンツを維持できるようにするには、userユーザーを www-data グループに追加する必要があります。

adduser user www-data

一部の Web アプリケーションには、動的コンテンツを書き込むディレクトリがいくつかある場合があります。アクセスを許可するには、所有者を www-data に変更するか、グループ書き込みを許可します。

関連情報