Check this answer: https://askubuntu.com/a/391709/911198
In short, it's an oversight in Ubuntu's permission management that you have to manually fix. The directories for network shares have to be executable for others all the way down to the root, but checking the share with guest box in the UI doesn't ensure that.
Quoting the above answer:
check permissions on all the directories leading from /
down to your shared folder too: if ["other users"] don't have execute permissions for a directory then they're prevented for accessing any paths below that point, including your share.
Let's say you wanted to share /mnt/external/ntfs-drive/folder
. You could add the 'x' permissions on all the parent directories with this command:
sudo chmod o+x /mnt /mnt/external /mnt/external/ntfs-drive
You also need to set read, write and execute permissions for the shared folder and any contents, but for parent directories execute permission is enough.
For example, it won't work if any of the ancestor directories have permissions like drwxr-x---
(the default permissions on your home directory at /home/<username>/
) -- they need to be at least drwxr-x--x
. Using the gui to share a directory inside ~
with guest access does not fix this, you have to do it manually.
To see permissions, use ls -l <path-to-directory>
. For more information on permissions, see https://en.wikipedia.org/wiki/File-system_permissions#Traditional_Unix_permissions