swat automation installation debian samba

automation - swat - Contraseña de tubería para smbpasswd



samba debian wiki (6)

¿Cómo puedo conectar la nueva contraseña a smbpasswd para poder automatizar mi proceso de instalación?


Gracias a Mark encontré la respuesta:

(echo newpassword; echo confirmNewPassword) | smbpasswd -s

BTW: (echo oldpasswd; echo newpasswd) | smbpasswd -s no funciona.


Pruebe algo como esto:

(echo oldpasswd; echo newpasswd) | smbpasswd -s



Uso lo siguiente en uno de mis scripts:

echo -ne "$PASS/n$PASS/n" | smbpasswd -a -s $LOGIN

Con eco:

-e: secuencias de escape, como / n

-n: no agregue nueva línea implícita al final

Con smbpasswd:

-a: agregar nuevo usuario

-s: silencioso


Desafortunadamente, esto no es deseable por dos razones: 1) si el usuario usa una combinación de ''/ n'' en la contraseña, habrá una falta de coincidencia en la entrada 2) si hay usuarios de Unix en el sistema, entonces un usuario que usa la utilidad ps puede ver la contraseña

Una mejor manera sería poner los nombres en un archivo y leer del archivo y usar python pexpect para leerlos, no como a continuación, pero el script simple es suficiente para ver cómo usar pexpect.

#!/usr/bin/python #converted from: http://pexpect.sourceforge.net/pexpect.html #child = pexpect.spawn(''scp foo [email protected]:.'') #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)

entonces intente: ./smbpasswd.py userName1 ''f # @ (& * (_ / n895''


Use este echo ''somepassword'' | tee - | smbpasswd -s echo ''somepassword'' | tee - | smbpasswd -s