setgid Bit bei Verzeichnissen

Bei ausführbaren Dateien kennt man ja das setuid und das setgid Bit, aber auch bei Verzeichnissen kann es eingesetzt werden. Das gehört allerdings auch zu den Sachen, die ich alle paar Wochen wieder vergesse…

Normalerweise gehören Dateien, welche ein User schreibt, ihm und seiner primären Gruppe; möchte man aber, dass Dateien in einem Verzeichnis bei der Erstellung der Gruppe gehören, der das Verzeichnis schon gehört, so kann man einfach das setgid Bit setzen. Praktisch kann das z.B. bei Verzeichnissen für Arbeitsgruppen sein.

Das ganze sieht dann so aus:

user1@sinclair ~/testdir $ id
uid=1005(user1) gid=1005(user1) groups=1005(user1),1006(group1)
user1@sinclair ~/testdir $ ls -al
total 0
drwxr-xr-x 2 user1 group1 48 Feb 20 15:51 .
drwxr-xr-x 4 user1 user1 216 Feb 20 15:48 ..
user1@sinclair ~/testdir $ touch foo
user1@sinclair ~/testdir $ ls -al
total 0
drwxr-xr-x 2 user1 group1 72 Feb 20 15:52 .
drwxr-xr-x 4 user1 user1 216 Feb 20 15:48 ..
-rw-r–r– 1 user1 user1 0 Feb 20 15:52 foo
user1@sinclair ~/testdir $ chmod g+s .
user1@sinclair ~/testdir $ touch bar
user1@sinclair ~/testdir $ ls -al
total 0
drwxr-sr-x 2 user1 group1 96 Feb 20 15:52 .
drwxr-xr-x 4 user1 user1 216 Feb 20 15:48 ..
-rw-r–r– 1 user1 group1 0 Feb 20 15:52 bar
-rw-r–r– 1 user1 user1 0 Feb 20 15:52 foo