Snabblänkar
- Redan och stressen med dåliga behörigheter
- Problemet?
- Klonning av ägande med chown
- Klonningsbehörigheter med chmod
- Klona allt med setfacl
- Ut ur kaos, beställ < /li>
Nyckelalternativ
- Linux-filbehörigheter är avgörande för kontroll, och kloning av korrekt konfigurerade filinställningar kan snabbt fixa trassliga behörigheter.
- Enkla misstag med chown- och chmod-kommandon kan orsaka kaos, men chown- och chmod-kloning kan effektivt återställa filbehörigheter.
- Du kan använda samma kloningsteknik med åtkomstkontrollistor också.
Linux-filbehörigheter styr vem som kan göra vad med filer och kataloger. Men om de blir trassliga kan det vara en mardröm att återställa dem. Att klona en fungerande fils behörigheter är den snabbaste lösningen.
Röret och stressen med dåliga behörigheter
På Linux har filer och kataloger en uppsättning behörigheter. De styr vilka åtgärder som kan utföras och av vem.
Behörigheter antingen tillåter eller nekar någon att läsa från en fil, skriva till den eller köra den. För en fil innebär exekvering att köra ett skript eller program. För en katalog betyder execute att byta till den katalogen med kommandot cd.
Behörigheter påverkar direkt din dators korrekta funktion och säkerhet. Dåligt inställda behörigheter kan orsaka förödelse, vilket effektivt sätter dina data utom räckhåll.
Filer har också ägare. När nya användare skapas läggs de till i en grupp med samma namn som deras användarnamn. Som standard äger en användare alla filer som skapats av dem, och filens grupp är inställd på användarens grupp. En fil eller katalog har tre uppsättningar behörigheter. En för ägaren, en annan för medlemmar i filens grupp och en tredje för alla som inte tillhör de två första kategorierna.
Att packa upp gamla arkivfiler eller återställa information från säkerhetskopior gjorda på olika datorer kan lämna dig med filerna, men bedrövligt felaktiga behörigheter. Du kan hamna i en liknande situation om du gör misstag med kommandona chown och chmod. Kommandot chmod ställer in filbehörigheter och kommandot chown anger filägande.
Det är tråkigt att handåtgärda dessa typer av feltillstånd. Svaret är att använda chown och chmod för att klona inställningarna för en korrekt konfigurerad fil.
Problemet?
Jag behövde några filer från en arkivfil som jag har skickats. Jag packade upp arkivet, men den extraherade katalogen hade ett hänglåsmärke på sin ikon.

Jag var tvungen att ange root-lösenordet för att komma in i katalogen. Att dubbelklicka på egen hand räckte inte.
Att kolla med ls (igen, med sudo) avslöjar problemet. sudo ls -hld-projekt Rotanvändaren äger katalogen, och ingen har läs- eller skrivbehörighet. Filerna och underkatalogerna ägs också av root, och behörigheterna är en sammanblandning av olika felaktiga inställningar. sudo ls -hl-projekt Låt oss reda ut ägandeproblemen först. Jag vill ange äganderätten till filen för mig. Mitt användarnamn är dave. Vi använder kommandot chown och kopierar ägarinställningarna från en katalog som är korrekt inställd. sudo chown -R –reference=/home/dave/Downloads-projekt –referensenalternativet talar om för chown vilken katalog tillståndsinställningarna ska kopieras från. Alternativet -R (rekursivt) säger åt chown att ställa in de nya behörigheterna på målkatalogen och på alla filer och underkataloger. Vi kan kontrollera med ls att användaren dave nu är ägare till filerna och katalogerna. Vi behöver fortfarande använda sudo eftersom vi inte har sorterat ut behörigheterna ännu. sudo ls -hl-projekt Nu när vi har återtagit äganderätten till filerna och katalogerna kan vi fixa behörigheterna. Detta är en process som är väldigt lik den vi använde med chown, men vi måste vara lite mer försiktig med behörigheterna. Det är enkelt att ställa in ägandet. Alla filer och kataloger ägs av samma användare, så de får alla samma inställningar. Men kataloger och körbara filer måste ha x-behörigheten (kör) för dem. Vanliga filer behöver inte de behörighetsinställningarna. Så vi måste skapa flera uppsättningar med behörigheter och tillämpa dem på lämpliga filer. Vi kan göra detta i tre steg. Vi kommer att använda en vanlig fil som referensfil först. Detta kommer att ställa in behörigheterna som om allt är en vanlig fil. Sedan använder vi en körbar referensfil för att ställa in behörigheterna för eventuella skalskript. Slutligen kommer vi att använda chmod på det traditionella sättet för att ställa in exekveringsbehörigheten för katalogerna. Vårt första steg är att använda den vanliga filen som referensfil: sudo chmod -R –reference=/home/dave/Downloads/existing.dat project Vi kan använda ls för att se vilken effekt detta har haft. sudo ls -hld-projekt sudo ls -hl-projekt Behörigheterna från referensfilen (läs och skriv för ägaren och gruppen, och skrivskyddad för andra) har replikerats på alla filer och kataloger. Vi måste återställa exekveringsbehörigheten för alla skript. Vi har ett referensskript som vi kan ta behörigheterna från. sudo chmod -R –reference=/home/dave/Downloads/existing.sh project/*.sh Vi’använder ett jokertecken "*" eftersom det kommer att klara alla skriptfiler i hela katalogträdet, oavsett namnet. Vi kan se att exekveringsbehörigheten har ställts in på "appveyor.sh" fil. sudo ls -hl-projekt Att återställa exekveringsbehörigheten på katalogerna innebär ett snyggt trick. Vi kan inte använda ett jokertecken eftersom det också riskerar att matcha filer. Så vad vi gör är att använda den versala X-tillståndsflaggan. Detta betyder att "ställ in den körbara biten endast om målet är en fil med den körbara biten redan inställd, eller om det är en katalog." Vi kan använda detta eftersom våra körbara skript redan har den körbara biten inställd, och de kommer att behålla den. Alla kataloger i katalogträdet kommer också att ha den körbara biten inställd. sudo chmod -R +X-projekt Vi har nu saker och ting tillbaka till ett fungerande tillstånd med rätt äganderätt, korrekta behörigheter och kataloger som låter dig cd-skiva in i dem. ls -hl-projekt
Kloning av ägande med chown
Kloning av behörigheter med chmod
Klona allt med setfacl
Om du använder åtkomstkontrollistor (ACL) kan du fortfarande klona inställningarna från en korrekt inställd fil till andra filer. ACL:er ger dig detaljerad kontroll, så att du kan göra saker som att ange behörigheter per användare, med olika användare som har olika behörigheter.
För att klona inställningarna måste vi överföra inställningarna från vår korrekt konfigurerade fil till kommandot för att ställa in behörigheterna.
Vi kan se ACL-inställningarna på den befintliga filen med kommandot getfacl.
getfacl existerande.fil

Ägaren, dave, har läs-, skriv- och körrättigheter. Användaren mary har läs- och skrivbehörigheter. För att klona dessa inställningar till filerna i projektkatalogen använder vi kommandot setfacl. Vi piper in utdata från getfacl-kommandot för att se till att vi får de ACL-inställningar som vi vill ha. Filerna vi vill använda ACL-inställningarna på finns i en katalog som heter “källa.”
getfacl /home/dave/Downloads/existing.file | setfacl –set-file=- källa
–set-filen< /strong> alternativet tar vanligtvis namnet på en fil som du vill kopiera inställningarna från. Använda ett enda bindestreck “-” eftersom filnamnet säger åt setfacl att använda stdin som sin datakälla. Det här kommer att vara vår data. Att titta på någon av filerna i källkatalogen verifierar att de kopierade ACL-inställningarna har tillämpats. getfacl terminal.c Att se röran du ibland hamnar i efter att ha laddat ner, återställt eller arkiverat filer kan få ditt hjärta att sjunka. Men det är lätt nog att skapa ordning i kaoset med bara några få kommandon, som används i rätt ordning.
Out of Chaos, Order
Leave a Reply
You must be logged in to post a comment.