我已经用 Synology DS218 替换了 Samba3 服务器,而用 VB6 编写的旧程序无法再在共享上创建新文件。VB exe 在某些 XP 机器上运行,并且共享映射到与以前相同的驱动器号。
奇怪的是:文件可以通过软件打开和修改(有一个 mdb 数据库运行良好),但是当它试图创建一个新的时它失败了。该文件被创建,但一旦尝试写入/保存,程序就会崩溃。
欢迎任何关于它可能是什么的提示。
旧的 smb3 配置是这样的:
[global]
workgroup = GASATI
hosts allow = 192.168.0.0/24
null passwords = yes
create mask = 0755
local master = no
os level = 20
guest account = socio
server string = %h server
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
security = share
encrypt passwords = true
passdb backend = tdbsam
obey pam restrictions = no
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
[data]
comment = Data
path = /home/data
public = yes
guest ok = yes
guest only = yes
browsable = yes
writable = yes
printable = no
而 DSM 在 Synology 上自动创建的一个:
root@syno:~# cat /etc/samba/smb.conf
[global]
printcap name=cups
winbind enum groups=yes
include=/var/tmp/nginx/smb.netbios.aliases.conf
security=user
local master=no
realm=*
passdb backend=smbpasswd
printing=cups
max protocol=SMB2
winbind enum users=yes
load printers=yes
workgroup=WORKGROUP
root@syno:~# cat /etc/samba/smb.share.conf
[data]
recycle bin admin only=yes
ftp disable modify=no
ftp disable download=no
write list=nobody,nobody
browseable=yes
mediaindex=no
hide unreadable=no
win share=yes
enable recycle bin=yes
invalid users=nobody,nobody
read list=nobody,nobody
ftp disable list=no
edit synoacl=yes
valid users=nobody,nobody
writeable=yes
guest ok=yes
path=/volume1/data
skip smb perm=yes
comment="Condivisione software"
正如人们可能猜到的那样,这是一个软件问题:出乎意料的是,VB6 程序试图在没有密码的情况下直接访问共享,导致出现意外行为。
根据程序员的说法,源仅使用相对路径,并且共享再次映射到 Win7 中的本地驱动器。它尝试直接在共享上执行操作对他来说也是新的。
我必须在 Synology 上启用访客帐户并允许访客访问共享。这使程序能够工作。