Website-Suche

SetUID, SetGID und Sticky Bits in Linux-Dateiberechtigungen


Die Dateiberechtigung in einer Linux-Umgebung bietet dem Eigentümer oder Administratoren Berechtigungen zum Ausführen von Programmen oder Anwendungen. Berechtigungen werden für die Dateien oder Verzeichnisse mithilfe der Befehle chmod und chown mit Lese-, Schreib- und Ausführungsnotationen festgelegt. Für ausführbare Dateien oder Verzeichnisse werden spezielle Berechtigungen wie setuid, setgid und Sticky Bits initiiert; Der Benutzer muss beim Festlegen dieser speziellen Berechtigungen mehr Aufmerksamkeit auf sich ziehen, da sie möglicherweise ein Sicherheitsrisiko für alle anderen Benutzer darstellen. Jede in den Verzeichnissen vorhandene Datei hat eine Benutzer-ID, die als UID bezeichnet wird, und eine Gruppen-ID, die als GID bezeichnet wird und vom Eigentümer der Datei angegeben wird. Um einen Prozess auszuführen, werden sowohl UID als auch GID mit dem autorisierten Benutzer verglichen, um Sicherheitsrisiken zu vermeiden. Um das Festlegen von UID, GID und einem Sticky Bit (spezielle Dateiberechtigungen) besser zu verstehen, sollte man über ein gewisses Maß an Kenntnissen über grundlegende Linux-Dateiberechtigungen verfügen.

SetUID

Wenn SetUID festgelegt ist, wird das Programm mit den vom Eigentümer der Datei festgelegten Berechtigungen ausgeführt. Es wird nicht mit dem Benutzer ausgeführt, der es gerade verarbeitet. Diese SetUID kann vom Besitzer der Anwendung mit dem Befehl chmod oder mit Root-Zugriff geändert werden. Stellen Sie sich ein Beispiel vor: Wenn der Benutzer eine Datei ausführt, für die SetUID aktiviert ist, wird die Datei mit den vordefinierten Root-Berechtigungen und nicht mit den Benutzerberechtigungen ausgeführt.

  • Mit dem Befehl ls können wir herausfinden, ob setuid aktiviert ist

  • ls -l /user/bin/passwd

  • Der obige Befehl würde zurückkehren

  • -rwsr-xr-x root root 34487 15. Mai 20:22 /user/bin/passwd

  • Beachten Sie, dass in der Dateiberechtigung oben das Kleinbuchstabe „s“ festgelegt ist, das das für den Kennwortbefehl festgelegte SetUID-Bit definiert. Die UID dieser ausführbaren Datei wurde vom Eigentümer der Datei festgelegt.

  • Der Besitzer der Datei kann die folgenden Befehle verwenden, um die UID für die benötigten Dateien festzulegen

  • chmod u+s Dateiname

  • Um die bereits festgelegte UID zu deaktivieren, verwenden Sie die folgenden Befehle für die ausführbaren Dateien

  • chmod u-s Dateiname

GID festlegen

Die SetGID-Berechtigung gehört zu der Gruppe von Dateien, die sich in einem Verzeichnis befinden. Diese Berechtigung ist für alle ausführbaren Dateien und deren Verzeichnisse aktiviert. Wenn SetGID für ein Verzeichnis aktiviert ist, gehören die darin enthaltenen Dateien zu der Gruppe, in der sich das Verzeichnis befindet, und nicht zu den Benutzern, die es ausführen. Basierend auf den Berechtigungen, die den Benutzern zum Schreiben und Ausführen in der Gruppe erteilt werden, können sie Dateien im Verzeichnis erstellen und darauf zugreifen.

  • Für den angegebenen Dateinamen ist die GID festgelegt, was im Abschnitt „Gruppenberechtigung“ des Befehls zu sehen ist

  • -rwxrwsr-x root root 2433 15. Mai 20:22 Dateiname

  • Verwenden Sie die folgenden Befehle, um die GID für die benötigten Dateien festzulegen

  • chmod g+s Dateiname

  • Um die bereits festgelegte UID zu deaktivieren, verwenden Sie die folgenden Befehle für die ausführbaren Dateien.

  • chmod g-s Dateiname

Berechtigungen wie SetUID und SetGID stellen größere Sicherheitsbedrohungen dar und ausführbare Dateien, für die diese Berechtigungen vom Eigentümer festgelegt wurden, können vom Angreifer verfolgt werden, wenn er Zugriff auf das Stammverzeichnis erhält. Der Administrator oder der Eigentümer der Gruppe muss regelmäßig überwachen, um verdächtige Aktivitätsänderungen in den Dateiberechtigungen zu erkennen.

Klebrige Teile

Für die Dateien im Verzeichnis werden Sticky-Bits bereitgestellt. Wenn es für ein Verzeichnis festgelegt ist, kann nur der Besitzer der Datei oder des Verzeichnisses die Datei entfernen oder löschen und andere Benutzer, die nicht über die Berechtigung verfügen, können die Dateien im Verzeichnis nicht löschen. Dies schützt Dateien vor unerwünschtem Löschen durch öffentliche Benutzer, die keine Berechtigungen für die Dateien haben. Das tmp-Verzeichnis wird am häufigsten für Sticky-Bits verwendet und Benutzer können die TMP-Dateien anderer Benutzer nicht löschen, wenn das Sticky-Bit gesetzt ist.

  • Verwenden Sie den Befehl ls, um die Berechtigungen für das angegebene Verzeichnis oder die angegebene Datei aufzulisten

  • ls -ld/Verzeichnisname

  • Der Befehl ls zusammen mit dem angegebenen Verzeichnisnamen führt zu dem folgenden Ergebnis.

  • drwxrwxrwt. 10 root root 539 17. Mai 15:09/Verzeichnisname/

  • Hier wird der Kleinbuchstabe „t“ gesetzt, was bedeutet, dass das Sticky-Bit für alle Dateien im Verzeichnis aktiviert ist und die übliche Ausführungsberechtigung „x“ ersetzt.

  • Verwenden Sie die folgenden Befehle, um das Sticky-Bit für das benötigte Verzeichnis zu setzen.

  • chmod +t Verzeichnisname

  • Um das bereits gesetzte Sticky-Bit zu deaktivieren, verwenden Sie die folgenden Befehle für die entsprechenden Verzeichnisse.

  • chmod -t Verzeichnisname

Abschluss

Spezielle Linux-Dateiberechtigungen sind für den Root-Benutzer oder den Eigentümer aktiviert, der über alle Berechtigungen zum Definieren verfügt, wem er Zugriff auf welche Vorgänge wie Lesen, Schreiben und Ausführen gewähren soll. Bei der Verwendung spezieller Berechtigungen wie uid und gid müssen Dateien oder Verzeichnisse überwacht werden, da sie von illegalen Benutzern gehackt werden können, anstatt auf Dateien zuzugreifen, die zum Root oder Bin gehören.

Verwandte Artikel: