web-dev-qa-db-ja.com

FTPおよびApacheのアクセス許可の構成

FileZillaでアクセスするWebサーバー(Apache2)があります。

私のWebサーバーには、/ var/wwwにバインドしたディレクトリ/ home/admin/wwwがあります。だから私はFTPでそれにアクセスできます。これは完璧に動作します!

しかし、Webサーバーを再起動するたびに、バインドを何度も行う必要があります。これらのマップを常にバインドする必要があることを私のWebサーバーに言うことはできませんか?また、毎回すべての権限をリセットする必要がありますが、何が間違っていますか?

より良い、より安全なソリューション(管理者のホームフォルダーにアクセスできるインターネットに不安を感じる!)は、/にwebrootフォルダーを作成することです

ターミナルタイム!

cd /
Sudo mkdir /webroot
Sudo groupadd webdev
Sudo usermod -a -G webdev yourusername 
Sudo chown www-data:webdev /webroot/

次に、Apache構成の下部にある新しいドキュメントルート/ webrootをApacheにポイントします。これはここで見つけることができます:/etc/Apache2/Apache2.conf

Sudo nano /etc/Apache2/Apache2.conf

保存するにはCTRL-O、慣れていない場合はCTRL-Xでnanoを終了します。

DocumentRoot /var/www//webroot/に置き換えるだけです

Webファイルをwebrootにコピーします。

Sudo /etc/init.d/Apache2 reload

これで、すべての構成がロードされた状態でApacheが再起動されます。

これにより、Apache2が所有するwebrootというディレクトリがルートに作成され、グループ所有者が新しいグループwebdevになり、ユーザーがメンバーに追加されます(グループは置き換えられません!)。これにより、FTP内のファイルを編集できます!

これは、1つのWebサイトのApacheサーバー向けの非常にシンプルなソリューションです。複数のサイトの実行を計画している場合は、より多くの作業が必要です(たとえば、webrootでサイト用に個別のフォルダーを作成)

この利点は、誰かが脆弱性を見つけた場合、ホームフォルダーではなくwebrootフォルダーにロックされることです!また、これ以上ユーザーにサイトの変更を許可する必要がある場合は、Sudo usermod -a -G theirusername webdevを使用してwebdevグループにユーザーを追加できます。

お役に立てれば!

敬具

13
Laice