TrueNAS ACL bei Dataset + Nextcloud/Immich

RolandR88

Lieutenant
Registriert
Jan. 2007
Beiträge
801
Hallo Leute,

ich hab ein Problem mit ACL auf TrueNAS 25.10.3.1 - Goldeye
Es gibt ein Dataset namens CloudSync wo die Daten liegen. Dieses ist via SMB eingebunden.
Auf TrueNAS laufen die Apps Immich und Nextcloud, die auf dieses Dataset zugreifen. So weit so gut.

Stellt sich heraus, dass ich Dateien, die ich via Nextcloud auf das Dataset schreibe via SMB nur sehen kann, wenn ich dem User "www-data" RWX gebe. Habe ich kein großes Problem damit.
Das größere Problem ist, dass ich das Dataset in Immich und Nextcloud nur dann nutzen kann, wenn ich "Other – default" auch RWX gebe. Das erscheint mir dann ziemlich wie ein offenes Scheunentor. Gibt es keine Möglichkeit die User oder Gruppen zu erkennen, die exakt nötig sind, ohne Other komplett zu öffnen?
Ich habe versucht einen Gruppe mit "cloudapps" zu erstellen und dort "www-data", "apps", etc. pp. hineinzupacken und damit Other zu ersetzen. Leider ohne Erfolg.
Das ACL sieht aktuell so aus und das scheint er einzige Weg zu sein, wie es funktioniert:

User Obj – benutzernameRead | Write | Execute
User – www-dataRead | Write | Execute
Group Obj – builtin_usersNone
MaskRead | Write | Execute
Other None
User Obj – default – benutzernameRead | Write | Execute
Group Obj – default – builtin_usersRead | Write | Execute
Other – defaultRead | Write | Execute

Danke im Voraus für jeden Hinweis dazu!
 
schau mal nach der UID/GID der einzelnen Anwendungen ein www-data im container hat ne andere UID/GID wie auf dem Host System. Wenn alle die gleiche UID/GID haben, wirds einfacher.
 
  • Gefällt mir
Reaktionen: madmax2010
Füge die Benutzer für immich und nextcloud der gruppe www-data hinzu
 
Vielen Dank für die HInweise. Vom Konzept her logisch und nachvollziehbar.

Ich habe mir die tatsächlichen Run-As-Contexts der beiden Apps nochmal genauer angeschaut:

Bei Immich sieht es so aus, dass mehrere Container als root laufen (UID/GID 0:0), konkret z.B. machine-learning und server.

Weitere Komponenten laufen jedoch mit festen Service-UIDs:

  • PostgreSQL (pgvecto) → 999:999 (netdata/docker)
  • Redis → 568:568 (apps:apps)
Auch bei Nextcloud ist das Bild ähnlich gemischt:
  • nextcloud → root:root (0:0)
  • nginx → root:root (0:0)
  • cron → root:root (0:0)
  • PostgreSQL → 999:999
  • Redis → 568:568 (apps:apps)
  • imaginary → 568:568 (apps:apps)
In beiden Apps gibt es also keinen einheitlichen “App-User”, sondern eine Mischung aus root, apps (568:568) und netdata/docker (999:999).

Der einzige gemeinsame nicht-root-Bereich scheint aktuell die Gruppe apps (UID/GID 568:568) zu sein, die bei mehreren Komponenten genutzt wird bzw. als Service-User vorhanden ist.

Daher wirkt der klassische Ansatz mit www-data aus typischen Linux-Setups hier eher unpassend für TrueNAS . Wahrscheinlich ist es sinnvoller, die Dataset-Berechtigungen stärker an der apps-Gruppe auszurichten? Sehe ich das richtig?
Ich müsste also in die apps-Gruppe dann root und netdata/docker hinzufügen und es sollte auch ohne "Other" laufen, oder habe ich da einen Denkfehler?

Dankeschön
 
Zurück
Oben