在不同服务器上将 Samba3 迁移到 Samba4 后用户数据库为空

在不同服务器上将 Samba3 迁移到 Samba4 后用户数据库为空

我必须将 Samba 3 迁移到新的 Samba 4 服务器。

我的问题是 samba 3 服务器上的数据库似乎有点空。secrets.dtb 文件只有 20K,而“pbedit -L |wc -l”命令给了我 16970 行。

在我的 Samba3 上 /var/lib/samba 为 1.5M

在我迁移数据库之后(按照http://dev.tranquil.it/index.php/SAMBA_-_Migration_Samba3_Samba4), 新服务器上的“pdbedit -L”命令只给我:SAMBA4$、Administrator、dns-samba4、krbtgt 和 nobody。

因此,我尝试使用 Samba3 创建虚拟机。我添加了一些用户,并执行了与迁移相同的操作,现在我可以看到在虚拟机上创建的用户。

就像 Samba 3 服务器上的用户处于某种缓存中一样。

我已经迁移了 /etc/{passwd,shadow,group} 文件,并且可以使用“getent passwd”命令查看用户。

知道为什么当我使用 pdbedit 时我的用户存在但数据库却空吗?

Samba 3 服务器上的 smb.conf 的全局部分:

  [global]
   workgroup = INTERNET
   netbios name = PDC-SMB3
   server string = %h server
   interfaces = eth0
   obey pam restrictions = Yes
   passdb backend = smbpasswd
   passwd program = /usr/bin/passwd %u
   passwd chat = *new* %n\n *Re* %n\n *pa*
   username map = /etc/samba/smbusers
   unix password sync = Yes
   syslog = 0
   log file = /var/log/samba/log.%U
   max log size = 1000
   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
   add user script = /usr/sbin/useradd -s /bin/false -m '%u' -g users
   delete user script = /usr/sbin/userdel -r '%u'
   add group script = /usr/sbin/groupadd '%g'
   delete group script = /usr/sbin/groupdel '%g'
   add user to group script = /usr/sbin/usermod -G '%g' '%u'
   add machine script = /usr/sbin/useradd -s /bin/false -d /dev/null '%u' -g machines
   logon script = logon.cmd
   logon home = \\$L\%U
   domain logons = Yes
   os level = 255
   preferred master = Yes
   local master = Yes
   domain master = Yes
   dns proxy = No
   ldap ssl = no
   panic action = /usr/share/samba/panic-action %d
   invalid users = root
   admin users = admin, root, administrateur
   log level = 2

答案1

我找到了一种方法来做到这一点。

我在 Samba 3 服务器上使用“pdbedit -e smbpasswd:/root/samba-users.bak”导出用户。然后在 Samba 4 服务器上执行“pdbedit -i /root/samba-users.bak”,其中 /root/samba-users.bak 是我从 Samba 3 服务器复制的文件。当然,我已经将用户从旧服务器导入到新服务器。

相关内容