Linuxi load (chown, chmod, SUID, GUID, kleepuvad bitid, ACL, umask)

Tere kõigile. See on artikli tõlge raamatust RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 ja EX300.

Push: Loodan, et artikkel on kasulik mitte ainult algajatele, vaid aitab ka kogenumatel administraatoritel oma teadmisi korrastada.

Nii et lähme.

Linuxi load (chown, chmod, SUID, GUID, kleepuvad bitid, ACL, umask)

Linuxis failidele juurde pääsemiseks kasutatakse lubasid. Need õigused on määratud kolmele objektile: failiomanikule, rühmaomanikule ja teisele objektile (st kõigile teistele). See artikkel õpetab teile, kuidas õigusi taotleda.

Artikkel algab põhikontseptsioonide ülevaatega ja seejärel käsitletakse erilubasid ja juurdepääsukontrolliloendeid (ACL). Selle artikli lõpus käsitletakse vaikeõiguste määramist umaski kaudu ning laiendatud kasutajaatribuutide haldamist.

Failide omandiõiguse haldamine

Enne lubade arutamist peaksite teadma faili ja kataloogi omaniku rolli. Failide ja kataloogide omandiõigus on lubadega töötamiseks ülioluline. Selles jaotises saate kõigepealt teada, kuidas omanikku näha. Seejärel saate teada, kuidas muuta failide ja kataloogide grupi omanikku ja kasutajat.

Faili või kataloogi omaniku kuvamine

Linuxis on igal failil ja igal kataloogil kaks omanikku: kasutaja ja rühma omanik.

Need omanikud määratakse faili või kataloogi loomisel. Faili loonud kasutaja saab selle faili omanikuks ja esmane grupp, kuhu sama kasutaja kuulub, saab samuti selle faili omanikuks. Et teha kindlaks, kas teil kui kasutajal on failile või kataloogile juurdepääsuõigused, kontrollib kest omandiõigust.

See toimub järgmises järjekorras:

  1. Kest kontrollib, kas olete faili omanik, millele soovite juurde pääseda. Kui olete see omanik, antakse teile load ja kest lõpetab kontrollimise.
  2. Kui te ei ole faili omanik, kontrollib kest, kas olete grupi liige, millel on failile õigused. Kui olete selle grupi liige, pääsete failile juurde rühma jaoks määratud õigustega ja kest lõpetab kontrollimise.
  3. Kui te pole kasutaja ega grupi omanik, saate muud kasutajaõigused.

Praeguste omanikuülesannete vaatamiseks võite kasutada käsku Jäta. See käsk näitab grupi kasutajat ja omanikku. Allpool näete /home kataloogi kataloogide omaniku sätteid.

[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

Kasutades käsku ls saate kuvada antud kataloogis olevate failide omaniku. Mõnikord võib olla kasulik hankida kõigi süsteemis olevate failide loend, mille omanikuks on antud kasutaja või rühm. Selleks saate kasutada leidma. Argument leia -kasutaja saab sel eesmärgil kasutada. Näiteks järgmine käsk näitab kõiki faile, mille omanikuks on linda:

find / -user linda

Võite kasutada ka leidma failide otsimiseks, mille omanikuks on kindel rühm.

Näiteks otsib järgmine käsk kõiki gruppi kuuluvaid faile Kasutajad:

find / -group users

Omaniku vahetus

Sobivate lubade rakendamiseks tuleb kõigepealt kaaluda omandiõigust. Selleks on käsk chown. Selle käsu süntaksit on lihtne mõista:

chown кто что

Näiteks järgmine käsk muudab kataloogi /home/account omanikuks kasutaja linda:

chown linda /home/account

Meeskond chown on mitu võimalust, millest üks on eriti kasulik: -R. Võite arvata, mida see teeb, sest see valik on saadaval ka paljude muude käskude jaoks. See võimaldab määrata omaniku rekursiivselt, mis võimaldab määrata praeguse kataloogi ja kõige selle all oleva omaniku. Järgmine käsk muudab /home kataloogi ja kõik selle all oleva omaniku kasutajaks linda:

Nüüd näevad omanikud välja sellised:

[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

Teeme:

[root@localhost ~]# chown -R lisa /home/account
[root@localhost ~]#

Nüüd on kasutaja lisa kontokataloogi omanik:

[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

Grupi omaniku muutmine

Grupi omandiõiguse muutmiseks on kaks võimalust. Seda saate teha kasutades chown, kuid seal on spetsiaalne käsk chgrp, mis seda tööd teeb. Kui soovite kasutada käsku chown, kasutage . või : enne rühma nime.

Järgmine käsk muudab iga /home/kontorühma omaniku kontorühmaks:

chown .account /home/account

sa võid kasutada chown kasutaja ja/või grupi omaniku muutmiseks mitmel viisil. siin on mõned näidised:

  • chown lisa minu fail1 määrab kasutaja lisa faili myfile1 omanikuks.
  • chown lisa.sales myfile määrab faili myfile omanikuks kasutaja lisa ja määrab sama faili omanikuks ka müügigrupi.
  • chown lisa: müügi minu fail sama mis eelmine meeskond.
  • chown .sales myfile Määrab müügigrupi myfile'i omanikuks ilma kasutaja omanikku muutmata.
  • chown :sales myfile sama mis eelmine meeskond.

Võite kasutada käsku chgrpgrupi omaniku vahetamiseks. Mõelge järgmisele näitele, kus saate seda kasutada chgrp Määrake kontokataloogi omanik müügirühmaks:

chgrp .sales /home/account

Nagu ka chown, saate kasutada valikut -R с chgrpja muuta ka grupi omanikku rekursiivselt.

Omaniku vaikemõistmine

Võib-olla olete märganud, et kui kasutaja faili loob, rakendatakse vaikeomandiõigust.
Faili loovast kasutajast saab automaatselt selle faili omanik ja selle kasutaja esmasest rühmast saab automaatselt selle faili omanik. Tavaliselt on see rühm, mis on failis /etc/passwd loetletud kasutaja peamise rühmana. Kui kasutaja on aga mitme rühma liige, saab ta muuta kehtivat esmast rühma.

Praeguse efektiivse esmase rühma kuvamiseks saab kasutaja kasutada käsku rühmade:

[root@server1 ~]# groups lisa
lisa : lisa account sales

Kui praegune kasutaja linda soovib muuta kehtivat esmast rühma, kasutab ta käsku uusgrpmillele järgneb grupi nimi, mille ta soovib määrata uueks tõhusaks esmaseks rühmaks. Pärast käsu kasutamist uusgrp esmane rühm on aktiivne, kuni kasutaja sisestab käsu väljumiseks või ei logi süsteemist välja.

Kasutaja linda kasutab seda käsku järgmiselt, kusjuures peamine rühm on müük:

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

Pärast praeguse peamise grupi muutmist on kõigi kasutaja loodud uute failide grupi omanik see rühm. Algse esmase grupi sätte naasmiseks kasutage väljumiseks.

Et saaks käsku kasutada uusgrp, peab kasutaja olema selle grupi liige, mida ta soovib esmase kasutajana kasutada. Lisaks saab käsu abil rühma jaoks kasutada grupi parooli gpasswd. Kui kasutaja kasutab käsku uusgrpkuid ei ole sihtrühma liige, küsib kest rühma parooli. Kui olete õige rühma parooli sisestanud, määratakse uus tõhus esmane rühm.

Põhiõiguste haldus

Linuxi lubade süsteem leiutati 1970. aastatel. Kuna arvutivajadused olid neil aastatel piiratud, oli põhilubade süsteem üsna piiratud. See lubade süsteem kasutab kolme luba, mida saab failidele ja kataloogidele rakendada. Sellest jaotisest saate teada, kuidas neid õigusi kasutada ja muuta.

Lugemis-, kirjutamis- ja täitmisõiguste mõistmine

Kolm peamist luba võimaldavad teil faile lugeda, kirjutada ja käivitada. Nende õiguste mõju failidele või kataloogidele rakendamisel on erinev. Kui failile rakendatakse, annab lugemisluba teile õiguse fail lugemiseks avada. Seetõttu saate selle sisu lugeda, kuid see tähendab, et teie arvuti saab faili avada, et sellega midagi teha.

Programmifailil, mis nõuab juurdepääsu teegile, peab olema näiteks lugemisõigus sellele teegile. See tähendab, et lugemisõigus on kõige elementaarsem luba, mida vajate failidega töötamiseks.

Kataloogile rakendades võimaldab lugemine kuvada selle kataloogi sisu. Peaksite teadma, et see luba ei võimalda teil kataloogis olevaid faile lugeda. Linuxi lubade süsteem ei tunne pärimist ja ainus viis faili lugemiseks on kasutada selle faili lugemisõigusi.

Nagu võite arvata, võimaldab failile kirjutamise luba failile kirjutamise korral kirjutada. Teisisõnu võimaldab see muuta olemasolevate failide sisu. Kuid see ei luba teil uusi faile luua ega kustutada ega failiõigusi muuta. Selleks peate andma kirjutamisõiguse kataloogile, kuhu soovite faili luua. Kataloogides võimaldab see luba ka uusi alamkatalooge luua ja kustutada.

Käivitusluba on see, mida vajate faili käivitamiseks. Seda ei installita kunagi vaikimisi, mis muudab Linuxi viiruste suhtes peaaegu täielikult immuunseks. Käivitusõigust saab taotleda ainult keegi, kellel on kataloogile kirjutamisõigus.

Järgmises on põhiõiguste kasutamise kokkuvõte.

Linuxi load (chown, chmod, SUID, GUID, kleepuvad bitid, ACL, umask)

Kasutades chmod

Õiguste haldamiseks kasutage käsku chmod... Kasutades chmod saate määrata õigused kasutajale, rühmale ja teistele. Seda käsku saate kasutada kahes režiimis: suhteline režiim ja absoluutrežiim. Absoluutrežiimis kasutatakse põhiõiguste määramiseks kolme numbrit.

Linuxi load (chown, chmod, SUID, GUID, kleepuvad bitid, ACL, umask)

Lubade määramisel arvutage vajalik väärtus. Kui soovite failis /somefile määrata kasutaja lugemise, kirjutamise ja käivitamise, rühma jaoks lugemise ja käivitamise ning teiste jaoks lugemise ja käivitamise, kasutage järgmist käsku chmod:

chmod 755 /somefile

Kui kasutate chmod Sel viisil asendatakse kõik praegused õigused teie määratud õigustega.

Kui soovite õigusi praeguste lubade suhtes muuta, võite kasutada chmod suhtelises režiimis. Kasutades chmod suhtelises režiimis töötate kolme indikaatoriga, mis näitavad, mida soovite teha:

  1. Esmalt määrate, kelle õigusi soovite muuta. Selleks saad valida kasutaja (u), Grupp (g) ja teised (o).
  2. Seejärel kasutate avaldust praeguse režiimi õiguste lisamiseks või eemaldamiseks või nende täielikuks määramiseks.
  3. Lõpus kasutad r, w и xet määrata, milliseid õigusi soovite määrata.

Suhtelises režiimis lubade muutmisel võite kõikide objektide jaoks lubade lisamiseks või eemaldamiseks osa "kuni" vahele jätta. Näiteks lisab see käsk kõikidele kasutajatele täitmisõiguse:

chmod +x somefile

Suhtelises režiimis töötades saab kasutada ka keerukamaid käske. Näiteks lisab see käsk rühmale kirjutamisõiguse ja eemaldab teistelt lugemisõiguse:

chmod g+w,o-r somefile

Kui kasutate chmod -R o+rx /andmed määrate kõigi kataloogide ja ka /data kataloogis olevate failide täitmise loa. Täitmisõiguse määramiseks ainult kataloogidele, mitte failidele, kasutage chmod -R o+ rX /andmed.

Suurtäht X tagab, et failidele ei anta täitmisõigust, välja arvatud juhul, kui fail on mõnele objektile juba käivitamisluba määranud. See teeb X-st nutikama viisi täitmislubade käsitlemiseks; see väldib selle loa määramist failidele, kus seda ei nõuta.

Laiendatud õigused

Lisaks põhiõigustele, millest äsja lugesite, on Linuxil ka hulk täpsemaid õigusi. Need ei ole vaikimisi määratud load, kuid mõnikord pakuvad need kasulikku lisa. Sellest jaotisest saate teada, mis need on ja kuidas neid seadistada.

SUID-i, GUID-i ja kleepuva biti laiendatud õiguste mõistmine

Seal on kolm täiustatud eraldusvõimet. Esimene neist on kasutaja ID (SUID) määramise luba. Mõningatel erijuhtudel võiksite seda luba rakendada käivitatavatele failidele. Vaikimisi käivitab täitmisfaili käitav kasutaja seda faili oma lubadega.

Tavakasutajate jaoks tähendab see tavaliselt, et programmi kasutus on piiratud. Kuid mõnel juhul vajab kasutaja eriõigusi ainult konkreetse ülesande täitmiseks.

Mõelge näiteks olukorrale, kus kasutaja peab oma parooli muutma. Selleks peab kasutaja kirjutama oma uue parooli faili /etc/shadow. Kuid seda faili ei saa kirjutada mitte-root kasutajad:

root@hnl ~]# ls -l /etc/shadow
----------. 1 root root 1184 Apr 30 16:54 /etc/shadow

SUID-luba pakub sellele probleemile lahenduse. Utiliidis /usr/bin/passwd rakendatakse seda luba vaikimisi. See tähendab, et parooli muutmisel omandab kasutaja ajutiselt administraatoriõigused, mis võimaldab kirjutada faili /etc/shadow. Näete SUID-luba koos Jäta kui s asendis, mida tavaliselt ootate x kohandatud lubade jaoks:

[root@hnl ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 32680 Jan 28 2010 /usr/bin/passwd

SUID-luba võib tunduda kasulik (ja mõnel juhul on see nii), kuid see on ka potentsiaalselt ohtlik. Kui seda kasutatakse valesti, võite kogemata root õigused ära anda. Seetõttu soovitan seda kasutada ainult äärmise ettevaatusega.

Enamik administraatoreid ei pea seda kunagi kasutama; näete seda ainult mõnes failis, kus operatsioonisüsteem peaks selle vaikimisi määrama.

Teine eriluba on rühma ID (SGID). Sellel loal on kaks mõju. Kui seda rakendatakse käivitatavale failile, annab see faili käivitavale kasutajale selle faili rühmaomaniku õigused. Seega saab SGID teha enam-vähem sama, mis SUID. Kuid SGID-i sel eesmärgil peaaegu ei kasutata.

Nagu SUID-loa puhul, rakendatakse SGID-d ka mõnele süsteemifailile vaikeseadena.

Kataloogile rakendades võib SGID olla kasulik, kuna saate selle abil määrata selles kataloogis loodud failide ja alamkataloogide vaikerühma omaniku. Kui kasutaja faili loob, määratakse vaikimisi selle faili grupiomanikuks tema tegelik esmane rühm.

See ei ole alati väga kasulik, eriti kuna Red Hat/CentOS-i kasutajate esmaseks rühmaks on määratud kasutajaga sama nimega grupp, mille ainuke liige on kasutaja. Seega jagatakse vaikimisi kasutaja loodud faile rühmas.

Kujutage ette olukorda, kus kasutajad linda ja lori töötavad raamatupidamises ja on grupi liikmed konto. Vaikimisi kuuluvad need kasutajad privaatrühma, mille ainsad liikmed nad on. Mõlemad kasutajad on aga kontogrupi liikmed, aga ka teisese grupi parameetrina.

Vaikimisi on olukord, kus mõni neist kasutajatest faili loob, saab esmane rühm omanikuks. Seetõttu ei pääse Linda vaikimisi ligi lori loodud failidele ja vastupidi. Kui aga loote jagatud grupikataloogi (näiteks /grupid/konto) ja veendute, et sellele kataloogile on rakendatud SGID-luba ja et grupikonto on selle kataloogi jaoks seatud rühmaomanikule, siis kõik selles kataloogis loodud failid ja kõik selle alamkataloogid , saate ka grupikonto vaikerühma omanikuks.

Sel põhjusel on SGID-luba avalikesse rühmakataloogidesse installimiseks väga kasulik luba.

SGID-luba kuvatakse väljundis Jäta kui s kohas, kust tavaliselt leiate rühmakäivitusloa:

[root@hnl data]# ls -ld account
drwxr-sr-x. 2 root account 4096 Apr 30 21:28 account

Kolmas erilubadest on kleepuv bitt. See luba on kasulik failide kaitsmiseks juhusliku kustutamise eest keskkonnas, kus mitmel kasutajal on samasse kataloogi kirjutamisõigus. Kui kasutatakse kleepuvat bitti, saab kasutaja faili kustutada ainult siis, kui ta on faili või faili sisaldava kataloogi kasutaja omanik. Sel põhjusel on see /tmp kataloogi vaikeluba ja see võib olla kasulik ka avalike grupikataloogide jaoks.

Ilma kleepuva bitita, kui kasutaja saab kataloogis faile luua, saab ta ka sellest kataloogist faile kustutada. Avalikus grupikeskkonnas võib see olla tüütu. Kujutage ette kasutajaid linda ja lori, kellel mõlemal on /data/account kataloogi kirjutamisõigused ja nad saavad need õigused kontorühma liikmelisuse kaudu. Seetõttu saab linda kustutada lori loodud faile ja vastupidi.

Kui rakendate kleepuvat bitti, saab kasutaja faile kustutada ainult siis, kui on täidetud üks järgmistest tingimustest:

  • Kasutaja on faili omanik;
  • Kasutaja on selle kataloogi omanik, milles fail asub.

Kui kasutate Jäta, näete kleepuvat natuke nagu t asendis, kus tavaliselt näete teiste jaoks täitmisluba:

[root@hnl data]# ls -ld account/
drwxr-sr-t. 2 root account 4096 Apr 30 21:28 account/

Laiendatud õiguste rakendamine

SUID, SGID ja kleepuva biti pealekandmiseks võite kasutada ka chmod. SUID-i arvväärtus on 4, SGID-i arvväärtus on 2 ja kleepuval bitil on arvväärtus 1.

Kui soovite neid õigusi rakendada, peate lisama nelja märgi pikkuse argumendi chmod, mille esimene number viitab erilubadele. Näiteks järgmine rida lisab kataloogile SGID loa ja määrab kasutaja jaoks rwx ning rühma ja muude jaoks rx:

chmod 2755 /somedir

See on üsna ebapraktiline, kui peate enne töötamist nägema kehtivaid õigusi chmod absoluutses režiimis. (Kui te seda ei tee, võite õigused üle kirjutada.) Seega soovitan töötada suhtelises režiimis, kui teil on vaja rakendada mõnda järgmistest erilubadest:

  1. SUID-i kasutamiseks chmod u+s.
  2. SGID kasutamiseks chmod g+s.
  3. Kleepuvate bittide kasutamiseks chmod + tmillele järgneb faili või kataloogi nimi, mille õigusi soovite määrata.

Tabelis on kokkuvõte kõik, mida peate eriõiguste haldamise kohta teadma.

Linuxi load (chown, chmod, SUID, GUID, kleepuvad bitid, ACL, umask)

Eriõigustega töötamise näide

Selles näites kasutate eriõigusi, et hõlbustada rühmaliikmetel jagatud rühmakataloogis failide jagamist. Määrate määratud rühma ID ID-biti ja ka kleepuva biti ning näete, et kui need on määratud, lisatakse funktsioonid, mis hõlbustavad rühmaliikmete koostööd.

  1. Avage terminal, kus olete Linda kasutaja. Kasutaja saab luua käsuga Linda, lisage parool passwd Linda.
  2. Looge käsuga juurkataloogis /data ja /data/sales alamkataloog mkdir -p /andmed/müük. Käivitage cd /andmed/müükmüügikataloogi minemiseks. Käivitage puuduta linda1 и puuduta linda2luua kaks tühja faili, mille omanik on linda.
  3. Käivita su-lisa vahetada praegune kasutaja lisa kasutajaks, kes on samuti müügigrupi liige.
  4. Käivita cd /andmed/müük ja sellest kataloogist käivitada Jäta. Näete kahte faili, mille on loonud kasutaja linda ja mis kuuluvad linda gruppi. Käivitage rm -f linda*. See kustutab mõlemad failid.
  5. Käivita puudutus lisa1 и puudutus lisa2et luua kaks faili, mis kuuluvad kasutaja lisale.
  6. Käivita su — et oma õigusi juurutada.
  7. Käivita chmod g+s,o+t /andmed/müükrühma identifikaatori (GUID) biti ja kleepuva biti määramiseks jagatud rühmakataloogis.
  8. Käivita su-linda. Siis tee puuduta linda3 и puuduta linda4. Nüüd peaksite nägema, et kaks loodud faili kuuluvad müügirühmale, mis on kataloogi /data/sales rühmaomanik.
  9. Käivita rm -rf lisa*. Kleepuv bitt takistab nende failide kustutamist kasutajana Linda, kuna te ei ole nende failide omanik. Pange tähele, et kui kasutaja Linda on /data/sales kataloogi omanik, saab ta need failid niikuinii kustutada!

ACL-i haldus (setfacl, getfacl) Linuxis

Ehkki ülalkirjeldatud täiustatud õigused lisavad kasulikke funktsioone sellele, kuidas Linux lubadega tegeleb, ei võimalda see teil ühes failis lubasid anda rohkem kui ühele kasutajale või ühele rühmale.

Juurdepääsu kontrolli loendid pakuvad seda funktsiooni. Samuti võimaldavad need administraatoritel määrata vaikeõigusi keerulisel viisil, kus õigused võivad kataloogides erineda.

ACL-ide mõistmine

Kuigi ACL-i alamsüsteem lisab teie serverile suurepäraseid funktsioone, on sellel üks puudus: mitte kõik utiliidid ei toeta seda. Seetõttu võite failide kopeerimisel või teisaldamisel ACL-i sätted kaotada ja varundustarkvara ei pruugi ACL-i sätteid varundada.

Tar utiliit ei toeta ACL-e. Tagamaks, et ACL-i sätted ei läheks varukoopia loomisel kaduma, kasutage täht tõrva asemel. täht töötab samade parameetritega nagu tõrv; see lihtsalt lisab ACL-i sätete toe.

ACL-i saate varundada ka kasutades getfacl, mille saab taastada käsu setfacl abil. Varukoopia loomiseks kasutage getfacl -R /kataloog > fail.acls. Seadete taastamiseks varufailist kasutage setfacl --restore=file.acl.

Mõne tööriista toe puudumine ei tohiks olla probleem. ACL-e rakendatakse sageli kataloogidele struktuurimeetmena, mitte üksikutele failidele.
Seetõttu ei tule neid failisüsteemi nutikatesse kohtadesse rakendatuna palju, vaid üksikuid. Seetõttu on suhteliselt lihtne taastada algsed ACL-id, millega töötasite, isegi kui teie varundustarkvara neid ei toeta.

Failisüsteemi ettevalmistamine ACL-ide jaoks

Enne ACL-idega töötamise alustamist peate võib-olla oma failisüsteemi ACL-ide toetamiseks ette valmistama. Kuna failisüsteemi metaandmeid tuleb laiendada, ei ole failisüsteemis alati ACL-ide vaiketuge. Kui saate failisüsteemi ACL-ide konfigureerimisel teate "toimingut ei toetata", ei pruugi teie failisüsteem ACL-e toetada.

Selle parandamiseks peate lisama valiku acl kinnitus failis /etc/fstab, nii et failisüsteem on vaikimisi ühendatud ACL-i toega.

ACL-i sätete muutmine ja vaatamine kasutades setfacl ja getfacl

ACL-i määramiseks vajate käsku setfacl. Vajalike praeguste ACL-i sätete vaatamiseks getfacl. Meeskond Jäta ei näita olemasolevaid ACL-e; see näitab lihtsalt + pärast lubade loendit, mis näitab, et ACL-id kehtivad ka failile.

Enne ACL-ide konfigureerimist on alati hea mõte näidata praeguseid ACL-i sätteid kasutades getfacl. Allolevas näites näete praeguseid õigusi, nagu näidatud Jäta, ja ka nagu näidatud getfacl. Kui vaatate piisavalt tähelepanelikult, näete, et kuvatav teave on täpselt sama.

[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

Käsu täitmise tulemusena getfacl Allpool on näha, et õigused kuvatakse kolmele erinevale objektile: kasutajale, rühmale ja teistele. Nüüd lisame ACL-i, et anda müügigrupile lugemis- ja käitamisõigused. Käsk selleks on setfacl -mg:sales:rx /dir. Selles meeskonnas -m näitab, et praeguseid ACL-i sätteid tuleb muuta. Pärast seda g:müük:rx käsib käsul määrata ACL-i lugemise ja käivitamise (rx) rühma jaoks (g) müük. Allpool näete, kuidas käsk välja näeb, samuti käsu getfacl väljundit pärast praeguste ACL-i sätete muutmist.

[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

Nüüd, kui saate aru, kuidas rühma-ACL-i määrata, on kasutajate ja teiste kasutajate ACL-idest lihtne aru saada. Näiteks käsk setfacl -mu:linda:rwx /data Annab /data kataloogis olevale kasutajale linda load ilma teda omanikuks muutmata või praeguse omaniku määramist muutmata.

Meeskond setfacl on palju funktsioone ja valikuid. Üks võimalus on eriti oluline, parameeter -R. Kui seda kasutatakse, määrab see suvand ACL-i sätte kõigile failidele ja alamkataloogidele, mis on praegu kataloogis, kus ACL-i määrate. Olemasolevate kataloogide ACL-ide muutmisel on soovitatav seda valikut alati kasutada.

Vaike-ACL-idega töötamine

Üks ACL-ide kasutamise eeliseid on see, et saate anda õigusi mitmele kataloogis olevale kasutajale või rühmale. Teine eelis on see, et saate vaike-ACL-iga töötades lubada pärimise.

Vaikimisi ACL-i määramisel määrate õigused, mis määratakse kõigile kataloogis loodud uutele üksustele. Pidage meeles, et vaike-ACL ei muuda olemasolevate failide ja alamkataloogide õigusi. Nende muutmiseks peate lisama ka tavalise ACL-i!

Seda on oluline teada. Kui soovite kasutada ACL-i, et konfigureerida mitu kasutajat või rühma, et pääseda juurde samale kataloogile, peate ACL-i määrama kaks korda. Esimene kasutus setfacl -R -mpraeguste failide ACL-i muutmiseks. Seejärel kasutage setfacl -md:hoolitseda kõigi uute elementide eest, mis samuti luuakse.

Vaikimisi ACL-i määramiseks peate lihtsalt lisama valiku d pärast varianti -m (kord loeb!). Nii et kasutage setfacl -md:g:sales:rx /datakui soovite, et rühmamüük loeks ja käivitaks kõike, mis kunagi kataloogis /data luuakse.

Vaike-ACL-ide kasutamisel võib olla kasulik määrata ka teistele ACL-e. Tavaliselt pole sellel erilist mõtet, sest saate muuta ka teiste kasutajate õigusi chmod. Samas, millega ei saa hakkama chmod, on määrata õigused, mis tuleks teistele kasutajatele anda iga uue loodud faili puhul. Kui soovite takistada teistel saamast õigusi näiteks kaustas /data loodavale asjale, kasutage setfacl -md:o::- /data.

ACL-id ja tavalised load ei ole alati hästi integreeritud. Probleemid võivad tekkida, kui rakendate kataloogile vaike-ACL-i pärast sellesse kataloogi üksuste lisamist ja proovite seejärel tavalisi õigusi muuta. Tavaliste lubade puhul kehtivad muudatused ei kajastu ACL-i ülevaates hästi. Probleemide vältimiseks määrake esmalt tavalised õigused, seejärel määrake vaike-ACL-id (ja pärast seda proovige neid enam mitte muuta).

Näide laiendatud õiguste haldamisest ACL-ide abil

Selles näites jätkate tööd varem loodud /data/account ja /data/sales kataloogidega. Eelmistes näidetes tagasite, et müügirühmal on õigused /data/sales ja kontorühmal /data/account õigused.

Esiteks veenduge, et kontorühmal on lugemisõigused kataloogis /data/sales ja müügigrupil lugemisõigused kataloogis /data/account.

Seejärel määrate vaike-ACL-id tagamaks, et kõikidele uutele failidele on kõikidele uutele üksustele õigesti määratud õigused.

  1. Avage terminal.
  2. Käivita setfacl -mg:account:rx /data/sales и setfacl -mg:sales:rx /data/account.
  3. Käivita getfaclveendumaks, et õigused on seatud soovitud viisil.
  4. Käivita setfacl -md:g:konto:rwx,g:müük:rx /andmed/müüket määrata müügikataloogi vaike-ACL.
  5. Lisage kataloogi /data/account vaike-ACL kasutades setfacl -md:g:müük:rwx,g:konto:rx /andmed/konto.
  6. Kontrollige, kas teie ACL-i sätted on kehtivad, lisades kausta /data/sales uue faili. Käivitage puudutage /data/sales/newfile ja teostada getfacl /data/sales/newfile kehtivate õiguste kontrollimiseks.

Vaikimisi lubade määramine umaski abil

Eespool õppisite, kuidas töötada vaike-ACL-idega. Kui te ACL-i ei kasuta, on olemas shellisuvand, mis määrab teile saadavad vaikeõigused: umask (tagurpidi mask). Sellest jaotisest saate teada, kuidas muuta vaikeõigusi kasutades umask.

Võib-olla olete märganud, et uue faili loomisel määratakse mõned vaikeõigused. Need õigused määratakse seadega umask. See kestasäte kehtib sisselogimisel kõigile kasutajatele. Parameetris umask kasutatakse numbrilist väärtust, mis lahutatakse failile automaatselt määratavatest maksimaalsetest õigustest; Failide maksimaalne seadistus on 666 ja kataloogide jaoks 777.

Sellele reeglile kehtivad siiski mõned erandid. Seadetest leiate täieliku ülevaate umask allolevas tabelis.

Aastal kasutatud numbritest umask, nagu käsu numbriliste argumentide puhul chmod, viitab esimene number kasutaja õigustele, teine ​​number rühma lubadele ja viimane teistele määratud vaikelubadele. Tähendus umask vaikeväärtus 022 annab 644 kõigi uute failide ja 755 kõigi uute serveris loodud kataloogide jaoks.

Täielik ülevaade kõigist arvväärtustest umask ja nende tulemused allolevas tabelis.

Linuxi load (chown, chmod, SUID, GUID, kleepuvad bitid, ACL, umask)

Lihtne viis umaski sätte toimimiseks on järgmine: alustage faili vaikeõigustega 666 ja lahutage umask, et saada tõhusad õigused. Tehke sama kataloogi ja selle vaikeõigustega 777.

Umaski sätte muutmiseks on kaks võimalust: kõigile kasutajatele ja üksikutele kasutajatele. Kui soovite seada umaski kõikidele kasutajatele, peate tagama, et umask-i sätet järgitakse kestakeskkonna failide käitamisel, nagu on määratud failis /etc/profile. Õige lähenemine on luua kataloogis /etc/profile.d shelliskript nimega umask.sh ja määrata umask, mida soovid selles shelliskriptis kasutada. Kui selles failis umaski muudetakse, rakendatakse seda pärast serverisse sisselogimist kõikidele kasutajatele.

Alternatiiv umaski seadistamisele läbi /etc/profile ja sellega seotud failide, kus see kehtib kõikidele sisse logivatele kasutajatele, on muuta umaski sätteid failis nimega .profile, mis luuakse iga kasutaja kodukataloogis.

Selles failis rakendatud sätted kehtivad ainult konkreetsele kasutajale; seetõttu on see hea meetod, kui vajate rohkem üksikasju. Mulle isiklikult meeldib see funktsioon muuta juurkasutaja vaike-umask väärtuseks 027, samas kui tavakasutajad töötavad vaike-umaskiga 022.

Töötamine laiendatud kasutajaatribuutidega

See on viimane jaotis Linuxi lubade kohta.

Õigustega töötamisel on alati seos kasutaja- või rühmaobjekti ja nendel kasutaja- või rühmaobjektidel failis või kataloogis olevate õiguste vahel. Alternatiivne meetod failide kaitsmiseks Linuxi serveris on töötada atribuutidega.
Atribuudid teevad oma tööd sõltumata sellest, kes failile juurde pääseb.

Nagu ka ACL-ide puhul, tuleb failiatribuudid lubada. paigaldada.

See on valik user_xattr. Kui saate laiendatud kasutajaatribuutidega töötades teate "Toimingut ei toetata", määrake kindlasti paigaldada failis /etc/fstab.

Paljud atribuudid on dokumenteeritud. Mõned atribuudid on saadaval, kuid pole veel rakendatud. Ärge kasutage neid; nad ei too sulle midagi.

Allpool on toodud kõige kasulikumad atribuudid, mida saate rakendada.

A See atribuut tagab, et faili juurdepääsuaeg ei muutu.
Tavaliselt tuleb iga kord, kui fail avatakse, faili metaandmetesse salvestada failile juurdepääsu aeg. See mõjutab jõudlust negatiivselt; seetõttu regulaarselt kasutatavate failide puhul atribuut A saab kasutada selle funktsiooni keelamiseks.

a See atribuut võimaldab teil faili lisada, kuid mitte kustutada.

c Kui kasutate failisüsteemi, mis toetab helitugevuse pakkimist, tagab see failiatribuut, et fail tihendatakse tihendusmootori esmakordsel lubamisel.

D See atribuut tagab, et failide muudatused kirjutatakse kohe kettale, mitte ei lisata need esmalt vahemällu. See on kasulik atribuut olulistel andmebaasifailidel, et need ei kaoks faili vahemälu ja kõvaketta vahele.

d See atribuut tagab, et faili ei salvestata varukoopiatesse, kus kasutatakse dump-utiliiti.

I See atribuut võimaldab indekseerida kataloogi, milles see on lubatud. See tagab kiirema juurdepääsu failidele primitiivsetele failisüsteemidele, nagu Ext3, mis ei kasuta kiireks failidele juurdepääsuks B-puu andmebaasi.

i See atribuut muudab faili muutumatuks. Seetõttu ei saa failis muudatusi teha, mis on kasulik lisakaitset vajavate failide puhul.

j See atribuut tagab, et ext3-failisüsteemis kirjutatakse fail esmalt päevikusse ja seejärel kõvaketta andmeplokkidesse.

s Kirjutage 0 sekundi jooksul pärast faili kustutamist üle plokid, kuhu fail salvestati. See tagab, et faili ei saa pärast kustutamist taastada.

u See atribuut salvestab teabe kustutamise kohta. See võimaldab teil välja töötada utiliidi, mis töötab selle teabega kustutatud failide päästmiseks.

Kui soovite atribuute rakendada, võite kasutada käsku lobisema. Näiteks kasutada chattr +s mingi failatribuutide rakendamiseks mõnele failile. Kas soovite atribuudi eemaldada? Seejärel kasutage chattr -s mingi fail, ja see kustutatakse. Kõigist praegu rakendatavatest atribuutidest ülevaate saamiseks kasutage käsku lsattr.

Kokkuvõte

Sellest artiklist õppisite, kuidas lubadega töötada. Lugesite kolme põhiloa, täpsemate õiguste ja failisüsteemis ACL-ide kasutamise kohta. Samuti õppisite, kuidas kasutada vaikeõiguste rakendamiseks parameetrit umask. Selle artikli lõpus õppisite, kuidas kasutada kasutaja laiendatud atribuute failisüsteemi täiendava turvakihi rakendamiseks.

Kui teile see tõlge meeldis, kirjutage sellest kommentaarides. Tekib rohkem motivatsiooni kasulikke tõlkeid teha.

Parandasin artiklis mõned kirja- ja grammatikavead. Mõned mahukad lõigud vähendati lugemise hõlbustamiseks väiksemateks.

Selle asemel, et "Ainult isik, kellel on kataloogi administraatoriõigused, saab taotleda täitmisõigust." parandatud "Ainult isik, kellel on kataloogile kirjutamisõigus, saab taotleda täitmisõigust.", mis oleks õigem.

Aitäh kommentaaride eest berez.

Asendatud:
Kui te ei ole kasutaja omanik, kontrollib kest, kas olete grupi liige, mida nimetatakse ka faili rühmaks.

Kohta:
Kui te ei ole faili omanik, kontrollib kest, kas olete grupi liige, millel on failile õigused. Kui olete selle grupi liige, pääsete failile juurde rühma jaoks määratud õigustega ja kest lõpetab kontrollimise.

aitäh kommentaari eest Krüptopiraat

Allikas: www.habr.com

Lisa kommentaar