複数のユーザ(全員がmygroupに属する)がファイルを作成したり編集したりできる共有ディレクトリを作成したいと思います。このディレクトリとサブディレクトリ内のすべてのファイルが mygroup に属するようにしたい
既存のファイルをchgrp
を使ってグループmygroupに変更しましたが、新しいファイルが作成されても、ユーザのプライマリグループに属しています。新しいファイルがグループに属していることを確認する方法はありますか?
73 justintime 2011-05-01
ベストアンサー
SetGIDビットを設定したい
chmod g+s dir
ディレクトリ内に作成されたすべての新規ファイルには、ディレクトリのグループが設定されます
スーパーユーザーのブログ記事で、スティッキービットなどLinuxのパーミッションビットについて解説していました
しかし、SetGIDは全く別のゲームです。ディレクトリに SetGID ビットが設定されていて、そのディレクトリ内にファイルが作成された場合、ファイルのグループの所有権は自動的にそのディレクトリのグループに変更されます
115 lesmana 2011-05-01
フォルダにsetgid
許可フラグを設定する
chmod g+s dirname
12 Daniel Beck 2011-05-01
フォルダのグループが自分のグループと異なる場合は、chmodをrootとして実行する必要があるかもしれませんが、これを行う必要があることを示すエラーは発生しません
without sudo
$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar 9 10:44 dir
$ chmod g+s dir # no errors
$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar 9 10:44 dir # but nothing changed
$ touch dir/nosudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar 9 10:51 nosudo # and the group is set wrong
with sudo
$ sudo chmod g+s dir
$ ls -ld dir
drwxrwsr-x 2 luke testgroup 4096 Mar 9 10:44 dir # the setgid bit is now on
$ touch dir/withsudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar 9 10:51 nosudo
-rw-rw-r-- 1 luke testgroup 0 Mar 9 10:51 withsudo # and the group is set right
12 LukePH 2016-03-09