Startseite > Paket- & Systemverwaltung > setgid

setgid: SGID-Bit verstehen und setzen

setgid ist ein spezielles Berechtigungs-Bit, das auf Dateien oder Verzeichnisse angewendet wird. Wenn es auf ein Verzeichnis angewendet wird, erben alle Dateien und Unterverzeichnisse, die in diesem Verzeichnis erstellt werden, den Gruppeneigentümer des übergeordneten Verzeichnisses. Wenn es auf eine ausführbare Datei angewendet wird, wird die Datei mit der Gruppen-ID des Dateieigentümers ausgeführt, wenn sie gestartet wird. Dies ist nützlich, um die Gruppenberechtigungen in einer gemeinsamen Umgebung zu verwalten oder um sicherzustellen, dass bestimmte Programme mit bestimmten Gruppenberechtigungen ausgeführt werden.

Übersicht

Das SGID-Bit ist eine Art von Dateisystemberechtigung, die sich je nach Datei und Verzeichnis unterschiedlich verhält. Wenn es auf ein Verzeichnis angewendet wird, erben alle neu erstellten Dateien und Unterverzeichnisse in diesem Verzeichnis automatisch den Gruppeneigentümer des übergeordneten Verzeichnisses. Wenn es auf eine ausführbare Datei angewendet wird, wird der Prozess mit der Gruppen-ID des Dateieigentümers ausgeführt, wenn die Datei gestartet wird.

Hauptmerkmale

  • Verzeichnis: Dateien und Unterverzeichnisse, die in diesem Verzeichnis erstellt werden, erben den Gruppeneigentümer des übergeordneten Verzeichnisses.
  • Ausführbare Datei: Der Prozess wird mit der Gruppen-ID des Dateieigentümers ausgeführt, wenn die Datei gestartet wird.
  • Wird mit dem Befehl `chmod` gesetzt und entfernt.

Anwendungsbeispiele

Das SGID-Bit wird mit dem Befehl `chmod` gesetzt. Sie können den numerischen Modus (2xxx) oder den symbolischen Modus (g+s) verwenden.

SGID für Verzeichnis setzen (symbolischer Modus)

sudo chmod g+s /shared_data

Setzt das SGID-Bit für das Verzeichnis `/shared_data`, sodass alle Dateien und Unterverzeichnisse, die in diesem Verzeichnis erstellt werden, den Gruppeneigentümer von `/shared_data` erben.

SGID für Verzeichnis setzen (numerischer Modus)

sudo chmod 2770 /shared_data

Fügt das SGID-Bit (2) zu den bestehenden Berechtigungen (rwxrwx---) hinzu, um sie auf 2770 zu setzen.

SGID für ausführbare Datei setzen

sudo chmod g+s /usr/local/bin/my_tool

Stellt sicher, dass eine bestimmte ausführbare Datei immer mit den Berechtigungen einer bestimmten Gruppe ausgeführt wird. (z. B. `my_tool` wird mit den Berechtigungen von `tool_group` ausgeführt)

SGID-Bit entfernen

sudo chmod g-s /path/to/item

Entfernt das SGID-Bit von einer Datei oder einem Verzeichnis.

SGID-Einstellung überprüfen

ls -l /path/to/item

Verwendet den Befehl `ls -l`, um die Berechtigungen einer Datei oder eines Verzeichnisses zu überprüfen. Wenn an der Position der Gruppenberechtigungen ein 's' steht, ist SGID gesetzt.

Tipps & Hinweise

Das SGID-Bit ist eine leistungsstarke Funktion und sollte mit Vorsicht verwendet werden.

Verwendung von SGID für Verzeichnisse

  • Sehr nützlich für gemeinsame Arbeitsverzeichnisse, in denen mehrere Benutzer Dateien unter derselben Gruppe erstellen müssen.
  • Kann die Anzahl der Berechtigungsprobleme reduzieren, indem der Gruppeneigentümer neu erstellter Dateien konsistent gehalten wird.

Vorsichtsmaßnahmen bei SGID für ausführbare Dateien

  • Das Setzen von SGID für ausführbare Dateien kann zu Sicherheitslücken führen und sollte daher mit Bedacht eingesetzt werden.
  • Sollte nur auf vertrauenswürdige und sicherheitsgeprüfte ausführbare Dateien angewendet werden.

Interaktion mit umask

Wenn eine Datei in einem Verzeichnis mit gesetztem SGID-Bit erstellt wird, wird auch die `umask`-Einstellung berücksichtigt. `umask` beschränkt die Standardberechtigungen für neu erstellte Dateien, daher sollte sie zusammen mit SGID korrekt konfiguriert werden.


Gleiche Kategorie Befehle