フォルダ権限の問題

フォルダ権限の問題

現在、Ubuntu 14 Linuxサーバーを実行しています。このサーバーは私のウェブサイトの不動産イメージのCDNとして機能します。私はPHPイメージバッチスクリプトを再生成するスクリプトを生成するためにupstartを使用しました。イメージバッチスクリプトとすべてがうまく実行されています。データベースに接続し、新しいプロパティを選択し、イメージ用のディレクトリを作成し、期待どおりにイメージをダウンロードします。

私が経験している問題は、PHPファイルがデフォルトでルートによって呼び出されるため(サービスとして実行されるため)、生成されたすべての新しいイメージディレクトリは、私のApacheUser:ApacheGroupではなくルートによって所有されることです。

主な問題は、何らかの理由で画像のダウンロードが途中で停止し、すべての画像をインポートできない場合は、フォルダがルートApacheではなくルートに所有されているため、戻って残りの画像をダウンロードできないことです。ユーザー。

私がすでに行ったこと:

  1. chown -R $user:www-data /var/www/images.domain.com/
  2. chmod g+s /var/www/images.domain.com
  3. setfacl -Rdm d:www-data:rx /var/www/images.domain.com/

私が持っているすべてのものから、スクリプトで生成されたすべての新しいファイル/フォルダが私のApacheユーザーとグループの所有である必要があります。

しかし、私が知っている限り、それは本当ではありません。 /var/www/images.domain.com の下のフォルダにすべての種類のファイルをアップロードすると、そのファイルは FTP ユーザーが所有し、グループも FTP ユーザーに設定されます。私のFTPユーザーとグループはデフォルトでApacheと同じです。

デフォルトでは、rootとして実行できるスクリプトの場合でも、デフォルトで/ var / www / images.domain.comディレクトリの下のすべてのファイル/フォルダを$ user:www-dataが所有することを望みます。

ベストアンサー1

わかりましたので、私は私の問題を解決したと思います。

Upstartスクリプトを使用してPHPスクリプトをトリガーして再生成する場合は、Upstartスクリプトに以下を追加して特定のユーザー/グループとして実行できます。

setuid $user setgid $group

ここで、$user と $group は、スクリプトを実行する特定のユーザーとグループの名前です。

今私のイメージディレクトリは適切な所有権で作成されています。

おすすめ記事