Ich bin relativ neu in den in der Frage erwähnten Konzepten, und wenn ich sie aus verschiedenen Quellen lese, sind 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
in der Gruppe users
versucht, auszuführen file.bin
. Wenn das setuid-Bit nicht gesetzt wäre, würde dies bedeuten, dass sowohl die RUID als auch die EUID file.bin
gleich der UID von sind user2
. Da jedoch das setuid-Bit gesetzt ist, entspricht die RUID jetzt der UID von user2
, während EUID die UID des Eigentümers der Datei ist user1
.
Meine Fragen sind:
- Was ist der Unterschied zwischen dem Eigentümer der Datei und
root
? Hatroot
die gleichen Berechtigungen wie der Besitzer? Oder benötigen wir einen separaten Eintrag in der Berechtigungsliste fürroot
? - Unterschied zwischen RUID und EUID?
- Soweit ich weiß, 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 gerade 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 bewirkt?
setuid
Bit gesetzt ist.root
) kann EUID und RUID auf beliebige Werte eingestellt (beispielsweise dielogin
,su
undsudo
Programme tun). Sobald ein privilegierter Prozess seine UIDs in Werte ungleich Null ändert, ist er im Allgemeinen nicht mehr privilegiert und kann nichtroot
erneut ausgeführt werden. Siehe die Manpages setuid (2) , seteuid (2) und setreuid (2) .setfsuid()
ist heutzutage nicht mehr nötig und sollte in neuen Anwendungen vermieden werden."