USB Platte für Nextcloud LXC durchreichen

MrFreezeman

New Member
May 19, 2024
2
0
1
Hallo Leute,

habe Proxmox 8.2.2 auf einem Intel NUC mit einer internen SSD mit 256 GB am laufen. Nun hab ich einen Container auf Basis von Ubuntu 22.04 aufgebaut. Das Ziel ist, Nextcloud Hub 8 (das aktuellste) gemäß technischen Empfehlung von Nextcloud aufzubauen. Das System an sich hab ich soweit vorbereitet und läuft. Bevor ich den Nextcloud Wizard starte, möchte ich das Datenverzeichnis in /mnt/nextcloud-data legen. Der Ordner existiert bereits im Container. Auf dem PVE Host hab ich die USB SSD bereits mit ext4 formatiert und gemountet auf ebenfalls /mnt/nextcloud-data. Nun hab ich auch die bind mounts über die Container-Konfigurationsdatei angelegt (mp0 ...). Das mounten hatte erfolgreich funktioniert. Allerdings konnte ich mit dem root-user auf dem Container keine Schreibrechte erlangen. Ich habe verstanden, dass ich dafür die uids und gids in der Container-Konfigurationsdatei mappen muss. Das hab ich gemacht, dann konnte ich auch mit dem root-user auf dem Container Dateien in dem Mount-Verzeichnis erstellen.

Nächster Schritt: Für Nextcloud muss ja der www-data:www-data User Besitzer des Datenverzeichnisses werden (nicht wie aktuell der root-user). Wie kriege ich das hin? Ich habe das uid/gid-mapping in der Container-Konfigurationsdatei auf 33 angepasst (www-data). Allerdings kann ich im Container den Besitzer des Datenverzeichnisses nicht ändern. Das System sagt, ich hätte keine Rechte dazu. Was mache ich falsch?
 
Ist das ein privilegierter oder ein unprivilegierter Container?

Bei mir läuft NextCloud in einem privilegierten LXC (ohne UID/GID Mapping) auch über MountPoint. Hab nur User und Rechte angepasst, wie es sich NextCloud wünscht.

Code:
chown -R 1000:1000 /daten/nxcloud/ && chmod -R 750 /daten/nxcloud/
chown www-data:www-data /daten/nxcloud/.ocdata

Bin mir nicht sicher ob der 2. Befehl wirklich notwendig ist, weil die Datei .ocdata mittlerweile wieder auf 1000:1000 ist, und alles trotzdem wunderbar funktioniert.
 
Es ist ein unprivilegierter Container, wie er standardmäßig in Proxmox angelegt wird. Soll ja auch sicherheitstechnisch sinnvoller sein, oder? Jedenfalls ist das ja gerade das Problem. Wenn ich das richtig verstehe, hängt es am user mapping in der Konfigurationsdatei des Containers.
 
Hi,
mir ist bewusst, dass der Post schon ein paar Tage älter ist, da ich aber bei meiner Suche ebenfalls hierüber gestolpert bin, möchte ich für alle Nachfolgenden den Lösungsweg (der für mich funktioniert hat) beschreiben:
Ich gehe von eine laufenden Proxmox-Installation (bei mir Version 8.2.7) aus.

Als erstes die USB-Festplatte im Proxmox-Host über die Shell einbinden:
1.1: Gerät identifizieren
lsblk

1.2. Verzeichnis für Mountpoint erstellen
mkdir /media/ext_usb

1.3. Datenträger mounten: (? durch den entsprechenden Buchstabe aus 1.1. ersetzen)
mount /dev/sd?1 /media/ext_usb

1.4. UUID ermitteln: (? durch den entsprechenden Buchstabe aus 1.1. ersetzen)
blkid | grep -i sd?
(Ergebniss sollte etwa so aussehen z.B. /dev/sdb1: LABEL="Festplattenname" UUID="4a3cc723-4dd5-4b9b-b0bb-a11b6e111d0b" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="db119922-f1f1-400c-b012-1ccf1aebc444")

1.5. Eintrag in /etc/fstab ergänzen:
nano /etc/fstab
folgenden Eintrag ergänzen speichern und schließen (UUID ersetzen aus 1.4., auf Datensystem achten NFTS, EXT4, vFAT, ...)
UUID="4a3cc723-4dd5-4b9b-b0bb-a11b6e111d0b" /media/ext_usb ext4 defaults 0 0

2. Nextcloud-Container mittels Turnkey-Nextcloud-Template erstellen: (bei mir Version von 2024-10)
Hier noch keine Mounting-Points oder ähnliches angeben, lediglich Festplatte fürs System, CPU, RAM und Netzwerkeinstellungen vornehmen.
Container noch nicht starten.

3. In der Container-config (z.B. etc/pve/nodes/proxmox/lxc/100.conf) den Mountpoint ergänzen und speichern:
mp0: /media/ext_usb,mp=/shared
4. Jetzt den Nextcloud-Container starten und über Proxmox in der Shell anmelden. Den Wizard durchlaufen (admin-pw festlegen, ...). Anschließend in der Nextcould-config ( nano /var/www/nextcloud/config/config.php ) folgendes ändern:
4.1. im trusted_domains array die IP des Servers angeben (damit der Zugriff über die Weboberfläche klappt)
4.2. datadirectory auf /shared/nextcloud-data anpassen (vorher am besten den Ordner auf der USB-Platte schon anlegen)
4.3. logfile anpassen /shared/nextcloud-data/nextcloud.log

Jetzt einen reboot durchfühen und anschließend im Browser die Weboberfläche aufrufen und als admin anmelden. Unter "Verwaltungseinstellungen"->"System" sollte jetzt die Systemfestplatte und die externe USB-Platte angezeigt (siehe Screenshot) werden. Der Admin und neue Nutzer (sowie deren Dateien) werden nun auch der externen Festplatte abgelegt.

1729722895047.png

Sollte euch irgendwas in der Anleitung fehlen oder ich irgendwo Blödsinn reingeschrieben haben, einfach kurz melden/kommentieren.

viele Grüße
 
  • Like
Reactions: tomtim and UdoB

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!