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

CentOS chmod Linux 権限

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

編集できました!

関連記事

コメント

この記事へのコメントはありません。

カテゴリー

お問い合わせはコチラ!