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