Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung UGREEN NAS 03.11.2026 · 10 min Lesezeit

UGREEN NAS: Ordner und Rechte für Docker-Container richtig setzen

Teil 65 der UGREEN-Serie: Eigenes Konto für Container, PUID und PGID, Rechte auf Freigaben in UGOS und Datenordner mit Linux-Rechten, Schritt für Schritt an einer laufenden NAS.

Geprüft am 03.11.2026 · für UGOS Pro 1.21.0.0190

WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

Titelbild Teil 65: Ordner und Rechte für Docker-Container auf der UGREEN NAS

Viele Container brauchen Zugriff auf Ihre Daten: Ein Medienserver liest Filme, ein Download-Manager schreibt in einen Download-Ordner, ein Fotodienst liest Bilder. Auf einer UGREEN NAS scheitert das oft an den Rechten, denn UGOS regelt den Zugriff auf Freigaben mit eigenen Rechte-Einträgen und nicht nur mit klassischen Linux-Rechten. Diese Anleitung zeigt Schritt für Schritt, wie Sie ein eigenes Konto für Container anlegen, ihm genau die nötigen Freigaben öffnen und die Datenordner der Container sauber einrichten.

Die Screenshots und Ausgaben stammen von einer UGREEN DXP4800 Pro mit UGOS Pro 1.21.0.0190, auf der ein Medienserver und ein Download-Manager genau so laufen.

Voraussetzungen

  • Eine UGREEN NAS mit UGOS Pro und der App Docker, siehe Teil 63
  • Ein Konto mit Administratorrechten
  • SSH-Zugang, siehe Teil 52
  • Grundwissen zu Benutzern und Ordnerrechten, siehe Teil 23 und Teil 26
  • Etwa 30 Minuten

Warum Container an den Rechten scheitern

Ein Container läuft mit einer Benutzer-ID und einer Gruppen-ID. Viele Images, etwa die von linuxserver.io, lassen sich das über die Variablen PUID und PGID vorgeben. Auf einem normalen Linux-Server reicht es dann, Besitzer und Rechte eines Ordners passend zu setzen. Bei UGOS nicht: Die Freigaben tragen eigene Rechte-Einträge, die Sie in der App Dateien vergeben. Solange eine Freigabe die Rechte-Einträge von UGOS trägt, entscheiden diese, nicht Besitzer und Linux-Rechte. Ein Prozess mit der ID 1000 und der Gruppe 100 bekam bei unserem Test auf einer Freigabe ohne passenden Eintrag „Permission denied“, obwohl die Linux-Rechte offen aussahen.

Die Lösung ist ein eigenes Konto, das in UGOS genau die Rechte bekommt, die der Container braucht. Der Container läuft dann mit den IDs dieses Kontos.

Schritt 1: Ein eigenes Konto für Container anlegen

Legen Sie in der Systemsteuerung unter Benutzer ein neues Standardkonto an, zum Beispiel dockeruser, wie in Teil 23 beschrieben. Geben Sie ihm ein langes Passwort, das niemand braucht, und erlauben Sie keine Apps. Das Konto dient nur als Ausweis für Container, niemand meldet sich damit an.

Ermitteln Sie dann per SSH die IDs des Kontos:

id dockeruser

Bei uns lautet die Ausgabe:

uid=1001(dockeruser) gid=100(users) groups=100(users)

Die Zahl hinter uid ist später Ihre PUID, die hinter gid Ihre PGID. Standardkonten landen bei UGOS in der Gruppe users mit der ID 100.

Verifizieren: id zeigt das neue Konto mit eigener uid und der Gruppe users.

Schritt 2: Die Freigaben prüfen

Öffnen Sie die App Dateien und darin Freigegebene Ordner verwalten. Überlegen Sie für jede Freigabe, ob ein Container sie braucht und ob lesend reicht.

Freigegebene Ordner verwalten in der App Dateien mit Videothek, Download und docker
Freigegebene Ordner verwalten: 1 die Freigaben mit Speicherort, darunter Videothek für Medien, Download für Downloads und docker für die Container.

Bei uns braucht der Medienserver nur die Videothek, und zwar lesend. Der Download-Manager braucht den Ordner Download zum Schreiben. Auf Daten, TimeMachine und alle anderen Freigaben braucht kein Container Zugriff.

Verifizieren: Sie haben eine Liste, welcher Container welche Freigabe lesend oder schreibend braucht.

Schritt 3: Dem Konto die Rechte in UGOS geben

Markieren Sie in der App Dateien die Freigabe, etwa Videothek, und öffnen Sie mit Rechtsklick, Eigenschaften, die Eigenschaften, am Mac geht auch Command+I. Wechseln Sie in den Reiter Berechtigung.

Berechtigung der Videothek mit dockeruser auf Nur-Lesen
Eigenschaften der Videothek: 1 Reiter Berechtigung, 2 dockeruser mit Nur-Lesen, alle anderen Standardbenutzer ohne Zugriff.

Setzen Sie bei dockeruser den Haken bei Nur-Lesen und bestätigen Sie. Damit kann ein Container mit den IDs dieses Kontos die Filme lesen, aber nichts löschen oder verändern. Das schützt Ihre Sammlung auch dann, wenn der Container eine Schwachstelle hat oder falsch eingestellt ist.

Berechtigung des Ordners Download mit dockeruser auf Lesen und Schreiben
Eigenschaften des Ordners Download: 1 dockeruser mit Lesen/Schreiben.

Für den Ordner Download setzen Sie Lesen/Schreiben. Mehr braucht das Konto nicht.

Hinweis von UGOS zur Rangfolge der Berechtigungen
Hinweis zu den Berechtigungen: 1 bei Widerspruch zwischen Konto und Gruppe gilt Zugriff verweigern vor Nur-Lesen vor Lesen/Schreiben.

Wichtig ist die Regel, die UGOS beim Info-Symbol neben Berechtigungen nennt: Widersprechen sich die Rechte des Kontos und seiner Gruppe, gilt Zugriff verweigern vor Nur-Lesen vor Lesen/Schreiben vor Keine Einstellungen. Geben Sie die Rechte deshalb dem Konto dockeruser selbst und nicht der ganzen Gruppe users. Sonst bekommen auch alle anderen Standardkonten, etwa die der Familie, dieselben Rechte. Bei der Gruppe Standardbenutzer steht in der Liste rot Zugriff verweigern. Das bedeutet hier nur, dass die Gruppe keine Rechte hat. Setzen Sie bei der Gruppe nicht selbst den Haken bei Zugriff verweigern, sonst verliert auch dockeruser den Zugriff. Unterordner erben die Rechte der Freigabe.

Zur Kontrolle können Sie per SSH als dockeruser lesen:

sudo -u dockeruser ls /volume1/Videothek
sudo -u dockeruser ls /volume1/Daten

Der erste Befehl listet die Filme, der zweite endet bei uns mit „Permission denied“, genau wie gewünscht. Prüfen Sie mit ls und nicht mit test -r oder test -w. test wertet nur die Linux-Rechte aus und meldete bei uns auch dort Zugriff, wo UGOS ihn verweigert.

Verifizieren: dockeruser kann die freigegebenen Ordner lesen und bekommt auf allen anderen „Permission denied“.

Schritt 4: Den Ordner docker richtig einordnen

Die Compose-Dateien und Datenordner der Container liegen im Freigabeordner docker, bei uns auf Volume 2. Sehen Sie sich auch dessen Berechtigung an.

Berechtigung des Ordners docker ohne Zugriff für dockeruser
Eigenschaften des Ordners docker: 1 dockeruser ohne Zugriff.

Hier hat dockeruser keinen Zugriff, und das ist richtig so. Den Pfad zum Datenordner löst der Docker-Dienst beim Start als root auf und hängt ihn in den Container ein. Im Container sieht der Prozess nur diesen Ordner. Deshalb braucht dockeruser weder auf docker noch auf den Projektordner darüber Rechte, nur auf den Datenordner selbst. Auf der NAS selbst kommt dockeruser deshalb nicht bis zum Datenordner, sudo -u dockeruser ls /volume2/docker/plex/config meldet „Permission denied“. So kann ein Container nicht in die Daten anderer Container schauen, etwa in die Datenbank des Passwortmanagers.

Legen Sie für jedes Projekt einen eigenen Unterordner an, mit der Compose-Datei und den Datenordnern darunter:

/volume2/docker/plex/
  docker-compose.yaml
  .env
  config/
  transcode/

Verifizieren: Jedes Projekt hat einen eigenen Ordner unter docker, und sudo -u dockeruser ls /volume2/docker endet mit „Permission denied“.

Schritt 5: Datenordner auf Linux-Rechte umstellen

Neue Ordner unter docker erben die Rechte-Einträge von UGOS, bei uns nur für die Gruppe admin. dockeruser hätte dort keinen Zugriff, und ls zeigt nicht, was wirklich gilt. Stellen Sie die Datenordner deshalb auf Linux-Rechte um, dann gelten Besitzer und Rechte, die Sie mit ls sehen. Melden Sie sich zuerst als root an:

sudo -i

Geben Sie Ihr Passwort ein, danach arbeiten Sie als root:

mkdir -p /volume2/docker/plex/config /volume2/docker/plex/transcode
ugacltool del_all /volume2/docker/plex/config
ugacltool del_all /volume2/docker/plex/transcode
chown -R 1001:100 /volume2/docker/plex/config /volume2/docker/plex/transcode
chmod 750 /volume2/docker/plex/config /volume2/docker/plex/transcode

ugacltool del_all entfernt die Rechte-Einträge von UGOS, danach gelten Besitzer und Linux-Rechte. chown macht dockeruser zum Besitzer, chmod 750 erlaubt dem Besitzer alles, der Gruppe users Lesen und Öffnen und allen anderen nichts. Strenger ist chmod 700, dann darf nur dockeruser hinein. Prüfen Sie das Ergebnis:

ugacltool getace /volume2/docker/plex/config
ls -ln /volume2/docker/plex

Bei uns meldet ugacltool „It's Linux mode“, und ls zeigt (Auszug):

drwxr-x---  1   1001    100   14 Oct  2 06:59 config
-rwxrwxrwx+ 1      0      0 1821 Oct  2 07:51 docker-compose.yaml
drwxr-x---  1   1001    100   18 Nov  3 07:00 transcode

Das Pluszeichen hinter den Rechten der Compose-Datei zeigt, dass sie weiter die Rechte von UGOS trägt. Das ist gewollt, so können Sie sie als Administrator per SMB bearbeiten. Die Datenordner ohne Pluszeichen laufen mit Linux-Rechten.

Wenden Sie ugacltool del_all und chmod nur auf Datenordner von Containern an, nie auf eine Freigabe selbst. Auf einer Freigabe würden Sie damit die Rechte entfernen, die Sie in der App Dateien vergeben haben, und der Zugriff per SMB ginge verloren.

Verifizieren: ugacltool getace meldet für jeden Datenordner „It's Linux mode“, und ls -ln zeigt 1001 und 100 als Besitzer und Gruppe.

Schritt 6: PUID und PGID im Projekt setzen

Tragen Sie die IDs in der Compose-Datei ein, am besten über eine Datei .env im Projektordner. Ein Auszug für einen Medienserver:

# .env
PUID=1001
PGID=100
services:
  plex:
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
    volumes:
      - ./config:/config
      - ./transcode:/transcode
      - /volume1/Videothek:/volume1/Videothek:ro

Das :ro am Ende hängt die Videothek im Container nur lesend ein. Das ist ein zweiter Schutz zusätzlich zu den Rechten in UGOS. Der Download-Manager bekommt den Ordner Download ohne :ro. Manche Images nennen die Variablen anders, etwa USER_ID und GROUP_ID, das steht in der Beschreibung des Images auf Docker Hub oder in seiner Dokumentation.

Für Container, die laut Beschreibung als root laufen und keine PUID kennen, gelten die Rechte von dockeruser nicht, root darf auf eingehängte Ordner in der Regel alles. Hängen Sie solchen Containern Freigaben deshalb nur ein, wenn es nötig ist, und dann mit :ro.

Ändern Sie PUID, PGID oder Ordner, erstellen Sie den Container neu: in der Docker-App über das Projekt oder per SSH mit sudo docker compose up -d im Projektordner.

Verifizieren: Der Container startet, sein Protokoll zeigt keine Meldung wie „permission denied“, und neue Dateien in config gehören 1001:100.

Schritt 7: Rechte nach dem Start prüfen

Prüfen Sie nach dem ersten Start, wem die Dateien gehören, die der Container angelegt hat:

sudo find /volume2/docker/plex/config -maxdepth 2 -printf '%U:%G %m %p\n' | head

Alle Einträge sollten 1001:100 zeigen. Taucht dort 0:0 auf, hat der Container einen Teil als root angelegt, meist weil PUID oder PGID fehlen oder anders heißen. Öffnen Sie außerdem in der Docker-App den Reiter Protokoll des Containers und suchen Sie nach „permission“.

Verifizieren: Besitzer und Rechte stimmen, und der Dienst zeigt Ihre Medien oder Downloads.

Typische Fehler

  • Permission denied auf einer Freigabe: dockeruser fehlt der Eintrag in der App Dateien, oder die Gruppe hat dort Zugriff verweigern. Rechte direkt beim Konto setzen.
  • Permission denied im Datenordner: Der Ordner trägt noch die Rechte von UGOS oder gehört root. ugacltool del_all, chown und chmod wie in Schritt 5.
  • chmod wirkt nicht: Auf Ordnern mit Rechte-Einträgen von UGOS liefert chmod allein kein verlässliches Ergebnis. Entfernen Sie zuerst die Einträge mit ugacltool del_all und setzen Sie danach chown und chmod.
  • Admin-Gruppe als Abkürzung: PGID=10 für die Gruppe admin funktioniert, gibt dem Container aber Lesen und Schreiben auf alle Freigaben, auch auf docker mit den Daten aller anderen Container. Nehmen Sie lieber ein eigenes Konto.
  • Kein Zugriff per SMB mehr: Jemand hat chmod oder ugacltool auf eine Freigabe angewendet. Rechte in der App Dateien neu vergeben.

Häufige Fragen

Reicht nicht PUID=1000 für mein eigenes Konto?

Ihr Administratorkonto, bei uns mit der ID 1000, bekommt seine Rechte in UGOS über die Gruppe admin. Ein Container erhält aber nur PUID und PGID, keine weiteren Gruppen. Mit PUID=1000 und PGID=100 bekam unser Testprozess deshalb auf einer Freigabe „Permission denied“. Mit PGID=10 dürfte er dagegen auf alle Freigaben schreiben. Ein eigenes Konto mit genau den nötigen Rechten ist der sauberere Weg und begrenzt den Schaden, wenn ein Container angegriffen wird.

Brauche ich für jeden Container ein eigenes Konto?

Nicht zwingend. Ein gemeinsames Konto für Medien und Downloads ist ein guter Anfang. Container mit sensiblen Daten, etwa ein Passwortmanager, brauchen ohnehin keine Freigaben und liegen nur in ihrem eigenen Datenordner.

Was passiert bei der Sicherung?

Sichern Sie die Datenordner mit einem Werkzeug, das Besitzer und Rechte erhält, siehe Teil 61. Nach einer Rückholung prüfen Sie Besitzer und Rechte wie in Schritt 7.

Fazit

Mit einem eigenen Konto für Container, Rechten nur auf die nötigen Freigaben und Datenordnern mit Linux-Rechten laufen Container auf der UGREEN NAS zuverlässig und sicher. Medien hängen Sie nur lesend ein, der Ordner docker bleibt für das Konto gesperrt. Im nächsten Teil der Docker-Reihe geht es um Portainer.

Weiterführende Anleitungen und Quellen

UGREENUGREEN NASDockerPUIDRechteUGOS Pro