使用 Synology 替换 Samba3 服务器:旧 VB6 程序无法创建文件

使用 Synology 替换 Samba3 服务器:旧 VB6 程序无法创建文件

我用 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 上启用访客帐户并允许访客访问共享。这样程序才能正常运行。

相关内容