我用 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
而 Synology 上的 DSM 自动创建的是:
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"
答案1
正如人们可能猜到的那样,这是软件问题:意外的是,VB6 程序尝试在没有密码的情况下直接访问共享,导致意外行为。
据程序员称,源代码仅使用相对路径,并且共享再次被映射到 Win7 中的本地驱动器。它试图直接在共享上执行操作,这对他来说也是新鲜事。
我必须在 Synology 上启用访客帐户并允许访客访问共享。这样程序才能正常运行。