I recently (re)switched from using Netatalk to Samba for file access from macOS (15.x) to linux (AlmaLinux 9.x). Obviously the Samba is a great resource, on the Samba Wiki the Configure Samba to Work Better with Mac OS X was invaluable for setting up the /etc/samba/smb.conf file, and the vfs fruit man page contains documentation for all the options. Here is the /etc/samba/smb.conf file I use:
#
#
#
#
#
[global] workgroup = LINUX server string = linux.internal (Samba) security = user bind interfaces only = yes interfaces = 10.0.1.150/24 passdb backend = tdbsam inherit acls = yes create mask = 0664 directory mask = 0775 min protocol = SMB3 ea support = yes vfs objects = fruit streams_xattr
fruit:metadata = stream
fruit:model = MacSamba
fruit:veto_appledouble = no
fruit:nfs_aces = no
fruit:wipe_intentionally_left_blank_rfork = yes
fruit:delete_empty_adfiles = yes
fruit:posix_rename = yes
fruit:zero_file_id = yes
[homes]
comment = Home Directories valid users = %S, %D%w%S browseable = no writeable = yes
#[printers]
#[print$]
There is an option worth noting, Apple changed something with their SMB client in Ventura and I needed to add the 'kernel oplocks = yes' options because MacOS would place opportunitics locks on the files I was editing and I would get a 'text file busy' error on the linux side when I tried to run scripts. Setting 'kernel oplocks = yes' helped to work around this. Setting this option is only useful if you edit code on a Mac and execute this code on the Linux machine. I also made some changes to '/etc/nsmb.conf' on the Mac, here is the version I use:
#
#
#
#
#
#
#
#
[default] protocol_vers_map=4 port445=no_netbios signing_required=yes #soft=yes mc_on=no mc_prefer_wired=yes #file_ids_off=yes dir_cache_off=yes dir_cache_max_cnt=0 #aapl_off=false