Corne wagwoord te smbpasswd
-
08-06-2019 - |
Vra
Hoe kan ek pyp die nuwe wagwoord aan so smbpasswd Ek kan my installasie proses te outomatiseer.
Oplossing
Dankie aan Mark Ek het gevind dat die antwoord:
(echo newpassword; echo confirmNewPassword) | smbpasswd -s
BTW: (eggo oldpasswd; eggo newpasswd) | smbpasswd-s nie werk nie.
Ander wenke
Ek gebruik die volgende in een van my skrifte:
echo -ne "$PASS\n$PASS\n" | smbpasswd -a -s $LOGIN
Met eggo:
-e: ontsnap rye, soos \ N
-n: moenie implisiete newline nie voeg aan die einde
Met smbpasswd:
-a: Voeg nuwe gebruiker
-s: stil
Probeer iets soos hierdie:
(echo oldpasswd; echo newpasswd) | smbpasswd -s
Gebruik hierdie
echo 'somepassword' | tee - | smbpasswd -s
Dit is ongelukkig nie wenslik om twee redes: 1) As die gebruiker 'n kombinasie van '\ n "in die wagwoord gebruik sal daar 'n wanverhouding in die insette wees 2) of daar unix gebruikers op die stelsel, dan 'n gebruiker met behulp van die nut ps kan die wagwoord te sien
'n beter manier sou wees om die name in 'n lêer te sit en lees van die lêer en gebruik luislang pexpect om dit te lees, nie soos hieronder, maar die eenvoudige script is genoeg om te sien hoe om te gebruik pexpect
#!/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)
dan probeer: ./smbpasswd.py USERNAME1 'f # @ (& * (_ \ n895'
Ek moes 'n nuwe Samba gebruiker in 'n Puppet 5.x Exec hulpbron en om verskeie redes een van die opsies gewerk skep. Gelukkig hierdie eerder dom-soek opdrag gewerk:
yes vagrant|head -n 2|smbpasswd -a -s vagrant
Wagwoord hier is natuurlik "swerwer".