I have problems setting up a docker samba server (dperspon/samba) on my server (Pi4). The writable samba share appears to be read only. However the behavior is weird. When I put a file into the share using MacOS Finder a file is created, but it stays empty. The operation fails with the following note The operation could not be completed because an unknown error occurred (error -50). Using CLI everything is fine. The storage (/media/data) is ExFat formated. What is wrong with the following compose file?
samba: image: dperson/samba container_name: samba command: -g "log level = 2" -u "root;PASSWORD" -s "all;/smb/all;yes;no;no;root" volumes: - /media/data:/smb/all environment: - TZ=Europe/Berlin - WORKGROUP=media #- USERID=0 #- GROUPID=0 ports: - 139:139 - 445:445 restart: unless-stoppedThis is the resulting conf in the container.
pam password change = yes map to guest = bad user usershare allow guests = yes create mask = 0664 force create mode = 0664 directory mask = 0775 force directory mode = 0775 force user = smbuser force group = smb follow symlinks = yes load printers = no printing = bsd printcap name = /dev/null disable spoolss = yes strict locking = no aio read size = 0 aio write size = 0 vfs objects = catia fruit recycle streams_xattr recycle:keeptree = yes recycle:maxsize = 0 recycle:repository = .deleted recycle:versions = yes # Security client ipc max protocol = SMB3 client ipc min protocol = SMB2_10 client max protocol = SMB3 client min protocol = SMB2_10 server max protocol = SMB3 server min protocol = SMB2_10 # Time Machine fruit:delete_empty_adfiles = yes fruit:time machine = yes fruit:veto_appledouble = no fruit:wipe_intentionally_left_blank_rfork = yes
[all] path = /smb/all browsable = yes read only = no guest ok = no veto files = /.apdisk/.DS_Store/.TemporaryItems/.Trashes/ Trash Fold delete veto files = yes valid users = root 4 2 Answers
The problem is the config line:
vfs objects = catia fruit recycle streams_xattrNote the requirements of the VFS module streams_xattr:
The file system that is shared with this module enabled must support xattrs.
After removing streams_xattr at least writing once worked. However deleting and writing again made problems. Removing fruit alltogether, although using samba only from a mac client, made file operations work as expected.
I am also using dperson/samba with a exFAT mount, and was having similar issues with a Windows 10 client giving this error whenever I tried to rename/move/delete (but creating files worked)
Error 0x80070032: The request is not supported.
as you said, the fix was to remove fruit and streams_xattr from vfs objects line in /etc/samba/smb.conf
vfs objects = catia recycle$ docker exec -it samba bash
$ vi /etc/samba/smb.conf
# in vi, delete fruit and streams_xattr from vfs objects =
$ exit
$ docker restart samba