ユーザー権限の問題をどのように処理しますか?

ユーザー権限の問題をどのように処理しますか?

私たちはWebアプリケーションを使用して資産管理アプリケーションを作成しましたphp。このアプリケーションにより、ユーザーは資産(画像や3Dモデルなどのバイナリファイル)を参照、アップロード、名前の変更、および置き換えることができます。

私たちはWindows環境で開発し、すべてがうまく機能しますが、Linuxサーバー(joyent)でホストされている場合は、権限の問題が発生します。以下は環境設定です

パブリックWebルートフォルダはhome/jill/web/public(webroot)にあります。すべてのアセットはhome/jill/web/public/assets(アセットルート)とサブフォルダにあります.

資産管理にアクセスする方法のユースケースは次のとおりです。

  1. FTPプログラムとFTPユーザー(ftpuser)を使用してすべての資産を一括アップロードします。
  2. すべての資産を一括アップロードするには、webadminユーザー(jill)を使用します。home/jill/web/public
  3. Webアプリケーションを使用したリソースのアップロード(デフォルトのWebユーザーはwww)

上記のすべてのユースケースで、最新の修正ファイルでアセットを上書きします。これで、WebルートでホストされているFlashアプリケーション(ゲーム)があり、これらのすべてのリソースにアクセスしてアプリケーションにロードできます。

別のユーザーが元々作成したものとは異なるユーザーIDを使用してファイルを上書きまたは更新しようとすると、権限エラーが発生します。

例:元のFTPユーザーを使用してアップロードしたWebアプリケーションでファイルを上書きするか、その逆を試してください。

すべてのユーザーがwebroot \ assetsの下に作成したファイルまたはディレクトリをすべてのユーザーが変更できるように、この状況をどのように処理できますか?

私はunix / linuxに初めて触れる開発者ですが、これはグループとグループの権限処理に関連していると思いますが、それを設定する方法がわかりません。

ベストアンサー1

以下を試してください。 (これはLubuntuでテストされました)

行くホーム/ルート/ウェブ/公共そして、次のことを行います。 ls -la

そこにあるファイルとフォルダの詳細が表示されます。そのうちの1つが資産です(これは単なる例であり、資産の詳細はさまざまです)。

-rw-r----- 1 user group 9275204 Jun 13 15:27 assets

アイデアは、新しいグループを作成し、それを資産の所有者にし、すべてのユーザーをそのグループに追加することです。

サーバーに新しいグループを作成します。

groupadd assetgroup

新しいグループにユーザーを追加する:

usermod -a -G assetgroup ftpuser
usermod -a -G assetgroup jill
usermod -a -G assetgroup www

所有権を変更して資産フォルダ資産グループ。 (-Rは再帰的変更を意味する)

sudo chgrp -R assetgroup assets/

おすすめ記事