Hej alle sammen. Dette er en oversættelse af en artikel fra bogen RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 og EX300.
Fra mig: Jeg håber, at artiklen vil være nyttig ikke kun for begyndere, men også hjælpe mere erfarne administratorer med at organisere deres viden.
Så lad os komme i gang.

For at få adgang til filer i Linux bruges der adgangstilladelser. Disse tilladelser tildeles tre objekter: ejeren af filen, gruppen som ejer og et andet objekt (dvs. alle andre). I denne artikel får du at vide, hvordan man anvender tilladelser.
Artiklen starter med en oversigt over de grundlæggende begreber, hvorefter der diskuteres særlige tilladelser (Special permissions) og adgangskontrolister (ACL). I slutningen af artiklen behandles indstillingen af standard adgangsretter gennem umask samt administration af brugerens udvidede attributter.
Forvaltning af filers ejerskab
Før du diskuterer adgangstilladelser, skal du vide, hvad ejeren af en fil og et bibliotek gør. Ejerskab af filer og biblioteker er vitalt for at arbejde med tilladelser. I dette afsnit lærer du først, hvordan du kan se ejeren. Derefter vil du lære, hvordan du ændrer ejeren af gruppe og bruger for filer og biblioteker.
Visning af ejeren af en fil eller et bibliotek
I Linux har hver fil og hvert bibliotek to ejere: bruger og gruppeejer.
Disse ejere fastsættes, når en fil eller et bibliotek oprettes. Den bruger, der opretter filen, bliver ejer af filen, og den primære gruppe, som denne bruger tilhører, bliver også ejer af filen. For at bestemme, om du som bruger har adgangsrettigheder til en fil eller et bibliotek, tjekker skallen ejerskabet af dem.
Dette sker i følgende rækkefølge:
- Skallen kontrollerer, om du er ejer af filen, som du ønsker adgang til. Hvis du er ejer, får du tilladelser, og skallen stopper med at kontrollere.
- Hvis du ikke er ejer af filen, vil skallen tjekke, om du er medlem af den gruppe, der har tilladelser til denne fil. Hvis du er medlem af denne gruppe, får du adgang til filen med de tilladelser, der er fastsat for gruppen, og skallen stopper med at kontrollere.
- Hvis du ikke er hverken bruger eller gruppeejer, får du rettighederne for andre brugere (Other).
For at se ejerens nuværende tildelinger kan du bruge kommandoen ls -l. Denne kommando viser bruger og gruppeejer. Nedenfor kan du se ejerindstillingerne for mapperne i kataloget /home.
[root@server1 home]# ls -l
total 8
drwx------. 3 bob bob 74 Feb 6 10:13 bob
drwx------. 3 caroline caroline 74 Feb 6 10:13 caroline
drwx------. 3 fozia fozia 74 Feb 6 10:13 fozia
drwx------. 3 lara lara 74 Feb 6 10:13 lara
drwx------. 5 lisa lisa 4096 Feb 6 10:12 lisa
drwx------. 14 user user 4096 Feb 5 10:35 user
Med kommandoen ls du kan vise ejerne af filerne i dette katalog. Nogle gange kan det være nyttigt at få en liste over alle filer i systemet, hvor den pågældende bruger eller gruppe er angivet som ejer. For dette formål kan du bruge find. Argumentet find -user der kan bruges til dette formål. For eksempel viser følgende kommando alle filer, hvor brugeren linda er ejer:
find / -user lindaDu kan også bruge find til at søge efter filer, hvor en bestemt gruppe er deres ejer.
For eksempel søger følgende kommando efter alle filer, der tilhører gruppen brugere:
find / -group usersÆndring af ejer
For at anvende de relevante tilladelser er det første, du skal overveje, ejerforholdet. Der er en kommando til dette formål chown. Syntaksen for denne kommando er nem at forstå:
chown hvem hvadFor eksempel ændrer følgende kommando ejeren af kataloget /home/account til brugeren linda:
chown linda /home/accountKommandoen chown har flere muligheder, en af dem er særligt nyttig: -R. Du kan gætte, hvad den gør, for denne mulighed er også tilgængelig for mange andre kommandoer. Det lader dig rekursivt indstille ejeren, så du kan indstille ejeren af det aktuelle katalog og alt, hvad der ligger nedenunder. Følgende kommando ændrer ejeren af kataloget /home og alt, hvad der ligger under det, til brugeren linda:
Nu ser ejerne sådan ud:
[root@localhost ~]# ls -l /home
total 0
drwx------. 2 account account 62 Sep 25 21:41 account
drwx------. 2 lisa lisa 62 Sep 25 21:42 lisa
Lad os udføre:
[root@localhost ~]# chown -R lisa /home/account
[root@localhost ~]#
Nu er brugeren lisa blevet ejer af kataloget account:
[root@localhost ~]# ls -l /home
total 0
drwx------. 2 lisa account 62 Sep 25 21:41 account
drwx------. 2 lisa lisa 62 Sep 25 21:42 lisa
Ændring af gruppe ejer
Der er to måder at ændre gruppeforholdet på. Du kan gøre det ved at bruge chown, men der er en særlig kommando ved navn chgrp, som udfører dette arbejde. Hvis du vil bruge kommandoen chown, skal du bruge . eller : før gruppenavnet.
Følgende kommando ændrer ejerskab af en hvilken som helst ejergruppe for /home/account til gruppen account:
chown .account /home/account
Du kan bruge chown til at ændre ejerskabet af en bruger og/eller gruppe på flere måder. Her er nogle eksempler:
- chown lisa myfile1 sætter brugeren lisa som ejer af filen myfile1.
- chown lisa.sales myfile sætter brugeren lisa som ejer af filen myfile, og sætter samtidig gruppen sales som ejer af den samme fil.
- chown lisa:sales myfile det samme som den forrige kommando.
- chown .sales myfile sætter gruppen sales som ejer af filen myfile uden at ændre ejerens bruger.
- chown :sales myfile det samme som den forrige kommando.
Du kan bruge kommandoen chgrp, for at ændre ejerens gruppe. Lad os se på et eksempel, hvor du kan chgrp sætte gruppen sales som ejer af mappen account:
chgrp .sales /home/accountSom i tilfælde af chown, kan du bruge optionen -R med chgrp, og også ændre ejergruppen rekursivt.
Forståelse af standard ejer
Du har måske bemærket, at når en bruger opretter en fil, anvendes standard ejerskab.
Brugeren, der opretter filen, bliver automatisk ejer af denne fil, og brugerens primære gruppe bliver automatisk ejer af denne fil. Normalt er dette gruppen, der er angivet i filen /etc/passwd som brugerens primære gruppe. Hvis brugeren derimod er medlem af flere grupper, kan han ændre den effektive primære gruppe.
For at vise den nuværende effektive primære gruppe kan brugeren bruge kommandoen groups:
[root@server1 ~]# groups lisa
lisa : lisa account sales
Hvis den nuværende bruger linda vil ændre den effektive primære gruppe, vil han bruge kommandoen newgrp, efterfulgt af navnet på den gruppe, han ønsker at sætte som den nye effektive primære gruppe. Efter brug af kommandoen newgrp vil den primære gruppe være aktiv, indtil brugeren skriver kommandoen sigreturn eller logger ud.
Nedenfor er vist, hvordan brugeren linda bruger denne kommando, hvor den primære gruppe blev gruppen sales:
lisa@server1 ~]$ groups
lisa account sales
[lisa@server1 ~]$ newgrp sales
[lisa@server1 ~]$ groups
sales lisa account
[lisa@server1 ~]$ touch file1
[lisa@server1 ~]$ ls -l
total 0
-rw-r--r--. 1 lisa sales 0 Feb 6 10:06 file1
Når den aktive primærgruppe ændres, vil alle nye filer, der oprettes af brugeren, få denne gruppe som ejergruppe. For at vende tilbage til den oprindelige indstilling af primærgruppen, brug sigreturn.
For at kunne bruge kommandoen newgrp, skal brugeren være medlem af den gruppe, han ønsker at bruge som primær. Derudover kan gruppeadgangskoden anvendes til gruppen ved hjælp af kommandoen gpasswd. Hvis brugeren bruger kommandoen newgrp, men ikke er medlem af den målsatte gruppe, beder shellen om gruppeadgangskoden. Når du har indtastet den korrekte gruppeadgangskode, vil den nye effektive primærgruppe blive indstillet.
Administration af primære rettigheder
Linux' tilladelsessystem blev opfundet i 1970'erne. Da computerbehovene var begrænsede dengang, var det grundlæggende tilladelsessystem ret begrænset. Dette tilladelsessystem bruger tre tilladelser, der kan anvendes på filer og kataloger. I dette afsnit vil du lære, hvordan du bruger og ændrer disse tilladelser.
Forståelse af læse-, skrive- og udførelsestilladelser
De tre grundlæggende tilladelser giver dig ret til at læse, skrive og udføre filer. Effekten af disse tilladelser varierer, når de anvendes på filer eller kataloger. Med hensyn til en fil giver læsetilladelsen dig ret til at åbne filen til læsning. Dermed kan du læse dens indhold, men det betyder, at din computer kan åbne filen for at gøre noget med den.
En programfil, der kræver adgang til et bibliotek, skal for eksempel have læsetilladelse til dette bibliotek. Det følger, at læsetilladelse er den mest grundlæggende tilladelse, du har brug for for at arbejde med filer.
Når det gælder et katalog, tillader læsning at vise indholdet af dette katalog. Du skal være klar over, at denne tilladelse ikke giver dig mulighed for at læse filer i kataloget. Linux' tilladelsessystem kender ikke arv, og den eneste måde at læse en fil på er at have læsetilladelser for den fil.
Som du sikkert kan gætte, tillader skriveadgangen, hvis den gælder for en fil, at man skriver til filen. Med andre ord tillader det at ændre indholdet af eksisterende filer. Det tillader dog ikke at oprette eller slette nye filer eller ændre adgangsrettighederne til filen. For dette skal du give skriveadgang til den mappe, hvor du ønsker at oprette filen. I mapper tillader denne adgang også at oprette og slette nye undermapper.
Kørselstilladelse er det, du har brug for for at kunne udføre en fil. Det vil aldrig være indstillet som standard, hvilket gør Linux næsten helt immun over for virusser. Kun en, der har skriveadgang til mappen, kan anvende kørselstilladelsen.
Nederst opsummeres brugen af de grundlæggende tilladelser:

Brug af chmod
For at styre rettighederne bruges kommandoen chmod. Når du bruger chmod , kan du indstille tilladelser for bruger (user), gruppe (group) og andre (other). Du kan bruge denne kommando på to måder: relativ måde og absolut måde. I absolut måde bruges tre cifre til at indstille de grundlæggende tilladelser.

Når du indstiller tilladelserne, skal du beregne den nødvendige værdi. Hvis du vil indstille læse-, skrive- og køreadgang for brugeren, læse- og køreadgang for gruppen samt læse- og køreadgang for andre i filen /somefile, skal du bruge følgende kommando chmod:
chmod 755 /somefileNår du bruger chmod på denne måde, erstattes alle aktuelle tilladelser med de tilladelser, du har angivet.
Hvis du vil ændre tilladelserne i forhold til de aktuelle tilladelser, kan du bruge chmod i relativ måde. Når du bruger chmod i relativ måde arbejder du med tre indikatorer for at angive, hvad du gerne vil gøre:
- Først angiver du, hvem du ønsker at ændre tilladelserne for. Her kan du vælge mellem bruger (» kan vi håndtere dem som almindelige input-output funktioner, der tager en fil, position, buffer i hukommelsen og tæller antallet af bytes til at læse eller skrive.), gruppe (g) og andre (o).
- ). Derefter bruger du en operator til at tilføje eller fjerne tilladelser fra den aktuelle tilstand, eller du indstiller dem absolut.
- Til sidst bruger du r, w og x, for at angive, hvilke tilladelser du ønsker at indstille.
Når du ændrer tilladelser i relativ tilstand, kan du springe delen "til hvem" over for at tilføje eller fjerne tilladelser for alle objekter. For eksempel tilføjer denne kommando tilladelse til at eksekvere for alle brugere:
chmod +x somefileNår du arbejder i relativ tilstand, kan du også bruge mere komplekse kommandoer. For eksempel tilføjer denne kommando skriveadgang til gruppen og fjerner læseadgang for andre:
chmod g+w,o-r somefileVed brug af chmod -R o+rx /data du giver eksekveringstilladelse for alle mapper samt for filer i mappen /data. For kun at give eksekveringstilladelse til mapper og ikke til filer, skal du bruge chmod -R o+rX /data.
Store X sikrer, at filer ikke får eksekveringstilladelse, hvis filen ikke allerede har tilladelse til at eksekvere for nogle objekter. Det gør X til en mere fornuftig måde at arbejde med eksekveringstilladelser; det forhindrer også, at denne tilladelse gives til filer, hvor den ikke er nødvendig.
Udvidede tilladelser
Ud over de grundlæggende tilladelser, som du lige har læst om, har Linux også et sæt udvidede tilladelser. Dette er ikke de tilladelser, du normalt indstiller, men nogle gange giver de nyttige tillæg. I dette afsnit vil du lære, hvad de indebærer, og hvordan du konfigurerer dem.
Forståelse af de udvidede tilladelser SUID, GUID og sticky bit
Der er tre avancerede tilladelser. Den første er tilladelsen til at sætte brugerens identifikator (SUID). I nogle særlige tilfælde kan du anvende denne tilladelse på eksekverbare filer. Som standard kører brugeren, der kører den eksekverbare fil, denne fil med sine egne tilladelser.
For almindelige brugere betyder dette normalt, at brugen af programmet er begrænset. Men i nogle tilfælde har brugeren brug for særlige tilladelser, kun for at udføre en bestemt opgave.
Overvej for eksempel situationen, hvor en bruger skal ændre sin adgangskode. For dette skal brugeren skrive sin nye adgangskode til filen /etc/shadow. Men denne fil kan ikke skrives til af brugere, der ikke har root-adgang:
root@hnl ~]# ls -l /etc/shadow
----------. 1 root root 1184 Apr 30 16:54 /etc/shadow
SUID-tilladelsen tilbyder en løsning på dette problem. I værktøjet /usr/bin/passwd anvendes denne tilladelse som standard. Det betyder, at når brugeren ændrer sin adgangskode, får han midlertidigt root-rettigheder, hvilket giver mulighed for at skrive til filen /etc/shadow. Du kan se SUID-tilladelsen med ls -l hvordan s i den position, hvor du normalt ville forvente at se x for brugerrettigheder:
[root@hnl ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 32680 Jan 28 2010 /usr/bin/passwd
SUID-tilladelsen kan se nyttig ud (og i nogle tilfælde er den det), men samtidig kan den være potentielt farlig. Ved forkert anvendelse kan du ved et uheld give root-rettigheder. Derfor anbefaler jeg at bruge den med maksimal forsigtighed.
De fleste administratorer vil aldrig have brug for det; du vil kun se det i nogle filer, hvor operativsystemet skal indstille det som standard.
Den anden særlige tilladelse er gruppe-id (SGID). Denne tilladelse har to virkninger. Når den anvendes på en eksekverbar fil, giver den brugeren, der kører filen, ejerens gruppe-rettigheder for denne fil. Således kan SGID udføre mere eller mindre det samme som SUID. Men til dette formål anvendes SGID næsten aldrig.
Som med SUID-tilladelsen anvendes SGID på nogle systemfiler som en standardindstilling.
Når den anvendes på en mappe, kan SGID være nyttig, fordi du kan bruge den til at indstille ejergruppen som standard for filer og undermapper, der oprettes i denne mappe. Som standard, når en bruger opretter en fil, indstilles hans effektive primære gruppe som ejergruppen for denne fil.
Dette er ikke altid meget nyttigt, især fordi brugere af Red Hat/CentOS har deres primære gruppe indstillet til en gruppe med samme navn som brugeren, hvor brugeren er den eneste deltager. Derfor vil filer, som brugeren opretter, som standard være gruppefælles.
Forestil dig en situation, hvor brugerne linda og lori arbejder i regnskabsafdelingen og er medlemmer af gruppen accountSom standard er disse brugere medlemmer af en privat gruppe, som de er de eneste medlemmer af. Men begge brugere er medlemmer af gruppen account, men også som et sekundært gruppemedlem.
Standardtilstanden er, at når nogen af disse brugere opretter en fil, bliver den primære gruppe ejer. Derfor kan linda som standard ikke få adgang til filer, der er oprettet af lori, og omvendt. Men hvis du opretter et delt gruppebibliotek (lad os sige, /groups/account) og sørger for, at SGID-rettigheden anvendes på dette bibliotek, og at gruppekontogruppen er sat som gruppe ejer for dette bibliotek, vil alle filer, der oprettes i dette bibliotek og i alle dets underbiblioteker, også have account-gruppen som gruppe ejer som standard.
Derfor er SGID-rettigheden en meget nyttig rettighed at have i delte gruppebiblioteker.
SGID-rettigheden vises i output ls -l hvordan s på den position, hvor du normalt finder gruppens udførelsesret:
[root@hnl data]# ls -ld account
drwxr-sr-x. 2 root account 4096 Apr 30 21:28 account
Den tredje af de specielle rettigheder er sticky bit. Denne rettighed er nyttig til at beskytte filer mod utilsigtet sletning i et miljø, hvor flere brugere har skrivetilladelse i det samme bibliotek. Hvis en sticky bit anvendes, kan en bruger kun slette en fil, hvis de er ejer af filen eller biblioteket, hvor filen findes. Af denne grund anvendes den som standardret for biblioteket /tmp og kan også være nyttig for delte gruppebiblioteker.
Uden sticky bit, hvis en bruger kan oprette filer i et bibliotek, kan de også slette filer fra dette bibliotek. I et offentligt gruppearbejdsmiljø kan dette være frustrerende. Forestil dig brugerne linda og lori, der begge har skrivetilladelse til biblioteket /data/account og får disse tilladelser gennem deres deltagelse i gruppen account. Derfor kan linda slette filer, der er oprettet af lori, og omvendt.
Når du anvender sticky bit, kan en bruger slette filer, kun hvis en af følgende betingelser er opfyldt:
- Brugeren er ejer af filen;
- Brugeren er ejer af biblioteket, hvori filen ligger.
Ved brug af ls -l, kan du se sticky bit som t på den plads, hvor du normalt ser tilladelsen til at udføre for andre:
[root@hnl data]# ls -ld account/
drwxr-sr-t. 2 root account 4096 Apr 30 21:28 account/
Anvendelse af udvidede rettigheder
For at anvende SUID, SGID og sticky bit kan du også bruge chmod. SUID har det numeriske værdi 4, SGID har det numeriske værdi 2, og sticky bit har det numeriske værdi 1.
Hvis du ønsker at anvende disse tilladelser, skal du tilføje et firecifret argument i chmod, den første cifre refererer til de specielle tilladelser. Den næste linje, for eksempel, vil tilføje SGID tilladelse til kataloget og sætte rwx for bruger og rx for gruppe og andre:
chmod 2755 /somedirDet er ret uhensigtsmæssigt, hvis du har brug for at se de aktuelle adgangsrettigheder, der er sat, før du arbejder med chmod i absolutte tilstand. (Du risikerer at overskrive tilladelserne, hvis du ikke gør dette.) Derfor anbefaler jeg at arbejde i relativ tilstand, hvis du har brug for at anvende nogle af de specielle tilladelser:
- For SUID brug chmod u+s.
- For SGID brug chmod g+s.
- For sticky bit brug chmod +t, og derefter navnet på filen eller kataloget, som du ønsker at sætte tilladelser for.
Tabellen opsummerer alt, hvad der er vigtigt at vide om forvaltning af specielle tilladelser.

Eksempel på arbejde med specielle rettigheder
I dette eksempel bruger du specielle tilladelser for at gøre det lettere for gruppemedlemmer at dele filer i fælles gruppens katalog. Du tildeler ID-biten for den etablerede gruppe ID, samt sticky bit, og ser, at efter deres installation tilføjes funktioner, der letter samarbejdet blandt gruppens medlemmer.
- Åbn terminalen, hvor du er bruger linda. Du kan oprette brugeren med kommandoen useradd linda, tilføj et password passwd linda.
- Opret i roden kataloget /data og underkataloget /data/sales med kommandoen mkdir -p /data/sales. Udfør cd /data/sales, for at skifte til sales-kataloget. Udfør touch linda1 og touch linda2, for at oprette to tomme filer, som ejes af linda.
- Kør su - lisa for at skifte den nuværende bruger til brugeren lisa, der også er medlem af gruppen sales.
- Kør cd /data/sales og udfør derefter fra denne katalog. ls -lDu vil se to filer, der blev oprettet af brugeren linda og tilhører gruppen linda. Udfør rm -f linda*. Dette vil slette begge filer.
- Kør touch lisa1 og touch lisa2, for at oprette to filer, der tilhører brugeren lisa.
- Kør su - for at hæve dine privilegier til root-niveau.
- Kør chmod g+s,o+t /data/sales, for at sætte gruppeidentifikatorbit (GUID) samt sticky bit i den fælles gruppe katalog.
- Kør su — linda. Kør derefter touch linda3 og touch linda4. Nu skulle du se, at de to filer, du har oprettet, tilhører gruppen sales, som ejer gruppen for kataloget /data/sales.
- Kør rm -rf lisa*. Sticky bit forhindrer, at disse filer kan slettes af brugeren linda, da du ikke er ejer af disse filer. Vær opmærksom på, at hvis brugeren linda ejer kataloget /data/sales, kan han stadig slette disse filer!
Håndtering af ACL (setfacl, getfacl) i Linux
Selv hvis de udvidede rettigheder, der blev diskuteret ovenfor, tilføjer nyttig funktionalitet til, hvordan Linux arbejder med tilladelser, tillader det ikke, at du giver tilladelser til mere end én bruger eller én gruppe i én fil.
Adgangskontrolister tilbyder denne funktion. Derudover giver de administratorer mulighed for at indstille standardtilladelser på en kompleks måde, hvor de indstillede tilladelser kan variere mellem forskellige kataloger.
Forståelse af ACL
Selvom ACL-subsystemet tilføjer fremragende funktionalitet til din server, har det en ulempe: ikke alle værktøjer understøtter det. Følgelig kan du miste ACL-indstillinger ved kopiering eller flytning af filer, og backup-software kan muligvis ikke udføre backup af ACL-indstillinger.
Tar-værktøjet understøtter ikke ACL. For at sikre, at ACL-indstillingerne ikke går tabt under backup, skal du bruge star i stedet for tar. star det fungerer med de samme parametre som tar; det tilføjer blot støtte til ACL-indstillinger.
Du kan også sikkerhedskopiere ACL med getfacl, som kan gendannes ved hjælp af setfacl-kommandoen. For at lave en backup, brug getfacl -R /directory > file.acls. For at gendanne indstillingerne fra backup-filen, brug setfacl —restore=file.acl.
Manglende understøttelse fra nogle værktøjer bør ikke være et problem. ACL-lister anvendes ofte på kataloger som en strukturel foranstaltning, snarere end på individuelle filer.
Derfor vil der ikke være mange, kun nogle få, der bruges på smarte steder i filsystemet. Følgelig er det relativt let at gendanne de oprindelige ACL-lister, som du har arbejdet med, selvom din backup-software ikke understøtter dem.
Forberedelse af filsystemet til ACL
Før du begynder at arbejde med ACL, kan det være nødvendigt at forberede filsystemet til at understøtte ACL. Da metadataene i filsystemet skal udvides, er der ikke altid standardunderstøttelse for ACL i filsystemet. Hvis du ved konfiguration af ACL-lister i filsystemet får beskeden „operation not supported“, mangler der muligvis understøttelse af ACL i dit filsystem.
For at løse dette skal du tilføje muligheden acl mount til filen /etc/fstab, så filsystemet monteres med standardunderstøttelse af ACL.
Ændring og visning af ACL-indstillinger med setfacl og getfacl
For at indstille ACL skal du bruge kommandoen setfacl. For at se de nuværende ACL-indstillinger har du brug for getfacl. Kommandoen ls -l viser ingen eksisterende ACL; den viser blot + efter tilladelseslisten, som indikerer, at ACL-listerne anvendes på filen.
Før du konfigurerer ACL-lister, er det altid nyttigt at vise de nuværende ACL-indstillinger med getfacl. Nedenfor kan du se de nuværende adgangsrettigheder som vist med ls -l, samt hvordan det vises med getfacl. Hvis du ser godt efter, vil du bemærke, at den viste information er præcis den samme.
[root@server1 /]# ls -ld /dir
drwxr-xr-x. 2 root root 6 Feb 6 11:28 /dir
[root@server1 /]# getfacl /dir
getfacl: Removing leading '/' from absolute path names
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
Som resultat af at have kørt kommandoen getfacl er det tydeligt, at tilladelserne vises for tre forskellige objekter: bruger, gruppe og andre. Lad os nu tilføje ACL for at give læse- og udførelsesrettigheder til gruppen sales. Kommandoen til dette er setfacl -m g:sales:rx /dir. I denne kommando -m angiver, at de nuværende ACL-indstillinger skal ændres. Derefter g:sales:rx informerer kommandoen om at etablere ACL for læse- og udførelsesrettigheder (rx) for gruppen (g) sales. Nedenfor kan du se, hvordan kommandoen ser ud samt outputtet fra kommandoen getfacl efter ændring af de nuværende ACL-indstillinger.
[root@server1 /]# setfacl -m g:sales:rx /dir
[root@server1 /]# getfacl /dir
getfacl: Removing leading '/' from absolute path names
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
group:sales:r-x
mask::r-x
other::r-x
Nu hvor du forstår, hvordan man sætter en gruppe-ACL, er det let at forstå ACL for brugere og andre brugere. For eksempel kommandoen setfacl -m u:linda:rwx /data giver tilladelser til brugeren linda i mappen /data uden at gøre hende til ejer og uden at ændre den nuværende ejerskabsstatus.
Kommandoen setfacl har mange muligheder og indstillinger. En særlig vigtig mulighed er parameteren -R. Hvis den bruges, sørger denne mulighed for, at indstillingen af ACL gælder for alle filer og undermapper, der i øjeblikket findes i det katalog, hvor du indstiller ACL. Det anbefales altid at bruge denne mulighed, når du ændrer ACL-listen for eksisterende mapper.
Arbejder med standard-ACL
En af fordelene ved at bruge ACL-lister er, at du kan give tilladelser til flere brugere eller grupper i et katalog. En anden fordel er, at du kan inkludere arvegang, når du arbejder med standard-ACL.
Når du har indstillet en standard-ACL, definerer du de tilladelser, der vil blive anvendt på alle nye elementer, der oprettes i mappen. Husk, at standard-ACL ikke ændrer tilladelserne for eksisterende filer og undermapper. For at ændre dem skal du tilføje en almindelig ACL!
Det er vigtigt at vide. Hvis du ønsker at bruge ACL til at konfigurere adgangen for flere brugere eller grupper til det samme katalog, skal du indstille ACL to gange. Først skal du bruge setfacl -R -m, for at ændre ACL for de nuværende filer. Derefter skal du bruge setfacl -m d:, for at sørge for alle nye elementer, der også vil blive oprettet.
For at indstille standard-ACL skal du blot tilføje muligheder d efter mulighed -m (rækkefølgen er vigtig!). Så brug setfacl -m d:g:sales:rx /data, hvis du vil have salgsgruppen til at læse og udføre alt, der nogensinde vil blive oprettet i mappen /data.
Når du bruger standard-ACL-lister kan det også være nyttigt at sætte ACL for andre. Normalt giver det ikke meget mening, fordi du også kan ændre tilladelserne for andre ved at bruge chmod. Men hvad du ikke kan gøre ved hjælp af chmod, angiv de rettigheder, der skal gives til andre brugere for hver ny fil, der nogensinde vil blive oprettet. Hvis du ønsker, at andre ikke skal have nogen tilladelser til noget oprettet i /data, kan du f.eks. bruge setfacl -m d:o::- /data.
ACL og almindelige tilladelser er ikke altid godt integreret. Der kan opstå problemer, hvis du anvender standard ACL på en mappe, hvorefter elementer er blevet tilføjet til denne mappe, og så forsøger at ændre de almindelige tilladelser. Ændringer, der anvendes på de almindelige tilladelser, vil ikke blive reflekteret godt i ACL-gennemgangen. For at undgå problemer, skal du først indstille de almindelige tilladelser, hvorefter du indstiller standard ACL (og efterfølgende forsøge ikke at ændre dem igen).
Eksempel på håndtering af udvidede rettigheder med ACL
I dette eksempel vil du fortsætte med at arbejde med mapperne /data/account og /data/sales, som du har oprettet tidligere. I de tidligere eksempler har du sikret dig, at gruppen sales har tilladelser på /data/sales, og gruppen account har tilladelser på /data/account.
Først skal du sikre dig, at gruppen account får læsetilladelser i mappen /data/sales, og at gruppen sales får læsetilladelser i mappen /data/account.
Derefter indstiller du standard ACL-lister for at sikre, at de korrekte tilladelser er fastsat for alle nye filer for alle nye elementer.
- Åbn terminalen.
- Kør setfacl -m g:account:rx /data/sales og setfacl -m g:sales:rx /data/account.
- Kør getfacl, for at sikre, at adgangsrettighederne blev sat som du ønskede.
- Kør setfacl -m d:g:account:rwx,g:sales:rx /data/sales, for at indstille standard ACL for mappen sales.
- Tilføj standard ACL for mappen /data/account ved hjælp af setfacl -m d:g:sales:rwx,g:account:rx /data/account.
- Sørg for, at ACL-indstillingerne fungerer ved at tilføje en ny fil i /data/sales. Udfør touch /data/sales/newfile og udfør getfacl /data/sales/newfile for at kontrollere de aktuelle tilladelser.
Indstilling af standardrettigheder med umask
Ovenfor har du lært, hvordan man arbejder med standard ACL. Hvis du ikke bruger ACL, er der en shell-indstilling, der bestemmer de standardrettigheder, du vil få: umask (omvendt maske). I dette afsnit lærer du, hvordan man ændrer standardtilladelser med umask.
Du har sikkert bemærket, at der ved oprettelse af en ny fil sættes nogle standardtilladelser. Disse tilladelser bestemmes af indstillingen umask. Denne skalaparameter anvendes for alle brugere ved login. Parametret umask bruges et numerisk værdikode, der trækkes fra de maksimale tilladelser, der automatisk kan indstilles for en fil; den maksimale indstilling for filer er 666, og for mapper er det 777.
Der er dog nogle undtagelser til denne regel. Du kan finde en komplet oversigt over indstillingerne umask i tabellen nedenfor.
Af de tal, der anvendes i umask, ligesom i tilfældet med numeriske argumenter til kommandoen chmod, refererer det første tal til brugerens tilladelser, det andet tal til gruppens tilladelser, og det sidste refererer til standardtilladelserne, der er indstillet for andre. Værdien umask som standard 022 giver 644 for alle nye filer og 755 for alle nye mapper, der oprettes på din server.
En komplet oversigt over alle numeriske værdier umask og deres resultater i tabellen nedenfor.

En enkel måde at se, hvordan umask-parameteren fungerer, ser således ud: Start med standardtilladelserne for en fil, der er indstillet til 666, og træk umask fra for at få de gældende tilladelser. Gør det samme for en mappe og dens standardtilladelser 777.
Der er to måder at ændre umask-indstillingen: for alle brugere og for enkelte brugere. Hvis du ønsker at indstille umask for alle brugere, skal du sikre dig, at umask-parameteren tages i betragtning ved start af shell-miljøfilerne, som angivet i /etc/profile. Den rigtige tilgang er at oprette et shellsprogram kaldet umask.sh i mappen /etc/profile.d og angive den umask, du ønsker at bruge i dette shellsprogram. Hvis umask ændres i denne fil, gælder det for alle brugere efter login på serveren.
Et alternativ til at indstille umask via /etc/profile og relaterede filer, hvor den anvendes for alle brugere, der logger ind, er at ændre umask-indstillingerne i en fil kaldet .profile, der oprettes i hver brugers hjemmemappe.
Indstillingerne, der anvendes i denne fil, gælder kun for den enkelte bruger; derfor er det en god metode, hvis du har brug for mere granularitet. Jeg kan personligt lide denne funktion for at ændre den standardmæssige umask-værdi for root-brugeren til 027, mens almindelige brugere arbejder med en standard umask på 022.
Arbejde med udvidede brugerattributter
Dette er den afsluttende sektion om rettigheder i Linux.
Når man arbejder med tilladelser, er der altid en forbindelse mellem objektet for brugeren eller gruppen og de tilladelser, som disse bruger- eller gruppeobjekter har for en fil eller en mappe. En alternativ metode til at beskytte filer på en Linux-server er at arbejde med attributter.
Attributter fungerer uafhængigt af den bruger, der tilgår filen.
Som med ACL kan der være behov for at aktivere parameteren mount.
user_xattr . Hvis du modtager beskeden "operation not supported" ved arbejde med udvidede brugerattributter, skal du sørge for at indsætte parametereni filen /etc/fstab. mount Mange attributter er dokumenterede. Nogle attributter er tilgængelige, men endnu ikke implementeret. Brug dem ikke; de vil ikke give dig noget.
Nedenfor er de mest nyttige attributter, som du kan anvende:
Denne attribut sikrer, at adgangstiden for filen ikke ændres.
A Normalt skal adgangstiden for filen registreres i filens metadata hver gang filen åbnes. Dette påvirker ydeevnen negativt; derfor kan attributten
bruges til at deaktivere denne funktion for filer, der tilgås regelmæssigt. A Denne attribut gør det muligt at tilføje, men ikke slette filer.
en Hvis du bruger et filsystem, der understøtter kompression på volumes niveau, sikrer denne filattribut, at filen vil blive komprimeret, når kompressionsmekanismen aktiveres første gang.
c Denne attribut sikrer, at ændringer i filer straks skrives til disk, og ikke først til cache. Dette er en nyttig attribut for vigtige databaser, der sikrer, at de ikke går tabt mellem filcachen og harddisken.
D Denne attribut sikrer, at filen ikke gemmes i sikkerhedskopier, hvor der bruges dump-programmet.
d Denne attribut aktiverer indeksering for den mappe, den er aktiveret i. Dette giver hurtigere adgang til filer for primitive filsystemer som Ext3, som ikke bruger en B-træ database til hurtig adgang til filer.
I Denne attribut giver indeksering for det katalog, det er inkluderet i. Dette sikrer hurtigere adgang til filer for primitive filsystemer som Ext3, der ikke bruger en B-tree-database til hurtig adgang til filer.
i Denne attribut gør filen uforanderlig. Derfor kan der ikke foretages ændringer i filen, hvilket er nyttigt for filer, der har brug for ekstra beskyttelse.
j Denne attribut sikrer, at en fil i ext3-filsystemet først bliver skrevet til loggen og derefter til datablokke på harddisken.
s Overskriv blokke, hvor filen er gemt, med 0 efter filen er slettet. Dette sikrer, at filen ikke kan genskabes, efter at den er blevet slettet.
» kan vi håndtere dem som almindelige input-output funktioner, der tager en fil, position, buffer i hukommelsen og tæller antallet af bytes til at læse eller skrive. Denne attribut gemmer oplysninger om sletningen. Dette muliggør udviklingen af et værktøj, der arbejder med disse oplysninger for at redde slettede filer.
Hvis du vil anvende attributter, kan du bruge kommandoen chattr. For eksempel, brug chattr +s somefile, for at anvende attributter på somefile. Vil du fjerne attributten? Så brug chattr -s somefile, og den vil blive fjernet. For at få et overblik over alle de attributter, der i øjeblikket er anvendt, brug kommandoen lsattr.
CV
I denne artikel har du lært, hvordan du arbejder med tilladelser. Du har læst om de tre grundlæggende tilladelser, udvidede tilladelser, og hvordan du anvender ACL-lister i filsystmet. Du har også lært, hvordan du bruger umask-parameteren til at anvende standardtilladelser. Til sidst har du lært, hvordan du bruger brugerdefinerede udvidede attributter til at tilføje et ekstra niveau af sikkerhed til filsystmet.
Hvis du kunne lide denne oversættelse, så skriv gerne om det i kommentarerne. Det vil være mere motiverende at lave nyttige oversættelser.
I artiklen har jeg rettet nogle tastefejl og grammatiske fejl. Jeg har delt nogle tunge afsnit op i mindre for bedre læsbarhed.
I stedet for 'Kun nogen med administrative rettigheder på kataloget kan anvende udførelsestilladelse.' har jeg rettet til 'Kun nogen med skrivetilladelse på kataloget kan anvende udførelsestilladelse.', hvilket vil være mere korrekt.
Tak for kommentarene .
Erstatning:
Hvis du ikke er ejer af brugeren, vil shellen kontrollere, om du er medlem af den gruppe, som også kaldes filens gruppe.Til:
Hvis du ikke er ejer af filen, vil skallen tjekke, om du er medlem af den gruppe, der har tilladelser til denne fil. Hvis du er medlem af denne gruppe, får du adgang til filen med de tilladelser, der er fastsat for gruppen, og skallen stopper med at kontrollere.Tak for kommentaren
Kilde: habr.com
