Gör bildens rotfilsystem skrivskyddat och ge sedan endast snävt avgränsade skrivbara monteringar för dokumenterat körningstillstånd.
Detta är viktigt i en självvärdad app som för närvarande skriver konfiguration, cachelagrade data, temporära filer och uppladdningar till ett odifferentierat containerfilsystem. Den operativa risken är att aktivering av skrivskydd utan mappning av skrivvägar kan förhindra uppstart, medan en enda bred skrivbar montering motverkar begränsningsmålet. Börja med en sparad baslinje, gör en reversibel ändring i taget och stoppa så snart den observerade grenen inte längre motsvarar den avsedda konfigurationsvägen.
Fastställ baslinjen för skrivskyddade containerrotfilsystem
Innan du ändrar inställningar ska du dokumentera skrivförsök, nödvändiga sökvägar, ägarskap, användning av temporärt utrymme, beteende vid paketuppdateringar och kvarstående data efter återskapande. Spara den ursprungliga konfigurationen och en körning som liknar produktion, så att senare förbättringar jämförs med samma arbetsbelastning i stället för minnet eller ett syntetiskt inaktivt tillstånd.
Använd den aktuella skrivskyddade rotfilsystemkonfigurationen för att bekräfta den stödda kontrollen och dess semantik. Betrakta standardvärden som en känd utgångspunkt, inte som bevis på att inställningen passar denna server, klientmix eller återställningsmålsättning.
Definiera godkännande- och stoppvillkor innan du redigerar. Godkännandesignalen måste vara synlig i loggar, protokollstatus, applikationsutdata eller återställda data. Stoppvillkoret måste förhindra bredare åtkomst, dataförlust, resursutarmning eller ett avbrott som förbrukar nästa återställningsfönster.
Tillämpa ändringen av skrivskyddade containerrotfilsystem i kontrollerade steg
Steg 1: Spåra skrivningar under en representativ uppstart och ett normalt arbetsflöde, och skilj beständigt tillstånd från temporärt tillstånd. Efter ändringen ska du omedelbart kontrollera det förväntade tillståndet. Om det inte syns ska du återställa detta steg innan du tillämpar nästa.
Steg 2: Aktivera read_only, lägg till tmpfs för temporära sökvägar och bind eller namnge volymer endast för nödvändiga beständiga kataloger. Efter ändringen ska du omedelbart kontrollera det förväntade tillståndet. Om det inte syns ska du återställa detta steg innan du tillämpar nästa.
Steg 3: Ta bort oanvända funktioner och testa samma image-ingångspunkt som den konfigurerade användaren utan root-behörighet. Efter ändringen ska du omedelbart kontrollera det förväntade tillståndet. Om det inte syns ska du återställa detta steg innan du tillämpar nästa.
read_only: true
tmpfs:
- /tmp:size=256m,mode=1777
volumes:
- app-data:/var/lib/app
Tolka grenarna för godkänt, underkänt och undantag
Godkänt innebär att appen slutför normalt arbete och återskapande utan att skriva utanför godkända monteringar. Dokumentera den exakta arbetsbelastning, version och tidpunkt som gav resultatet. Ett lättare test är inte bevis på att det ursprungliga problemet har lösts.
Underkänt innebär att uppstartsskript försöker ändra sökvägar i imagen, att det temporära utrymmet tar slut eller att en uppgradering förväntar sig en paketändring i containern. Kompensera inte genom att försvaga alla närliggande kontroller. Återgå till den senast rena baslinjen och isolera om avvikelsen gäller identitet, nätverk, lagring, applikationsberedskap eller kapacitet.
Vid ett undantag eller ett tvetydigt resultat ska du ta bort read_only endast för diagnostik, dokumentera den saknade sökvägen och ersätta undantaget med en snävare montering. Eskalera först när den lågriskbaserade särskiljningen kan upprepas och bevisen visar att en djupare plattforms- eller hårdvaruändring behövs.
Verifiera beständighet under den ursprungliga belastningen på hemservern
Upprepa samma klientväg, filstorlek, samtidighet, viloläge eller omstartshändelse och konkurrerande arbetsbelastning som användes i baslinjen. Kör minst två cykler, så att en framgång efter varm cache, en lyckad återanslutning eller en enda problemfri uppstart inte misstas för beständighet.
Bekräfta både framgång och begränsning: appen ska slutföra normalt arbete och återskapande utan att skriva utanför godkända monteringar, medan orelaterade användare, tjänster, delningar och administrativa sökvägar behåller sitt ursprungliga beteende. Granska det relaterade ZimaSpace-arbetsflödet när ändringen berör en angränsande lagrings-, nätverks- eller återställningsgräns.
Stäng ändringen först när godkännandesignalen kvarstår och återställningen fortfarande kan användas. Om uppstartsskript försöker ändra sökvägar i imagen, det temporära utrymmet tar slut eller en uppgradering förväntar sig en paketändring i containern ska du stoppa automatiseringen, bevara loggarna och den sparade konfigurationen och återgå till det senast verifierade tillståndet i stället för att stapla fler ändringar.
Vanliga frågor om frågeförgrening, avslutande beslut och slutligt test
Dessa frågor om frågeförgrening täcker de nästa beslut som användare ofta söker efter när huvudkonfigurationen fungerar. De utökar gränsen utan att införa en oprövad reparationsväg.
Tillämpa varje svar endast när dess villkor stämmer med den uppmätta miljön. Skillnader i version, protokoll, filsystem, klient och tillitsgräns kan ändra vilken gren som är korrekt.
Förvara svaren tillsammans med driftinstruktionen och uppdatera dem efter uppgraderingar eller topologiförändringar. Alla undantag som utökar skrivåtkomst, nätverksåtkomst eller behörighet att radera kräver ett nytt återställnings- och återhämtningsprov.
Skyddar skrivskydd monterade volymer?
Nej. Skrivbara bind-monteringar och volymer förblir skrivbara och behöver därför fortfarande minsta möjliga behörighet, säkerhetskopior och isolering av sökvägar.
Kan alla image köras skrivskyddade?
Inte utan justeringar. Image som installerar paket eller skriver om konfiguration vid uppstart behöver en annan build eller uttryckligen skrivbara sökvägar.
Bör /tmp alltid vara en tmpfs?
Endast när storlek, körbara flaggor och beständighetsbeteende passar appen. Testa stora importer och uppdateringar.
Slutsats: Konfigurationen är klar när appen slutför normalt arbete och återskapande utan att skriva utanför godkända monteringar, underkännandegrenen är förstådd och den dokumenterade återställningen inte är beroende av den komponent som ändras.
Slutligt testprotokoll: återställ den sparade baslinjen, tillämpa den godkända ändringen en gång, upprepa den ursprungliga produktionslika belastningen, verifiera framgångssignalen och begränsningsgränsen och testa sedan återställning på tillfälliga data. Behåll ändringen endast när alla fem observationer överensstämmer.
Support och tips
Mer att läsa

Kan ett egenhostat galleri bevara parkopplingen mellan Apple Live Photos?
Ett villkorat beslut för hemmaservern om parkoppling med Apple Live Photo, med kontrollerade tester, resultattolkning, återställning och fokuserade vanliga frågor.

Kan du importera Google Takeout och telefonbackuper till ett enda fotobibliotek?
Ett villkorat beslut för en hemmaserver för kombinerad fotoimport, med kontrollerade tester, resultattolkning, återställning och fokuserade vanliga frågor.

Kan Immich använda ett externt bibliotek utan att ta över ägandet av filerna?
Ett villkorat beslut för hemservern om ägarskap av externa bibliotek i Immich, med kontrollerade tester, resultattolkning, återställning och fokuserade vanliga frågor.

