[Samba] OS X 10.4.11 Tiger cannot write to Samba 4.5.12 file server with vfs_fruit enabled
Keith Kaisershot
keithkaisershot+samba at gmail.com
Tue Oct 31 06:11:55 UTC 2017
Hello, thought I’d post here before opening up an issue on Bugzilla, just
in case…
I’m setting up a combination Samba 4.5.12/Netatalk 3.1.11 file server on
Debian Stretch (kernel version 4.9.0-4-amd64), servicing a network
containing Windows, macOS, and OS X Tiger 10.4.11 systems. As I understand
it, vfs_fruit is necessary for proper interoperation with Netatalk 3, so I
have that enabled on my server. Reading and writing files containing
resource forks works fine using my El Capitan-based MacBook Pro. When
connecting to the same share from a Tiger-based Mac though, writing does
not work at all and only data forks of existing files show up in Finder.
For example if in Tiger I copy a classic Mac application called “Blackjack
2.0” to my share called “Files” as user “made," I get the following error
message in Finder:
“You cannot copy some of these items to the destination because their names
are too long or contain invalid characters for the destination.”
Drilling down further, if I attempt the same copy using Terminal— `ditto
/Volumes/Stuff/Games/Blackjack\ 2.0 /Volumes/Files/` — I get the following,
slightly more descriptive error message:
“ditto: /Volumes/Files/._Blackjack 2.0__: No such file or directory”
This suggests to me that the ._ file that Tiger creates for the resource
fork is getting blocked by vfs_fruit, since if I disable vfs_fruit, I can
copy files in Tiger just fine (but then I am incompatible with Netatalk).
But I can’t tell if that’s the case from looking at the log:
[2017/10/30 22:39:09.897190, 3] ../source3/smbd/process.c:1957(process_smb)
Transaction 30 of length 74 (0 toread)
[2017/10/30 22:39:09.897244, 3]
../source3/smbd/process.c:1538(switch_message)
switch message SMBtrans2 (pid 1672) conn 0x560deaead7c0
[2017/10/30 22:39:09.897270, 3]
../source3/smbd/trans2.c:4123(call_trans2qfsinfo)
call_trans2qfsinfo: level = 1
[2017/10/30 22:39:09.897292, 3]
../source3/smbd/trans2.c:3422(smbd_do_qfsinfo)
smbd_do_qfsinfo: level = 1
[2017/10/30 22:39:09.898643, 3] ../source3/smbd/process.c:1957(process_smb)
Transaction 31 of length 82 (0 toread)
[2017/10/30 22:39:09.898687, 3]
../source3/smbd/process.c:1538(switch_message)
switch message SMBtrans2 (pid 1672) conn 0x560deaead7c0
[2017/10/30 22:39:09.898712, 3]
../source3/smbd/trans2.c:5775(call_trans2qfilepathinfo)
call_trans2qfilepathinfo: TRANSACT2_QPATHINFO: level = 257
[2017/10/30 22:39:09.898769, 3]
../source3/smbd/trans2.c:5938(call_trans2qfilepathinfo)
call_trans2qfilepathinfo . (fnum [fsp is NULL]) level=257 call=5
total_data=0
[2017/10/30 22:39:09.900304, 3] ../source3/smbd/process.c:1957(process_smb)
Transaction 32 of length 114 (0 toread)
[2017/10/30 22:39:09.900346, 3]
../source3/smbd/process.c:1538(switch_message)
switch message SMBtrans2 (pid 1672) conn 0x560deaead7c0
[2017/10/30 22:39:09.900373, 3]
../source3/smbd/trans2.c:2632(call_trans2findfirst)
call_trans2findfirst: dirtype = 16, maxentries = 4, close_after_first=1,
close_if_end = 1 requires_resume_key = 1 backup_priv = 0 level = 0x104,
max_data_bytes = 16644
[2017/10/30 22:39:09.900570, 3] ../source3/smbd/dir.c:656(dptr_create)
creating new dirptr 256 for path ., expect_close = 1
[2017/10/30 22:39:09.900646, 3]
../source3/smbd/error.c:82(error_packet_set)
NT error packet at ../source3/smbd/trans2.c(2931) cmd=50 (SMBtrans2)
NT_STATUS_NO_SUCH_FILE
[2017/10/30 22:39:09.902062, 3] ../source3/smbd/process.c:1957(process_smb)
Transaction 33 of length 114 (0 toread)
[2017/10/30 22:39:09.902106, 3]
../source3/smbd/process.c:1538(switch_message)
switch message SMBtrans2 (pid 1672) conn 0x560deaead7c0
[2017/10/30 22:39:09.902133, 3]
../source3/smbd/trans2.c:2632(call_trans2findfirst)
call_trans2findfirst: dirtype = 16, maxentries = 4, close_after_first=1,
close_if_end = 1 requires_resume_key = 1 backup_priv = 0 level = 0x104,
max_data_bytes = 16644
[2017/10/30 22:39:09.902321, 3] ../source3/smbd/dir.c:656(dptr_create)
creating new dirptr 256 for path ., expect_close = 1
[2017/10/30 22:39:09.902396, 3]
../source3/smbd/error.c:82(error_packet_set)
NT error packet at ../source3/smbd/trans2.c(2931) cmd=50 (SMBtrans2)
NT_STATUS_NO_SUCH_FILE
[2017/10/30 22:39:09.904191, 3] ../source3/smbd/process.c:1957(process_smb)
Transaction 34 of length 108 (0 toread)
[2017/10/30 22:39:09.904233, 3]
../source3/smbd/process.c:1538(switch_message)
switch message SMBtrans2 (pid 1672) conn 0x560deaead7c0
[2017/10/30 22:39:09.904260, 3]
../source3/smbd/trans2.c:2632(call_trans2findfirst)
call_trans2findfirst: dirtype = 16, maxentries = 4, close_after_first=1,
close_if_end = 1 requires_resume_key = 1 backup_priv = 0 level = 0x104,
max_data_bytes = 16644
[2017/10/30 22:39:09.904451, 3] ../source3/smbd/dir.c:656(dptr_create)
creating new dirptr 256 for path ., expect_close = 1
[2017/10/30 22:39:09.904527, 3]
../source3/smbd/error.c:82(error_packet_set)
NT error packet at ../source3/smbd/trans2.c(2931) cmd=50 (SMBtrans2)
NT_STATUS_NO_SUCH_FILE
[2017/10/30 22:39:09.905683, 3] ../source3/smbd/process.c:1957(process_smb)
Transaction 35 of length 108 (0 toread)
[2017/10/30 22:39:09.905732, 3]
../source3/smbd/process.c:1538(switch_message)
switch message SMBtrans2 (pid 1672) conn 0x560deaead7c0
[2017/10/30 22:39:09.905846, 3]
../source3/smbd/trans2.c:2632(call_trans2findfirst)
call_trans2findfirst: dirtype = 16, maxentries = 4, close_after_first=1,
close_if_end = 1 requires_resume_key = 1 backup_priv = 0 level = 0x104,
max_data_bytes = 16644
[2017/10/30 22:39:09.906026, 3] ../source3/smbd/dir.c:656(dptr_create)
creating new dirptr 256 for path ., expect_close = 1
[2017/10/30 22:39:09.906104, 3]
../source3/smbd/error.c:82(error_packet_set)
NT error packet at ../source3/smbd/trans2.c(2931) cmd=50 (SMBtrans2)
NT_STATUS_NO_SUCH_FILE
[2017/10/30 22:39:09.907038, 3] ../source3/smbd/process.c:1957(process_smb)
Transaction 36 of length 112 (0 toread)
[2017/10/30 22:39:09.907079, 3]
../source3/smbd/process.c:1538(switch_message)
switch message SMBntcreateX (pid 1672) conn 0x560deaead7c0
[2017/10/30 22:39:09.907387, 2] ../source3/smbd/open.c:1342(open_file)
made opened file .BC.B4iVrC read=No write=Yes (numopen=1)
[2017/10/30 22:39:09.908319, 3] ../source3/smbd/process.c:1957(process_smb)
Transaction 37 of length 45 (0 toread)
[2017/10/30 22:39:09.908357, 3]
../source3/smbd/process.c:1538(switch_message)
switch message SMBclose (pid 1672) conn 0x560deaead7c0
[2017/10/30 22:39:09.908380, 3] ../source3/smbd/reply.c:5399(reply_close)
Close file fd=33 fnum 55940 (numopen=1)
[2017/10/30 22:39:09.908426, 2]
../source3/smbd/close.c:788(close_normal_file)
made closed file .BC.B4iVrC (numopen=0) NT_STATUS_OK
[2017/10/30 22:39:09.909319, 3] ../source3/smbd/process.c:1957(process_smb)
Transaction 38 of length 108 (0 toread)
[2017/10/30 22:39:09.909357, 3]
../source3/smbd/process.c:1538(switch_message)
switch message SMBtrans2 (pid 1672) conn 0x560deaead7c0
[2017/10/30 22:39:09.909382, 3]
../source3/smbd/trans2.c:2632(call_trans2findfirst)
call_trans2findfirst: dirtype = 16, maxentries = 4, close_after_first=1,
close_if_end = 1 requires_resume_key = 1 backup_priv = 0 level = 0x104,
max_data_bytes = 16644
[2017/10/30 22:39:09.909532, 3] ../source3/smbd/dir.c:656(dptr_create)
creating new dirptr 256 for path ., expect_close = 1
[2017/10/30 22:39:09.909585, 3]
../source3/smbd/dir.c:1227(smbd_dirptr_get_entry)
smbd_dirptr_get_entry mask=[.BC.B4iVrC] found .BC.B4iVrC fname=.BC.B4iVrC
(.BC.B4iVrC)
[2017/10/30 22:39:09.911248, 3] ../source3/smbd/process.c:1957(process_smb)
Transaction 39 of length 112 (0 toread)
[2017/10/30 22:39:09.911287, 3]
../source3/smbd/process.c:1538(switch_message)
switch message SMBtrans2 (pid 1672) conn 0x560deaead7c0
[2017/10/30 22:39:09.911312, 3]
../source3/smbd/trans2.c:2632(call_trans2findfirst)
call_trans2findfirst: dirtype = 16, maxentries = 4, close_after_first=1,
close_if_end = 1 requires_resume_key = 1 backup_priv = 0 level = 0x104,
max_data_bytes = 16644
[2017/10/30 22:39:09.911404, 3]
../source3/smbd/filename.c:1615(filename_convert_internal)
filename_convert_internal: check_name failed for name ._.BC.B4iVrC with
NT_STATUS_OBJECT_NAME_NOT_FOUND
[2017/10/30 22:39:09.911426, 3]
../source3/smbd/error.c:82(error_packet_set)
NT error packet at ../source3/smbd/trans2.c(2716) cmd=50 (SMBtrans2)
NT_STATUS_OBJECT_NAME_NOT_FOUND
[2017/10/30 22:39:09.912428, 3] ../source3/smbd/process.c:1957(process_smb)
Transaction 40 of length 112 (0 toread)
[2017/10/30 22:39:09.912466, 3]
../source3/smbd/process.c:1538(switch_message)
switch message SMBntcreateX (pid 1672) conn 0x560deaead7c0
[2017/10/30 22:39:09.912647, 2] ../source3/smbd/open.c:1342(open_file)
made opened file .BC.B4iVrC read=No write=Yes (numopen=1)
[2017/10/30 22:39:09.913906, 3] ../source3/smbd/process.c:1957(process_smb)
Transaction 41 of length 45 (0 toread)
[2017/10/30 22:39:09.913945, 3]
../source3/smbd/process.c:1538(switch_message)
switch message SMBclose (pid 1672) conn 0x560deaead7c0
[2017/10/30 22:39:09.913966, 3] ../source3/smbd/reply.c:5399(reply_close)
Close file fd=33 fnum 58375 (numopen=1)
[2017/10/30 22:39:09.914019, 2]
../source3/smbd/close.c:788(close_normal_file)
made closed file .BC.B4iVrC (numopen=0) NT_STATUS_OK
[2017/10/30 22:39:09.915266, 3] ../source3/smbd/process.c:1957(process_smb)
Transaction 42 of length 122 (0 toread)
[2017/10/30 22:39:09.915304, 3]
../source3/smbd/process.c:1538(switch_message)
switch message SMBtrans2 (pid 1672) conn 0x560deaead7c0
[2017/10/30 22:39:09.915329, 3]
../source3/smbd/trans2.c:2632(call_trans2findfirst)
call_trans2findfirst: dirtype = 16, maxentries = 4, close_after_first=1,
close_if_end = 1 requires_resume_key = 1 backup_priv = 0 level = 0x104,
max_data_bytes = 16644
[2017/10/30 22:39:09.915419, 3]
../source3/smbd/filename.c:1615(filename_convert_internal)
filename_convert_internal: check_name failed for name ._Blackjack 2.0__
with NT_STATUS_OBJECT_NAME_NOT_FOUND
[2017/10/30 22:39:09.915458, 3]
../source3/smbd/error.c:82(error_packet_set)
NT error packet at ../source3/smbd/trans2.c(2716) cmd=50 (SMBtrans2)
NT_STATUS_OBJECT_NAME_NOT_FOUND
[2017/10/30 22:39:09.916351, 3] ../source3/smbd/process.c:1957(process_smb)
Transaction 43 of length 82 (0 toread)
[2017/10/30 22:39:09.916388, 3]
../source3/smbd/process.c:1538(switch_message)
switch message SMBtrans2 (pid 1672) conn 0x560deaead7c0
[2017/10/30 22:39:09.916411, 3]
../source3/smbd/trans2.c:5775(call_trans2qfilepathinfo)
call_trans2qfilepathinfo: TRANSACT2_QPATHINFO: level = 257
[2017/10/30 22:39:09.916461, 3]
../source3/smbd/trans2.c:5938(call_trans2qfilepathinfo)
call_trans2qfilepathinfo . (fnum [fsp is NULL]) level=257 call=5
total_data=0
[2017/10/30 22:39:09.917505, 3] ../source3/smbd/process.c:1957(process_smb)
Transaction 44 of length 126 (0 toread)
[2017/10/30 22:39:09.917543, 3]
../source3/smbd/process.c:1538(switch_message)
switch message SMBntcreateX (pid 1672) conn 0x560deaead7c0
[2017/10/30 22:39:09.917633, 3]
../source3/smbd/filename.c:1615(filename_convert_internal)
filename_convert_internal: check_name failed for name ._Blackjack 2.0__
with NT_STATUS_OBJECT_NAME_NOT_FOUND
[2017/10/30 22:39:09.917660, 3]
../source3/smbd/error.c:82(error_packet_set)
NT error packet at ../source3/smbd/nttrans.c(556) cmd=162 (SMBntcreateX)
NT_STATUS_OBJECT_NAME_NOT_FOUND
[2017/10/30 22:39:09.944304, 3] ../source3/smbd/process.c:1957(process_smb)
Transaction 45 of length 66 (0 toread)
[2017/10/30 22:39:09.944347, 3]
../source3/smbd/process.c:1538(switch_message)
switch message SMBunlink (pid 1672) conn 0x560deaead7c0
[2017/10/30 22:39:09.944397, 3] ../source3/smbd/reply.c:3257(reply_unlink)
reply_unlink : .BC.B4iVrC
[2017/10/30 22:39:09.944629, 2] ../source3/smbd/open.c:1342(open_file)
made opened file .BC.B4iVrC read=No write=No (numopen=1)
[2017/10/30 22:39:09.944925, 2]
../source3/smbd/close.c:788(close_normal_file)
made closed file .BC.B4iVrC (numopen=0) NT_STATUS_OK
[2017/10/30 22:39:09.946160, 3] ../source3/smbd/process.c:1957(process_smb)
Transaction 46 of length 112 (0 toread)
[2017/10/30 22:39:09.946203, 3]
../source3/smbd/process.c:1538(switch_message)
switch message SMBtrans2 (pid 1672) conn 0x560deaead7c0
[2017/10/30 22:39:09.946228, 3]
../source3/smbd/trans2.c:2632(call_trans2findfirst)
call_trans2findfirst: dirtype = 16, maxentries = 4, close_after_first=1,
close_if_end = 1 requires_resume_key = 1 backup_priv = 0 level = 0x104,
max_data_bytes = 16644
[2017/10/30 22:39:09.946322, 3]
../source3/smbd/filename.c:1615(filename_convert_internal)
filename_convert_internal: check_name failed for name ._.BC.B4iVrC with
NT_STATUS_OBJECT_NAME_NOT_FOUND
[2017/10/30 22:39:09.946348, 3]
../source3/smbd/error.c:82(error_packet_set)
NT error packet at ../source3/smbd/trans2.c(2716) cmd=50 (SMBtrans2)
NT_STATUS_OBJECT_NAME_NOT_FOUND
Any ideas? On the server side, the share is hosted on an ext4 volume. Here
is my smb.conf (taken from `testparm -s`):
# Global parameters
[global]
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
usershare allow guests = Yes
map to guest = Bad User
ntlm auth = Yes
obey pam restrictions = Yes
pam password change = Yes
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:*
%n\n *password\supdated\ssuccessfully* .
passwd program = /usr/bin/passwd %u
server role = standalone server
unix password sync = Yes
dns proxy = No
fruit:encoding = native
idmap config * : backend = tdb
hide files = /.DS_Store/Network Trash
Folder/TheFindByContentFolder/TheVolumeSettingsFolder/Temporary
Items/.TemporaryItems/.VolumeIcon.icns/Icon?/.FBCIndex/.FBCLockFolder/
ea support = Yes
vfs objects = catia fruit streams_xattr
[homes]
comment = Home Directories
browseable = No
create mask = 0700
directory mask = 0700
valid users = %S
[printers]
comment = All Printers
path = /var/spool/samba
browseable = No
printable = Yes
create mask = 0700
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
[Files]
path = /srv/Test
guest ok = Yes
write list = made
Here are the results of ls -l /srv:
total 4
drwxrwxrwx 2 root root 4096 Oct 30 22:39 Test
Thanks
Keith
More information about the samba
mailing list