ファイルのグループ権限の挙動2008年11月27日 00時31分49秒

普段は個人のホームディレクトリ以下で作業していると、グループについて触れる事は少ない。しかし、共同作業をする時に、この動作を知っておかないと困った事になる。

ファイルのグループ属性の動作には、BSD 系と SystemV 系の二通りの動作がある。

BSD 系の動作では、新しく作られたディレクトリは、親のディレクトリと同じ所有者になる。ディレクトリ作成者の所属するグループには関係ないので、共同作業者の /etc/passwd にて所属するグループに関係なく、/etc/group などにより、同じグループにいれば、新しく作られたファイルやディレクトリも共有できる。

それに対し SystemV 系の動作では、新しく作られたファイルやディレクトリは作成者の gid になる。それ故、共同作業者の gid が同じでないと、他の人がファイルを作れなくなる。この問題を回避するのに setgid を設定する必要がある。これは各ディレクトリ毎の属性になる。chmod g+s をやってあるディレクトリ内に作られるファイルは、そのディレクトリのグループを継承する。BSD 系の動作の様に、作成者の gid に依存しなくなる。

BSD 系は FreeBSD を始め、*BSD 系の Unix で、System V 系の動作は Solaris や Linux 等で見られる。