Detaillierte Erklärung der wunderbaren Verwendung von SUID, SGID und SBIT in Linux

Detaillierte Erklärung der wunderbaren Verwendung von SUID, SGID und SBIT in Linux

Vorwort

Die Dateiberechtigungsverwaltung von Linux ist einfach erstaunlich. Lassen Sie uns die Funktionen von SUID, SGID und SBIT überprüfen und zusammenfassen.

Tatsächlich ähneln die Funktionen von SUID und SGID denen von sudo. Wenn Benutzer A eine ausführbare Datei ausführen möchte, die ursprünglich Benutzer B gehört, und in der Datei von B das Suid-Bit gesetzt ist, führt A sie als Benutzer B aus.

SUID ist die Abkürzung für Set UID, was „Set User ID“ bedeutet. Es fühlt sich seltsam an, aber ich denke trotzdem, dass SUID am prägnantesten ist. Es erscheint im Ausführungsbit der Berechtigungen des Dateibesitzers. Wenn eine Datei mit dieser Berechtigung ausgeführt wird, erhält der Anrufer vorübergehend die Berechtigungen des Dateibesitzers. Verwenden Sie beispielsweise den folgenden Befehl:

ls -l /usr/bin/passwd

Wir erhalten die folgenden Ergebnisse:

-rwsr-xr-x 1 root root 42824 13. September 2012 /usr/bin/passwd

Wie Sie sehen, ist das Ausführungsbit des Dateibesitzers s statt x, sodass das Programm passwd über SUID-Berechtigungen verfügt. Wir wissen, dass wir zum Ändern des Benutzerkennworts den Befehl passwd verwenden, und wir wissen, dass das Benutzerkennwort unter Linux in der Datei /etc/shadow gespeichert wird. Überprüfen Sie zunächst die Berechtigungen der Datei /etc/shadow:

ls -l /etc/shadow

Die zurückgegebenen Ergebnisse lauten wie folgt:

-rw-r----- 1 root shadow 1138 Dez 13 20:00 /etc/shadow

Aus den obigen Ergebnissen wissen wir, dass nur Root Daten in die Schattendatei schreiben kann und andere Benutzer nicht einmal die Berechtigung haben, sie anzuzeigen. Wie ändern wir also normalerweise unsere Passwörter? Ja, es hängt mit SUID zusammen. Wenn wir den Befehl passwd verwenden, erhalten wir die Berechtigungen des Besitzers von passwd, also root, und können dann in die Schattendatei schreiben.

Bei der Verwendung von SUID müssen folgende Punkte erfüllt sein:

1.SUID ist nur für Binärdateien gültig

2. Der Anrufer hat Ausführungsrechte für die Datei

3. Während des Ausführungsprozesses erhält der Anrufer vorübergehend die Eigentümerberechtigungen der Datei

4. Diese Berechtigung ist nur während der Ausführung des Programms gültig

In „Bird Brother’s Linux Private Recipe“ gibt es ein Bild, das diese Bedeutung besonders zum Ausdruck bringt:


SGID ist die Abkürzung für Set GID. Es erscheint im Ausführungsbit der Gruppenberechtigungen, zu denen die Datei gehört. Es ist für normale Binärdateien und Verzeichnisse gültig. Wenn es auf eine normale Datei einwirkt, ähnlich wie SUID, erhält der Benutzer beim Ausführen der Datei die Berechtigungen der Gruppe, zu der die Datei gehört. Wenn SGID auf Verzeichnisse angewendet wird, wird es sehr wichtig. Wenn ein Benutzer Schreib- und Ausführungsberechtigungen für ein Verzeichnis hat, kann er Dateien in dem Verzeichnis erstellen. Wenn das Verzeichnis mit SGID geändert wird, gehören die vom Benutzer im Verzeichnis erstellten Dateien zu der Gruppe, zu der das Verzeichnis gehört.

SBIT steht für Sticky Bit. Es erscheint auf dem Ausführungsbit anderer Benutzerberechtigungen und kann nur zum Ändern eines Verzeichnisses verwendet werden. Wenn ein Verzeichnis über die SBIT-Berechtigung verfügt, kann jeder Benutzer, der Dateien in diesem Verzeichnis erstellen kann, nur die vom Benutzer in diesem Verzeichnis und im Stammverzeichnis erstellten Dateien löschen, aber kein anderer Benutzer kann sie löschen. Zum Beispiel:

ls -ld /tmp

Folgende Ergebnisse können erzielt werden:

drwxrwxrwt 12 root root 12288 Dez 17 16:33 /tmp

Sie können sehen, dass die letzte Ziffer t ist, was bedeutet, dass es sich bei der /tmp-Datei um diesen Dateityp handelt.

Wie also legt man die drei oben genannten Berechtigungen fest? Lassen Sie uns zunächst einige Vorkenntnisse vermitteln und dabei Zahlen zur Darstellung von Berechtigungen verwenden:

4 bedeutet SUID
2 für SGID
1 für SBIT

Liegen zwei oder drei Berechtigungen gleichzeitig vor, ergibt sich das gewünschte Ergebnis durch die Addition der Werte der Schreibberechtigungen. Es ist 6, wenn SUID und SGID gleichzeitig vorhanden sind. Hier ist ein Beispiel für die Änderung:

chmod 4777 Test

Um der Testdatei SUID-Berechtigungen zu erteilen, haben Sie es vielleicht schon herausgefunden. Fügen Sie diese speziellen Berechtigungswerte einfach vor den normalen Dateiberechtigungen hinzu.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Ausführliche Erklärung der Sonderberechtigungen SUID, SGID und SBIT in Linux
  • Linux-Grundlagen-Tutorial: Sonderberechtigungen SUID, SGID und SBIT

<<:  Native JS-Implementierung der Slider-Intervallkomponente

>>:  Tutorial zur Installation und Konfiguration von MySQL für die kostenlose Installationsversion von Win10

Artikel empfehlen

Zusammenfassung gängiger SQL-Anweisungen in MySQL

1. MySQL-Exportdatei: SELECT `pe2e_user_to_compan...

Teilen Sie 5 hilfreiche CSS-Selektoren, um Ihr CSS-Erlebnis zu bereichern

Dank unserer umfassenden CSS-Erfahrung als Webdesi...

Detaillierte Erklärung zur Verwendung von this.$set in Vue

Inhaltsverzeichnis Verwendung von this.$set in Vu...

Detaillierte Erklärung dieses Zeigeproblems in der JavaScript-Funktion

dieses Schlüsselwort Welches Objekt ruft die Funk...

Verwenden einer MySQL-Datenbank im Docker, um LAN-Zugriff zu erhalten

1. Holen Sie sich das MySQL-Image Docker-Pull MyS...

Detailliertes Tutorial zur Überwachung von Nginx/Tomcat/MySQL mit Zabbix

Inhaltsverzeichnis Zabbix überwacht Nginx Zabbix ...

XHTML-Tags haben ein schließendes Tag

<br />Ursprünglicher Link: http://www.dudo.o...

So verwenden Sie nginx zum Konfigurieren des Zugriffs auf wgcloud

Die Nginx-Konfiguration ist wie folgt: Wie http:/...

So verwenden Sie Dayjs zum Berechnen gängiger Daten in Vue

Bei der Verwendung von Vue zur Entwicklung von Pr...

Beispielcode zur Implementierung des Div-Konkaveckenstils mit CSS

Bei der normalen Entwicklung verwenden wir normal...

js realisiert das dynamische Laden von Daten durch Wasserfallfluss

In diesem Artikel erfahren Sie den spezifischen C...