this post was submitted on 04 Feb 2025
22 points (89.3% liked)

Selfhosted

41674 readers
409 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

Hi all, I'm so confused about what I'm doing wrong and couldn't find any guides/troubleshooting for my specific problem, so hoping someone here can help.

I'm setting up a new Proxmox server and trying to share a folder between 2 Ubuntu VMs - a "Fileserver" VM running the SMB server and a VM that I will be running docker on ("docker VM")

my smb.conf on the fileserver:

[pool]
     path=/mnt/mergerfs
     read only = no
     browsable = yes

my fstab entry on the VM running docker:

//192.168.0.20/pool     /mnt/pool       cifs    _netdev,credentials=/etc/.smbcredentials,uid=1000,gid=1000      0       0

On the Docker VM, I can see that the folder is mounted properly with the correct permissions for the uid/gid specified (dockeruser) and with 755 permissions, but I am unable to write to it with either dockeruser or root. Interestingly, I am able to DELETE files on the share, which is confusing the hell out of me.

If I mount is as root (no uid/gid arguments in fstab), I am able to write to it, but for "best practices" I'd like to get it working with a non-root user. Any ideas?

you are viewing a single comment's thread
view the rest of the comments
[–] just_another_person@lemmy.world 2 points 18 hours ago* (last edited 18 hours ago)
  1. This is the most complex way of simply sharing files between containers I've ever heard. That sure sounds like bad advice to me. You have a link to that?

All I'm saying is that if you're sharing files between two containers, giving them both volumes and using the network to share those files is not the best practiced way of doing that. One volume, two containers, both mount the same volume and skip the network is the way to do that.

  1. Samba maps users in its own DB to users that exist on its host. If you're running it in a container, it's likely it's just going to default to root with uid=1000. So if you start a brand new Samba server, you need a fresh user to get started, right? So you create a user called 'johndoe' with uid=1100 and give it a password. Now, that user is ONLY a samba user. It doesn't get created as an OS user. So if your default OS user is 'ubuntu' with uid=1000, you're going to have permissions issues between created files for these users because 1100 is not equal to 1000.

To solve for this, you create user mapping in the samba configs that say "Hey, johndoe in samba is actually the ubuntu user on the OS", and that's how it solves for permissions. Here's an example issue that is similar to yours to give you more context. You can start reading from there to solve for your specific use-case.

If you choose NOT to fix the user mapping, you're going to have to keep going back to this volume and chown'ing all the files and folders to make sure whichever user you're connecting with via samba can actually read/write files.