Hej alla. Detta Àr en översÀttning av en artikel frÄn boken RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 och EX300.
FrÄn mig: Jag hoppas att artikeln kommer att vara anvÀndbar inte bara för nybörjare utan ocksÄ hjÀlpa mer erfarna administratörer att organisera sin kunskap.
SÄ, lÄt oss köra igÄng.

För att fÄ Ätkomst till filer i Linux anvÀnds behörigheter. Dessa behörigheter tilldelas tre objekt: filens Àgare, gruppens Àgare och ett annat objekt (det vill sÀga alla andra). I denna artikel kommer du att lÀra dig hur man tillÀmpar behörigheter.
Artikeln börjar med en översikt över grundlÀggande begrepp, följt av en diskussion om speciella behörigheter (Special permissions) och Ätkomstkontrollistor (ACL). I slutet av denna artikel behandlas instÀllning av standardbehörigheter genom umask samt hantering av anvÀndarens utökade attribut.
Hantering av filÀgande
Innan vi diskuterar behörigheter mĂ„ste du kĂ€nna till rollen av fil- och katalogĂ€garen. Ăgande av filer och kataloger Ă€r avgörande för hantering av behörigheter. I det hĂ€r avsnittet kommer du först att fĂ„ veta hur du kan se Ă€garen. DĂ€refter kommer du att lĂ€ra dig hur du Ă€ndrar grupp- och anvĂ€ndarĂ€gare för filer och kataloger.
Visa Àgaren av en fil eller katalog
I Linux har varje fil och varje katalog tvÄ Àgare: en anvÀndare och en gruppÀgare.
Dessa Àgare sÀtts vid skapandet av filen eller katalogen. AnvÀndaren som skapar filen blir Àgare av filen, och den primÀra grupp som den anvÀndaren tillhör blir ocksÄ Àgare av filen. För att avgöra om du som anvÀndare har Ätkomst till en fil eller katalog kontrollerar skalet Àgandet av dem.
Detta sker i följande ordning:
- Skalet kontrollerar om du Àr Àgaren av filen som du vill fÄ Ätkomst till. Om du Àr den Àgaren fÄr du behörigheter och skalet slutar att kontrollera.
- Om du inte Àr Àgaren av filen kontrollerar skalet om du Àr medlem av gruppen som har behörigheter för denna fil. Om du Àr medlem i denna grupp fÄr du Ätkomst till filen med de behörigheter som Àr instÀllda för gruppen, och skalet slutar kontrollera.
- Om du varken Àr anvÀndaren eller gruppÀgaren fÄr du behörigheterna för andra anvÀndare (Other).
För att se aktuella ÀganderÀttigheter kan du anvÀnda kommandot ls -l. Detta kommando visar anvÀndaren och gruppens Àgare. Nedan kan du se ÀgarinstÀllningar för katalogerna i katalogen /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 kommandot ls du kan visa Àgaren av filer i denna katalog. Ibland kan det vara anvÀndbart att fÄ en lista över alla filer i systemet dÀr den angivna anvÀndaren eller gruppen Àr Àgare. För detta kan du anvÀnda find. Argumentet find -user kan anvÀndas för detta ÀndamÄl. Till exempel visar följande kommando alla filer dÀr anvÀndaren linda Àr Àgare:
find / -user lindaDu kan ocksÄ anvÀnda find för att hitta filer dÀr en viss grupp Àr Àgare.
Till exempel letar följande kommando efter alla filer som tillhör gruppen users:
find / -group usersĂndra Ă€gande
För att tillÀmpa lÀmpliga rÀttigheter Àr det första att beakta Àgande. För detta finns det kommandot chown. Syntaxen för detta kommando Àr inte svÄr att förstÄ:
chown vem vadTill exempel Àndrar följande kommando Àgaren av katalogen /home/account till anvÀndaren linda:
chown linda /home/accountTeam chown har flera alternativ, ett av vilka Àr sÀrskilt anvÀndbart: -R. Du kan gissa vad det gör, eftersom detta alternativ ocksÄ finns för mÄnga andra kommandon. Det lÄter dig rekursivt stÀlla in Àgaren, vilket gör att du kan stÀlla in Àgaren för den aktuella katalogen och allt under den. Följande kommando Àndrar Àgaren för katalogen /home och allt som finns under den till anvÀndaren linda:
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
Utför följande:
[root@localhost ~]# chown -R lisa /home/account
[root@localhost ~]#
Nu har anvÀndaren lisa blivit Àgaren av katalogen 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
Ăndra gruppĂ€garens rĂ€ttigheter
Det finns tvÄ sÀtt att Àndra gruppÀgarens rÀttigheter. Du kan göra det genom att anvÀnda chown, men det finns ett speciellt kommando med namnet chgrp, som utför detta arbete. Om du vill anvÀnda kommandot chown, anvÀnd . eller : före gruppnamnet.
Följande kommando Àndrar Àgaren av gruppen /home/account till gruppen account:
chown .account /home/account
Du kan anvÀnda chown för att Àndra Àgaren av anvÀndaren och/eller gruppen pÄ flera sÀtt. HÀr Àr nÄgra exempel:
- chown lisa myfile1 sÀtter anvÀndaren lisa som Àgare av filen myfile1.
- chown lisa.sales myfile sÀtter anvÀndaren lisa som Àgare av filen myfile, och sÀtter Àven gruppen sales som Àgare av samma fil.
- chown lisa:sales myfile samma som det föregÄende kommandot.
- chown .sales myfile sÀtter gruppen sales som Àgare av filen myfile utan att Àndra Àgaren av anvÀndaren.
- chown :sales myfile samma som det föregÄende kommandot.
Du kan anvÀnda kommandot chgrp, för att Àndra Àgaren av gruppen. LÄt oss betrakta följande exempel dÀr du kan anvÀnda chgrp för att sÀtta gruppen sales som Àgare av katalogen account:
chgrp .sales /home/accountSom med chown, kan du anvÀnda alternativet -R med chgrp, och ocksÄ Àndra Àgaren av gruppen rekursivt.
FörstÄ standardÀgaren
Du har kanske mÀrkt att nÀr en anvÀndare skapar en fil, tillÀmpas standardÀgarskap.
AnvÀndaren som skapar filen blir automatiskt Àgare av den filen, och anvÀndarens primÀra grupp blir automatiskt Àgare av den filen. Vanligtvis Àr detta gruppen som anges i filen /etc/passwd som anvÀndarens primÀra grupp. Men om anvÀndaren Àr medlem i flera grupper kan han eller hon Àndra den effektiva primÀra gruppen.
För att visa den aktuella effektiva primÀra gruppen kan anvÀndaren anvÀnda kommandot grupper:
[root@server1 ~]# groups lisa
lisa : lisa account sales
Om den aktuella anvÀndaren linda vill Àndra den effektiva primÀra gruppen anvÀnder hon kommandot newgrp, följt av namnet pÄ gruppen som hon vill stÀlla in som den nya effektiva primÀra gruppen. Efter att ha anvÀnt kommandot newgrp kommer den primÀra gruppen att vara aktiv tills anvÀndaren anger kommandot exit eller loggar ut.
Nedan visas hur anvÀndaren linda anvÀnder detta kommando, vilket gör att den primÀra gruppen blir 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
Efter Àndring av den aktiva primÀrgruppen kommer alla nya filer som anvÀndaren skapar att fÄ den gruppen som Àgargrupp. För att ÄtergÄ till standardinstÀllningen för primÀrgruppen, anvÀnd exit.
För att kunna anvÀnda kommandot newgrp, mÄste anvÀndaren vara medlem av den grupp som han vill anvÀnda som primÀr. Dessutom kan gruppens lösenord anvÀndas för gruppen med kommandot gpasswd. Om anvÀndaren anvÀnder kommandot newgrp, men inte Àr medlem i mÄlggruppen, uppmanar skalen att ange gruppens lösenord. Efter att du har angett rÀtt grupplösenord kommer den nya effektiva primÀrgruppen att stÀllas in.
Hantera grundlÀggande rÀttigheter
Linux behörighetssystemet skapades pÄ 1970-talet. Eftersom datorkraven 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 detta avsnitt lÀr du dig att anvÀnda och Àndra dessa behörigheter.
FörstÄ lÀs-, skriv- och körbehörigheter
De tre grundlÀggande behörigheterna tillÄter dig att lÀsa, skriva och köra filer. Effekten av dessa behörigheter varierar nÀr de tillÀmpas pÄ filer eller kataloger. NÀr det gÀller en fil ger lÀsbehörigheten dig rÀtt att öppna filen för att lÀsa. DÀrför kan du lÀsa dess innehÄll, men det innebÀr ocksÄ att din dator kan öppna filen för att göra nÄgot med den.
En programfil som behöver Ätkomst till ett bibliotek mÄste till exempel ha lÀsbehörighet till det biblioteket. Detta innebÀr att lÀsbehörigheten Àr den mest grundlÀggande behörigheten som du behöver för att arbeta med filer.
NÀr det gÀller en katalog tillÄter lÀsning dig att visa innehÄllet i den katalogen. Du bör veta att denna behörighet inte lÄter dig lÀsa filerna i katalogen. Linux behörighetssystemet kÀnner inte till arv, och det enda sÀttet att lÀsa en fil Àr att anvÀnda lÀsbehörigheter för den filen.
Som du förmodligen kan gissa, ger skrivbehörighet, om det tillÀmpas pÄ en fil, tillÄtelse att skriva i filen. Med andra ord tillÄter det att Àndra innehÄllet i befintliga filer. Det tillÄter dock inte att skapa eller ta bort nya filer eller Àndra filbehörigheterna. För detta behöver du ge skrivbehörighet till katalogen dÀr du vill skapa filen. I kataloger tillÄter denna behörighet ocksÄ att skapa och ta bort nya undermappar.
Körbehörighet Àr vad du behöver för att köra en fil. Det kommer aldrig vara aktiverat som standard, vilket gör Linux praktiskt taget helt immun mot virus. Endast nÄgon med skrivbehörighet i katalogen kan tillÀmpa körbehörighet.
Nedan sammanfattas anvÀndningen av grundlÀggande behörigheter:

AnvÀnda chmod
För att hantera rÀttigheter anvÀnds kommandot chmod. Med hjÀlp av chmod kan du stÀlla in behörigheter för anvÀndare (user), grupp (group) och andra (other). 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.

Vid instÀllning av behörigheter berÀknar du det vÀrde som du behöver. Om du vill stÀlla in lÀsning, skrivning och körning för anvÀndaren, lÀsning och körning för gruppen, samt lÀsning och körning för andra i filen /somefile, sÄ anvÀnder du följande kommando chmod:
chmod 755 /somefileNÀr du anvÀnder chmod pÄ detta sÀtt, ersÀtts alla aktuella behörigheter med de behörigheter som du har stÀllt in.
Om du vill Àndra behörigheter relativt till de aktuella behörigheterna kan du anvÀnda chmod i relativt lÀge. NÀr du anvÀnder chmod i relativt lÀge arbetar du med tre indikatorer för att specificera vad du vill göra:
- Först anger du för vem du vill Àndra behörigheterna. För detta kan du vÀlja mellan anvÀndaren (u), gruppen (g), och andra (o).
- ). Sedan anvÀnder du operatorn för att lÀgga till eller ta bort behörigheter frÄn det aktuella lÀget eller stÀlla in dem helt.
- Till sist anvĂ€nder du Ă€r lika med noll., â kolumnvektorer, och $inline$(.)^H$inline$ Ă€r operationen och x, fö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 delen "till vilken" för att lÀgga till eller ta bort behörighet för alla objekt. Till exempel lÀgger det hÀr kommandot till utföranderÀtt 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 för gruppen 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 sÀtter utföranderÀtt för alla kataloger sÄvÀl som för filer i katalogen /data. För att ge utföranderÀtt endast för kataloger och inte för filer, anvÀnd chmod -R o+ rX /data.
Versalen X sÀkerstÀller att filer inte fÄr utföranderÀtt om filen tidigare inte har stÀllts in med utföranderÀtt för vissa objekt. Detta gör X till ett mer förnuftigt sÀtt att hantera utföranderÀtt; det förhindrar att denna rÀttighet sÀtts för filer dÀr den inte krÀvs.
Utökade rÀttigheter
Förutom de grundlÀggande rÀttigheterna som du just har lÀst om, finns det ocksÄ en uppsÀttning utökade rÀttigheter i Linux. Detta Àr inte de rÀttigheter som du stÀller in som standard, men ibland ger de en anvÀndbar komplettering. I detta avsnitt kommer du att lÀra dig vad de Àr och hur du konfigurerar dem.
FörstÄelse av utökade rÀttigheter SUID, GUID och sticky bit
Det finns tre avancerade rÀttigheter. Den första av dem Àr behörighet för att stÀlla in anvÀndar-ID (SUID). I vissa sÀrskilda fall kan du tillÀmpa denna rÀttighet pÄ körbara filer. Som standard kör anvÀndaren som kör den körbara filen denna fil med sina egna rÀttigheter.
För vanliga anvÀndare betyder detta vanligtvis att anvÀndningen av programmet Àr begrÀnsad. Men i vissa fall behöver anvÀndaren speciella rÀttigheter för att utföra en viss uppgift.
LÄt oss ta ett exempel dÀr en anvÀndare behöver Àndra sitt lösenord. För detta mÄste anvÀndaren skriva sitt nya lösenord i filen /etc/shadow. Men denna fil Àr inte skrivbar för anvÀndare som inte har root-Ätkomst:
root@hnl ~]# ls -l /etc/shadow
----------. 1 root root 1184 Apr 30 16:54 /etc/shadow
SUID-behörighet erbjuder en lösning pÄ detta problem. I verktyget /usr/bin/passwd tillÀmpas denna behörighet som standard. Det betyder att nÀr ett lösenord Àndras fÄr anvÀndaren tillfÀlliga root-rettigheter, vilket gör att hen kan skriva till filen /etc/shadow. Du kan se SUID-behörigheten med ls -l som s pÄ den plats dÀr du vanligtvis förvÀntar dig att se x för anvÀndarbehörigheter:
[root@hnl ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 32680 Jan 28 2010 /usr/bin/passwd
SUID-behörighet kan verka anvÀndbar (och i vissa fall Àr den faktiskt det), men samtidigt kan den vara potentiellt farlig. Vid felaktig anvÀndning kan du av misstag ge root-behörigheter. DÀrför rekommenderar jag att du anvÀnder den med största försiktighet.
De flesta administratörer kommer aldrig att behöva anvÀnda den; du kommer bara att se den i vissa filer dÀr operativsystemet mÄste stÀlla in den som standard.
Den andra speciella behörigheten Àr gruppidentifikatorn (SGID). Denna behörighet har tvÄ effekter. NÀr den tillÀmpas pÄ en exekverbar fil ger den anvÀndaren som kör filen Àgarens gruppbehörigheter för den filen. SÄledes kan SGID utföra mer eller mindre samma sak som SUID. Men för detta syfte anvÀnds SGID praktiskt taget aldrig.
Precis som i fallet med SUID-behörighet tillÀmpas SGID pÄ vissa systemfiler som standardinstÀllning.
NÀr den tillÀmpas pÄ en katalog kan SGID vara anvÀndbar, eftersom du kan anvÀnda den för att stÀlla in standardÀgargrupp för filer och underkataloger som skapas i denna katalog. Som standard, nÀr en anvÀndare skapar en fil, sÀtts den effektiva primÀra gruppen som Àgare för den filen.
Det Àr inte alltid sÀrskilt anvÀndbart, sÀrskilt eftersom Red Hat/CentOS-anvÀndare har en huvudgrupp som Àr samma som anvÀndarnamnet, dÀr anvÀndaren Àr den enda medlemmen. SÄledes kommer filer som skapats av anvÀndaren som standard att tillhöra den grupptillgÄngen.
TÀnk dig en situation dÀr anvÀndarna linda och lori arbetar pÄ ekonomiavdelningen och Àr medlemmar i gruppen kontoSom standard Àr dessa anvÀndare medlemmar i en privat grupp, dÀr de Àr de enda medlemmarna. BÄda anvÀndarna Àr dock medlemmar i gruppen account, men ocksÄ som medlemmar i en sekundÀr gruppparameter.
StandardlÀget À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 fÄ tillgÄng till filer som skapats av lori, och vice versa. Men om du skapar en gemensam gruppkatalog (lÄt oss sÀga /groups/account) och ser till att SGID-behörigheten tillÀmpas pÄ denna katalog och att gruppkontot stÀlls in som gruppens Àgare för denna katalog, fÄr alla filer som skapas i denna katalog och alla dess underkataloger ocksÄ account-gruppen som standard Àgare av gruppen.
Av denna anledning Àr SGID-behörighet en mycket anvÀndbar behörighet att stÀlla in i gemensamma gruppkataloger.
SGID-behörigheten visas i utdata ls -l som s pÄ den plats dÀr du vanligtvis hittar gruppens körbehörighet:
[root@hnl data]# ls -ld account
drwxr-sr-x. 2 root account 4096 Apr 30 21:28 account
Den tredje av de speciella behörigheterna Àr sticky bit. Denna behörighet Àr anvÀndbar för att skydda filer mot oavsiktlig radering i en miljö dÀr flera anvÀndare har skrivbehörighet i samma katalog. Om den tillÀmpas kan en anvÀndare radera en fil endast om hen Àr Àgare av filen eller katalogen i vilken filen finns. PÄ grund av detta tillÀmpas den som standardbehörighet för katalogen /tmp och kan ocksÄ vara anvÀndbar för gemensamma gruppkataloger.
Utan sticky bit kan en anvÀndare som kan skapa filer i en katalog ocksÄ ta bort filer frÄn den katalogen. I en offentlig gruppmiljö kan detta vara irriterande. TÀnk dig anvÀndarna linda och lori, som bÄda har skrivbehörighet i katalogen /data/account och fÄr dessa behörigheter genom att ingÄ i gruppen account. SÄledes kan linda ta bort filer som skapats av lori, och vice versa.
NÀr du tillÀmpar sticky bit kan en anvÀndare radera filer endast om nÄgot av följande villkor Àr uppfyllt:
- AnvÀndaren Àr Àgare av filen;
- AnvÀndaren Àr Àgare av katalogen som filen finns i.
NÀr du anvÀnder ls -l, kan du se sticky bit som t i den position dÀr du vanligtvis ser kör rÀttighet för andra:
[root@hnl data]# ls -ld account/
drwxr-sr-t. 2 root account 4096 Apr 30 21:28 account/
TillÀmpning av utökade rÀttigheter
För att anvÀnda SUID, SGID och sticky bit kan du ocksÄ anvÀnda chmod. SUID har ett numeriskt vÀrde av 4, SGID har ett numeriskt vÀrde av 2, och sticky bit har ett numeriskt vÀrde av 1.
Om du vill tillÀmpa dessa rÀttigheter mÄste du lÀgga till en fyrsiffrig parameter i chmod, den första siffran avser de speciella rÀttigheterna. Följande rad, till exempel, lÀgger till SGID-rÀttighet pÄ katalogen och stÀller in rwx för anvÀndare och rx för grupp och andra:
chmod 2755 /somedirDet Àr ganska opraktiskt om du behöver se de aktuella ÄtkomstrÀttigheterna som Àr instÀllda innan du arbetar med chmod i absolut lÀge. (Du riskerar att överskriva rÀttigheterna om du inte gör det.) DÀrför rekommenderar jag att arbeta i relativt lÀge om du behöver tillÀmpa nÄgon av de speciella rÀttigheterna:
- För SUID anvÀnd chmod u+s.
- För SGID anvÀnd chmod g+s.
- För sticky bit anvÀnd chmod +t, och sedan filnamnet eller katalogen för vilken du vill stÀlla in rÀttigheterna.
I tabellen sammanfattas allt viktigt att veta om hantering av speciella rÀttigheter.

Exempel pÄ arbete med speciella rÀttigheter
I detta exempel anvÀnder du speciella rÀttigheter sÄ att medlemmar i gruppen lÀttare kan dela filer i katalogen för den gemensamma gruppen. Du stÀller in ID-biten av det installerade gruppidentifikatorn samt sticky bit och ser att efter att de har installerats lÀggs funktioner till som underlÀttar samarbete mellan gruppmedlemmarna.
- Ăppna terminalen dĂ€r du Ă€r anvĂ€ndare linda. Skapa en anvĂ€ndare med kommandot useradd linda, lĂ€gg till lösenord passwd linda.
- Skapa i roten katalogen /data och underkatalogen /data/sales med kommandot mkdir -p /data/sales. Kör cd /data/sales, för att gÄ till sales-katalogen. Kör touch linda1 och touch linda2, fö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 gruppen sales.
- Kör cd /data/sales och frÄn denna katalog kör ls -l. Du kommer se tvÄ filer som skapades av anvÀndaren linda och tillhör gruppen linda. Kör rm -f linda*. Detta tar bort bÄda filerna.
- Kör touch lisa1 och touch lisa2, för att skapa tvÄ filer som tillhör anvÀndaren lisa.
- Kör su â för att höja dina privilegier till root-nivĂ„.
- Kör chmod g+s,o+t /data/sales, för att stÀlla in gruppens ID-bit (GUID) samt sticky bit i den gemensamma gruppens katalog.
- Kör su â linda. Kör sedan touch linda3 och touch linda4. Nu bör du se att de tvĂ„ filer du har skapat tillhör gruppen sales, som Ă€r Ă€gare av katalogen /data/sales.
- Kör rm -rf lisa*. Sticky bit förhindrar borttagning av dessa filer av anvÀndaren linda, eftersom du inte Àr Àgare till dessa filer. TÀnk pÄ att om anvÀndaren linda Àr Àgare av katalogen /data/sales, kan hen fortfarande ta bort dessa filer!
Hantera ACL (setfacl, getfacl) i Linux
Ăven om de utökade rĂ€ttigheterna som diskuterats ovan tillför anvĂ€ndbar funktionalitet till hur Linux arbetar med behörigheter, tillĂ„ter de dig inte att ge rĂ€ttigheter till mer Ă€n en anvĂ€ndare eller en grupp i en och samma fil.
à tkomstkontrollistor erbjuder denna funktion. Dessutom gör de det möjligt för administratörer att stÀlla in standardbehörigheter pÄ ett komplicerat sÀtt, dÀr de instÀllda rÀttigheterna kan variera mellan olika kataloger.
FörstÄelse för ACL
Ăven om ACL-subsystemet lĂ€gger till utmĂ€rkta funktioner till din server, har det en nackdel: inte alla verktyg stödjer det. DĂ€rför kan du förlora ACL-instĂ€llningar nĂ€r du kopierar eller flyttar filer, och backup-programvara kanske inte sĂ€kerhetskopierar ACL-instĂ€llningarna.
Tar-verktyget stöder inte ACL. För att sÀkerstÀlla att ACL-instÀllningarna inte gÄr förlorade vid sÀkerhetskopiering, anvÀnd star istÀllet för tar. star det fungerar med samma parametrar som tar; 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Ă€kerhetskopiering, anvĂ€nd getfacl -R /directory > file.acls. För att Ă„terstĂ€lla instĂ€llningarna frĂ„n sĂ€kerhetskopieringsfilen, anvĂ€nd setfacl ârestore=file.acl.
Brist pÄ stöd frÄn vissa verktyg ska inte vara ett problem. ACL-listor tillÀmpas ofta pÄ kataloger som en strukturell ÄtgÀrd, snarare Àn pÄ enskilda filer.
DÀrför kommer de inte att vara mÄnga, utan bara nÄgra fÄ som tillÀmpas pÄ smarta platser i filsystemet. DÀrmed Àr det relativt enkelt att ÄterstÀlla de ursprungliga ACL-listor som du har arbetat med, Àven om din sÀkerhetskopieringsprogramvara inte stödjer dem.
Förberedelse av filsystemet för ACL
Innan du börjar arbeta med ACL kan det vara nödvÀndigt att förbereda filsystemet för att stödja ACL. Eftersom metadata för filsystemet mÄste utvidgas finns det inte alltid standardstöd för ACL i filsystemet. Om du fÄr meddelandet "operation not supported" vid konfiguration av ACL-listor för filsystemet kan det hÀnda att ACL-stöd saknas i ditt filsystem.
För att ÄtgÀrda detta behöver du lÀgga till alternativet acl mount i filen /etc/fstab sÄ att filsystemet monteras med ACL-stöd som standard.
Ăndra och visa ACL-instĂ€llningar med hjĂ€lp av setfacl och getfacl
För att stÀlla in ACL behöver du kommandot setfacl. För att se de aktuella ACL-instÀllningarna behöver du getfacl. Kommandot ls -l visar inga befintliga ACL; det visar bara + efter behörighetslistan vilket indikerar att ACL-listor tillÀmpas och pÄ filen.
Innan du konfigurerar ACL-listor Àr det alltid bra att visa de aktuella ACL-instÀllningarna med hjÀlp av getfacl. Nedan i exemplet kan du se de aktuella behörigheterna, som visas med hjÀlp av ls -l, samt hur det visas med getfacl. Om du tittar tillrÀckligt noga kommer du att se att den visade informationen Àr exakt densamma.
[root@server1 \/]# ls -ld \/dir\ndrwxr-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 kommandot getfacl syns det nedan att behörigheterna visas för tre olika objekt: anvÀndare, grupp och andra. LÄt oss nu lÀgga till ACL för att ge lÀs- och exekveringsrÀttigheter till gruppen sales. Kommandot för detta Àr setfacl -m g:sales:rx \/dir. I det hÀr kommandot -m anger att de aktuella ACL-instÀllningarna behöver Àndras. DÀrefter g:sales:rx informerar kommandot att stÀlla in ACL för lÀsning och exekvering (rx) för gruppen (g) sales. Nedan kan du se hur kommandot ser ut samt utdata frÄn kommandot getfacl efter Àndringen av 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 sÀtter upp en grupp-ACL, blir det lÀtt att förstÄ ACL för anvÀndare och andra anvÀndare. Till exempel kommandot setfacl -m u:linda:rwx /data ger anvÀndaren linda behörighet i katalogen /data, utan att göra henne till Àgare eller Àndra den nuvarande Àgarens tilldelning.
Team setfacl har mÄnga funktioner och alternativ. Ett alternativ Àr sÀrskilt viktigt, parameter -R. Om det anvÀnds, kommer denna instÀllning att göra ACL-konfigurationen för alla filer och underkataloger som för nÀrvarande finns i katalogen dÀr du sÀtter ACL. Det rekommenderas att alltid anvÀnda detta alternativ nÀr du Àndrar ACL-listor för existerande kataloger.
Arbeta med standard-ACL
En av fördelarna med att anvÀnda ACL-listor Àr att du kan ge behörigheter till flera anvÀndare eller grupper i en katalog. En annan fördel Àr att du kan inkludera arv nÀr du arbetar med standard-ACL.
Genom att stÀlla in en standard-ACL definierar du de behörigheter som kommer att tilldelas för alla nya objekt som skapas i katalogen. TÀnk pÄ att standard-ACL inte Àndrar behörigheterna för existerande filer och underkataloger. För att Àndra dem mÄste du ocksÄ lÀgga till en vanlig ACL!
Detta Àr viktigt att veta. Om du vill anvÀnda ACL för att konfigurera Ätkomst för flera anvÀndare eller grupper till samma katalog mÄste du stÀlla in ACL tvÄ gÄnger. Först anvÀnd setfacl -R -m, för att Àndra ACL för de nuvarande filerna. AnvÀnd sedan setfacl -m d:, för att ta hand om alla nya objekt som ocksÄ kommer att skapas.
För att stÀlla in en standard-ACL behöver du bara lÀgga till alternativet d efter alternativet -m (ordningen Àr viktig!). SÄ anvÀnd setfacl -m d:g:sales:rx /data, om du vill att sÀljgruppen ska kunna lÀsa och köra allt som nÄgonsin kommer att skapas i katalogen /data.
NÀr du anvÀnder standard-ACL-listor kan det ocksÄ vara fördelaktigt att stÀlla in ACL för andra. Vanligtvis har detta inte sÄ mycket betydelse, eftersom du ocksÄ kan Àndra behörigheterna för andra med chmod. Men vad du inte kan göra med hjÀlp av chmod, ange att ange rÀttigheterna som ska ges till andra anvÀndare för varje ny fil som nÄgonsin kommer att skapas. Om du vill att andra inte ska fÄ nÄgra rÀttigheter för nÄgot som skapas i /data, till exempel, anvÀnd setfacl -m d:o::- /data.
ACL och vanliga rĂ€ttigheter Ă€r inte alltid vĂ€l integrerade. Problem kan uppstĂ„ om du har tillĂ€mpat standard-ACL pĂ„ en katalog, efter vilket element har lagts till i denna katalog, och sedan försöker Ă€ndra vanliga rĂ€ttigheter. Ăndringar som tillĂ€mpas pĂ„ vanliga rĂ€ttigheter kommer inte att Ă„terspeglas vĂ€l i översikten av ACL. För att undvika problem, sĂ€tt först vanliga rĂ€ttigheter, och stĂ€ll sedan in standard-ACL (och försök efterĂ„t att inte Ă€ndra dem igen).
Exempel pÄ hantering av utökade rÀttigheter med hjÀlp av ACL
I det hÀr exemplet kommer du att arbeta med katalogerna /data/account och /data/sales, som du skapade tidigare. I tidigare exempel försÀkrade du dig om att gruppen sales har rÀttigheter pÄ /data/sales, och gruppen account har rÀttigheter pÄ /data/account.
Först, se till att gruppen account fÄr lÀsrÀttigheter i katalogen /data/sales, och gruppen sales fÄr lÀsrÀttigheter i katalogen /data/account.
DÀrefter stÀller du in standard-ACL-listor för att sÀkerstÀlla att alla nya filer har rÀtt rÀttigheter för alla nya element.
- Ăppna terminalen.
- Kör setfacl -m g:account:rx /data/sales och setfacl -m g:sales:rx /data/account.
- Kör getfacl, för att kontrollera att ÄtkomstrÀttigheterna har stÀllts in som du ville.
- Kör setfacl -m d:g:account:rwx,g:sales:rx /data/sales, för att stÀlla in standard-ACL för katalogen sales.
- LÀgg till standard-ACL för katalogen /data/account med hjÀlp av setfacl -m d:g:sales:rwx,g:account:rx /data/account.
- Verifiera att ACL-instÀllningarna fungerar genom att lÀgga till en ny fil i /data/sales. Utför touch /data/sales/newfile och utför getfacl /data/sales/newfile för att kontrollera de aktuella rÀttigheterna.
StÀlla in standardrÀttigheter med umask
Ovan har du lÀrt dig hur man arbetar med standard-ACL. Om du inte anvÀnder ACL finns det en skalparameter som bestÀmmer de standardrÀttigheter du kommer att fÄ: umask (omvÀnd mask). I det hÀr avsnittet lÀr du dig hur du Àndrar standardrÀttigheterna med hjÀlp av umask.
Du har sÀkert mÀrkt att vissa rÀttigheter stÀlls in som standard nÀr en ny fil skapas. Dessa rÀttigheter bestÀms av instÀllningen. umaskDenna skalparameter tillÀmpas pÄ alla anvÀndare vid inloggning. I parametern umask anvÀnds ett numeriskt vÀrde som subtraheras frÄn de maximala rÀttigheterna som automatiskt kan stÀllas in för en fil; den maximala instÀllningen för filer Àr 666, medan den för kataloger Àr 777.
Det finns dock vissa undantag frÄn denna regel. Du kan hitta en fullstÀndig översikt över instÀllningarna umask i tabellen nedan.
BetrÀffande siffrorna som anvÀnds i umask, precis som med numeriska argument för kommandot chmod, hÀnvisar det första siffran till anvÀndarrÀttigheterna, den andra siffran till gruppens rÀttigheter och den sista till standardrÀttigheterna som Àr instÀllda för andra. VÀrdet umask standard 022 ger 644 för alla nya filer och 755 för alla nya kataloger som skapas pÄ din server.
En fullstÀndig översikt över alla numeriska vÀrden umask och deras resultat i tabellen nedan.

Ett enkelt sÀtt att se hur umask-parametern fungerar ser ut som följande: börja med standardrÀttigheterna för en fil instÀlld pÄ 666 och subtrahera umask för att fÄ de effektiva rÀttigheterna. Gör samma sak för katalogen och dess standardrÀttigheter 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-parametern beaktas nÀr miljöskalfiler körs, som anges i /etc/profile. Den korrekta metoden Àr att skapa ett skal-script med namnet umask.sh i katalogen /etc/profile.d och ange umask som du vill anvÀnda i detta skal-script. Om umask Àndras i denna fil tillÀmpas det pÄ alla anvÀndare efter inloggning pÄ servern.
Ett alternativ till att stÀlla in umask via /etc/profile och relaterade filer, dÀr det tillÀmpas pÄ alla anvÀndare som loggar in, Àr att Àndra umask-instÀllningarna i en fil med namnet .profile, som skapas i varje anvÀndares hemkatalog.
InstÀllningarna som tillÀmpas i denna fil gÀller endast för den enskilda anvÀndaren; det Àr dÀrför en bra metod om du behöver mer detalj. Jag personligen gillar denna funktion för att Àndra standardvÀrdet för umask för anvÀndaren root till 027, medan vanliga anvÀndare arbetar med standard umask 022.
Arbeta med utökade anvÀndarattribut
Detta Àr den avslutande delen om rÀttigheter i Linux.
NÀr det gÀller behörigheter finns det alltid en koppling mellan en anvÀndar- eller gruppobjekt och de behörigheter som dessa anvÀndar- eller gruppobjekt har för en fil eller katalog. En alternativ metod för att skydda filer pÄ en Linux-server Àr att arbeta med attribut.
Attribut fungerar oavsett vilken anvÀndare som öppnar filen.
Precis som med ACL kan det vara nödvÀndigt att aktivera alternativet mount.
user_xattr . Om du fÄr meddelandet "operation not supported" nÀr du arbetar med utökade anvÀndarattribut, se till att du har aktiverat alternativeti filen /etc/fstab. mount MÄnga attribut Àr dokumenterade. Vissa attribut Àr tillgÀngliga, men har Ànnu inte implementerats. AnvÀnd dem inte; de ger dig ingenting.
Nedan följer de mest anvÀndbara attributen som du kan tillÀmpa:
Detta attribut sÀkerstÀller att Ätkomsttiden för en fil inte Àndras.
A Vanligtvis, varje gÄng en fil öppnas, ska Ätkomsttiden för filen registreras i filens metadata. Detta pÄverkar prestandan negativt; dÀrför kan attributet
anvÀndas för att stÀnga av denna funktion för filer som ofta nÄs. A Detta attribut tillÄter att filer kan lÀggas till men inte tas bort.
a Om du anvÀnder ett filsystem som stöder kompression pÄ volymnivÄ, sÀkerstÀller detta filattribut att filen komprimeras vid första aktiveringen av kompressionsmekanismen.
c Detta attribut sÀkerstÀller att Àndringar i filer skrivs till disken omedelbart, istÀllet för att lagras i cache först. Detta Àr ett anvÀndbart attribut för viktiga databasfiler, vilket gör att de inte gÄr förlorade mellan filcachen och hÄrddisken.
D Detta attribut sÀkerstÀller att filen inte sparas i sÀkerhetskopior dÀr dumpverktyget anvÀnds.
d Detta attribut aktiverar indexering för katalogen dÀr det Àr aktiverat. Det ger snabbare Ätkomst till filer för primitiva filsystem som Ext3, som inte anvÀnder en B-tree databas för snabb Ätkomst till filer.
I Detta attribut sÀkerstÀller att filen inte sparas i sÀkerhetskopior dÀr dump-verktyget anvÀnds.
i Denna attribut gör filen oförÀnderlig. Det innebÀr att inga Àndringar kan göras i filen, vilket Àr anvÀndbart för filer som behöver extra skydd.
j Denna attribut garanterar att filen först skrivs i loggen och sedan till data blocken pÄ hÄrddisken i ext3-filsystemet.
s Ăverskriv blocken dĂ€r filen var sparad med 0 efter att filen har tagits bort. Detta sĂ€kerstĂ€ller att filen inte kan Ă„terstĂ€llas efter borttagning.
u Denna attribut sparar information om borttagning. Detta möjliggör utvecklingen av ett verktyg som arbetar med denna information för att ÄterstÀlla raderade filer.
Om du vill tillÀmpa attribut kan du anvÀnda kommandot chattr. Till exempel, anvÀnd chattr +s somefile, för att tillÀmpa attribut pÄ somefile. Vill du ta bort attributet? DÄ anvÀnder du chattr -s somefile, sÄ kommer det att tas bort. För att fÄ en översikt över alla attribut som för nÀrvarande tillÀmpas, anvÀnd kommandot lsattr.
Sammanfattning
I denna artikel har du lÀrt dig hur man arbetar med behörigheter. Du har lÀst om de tre grundlÀggande behörigheterna, de utökade behörigheterna och hur man tillÀmpar ACL-listor i filsystemet. Du har ocksÄ lÀrt dig hur man anvÀnder umask-parametern för att tillÀmpa standardbehörigheterna. I slutet av denna artikel har du lÀrt dig hur man anvÀnder anvÀndardefinierade attribut för att tillÀmpa en extra sÀkerhetsnivÄ i filsystemet.
Gillade du denna översÀttning? LÀmna gÀrna en kommentar. Det ger mer motivation att göra anvÀndbara översÀttningar.
I artikeln har jag rÀttat nÄgra tryckfel och grammatiska fel. Jag har delat upp vissa klumpiga stycken i mindre för att göra det lÀttare att lÀsa.
IstÀllet för "Endast nÄgon med administrativa rÀttigheter pÄ katalogen kan tillÀmpa körbehörighet." har jag Àndrat till "Endast nÄgon med skrivrÀttigheter pÄ katalogen kan tillÀmpa körbehörighet.", vilket Àr mer korrekt.
Tack för kommentarerna .
Jag har ersatt:
Om du inte Àr Àgaren, kommer skalet att kontrollera om du Àr medlem i en grupp som ocksÄ kallas filens grupp.Till:
Om du inte Àr Àgaren av filen kontrollerar skalet om du Àr medlem av gruppen som har behörigheter för denna fil. Om du Àr medlem i denna grupp fÄr du Ätkomst till filen med de behörigheter som Àr instÀllda för gruppen, och skalet slutar kontrollera.Tack för kommentaren
KĂ€lla: habr.com
