Mounting the (empty) home share from a Samba server as home directory (tested on an Ubuntu 20.04.1 client against a Ubuntu 20.04.1 Samba server) some programs don't work correctly (i.e. Oracle SQL Developer Data Modeler (maybe a Netbeans component?) hangs at "Restoring Windows").
This happens using the newer SMB dialects (default 3.11) and doesn't happen with SMB1 (which is deprecated and shouldn't be used anymore).
In the server log files I only saw some ACCESS_DENIED errors, probably on .oraclesqldeveloperdatamodeler/system18.104.22.168.1538/system_cache/config/Windows2Local/Modes/.nbattrs
Using a Windows Server as file store didn't show this behavior.
Changing some options I found out that the default value of "hide dot files = yes" on the Samba server side is causing the permission problems on Samba (probably because the filename starts with a dot). Setting it to "hide dot files = no" allowed the program to start as it does on local homes and on the home share mounted from the Windows Server.
Further testing revealed that the posix extensions in SMB1 seem to have hidden the issue as disabling them caused the same error, but with more details:
openfile_ntcreate: attributes mismatch for file .oraclesqldeveloperdatamodeler/system22.214.171.124.1538/system_cache/config/Windows2Local/Modes/.nbattrs (22 0) (0100764, 0766)
I don't know if changing the default of this parameter would break other things, but I think that the suggestion to set the value of this parameter to no for the home drive share should probably probably be added to the man page or even in the default smb.conf for the [homes] share as the default value causes issues not seen using a Windows Server file share.
I'm afraid we'll need more data as to exactly what access is failing in order to investigate this. The current description doesn't provide enough info in order to attempt a fix here.
Created attachment 16199 [details]
Server logfiles with the default value of hide dot files = Yes
Created attachment 16200 [details]
Server logfiles with hide dot files = No - with which the program works
On the client side using ls -alh, I can't see any differences in the permission bits - but probably more than the seen permission bits are being checked.
The program uses a Java VM, so maybe there are more translations involved than when running a compiled C program.
-rwxr-xr-x 1 testsmb testsmb 3,2K Sep 6 18:18 /home/testsmb/.oraclesqldeveloperdatamodeler/system126.96.36.199.1538/system_cache/config/Windows2Local/Modes/.nbattrs
-rwxr-xr-x 1 testsmb testsmb 310 Sep 6 18:22 /home/testsmb/.oraclesqldeveloperdatamodeler/system188.8.131.52.1538/system_cache/config/Windows2Local/Modes/.nbattrs
The program seems to close the file (or at least write some bytes) and then to open it again, which fails with the default of hide dot files = Yes
Probably you find more infos in the log files of the server (these are full logs starting with the login of the user into the desktop environment and then starting the program, so you proably want to grep for the above path).
But before putting to much effort in investigating this, I'm not sure whether "hide dot files" is really a good option for linux clients anyway - I think this was rather made for compatibility with DOS/Windows clients (to prevent users from deleting files accidentially or really to map the HIDDEN attribute from old DOS clients), so maybe this should be disabled anyway when talking to a linux client?
Created attachment 16201 [details]
smb.conf from the server with hide dot files = no (the only change between the two logs)