Normalt har en bruker som oppretter filen rettigheter til å få tilgang til og endre filtillatelsene. Også rotbrukeren har som standard alle privilegier å få tilgang til hver fil på systemet.
I denne artikkelen vil vi forklare hvordan du endrer katalogtillatelsene rekursivt i et Linux OS ved å bruke de to forskjellige metodene. Først vil vi gi en rask oversikt over hvordan vi kan se og endre filtillatelsene, og så vil vi diskutere hvordan vi kan endre tillatelsene rekursivt.
Se gjeldende filtillatelser
For å se på gjeldende tillatelser til en fil eller en katalog, kjører du følgende kommando i terminalen din:
$ ls -l
For eksempel, hvis vi løper LS-L, Vi vil motta en lignende utgang:
I listen ovenfor, hvis den første tegnet på en rad starter med “D”, indikerer det at det er en katalog, mens hvis den starter med “-” indikerer at det er en fil. Etter dette viser de neste ni tegnene tillatelsene til filen eller en katalog. Disse ni tegnene er faktisk gruppert i tre sett for henholdsvis brukeren, gruppen og eieren. I tillegg består hvert sett av tre typer tillatelser som er henholdsvis R, W og X for "Read", "Skriv" og "Utfør" tillatelser.
Endre tillatelser
I Linux, for å endre tillatelsene til en fil eller en katalog, brukes CHMOD -kommando. For å endre tillatelsen, må du imidlertid være fileieren eller rotbrukeren.
Syntaksen er:
$ chmod [referanse] [operatør] [modus] File1 File2 ..
Hvor
Endre tillatelsene rekursivt ved hjelp av -R
Du har kanskje lagt merke til at hvis du bruker tillatelser via ovennevnte CHMOD -kommando, blir disse tillatelsene bare brukt på filen eller katalogen som er spesifisert i kommandoen. Det vil ikke bli brukt på underkatalogene eller filene i en katalog.
CHMOD lar deg endre tillatelse fra flere filer og underkataloger i en katalog ved hjelp av -r -alternativet som følger:
$ chmod -r [referanse] [operatør] [modus] fil ..
La oss si at underkatalogene under nedlastingskatalogen har følgende tillatelser som vist på følgende skjermbilde.
Hvis vi ser en av underkatalogen som heter filer, inneholder den noen filer med følgende tillatelser.
La oss nå endre tillatelsen fra vår "filer" overordnede katalog ved å tilordne den skrivetillatelsen som følger.
$ chmod u+w filer
Der du står for "bruker", + for "legg til" og w for "skriv".
Etter å ha tilordnet skrivetillatelsen, kjør "ls -l”Kommando, kan du se den nye tillatelsen har tildelt" Files "-katalogen.
Imidlertid bruker denne kommandoen bare tillatelsene til katalogen, ikke filene under den. For å bekrefte dette, naviger til Files -katalogen ved å bruke "CD”Kommando. Kjør deretter “ls -l”Kommando. Du kan se i følgende skjermbilde at tillatelsene er uendret.
La oss bruke tillatelsen rekursivt ved å bruke følgende kommando:
$ chmod -r u+w filer
Det vil ikke bare bruke tillatelsen til foreldre "filer" -katalogen, men også på filene under den.
Nå, for å bekrefte om tillatelsen blir brukt, navigerer du til "Files" -katalogen ved å bruke "CD”Kommando og kjør deretter“ls -l”Kommando. Fra følgende innspill kan du se at tillatelsene har brukt med hell på alle filene under overordnet katalog.
På samme måte kan du også rekursivt tildele tillatelsene i absolutt form. For å tilordne lese, skrive og utføre tillatelse til bare brukeren, kan følgende kommando brukes:
$ chmod -r 700
Endring av tillatelsen rekursivt ved hjelp av Find -kommandoen
Når CHMOD med -R brukes til å bruke tillatelse i en katalog, tildeler den samme tillatelse til alle filene og underkatalogene under den. Noen ganger kan det være lurt å gi separate tillatelser til filer og kataloger. Et eksempel på dette vil være å bruke utførelsestillatelsen på katalogen, men ikke på filer, da filer ikke trenger utførelsestillatelsen. Generelt er følgende tillatelser tilordnet filene og katalogene.
For kataloger: 755 eller DRWXR-XR-XXHvis dette er tilfelle, for å rekursivt tildele tillatelse til kataloger, bruk en av den absolutte eller symbolske formen:
$ FINN/PATH/TO/DIRECTORY -TYPE D -EXEC CHMOD 755 +
$ FINN/PATH/TO/DIRECTORY -TYPE D -EXEC CHMOD U = RWX, GO = RX \;
Mens du rekursivt tildeler tillatelser til filer, bruker du en av den absolutte eller symbolske formen:
$ FINN/PATH/TO/DIRECTORY -TYPE F -EXEC CHMOD 644 +
$ FINN/PATH/TO/DIRECTORY -TYPE F -EXEC CHMOD U = RW, GO = R \;
Sørg for å erstatte tillatelsene med de nødvendige tillatelsessettene.
Slik kan du endre katalogtillatelsene i Linux rekursivt. For å bruke de samme rekursive tillatelsene til all filen og underkatalogen, bruk -R -alternativet mens du bruker rekursive tillatelser på fil og underkataloger hver for seg, bruk Find -kommandoen.