Linux passwd Benutzerberechtigungsänderung

Linux passwd Benutzerberechtigungsänderung

Wenn ich mir anschaue

usr/bin/

Verzeichnis, sah ich die Befehlszeile mit passwd

-rwsr-xr-x. 1 root root 30768 2012-02-22 20:48 /usr/bin/passwd

und es ermöglicht die Änderung, um Root-Berechtigungen zu erhalten. mit s.

Ich war erstaunt, dass nur root möglicherweise das Passwort eines anderen Benutzers ändern kann mit

passwd   user

Ich möchte den Speicherort dieses Befehls finden und nachschlagen.

ist dieser Befehl auch Teil des Verzeichnisses usr/bin/? oder ist es etwas anderes

das, was ich tun möchte, ist.

Ich melde mich an

user1

und Typ

[user1] passwd user2

natürlich ist es irgendwie blockiert, aber ich möchte mehr darüber wissen.

Antwort1

Unix (und Linux) hat das Konzept vonrealBenutzer undWirksamBenutzer. Ein Setuid-Programm wie /usr/bin/passwdsetzt den effektiven Benutzer auf den Besitzer der Datei; in diesem Fall setzt es den effektiven Benutzer auf root.

Was ein Programm mit diesen erhöhten Berechtigungen macht, bleibt dem Programm selbst überlassen.

Wenn Sie dem passwdProgramm einen Benutzernamen übergeben, wird geprüft, ob derrealDer Benutzer ist root. Wenn dies der Fall ist, ist die Ausführung erfolgreich, andernfalls wird ein Fehler zurückgegeben.

Der rootBenutzer kann es also ausführen /usr/bin/password user2und es funktioniert, aber wenn userer denselben Befehl ausführt, schlägt es fehl. Es gibt nur ein Programm, aber die Funktionsweise ändert sich je nach Benutzer, der es ausführt.

Antwort2

Die passwdBinärdatei ist suid, da sie Rootberechtigung benötigt, um die /etc/shadowDatei zu ändern. Sie erlaubt es einem nicht privilegierten Benutzer nicht, das Passwort eines anderen Benutzers zu ändern. Sie erlaubt es, rootdas Passwort eines beliebigen Benutzers zu ändern, aber das ist nicht der Grund, warum sie suid ist.

verwandte Informationen