Så förhindrar du behörighetsdrift i Plex-datamapparonger

Eva Wong är Teknisk skribent och den boende fixaren på ZimaSpace. En livslång nörd med en passion för hemma-labb och öppen källkod, hon specialiserar sig på att översätta komplexa tekniska koncept till tillgängliga, praktiska guider. Eva tror att självhosting ska vara roligt, inte skrämmande. Genom sina handledningar ger hon gemenskapen verktyg att avmystifiera hårdvaruinstallationer, från att bygga sin första NAS till att bemästra Docker-containrar.

Förhindra att Plex-behörigheter förändras genom att hålla den numeriska körningsidentiteten stabil, bevara ägarskapet vid återställningar och testa åtkomst till appdata och media separat.

Behörighetsfel uppstår ofta efter en bilduppdatering, värdmigrering, återskapande av stacken eller återställning från säkerhetskopia, eftersom filerna finns kvar medan deras numeriska ägare, grupp, ACL eller förväntade körningsanvändare ändras. Det säkraste sättet att förebygga detta är att ha en välfungerande grundkonfiguration för `/config` och media samt utföra en liten verifiering efter varje ändring. Undvik omfattande rekursiva behörighetskorrigeringar om inte grundkonfigurationen visar att hela trädet verkligen behöver samma ägarskap.

Dokumentera numeriskt ägarskap innan du ändrar behörigheter

Det är enklast att förhindra förändrade behörigheter när du vet vilket numeriskt UID och GID Plex-processen använder och vilken numerisk ägare som är registrerad för sökvägarna till appdata och media. Användarnamn kan skilja sig mellan värd och container, medan filsystemet fortfarande tillämpar siffrorna.

Numerisk UID- och GID-mappning gör att containerprocessen kan anpassas till ägarskapet på värden. Dokumentera dessa värden i stackkonfigurationen i stället för att förlita dig på användarnamn eller minnet.

Samla in resultatet från `stat` eller motsvarande för en appdatakatalog, en databasfil och en mediekatalog medan systemet fungerar korrekt. Dessa blir din grundkonfiguration efter bilduppdateringar, värdmigreringar, återställningar eller flyttar av lagring.

Håll körningsidentiteten stabil vid containeruppdateringar

En bilduppdatering kan ändra standardvärden, hur startskriptet fungerar eller hur en miljövariabel tolkas. Om den effektiva Plex-processen startas med en annan identitet kan nyskapade filer få andra ägare, och senare omstarter kan förlora åtkomsten till äldre data.

Efter en plattforms- eller bilduppdatering kan förlorad skrivåtkomst till appdata vara ett tecken på att den effektiva körningsidentiteten inte längre stämmer överens med filerna som den måste uppdatera.

Efter varje bild- eller värduppgradering ska du kontrollera processens UID/GID i den körande containern och, om det är lämpligt, skapa en testfil i en tillfällig skrivbar sökväg. Om siffrorna oväntat har ändrats ska du korrigera körningskonfigurationen innan ett nytt ägarskap sprids.

Separera skrivåtkomst till appdata från mediaåtkomst

Plex-programdata behöver normalt läs- och skrivåtkomst, medan mediebibliotek kanske bara behöver läsåtkomst, såvida arbetsflödet inte uttryckligen låter andra verktyg hantera filer. Om du ger båda sökvägarna samma omfattande behörighetsuppsättning blir det otydligt vilket ansvar som faktiskt krävs, samtidigt som konsekvenserna av ett misstag ökar.

Stabil containeråtkomst beror på anpassning av PUID och PGID, inte på obegränsade behörighetsbitar. Anpassa åtkomsten efter tjänstens roll i stället för att använda skrivbehörighet för alla som en permanent lösning.

Definiera förväntad åtkomst separat för `/config`, media och tillfälligt transkodningsutrymme. Testa Plex-processen mot varje sökväg efter ändringar. Att en skrivskyddad mediesökväg inte kan radera filer kan vara avsiktligt; att en appdatasökväg inte kan skapa databasjournaler är det inte.

Se till att återställningar bevarar ägarskap och ACL:er

En säkerhetskopia kan innehålla alla Plex-filer och ändå orsaka förändrade behörigheter om återställningsverktyget skriver dem som administratörskontot, tar bort ACL:er eller ändrar gruppägarskapet. Nästa container ser då till synes kompletta data men kan inte uppdatera dem konsekvent.

Före uppstart måste det återställda ägarskapet jämföras med körningsidentiteten, så att en komplett säkerhetskopia inte återställs som ett oläsbart appdataträd.

Ta med beteendet för ägare, grupp, läge och ACL i återställningstestet, inte bara kontrollsummor och filantal. Återställ ett litet urval till en alternativ plats och jämför metadata. Om verktyget inte kan bevara behörigheter ska du lägga till ett uttryckligt steg för att återställa ägarskapet efter återställningen i driftinstruktionen.

När teståterställningen har godkänts ska du upprepa kontrollen med samma verktyg och alternativ som ska användas vid en verklig återställning. Ett behörighetsbevarande test som bygger på en annan manuell kopieringsmetod visar inte att arbetsflödet för produktionssäkerhetskopiering är säkert.

Granska förändrade behörigheter med små tester i stället för rekursiva korrigeringar

Rekursiva kommandon som `chmod` eller `chown` kan få Plex att starta igen, men samtidigt skriva om behörigheter som avsiktligt skiljer sig mellan media, säkerhetskopior eller delade programdata. En säkrare underhållsrutin upptäcker den exakta sökväg där förändringen skett och korrigerar endast det ägarskap eller den åtkomst som krävs.

När kontroller av appdatabehörigheter misslyckas ska du testa den angivna sökvägen med Plex-körningsidentiteten innan du ändrar en monteringspunkt, ägare, ACL eller användare.

Om behörighetsändringar sammanfaller med att containern ersätts måste arbetsflödet för containerpersistens hålla körningsidentiteten och dataplatsen under gemensam kontroll.

Support och tips

Mer att läsa

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.