我必须将 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 服务器复制的文件。当然,我已经将用户从旧服务器导入到新服务器。