Wie funktioniert das Sudo-Schlüsselsymbol?

7

Ich versuche, ein Skript zu schreiben, das das Benutzerkennwort für einige sudoverwandte Befehle anfordert . Mein Ziel ist es, die Standardmethode zu emulieren, mit der OS X das Kennwort des Benutzers abruft, Password:gefolgt von einem schlüsselförmigen Symbol, wie im folgenden Screenshot gezeigt:

Schlüsselsymbol

Ich habe versucht, die Antwort von So erhalten Sie ein Kennwort von einem Shell-Skript zu erhalten, ohne den verwendeten Stapelüberlauf zu wiederholen. Dies read -sführt jedoch dazu, dass beim Ausführen eines SkriptsPassword: kein Schlüsselsymbol angezeigt wird, das Symbol jedoch angezeigt wird, wenn es vom Terminal selbst ausgeführt wird. Was ist dieses Schlüsselsymbol und kann ich es im Menü "Zeichen" finden?

Vielleicht kann es sein
quelle
Ich erhalte das Schlüsselsymbol, wenn read -sich im Terminal ausgeführt werde, daher gehe ich davon aus, dass dies tatsächlich eine Funktion von bash ist. Vielleicht gibt ein Blick in den Quellcode ( opensource.apple.com/source/bash/bash-99/bash-3.2/builtins/… ) weitere Hinweise.
Nohillside
@patrix Ich verstehe, jetzt verstehe ich. Ich habe read -sin meinem Skript nicht richtig eingerichtet. Danke für Ihre Hilfe!
Vielleicht kann
@patrix Bitte fügen Sie eine Antwort hinzu, wenn Sie nichts dagegen haben.
Vielleicht kann
Prüfen. Und es ist wahrscheinlich sogar eine Funktion von Terminal.
Nohillside

Antworten:

8

Ich erhalte das Schlüsselsymbol, wenn ich read -sim Terminal laufe.

Da dies anscheinend genauso funktioniert read -swie für sudo, gehe ich davon aus , dass dies eine Funktion von Terminal ist (um ein Schlüsselsymbol anzuzeigen, wenn eine Eingabe im stillen / versteckten Modus angefordert wird).

nohillside
quelle
2

Die einfachste Antwort ist, das Skript ohne sudo zu schreiben

Dann fordern Sie den Benutzer auf, es mit sudo auszuführen, z sudo script

Das Skript wird mit Root-Rechten ausgeführt

`Dies hat den Vorteil, dass der Benutzer weiß, wonach er fragt und wo das Passwort verwendet wird, wenn Sie in Ihrem Skript eine Kopie erstellen oder im Speicher belassen könnten

user151019
quelle
1
Vielen Dank für Ihre schnelle Antwort. Obwohl ich verstehe, dass Sie ein Skript in seiner Gesamtheit als Root-Benutzer ausführen können, möchte ich den Mechanismus zum Abrufen von Passwörtern von emulieren sudo. Ich entschuldige mich, wenn ich unklar war.
Vielleicht kann
1
Sie waren klar, aber ich denke, es ist eine schlechte Idee
user151019
1

Ich denke, es hat etwas damit zu tun, ob die Terminal-Echo-Option deaktiviert ist. Ich habe versucht, stty -echo; cat; stty echoin meinem Terminal zu laufen und dann etwas einzugeben, und das Schlüsselsymbol wurde angezeigt. Ich drückte dann Ctrl+ Dund es ging weg.

Elias Zamaria
quelle