古いラップトップのUbuntu Server 12.04 LTSでApache2を実行しています。 PHP(およびlinux)の学習に役立つWebサーバーとして機能するのは、ローカルネットワーク上です。
/ var/wwwフォルダー(ApacheのWebページが格納されているフォルダー)のデフォルトの所有者はwww-dataです。所有者をwww-dataに設定すると、ftpを介してそのフォルダーにファイル/フォルダーをコピーできません。/var/wwwフォルダーの所有者をjames(ftpユーザー)に変更すると、ftpを介してファイルを移動できますが、Apacheにはページまたはサブフォルダーを表示するアクセス権がありません。
Ftpユーザーjamesとapacheのアクセスを許可するには、正しい所有者は何をすべきですか?
james:james
が所有するように設定することをお勧めします。
または、root:root
のままにして、そこにファイルを展開するすべての人のためにSudo
を放棄することもできますが、/ var/wwwディレクトリで直接作業している場合(他の場所で作業してそこにファイルをプッシュするのではなく) )これは便利ではないかもしれませんし、FTPでも動作しません。
www-data
ユーザーが読み取りアクセス権を持っている限り、/ var/wwwの所有者を好きなものに設定できます。これを実現するには、アクセス許可を設定して、デフォルトでワールドリードアクセスを許可します。
デフォルトでは、それはroot:root
によって所有されています(-notwww-data
質問で述べているように)。
セキュリティのために、notは、www-data
が所有するように設定することをお勧めします。 www-data
は、cannot任意のファイルに書き込み、読み取りのみが可能な非特権アカウントを対象としています。
はい、ときどきwww-data
に特定のファイルへの書き込み許可を与える必要がある場合がありますが、セキュリティのためにこれを特定のファイルに厳密に制限し、そのようなファイルが実行可能でないことを確認するなどの予防措置を講じる必要がありますWebサーバーによるスクリプト(つまり、PHPまたはCGIファイルとして解釈される可能性のある場所にありません)など。
セキュリティのために、ファイルのアクセス権を誰でも書き込み可能(たとえば777)に設定することは、偶数悪いアイデアです。 www-data
などの非特権ユーザーは、このディレクトリ内のファイルにnotを書き込むことができます。書き込みアクセスが必要なのは、実際にそこにファイルを書き込んでいる人だけです。
/ var/wwwディレクトリは、あなたが好きなことを行うためのものです。ファイルを編集するアカウントに所有権を設定するのは理にかなっています。複数の人がいる場合は、この目的でグループを作成できますが、この場合は自分だけです。
注:グループを作成する場合は、新しいグループを作成してください。 notは、www-data
グループを再利用します。これは、ファイルへの書き込みアクセス権のない非特権グループであるためです(上記で説明したとおり)。
www-data
によって所有されるように設定したり、与えるためにwww-data
グループに人々を追加したりするなど、非常に多くの人がbadセキュリティプラクティスを採用することをお勧めしますそのグループ編集権限、または/ var/wwwを世界書き込み可能に設定(例:777)。これらのいずれかを行うことにより、重大なセキュリティ問題に直面する可能性があります。Sudo chown -R yourname:www-data /var/www/public_html/
およびSudo chmod -R g+w /var/www/public_html/
で自分を所有者、www-dataをグループにし、自分自身をファイルの所有者に設定することが理想的な許可です。ディレクトリとユーザー名を適切に変更してください。ファイルを書くことができ、Apacheプロセスが妨げられることはありません。 OPは練習目的でApacheのローカルインスタンスを実行しており、書き込みアクセスを必要とする多くのスクリプトまたはwordpressなどのオープンソーススクリプトを使用するため、これを提案しています。ここでは、ローカルサーバーがパブリックIPを使用しないため、セキュリティは最重要事項ではありません。スクリプトのインストール、コピー、および実行の容易さは非常に重要です。 OPは、サーバーの管理ではなく、PHPの学習に集中できます。