2017-04-13 5 views
0

Ich habe ein Skript, das Windows-kompatible Passwörter nimmt und sie verwendet, um ein Konto für den Benutzer auf dem Computer mit diesem als ihr Systempasswort zu erstellen.Windows kompatible Passwörter in Bash

Ich bin auf ein Problem gestoßen, wo, wenn ich ihnen entfliehen und es übergeben, um das Konto zu erstellen, es wörtlich genommen wird. Single 'und doppelte "Anführungszeichen in Windows erlaubt sind.

Beispiel Benutzer gibt hello'world entkam als hallo \‚in der Datenbank als hallo \‘Welt. Benutzereingaben hello'world Login. Computer-Welt und gespeichert erwartet hallo \ 'Welt als das richtige Passwort, kann den Benutzer nicht anmelden

Hinzufügen von Code.

echo "somepass" | sudo -S /Applications/Setup\ user.app/Contents/Resources/nugget "Joe User" "juser" "ju$er'Pa$$".345" 

im Wesentlichen das Konto für den Benutzer erstellt wird, hat ein anderes Admin-Konto verwendet werden soll und das Passwort aus dem Satz gui wo ju $ er'Pa $$ ". 345 eingegeben wird und von dort die u ser kann sich gut einloggen.

+0

Dann entkommst du ihnen falsch. –

+0

@ IgnacioVazquez-Abrams ja, das war mir klar. Ich würde nicht fragen, ob ich die richtige Methode wüsste. –

+0

Bitte fügen Sie das von Ihnen verwendete Skript/Code hinzu. Und kreuzen Sie auf mehreren SE-Sites nicht dieselbe Frage an. – patrix

Antwort

0

Macht das was du willst? (Natürlich benötigen Sie eine sichere Methode, um das Passwort entweder von read Eingabe oder durch Lesen von einem Datei-Handle oder Rohr zu erhalten).

[email protected]:~ $ read -r password ; printf '%q\n' "$password" 
ju$er'Pa$$".345 
ju\$er\'Pa\$\$\".345 
[email protected]:~ $