Access Control List: Difference between revisions
(15 intermediate revisions by the same user not shown) | |||
Line 9: | Line 9: | ||
==Sissejuhatus== | ==Sissejuhatus== | ||
Antud dokumendis kirjeldatakse Access Control Listi (ACL) ehk pääsupiiramisloendi kasutamist Linux operatsioonisüsteemis. Tegemist on laiendatud failiõigussüsteemiga. Traditsiooniliselt määratakse Linux süsteemi failisüsteemides kolme tüüpi õiguseid (''read''- lugemine, ''write''- kirjutamine, ''execute''- käivitamine) omanikule, grupile ja teistele kasutajatele. ACL võimaldab juurdepääsuõiguseid määrata paindlikumalt. Lisaks omanikule, grupile ja teistele saab ACL-is määrata õigused nimeliselt kasutajale või grupile. ACL käsklusi on võimalik kasutada nii juurkasutaja kui tavakasutaja õigustes. Alljärgneva dokumentatsiooni kasutamiseks on vajalik omada algteadmiseid UNIXi-laadsetest operatsioonisüsteemidest ja käsureast. | Antud dokumendis kirjeldatakse Access Control Listi (ACL) ehk pääsupiiramisloendi kasutamist Linux operatsioonisüsteemis. Tegemist on laiendatud failiõigussüsteemiga. Traditsiooniliselt määratakse Linux süsteemi failisüsteemides kolme tüüpi õiguseid (''read''- lugemine, ''write''- kirjutamine, ''execute''- käivitamine) omanikule, grupile ja teistele kasutajatele. ACL võimaldab juurdepääsuõiguseid määrata paindlikumalt. Lisaks omanikule, grupile ja teistele saab ACL-is määrata õigused nimeliselt konkreetsele kasutajale või grupile. ACL käsklusi on võimalik kasutada nii juurkasutaja kui tavakasutaja õigustes. Alljärgneva dokumentatsiooni kasutamiseks on vajalik omada algteadmiseid UNIXi-laadsetest operatsioonisüsteemidest ja käsureast. | ||
Näidetes kasutatud ACL versioon on acl 2.2.52 -1. | Näidetes kasutatud ACL versioon on acl 2.2.52 -1. | ||
== Pääsupiiramisloendi kasutamine Linuxi failisüsteemides | == Pääsupiiramisloendi kasutamine Linuxi failisüsteemides == | ||
ACL on kasutatav mitmes Linuxi failisüsteemis nt: EXT2, EXT3, EXT4, XFS, Btfrs, jne. | ACL on kasutatav mitmes Linuxi failisüsteemis nt: EXT2, EXT3, EXT4, XFS, Btfrs, jne. | ||
Line 18: | Line 18: | ||
Peamiselt kasutatakse kahte käsku '''getfacl''' ja '''setfacl''' koos võtmetega. | Peamiselt kasutatakse kahte käsku '''getfacl''' ja '''setfacl''' koos võtmetega. | ||
Tavakasutaja saab laiendatud failiõigustesüsteemi ACL kasutada failide puhul, | Tavakasutaja saab laiendatud failiõigustesüsteemi ACL kasutada failide puhul, mille omanik ta on. Juurkasutaja saab laiendatud failiõigustesüsteemi ACL kasutada ka siis kui ta ei ole faili omanik. | ||
[http://www.vanemery.com/Linux/ACL/linux-acl.html [1]] | |||
==Käsu formaat | ==Käsu formaat == | ||
Line 80: | Line 81: | ||
|'''-M''' | |'''-M''' | ||
|'''--modify-file=file''' | |'''--modify-file=file''' | ||
| | |muudab faili õigused vastavalt sellele, mida loeb õiguste kirjeid sisaldavast failist | ||
|- | |- | ||
Line 95: | Line 96: | ||
|määrab ACL õiguste kirjed failile, asendab kehtivad õigused | |määrab ACL õiguste kirjed failile, asendab kehtivad õigused | ||
|} | |} | ||
[http://linux.die.net/man/1/getfacl [2]][http://linux.die.net/man/1/setfacl [3]] | |||
==Näited | ==Näited == | ||
Näited on teostatud tavakasutaja õigustes, failidele, kus kasutaja on omanik. Näidetes on määratud õigused kasutades tähekombinatsioone: rwx; võib kasutada ka numbrilist õiguste määramist. | Näited on teostatud tavakasutaja õigustes, failidele, kus kasutaja on omanik. Näidetes on määratud õigused kasutades tähekombinatsioone: rwx; võib kasutada ka numbrilist õiguste määramist. | ||
Line 105: | Line 107: | ||
<pre size="3">getfacl <faili/kausta_nimi></pre> | <pre size="3">getfacl <faili/kausta_nimi></pre> | ||
* Kuvame kausta nimega test õigused: | * Kuvame kausta nimega test õigused: | ||
< | <pre size="3">getfacl test | ||
# file: test | |||
# owner: mari | # owner: mari | ||
# group: mari | # group: mari | ||
Line 115: | Line 116: | ||
</pre> | </pre> | ||
Tulemuse esimesed kolm rida väljastavad kausta nime, omaniku ning grupi, järgnevad kolm rida näitavad kasutaja, grupi ja teiste õiguseid. See on minimaalne ACL. Hetkel ei ole kuvatud infot, mida ei saaks mõne põhikäsuga. | |||
Järgnevates näidetes on kasutatud sama käsku (getfacl test), et kuvada käskude tulemusi. | |||
*määrame konkreetsele kasutajale õigused | *määrame konkreetsele kasutajale õigused | ||
Line 124: | Line 126: | ||
<pre size="3">setfacl -m u:jaan:rw- test</pre> | <pre size="3">setfacl -m u:jaan:rw- test</pre> | ||
*tulemus | |||
<pre size="3"># file: test | *tulemus | ||
<pre size="3">getfacl test | |||
# file: test | |||
# owner: mari | # owner: mari | ||
# group: mari | # group: mari | ||
Line 147: | Line 151: | ||
* lisame kasutajale toomas ja grupile tudengid õiguse vaadata ja muuta kausta test | * lisame kasutajale toomas ja grupile tudengid õiguse vaadata ja muuta kausta test | ||
<pre size="3">setfacl -m u:toomas:rw-,g:tudengid:rw- test</pre> | <pre size="3">setfacl -m u:toomas:rw-,g:tudengid:rw- test</pre> | ||
* tulemus | |||
<pre size="3"># file: test | *tulemus | ||
<pre size="3"> | |||
getfacl test | |||
# file: test | |||
# owner: mari | # owner: mari | ||
# group: mari | # group: mari | ||
Line 165: | Line 172: | ||
<pre size="3">setfacl -m u:jaan:rwx,g:tudengid:rwx test</pre> | <pre size="3">setfacl -m u:jaan:rwx,g:tudengid:rwx test</pre> | ||
<pre size="3">setfacl -m mask::r-- test</pre> | <pre size="3">setfacl -m mask::r-- test</pre> | ||
*tulemus | |||
<pre size="3"># file: test | *tulemus | ||
<pre size="3"> | |||
getfacl test | |||
# file: test | |||
# owner: mari | # owner: mari | ||
# group: mari | # group: mari | ||
Line 177: | Line 187: | ||
other::r-x | other::r-x | ||
</pre> | </pre> | ||
Kuigi kasutaja jaan ja grupp tudengid said õigused: rwx, on maski tõttu neil ainult õigus:r. Samuti muutis mask ära varem toomasele ning omanik-grupile antud kehtivad õigused ('' | Kuigi kasutaja jaan ja grupp tudengid said õigused: rwx, on maski tõttu neil ainult õigus:r. Samuti muutis mask ära varem toomasele ning omanik-grupile antud kehtivad õigused (''effective''). | ||
Line 185: | Line 195: | ||
*eemaldame kasutajatele jaan ja toomas ACL-iga antud õigused | *eemaldame kasutajatele jaan ja toomas ACL-iga antud õigused | ||
<pre size="3">setfacl -x u:jaan,u:toomas test</pre> | <pre size="3">setfacl -x u:jaan,u:toomas test</pre> | ||
*tulemus | |||
<pre size="3"># file: test | *tulemus | ||
<pre size="3"> | |||
getfacl test | |||
# file: test | |||
# owner: mari | # owner: mari | ||
# group: mari | # group: mari | ||
Line 200: | Line 213: | ||
<pre size="3">setfacl -b <kausta/faili_nimi></pre> | <pre size="3">setfacl -b <kausta/faili_nimi></pre> | ||
<pre size="3">setfacl -b test</pre> | <pre size="3">setfacl -b test</pre> | ||
*tulemus | |||
<pre size="3"># file: test | *tulemus | ||
<pre size="3"> | |||
getfacl test | |||
# file: test | |||
# owner: mari | # owner: mari | ||
# group: mari | # group: mari | ||
user::rwx | user::rwx | ||
group::rwx | group::rwx | ||
other::r-x | other::r-x</pre> | ||
Algne vaade on taastatud | Algne vaade on taastatud | ||
<h5>Näide 6</h5> | <h5>Näide 6</h5> | ||
*määrame kaustale/ failile uued õigused | *määrame kaustale/ failile uued õigused | ||
Line 214: | Line 230: | ||
* määrame kaustale test uued õigused kasutades --set võtit. Antud võtit kasutades tuleb kindlasti määrata ka omaniku, grupi ning teiste õigused. | * määrame kaustale test uued õigused kasutades --set võtit. Antud võtit kasutades tuleb kindlasti määrata ka omaniku, grupi ning teiste õigused. | ||
<pre size="3">setfacl --set u::rwx,g::rw,o::-,u:jaan:r test</pre> | <pre size="3">setfacl --set u::rwx,g::rw,o::-,u:jaan:r test</pre> | ||
*tulemus | |||
<pre size="3"># file: test | *tulemus | ||
<pre size="3"> | |||
getfacl test | |||
# file: test | |||
# owner: mari | # owner: mari | ||
# group: mari | # group: mari | ||
Line 237: | Line 256: | ||
<pre size="3">setfacl -M minu_acl test*</pre> | <pre size="3">setfacl -M minu_acl test*</pre> | ||
<pre size="3"># file: test1 | *tulemus | ||
<pre size="3"> | |||
getfacl test1 | |||
# file: test1 | |||
# owner: mari | # owner: mari | ||
# group: mari | # group: mari | ||
Line 251: | Line 273: | ||
Sama tulemus on ka test2 ja test3 vaates. | Sama tulemus on ka test2 ja test3 vaates. | ||
== | [http://www.vanemery.com/Linux/ACL/linux-acl.html [1]] | ||
==Faili liigutamine ja kopeerimine == | |||
*mv käsklus säilitab | *mv käsklus säilitab ACL-iga määratud õigused alati kui see on võimalik, kui võimalus puudub, siis kuvatakse hoiatus | ||
*cp säilitab ACL õigused, kui seda kasutatakse koos võtmega -p | *[https://wiki.itcollege.ee/index.php/Cp cp] säilitab ACL õigused, kui seda kasutatakse koos võtmega -p, kui õiguste säilitamine ei ole võimalik kuvatakse hoiatus. | ||
[http://linux.die.net/man/5/acl [4]] | |||
==Kokkuvõte== | ==Kokkuvõte== | ||
ACL võimaldab paindlikumalt juurdepääsuõiguseid määrata ning lubab seda teha ka tavakasutajal. | ACL võimaldab paindlikumalt juurdepääsuõiguseid määrata ning lubab seda teha ka tavakasutajal. | ||
Lihtsustab tööd nt juhul kui tehakse ühist projekti ja projekti faile hoitakse ühe kasutaja kodukaustas. Võimaldab kodukausta omanikul määrata õigused teistele projektis osalevatele kasutajatele ilma juurkasutaja poole pöördumata. | |||
== Kasutatud kirjandus == | == Kasutatud kirjandus == |
Latest revision as of 19:07, 14 January 2015
Autor
2014/2015 Kadri Roasto AK21
2010 Arvi Alamaa
Sissejuhatus
Antud dokumendis kirjeldatakse Access Control Listi (ACL) ehk pääsupiiramisloendi kasutamist Linux operatsioonisüsteemis. Tegemist on laiendatud failiõigussüsteemiga. Traditsiooniliselt määratakse Linux süsteemi failisüsteemides kolme tüüpi õiguseid (read- lugemine, write- kirjutamine, execute- käivitamine) omanikule, grupile ja teistele kasutajatele. ACL võimaldab juurdepääsuõiguseid määrata paindlikumalt. Lisaks omanikule, grupile ja teistele saab ACL-is määrata õigused nimeliselt konkreetsele kasutajale või grupile. ACL käsklusi on võimalik kasutada nii juurkasutaja kui tavakasutaja õigustes. Alljärgneva dokumentatsiooni kasutamiseks on vajalik omada algteadmiseid UNIXi-laadsetest operatsioonisüsteemidest ja käsureast. Näidetes kasutatud ACL versioon on acl 2.2.52 -1.
Pääsupiiramisloendi kasutamine Linuxi failisüsteemides
ACL on kasutatav mitmes Linuxi failisüsteemis nt: EXT2, EXT3, EXT4, XFS, Btfrs, jne.
Peamiselt kasutatakse kahte käsku getfacl ja setfacl koos võtmetega.
Tavakasutaja saab laiendatud failiõigustesüsteemi ACL kasutada failide puhul, mille omanik ta on. Juurkasutaja saab laiendatud failiõigustesüsteemi ACL kasutada ka siis kui ta ei ole faili omanik. [1]
Käsu formaat
getfacl [võti] fail ...
setfacl [võti] { -m|-M|-x|-X ... } fail ...
Võtmete kirjeldusi
Mõlemal käsul on võimalik kasutada järgnevaid võtmeid:
-h | --help | käsu info |
-v | --version | versiooni info |
getfacl võtmeid
-a | --access | kuvab pääsupiiramisloendi
|
-c | --omit-header | kuvab pääsupiiramisloendi kommentaarideta (kuvab pääsupiiramisloendi ilma faili, omaniku ning grupi nimeta) |
-n | --numeric | kuvab pääsupiiramisloendis kasutajate/gruppide numbrilised ID-d |
-R | --recursive | kuvab ka alamkataloogide ACL kirjed |
settfacl võtmeid
-m | --modify=acl | muudab kehtivaid ACL õiguste kirjeid failil |
-M | --modify-file=file | muudab faili õigused vastavalt sellele, mida loeb õiguste kirjeid sisaldavast failist |
-x | --remove=acl | eemaldab ACL õiguste kirjed faililt |
-b | --remove-all | eemaldab kõik laiendatud õigused |
--set | määrab ACL õiguste kirjed failile, asendab kehtivad õigused |
Näited
Näited on teostatud tavakasutaja õigustes, failidele, kus kasutaja on omanik. Näidetes on määratud õigused kasutades tähekombinatsioone: rwx; võib kasutada ka numbrilist õiguste määramist.
Näide 1
- faili/kausta õiguste kuvamine
getfacl <faili/kausta_nimi>
- Kuvame kausta nimega test õigused:
getfacl test # file: test # owner: mari # group: mari user::rwx group::rwx other::r-x
Tulemuse esimesed kolm rida väljastavad kausta nime, omaniku ning grupi, järgnevad kolm rida näitavad kasutaja, grupi ja teiste õiguseid. See on minimaalne ACL. Hetkel ei ole kuvatud infot, mida ei saaks mõne põhikäsuga. Järgnevates näidetes on kasutatud sama käsku (getfacl test), et kuvada käskude tulemusi.
- määrame konkreetsele kasutajale õigused
setfacl -m u:[kasutaja_nimi]:[õigused] <faili/kausta_nimi>
- määrame kasutajale jaan õiguse vaadata ja muuta kausta nimega test:
setfacl -m u:jaan:rw- test
- tulemus
getfacl test # file: test # owner: mari # group: mari user::rwx user:jaan:rw- group::rwx mask::rwx other::r-x
Näeme, et pääsupiiramisloendisse on lisandunud kasutaja jaan õigustega vaadata ja muuta kausta test.
- tulemus vaadatuna käsuga ls -l
drwxrwxr-x+ 2 mari mari 4096 dets 25 14:55 test
Näeme, et kausta test õiguste lõpus on märk "+", see näitab, et kasutusel on ACL.
Näide 2
- määrame konkreetsele kasutajale ja konkreetsele grupile õigused
setfacl -m u:[kasutaja_nimi]:[õigused],g:[grupi_nimi]:[õigused] <kausta/faili_nimi>
- lisame kasutajale toomas ja grupile tudengid õiguse vaadata ja muuta kausta test
setfacl -m u:toomas:rw-,g:tudengid:rw- test
- tulemus
getfacl test # file: test # owner: mari # group: mari user::rwx user:jaan:rw- user:toomas:rw- group::rwx group:tudengid:rw- mask::rwx other::r-x
Näeme, et nii kasutaja toomas kui grupp tudengid on lisandunud pääsupiiramisloendisse. Ning nad on saanud õigused r ja w kaustale test.
Näide 3
Mida tähendab pääsupiiramisloendis olev mask? Maskiga on võimalik piirata ACLiga loodud kasutaja ja grupi õiguseid (omaniku õiguseid mask ei muuda). Mask määrab maksimaalsed õigused.
- Anname kasutajale jaan ja grupile tudengid nii vaatamise, muutmise kui kausta sisenemise õigused, kuid maskile määrame ainult vaatamise õigused
setfacl -m u:jaan:rwx,g:tudengid:rwx test
setfacl -m mask::r-- test
- tulemus
getfacl test # file: test # owner: mari # group: mari user::rwx user:jaan:rwx #effective:r-- user:toomas:rw- #effective:r-- group::rwx #effective:r-- group:tudengid:rwx #effective:r-- mask::r-- other::r-x
Kuigi kasutaja jaan ja grupp tudengid said õigused: rwx, on maski tõttu neil ainult õigus:r. Samuti muutis mask ära varem toomasele ning omanik-grupile antud kehtivad õigused (effective).
Näide 4
- ACL õiguste eemaldamine
setfacl -x u:[kasutaja_nimi] <kausta/faili_nimi]
- eemaldame kasutajatele jaan ja toomas ACL-iga antud õigused
setfacl -x u:jaan,u:toomas test
- tulemus
getfacl test # file: test # owner: mari # group: mari user::rwx group::rwx group:tudengid:rwx mask::rwx other::r-x
Näeme, et jaani ja toomast ei ole enam pääsupiiramisloendis, küll aga on alles grupp tudengid
Näide 5
ACL õiguste täielik eemaldamine
setfacl -b <kausta/faili_nimi>
setfacl -b test
- tulemus
getfacl test # file: test # owner: mari # group: mari user::rwx group::rwx other::r-x
Algne vaade on taastatud
Näide 6
- määrame kaustale/ failile uued õigused
setfacl --set u::[õigused],g::[õigused],o::[õigused],u:[kasutaja_nimi]:[õigused] <kausta/faili_nimi>
- määrame kaustale test uued õigused kasutades --set võtit. Antud võtit kasutades tuleb kindlasti määrata ka omaniku, grupi ning teiste õigused.
setfacl --set u::rwx,g::rw,o::-,u:jaan:r test
- tulemus
getfacl test # file: test # owner: mari # group: mari user::rwx user:jaan:r-- group::rw- mask::rw- other::---
Näide 7
Kui on vajalik kasutada sarnaseid õiguseid mitmel korral tasub töö lihtsustamiseks luua tekstifail, mis sisaldab ACL õiguste kirjeid. Nt võib faili sisu olla selline
user:jaan:rw- user:toomas:rw- group:tudengid:r-- mask::rw- other::---
- Failis kirjeldatud õiguste kasutamine
setfacl -M <fail_kus_on_õiguste_kirjeldus> <fail_millele_määran_õigused>
- määran failis minu_acl kirjeldatud õigused failidele test1, test2, test3
setfacl -M minu_acl test*
- tulemus
getfacl test1 # file: test1 # owner: mari # group: mari user::rw- user:jaan:rw- user:toomas:rw- group::rw- group:tudengid:r-- mask::rw- other::---
Sama tulemus on ka test2 ja test3 vaates.
[1]
Faili liigutamine ja kopeerimine
- mv käsklus säilitab ACL-iga määratud õigused alati kui see on võimalik, kui võimalus puudub, siis kuvatakse hoiatus
- cp säilitab ACL õigused, kui seda kasutatakse koos võtmega -p, kui õiguste säilitamine ei ole võimalik kuvatakse hoiatus.
[4]
Kokkuvõte
ACL võimaldab paindlikumalt juurdepääsuõiguseid määrata ning lubab seda teha ka tavakasutajal. Lihtsustab tööd nt juhul kui tehakse ühist projekti ja projekti faile hoitakse ühe kasutaja kodukaustas. Võimaldab kodukausta omanikul määrata õigused teistele projektis osalevatele kasutajatele ilma juurkasutaja poole pöördumata.