データディレクトリに複数のユーザーが読み書きする方法 - Webアプリのファイルアップロードディレクトリ

データディレクトリに複数のユーザーが読み書きする方法を解説します。

これは、PerlでWebシステム開発を行っている場合に、別々の開発ユーザー起動したWebアプリケーションが、データ保存ディレクトリに、ファイルアップロードを行う場合に、直面する問題です。特定のユーザーだけではなく、複数のユーザーが読み書きできるようにします。

データ保存ディレクトリ以下のファイルすべてに「myapp-group」という所有者グループを設定して、特別なパーミッションSGIDをデータ保存ディレクトリ(トップディレクトリ)に設定することで、新規に作成されるファイルも、同じグループを持たせることができます。

SGIDというのはSet Group IDの略です。ディレクトリに設定することで、ディレクトリ以下のファイルが新規作成された場合に、所有者グループが、トップディレクトリと同じものになります。

データディレクトリに複数のユーザーが読み書きする手順

データディレクトリに複数のユーザーが読み書きする手順です。データディレクトリを「/datadrive」とします。

アプリケーション用のグループの作成

アプリケーション用のグループをgroupaddコマンドで作成します。名前は「myapp-group」とします。

sudo groupadd myapp-group

myapp-groupグループに開発ユーザーを追加

myapp-groupグループにgpasswdコマンドで、開発ユーザーを追加します。

sudo gpasswd -a myapp myapp-group
sudo gpasswd -a yamada myapp-group

データディレクトリ以下にあるファイルの所有者グループを再帰的にmyapp-groupに変更

データディレクトリ以下にあるファイルの所有者グループをchgrpコマンドで再帰的にmyapp-groupに変更

sudo chgrp -R myapp-group /datadrive

グループの書き込み権限を与える

「/datadrive」にグループでの書き込み権限を与えます。

sudo chmod 775 /datadrive

データディレクトリに特別なパーミッションSGIDを設定

データディレクトリに特別なパーミッションSGIDをchmodコマンドで設定します。

sudo chmod g+s /datadrive

lsコマンドで確認するとsが設定されています。

ls -l / | grep datadrive

出力結果の一部です。

drwxr-sr-x   7 myapp myapp-group  115 Jun  3 10:36 /datadrive

これで、複数の開発者が起動するWebアプリケーションによって、アップロードされるファイルのためのデータディレクトリの準備ができました。

グループへの追加の反映は、ユーザーがログインしたときに認識されますので、自分のユーザーが、グループに追加したユーザーである場合は、いったんログアウトして、ログインしてください。

PerlでポータブルなLinuxファイル管理入門

業務に役立つPerl

Perlテキスト処理のエッセンス

ITエンジニアの求人情報など

 ITエンジニアの求人情報・Webサービス・ソフトウェア・スクールなどの情報。