Hello,
I notice that you are using "security=domain". If you are using Microsoft Active Diectory, try "security=ads" (I can guide you, it's more difficult) else where use "security=user". In the case of security=user, the user must exist in the linux user database and in the samba user database.
The user nobody must exist in the /etc/passwd and /etc/shadows; normaly it was create.
Try in a first step to give all unix right on the directory and his content.
For example, the directory is /home/user : chmod -R 777 /home/user or give the correct right to it. The Linux user nobody must access to that directory in case of public=yes.
For my part I use the Linux user smbuser with no access under Linux and I force the samba user to be smbuser of the share "force user = smbuser".
Try the directory to be owned by samba/linux user :
chown -R smbuser /home/user
chmod -R 700 /home/user
Notice that to access a smb server from windows by the browsing, Windows try to authenticate you on the samba server with the couple user/password of you Windows session.
Try direct access in the windows browser like \\server\public. "server" = netbios name = linux hostname wihout domain suffix
Or use command line like "net use h: \\server\public"
security needs to be "user"
There is an great tutorial for setting up Samba on Fedora already answered here: https://ask.fedoraproject.org/en/question/40353/how-to-enable-samba-share-for-a-specific-directory-fedora-20/
This answer gives indept explanation on how to create share, setup firewall to let users connect to your samba server and how to disable selinux from blocking samba. Good luck.