You are on page 1of 4

Fájlrendszeri ACL-ekről

http://szabadlinuxot.blogspot.hu/2009/07/filesystem-acls.html

Az alap "rwx" nem lehet mindig elegendő, ezért ezt kibővíti az Access Control List.
Vajon mivel kezdünk? :)

apt-get install acl

EXT3 esetén az fstab-ban a megfelelő sorban írjuk mount opciónak még az "acl"-t! Ha nem akarjuk
újraindítani a gépünket, és például a "/home"-ra állítottuk, akkor:

mount -o,remount /home

-al már is használható lesz. De például XFS esetén nem szükséges az említett plusz mount opciót
megadni.
Hozzunk létre egy pár próbafilét:

for j in {0..1}; do echo "hi, ez itt a[z] $j. probafile" >


probafile-$j; mkdir valami-$j; cd valami-$j; done; cd ../../

Milyen extra jogok vannak beállítva egy fájlra/vagy mappára?

getfacl probafile-0
# file: probafile-0
# owner: gbor
# group: gbor
user::rw-
group::r--
other::r--

Rekurzívan:

getfacl -R valami-0/
# file: valami-0/
# owner: gbor
# group: gbor
user::rwx
group::r-x
other::r-x

# file: valami-0//probafile-1
# owner: gbor
# group: gbor
user::rw-
group::r--
other::r--

# file: valami-0//valami-1
# owner: gbor
# group: gbor
user::rwx
group::r-x
other::r-x

Az ACL által kezelt jogok ugyan azok, mint a megszokott "rwx", csak ezek kibővítésre kerültek
azzal, hogy kinek adhatunk, "rwx" jogosultságokat.
A jogok a következő kulcs szavakhoz vannak rendelve:

• user: a jogok a felhasználóra vonatkoznak, a felhasználó az állomány tulajdonosa, ha a


bejegyzés nem tartalmaz felhasználói nevet, egyébkén pedig a listabejegyzésben olvasható
felhasználó.
• group: a jogok az állomány tulajdonoscsoportjára vonatkoznak, ha a bejegyzés nem
tartalmaz csoportnevet, egyébként pedig a bejegyzésben található csoportra.
• other: a bejegyzésben található jogok azokra a személyekre [folyamatokra] vonatkoznak,
amelyekre egyetlen más ACL bejegyzés sem vonatkozik.
• mask: az ilyen jellegű bejegyzések a megadható legmagasabb jogokat mutatják, amely jog
tehát nem szerepel ebben a maszkban, azt nem kaphatja meg senki, hiába szerepel a jog a
másik bejegyzésben. Kivételt képez ez alól az állomány tulajdonosa és az other kulcsszóval
megadott csoport, akiknek a jogait a maszk nem korlátozza.

Adjunk olvasási és írási jogot egy bizonyos felhasználó számára:

setfacl -m u:gbor2:rw probafile-0

Nézzük meg, mit műveltünk:

getfacl probafile-0
# file: probafile-0
# owner: gbor
# group: gbor
user::rw-
user:gbor2:rw-
group::r--
mask::rw-
other::r--

Tett egy plusz mask sorunk, látszanak a hozzáadott jogok a "gbor2" usernek, és egy "ls -lh" a filére
már rak egy "+" jelet ezentúl, jelzésképpen, hogy ott nem csak az alap rwx jogosultságok léteznek:

ls -lh probafile-0 -rw-rw-r--+ 1 gbor gbor 29 2010-01-01 01:01


probafile-0

Most távolítsuk el az imént hozzáadottakat:

setfacl -x user:gbor2 probafile-0

getfacl probafile-0
# file: probafile-0
# owner: gbor
# group: gbor
user::rw-
group::r--
mask::r--
other::r--

Rekurzívan módosítani:

setfacl -R -m u:gbor2:rw valami-0/

Rekurzívan törölni:

setfacl -R -x u:gbor2 valami-0/

Az összes ACL bejegyzés egy paranccsal törölhető:

setfacl -b probafile-0

Ugyan így rekurzívan megint, stb..:

setfacl -R -b valami-0/

Példa: Egy "gbor" nevű felhasználó egy közös munka megkezdésekor egy "gbor2" emberkével
szeretne együtt dolgozni, mármint olykor közös fájlokat használni. A felhasználó nevében:

cd /home/gbor/
mkdir kozos
cd kozos
echo "megosztott szoveg" > olvassel.txt
cd ..

"gbor" x jogot ad [ :D:D ] "gbor2"-nek a "/home/gbor"-ra:

setfacl -m user:gbor2:--x $HOME

Most a közös mappa [de másnak ne legyen joga hozzá]:

setfacl -R -m user:gbor2:rwx,other::--- kozos/

De: mivan, ha a "kozos"-ben egy új mappát/fájlt hoz létre valaki? Nem muszáj [ :D ] beállítani újra
az ACL-t azon a fájlon, hanem létezik egy "default" kapcsolója a "setfacl"-nek, amivel
megadhatunk öröklődést:

setfacl -m d:u:gbor2:rwx,o::--- kozos/

A "user"-t lehet rövidíteni "u"-nek is. "Group"-ot: "g"-nek, "other"-t "o"-nak.

cd kozos
mkdir barmi

getfacl barmi/
# file: barmi/
# owner: gbor
# group: gbor
user::rwx
user:gbor2:rwx
group::r-x
mask::rwx
other::---
default:user::rwx
default:user:gbor2:rwx
default:group::r-x
default:mask::rwx
default:other::---

You might also like