Ofta när man kör Linux tänker man sällan på vem som äger en fil. När det handlar om att köra en server förändras dock situationen. För att öka säkerheten får servern sin egen användare. Det är inte ovanligt att servrar använder samma grupp, t.ex. www-data
. Låt oss nu se hur denna funktion fungerar med filer och kataloger. Vi kommer att ägna särskild uppmärksamhet åt symboliska länkar, eftersom de kan orsaka problem när man använder osäkra inställningar.
Standarden för filbehörigheter kom till Linux från Unix. Så varje objekt har en användare
, grupp
utöver detta beskriver rättigheterna förandra
användare(andra).
Behörigheterna består av tre delar: läsa, skriva, exekvera. Kommandot umask
används för att ändra behörigheter, men kommandona chown
används för att ändra ägare och grupp direkt. Kommandot ls
kan användas för att visa aktuella behörigheter.
Allmän vy över kommandot chgrp
:
$ chgrp [options] new_group file_name
Lista över vanliga alternativ för kommandot chgrp
:
-h
- arbeta direkt med själva de symboliska länkarna;--dereference
- arbeta med filer, inte med de symboliska länkarna själva. Används som standard;-R
- rekursiv bearbetning av en katalog med allt dess innehåll;-H
- följer symboliska länkar och ändrar attribut för filer/kataloger. Används tillsammans med parametern -R;
-L
- följ den symboliska länken och fortsätt den rekursiva bearbetningen. Används tillsammans med parametern -R;
-P
- när du stöter på en symbolisk länk, bearbeta endast den. Används tillsammans med parametern -R
, är standardvärdet;--reference=file_name
- använd exempelgruppen;-c
- utdata ändras endast vid bearbetning;-v
- skriver ut information om varje bearbetat objekt.Det enklaste exemplet på användning av kommandot chgrp
. Följande exempel ändrar hela www-data-objektet
för filen
i den aktuella mappen:
$ sudo chgrp www-data file.txt
Och den här ändrar gruppen till www-data
för mappmappen
:
$ sudo chgrp www-data folder
Kommandot fungerar på ett mycket förutsägbart sätt och ändrar deras grupp. Objekten i mappen förblir oförändrade. Om symboliska länkar hanteras förblir deras attribut oförändrade, men objektet får en ny grupp. Detta beteende liknar hanteringen av parametern --dereference
.
Om dessa kommandon tillämpas på symboliska länkar fungerar det till exempel som visas på skärmdumpen:
$ sudo chgrp www-data sym_file.txt
Låt oss ta en titt på hur parametern -h
som ändrar attributen för en symbolisk länk skulle fungera:
$ sudo chgrp -h www-data sym_file
Gruppen har inte bara satts till katalogen utan även till alla filer som finns i den. Observera att beteendet har ändrats, nu när en symbolisk länk bearbetas anges attributen för själva länken, inte för objektet.
För att se skillnaden mellan parametrarna -H
och -L
ska vi titta på några fler exempel. Kom ihåg att de måste användas tillsammans med -R:
$ sudo chgrp -RH www-data folder
Om du använder -H
har beteendet vid bearbetning av symboliska länkar ändrats, de hanteras nu som om funktionerna kördes separat. Attributen för referenserna ändras inte, men det gör attributen för själva objekten, och den rekursiva bearbetningen stoppas när du byter till en katalog.
$ sudo chgrp -RL www-data folder
Den utför en funktion - den ändrar gruppen av filer och kataloger.
När du bearbetar symboliska länkar bör du vara extremt försiktig så att du inte skadar systemet.