Verstehen, warum Terminal nicht erlaubt, ein Kennwort einzugeben

Manchmal müssen Sie ein Kennwort in das Terminal eingeben, normalerweise für sudo oder su-Befehle, mit denen Benutzer einen Befehl mit Super-Benutzerrechten ausführen können. Dies ist ziemlich typisch für den Zugriff, um etwas zu lesen oder zu modifizieren, was sonst mit einem Standard-Benutzerkonto nicht möglich wäre. Sie werden sehen, dass sudo einem anderen Befehl vorangestellt ist und etwa so aussieht wie "sudo nano / etc / hosts". Obwohl der Großteil der Befehlszeile und sudo im Allgemeinen nur für fortgeschrittene Benutzer geeignet ist, müssen sich gelegentlich informellere Computerbenutzer an das Terminal wenden, um beispielsweise eine Funktion zu aktivieren, eine Systemdatei zu ändern oder sogar zur Fehlerbehebung. Für unerfahrene Benutzer, die an der Befehlszeile landen, tritt eine sehr häufige Frage beim Eingeben von Passwörtern in das Terminal auf, fast immer mit sudo und der offensichtlichen Unfähigkeit, ein Passwort in die Befehlszeile von OS X (oder Linux) einzugeben. .


Aber hier ist das Ding; Terminal lässt Sie Ihr Passwort eingeben, es sieht einfach nicht so aus . Der Cursor auf dem Bildschirm bewegt sich nicht, und es gibt keine Anzeige, dass das Passwort überhaupt eingegeben wird. Dies ist beabsichtigt und dient als Sicherheitsmechanismus, anders als die Eingabe eines Passworts in ein Webformular oder einen Standard-GUI-Anmeldebildschirm, der normalerweise als Sternchen wie ******** oder als Aufzählungszeichen wie ••••••• maskiert ist. •••••• Das Fehlen von etwas, das angezeigt wird, ist vollständig beabsichtigt, und es gibt keine Anzeichen dafür, dass Passwörter an der Befehlszeile eingegeben werden. Der Grund ist ziemlich einfach, er gibt keinen Hinweis darauf, wie lange ein Passwort ist, und bietet eine weitere Verschleierung der Passworteingabe.

Wenn das klingt verwirrend, ist es überhaupt nicht, hier ist, wie es in der Praxis funktioniert. Nehmen wir an, Sie führen einen Befehl aus, der sudo-Zugriff erfordert, wodurch der bekannte "Password:" - Eintrag aufgerufen wird.

% sudo cat /etc/secret.conf
Password:

Wenn die Password: Anfrage erscheint, geben Sie das Passwort trotzdem ein, obwohl nichts angezeigt wird, und drücken Sie Return, wenn Sie fertig sind. Auch hier gibt es keinen Hinweis darauf, dass ein Passwort eingegeben wird, und das ist beabsichtigt.

Lassen Sie uns also den vorherigen Beispielbefehl erneut ausführen, indem Sie so tun, als wäre das Administratorkennwort auf diesem Computer "Monkey123". Sie würden das Kennwort wie gewünscht eingeben, obwohl es gar nicht angezeigt wird.

% sudo cat /etc/secret.conf
Password: Monkey123 (hit Return key)

Dies wird den Befehl ausführen. Und nein, Monkey123 (oder was auch immer das Admin-Passwort ist) erscheint nicht auf dem Bildschirm, auch keine Sternchen oder Aufzählungszeichen.

In der Regel muss ein Benutzer dies nur ein oder zwei Mal erleben, um zu verstehen, wie es funktioniert, aber es bleibt eine gute Frage für Benutzer, die gerade anfangen, sich der Befehlszeile zu öffnen. Und wenn Sie es einmal wissen, können Sie das Wissen an andere weitergeben. Wenn Sie also jemand fragt: "Warum lässt mich das Terminal nicht ein Passwort eingeben?", Können Sie es jetzt beantworten und erklären.

Für diejenigen, die sich wundern, kann dieses Standardverhalten geändert werden, um Sternchen für jedes Zeichen anzuzeigen, das als das Kennwort in der Befehlszeile für Sudo, Su oder was auch immer Sie sonst tun, eingegeben wird. Nichtsdestoweniger ist es nicht empfehlenswert, diese Änderung vorzunehmen, und wir werden es in diesem speziellen Artikel nicht behandeln ... vielleicht in der Zukunft, wenn ein Interesse daran besteht.