Hallo zusammen,
ich verzweifle noch daran einen Samba-Fileserver innerhalb eines unpriviligierten LXC-Containers so ans Laufen zu bekommen, dass ich auch die CIFS-Mounts von außen lesen und beschreiben kann.
Mein momentanes Setup (anonymisiert, nur relevante Ausschnitte aus den Configs):
1. Proxmox-Host:
root@proxmox-host> pveversion
pve-manager/9.1.4/5ac30304265fbd8e (running kernel: 6.17.4-2-pve)
verwendetes LXC-Template:
debian-13-standard_13.1-2_amd64.tar.zst
root@proxmox-host> cat /etc/pve/lxc/180.conf
arch: amd64
cmode: tty
console: 1
cores: 2
features: nesting=1
hostname: paperless-ngx
memory: 4096
mp0: local:180/vm-180-disk-1.raw,mp=/opt/paperless,backup=1,size=50G
nameserver: 172.xx.yy.zz
net0: name=enp0s0,bridge=vmbr0,gw=172.xx.yy.1,hwaddr=xx:xx:xx:xx:xx:xx,ip=172.xx.yy.80/24,type=veth
ostype: debian
rootfs: local:180/vm-180-disk-0.raw,size=10G
searchdomain: abc.def.de
swap: 1024
unprivileged: 1
lxc.idmap: u 0 100000 1001
lxc.idmap: g 0 100000 1001
lxc.idmap: u 1002 1002 1
lxc.idmap: g 1002 1002 1
lxc.idmap: u 1003 101003 64533
lxc.idmap: g 100 101003 64533
root@proxmox-host> cat /etc/subuid
root:100000:65536
paperless-ngx:165536:65536
root:1002:1
root@proxmox-host> cat /etc/subgid
root:100000:65536
paperless-ngx:165536:65536
root:1002:1
root@proxmox-host> cat /etc/passwd
paperless-ngx:x:1002:1002:Account notwendig wegen Samba in unprivilegiertem Container:/var/lib/vz/images/180:/usr/sbin/nologin
root@proxmox-host> ls -aln /var/lib/vz/images/180/vm-180-disk-1.raw
-rw-r----- 1 1002 1002 53687091200 9. Jan 11:50 /var/lib/vz/images/180/vm-180-disk-1.raw
2. im LXC-Container:
root@paperless-ngx> cat /etc/passwd
paperless:x:1002:1002::/home/paperless:/bin/bash
root@paperless-ngx> ls -aln /opt
drwxrwxrwx 11 65534 65534 4096 Jan 6 16:22 paperless
root@paperless-ngx> cat /etc/samba/smb.conf | sed 's/[#|;].*//;/^ *$/d'
[global]
workgroup = WORKGROUP
log file = /var/log/samba/log.%m
max log size = 1000
logging = file
panic action = /usr/share/samba/panic-action %d
server role = standalone server
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
usershare allow guests = yes
[consume]
comment = Paperless Daten
path = /opt/paperless/consume
writeable = yes
create mask = 0666
directory mask = 02777
force user = paperless
guest ok = yes
vfs objects = posixacl nfs4acl_xattr acl_xattr
nfs4acl_xattr:xattr_name = user.nfs4_acl
nfs4acl_xattr:encoding = nfs
nfs4acl_xattr:version = 41
nfs4acl_xattr:default acl style = windows
root@paperless-ngx> systemctl status smb
● smbd.service - Samba SMB Daemon
Loaded: loaded (/usr/lib/systemd/system/smbd.service; enabled; preset: enabled)
Active: active (running) since Thu 2026-01-08 12:28:55 CET; 24h ago
Invocation: 8f9f25d4bddb46c19901ff8e09eae591
Docs: man:smbd(8)
man:samba(7)
man:smb.conf(5)
Process: 218 ExecCondition=/usr/share/samba/is-configured smb (code=exited, status=0/SUCCESS)
Process: 221 ExecStartPre=/usr/share/samba/update-apparmor-samba-profile (code=exited, status=0/SUCCESS)
Main PID: 222 (smbd)
Status: "smbd: ready to serve connections..."
Tasks: 4 (limit: 28200)
Memory: 14.9M (peak: 15.9M)
CPU: 2.189s
CGroup: /system.slice/smbd.service
├─ 222 /usr/sbin/smbd --foreground --no-process-group
├─ 226 "smbd: notifyd" .
├─ 227 "smbd: cleanupd "
└─646191 "smbd: client [172.xx.yy.225]"
Jan 09 12:03:36 paperless-ngx smbd[646191]: pam_unix(samba:session): session opened for user paperless(uid=1002) by (uid=1002) by (uid=0)
3. auf einem Linux-Client:
vor dem Mounten:
user@client> ls -aln /home/user/mnt/
drwxrwxrwx 2 1000 1000 4096 Jan 6 18:02 paperless
user@client> sudo mount -t cifs //172.xx.yy.80/consume/ /home/user/mnt/paperless/ -o username=paperless
Password for paperless@//172.xx.yy.80/consume/:
user@client> cat /proc/mounts
//172.xx.yy.80/consume /home/user/mnt/paperless cifs rw,relatime,vers=3.1.1,cache=strict,upcall_target=app,username=paperless,uid=0,noforceuid,gid=0,noforcegid,addr=172.xx.yy.80,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=4194304,wsize=4194304,bsize=1048576,retrans=1,echo_interval=60,actimeo=1,closetimeo=1 0 0
nach dem Mounten:
user@client> ls -aln /home/user/mnt/
drwxr-xr-x? 2 0 0 0 Jan 8 12:15 paperless
user@client> touch /home/user/mnt/paperless/test
touch: cannot touch '/home/user/mnt/paperless/test': Permission denied
user@client> ls -aln /home/haasc/mnt/paperless/
ls: reading directory '/home/haasc/mnt/paperless/': Permission denied
total 0
Meine Fragen:
Schon mal vielen Dank!
Christoph.
ich verzweifle noch daran einen Samba-Fileserver innerhalb eines unpriviligierten LXC-Containers so ans Laufen zu bekommen, dass ich auch die CIFS-Mounts von außen lesen und beschreiben kann.
Mein momentanes Setup (anonymisiert, nur relevante Ausschnitte aus den Configs):
1. Proxmox-Host:
root@proxmox-host> pveversion
pve-manager/9.1.4/5ac30304265fbd8e (running kernel: 6.17.4-2-pve)
verwendetes LXC-Template:
debian-13-standard_13.1-2_amd64.tar.zst
root@proxmox-host> cat /etc/pve/lxc/180.conf
arch: amd64
cmode: tty
console: 1
cores: 2
features: nesting=1
hostname: paperless-ngx
memory: 4096
mp0: local:180/vm-180-disk-1.raw,mp=/opt/paperless,backup=1,size=50G
nameserver: 172.xx.yy.zz
net0: name=enp0s0,bridge=vmbr0,gw=172.xx.yy.1,hwaddr=xx:xx:xx:xx:xx:xx,ip=172.xx.yy.80/24,type=veth
ostype: debian
rootfs: local:180/vm-180-disk-0.raw,size=10G
searchdomain: abc.def.de
swap: 1024
unprivileged: 1
lxc.idmap: u 0 100000 1001
lxc.idmap: g 0 100000 1001
lxc.idmap: u 1002 1002 1
lxc.idmap: g 1002 1002 1
lxc.idmap: u 1003 101003 64533
lxc.idmap: g 100 101003 64533
root@proxmox-host> cat /etc/subuid
root:100000:65536
paperless-ngx:165536:65536
root:1002:1
root@proxmox-host> cat /etc/subgid
root:100000:65536
paperless-ngx:165536:65536
root:1002:1
root@proxmox-host> cat /etc/passwd
paperless-ngx:x:1002:1002:Account notwendig wegen Samba in unprivilegiertem Container:/var/lib/vz/images/180:/usr/sbin/nologin
root@proxmox-host> ls -aln /var/lib/vz/images/180/vm-180-disk-1.raw
-rw-r----- 1 1002 1002 53687091200 9. Jan 11:50 /var/lib/vz/images/180/vm-180-disk-1.raw
2. im LXC-Container:
root@paperless-ngx> cat /etc/passwd
paperless:x:1002:1002::/home/paperless:/bin/bash
root@paperless-ngx> ls -aln /opt
drwxrwxrwx 11 65534 65534 4096 Jan 6 16:22 paperless
root@paperless-ngx> cat /etc/samba/smb.conf | sed 's/[#|;].*//;/^ *$/d'
[global]
workgroup = WORKGROUP
log file = /var/log/samba/log.%m
max log size = 1000
logging = file
panic action = /usr/share/samba/panic-action %d
server role = standalone server
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
usershare allow guests = yes
[consume]
comment = Paperless Daten
path = /opt/paperless/consume
writeable = yes
create mask = 0666
directory mask = 02777
force user = paperless
guest ok = yes
vfs objects = posixacl nfs4acl_xattr acl_xattr
nfs4acl_xattr:xattr_name = user.nfs4_acl
nfs4acl_xattr:encoding = nfs
nfs4acl_xattr:version = 41
nfs4acl_xattr:default acl style = windows
root@paperless-ngx> systemctl status smb
● smbd.service - Samba SMB Daemon
Loaded: loaded (/usr/lib/systemd/system/smbd.service; enabled; preset: enabled)
Active: active (running) since Thu 2026-01-08 12:28:55 CET; 24h ago
Invocation: 8f9f25d4bddb46c19901ff8e09eae591
Docs: man:smbd(8)
man:samba(7)
man:smb.conf(5)
Process: 218 ExecCondition=/usr/share/samba/is-configured smb (code=exited, status=0/SUCCESS)
Process: 221 ExecStartPre=/usr/share/samba/update-apparmor-samba-profile (code=exited, status=0/SUCCESS)
Main PID: 222 (smbd)
Status: "smbd: ready to serve connections..."
Tasks: 4 (limit: 28200)
Memory: 14.9M (peak: 15.9M)
CPU: 2.189s
CGroup: /system.slice/smbd.service
├─ 222 /usr/sbin/smbd --foreground --no-process-group
├─ 226 "smbd: notifyd" .
├─ 227 "smbd: cleanupd "
└─646191 "smbd: client [172.xx.yy.225]"
Jan 09 12:03:36 paperless-ngx smbd[646191]: pam_unix(samba:session): session opened for user paperless(uid=1002) by (uid=1002) by (uid=0)
3. auf einem Linux-Client:
vor dem Mounten:
user@client> ls -aln /home/user/mnt/
drwxrwxrwx 2 1000 1000 4096 Jan 6 18:02 paperless
user@client> sudo mount -t cifs //172.xx.yy.80/consume/ /home/user/mnt/paperless/ -o username=paperless
Password for paperless@//172.xx.yy.80/consume/:
user@client> cat /proc/mounts
//172.xx.yy.80/consume /home/user/mnt/paperless cifs rw,relatime,vers=3.1.1,cache=strict,upcall_target=app,username=paperless,uid=0,noforceuid,gid=0,noforcegid,addr=172.xx.yy.80,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=4194304,wsize=4194304,bsize=1048576,retrans=1,echo_interval=60,actimeo=1,closetimeo=1 0 0
nach dem Mounten:
user@client> ls -aln /home/user/mnt/
drwxr-xr-x? 2 0 0 0 Jan 8 12:15 paperless
user@client> touch /home/user/mnt/paperless/test
touch: cannot touch '/home/user/mnt/paperless/test': Permission denied
user@client> ls -aln /home/haasc/mnt/paperless/
ls: reading directory '/home/haasc/mnt/paperless/': Permission denied
total 0
Meine Fragen:
- Wo liegt der Fehler und wie löse ich das Problem?
- für welchen Benutzer muss ich eigentlich bei einem Samba-Server die lxc.idmaps eintragen? Für den Benutzer dem das Share gehört (hier: paperless), oder für root (da Samba ja ein Service ist)?
- Benötige ich überhaupt Bind-Mounts, oder kann ich auch das rootfs des LXC-Containers als Samba-Share verwenden?
Schon mal vielen Dank!
Christoph.

