Probleme beim Einrichten eines Samba-Servers im unprivilegierten LXC-Container

chhaas

Member
Nov 28, 2021
3
0
21
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:
  • 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.
 
keine Antworten, aber vielleicht Inspirationen:

mein Samba läuft allerdings unter ubuntu und die conf-Datei sieht so aus:

Code:
#SMB \\\192.168.1.16\zfs30w
#ZFS-Pool stripe ca. 30TB
#Festplattenschaechte 1,2,3
#-----------------------------
arch: amd64
cores: 2
features: nesting=1
hostname: zfs30w
memory: 4096
mp0: /dreizig/data,mp=/mnt/data
net0: name=eth0,bridge=vmbr0,firewall=1,hwaddr=BC:24:11:37:F9:A2,ip=dhcp,type=veth
onboot: 1
ostype: ubuntu
rootfs: local-zfs:subvol-200-disk-0,size=8G
swap: 512
tags: NAS

als Screenshot somit:

1767981152015.png

in Erinnerung hab ich dann darin ganz normal Samba installiert und die smb.conf am Ende um solch einen Block ergänzt:

Code:
[nas]
   path = /mnt/data
   public = yes
   writeable = yes
   comment = unsere Daten
   force group = root
   force user = root
   create mask = 0770
   directory mask = 0771
   force create mode = 0660
   force directory mode = 0770
   acl allow execute always = yes

Achso, was noch wichtig war - fiel mir eben noch ein:
der/die SMB-User sollten auch User im Ubuntu sein - hab Name & Passwort für beide Welten gleich gesetzt, also quasi sowas wie

Code:
adduser bediener
adduser bedienerin

smbpasswd -a bediener
smbpasswd -a bedienerin

da das Thema im Beitrag mit paperless verbunden ist, mag ich auch diese/s Video(anleitung) erwähnen:

https://youtu.be/b_AlgD6QmgA?si=6qJA9nK0CnLij5Ji

Viel Erfolg!
 
Last edited:
Sorry, aber ich verstehe dein Problem nicht ganz. Ich habe in ca. 20 Minuten einen LXC mit Samba komplett eingerichtet und kann problemlos von meinem Rechner darauf zugreifen.
Ist es ein Samba Problem, ich denke das hat nichts mit Proxmox zu tun
Code:
root@pve2:~#  cat /etc/pve/lxc/110.conf
arch: amd64
cores: 1
features: nesting=1
hostname: debian-smb
memory: 512
nameserver: 172.30.3.1
net0: name=eth0,bridge=vmbr0,firewall=1,hwaddr=BC:24:11:22:DE:2B,ip=dhcp,ip6=dhcp,type=veth
ostype: debian
rootfs: local-lvm:vm-110-disk-0,size=15G
swap: 512
unprivileged: 1
root@pve2:~#
root@debian-smb:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: eth0@if49: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether bc:24: brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.30.3.53/24 brd 172.30.3.255 scope global dynamic eth0
root@debian-smb:~# smbclient -L localhost -U micneu
Password for [WORKGROUP\micneu]:

    Sharename       Type      Comment
    ---------       ----      -------
    daten1          Disk      daten1
    daten2          Disk      daten2
    IPC$            IPC       IPC Service (debian-smb server (Samba, Ubuntu))
SMB1 disabled -- no workgroup available
root@debian-smb:~#
root@debian-smb:~# ll -R /share/
/share/:
total 16K
drwxr-xr-x  4 root root  4.0K Jan 10 20:57 .
drwxr-xr-x 19 root root  4.0K Jan 10 20:57 ..
drwxrwsr-x  2 root users 4.0K Jan 10 21:30 daten1
drwxrwsr-x  3 root users 4.0K Jan 10 21:22 daten2

/share/daten1:
total 24K
drwxrwsr-x 2 root   users 4.0K Jan 10 21:30 .
drwxr-xr-x 4 root   root  4.0K Jan 10 20:57 ..
-rwxrw-r-- 1 micneu users 8.1K Jan 10 21:23 .DS_Store
-rwxrw-r-- 1 micneu users 4.0K Jan 10 21:18 ._.DS_Store
-rwxrw-r-- 1 micneu users    0 Jan 10 21:30 testdatei1

/share/daten2:
total 28K
drwxrwsr-x 3 root   users 4.0K Jan 10 21:22  .
drwxr-xr-x 4 root   root  4.0K Jan 10 20:57  ..
-rwxrw-r-- 1 micneu users 8.1K Jan 10 21:22  .DS_Store
-rwxrw-r-- 1 micneu users 4.0K Jan 10 21:22  ._.DS_Store
drwxrwsr-x 2 micneu users 4.0K Jan 10 21:22 'Neuer Ordner'

'/share/daten2/Neuer Ordner':
total 8.0K
drwxrwsr-x 2 micneu users 4.0K Jan 10 21:22 .
drwxrwsr-x 3 root   users 4.0K Jan 10 21:22 ..
root@debian-smb:~#

SCR-20260110-theq.jpeg
 
Last edited:
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?
  • Wie schon geschrieben, sehe ich hier kein Proxmox-Problem. Du scheinst deinen Samba noch nicht richtig konfiguriert zu haben.
  • Da ich sehr selten LXCs einsetze, kann ich dazu keine fundierte Empfehlung aussprechen. Für meinen Test habe ich diesen Aspekt nicht weiter beachtet.
  • Schwer zu sagen, ob du Bind-Mounts benötigst – das musst du als Admin selbst entscheiden. Ich persönlich hätte mein NAS in den Container eingebunden und die PDFs dort speichern lassen. Auf jeden Fall solltest du dir Gedanken darüber machen, wie du deine PDFs sicherst (Backups).