Назад | Перейти на главную страницу

Сервер Samba3 заменен на Synology: старая программа VB6 не может создавать файлы

Я заменил сервер Samba3 на Synology DS218, и старая программа, написанная на 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 и разрешить гостю доступ к общему ресурсу. Это позволило программе работать.