Ich möchte die Ausführung eines Programms mit einem Passwort sichern.Wie mache ich ein Bash-Skript, um nach einem Passwort zu fragen?
Wie mache ich das in bash?
Ich möchte die Ausführung eines Programms mit einem Passwort sichern.Wie mache ich ein Bash-Skript, um nach einem Passwort zu fragen?
Wie mache ich das in bash?
stty_orig=`stty -g` # save original terminal setting.
stty -echo # turn-off echoing.
read passwd # read the password
stty $stty_orig # restore terminal setting.
Dieser Befehl wird in var PWD von stdin (mit Echo deaktiviert) lesen:
IFS= read -s -p Password: pwd
Entschärfen IFS für führende und nachfolgende Leerzeichen in Kennwörtern ermöglichen (die in einigen Umgebungen unterstützt werden können , so dass es am besten unterstützt wird, wenn Sie die Anmeldeinformationen des Benutzers eingeben.
Um zu überprüfen, ob vorangestellte/nachfolgende Leerzeichen korrekt verarbeitet werden, können Sie Folgendes verwenden:
echo -n "$pwd" | hexdump -C
Hinweis: Verwenden Sie nicht mit echten Passwörtern, da es auf die Konsole ablegt!
HT: Ron DuPlain für diese zusätzliche Information zu IFS-Unscharfschaltung.
Wenn Sie ein passwd als Parameter für ein Programm verwenden möchten, dann ist Einhörnerratschlag, um das Echo einfach auszuschalten, gut.
Mit einem Passwd Check-in das Skript funktioniert nicht - wenn der Benutzer das Bash-Skript ausführen können, haben sie auch die Erlaubnis, es zu lesen und sehen Sie die passwd.
Wenn Sie nur Benutzern mit einem Kennwort erlauben möchten, ein Programm auszuführen, besteht die sichere Methode darin, ein neues Benutzerkonto zu erstellen, das das Programm besitzt und über ein Skript verfügt, das 'sudo' verwendet, um das Programm als diesen Benutzer auszuführen. es wird für die Benutzer passwd auf sichere Weise aufgefordert.
Man könnte die Prüfsumme des Passworts vorberechnen und * it * im Skript anstelle des Klartextes speichern und die Prüfsumme der Eingabe dagegen testen. Es kann jedoch immer noch gebrochen werden, aber weniger leicht. –
In diesem Fall kopieren Sie einfach das Skript an einen Ort, an dem Sie Schreibrechte haben, und entfernen Sie den Haken. –
Voting zum Schließen als unklar, bitte geben Sie an, wie die Passworteingabe anders sein soll als andere Eingaben. Kein Echo gefragt bei: http://stackoverflow.com/questions/3980668/how-to-get-a-password-from-a-shell-script-without-echoing –