Jellyfin erstellt Dateien normalerweise mit dem falschen Besitzer neu, wenn sich die aktive Dienstidentität vom Besitzer des Verzeichnisses unterscheidet oder ein zweiter Importpfad eine andere UID/GID verwendet.
Betrifft das Problem nur neu heruntergeladene Grafiken oder jede Datei, die Jellyfin schreibt? Vergleichen Sie eine funktionierende Datei, eine neu erstellte Datei, die aktive Containeridentität und das per Bind-Mount eingebundene Ziel, bevor Sie einen rekursiven Berechtigungsbefehl ausführen. Ziel ist es, die Vererbung zu korrigieren, nicht wiederholt die Symptome zu beheben.
Belegen, welche Identität und welcher Pfad den Schreibvorgang ausgeführt haben
Prüfen Sie Benutzer und Gruppen des laufenden Containers und anschließend den tatsächlich aktiven Bind-Mount, statt sich auf die auf dem Datenträger gespeicherte Compose-Datei zu verlassen. Stellen Sie sicher, dass Jellyfins Konfigurations- und Cache-Pfade beschreibbar sind, während Medien schreibgeschützt bleiben, wenn kein Schreibzugriff erforderlich ist. Eine mehrstufige Berechtigungsprüfung unterscheidet zwischen Sichtbarkeit auf dem Host, Container-Zuordnung und Dienstidentität.
Wenn der Host die Datei sieht, der Container jedoch nicht, korrigieren Sie den Mount. Wenn der Container schreiben kann, der Besitzer aber falsch ist, fahren Sie mit der Prüfung von Identität und Vererbung fort.
Wenn nur importierte Dateien den falschen Besitzer haben, vergleichen Sie UID/GID und umask des Importers mit denen von Jellyfin. Wenn jede neue Datei falsch ist, prüfen Sie die Standard-ACL und das setgid-Verhalten des übergeordneten Verzeichnisses.
umask, Gruppen, ACLs und den Import-Worker prüfen
Vergleichen Sie UID/GID und Modus des übergeordneten Verzeichnisses mit dem Prozess, der die Datei erstellt. Ein Downloader, eine geplante Aufgabe oder ein Sidecar kann über einen anderen Container schreiben, auch wenn Jellyfin das Element später anzeigt. Prüfen Sie zusätzliche Gruppen und Standard-ACLs, bevor Sie den gesamten Verzeichnisbaum ändern.
Verwenden Sie keine rekursive Berechtigungsänderung mit weltweitem Schreibzugriff als dauerhafte Lösung. Stimmen Sie die Dienstidentität auf die vorgesehene Gruppe ab oder legen Sie die gemeinsame Gruppe und die Standard-ACL für genau die Verzeichnisse fest, die Zusammenarbeit benötigen.
Testen Sie nach der Änderung der Identität eine neue Datei über den exakt verwendeten Importpfad. Beurteilen Sie die Lösung nicht anhand von Dateien, die vor der Neuerstellung des Containers oder Sidecars erstellt wurden.
Vererbung reparieren und nach der Neuerstellung validieren
Wenden Sie die kleinstmögliche Änderung an Besitz oder ACL auf das betroffene Verzeichnis an, erstellen Sie eine Testdatei neu und überprüfen Sie deren Besitzer und Modus. Erstellen Sie den Container neu und starten Sie den Host neu. Wiederholen Sie anschließend denselben Import, damit die Lösung Bereitstellungen und die Reihenfolge der Mounts übersteht.
Leiten Sie den Fall weiter, wenn sich der Besitz nach einer sauberen Neuerstellung erneut ändert, das Dateisystem POSIX-Besitzrechte ignoriert oder mehrere Dienste um die Verwaltung desselben Pfads konkurrieren. Bewahren Sie die funktionierende Datei und die Compose-Konfiguration auf, während Sie den schreibenden Prozess eingrenzen.
Wenn sich der Besitz nach einem Neustart erneut ändert, wendet der Mount oder die Bereitstellung eine andere Identität an. Sichern Sie die funktionierende Compose-Konfiguration, bevor Sie den Dateisystembaum erneut ändern.
Besitz über Neustart und erneuten Import hinweg überprüfen
Erstellen Sie den Container neu, starten Sie den Host neu und importieren Sie eine kontrollierte Testdatei. Bestätigen Sie Besitzer, Gruppe, Modus und die Sichtbarkeit in Jellyfin sowohl vom Host als auch vom Container aus.
Behalten Sie die Lösung bei, wenn neue Dateien die vorgesehene Gruppe erben und Jellyfin nur auf die für den Arbeitsablauf erforderlichen Verzeichnisse lesen oder schreiben kann. Gewähren Sie keinen umfassenden Schreibzugriff auf den gesamten Medienbaum.
Leiten Sie den Fall weiter, wenn das Dateisystem, die ACL-Schicht oder mehrere Schreibprozesse den Besitz nach dem kontrollierten erneuten Import weiterhin ändern.
Support & Tipps
Mehr zum Lesen

So optimieren Sie Jellyfin-Datenbankverbindungen für parallel ausgeführte Container
Beginnen Sie mit einem einzigen Datenbankbesitzer und beobachten Sie das Sperrverhalten von SQLite. Fügen Sie ein anderes Backend erst hinzu, wenn Parallelität und Wiederherstellung...

So verhinderst du doppelte Jobs oder Importe in Jellyfin
Doppelte Arbeit entsteht meist durch überlappende Scheduler oder mehrere Schreibprozesse. Bestimme eine verantwortliche Person, einen einzigen Ablauf und eine einzige Abschlussprüfung.

So reparieren Sie Jellyfin, nachdem das Datenbank-Volume vollgelaufen ist
Schreibvorgänge stoppen, die Datenbank- und WAL-Dateien bewahren, Speicherplatz freigeben, ohne den Zustand blind zu löschen, und anschließend die Integrität sowie die ursprüngliche Arbeitslast überprüfen.

