Warum sagt mir sudo, dass mein Passwort falsch ist?

7

Ich habe kürzlich OpenBSD 4.9 auf meinem Computer installiert, damit ich etwas über Unix-ähnliche Betriebssysteme lernen kann. Ich habe dem System einen neuen Benutzer namens bruno hinzugefügt. OK. Wenn ich den Befehl 'sudo' verwende, werde ich nach einem Passwort gefragt. Also gebe ich das Passwort ein. Aber es sagt mir immer wieder, dass das Passwort falsch ist, obwohl ich sicher bin, dass das Passwort korrekt ist. Was fehlt mir hier? Ich weiß, wenn hinzufügen

 bruno ALL = (ALL) NOPASSWD: ALL

In der Datei / etc / sudoers wird nicht mehr nach dem Kennwort gefragt, und ich kann den Befehl sudo ausführen. Was soll ich hier machen? Was ist die korrekteste / sicherste Option? Es tut mir leid, wenn es eine triviale Frage ist. Ich konnte keine gute Erklärung für dieses Problem finden. Ich suche nicht nur nach Lösungen, sondern auch nach Erklärungen, wie diese ganze Sache mit Benutzern / Berechtigungen / Passwörtern funktioniert.

Bruno Calza
quelle
2
Wenn Sie sudo mit einem Kennwort ausführen, werden Sie nach Ihrem Kennwort gefragt . Geben Sie das ein?
Mat
@Mat: " Wenn Sie sudo mit Passwort ausführen, werden Sie nach Ihrem Passwort gefragt. " ... Das ist übrigens das sozial destruktivste "Standardverhalten", das ich bisher in der Linux-Welt gesehen habe. Letztendlich muss es zu Unwissenheit führen (wie in dieser Frage dargestellt ).
Rozcietrzewiacz
2
@rozcietrzewiacz: Der Punkt ist, dass sudoBenutzer verwendet werden können, die das Root-Passwort nicht kennen . Beispielsweise kann der Systembesitzer bestimmten Benutzern die Berechtigung erteilen, bestimmte Befehle auszuführen, ohne ihnen den vollständigen Root-Zugriff zu gewähren. (Es verringert auch die Gefährdung des Root-Passworts durch Keylogger und das Surfen auf der Schulter.) Die Unwissenheit, die Sie beklagen, kann durch Beantwortung der Frage behoben werden. siehe unten.
Keith Thompson
@KeithThompson Ok, ich sehe mich nicht klar ausgedrückt. Es geht nicht darum, wie es sudo verwendet werden kann (es ist ein sehr nützliches Tool!) - es geht darum, wie es standardmäßig in Distributionen wie Ubuntu eingerichtet wird . Unwissenheit kann und sollte natürlich geheilt werden (dies ist teilweise der Zweck dieser Website). Das Problem ist, welche gefährlichen Trends die Standardkonfiguration sudoerzeugt.
Rozcietrzewiacz
1
@rozcietrzewiacz: Ich weiß immer noch nicht, auf welches Problem Sie sich beziehen.
Keith Thompson

Antworten:

8

Dies ist ein Beispiel für den Unterschied zwischen Authentifizierung und Autorisierung .

Sudo ist in erster Linie ein Werkzeug zur Autorisierung. Seine Aufgabe besteht darin, zu bestimmen, ob Sie einen Befehl mit erhöhten Berechtigungen ausführen dürfen, und diesen Befehl gegebenenfalls auszuführen. Ein Eintrag wie

bruno ALL = (ALL): ALL

In der sudoersDatei kann der Benutzer brunojeden Befehl mit beliebigen Berechtigungen ausführen.

Um diese Regel anzuwenden, muss Sudo wissen, dass der Benutzer, der sie aufruft, dies tatsächlich ist bruno. Im Prinzip kann es sich auf den Authentifizierungsmechanismus des Systems stützen: Wenn Sie Befehle als ausführen können bruno, bedeutet dies, dass Sie sich bereits als authentifiziert haben bruno. Da die Verwendung von Sudo jedoch schwerwiegende Folgen haben kann, erfordert Sudo eine zusätzliche Authentifizierung: Manchmal müssen Sie Ihr Kennwort erneut eingeben. Dies bedeutet, dass ein Passant, der Ihre Konsole unbeaufsichtigt gelassen hat und den Befehl ausführen brunokann, Sudo nicht verwenden kann. Er kann möglicherweise Ihr Konto beschädigen, nicht jedoch den Rest des Systems.

Ein weiterer Vorteil der Anforderung eines Passworts besteht darin, dass Sie benachrichtigt werden, dass etwas Ungewöhnliches passiert. Beispielsweise kann eine Anwendung nicht stillschweigend anrufen sudo: Sie müsste nach Ihrem Kennwort gefragt werden, und eine unerwartete Kennwortabfrage würde Sie darauf hinweisen, dass etwas Schlimmes passiert.

In der Praxis wäre es ärgerlich, jedes Mal, wenn Sie Sudo ausführen, nach einem Passwort zu fragen. Daher ist das Standardverhalten ein Kompromiss: Fragen Sie alle paar Minuten nach einem Passwort. Auf diese Weise kann ein Passant oder eine Anwendung Schaden anrichten, sudowenn sie nur ausgeführt wird, wenn Sie dies in den letzten Minuten getan haben.

Gilles 'SO - hör auf böse zu sein'
quelle
2

Sie sollten das Handbuch lesen: man sudo(Auch hier ), und ich bin nicht sicher, wie die Regeln lauten, aber auf den meisten Unix-Systemen ist sudo nur von Benutzern in der wheelGruppe zulässig . Sie sollten also entweder eine Regel für diesen neuen Benutzer festlegen, für die das Kennwort erforderlich ist, oder Sie fügen den Benutzer der Radgruppe hinzu. (Verwendung usermod -a -G wheel bruno)

Paul de Vrieze
quelle
1
Die Anforderung, dass der aufrufende Benutzer in der wheelGruppe sein muss, ist bei einigen Unix-Varianten (jedoch nicht unter Linux) für üblich su. Sudo wird nicht wheelals etwas Besonderes behandelt . Eine Zeile mit %wheel ALL=(ALL) ALLin sudoerswürde die traditionelle Radrichtlinie implementieren, ist jedoch nicht Teil der Standardkonfiguration.
Gilles 'SO - hör auf böse zu sein'