Passwort an smbpasswd weiterleiten
-
08-06-2019 - |
Frage
Wie kann ich das neue Passwort an smbpasswd weiterleiten, damit ich meinen Installationsprozess automatisieren kann?
Lösung
Dank Mark habe ich die Antwort gefunden:
(echo newpassword; echo confirmNewPassword) | smbpasswd -s
Übrigens:(echo oldpasswd;Echo NewPasswd) | Smbpasswd -s funktioniert nicht.
Andere Tipps
Ich verwende Folgendes in einem meiner Skripte:
echo -ne "$PASS\n$PASS\n" | smbpasswd -a -s $LOGIN
Mit Echo:
-e:Escape-Sequenzen wie
-N :Fügen Sie am Ende keinen impliziten Zeilenumbruch hinzu
Mit smbpasswd:
-A :neuen Benutzer hinzufügen
-S :still
Versuchen Sie etwas wie Folgendes:
(echo oldpasswd; echo newpasswd) | smbpasswd -s
Benutze dasecho 'somepassword' | tee - | smbpasswd -s
Dies ist aus zwei Gründen leider nicht wünschenswert:1) Wenn der Benutzer eine Kombination aus ' n' im Kennwort verwendet
Ein besserer Weg wäre, die Namen in eine Datei zu schreiben und aus der Datei zu lesen und Python Pexpect zu verwenden, um sie zu lesen, nicht wie unten, aber das einfache Skript reicht aus, um zu sehen, wie man Pexpect verwendet
#!/usr/bin/python
#converted from: http://pexpect.sourceforge.net/pexpect.html
#child = pexpect.spawn('scp foo myname@host.example.com:.')
#child.expect ('Password:')
#child.sendline (mypassword)
import pexpect
import sys
user=sys.argv[1]
passwd=sys.argv[2]
child = pexpect.spawn('/usr/bin/smbpasswd -a '+str(user))
child.expect('New SMB password:')
child.sendline (passwd)
child.expect ('Retype new SMB password:')
child.sendline (passwd)
dann versuche es:./smbpasswd.py userName1 'f#@(&*(_ 895'
Ich musste einen neuen Samba-Benutzer in einer Puppet 5.x Exec-Ressource erstellen und aus verschiedenen Gründen funktionierte keiner der oben genannten Schritte.Glücklicherweise hat dieser ziemlich albern aussehende Befehl funktioniert:
yes vagrant|head -n 2|smbpasswd -a -s vagrant
Das Passwort hier ist natürlich „vagrant“.