menu
  1. HOME
  2. News & Blog
  3. CentOS
  4. linuxで複数人がひとつのフォルダ内で編集するときはchmod g+s

News & Blogニュース&ブログ

2014.06.24

linuxで複数人がひとつのフォルダ内で編集するときはchmod g+s

NKJ56_commandmba500   linuxで複数人のユーザーがひとつのフォルダを共有して作業するときに、他人が作成したフォルダやファイルを見ることはできるが編集できない!ことありませんでしょうか?? そのため、私も毎回、rootでログインしなおして、権限を変えていましたが面倒になってきたので、何か方法がないかと思い、chmod g+s が便利だったので、その使い方をまとめます。

ユーザー作成後にapacheグループに所属させる

OOK82_konoshiryoudouomou20131223500 usera ユーザーを作成して、apacheグループに所属させます。
$ adduser usera
$ usermod -G apache usera
$ ld usera
uid=515(usera) gid=515(usera) groups=515(usera),48(apache)
同様にuserb ユーザーを作成して、apacheグループに所属させます。
$ adduser userb
$ usermod -G apache userb
$ ld userb
uid=516(userb) gid=516(userb) groups=516(userb),48(apache)

共通フォルダの権限をchmod g+sにして解決!

共通フォルダ /home/apache、/home/apache/www を作成して、所有者、グループ名をapache、apacheとします。
$ mkdir /home/apache/
$ mkdir /home/apache/www
$ cd /home
$ find ./apache -type d -print | xargs chown -R apache.apache ← /home/apache 以下にあるフォルダのみを再帰的にapache.apacheにする
最後に肝心の、chmod g+s を実行します。
$ chmod g+s /home/apache
$ ls -al /home/apache
drwxrwsr-x  7 apache apache /home/apache

実験をしてみる!

OZP73_okusuridasimasyouka20140321500 useraでログインして、作成した/home/apache/wwwフォルダ内でフォルダaaaを作成して、aaaフォルダ内にaaa.txtを作成してみます。 ファルダaaaの権限が「drwxrwsr-x」となっており、グループもuseraではなく「apache」であることを確認します。作成したaaa.txtのグループ所有者もuseraではなく「apache」になっていることも確認します。
$ su - usera
$ cd /home/apache/www
$ mkdir aaa
$ ls -al aaa
drwxrwsr-x 31 usera apache 4096 Jun 24 09:23 aaa
$ cd /home/apache/www/aaa
$ touch aaa.txt
$ ls -al aaa.txt
-rw-rw-r-- 1 usera apache 0 Jun 24 09:24 aaa.txt
g+s はそのグループの所有者が下位ファイルおよびフォルダ、下位の下位の・・・に継承されるための権限設定だと分かります。 userbでログインしなおして、userbでログインしなおしし、/home/apache/www/aaa/aaa.txtに対して、編集してみる。
$ exit ← useraをログアウトする
$ su - userb ← userbにログインする
$ cd /home/apache/www/aaa
$ vi aaa.txt
編集できました!

お気軽にご相談ください

株式会社アルベではIT、Webを使って皆様の課題解決のお手伝いをしています。
下記のようなお悩みを持つ方は、是非お気軽にご相談ください。

お問い合わせ