将密码通过管道传送到 smbpasswd
如何将新密码通过管道传输到 smbpasswd,以便我可以自动化安装过程。
How can I pipe the new password to smbpasswd so I can automate my installation process.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
感谢马克,我找到了答案:
顺便说一句:(echo oldpasswd; echo newpasswd) | smbpasswd -s 不起作用。
Thanks to Mark I found the answer:
BTW: (echo oldpasswd; echo newpasswd) | smbpasswd -s does not work.
我在我的脚本之一中使用以下内容:
使用 echo:
-e : 转义序列,如 \n
-n : 不要在末尾添加隐式换行符
使用 smbpasswd:
-a : 添加新用户
-s : 静默
I use the following in one of my scripts:
With echo:
-e : escape sequences, like \n
-n : don't add implicit newline at end
With smbpasswd:
-a : add new user
-s : silent
尝试这样的事情:
Try something like this:
用这个
回显'somepassword' | 三通- | smbpasswd -s
Use this
echo 'somepassword' | tee - | smbpasswd -s
不幸的是,这并不可取,原因有两个:
1) 如果用户在密码中使用“\n”组合,则输入将不匹配
2)如果系统上有unix用户,那么使用实用程序ps的用户可能会看到密码
更好的方法是将名称放入文件中并从文件中读取并使用python pexpect来读取它们,而不是像下面那样,但简单的脚本足以了解如何使用 pexpect
然后尝试: ./smbpasswd.py userName1 'f#@(&*(_\n895'
This unfortunately is not desirable for two reasons:
1) if the user uses a combination of '\n' in the password there will be a mismatch in the input
2) if there are unix users on the system, then a user using the utility ps may see the password
A better way would be to put the names in a file and read from the file and use python pexpect to read them, not like below, but the simple script is enough to see how to use pexpect
then try: ./smbpasswd.py userName1 'f#@(&*(_\n895'
我必须在 Puppet 5.x Exec 资源中创建一个新的 Samba 用户,但由于各种原因,上述方法均不起作用。 幸运的是,这个看起来相当愚蠢的命令起作用了:
这里的密码当然是“vagrant”。
I had to create a new Samba user in a Puppet 5.x Exec resource and for various reasons none of the above worked. Fortunately this rather silly-looking command worked:
Password here is of course "vagrant".
您不需要使用
smbpasswd
。 您可以获取新密码并计算其 NT 哈希值(使用 UTF-16-LE 编码并计算 MD4 摘要),将其编码为十六进制字符串,然后运行 pdbedit -u USER --set-nt-hash =哈希。You don't need to use
smbpasswd
. You can take your new password and calculate its NT hash (encode with UTF-16-LE and calculate the MD4 digest), encode it as a hexadecimal string, and then runpdbedit -u USER --set-nt-hash=HASH
.使用管道或重定向。
using either pipelines or redirection.