Linuxサーバー:複数ユーザーが使う共有スペースのアクセスコントロ
あるWebスペースのコンテンツを複数人で編集していて、複数ユーザーがサーバーにファイルをUPする必要がある場合等、ファイルの所有者やパーミッションをどう設定するのが最適なのか悩むときがあるので、最適な答えを考えてみた。
(「ユーザー」にはwebサーバーのプロセスも含む)
・ファイル/ディレクトリの所有者は何でも良いが、更新を行う可能性があるユーザーを全て同じグループに参加させる。
またそれらのユーザーのデフォルトのグループを、その共通グループに変更しておく(usermod -g で)
・ファイル/ディレクトリの更新を行う可能性があるプロセスのumaskに、適切な値が設定されるようにしておく
umaskの値は「002」が一番良さそうだ。
(通常、ファイルの場合は6か4、ディレクトリの場合は7か5が設定されるのが良さそうだ。
実行可能ファイルや、完全に隠したいディレクトリ/ファイルの場合は適宜適切な値を都度設定する)
FTPでしかファイルの更新を行わないのであればFTPサーバーの設定で、
シェルログインしてファイルを更新するのであればログインスクリプトの中で、
cgiプログラムがファイルを更新するのであれば、そのプログラム中で、
等)
ごくあたりまえの解決法ですが、これが一番良いようです