Das Verständnis von SUID
In diesem Schritt werden Sie das Konzept der SUID-Berechtigung und ihre Auswirkungen verstehen.
Normalerweise wird ein Programm auf Linux mit den Rechten des aktuellen Benutzers ausgeführt. Einige Programme wie cp
benötigen jedoch erhöhte Privilegien, um bestimmte Operationen auszuführen, wie z. B. das Kopieren von Dateien in eingeschränkte Verzeichnisse. Um gewöhnlichen Benutzern zu ermöglichen, solche Programme mit erhöhten Privilegien auszuführen, kann die SUID-Berechtigung für die ausführbare Datei festgelegt werden.
SUID steht für "Set user ID upon execution" (Benutzer-ID beim Ausführen setzen). Wenn eine Datei die SUID-Berechtigung hat, wird sie mit den Rechten ihres Besitzers ausgeführt, unabhängig davon, welcher Benutzer sie ausführt. Beispielsweise wird der Befehl cp
vom Root-Benutzer besessen und hat das SUID-Bit gesetzt, sodass jeder Benutzer ihn mit Root-Rechten ausführen kann.
Um die SUID-Berechtigung für den Befehl cp
zu überprüfen und die Ausgabe in einer Datei zu speichern, führen Sie den folgenden Befehl aus:
ls -l /usr/bin/cp > /home/labex/project/suid_cp.txt
Zeigen Sie den Inhalt der Datei suid_cp.txt
mit dem folgenden Befehl an:
cat /home/labex/project/suid_cp.txt
Erwartete Ausgabe:
-rwsr-xr-x 1 root root 141832 Feb 8 2024 /usr/bin/cp
Sie sollten ein s
in den Berechtigungsbits sehen, was auf die SUID-Berechtigung hinweist.
Während SUID nützlich sein kann, um gewöhnlichen Benutzern das Ausführen bestimmter privilegierter Befehle zu ermöglichen, kann es auch ausgenutzt werden, wenn das SUID-Binary Funktionen zum Ausführen von Systembefehlen oder zum Ändern von Dateien bietet.