web-dev-qa-db-ja.com

アップロードディレクトリの所有者は `www-data`ですが、これによりPHPスクリプトを介したFTPアクセスが妨げられます

Apacheへの書き込みアクセスを許可するには、サイトのアップロードフォルダーにchown www-data:www-data /var/www/mysite/uploadsする必要がありました。これにより、PHPスクリプトのunlink()を介してフォルダーからファイルを削除できます。

残念ながら、これにより、FTP関数を使用する別のPHPスクリプトが機能しなくなります。これは、FTPユーザーがmikeであり、アップロードディレクトリがwww-dataによって所有されているためだと思います。 、mikeはアクセスできません。

グループwww-datamikeを追加しましたが、これで問題が解決しません。

PHPのunlink()関数を使用したファイルの削除に加えて、PHP FTP関数を機能させる方法について誰かにアドバイスしてもらえますか?

2
Mike Moore

そのため、ファイルを削除するには「書き込み」権限が必要です。ここにはいくつかのオプションがあります。

  1. chwon/var/www/mysite/uploads to www-data:mike and chmod to 775(rwxrwxr-x)
  2. Ftp-writeグループを作成し、/ var/www/mysite/uploadsをwww-data:ftp-writeに、chmodを775にchownします。
  3. 775(rwxrwxr-x)にchmodし、www-dataグループの一部としてマイクを残します
  4. setfacl -m user:mike:rwxを使用してマイク用のフォルダにACLを設定します
  5. Ftp-writeグループを作成し、mikeとグループ(およびsetfacl -m group:<ftp_group>:rwxでこれらの権限を必要とする他のユーザー)を追加します。
6
Zypher

ここで問題を解決するには、ファイルシステムのアクセス許可で十分です。アップロードディレクトリでのみchmodo + rwのようなものを試してください。 chmodコマンドは、「www-dataグループに属していない人に読み取りおよび書き込み権限を与える」と効果的に言います。

ただし、長期的な修正は、FTPを呼び出すスクリプトにサービスアカウントを使用し、その特定のサービスアカウントをwww-dataにバンドルすることです。

0
Tony