Samba 用户只有在首次登录后才会被添加?编辑:如何在没有密码提示的情况下将用户添加到 tdbsam?

Samba 用户只有在首次登录后才会被添加?编辑:如何在没有密码提示的情况下将用户添加到 tdbsam?

我使用以下命令将用户添加到我的服务器useradd -m -p PASS_HASH -s /usr/sbin/nologin USERNAME 然后我尝试访问他们的 samba 主页共享,但它从未显示,直到我使用该用户登录:

root:~$sudo login failtest
Password:######
Added user failtest.

有没有无需登录即可添加用户的方法?

编辑:问题是使用 useradd 命令添加用户,但 ubuntu 似乎在用户首次登录时运行初始化脚本。然后,此脚本将该用户添加到 tdbsam 用户数据库。查找初始化脚本或它用于将用户添加到 tdbsam 数据库的方法,而无需任何用户输入(因为 smbpasswd -a USER 会提示用户输入密码)。

所以我需要的是一种将用户+密码添加到 tdbsam 数据库而无需提示用户输入密码的方法(例如:samaba-add-user.sh USERNAME PASSWORD)。

答案1

相信您可以使用“adduser”而不是“useradd”来解决这个问题。adduser 脚本应该会创建您要查找的其余内容。

答案2

我的直觉是 PAM 相关的问题。用户登录之前,其主目录是否存在,或者您是否依赖 pam_mkhomedir 来创建目录并拉入 skel?如果您使用 pam_mkhomedir,它是否在您的 samba PAM 配置中正确配置?

如果您不介意的话,您可以发布您的整个 PAM 配置吗?

答案3

这是因为 samba 在用户登录后与 passwd 同步。如果您希望用户能够在执行任何 shell 登录之前登录 samba,请smbpasswd -a failtest在创建用户后运行。这会将正确的条目添加到 dbsam。

您也可以使用该pdbedit实用程序手动执行此操作。

相关内容