我读了 如何将 Samba 用户帐户迁移到新的 Linux 服务器? 但它并没有解决我的情况,或者至少没有提供解决方案。
我有一台 RHEL 5 机器,wood,运行 Samba、Dovecot、PostFix。我想将这些服务移动到另一台机器,stone,即 Centos 6。两台机器上的身份验证都是通过 LDAP 和 PAM 完成的(/etc/{passd*,shadow*} 文件没有用户信息 - 这就是链接的问题没有帮助的原因,因为这是它建议传输的内容)。
我已将 /etc/samba/* 复制到新机器(stone),并且在执行此操作之前没有获得用户身份验证,smbpasswd -a user1
允许用户 1 从第三台 Windows Server 2008 机器进行身份验证,但是浏览到用户主目录会导致权限被拒绝错误。(因为可能应该澄清;当从同一台 Server 2008 机器连接到 wood Samba 服务器时,用户主目录不会被阻止)。
我不知道错误是出在 Samba 配置还是 LDAP 上?我的问题是复制 /etc/samba 是否足以传输 Samba 配置 - 显然它不会传输用户信息。
更新:我开始提问,然后才意识到 smbpasswd 创建了具有下一个用户 ID 的新用户...该用户 ID 与主目录文件权限不匹配...所以我的问题实际上是如何将所有用户从木头转移到石头并保持其原始密码/ID? 甚至只是 ID?
更新 2:我按照建议使用 pdbedit 导出/导入用户。现在我从 Windows 端收到另一个错误,说明它无法进行身份验证,并且不允许与同一用户建立多个连接。我在 wood 上停止了 samba 服务,并在 stone 上重新启动了。
答案1
首先将您的用户导出到 wood 上的文件 -
pdbedit -e smbpasswd:/tmp/sambausers.bak
然后将用户导入到 to stone -
pdbedit -i smbpasswd:/tmp/sambauses.bak