使用 Chef 设置 Samba 密码,无需将纯文本密码存储在数据包中

使用 Chef 设置 Samba 密码,无需将纯文本密码存储在数据包中

我们有一个使用 Chef 配置的服务器。

目前,chef 管理密码的方式是简单地复制 samba tdb 数据库并更新每个用户的影子哈希。由于这些系统之间的加密算法不同,因此无法通过 chef 使用影子哈希在 samba 中创建密码。

在我们的 smb.conf 中添加以下行将破坏所有密码验证:

encrypt passwords = no
obey pam restrictions = yes

我们尝试启用 unix 密码同步,但直到有人更改密码后它才会生效。

我们尝试使用 samba cookbook,但是这需要知道我们用户的密码,而我们无法知道。

我们尝试将密码后端设置为 smbpasswd,并通过 mksmbpasswd 管道传输 /etc/shadow,但得到的只是这些垃圾:

user:95945:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[U          ]:LCT-00000000:99999

我搜索了互联网,没有发现任何关于通过 chef 使用加密哈希设置 samba 密码的信息,而任何同时使用 samba 和 chef 的人都会想这样做。

我想使用相同的哈希来设置 unix 密码和 samba 密码,但我不必这样做,因为生成两个哈希是一个简单的问题。生成两个哈希并手动将其中一个插入 tdb 文件比它需要的更困难。

答案1

基本上,你注定要失败。根据设计,你不能将哈希转换为不同的哈希算法(除非你强行将原始密码恢复出来,然后使用新算法对其进行哈希处理)。你需要让用户将他们的密码输入到可以生成你需要的所有哈希的程序中,将它们放入 Chef,然后将其填充到各种数据库中。或者,你可以只使用 LDAP,它就是为处理这类事情而设计的。

相关内容