私たちはWebアプリケーションを使用して資産管理アプリケーションを作成しましたphp
。このアプリケーションにより、ユーザーは資産(画像や3Dモデルなどのバイナリファイル)を参照、アップロード、名前の変更、および置き換えることができます。
私たちはWindows環境で開発し、すべてがうまく機能しますが、Linuxサーバー(joyent)でホストされている場合は、権限の問題が発生します。以下は環境設定です
パブリックWebルートフォルダはhome/jill/web/public
(webroot)にあります。すべてのアセットはhome/jill/web/public/assets
(アセットルート)とサブフォルダにあります.
資産管理にアクセスする方法のユースケースは次のとおりです。
- FTPプログラムとFTPユーザー(ftpuser)を使用してすべての資産を一括アップロードします。
- すべての資産を一括アップロードするには、webadminユーザー(jill)を使用します。
home/jill/web/public
- 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/