¿Cómo puedo conectar la nueva contraseña a smbpasswd para poder automatizar mi proceso de instalación?Contraseña de tubería a smbpasswd
Respuesta
Gracias a Mark I encontró la respuesta:
(echo newpassword; echo confirmNewPassword) | smbpasswd -s
Por cierto: (eco oldpasswd; eco newpasswd) | smbpasswd -s no funciona.
intentar algo como esto:
(echo oldpasswd; echo newpasswd) | smbpasswd -s
utilizo el siguiente en uno de mis guiones:
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: añadir nuevo usuario
-s: silencioso
o 'echo -ne" $ PASS \ n "| tee - | smbpasswd -a -s $ LOGIN'? –
smbpasswd's -s significa "use stdin para contraseña", no "silencioso" – Michael
@Michael según https://www.samba.org/samba/docs/man/manpages/smbpasswd.8.html significa ambos " silent "(sin indicaciones) y" read from stdin "(en lugar de/dev/ptty) –
Esto, desafortunadamente, no es deseable por dos razones: 1) Si el usuario utiliza 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 use 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 la secuencia de comandos 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)
luego tratar: ./smbpasswd.py UserName1 'f @ # (* & (_ \ n895'
Utilice esta echo 'somepassword' | tee - | smbpasswd -s
gracias, esa es la única sintaxis que podría funcionar en un Dockerfile: ' RUN PASS = myrootpassword; echo $ {PASS} | tee - | smbpasswd -a -s' – jamshid
También encontré esta respuesta útil como la única sintaxis que podría obtener trabajando en un recurso ejecutivo de Puppet; el enfoque que comenzaba con una paren fracasó porque Puppet no pudo encontrar el comando "(echo). ¡Gracias! – dbrewer
- 1. eco que smbpasswd por --stdin no funciona
- 2. Enganchando a la tubería wcf
- 3. Tubería a la entrada de findstr
- 4. ¿Por qué termina esta tubería?
- 5. Implementación de tubería
- 6. rubí operador de tubería
- 7. PhantomJS: entrada de tubería
- 8. Problema al volver a conectar a la tubería con nombre
- 9. salida de tubería de ProcessBuilder a otro ProcessBuilder
- 10. Salida estándar de subproceso de tubería a una variable
- 11. Salida de shell de tubería a svn del command?
- 12. Tubería entre tomas
- 13. Intentando mapear | (tubería) clave
- 14. Python: subprocess.call tubería rota
- 15. gdb - depuración con tubería
- 16. Node.js: contraseña crypto.pbkdf2 a Hex
- 17. Conversión de matriz a cadena con tubería delimitadora | en PostgreSQL
- 18. F # tubería hacia adelante para convertir de int a bigint
- 19. ¿Cómo pasar un carácter de tubería entre comillas a cmd.exe?
- 20. tubería uso de datos enrollamiento
- 21. Salida de tubería para cortar
- 22. Tubería y redirección
- 23. Opciones para | (tubería) comando
- 24. Tubería, Composición y Currying
- 25. ¿Cómo hacer que la producción de tubería desde un script Ruby a 'cabeza' sin conseguir una tubería rota de error
- 26. jQuery, ¿enviar contraseña a través de ajax?
- 27. Tubería popen stderr y stdout
- 28. tubería XSLT eficiente en Java (o redirigir Resultados a Fuentes)
- 29. función En tubería llamar a otra función pipeline
- 30. y contraseña en problema de contraseña - php
-1 Esta es exactamente la respuesta de Mark, simplemente cambiando los nombres de las variables. – JorgeeFG
+1 para compensar JorgeeFG; Creo que los nuevos nombres de variables contienen una distinción, si lees con atención. La respuesta de Mark implica que smbpasswd espera una contraseña anterior y una nueva, pero esta respuesta implica que smbpasswd espera una contraseña y una confirmación de contraseña. La segunda interpretación es la correcta, por lo que siento que la respuesta de Mark es menos útil que esta. – Matt