Question

Comment puis-je transmettre le nouveau mot de passe à smbpasswd afin de pouvoir automatiser mon processus d'installation.

Était-ce utile?

La solution

Grâce à Mark, j'ai trouvé la réponse :

(echo newpassword; echo confirmNewPassword) | smbpasswd -s

D'AILLEURS:(écho oldpasswd;echo newpasswd) | SMBPasswd -s ne fonctionne pas.

Autres conseils

J'utilise ce qui suit dans l'un de mes scripts :

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

Avec écho :

-e :séquences d'échappement, comme

-n :n'ajoutez pas de nouvelle ligne implicite à la fin

Avec smbpasswd :

-un :ajouter un nouvel utilisateur

-s :silencieux

Essayez quelque chose comme ceci :

(echo oldpasswd; echo newpasswd) | smbpasswd -s

Utilisez ceciecho 'somepassword' | tee - | smbpasswd -s

Ceci n’est malheureusement pas souhaitable pour deux raisons :1) Si l'utilisateur utilise une combinaison de ' n' dans le mot de passe, il y aura un décalage dans l'entrée 2) S'il y a des utilisateurs Unix sur le système, alors un utilisateur utilisant l'utilitaire PS peut voir le mot de passe

Une meilleure façon serait de mettre les noms dans un fichier, de lire à partir du fichier et d'utiliser python pexpect pour les lire, pas comme ci-dessous, mais le simple script suffit pour voir comment utiliser 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)

Alors essaye:./smbpasswd.py nomutilisateur1 'f#@(&*(_ 895'

J'ai dû créer un nouvel utilisateur Samba dans une ressource Puppet 5.x Exec et pour diverses raisons, aucune des solutions ci-dessus n'a fonctionné.Heureusement, cette commande plutôt idiote a fonctionné :

yes vagrant|head -n 2|smbpasswd -a -s vagrant

Le mot de passe ici est bien sûr "vagabond".

en utilisant soit pipelines ou redirection.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top