Access Control List: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Line 96: Line 96:
|}
|}


==Näited [www.vanemery.com/Linux/ACL/linux-acl.html] [1]==
==Näited [www.vanemery.com/Linux/ACL/linux-acl.html [1]] ==


Näited on teostatud tavakasutaja õigustes. 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.


<h5>Näide 1</h5>
<h5>Näide 1</h5>
Line 115: Line 115:
</pre>
</pre>


Esimesed kolm rida väljastavad kausta nime, omaniku ning grupi, järgenvad 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.
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.


* lisame kasutajale jaan õiguse vaadata ja muuta kausta test:
*määrame konkreetsele kasutajale õigused
 
<pre size="3">setfacl -m u:[kasutaja_nimi]:[õigused] <faili/kausta_nimi></pre>
 
* määrame kasutajale jaan õiguse vaadata ja muuta kausta nimega test:


<pre size="3">setfacl -m u:jaan:rw- test</pre>
<pre size="3">setfacl -m u:jaan:rw- test</pre>
Line 139: Line 143:
<h5>Näide 2</h5>
<h5>Näide 2</h5>


* lisa kasutajale ja lisa grupile õiguste andmine
* määrame konkreetsele kasutajale ja konkreetsele grupile õigused
<pre size="3">setfacl -m u:[kasutaja_nimi]:[õigused],g:[grupi_nimi]:[õigused] [kausta/faili nimi]</pre>
<pre size="3">setfacl -m u:[kasutaja_nimi]:[õigused],g:[grupi_nimi]:[õigused] <kausta/faili_nimi></pre>
* 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>
Line 158: Line 162:
Mida tähendab pääsupiiramisloendis olev '''mask'''?
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.
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 käivitamsie õigused, kuid maskile määrame ainult vaatamise õigused
* Anname kasutajale jaan ja grupile tudengid nii vaatamise, muutmise kui kausta sisenemise õigused, kuid maskile määrame ainult vaatamise õigused
<pre size="3">setfacl -m u:jaan:rwx,g:marjuline: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 vaadatuna käsuga getfacl test
*tulemus vaadatuna käsuga getfacl test
Line 173: Line 177:
other::r-x
other::r-x
</pre>
</pre>
Kuigi jaan sai õigused: rwx, on maski tõttu tal ainult  õigus:r.
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 (''effecitve'').
''effective'' näitab kehtivaid õiguseid
 


<h5>Näide 4</h5>
<h5>Näide 4</h5>
*ACL õiguste eemaldamine
*ACL õiguste eemaldamine
<pre size="3">setfacl -x u:[kasutaja_nimi] [kausta/ faili nimi]</pre>
<pre size="3">setfacl -x u:[kasutaja_nimi] <kausta/faili_nimi]</pre>
*eemaldame jaani ja toomase ACLiga 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
*tulemus vaadatuna getfacl test
<pre size="3"># file: test
<pre size="3"># file: test
# owner: mari
# owner: mari
Line 191: Line 195:
other::r-x
other::r-x
</pre>
</pre>
Näeme, et jaani ja toomast ei ole enam pääsupiiramisloendis,küll aga on alles grupp tudengid
Näeme, et jaani ja toomast ei ole enam pääsupiiramisloendis, küll aga on alles grupp tudengid
<h5>Näide 5</h5>
<h5>Näide 5</h5>
ACL õiguste täielik eemaldamine
ACL õiguste täielik eemaldamine
<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
*tulemus vaadatuna getfacl test
<pre size="3"># file: test
<pre size="3"># file: test
# owner: mari
# owner: mari
Line 203: Line 207:
group::rwx
group::rwx
other::r-x
other::r-x
Algne vaade on taastatud
</pre>
</pre>
<h5>Näide 6</h5>
<h5>Näide 6</h5>
*määrame kaustale/ failile uued õigused
*määrame kaustale/ failile uued õigused
<pre size="3">setfacl --set u::[õigused],g::[õigused],o::[õigused],u:[kasutaja_nimi]:[õigused] [kasuta/ faili_nimi]</pre>
<pre size="3">setfacl --set u::[õigused],g::[õigused],o::[õigused],u:[kasutaja_nimi]:[õigused] <kausta/faili_nimi></pre>
* määrame kaustale test uued õigused kasutades --set võtit. Antud võtit kasutades tuleb kindalsti 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
*tulemus vaadatuna getfacl test
<pre size="3"># file: test
<pre size="3"># file: test
# owner: mari
# owner: mari
Line 219: Line 224:
other::---</pre>
other::---</pre>
<h5>Näide 7</h5>
<h5>Näide 7</h5>
Kui on vajalik kasutada sarnaseid õiguseid mitmel korral tasub töö lihtsustamiseks luua tekstifail, mis sisaldab ACL õiguseid.
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
Nt võib faili sisu olla selline
<pre size="3">user:jaan:rw-
<pre size="3">user:jaan:rw-
Line 228: Line 233:
</pre>
</pre>
*Failis kirjeldatud õiguste kasutamine
*Failis kirjeldatud õiguste kasutamine
<pre size="3">setfacl -M [fail_kus_on_õigustekirjeldus] [fail_millele_määran_õigused]</pre>
<pre size="3">setfacl -M <fail_kus_on_õiguste_kirjeldus> <fail_millele_määran_õigused></pre>
*määran failis minu_acl kirjeldatud õigused failidele test1, test2, test3
*määran failis minu_acl kirjeldatud õigused failidele test1, test2, test3


Line 244: Line 249:
mask::rw-
mask::rw-
other::---</pre>
other::---</pre>
Sama tulemus on ka test2 ja test3 vaates.


==mv ja cp==
==mv ja cp==

Revision as of 20:08, 25 December 2014


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 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 [1]

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, millele ta on omanik. Juurkasutaja saab laiendatud failiõigustesüsteemi ACL kasutada ka siis kui ta ei ole faili omanik.

Käsu formaat [2][3]

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 loeb ACL õiguste kirjed failist ning muudab faili õigused vastavalt loetule
-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 [www.vanemery.com/Linux/ACL/linux-acl.html [1]]

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
  • tulemus
# file: test
# owner: mari
# group: mari
user::rwx
group::rwx
other::r-x

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.

  • 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 vaadatuna käsuga: 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 vaadatud käsuga: 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 vaadatuna käsuga 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 (effecitve).


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 vaadatuna 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 vaadatuna 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 vaadatuna 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.

mv ja cp

  • mv käsklus säilitab ACLiga 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 või -a

Kokkuvõte

ACL võimaldab paindlikumalt juurdepääsuõiguseid määrata ning lubab seda teha ka tavakasutajal.

Kasutatud kirjandus

  1. http://www.vanemery.com/Linux/ACL/linux-acl.html
  2. http://linux.die.net/man/1/getfacl
  3. http://linux.die.net/man/1/setfacl
  4. http://linux.die.net/man/5/acl