LoginSignup
6
7

More than 5 years have passed since last update.

サーバー上の特定ディレクトリを共同編集可能にする

Last updated at Posted at 2015-03-06

よくわかっていないけど、おそらくこういうことだろうというメモ

やりたいこと

  • 1つのVPSにエンジニア用のアカウントが複数あり、プロジェクトのソースも複数案件分ある。
  • 全てのプロジェクトのソースは、エンジニアであれば誰でも編集可能であり、新規ファイル作成も可能にしたい。

構想

/home
 |- tanaka
 |- kato
 |- tokui
 |- projects <--このディレクトリ以下を共同編集したい
   |- project1 <--WEBシステム1
     |- htdocs
     |- system
   |- project2 <--WEBシステム2
     |- public_html
     |- system
  • 田中さんと加藤さんと徳井さんはエンジニアグループ(techグループ)
  • projectsは共同作業用ユーザー
  • エンジニアがprojects以下にファイルを作成すると、「グループがtechでありグループのパーミッションが書込可」となるとよい
  • ディレクトリを作成したときもそうなるとよい

実現方法

  • /home/projectsディレクトリをtechグループにする
groupadd tech
gpasswd -a tanaka tech
gpasswd -a kato tech
gpasswd -a tokui tech
chgrp tech /home/projects
chmod 775 /home/projects
  • セットユーザIDとやらをセットする(新規ファイルが自動的にtechグループになる)
chmod g+s /home/projects
  • umaskをセットする(新規ファイルが自動的にグループ書込み可になる)
umask 0002

※CentOSではログイン用のユーザーはデフォルトで0002になっているようなのでセット不要な模様。
 デフォルトで0002でない場合は、各ユーザーの.bash_profile等に書いておく。

  • 既にファイルがある場合は全てに適用
chgrp tech -R /home/projects
chmod g+w -R /home/projects
find . -type d -print | xargs chmod g+s

結果

ls -al /home/projects

drwxrwsr-x.  5 projects  tech 4096 Mar  6 18:25 .
drwxr-xr-x. 21 root      root 4096 Mar  6 16:29 ..
drwxrwsr-x.  4 tanaka    tech 4096 Mar  6 16:34 project1
drwxrwsr-x.  2 kato      tech 4096 Mar  6 18:25 project2

テスト

  • ディレクトリを追加してみる
mkdir -p /home/projects/project1/htdocs/img
ls -al /home/projects/project1/htdocs

drwxrwsr-x. 2 kato       tech      4096 Mar  6 19:00 img
  • ファイルを追加してみる
touch /home/projects/project1/htdocs/index.html
ls -al /home/projects/project1/htdocs

drwxrwsr-x. 2 kato       tech      4096 Mar  6 19:00 img
-rw-rw-r--. 1 kato       tech         0 Mar  6 19:04 index.html

これで、techグループのユーザーであればいくらでもソースを変更できます。

おわり

これでやりたいことはできたと思う。
umaskはユーザー毎のようなので、デフォルトが022の場合は少し手順が増えそう。(よくわかってない)

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7