Das Set-Group-ID-Bit, meist setgid oder SGID genannt, hat zwei wichtige Einsatzgebiete. Bei einer ausführbaren regulären Datei kann es die effektive Gruppen-ID des neuen Prozesses ändern. Bei einem Verzeichnis sorgt es dafür, dass neu erstellte Einträge die Gruppe des Verzeichnisses erben, was besonders für gemeinsam bearbeitete Bäume nützlich ist.
Berechtigungen · Lektion 6
Setgid
Erfahre, wie Set-Group-ID ausführbare Zugangsdaten und die Gruppenvererbung in gemeinsam genutzten Verzeichnissen beeinflusst.
Setgid bei ausführbaren Dateien
Eine ausführliche Auflistung kann setgid an der Ausführungsposition der Gruppe anzeigen:
$ ls -l /path/to/program
-rwxr-sr-x 1 root operators 24576 Jan 10 09:30 /path/to/program
Ein kleingeschriebenes s bedeutet, dass sowohl setgid als auch die Gruppenausführungsberechtigung gesetzt sind. Ein großgeschriebenes S bedeutet, dass setgid gesetzt ist, die Gruppenausführungsberechtigung aber fehlt.
Wenn der Kernel dieses Bit bei der Ausführung berücksichtigt, erhält der Prozess eine effektive Gruppen-ID, die sich aus dem Gruppeneigentümer der ausführbaren Datei ableitet. Kontrollen wie das Einhängen mit nosuid können dieses Verhalten unterdrücken. Es darf nicht als allgemeine Garantie über sämtliche Dateitypen und Umgebungen hinweg betrachtet werden.
Welche Zugangsdaten stammen vom Gruppeneigentümer einer ausführbaren Datei, wenn setgid berücksichtigt wird?
Setgid bei Verzeichnissen
Setgid hat bei einem Verzeichnis einen anderen Zweck. Neue Dateien und Unterverzeichnisse erben gewöhnlich die Gruppe des Verzeichnisses statt der Standardgruppe des Erstellers. Unter Linux erben neue Unterverzeichnisse außerdem das setgid-Bit. Dadurch behält ein gemeinsam genutzter Projektbaum eine einheitliche Gruppe.
Setgid selbst gewährt keine Gruppenschreibberechtigung. Der Verzeichnismodus, die Prozess-umask, der angeforderte Erstellungsmodus, Standard-ACLs und andere Kontrollen bestimmen weiterhin den Zugriff.
$ sudo chgrp developers /srv/project
$ sudo chmod g+s /srv/project
$ ls -ld /srv/project
drwxr-sr-x 2 root developers 4096 Jan 10 09:30 /srv/project
Was erbt eine neu erstellte Datei gewöhnlich durch setgid auf /srv/project?
Setgid setzen und entfernen
Setze das Bit symbolisch mit:
$ sudo chmod g+s myfile
Setze es zusammen mit gewöhnlichen Modusbits durch eine führende oktale 2:
$ sudo chmod 2755 myfile
Entferne ausschließlich das besondere Bit mit chmod g-s myfile.
Welchen Wert trägt setgid zur führenden oktalen Ziffer für besondere Bits bei?
Gemeinsam genutzte Verzeichnisse sicher verwenden
Kombiniere für ein gemeinsam genutztes Verzeichnis den beabsichtigten Gruppeneigentümer, setgid und eng ausgewählte Zugriffsbits. Teste die Erstellung als repräsentative Benutzer und prüfe die Ergebnisse mit ls -ld. Mache einen Baum nicht für alle beschreibbar, nur um Probleme bei der gemeinsamen Gruppennutzung zu lösen. Eine eigene Gruppe, eine passende umask oder Standard-ACL und ein setgid-Verzeichnis bieten gewöhnlich eine klarere Kontrolle.
Erhalten Gruppenmitglieder allein durch das Setzen von setgid die Berechtigung, Dateien in einem Verzeichnis zu erstellen?
Lektion abgeschlossen
Sie haben Setgid abgeschlossen
Du kannst nun die Bedeutungen von setgid bei ausführbaren Dateien und Verzeichnissen unterscheiden.
Erkenne setgid an der Ausführungsposition der Gruppe.
Setze setgid bei ausführbaren Dateien mit der effektiven Gruppen-ID in Beziehung.
Verwende setgid bei Verzeichnissen, um das Gruppeneigentum in gemeinsam genutzten Bäumen zu bewahren.
Setze oder entferne das Bit, ohne es mit der gewöhnlichen Schreibberechtigung zu verwechseln.
Lernfortschritt speichern
Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.
Kostenloses Konto erstellen