但安全地编写 samba 密码脚本

use*_*209 4 security password samba shell-script

我想在 samba 用户和密码上编写添加脚本。

我见过与这里类似的解决方案

将密码通过管道传送到 smbpasswd

echo -ne "$PASS\n$PASS\n" | smbpasswd -a -s $LOGIN
Run Code Online (Sandbox Code Playgroud)

但所有看到脚本的人都可以看到密码。我如何使用哈希值并将其作为密码?

use*_*474 5

如果您的 smb.conf 包含passdb backend = tdbsam您可以在已设置的系统上导出带有加密密码的文件,请使用:

sudo pdbedit -e smbpasswd:/tmp/smbpasswd
Run Code Online (Sandbox Code Playgroud)

这将创建/tmp/smbpasswd包含用户名和哈希值的文件。它是一个文本文件,您可以轻松查看并可能删除包含您不感兴趣的用户的行。

可以使用以下命令重新导入用户:

sudo pdbedit -i smbpasswd:/tmp/smbpasswd -e tdbsam:/var/lib/samba/private/passdb.tdb
Run Code Online (Sandbox Code Playgroud)

中的用户/tmp/smbpasswd将被添加到 samba 用户数据库中,或者如果已存在则被覆盖。

/var/lib/samba/private/passdb.tdb是 Ubuntu 中 samba 用户数据库文件的位置。