Hej allihopa. Detta Àr en översÀttning av en artikel frÄn boken RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 och EX300.
Tryck: Jag hoppas att artikeln kommer att vara anvÀndbar inte bara för nybörjare, utan kommer ocksÄ att hjÀlpa mer erfarna administratörer att effektivisera sina kunskaper.
LÄt oss gÄ.

För att komma Ät filer i Linux, behörigheter anvÀnds. Dessa behörigheter tilldelas tre objekt: filÀgaren, gruppÀgaren och ett annat objekt (dvs. alla andra). I den hÀr artikeln lÀr du dig hur du tillÀmpar behörigheter.
Den hÀr artikeln börjar med en översikt över de grundlÀggande begreppen, följt av en diskussion om sÀrskilda behörigheter och Ätkomstkontrollistor (ACL). I slutet av den hÀr artikeln tÀcker vi instÀllning av standardbehörigheter via umask, samt hantering av utökade anvÀndarattribut.
FilÀgandehantering
Innan du diskuterar behörigheter bör du vara medveten om rollen som fil- och katalogĂ€gare. Ăgarskap till filer och kataloger Ă€r avgörande för att hantera behörigheter. I det hĂ€r avsnittet kommer du först att lĂ€ra dig hur du kan se Ă€garen. Du kommer dĂ„ att lĂ€ra dig hur du Ă€ndrar gruppĂ€gare och anvĂ€ndare för filer och kataloger.
Visar Àgaren till en fil eller katalog
РLinux Varje fil och varje katalog har tvÄ Àgare: anvÀndaren och gruppÀgaren.
Dessa Àgare stÀlls in nÀr en fil eller katalog skapas. AnvÀndaren som skapar filen blir Àgare till filen, och den primÀra gruppen som samma anvÀndare tillhör blir ocksÄ Àgare till filen. För att avgöra om du som anvÀndare har behörighet att komma Ät en fil eller katalog, kontrollerar skalet för Àgande.
Detta sker i följande ordning:
- Skalet kontrollerar om du Àr Àgaren till filen du vill komma Ät. Om du Àr Àgaren fÄr du behörigheter och skalet slutar kontrollera.
- Om du inte Àr Àgaren till filen kommer skalet att kontrollera om du Àr medlem i en grupp som har behörigheter för filen. Om du Àr medlem i den hÀr gruppen kommer du Ät filen med de behörigheter som gruppen har angett, och skalet kommer att sluta kontrollera.
- Om du varken Ă€r anvĂ€ndare eller Ă€gare till en grupp ges du rĂ€ttigheterna för andra anvĂ€ndare (Ăvrigt).
För att se aktuella Àgartilldelningar kan du anvÀnda kommandot ls-l. Detta kommando visar anvÀndaren och Àgaren av gruppen. Nedan kan du se ÀgarinstÀllningarna för kataloger i /home-katalogen.
[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 kommandot ls du kan visa Àgaren till filerna i en given katalog. Ibland kan det vara anvÀndbart att fÄ en lista över alla filer pÄ systemet som har en given anvÀndare eller grupp som Àgare. För detta kan du anvÀnda finna. Argument hitta-anvÀndare kan anvÀndas för detta ÀndamÄl. Till exempel listar följande kommando alla filer som Àgs av anvÀndaren linda:
find / -user lindaDu kan ocksÄ anvÀnda finna för att söka efter filer som har en specifik grupp som Àgare.
Följande kommando söker till exempel efter alla filer som tillhör gruppen anvÀndare:
find / -group usersĂgarbyte
För att tillÀmpa lÀmpliga behörigheter Àr det första att tÀnka pÄ Àgande. Det finns ett kommando för detta chown. Syntaxen för detta kommando Àr lÀtt att förstÄ:
chown ĐșŃĐŸ ŃŃĐŸTill exempel Ă€ndrar följande kommando Ă€garen av /home/account-katalogen till anvĂ€ndaren linda:
chown linda /home/accountTeam chown har flera alternativ, varav ett Àr sÀrskilt anvÀndbart: -R. Du kan gissa vad det gör eftersom det hÀr alternativet Àr tillgÀngligt för mÄnga andra kommandon ocksÄ. Detta lÄter dig stÀlla in Àgaren rekursivt, vilket gör att du kan stÀlla in Àgaren till den aktuella katalogen och allt nedan. Följande kommando Àndrar Àgandet av /home-katalogen och allt under den till linda-anvÀndaren:
Nu ser Àgarna ut sÄ hÀr:
[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
LÄt oss göra:
[root@localhost ~]# chown -R lisa /home/account
[root@localhost ~]#
Nu har anvÀndaren lisa blivit Àgare till kontokatalogen:
[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
Byt Àgare till en grupp
Det finns tvÄ sÀtt att Àndra Àgandet av en grupp. Du kan göra detta med hjÀlp av chown, men det finns ett speciellt kommando som heter chgrpsom gör jobbet. Om du vill anvÀnda kommandot chown, anvÀnda sig av . eller : framför gruppnamnet.
Följande kommando Àndrar alla Àgare av /home/kontogruppen till kontogruppen:
chown .account /home/account
du kan anvÀnda chown att byta Àgare till en anvÀndare och/eller grupp pÄ flera sÀtt. HÀr Àr nÄgra exempel:
- chown lisa myfile1 anger anvÀndaren lisa som Àgare av myfile1.
- chown lisa.sales myfile stÀller in anvÀndaren lisa som Àgare av filen myfile, och anger Àven försÀljningsgruppen som Àgare till samma fil.
- chown lisa:sales myfile samma som föregÄende kommando.
- chown .sales myfile anger sÀljgruppen som Àgare till myfile utan att Àndra Àgaren till anvÀndaren.
- chown :sales myfile samma som föregÄende kommando.
Du kan anvÀnda kommandot chgrpför att byta Àgare till gruppen. TÀnk pÄ följande exempel, dÀr du kan anvÀnda chgrp stÀll in Àgaren av kontokatalogen till försÀljningsgruppen:
chgrp .sales /home/accountSom med chown, kan du anvĂ€nda alternativet -R Ń chgrp, och Ă€ven Ă€ndra Ă€garen till gruppen rekursivt.
FörstÄ standardÀgaren
Du kanske har mÀrkt att nÀr en anvÀndare skapar en fil tillÀmpas standardÀganderÀtten.
AnvÀndaren som skapar filen blir automatiskt Àgare till filen, och anvÀndarens primÀra grupp blir automatiskt Àgare till filen. Detta Àr vanligtvis gruppen som Àr listad i filen /etc/passwd som anvÀndarens primÀra grupp. Men om anvÀndaren Àr medlem i mer Àn en grupp kan anvÀndaren Àndra den effektiva primÀra gruppen.
För att visa den aktuella primÀra gruppen kan anvÀndaren anvÀnda kommandot grupper:
[root@server1 ~]# groups lisa
lisa : lisa account sales
Om den nuvarande linda-anvÀndaren vill Àndra den effektiva primÀra gruppen, kommer han att anvÀnda kommandot nygrpföljt av namnet pÄ gruppen han vill stÀlla in som den nya effektiva primÀra gruppen. Efter att ha anvÀnt kommandot nygrp den primÀra gruppen kommer att vara aktiv tills anvÀndaren anger ett kommando avsluta eller kommer inte att logga ut frÄn systemet.
Följande visar hur anvÀndaren linda anvÀnder detta kommando, med försÀljning som primÀr grupp:
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
Efter att ha Àndrat den effektiva primÀra gruppen kommer alla nya filer som skapats av anvÀndaren att ha den gruppen som gruppÀgare. För att ÄtergÄ till den ursprungliga primÀra gruppinstÀllningen, anvÀnd avsluta.
För att kunna anvÀnda kommandot nygrp, mÄste anvÀndaren vara medlem i gruppen de vill anvÀnda som primÀr grupp. Dessutom kan ett grupplösenord anvÀndas för en grupp med kommandot gpasswd. Om anvÀndaren anvÀnder kommandot nygrpmen inte Àr medlem i mÄlgruppen, frÄgar skalet om gruppens lösenord. NÀr du har angett rÀtt grupplösenord kommer en ny effektiv primÀr grupp att upprÀttas.
Förvaltning av grundlÀggande rÀttigheter
TillstÄndssystem Linux uppfanns pÄ 1970-talet. Eftersom datorbehoven var begrÀnsade vid den tiden var det grundlÀggande behörighetssystemet ganska begrÀnsat. Detta behörighetssystem anvÀnder tre behörigheter som kan tillÀmpas pÄ filer och kataloger. I det hÀr avsnittet lÀr du dig hur du anvÀnder och Àndrar dessa behörigheter.
FörstÄ lÀs-, skriv- och exekveringsbehörigheter
Tre grundlÀggande behörigheter lÄter dig lÀsa, skriva och köra filer. Effekten av dessa behörigheter skiljer sig nÀr de tillÀmpas pÄ filer eller kataloger. För en fil ger lÀsbehörigheten dig rÀtt att öppna filen för lÀsning. DÀrför kan du lÀsa dess innehÄll, men det betyder att din dator kan öppna filen för att göra nÄgot med den.
En programfil som behöver tillgÄng till ett bibliotek mÄste till exempel ha lÀsbehörighet till det biblioteket. Det följer att lÀsbehörigheten Àr den mest grundlÀggande behörigheten du behöver för att arbeta med filer.
NÀr lÀsbehörighet tillÀmpas pÄ en katalog, tillÄter den dig att visa innehÄllet i den katalogen. Du bör vara medveten om att denna behörighet inte tillÄter dig att lÀsa filer i katalogen. Behörighetssystemet Linux kÀnner inte till arv, och det enda sÀttet att lÀsa en fil Àr att anvÀnda lÀsbehörigheter pÄ den filen.
Som du sÀkert kan gissa tillÄter skrivbehörighet, om den tillÀmpas pÄ en fil, att skriva till filen. Med andra ord lÄter den dig Àndra innehÄllet i befintliga filer. Det tillÄter dig dock inte att skapa eller ta bort nya filer eller Àndra filbehörigheter. För att göra detta mÄste du ge skrivbehörighet till katalogen dÀr du vill skapa filen. I kataloger tillÄter denna behörighet dig ocksÄ att skapa och ta bort nya underkataloger.
Körbehörighet Àr vad du behöver för att köra en fil. Den kommer aldrig att vara instÀlld som standard, vilket gör Linux NÀstan helt immun mot virus. Endast nÄgon med skrivÄtkomst till katalogen kan tillÀmpa körningsbehörigheter.
Följande sammanfattar anvÀndningen av grundlÀggande behörigheter:

AnvÀnder chmod
Kommandot anvÀnds för att hantera behörigheter. chmod. AnvÀnder sig av chmod du kan stÀlla in behörigheter för anvÀndaren (anvÀndaren), grupper (grupp) och andra (övriga). Du kan anvÀnda detta kommando i tvÄ lÀgen: relativt lÀge och absolut lÀge. I absolut lÀge anvÀnds tre siffror för att stÀlla in grundlÀggande behörigheter.

NÀr du stÀller in behörigheter, berÀkna vÀrdet du behöver. Om du vill stÀlla in lÀs/skriv/kör för anvÀndare, lÀs/kör för grupp och lÀs/kör för andra i /nÄgon fil sÄ anvÀnder du följande kommando chmod:
chmod 755 /somefileNÀr du anvÀnder chmod pÄ detta sÀtt ersÀtts alla nuvarande behörigheter med de behörigheter du stÀller in.
Om du vill Àndra behörigheterna i förhÄllande till de aktuella behörigheterna kan du anvÀnda chmod i relativt lÀge. AnvÀnder sig av chmod i relativt lÀge arbetar du med tre indikatorer för att indikera vad du vill göra:
- Först anger du vem du vill Àndra behörigheter för. För att göra detta kan du vÀlja mellan anvÀndare (u), grupp (g) och andra (o).
- Du anvÀnder sedan ett uttalande för att lÀgga till eller ta bort behörigheter frÄn det aktuella lÀget, eller stÀlla in dem absolut.
- I slutet anvÀnder du r, w О xför att ange vilka behörigheter du vill stÀlla in.
NÀr du Àndrar behörigheter i relativt lÀge kan du hoppa över "till"-delen för att lÀgga till eller ta bort behörigheten för alla objekt. Till exempel, det hÀr kommandot lÀgger till exekveringsbehörighet för alla anvÀndare:
chmod +x somefileNÀr du arbetar i relativt lÀge kan du ocksÄ anvÀnda mer komplexa kommandon. Till exempel lÀgger det hÀr kommandot till skrivbehörighet till en grupp och tar bort lÀsbehörighet för andra:
chmod g+w,o-r somefileNÀr du anvÀnder chmod -R o+rx /data du stÀller in exekveringsbehörighet för alla kataloger sÄvÀl som filer i /data-katalogen. AnvÀnd chmod -R o+ rX /data.
Versaler X sÀkerstÀller att filer inte fÄr exekveringsbehörighet om inte filen redan har angett exekveringsbehörighet för vissa objekt. Detta gör X till ett smartare sÀtt att hantera exekveringsbehörigheter; detta kommer att undvika att stÀlla in denna behörighet pÄ filer dÀr det inte krÀvs.
Utökade rÀttigheter
Utöver de grundlÀggande behörigheterna du just lÀste om, Linux Det finns ocksÄ en uppsÀttning utökade behörigheter. Dessa Àr inte de behörigheter du anger som standard, men de kan ibland ge ett anvÀndbart extra. I det hÀr avsnittet fÄr du lÀra dig vad de Àr och hur du konfigurerar dem.
FörstÄ SUID, GUID och Sticky Bit Extended Permissions
Det finns tre avancerade behörigheter. Den första av dessa Àr behörigheten att stÀlla in en anvÀndaridentifierare (SUID). I vissa speciella fall kan du tillÀmpa denna behörighet pÄ körbara filer. Som standard kör en anvÀndare som kör en körbar fil med sina egna behörigheter.
För vanliga anvÀndare innebÀr detta vanligtvis att anvÀndningen av programmet Àr begrÀnsad. Men i vissa fall behöver anvÀndaren speciella behörigheter, bara för att utföra en specifik uppgift.
TÀnk till exempel pÄ en situation dÀr en anvÀndare behöver Àndra sitt lösenord. För att göra detta mÄste anvÀndaren skriva sitt nya lösenord till filen /etc/shadow. Den hÀr filen Àr dock inte skrivbar av icke-rootanvÀndare:
root@hnl ~]# ls -l /etc/shadow
----------. 1 root root 1184 Apr 30 16:54 /etc/shadow
SUID-behörigheten erbjuder en lösning pĂ„ detta problem. Verktyget /usr/bin/passwd anvĂ€nder denna behörighet som standard. Detta innebĂ€r att nĂ€r anvĂ€ndaren byter lösenord blir anvĂ€ndaren tillfĂ€lligt root, vilket gör att han kan skriva till filen /etc/shadow. Du kan se SUID-behörigheten med ls-l ĐșаĐș s i en position dĂ€r du normalt förvĂ€ntar dig att se x för anpassade behörigheter:
[root@hnl ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 32680 Jan 28 2010 /usr/bin/passwd
SUID-behörigheten kan se anvÀndbar ut (och i vissa fall Àr den det), men den Àr samtidigt potentiellt farlig. Om det inte tillÀmpas korrekt kan du av misstag ge bort root-behörigheter. DÀrför rekommenderar jag att du endast anvÀnder den med största försiktighet.
De flesta administratörer kommer aldrig att behöva anvÀnda det; du kommer bara att se det i vissa filer dÀr operativsystemet ska stÀlla in det som standard.
Den andra sÀrskilda behörigheten Àr gruppidentifieraren (SGID). Detta tillstÄnd har tvÄ effekter. NÀr den appliceras pÄ en körbar fil ger den anvÀndaren som kör filen behörigheterna för filens gruppÀgare. SÄ SGID kan göra mer eller mindre samma sak som SUID. SGID anvÀnds dock praktiskt taget inte för detta ÀndamÄl.
Som med SUID-behörighet tillÀmpas SGID pÄ vissa systemfiler som standardinstÀllning.
NÀr det tillÀmpas pÄ en katalog kan SGID:t vara anvÀndbart eftersom du kan anvÀnda det för att stÀlla in standardgruppÀgaren för filer och underkataloger som skapats i den katalogen. Som standard, nÀr en anvÀndare skapar en fil, Àr deras effektiva primÀra grupp instÀlld som gruppÀgare för den filen.
Detta Àr inte alltid sÀrskilt anvÀndbart, sÀrskilt eftersom Red Hat-anvÀndare/CentOS PrimÀrgruppen Àr instÀlld pÄ en grupp med samma namn som anvÀndaren, dÀr anvÀndaren Àr den enda medlemmen. Det betyder att filer som anvÀndaren skapar som standard delas i gruppen.
FörestÀll dig en situation dÀr anvÀndarna linda och lori arbetar med redovisning och Àr medlemmar i en grupp konto. Som standard Àr dessa anvÀndare medlemmar i en privat grupp dÀr de Àr den enda medlemmen. BÄda anvÀndarna Àr dock medlemmar i kontogruppen, men ocksÄ som en sekundÀr gruppparameter.
Standardsituationen Àr att nÀr nÄgon av dessa anvÀndare skapar en fil blir den primÀra gruppen Àgare. DÀrför kan linda som standard inte komma Ät filer skapade av lori, och vice versa. Men om du skapar en delad gruppkatalog (sÀg /groups/account) och sÀkerstÀller att SGID-behörigheten tillÀmpas pÄ den katalogen och att gruppkontot Àr instÀllt som gruppÀgare för den katalogen, kommer alla filer som skapats i den katalogen och alla av dess underkataloger fÄr Àven gruppkontot som gruppÀgare som standard.
Av denna anledning Àr SGID-tillstÄndet en mycket anvÀndbar behörighet att sÀtta pÄ offentliga gruppkataloger.
SGID-behörighet visas i utdata ls-l ĐșаĐș s pĂ„ den position dĂ€r du normalt skulle fĂ„ tillstĂ„nd att köra en grupp:
[root@hnl data]# ls -ld account
drwxr-sr-x. 2 root account 4096 Apr 30 21:28 account
Den tredje av de sÀrskilda behörigheterna Àr sticky biten. Denna behörighet Àr anvÀndbar för att skydda filer frÄn oavsiktlig radering i en miljö dÀr flera anvÀndare har skrivÄtkomst till samma katalog. Om en sticky bit anvÀnds kan en anvÀndare bara ta bort en fil om de Àr anvÀndarens Àgare till filen eller katalogen som innehÄller filen. Av denna anledning anvÀnds den som standardbehörighet för /tmp-katalogen och kan ocksÄ vara anvÀndbar för publika gruppkataloger.
Utan den klibbiga biten, om anvÀndaren kan skapa filer i en katalog, kan de ocksÄ ta bort filer frÄn den katalogen. I en offentlig gruppmiljö kan detta vara irriterande. FörestÀll dig anvÀndarna linda och lori, som bÄda har skrivbehörighet till /data/kontokatalogen och fÄr dessa behörigheter genom att vara medlemmar i kontogruppen. DÀrför kan linda ta bort filer skapade av lori och vice versa.
NÀr du anvÀnder den sticky biten kan anvÀndaren bara ta bort filer om nÄgot av följande villkor Àr sant:
- AnvÀndaren Àr Àgaren till filen;
- AnvÀndaren Àr Àgaren till katalogen dÀr filen finns.
NÀr du anvÀnder ls-l, kan du se den klibbiga biten som t i den position dÀr du normalt skulle se körningstillstÄnd för andra:
[root@hnl data]# ls -ld account/
drwxr-sr-t. 2 root account 4096 Apr 30 21:28 account/
TillÀmpa utökade rÀttigheter
För att applicera SUID, SGID och sticky bit kan du ocksÄ anvÀnda chmod. SUID har ett numeriskt vÀrde pÄ 4, SGID har ett numeriskt vÀrde pÄ 2 och sticky bit har ett numeriskt vÀrde pÄ 1.
Om du vill tillÀmpa dessa behörigheter mÄste du lÀgga till ett fyrsiffrigt argument till chmod, vars första siffra hÀnvisar till sÀrskilda behörigheter. Följande rad kommer till exempel att lÀgga till SGID-behörighet till katalogen och stÀlla in rwx för anvÀndare och rx för grupp och andra:
chmod 2755 /somedirDetta Àr ganska opraktiskt om du behöver se de aktuella behörigheterna som Àr instÀllda innan du arbetar med chmod i absolut lÀge. (Du riskerar att skriva över behörigheter om du inte gör det.) DÀrför rekommenderar jag att du kör i relativt lÀge om du behöver anvÀnda nÄgon av de speciella behörigheterna:
- För SUID-anvÀndning chmod u+s.
- För SGID-anvÀndning chmod g+s.
- För klibbig anvÀndning chmod +t, följt av namnet pÄ filen eller katalogen som du vill ange behörigheter för.
Tabellen sammanfattar allt du behöver veta om att hantera speciella behörigheter.

Exempel pÄ arbete med sÀrskilda rÀttigheter
I det hÀr exemplet anvÀnder du speciella behörigheter för att göra det lÀttare för gruppmedlemmar att dela filer i den delade gruppkatalogen. Du tilldelar ID-biten till set-grupp-ID sÄvÀl som sticky-biten, och du ser att nÀr de vÀl Àr instÀllda lÀggs funktioner till för att göra det lÀttare för gruppmedlemmar att arbeta tillsammans.
- Ăppna en terminal dĂ€r du Ă€r lindas anvĂ€ndare. Du kan skapa en anvĂ€ndare med kommandot anvĂ€ndaradd linda, lĂ€gg till lösenord passwd Linda.
- Skapa /data-katalogen i roten och /data/sales-underkatalogen med kommandot mkdir -p /data/försÀljning. Kör cd /data/försÀljningför att gÄ till försÀljningskatalogen. Komplett röra linda1 О röra linda2för att skapa tvÄ tomma filer som Àgs av linda.
- Kör su-lisa för att byta nuvarande anvÀndare till anvÀndaren lisa, som ocksÄ Àr medlem i sÀljgruppen.
- Kör cd /data/försÀljning och kör frÄn den katalogen ls-l. Du kommer att se tvÄ filer som skapades av linda-anvÀndaren och som tillhör linda-gruppen. Kör rm -f linda*. Detta tar bort bÄda filerna.
- Kör tryck pÄ lisa1 О tryck pÄ lisa2för att skapa tvÄ filer som Àgs av anvÀndaren lisa.
- Kör su- för att höja dina privilegier till root.
- Kör chmod g+s,o+t /data/försÀljningför att stÀlla in gruppidentifieringsbiten (GUID) sÄvÀl som sticky biten i den delade gruppkatalogen.
- Kör su-linda. Gör sedan röra linda3 О röra linda4. Du bör nu se att de tvÄ filerna du skapade Àgs av sÀljgruppen, som Àr gruppÀgaren till katalogen /data/sales.
- Kör rm -rf lisa*. Den sticky biten förhindrar att dessa filer raderas pÄ uppdrag av linda-anvÀndaren, eftersom du inte Àr Àgaren till dessa filer. Observera att om linda-anvÀndaren Àr Àgare till /data/sales-katalogen, kan de ta bort dessa filer ÀndÄ!
ACL-hantering (setfacl, getfacl) i Linux
Ăven om de utökade rĂ€ttigheterna som diskuterats ovan lĂ€gger till anvĂ€ndbar funktionalitet till hur Linux fungerar med behörigheter, det tillĂ„ter dig inte att ge behörigheter till mer Ă€n en anvĂ€ndare eller en grupp i en fil.
à tkomstkontrollistor erbjuder denna funktion. Dessutom tillÄter de administratörer att stÀlla in standardbehörigheter pÄ ett komplext sÀtt, dÀr de angivna behörigheterna kan variera frÄn katalog till katalog.
FörstÄ ACL
Ăven om ACL-undersystemet lĂ€gger till stor funktionalitet till din server, har det en nackdel: inte alla verktyg stöder det. DĂ€rför kan du förlora dina ACL-instĂ€llningar nĂ€r du kopierar eller flyttar filer, och din sĂ€kerhetskopieringsprogram kan misslyckas med att sĂ€kerhetskopiera dina ACL-instĂ€llningar.
Tar-verktyget stöder inte ACL. För att sÀkerstÀlla att ACL-instÀllningarna inte gÄr förlorade nÀr du skapar en sÀkerhetskopia, anvÀnd stjÀrna istÀllet för tjÀra. stjÀrna fungerar med samma alternativ som tjÀra; det lÀgger bara till stöd för ACL-instÀllningar.
Du kan ocksÄ sÀkerhetskopiera ACL med getfacl, som kan ÄterstÀllas med kommandot setfacl. För att skapa en sÀkerhetskopia, anvÀnd getfacl -R /katalog > fil.acls. För att ÄterstÀlla instÀllningar frÄn en sÀkerhetskopia, anvÀnd setfacl --restore=fil.acl.
Brist pÄ stöd frÄn vissa verktyg borde inte vara ett problem. ACL:er tillÀmpas ofta pÄ kataloger som en strukturell ÄtgÀrd snarare Àn pÄ enskilda filer.
DÀrför kommer det inte att finnas mÄnga av dem, utan bara ett fÄtal, applicerade pÄ smarta platser i filsystemet. DÀrför Àr det relativt enkelt att ÄterstÀlla de ursprungliga ACL:erna du arbetade med, Àven om din sÀkerhetskopieringsprogram inte stöder dem.
Förbereder filsystemet för ACL:er
Innan du börjar arbeta med ACL:er kan du behöva förbereda ditt filsystem för att stödja ACL. Eftersom filsystemets metadata behöver utökas finns det inte alltid standardstöd för ACL i filsystemet. Om du fÄr meddelandet "operation not supported" nÀr du stÀller in ACL:er för ett filsystem, kanske ditt filsystem inte stöder ACL:er.
För att fixa detta mÄste du lÀgga till alternativet acl fÀste i /etc/fstab sÄ att filsystemet Àr monterat med ACL-stöd som standard.
Ăndra och visa ACL-instĂ€llningar med setfacl och getfacl
För att stÀlla in en ACL behöver du kommandot setfacl. För att se de aktuella ACL-instÀllningarna behöver du getfacl. Team ls-l visar inga befintliga ACL:er; det visar bara ett + efter behörighetslistan, vilket indikerar att ACL:erna gÀller för filen ocksÄ.
Innan du stÀller in ACL:er Àr det alltid en bra idé att visa aktuella ACL-instÀllningar med getfacl. I exemplet nedan kan du se de aktuella behörigheterna, som visas med ls-l, och Àven som visas med getfacl. Om du tittar noga noga kommer du att se att informationen som visas Àr exakt densamma.
[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 ett resultat av att utföra kommandot getfacl nedan kan du se att behörigheterna visas för tre olika objekt: anvÀndare, grupp och andra. LÄt oss nu lÀgga till en ACL för att ge lÀs- och körbehörigheter Àven till sÀljgruppen. kommando för detta setfacl -mg:sales:rx /dir. I det hÀr laget -m indikerar att de aktuella ACL-instÀllningarna mÄste Àndras. Efter det g:försÀljning:rx sÀger till kommandot att stÀlla in lÀs-kör ACL (rx) för grupp (g) försÀljning. Nedan kan du se hur kommandot ser ut, samt utdata frÄn getfacl-kommandot efter att ha Àndrat de aktuella ACL-instÀllningarna.
[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 nÀr du förstÄr hur man stÀller in en grupp-ACL Àr det lÀtt att förstÄ ACL för anvÀndare och andra anvÀndare. Till exempel kommandot setfacl -mu:linda:rwx /data ger tillstÄnd till anvÀndaren linda i /data-katalogen utan att göra honom till Àgare eller Àndra tilldelningen av den nuvarande Àgaren.
Team setfacl har mÄnga funktioner och alternativ. Ett alternativ Àr sÀrskilt viktigt, parametern -R. Om det anvÀnds gör alternativet ACL instÀlld för alla filer och underkataloger som för nÀrvarande finns i katalogen dÀr du stÀller in ACL. Det rekommenderas att du alltid anvÀnder det hÀr alternativet nÀr du Àndrar ACL för befintliga kataloger.
Arbeta med standard ACL
En av fördelarna med att anvÀnda ACL:er Àr att du kan ge behörigheter till flera anvÀndare eller grupper i en katalog. En annan fördel Àr att du kan aktivera nedÀrvning genom att arbeta med standard ACL.
Genom att stÀlla in standard ACL bestÀmmer du vilka behörigheter som kommer att stÀllas in för alla nya objekt som skapas i katalogen. Var medveten om att standard ACL inte Àndrar behörigheter för befintliga filer och underkataloger. För att Àndra dem mÄste du lÀgga till en normal ACL ocksÄ!
Detta Àr viktigt att veta. Om du vill anvÀnda en ACL för att konfigurera flera anvÀndare eller grupper för att komma Ät samma katalog mÄste du stÀlla in ACL tvÄ gÄnger. Första anvÀndning setfacl -R -mför att Àndra ACL för de aktuella filerna. AnvÀnd sedan setfacl-md:att ta hand om alla nya element som ocksÄ kommer att skapas.
För att stÀlla in standard ACL behöver du bara lÀgga till alternativet d efter alternativ -m (ordning spelar roll!). SÄ anvÀnd setfacl -md:g:försÀljning:rx /dataom du vill att gruppförsÀljning ska lÀsa och köra vad som helst som skapas i /data-katalogen.
NÀr du anvÀnder standard-ACL kan det ocksÄ vara anvÀndbart att stÀlla in ACL för andra. Detta Àr vanligtvis inte sÄ meningsfullt eftersom du ocksÄ kan Àndra behörigheterna för andra som anvÀnder chmod. Men vad man inte kan göra med chmod, Àr att ange de rÀttigheter som mÄste beviljas andra anvÀndare för varje ny fil som nÄgonsin skapas. Om du vill hindra andra frÄn att fÄ nÄgra tillstÄnd pÄ nÄgot som skapas i /data till exempel anvÀnd setfacl -md:o::- /data.
ACL:er och normala behörigheter Ă€r inte alltid vĂ€l integrerade. Problem kan uppstĂ„ om du anvĂ€nder en standard ACL pĂ„ en katalog, sedan lĂ€ggs objekt till i den katalogen och sedan försöker Ă€ndra de normala behörigheterna. Ăndringar som gĂ€ller normala behörigheter kommer inte att Ă„terspeglas vĂ€l i ACL-översikten. För att undvika problem, stĂ€ll in normala behörigheter först, stĂ€ll sedan in standard ACL:erna (och försök att inte Ă€ndra dem igen efter det).
Exempel pÄ hantering av förhöjda rÀttigheter med hjÀlp av ACL
I det hÀr exemplet fortsÀtter du med katalogerna /data/account och /data/sales som du skapade tidigare. I de tidigare exemplen har du sett till att sÀljgruppen har behörigheter pÄ /data/försÀljning och att kontogruppen har behörigheter pÄ /data/konto.
Se först till att kontogruppen fÄr lÀsbehörigheter i katalogen /data/sales och att sÀljgruppen fÄr lÀsbehörigheter i katalogen /data/account.
Du stÀller sedan in standard ACL:er för att se till att alla nya filer har rÀtt behörigheter för alla nya objekt.
- Ăppna en terminal.
- Kör setfacl -mg:konto:rx /data/försÀljning О setfacl -mg:försÀljning:rx /data/konto.
- Kör getfaclför att se till att behörigheterna var instÀllda som du ville.
- Kör setfacl -md:g:account:rwx,g:sales:rx /data/salesför att stÀlla in standard-ACL för försÀljningskatalogen.
- LÀgg till en standard ACL för /data/account-katalogen med hjÀlp av setfacl -md:g:sales:rwx,g:account:rx /data/account.
- Kontrollera att ACL-instÀllningarna Àr aktiva genom att lÀgga till en ny fil i /data/sales. Komplett tryck pÄ /data/försÀljning/nyfil och gör getfacl /data/sales/newfile för att kontrollera aktuella behörigheter.
StÀller in standardbehörigheter med umask
Ovan har du lÀrt dig hur du arbetar med standard-ACL. Om du inte anvÀnder en ACL finns det ett skalalternativ som bestÀmmer vilka standardbehörigheter du fÄr: umask (omvÀnd mask). I det hÀr avsnittet kommer du att lÀra dig hur du Àndrar standardbehörigheterna med umask.
Du kanske har mÀrkt att nÀr du skapar en ny fil stÀlls vissa standardbehörigheter in. Dessa behörigheter bestÀms av instÀllningen umask. Denna skalinstÀllning gÀller för alla anvÀndare vid inloggning. I parameter umask ett numeriskt vÀrde anvÀnds, vilket subtraheras frÄn de maximala behörigheter som automatiskt kan stÀllas in för filen; den maximala instÀllningen för filer Àr 666 och för kataloger Àr 777.
Vissa undantag gÀller dock frÄn denna regel. Du kan hitta en fullstÀndig översikt över instÀllningar umask i tabellen nedan.
Av de siffror som anvÀnds i umask, som i fallet med numeriska argument för kommandot chmod, den första siffran hÀnvisar till anvÀndarens behörigheter, den andra siffran hÀnvisar till gruppens behörigheter och den sista hÀnvisar till standardbehörigheterna för andra. Menande umask standardvÀrdet 022 ger 644 för alla nya filer och 755 för alla nya kataloger som skapats pÄ din server.
FullstÀndig översikt över alla numeriska vÀrden umask och deras resultat i tabellen nedan.

Ett enkelt sÀtt att se hur umask-instÀllningen fungerar Àr följande: börja med filens standardbehörigheter instÀllda pÄ 666 och subtrahera umasken för att fÄ effektiva behörigheter. Gör samma sak för katalogen och dess standardbehörigheter 777.
Det finns tvÄ sÀtt att Àndra umask-instÀllningen: för alla anvÀndare och för enskilda anvÀndare. Om du vill stÀlla in umask för alla anvÀndare mÄste du se till att umask-instÀllningen tas med i berÀkningen nÀr du startar skalmiljöfiler, som specificerats i /etc/profile. Det korrekta tillvÀgagÄngssÀttet Àr att skapa ett skalskript som heter umask.sh i katalogen /etc/profile.d och ange den umask du vill anvÀnda i det skalskriptet. Om umasken Àndras i den hÀr filen, tillÀmpas den pÄ alla anvÀndare efter att ha loggat in pÄ servern.
Ett alternativ till att stÀlla in umask via /etc/profile och relaterade filer, dÀr det gÀller för alla anvÀndare som loggar in, Àr att Àndra umask-instÀllningarna i en fil som heter .profile som skapas i varje anvÀndares hemkatalog.
InstÀllningarna som tillÀmpas i den hÀr filen gÀller endast för den enskilda anvÀndaren; DÀrför Àr detta en bra metod om du behöver mer detaljer. Jag gillar personligen den hÀr funktionen för att Àndra standard umask för root-anvÀndaren till 027 medan normala anvÀndare kör med standard umask av 022.
Arbeta med utökade anvÀndarattribut
Detta Àr det sista avsnittet om rÀttigheter i Linux.
NĂ€r man arbetar med behörigheter finns det alltid en relation mellan ett anvĂ€ndar- eller gruppobjekt och de behörigheter som dessa anvĂ€ndar- eller gruppobjekt har pĂ„ en fil eller katalog. En alternativ metod för att sĂ€kra filer pĂ„ en server. Linux â arbeta med attribut.
Attribut gör sitt jobb oavsett om anvÀndaren kommer Ät filen.
Precis som med ACL:er kan filattribut behöva aktiveras. montera.
Detta Àr ett alternativ user_xattr. Om du fÄr meddelandet "operation not supported" nÀr du arbetar med utökade anvÀndarattribut, var noga med att stÀlla in parametern montera i /etc/fstab.
MÄnga attribut Àr dokumenterade. Vissa attribut Àr tillgÀngliga men inte implementerade Ànnu. AnvÀnd dem inte; de kommer inte att ge dig nÄgot.
Nedan Àr de mest anvÀndbara attributen du kan anvÀnda:
A Detta attribut sÀkerstÀller att filens filÄtkomsttid inte Àndras.
Vanligtvis, varje gÄng en fil öppnas, mÄste filens Ätkomsttid registreras i filens metadata. Detta pÄverkar prestandan negativt; sÄ för filer som anvÀnds regelbundet, attributet A kan anvÀndas för att inaktivera denna funktion.
a Detta attribut lÄter dig lÀgga till men inte ta bort en fil.
c Om du anvÀnder ett filsystem som stöder komprimering pÄ volymnivÄ, sÀkerstÀller detta filattribut att filen komprimeras första gÄngen komprimeringsmekanismen aktiveras.
D Det hÀr attributet sÀkerstÀller att Àndringar av filer skrivs till disken omedelbart istÀllet för att cachelagras först. Detta Àr ett anvÀndbart attribut pÄ viktiga databasfiler för att se till att de inte försvinner mellan filcachen och hÄrddisken.
d Detta attribut sÀkerstÀller att filen inte kommer att sparas i sÀkerhetskopior dÀr dumpningsverktyget anvÀnds.
I Det hÀr attributet möjliggör indexering för katalogen dÀr det Àr aktiverat. Detta ger snabbare filÄtkomst för primitiva filsystem som Ext3, som inte anvÀnder en B-trÀddatabas för snabb filÄtkomst.
i Detta attribut gör filen oförÀnderlig. DÀrför kan inga Àndringar göras i filen, vilket Àr anvÀndbart för filer som behöver extra skydd.
j Detta attribut sÀkerstÀller att filen pÄ ett ext3-filsystem först skrivs till journalen och sedan till datablock pÄ hÄrddisken.
s Skriv över blocken dÀr filen sparades till noll efter att filen tagits bort. Detta sÀkerstÀller att filen inte kan ÄterstÀllas nÀr den vÀl har tagits bort.
u Detta attribut lagrar information om raderingen. Detta gör att du kan utveckla ett verktyg som arbetar med denna information för att rÀdda raderade filer.
Om du vill anvÀnda attributen kan du anvÀnda kommandot prat. AnvÀnd till exempel chattr +s nÄgon filatt tillÀmpa attribut pÄ nÄgon fil. Behöver du ta bort ett attribut? AnvÀnd sedan chattr -s nÄgon fil, och den kommer att raderas. För att fÄ en överblick över alla attribut som för nÀrvarande tillÀmpas, anvÀnd kommandot lsattr.
Sammanfattning
I den hÀr artikeln lÀrde du dig hur du arbetar med behörigheter. Du lÀser om de tre grundlÀggande behörigheterna, avancerade behörigheter och hur man tillÀmpar ACL pÄ ett filsystem. Du lÀrde dig ocksÄ hur du anvÀnder alternativet umask för att tillÀmpa standardbehörigheter. I slutet av den hÀr artikeln lÀrde du dig hur du anvÀnder anvÀndarutvidgade attribut för att tillÀmpa ett ytterligare lager av filsystemsÀkerhet.
Om du gillade den hÀr översÀttningen, skriv om den i kommentarerna. Det kommer att finnas mer motivation att göra anvÀndbara översÀttningar.
RÀttade nÄgra stavfel och grammatiska fel i artikeln. Minskade nÄgra skrymmande stycken till mindre för bÀttre lÀsbarhet.
IstÀllet för "Endast nÄgon med administrativa rÀttigheter till katalogen kan ansöka om exekveringsbehörighet." fixerad till "Endast nÄgon med skrivbehörighet pÄ katalogen kan tillÀmpa exekveringsbehörighet.", vilket skulle vara mer korrekt.
Tack för kommentarerna .
Ersatt:
Om du inte Àr Àgaren till anvÀndaren kommer skalet att kontrollera om du Àr medlem i en grupp, Àven kÀnd som filens grupp.PÄ:
Om du inte Àr Àgaren till filen kommer skalet att kontrollera om du Àr medlem i en grupp som har behörigheter för filen. Om du Àr medlem i den hÀr gruppen kommer du Ät filen med de behörigheter som gruppen har angett, och skalet kommer att sluta kontrollera.tack för din kommentar
KĂ€lla: will.com
