Mi az ACL?
Az ACL (Access Control List) egy további, rugalmasabb engedélyezési mechanizmust biztosít a fájlrendszerek számára. Úgy tervezték, hogy segítse a UNIX fájlengedélyek kezelését. Az ACL lehetővé teszi, hogy bármilyen felhasználó vagy csoport számára engedélyeket adjon bármilyen lemezes erőforráshoz.
Az ACL használata :
Gondoljunk egy olyan forgatókönyvre, amelyben egy adott felhasználó nem tagja az Ön által létrehozott csoportnak, de mégis olvasási vagy írási hozzáférést szeretne adni, hogyan tudja ezt megtenni anélkül, hogy a felhasználó tagja lenne a csoportnak, itt jön a képbe az Access Control Lists, az ACL segít nekünk ebben a trükkben.
Az ACL-eket alapvetően arra használják, hogy rugalmas engedélyezési mechanizmust hozzanak létre Linuxban.
A Linux man oldalak alapján az ACL-eket arra használják, hogy finomabb diszkrecionális hozzáférési jogokat határozzanak meg a fájlok és könyvtárak számára.
setfacl és getfacl az ACL beállítására, illetve az ACL megjelenítésére szolgál.
Példa :
getfacl test/declarations.h
Kimenet:
# file: test/declarations.h# owner: mandeep# group: mandeepuser::rw-group::rw-other::r--
Az ACL beállítására szolgáló parancsok listája :
1) To add permission for usersetfacl -m "u:user:permissions" /path/to/file2) To add permissions for a groupsetfacl -m "g:group:permissions" /path/to/file 3) To allow all files or directories to inherit ACL entries from the directory it is withinsetfacl -dm "entry" /path/to/dir4) To remove a specific entrysetfacl -x "entry" /path/to/file5) To remove all entriessetfacl -b path/to/file
Példa :
setfacl -m u:mandeep:rwx test/declarations.h
Az ACL módosítása a setfacl segítségével :
Egy felhasználó (a felhasználó vagy a felhasználó neve vagy az azonosítója) jogosultságainak hozzáadásához:
# setfacl -m "u:user:permissions"
Jogosultságok hozzáadása egy csoporthoz (a csoport a csoport neve vagy azonosítója):
# setfacl -m "g:group:permissions"
Az összes fájl vagy könyvtár ACL-bejegyzéseinek átvétele a könyvtárból, amelyben található:
# setfacl -dm "entry"
Példa :
setfacl -m u:mandeep:r-x test/declarations.h
A kimenetet lásd az alábbi képen :
setfacl és getfacl
ACL megtekintése :
A jogosultságok megjelenítéséhez :
# getfacl filename
Nézzük meg a különbséget a getfacl parancs kimenete között az ACL jogosultságok beállítása előtt és után a setfacl parancs segítségével.
A mandeep felhasználóhoz egy plusz sor került hozzá, ami a fenti képen ki van emelve.
Kimenet:
engedélyek megváltoztatása
A fenti parancs az engedélyeket rwx-ről r-x-re változtatja
Az ACL eltávolítása :
Ha a beállított ACL-engedélyeket el akarja távolítani, használja a setfacl parancsot a -b opcióval.
Például :
remove set permissions
Ha összehasonlítja a getfacl parancs kimenetét a setfacl parancs -b opcióval történő használata előtt és után, akkor megfigyelheti, hogy a későbbi kimeneten nincs külön bejegyzés a felhasználó mandeep számára.
Az ls parancs segítségével is ellenőrizheti, hogy vannak-e ACL-en keresztül beállított extra engedélyek.
check set acl with ls
Nézze meg az első parancs kimenetét a képen, a jogosultságok után extra “+” jel van, mint -rw-rwxr-+, ez azt jelzi, hogy vannak extra ACL-engedélyek, amelyeket a getfacl paranccsal ellenőrizhet.
A Default ACL használata :
A default ACL egy könyvtárhoz rendelt speciális engedélytípus, amely nem változtatja meg magának a könyvtárnak az engedélyeit, de biztosítja, hogy a megadott ACL-ek alapértelmezés szerint be legyenek állítva a benne létrehozott összes fájlra. Mutassuk be : először létrehozunk egy könyvtárat, és a -d opció használatával alapértelmezett ACL-t rendelünk hozzá:
$ mkdir test && setfacl -d -m u:dummy:rw test