this post was submitted on 29 Sep 2023
5 points (100.0% liked)

Linux

4 readers
2 users here now

founded 2 years ago
 

EDIT: This has been solved!! This link has the full post, but basically you need to ensure SELinux flags are set for every file, and this won't happen to new files added. I have appended the SELinux option as a context entry to my fstab and now every file shows!

So right off the bat, I understand that NFS is dependent on UID matching. What I can't find is a guide to setting this up that isn't either:

  1. Make all nfs media accessible by all, or
  2. Use advanced permissions that seem(?) reliant on professional server authentication that I can't wrap my head around ~~(I guess I need to take some Linux classes?)~~ I would happily work with anyone willing to help me understand how to make this work though.

As for Samba: Well it seemed like I had everything set up well enough. I can login with each of the three users just fine. All files and folders have 02777 permissions with correct ownership. This was set after initially using just 777, and a troubleshooting answer on a Stack Exchange-like site advised 02777. However, files that I added shortly after setting up Samba and getting it running are simply not showing in client systems. And crucially, this is even the case on machines that logged in the first time after the file changes, ruling out the potential for bad client-side caching. Is there a server-side caching I'm not aware of?

I can run chmod -R 02777 * all day til the cows come home for the entire drive that's being shared (under /mnt/4tb, yes this is related to my previous thread on reddit r/linuxadmin). But no matter how I run it alongside restarting samba (sudo systemctl restart smb), it still won't show those newer files. Testparm succeeds, no errors in the config. FWIW, I printed the config below

[global]
	workgroup = SAMBA
	security = user
    unix extensions = no
    server string = Ravens Hoard
	passdb backend = tdbsam
    inherit permissions = yes
	printing = cups
	printcap name = cups
	load printers = yes
	cups options = raw

	# Install samba-usershares package for support
	include = /etc/samba/usershares.conf

[gen-media]
    comment = General Media Repository
    path = /mnt/4tb/general
    writeable = yes
    browseable = yes
    public = no
    create mask = 0644
    directory mask = 0755
    valid users = user4, user2, user1
    force user = user4

[intake]
    comment = Intake Directory
    path = /mnt/4tb/intake
    read only = no
    writeable = yes
    browseable = yes
    public = no
    create mask = 0644
    directory mask = 0755
    valid users = user1

[user1]
    comment = Share for user1
    path = /mnt/4tb/user1
    read only = no
    writeable = yes
    browseable = yes
    public = no
    create mask = 0664
    force create mode = 0664
    directory mask = 02755
    force directory mode = 02755
    valid users = user1

[user2]
    comment = Share for user2
    path = /mnt/4tb/user2
    read only = no
    writeable = yes
    browseable = yes
    public = no
    create mask = 0644
    directory mask = 0755
    valid users = user2

[user3]
    Comment = Share for user3
    path = /mnt/4tb/user3
    read only = no
    writeable = yes
    browseable = yes
    public = no
    create mask = 0644
    directory mask = 0755
    valid users = user1, user3
    force user = user3

Lastly in my explorations on file sharing, is SFTP/SSH-based file sharing. But with this, I don't know of a way for Windows clients to mount the share transparently. Is this possible? Or would the Windows client be stuck with using 3rd party software like WinSCP?

FWIW, The idea of this is that the shares can be read and written to by Android through Solid Explorer, Android TV using Kodi, and Windows 10. It would have 3 users and 4 shares, as can be seen in the samba config. Any help towards getting one of these methods working for this purpose would be very much appreciated.

you are viewing a single comment's thread
view the rest of the comments
[–] thanevim@kbin.social 2 points 1 year ago* (last edited 1 year ago)

Turns out, yes it was. For Samba shares, SELinux requires every file to have the sudo semanage fcontext --add --type "samba_share_t" command run on it. And of course, the new files wouldn't have had this like the ones that were present when I was setting up Samba...

I expanded my search to making a post on the Fedora forums, where an @/glb pointed out that fact, and thankfully was able to also state that adding it to fstab for the drive will automate that process at boot. So the issue is now solved, thanks to glb over here: https://discussion.fedoraproject.org/t/file-sharing-woes-samba-nfs-sftp/91112/13