0

-

  • PHP Web アプリケーションでは、ログインした管理者が特定のレコードについて Web フォルダーに画像をアップロードおよび削除できるようにする必要があります。

  • MySQL データベースにレコードが作成されると、その特定のレコードの画像を保持するために、PHP mkdir() を使用してパブリック サーバーにもフォルダーが作成されます。

  • 同じアプリケーションの複数のユーザーが存在し、すべてのユーザーが作成中のフォルダーに画像を追加および削除する権限を必要とします。

  • このフォルダは、引き続き FTP 経由でもアクセスできる必要があります。

したがって、全体として、ログインしたユーザーが追加、編集、削除、表示、FTP にアクセスできる必要がありますが、一般の人はアクセスできないと思います。

これにはどのフォルダ権限を使用すればよいですか?

理由は?安全?アクセシビリティ? 編集能力?

ありがとう。よろしく。

4

1 に答える 1

1

Webインターフェースを使用してファイルをアップロードする場合、アップロードディレクトリはapacheユーザーが書き込み可能である必要があります。ファイルとのすべての対話がWebインターフェースを介して行われる場合は、apacheユーザーについて心配するだけで、他のグループはWebアプリケーションを介して認証されます。

フォルダを作成してから、ユーザーとグループがサーバーからファイルにアクセスできるようにする場合は、グループを作成する必要があります。この場合、管理者グループを作成します。

手順:

//make the admin group
$ groupadd admin

// make the folder for uploads
$ sudo mkdir uploads

// make the apache user (apache or www-data) the owner and the group admin
$ chown apache.admin uploads

// give the folder permission using the sticky bit
// this will allow both apache and admin group to edit/add/delete in uploads
$ chmod 7752 uploads

// the sticky bit will maintain the group inside the uploads folder
// try it out
$ su apache
$ cd uploads
$ mkdir test
$ touch newFile.txt

// the new folder and new file should have admin as the group

スティッキービットがないと、アップロードの新しいファイルとフォルダーはapacheとapacheグループによって所有されます。すなわち...chmod775テスト

これで、uploadsフォルダーに新しいフォルダーを作成すると、adminグループに属するユーザーがそれらにftpアクセスできるようになります。

于 2013-01-23T04:29:48.920 に答える