FTPおよびApache権限の問題


10

どのユーザーが私のwwwディレクトリを所有する必要があるかについて問題があります-ftpまたはapache?ftpユーザーに設定すると、ユーザーはファイルを追加、削除、および簡単に変更できますが、phpファイルシステムアクションでは、アクセス許可拒否エラーが発生します(もちろん、ユーザーがapacheである必要があるため)。ただし、wwwディレクトリがApacheに依存している場合、ftpuserはファイルの変更や削除などの一部のアクションを実行できません。同様の問題が発生したことはありますか?修正は何ですか?ありがとう

回答:


12

これがグループの目的です。

ftpユーザーをapacheグループに追加でき、その逆も可能です。または、さらに良いことに、この目的のために特別に作成した3番目のグループに追加することもできます。

例えば

#groupadd mygroup
#useradd -G mygroup ftp
#useradd -G mygroup apache
#chown -R:mygroup / var / www
#chmod -R g + rw / var / www

これらのコマンドは次のことを行います。

  1. 新しいグループ「mygroup」を作成します
  2. ftpユーザーをmygroupに追加します
  3. Apacheユーザーをmygroupに追加します
  4. / var / www /のコンテンツに対するグループ所有権をmygroupに再帰的に付与します
  5. / var / www /のコンテンツへの読み取りおよび書き込み権限をグループに再帰的に付与します

将来追加されるファイルが 'mygroup'グループに属し、Apacheとftpの両方がそれらのファイルを読み書きするための適切な権限を持っていることを確認する必要があるだけです。


3
find /var/www -type d -print0 | xargs -0 chmod g+s /var/www」をumaskの002と組み合わせると、/ var / www内の新しいファイルとディレクトリが適切なグループとグループにr / wアクセス権を持つ権限を確実に継承します。多くのLinuxディストリビューションでは、デフォルトでumaskが002に設定されています(デフォルトでは、すべての新しいユーザーに対して新しいグループが作成されます)
freiheit

この答えは完璧に機能します!しかし、私はユーザーがまだ外部の他のすべてのディレクトリを表示できるという問題を抱えていますvar/wwwが、これを制限する方法はありますか?
maxisme 2015

3
ユーザーが既に存在する場合(CentOS 7上)、2行目と3行目は機能しません。この場合、usermodegを使用してくださいusermod -G mygroup ftp
ニック

シンプルで一目瞭然、わかりやすい!パーフェクト!ありがとう、@ hobodave!
GTodorov 2016年

4

ほとんどのコンテンツは、Apache以外のユーザーが所有している必要があります。FTPを使用してコンテンツを更新すると仮定すると、すべてのファイルをftp:apacheが所有するように設定できます。FTPではなくSFTPにSCPを使用することをお勧めします。ファイルには権限644または640、ディレクトリ権限755または750が必要です。

ファイルとディレクトリの場合、アプリケーションはグループ書き込みアクセスを追加するために書き込む必要があります。


0

サーバー上のフォルダーを別の名前でコピーするビルドされたphpページで同様の問題がありました。PHPセーフモードをオフにすることで修正しました。


2
PHPセーフモードは、理由があります。それをオフにすることは全く良い考えではありません。
user9517
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.