UbuntuサーバーをWebサーバーとして利用したいのですが、設定のベストプラクティスに従うようにします。最適な場所にディレクトリを設定し、そのフォルダに適切なセキュリティを構成する方法を理解したいと思います。サーバーにFTPでファイルをWebフォルダーにプッシュできるようにしたいので、PureFTPdユーザーがWebフォルダー内のファイル/ディレクトリを操作できるようにする方法を理解したいと思います。
ユーザーが/var/www
に直接sftpできるようにサーバーで行ったことは次のとおりです。
Sudo chgrp -R www-data /var/www
Sudo usermod -aG www-data $(whoami)
Sudo chmod -R 775 /var/www/*
Sudo chmod 2775 /var/www
これにより、ユーザーは/ var/wwwとそのすべての子ディレクトリのグループ所有権を持つグループに入れられ、グループ書き込みアクセスを許可するために/ var/wwwのすべてが再帰的に設定され、/ var/wwwディレクトリのsetgidビットが設定されますそのため、後で/ var/wwwの下に作成されるすべてのファイルは、グループを作成者のプライマリグループに設定するのではなく、同じグループ所有権を維持します。
これは非常に一般的な質問です。
明らかに、Webサーバーをrootとして実行したくありません。ただし、Ubuntuのインストールでは既に適切な方法で実行されています。
さらに、Apache Webサイトには、いくつかの ディレクトリを適切に構成するためのヒント があります。
Ftpに関して。ユーザー名とパスワードをプレーンテキストでネットワーク経由で送信しない安全なftpサーバーを使用するようにします。 Ubuntuのヘルプページには そのようなftpサーバーのセットアップ方法のチュートリアル があります。
複数のユーザーがサーバーをWebサーバーとして使用しているUbuntuサーバーだけの場合は、/var/www
ディレクトリを削除します。なぜなら、/var/www
はWebファイルをグローバルに配置する場所だからです。 /etc/skel
ディレクトリを更新し、シンボリックリンクwww -> public
を持つpublic
およびprivate
フォルダーを追加し、/home/<user>/public
を指すようにすべての仮想ホストDocumentRootsを更新します。
/var/www
が複数のユーザーレベルのフォルダーとファイルを配置する場所として表示されません。それが/home/
ディレクトリの設計目的です!パスとディレクトリ構造をきれいに保ちます。