it-swarm.com.de

Unterschied zwischen Eigentümer / Root und RUID / EUID

Ich bin relativ neu in den in der Frage erwähnten Konzepten und das Lesen aus verschiedenen Quellen macht sie nur verwirrender. Das habe ich bisher verstanden:

Wenn wir Berechtigungen für eine Datei erhalten, sehen sie folgendermaßen aus:

-rwsr-xr-- 1 user1 users 190 Oct 12 14:23 file.bin

Wir gehen davon aus, dass ein Benutzer user2, Der zur Gruppe users gehört, versucht, file.bin Auszuführen. Wenn das Setuid-Bit nicht gesetzt wäre, würde dies bedeuten, dass sowohl die RUID als auch die EUID von file.bin Gleich der UID von user2 Sind. Da jedoch das setuid-Bit gesetzt ist, bedeutet dies, dass die RUID jetzt der UID von user2 Entspricht, während die EUID die UID des Eigentümers der Datei user1 Ist.

Meine Fragen sind:

  1. Was ist der Unterschied zwischen dem Eigentümer der Datei und root? Hat root die gleichen Berechtigungen wie der Eigentümer? Oder benötigen wir einen separaten Eintrag in der Berechtigungsliste für root?
  2. Unterschied zwischen RUID und EUID?
    • Nach meinem Verständnis werden RUID und EUID nur auf Prozesse angewendet. Wenn dies der Fall ist, warum haben sie den Wert von Benutzer-IDs?
    • Wenn RUID der Benutzer ist, der den Prozess erstellt, und EUID der Benutzer ist, der den Prozess derzeit ausführt, ergibt der erste Satz der ersten Antwort in dieser Frage für mich keinen Sinn.
    • Habe ich richtig verstanden, was das Setuid-Bit macht?
27
user1956190

Hier sind die Antworten:

  1. root hat immer voll Zugriff auf Dateien und Verzeichnisse. Der Besitzer der Datei hat sie normalerweise auch, aber das ist nicht immer wahr. Zum Beispiel:

    -r-xr----- 1 user1 users 199 Oct 14 18:42 otherfile.bin
    

    user1 Ist der Eigentümer; Sie können jedoch nur lesen und ausführen, aber root hat immer noch vollen Zugriff ( rwx) auf die Datei.

  2. RUID ist die Real User ID und ändert sich nie (fast). Wenn sich user2 Am System anmeldet, wird die Shell mit der tatsächlichen ID user2 Gestartet. Alle Prozesse, die sie von der Shell aus starten, erben die reale ID user2 Als ihre reale ID.

    EUID ist die Effektive Benutzer-ID, sie ändert sich für Prozesse (nicht für den Benutzer), die der Benutzer ausführt und die das Bit setuid gesetzt haben.

    Wenn user2file.bin Ausführt, lautet die RUID user2 Und die EUID des gestarteten Prozesses lautet user1.

Verwenden wir den Fall von passwd:

-rwsr-xr-x 1 root root 45396 may 25  2012 /usr/bin/passwd
  • Wenn user2Passwort ändern möchte, führen sie /usr/bin/passwd Aus.

  • Die RUID ist user2, Aber die EUID dieses Prozesses ist root.

  • user2 Kann passwd verwenden, um nur ihr eigenes Passwort zu ändern, da intern passwd die RUID überprüft und, falls dies nicht root ist werden seine Aktionen auf das Passwort des echten Benutzers beschränkt.

  • Es ist notwendig, dass die EUID im Fall von root zu passwd wird, da der Prozess schreiben zu /etc/passwd Und/oder /etc/shadow.

38
jcbermu