Передача пароля в smbpasswd

Как я могу передать новый пароль в smbpasswd, чтобы я мог автоматизировать процесс установки.

Решение

Благодаря Марку я нашел ответ:

(echo newpassword; echo confirmNewPassword) | smbpasswd -s

BTW: (echo oldpasswd; echo newpasswd) | smbpasswd -s не работает.

Комментарии (2)

Я использую следующее в одном из моих сценариев:

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

С эхом:

  • e: последовательности спасения, как \n

  • n: don' t добавляют неявный newline в конце

С smbpasswd:

  • a: добавьте нового пользователя

  • s: тихий

Комментарии (3)

Попробуйте сделать что-то вроде этого:

(echo oldpasswd; echo newpasswd) | smbpasswd -s
Комментарии (0)

Используйте это ''''повторяют ' somepassword' | мишень - | smbpasswd-s'''

Комментарии (2)

Это, к сожалению, не желательно по двум причинам:

  1. если пользователь использует комбинацию ' \n' в пароле во входе будет несоответствие
  2. если есть пользователи Unix на системе, то пользователь, использующий сервисный PS, может видеть пароль

Лучший путь состоял бы в том, чтобы поставить имена в файле и читать от файла и использовать питона pexpect, чтобы прочитать их, не как ниже, но простого сценария достаточно, чтобы видеть, как использовать 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)

тогда попытка:./smbpasswd.py userName1 ' f# (& * (_ \n895'

Комментарии (0)

Я должен был создать нового пользователя Самбы в Марионетке 5.x Исполнительный ресурс, и по различным причинам ни одно из вышеупомянутого не работало. К счастью, эта довольно глупо выглядящая команда работала:

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

Пароль здесь, конечно, " vagrant".

Комментарии (0)

используя либо трубопроводы, либо перенаправление.

Комментарии (1)