SetUid, Setgid und Sticky Bit erklärt

SetUid, Setgid und Sticky Bit erklärt
Linux verfügt über 3 Arten von Zugriff auf Dateien und Verzeichnisse: Lesen, Schreiben und Ausführungsberechtigungen.

Lesen von Berechtigungsstipendien Benutzer Zugriff auf Lesedateien beim Schreiben von Berechtigungen ermöglichen es Benutzern, Dateien zu bearbeiten oder zu entfernen. Die Ausführungsberechtigungen ermöglichen es ihnen, Dateien auszuführen.

Diese Berechtigungen können mit Unterschieden für den Dateibesitzer, Benutzer der Gruppe der Datei und alle Benutzer (weder den Eigentümer noch der Gruppenbenutzer) angewendet werden.

Mit dem Bit -SetUid, SetGid und Sticky können Sie zusätzliche Einschränkungen oder Berechtigungen implementieren, ohne die Berechtigungstabelle zu ändern.

Regelmäßige Linux -Berechtigungen wurden bei Linux -Berechtigungen, eine empfohlene Lektüre, zutiefst erklärt, bevor Sie mit diesem Tutorial fortgesetzt wurden. Das aktuelle Tutorial konzentriert sich auf Flags SetUid, SetGid und Sticky, um den Dateibesitzer oder die Gruppenberechtigungen an Benutzer mit eingeschränktem Zugriff zu „erben“ und nicht privilegierte Benutzer daran zu hindern, Dateien zu entfernen, die sie nicht besitzen.

Das Bit -SetUid verstehen:

Der folgende Screenshot zeigt den Inhalt des Verzeichnisses an LinuxHintsetuid und die Dateiberechtigungen:

Wie Sie sehen können, gehören alle Dateien zum Benutzer und der Gruppe LinuxHint; die Datei Lernprogramm.txt Hat Berechtigungen für den Eigentümer gelesen und geschrieben, Berechtigungen für Benutzer derselben Gruppe gelesen und überhaupt keine Berechtigungen für andere Benutzer.

Wenn ein anderer Benutzer als der Dateibesitzer, der nicht zur Gruppe gehört, versucht, die Datei zu lesen.

Der folgende Screenshot zeigt den Benutzer an Torvalds erfolglos versuchte, auf die zuzugreifen Lernprogramm.txt Datei.

Nehmen wir nun den Benutzer an LinuxHint will das Tutorial behalten.TXT eingeschränkt, während Benutzer es nur über eine bestimmte Anwendung lesen können. Dies kann mit der Flagge erreicht werden SetUid.

Mit anderen Worten, der Benutzer Torvalds Kann die Datei nicht lesen können Lernprogramm.txt. Trotzdem wird er das leiten Leser-im Besitz des Benutzer LinuxHint, Erben seiner Berechtigungen während des Ausführungsprozesses. Dies ist möglich, wenn der Eigentümer das hinzufügt SetUid Bit in die Berechtigungstabelle der Datei, wobei die Datei immer vom Eigentümer und mit Eigentümerrechten verarbeitet werden kann, auch wenn sie von einem anderen Benutzer wie ausgeführt werden Torvalds.

NOTIZ: Sie können den folgenden C -Code verwenden, um die folgenden Beispiele zu reproduzieren. Laufen kompilieren CC -Code.C -o -Leser

Leserantragscode:

#enthalten
#Include // für exit () funktion
int main ()
Char C [1000];
Datei *fptr;
if ((fptr = fopen ("Tutorial.txt "," r ")) == null)
printf ("Fehler! Datei kann nicht geöffnet werden.");
// Programm beendet, wenn der Dateizeiger NULL zurückgibt.
Ausgang (1);

Schlaf (5);
// liest Text, bis Newline auftritt
fscanf (fptr, "%[^\ n]", c);
printf ("Daten aus der Datei: \ n%s", c);
fcLose (fptr);
Rückkehr 0;

Lassen Sie uns vor dem Fortfahren sehen, was passiert, wenn der Benutzer Torvalds, der die Berechtigungen für die Ausführung der Anwendung hat Leser, führt die aus Leser Bevor LinuxHint das SetUid -Flag anwendet.

Wie Sie sehen können, gelang es Torvalds, den Leser auszuführen, ein C -Programm zum Lesen von Tutorial.txt mit der folgenden Berechtigungstabelle, aber der Leser versäumte es, ihm Zugang zu gewähren Lernprogramm.txt Weil Torvalds Hat keine Berechtigungen, es zu lesen.

Leser Die Berechtigungstabelle ist unten angezeigt:

-RWXR-XR-X 1 LinuxHint LinuxHint Reader

Nun wollen wir sehen, was passiert, wenn LinuxHint fügt die SetUid -Flag dem hinzu Leser Berechtigungstabelle durch Laufen:

CHMOD U+S LESER

Wenn du läufst ls -l , Sie werden feststellen, dass sich die Berechtigungstabelle geändert hat und der Programmname in Rot angezeigt wird, wodurch Sie über ein mögliches Risiko aufmerksam gemacht werden. Der neue Berechtigungstisch sieht so aus:

-RWSR-XR-X

Das neue S Ich habe in Blue hervorgehoben, wie die Datei das SetUid -Flag hat. Jedes Mal, wenn die Datei ausgeführt wird. Da der Eigentümer die Datei vor dem System ausführt, erbt die Ausführung die Berechtigungen des Eigentümers. Deshalb nun danach LinuxHint fügte das SetUid -Flag hinzu, den Benutzer Torvalds Muss in der Lage sein, ein Tutorial zu lesen.txt durch die Leser.

NOTIZ: Torvalds können die laufen lassen Leser weil alle Benutzer Ausführungsrechte haben; Wenn LinuxHint Entfernt Ausführungsberechtigungen für alle Benutzer, Torvalds Kann es nicht ausführen können.

Der SetUid Flag definiert die Datei als vom Eigentümer und dem Benutzer, der sie ausführt.

Wie Sie sehen können, gelang es Torvalds zu lesen „Daten aus der Datei:

Sie sollten dies nicht lesen können. “.

Wenn Torvalds das Skript ausführt, stelle ich den folgenden PS -Befehl aus, sehen Sie einen Unterschied zwischen dem realen Benutzer (Ruser) und dem effektiven Benutzer (Benutzer) des Prozesses 4332 (Leser).

PS -AO PID, UID, RUSER, Benutzer, Rgroup, Egroup, Befehl

Der obige Screenshot zeigt trotz des realen Benutzer Leser Is Torvalds oder ein anderer Benutzer, die Datei wird immer wie nach verarbeitet LinuxHint, mit seinen Berechtigungen, und deshalb können Torvalds die Datei nur über die Anwendung sehen.

Das SetUid -Flag kann durch Laufen entfernt werden:

chmod u-s

Das Bitgid verstehen:

SETGID ähnelt SetUid, aber anstatt den Benutzer, der die Datei verarbeitet.

Wenn das Bit -SetGid auf ein Verzeichnis angewendet wird, gehören alle im Verzeichnis erstellten Dateien zur Gruppe des Verzeichnisses.

Der folgende Screenshot zeigt, dass Torvalds keine Erlaubnis hat, Tutorial zu lesen.TXT, nur der Eigentümer und die Gruppe können die Datei lesen. Auch mit a Leser, Torvalds kann die Datei nicht lesen, weil er keine Berechtigungen hat und kein SetUid -Bit hinzugefügt wurde.

Mal sehen, was passiert, nachdem LinuxHint SetGid hinzugefügt hat:

Chmod G+S Leser


-rwxr-sr-x: Wie Sie in der Berechtigungstabelle sehen können, befindet sich der S jetzt in der Gruppenspalte. Wenn das Programm ausgeführt wird, wird es immer mit eigenen Gruppenrechten ausgeführt.

Lassen Sie uns also sehen, was passiert, wenn Torvalds versucht, auf Tutorial zuzugreifen.TXT erneut mit Leser:

Torvalds gelang es, ein Tutorial zu lesen.txt; Mal sehen, was der PS -Befehl im Leserprozess zeigt:

PS -AO PID, UID, RUSER, Benutzer, Rgroup, Egroup, Befehl

Wie Sie im Prozess 6713 sehen können, ist der Benutzer, der die Datei ausführt, Torvalds, aber die effektive Gruppe ist LinuxHint, die Gruppe der Datei. Deshalb könnten Torvalds auf Tutorial zugreifen.TXT mit den Gruppenberechtigungen des Leser.

Das SetGid -Bit kann durch Laufen entfernt werden:

CHMOD G-S

Das klebrige Stück verstehen:

Ein weiteres Berechtigungsbit ist das klebrige Bit, das, wenn es definiert ist, nicht privilegierte Benutzer daran hindert, Inhalte zu entfernen. Wenn das klebrige Bit angewendet wird, kann nur der Eigentümer oder das Root Dateien entfernen, jedoch nicht alle Benutzer, auch wenn sie Schreibberechtigungen haben.

Das folgende Beispiel zeigt, dass der User LinuxHint das klagende Bit zum aktuellen Verzeichnis hinzufügt:

chmod +t .

DRWXR-XR-T: Wie Sie jetzt sehen können, gibt es eine T am Ende der Berechtigungs Tabelle der LinuxHintsetuid Verzeichnis. Dies bedeutet, dass Benutzer keine Dateien entfernen können, die sie im Verzeichnis nicht besitzen.

Der folgende Screenshot zeigt Berechtigungen für eine Datei namens “etwas”Unter dem Verzeichnis LinuxHintsetuid Mit dem besonderen Klebebit:

Wie Sie sehen können, können Torvalds die Datei nicht entfernen etwas:

Ich hoffe, Sie haben dieses Tutorial auf SetUid, SetGid und Sticky Bit Nützlich gefunden. Folgen Sie LinuxHint weiter, um weitere Linux -Tipps und Tutorials zu erhalten.