Tartalomjegyzék

< Samba

Samba4 ACL

Bevezetés

A Samba támogatja a POSIX ACL-ek használatát a megosztásokon. Az ACL-ek segítségével helyi szinten, a linuxos fájlrendszeren szabályozhatjuk a hozzáférést. Ha fájlrendszer támogatja az attribútumokat, akkor a kiterjesztett POSIX ACL-ek is használhatók.

A Samba támogatja a POXIS ACL-eket a következőkön:

Fájl futtathatóság beállítása

Alapértelmezetten a fájlrendszeren csak *.bat és *.exe fájlok futtathatók, ha be van állítva a POSIX x bit.

Például:

-rwx------ joe "Domain Users" 305 1 Jan 00:00 pelda.exe

Ha más fájlokban is szeretnénk ezt lehetővé tenni a globális beállításoknál állítsuk be:

[global]
...
acl allow execute always = yes

Fájlmegosztás hozzáadása

Legyen egy /srv/samba/pala/ megosztás; a megosztás neve pala.

Készítsük el a könyvtárat:

#  mkdir -p /srv/samba/pala

Adjuk a smb.conf állományhoz egy [pala] szekciót:

[pala]
    path = /srv/samba/pala
    read only = no

Ez egy minimális paraméter páros ahhoz, hogy írni tudjuk a megosztást.

Töltsük újra a Samba konfigurációt:

# smbcontrol all reload-config

ACL beállítások

Szabványos UNIX ACL

A szabványos ACL-ek a UNIX rendszereken alapértelmezetten megtalálható tulajdonos, csoport és mindenki más jogainak beállításai.

Legyen egy példa, a /srv/samba/pala könyvtár, ami a root tulajdonában van, és a Domain Users csoporthoz tartozik. A tulajdonos és a csoport írhatja, olvashatja a könyvtárat. Minden más felhasználónak minden tiltva van.

# chmod 2770 /srv/samba/pala
# chown root:"Domain Users" /srv/samba/pala/

Megjegyzés: Az SGID bit (2770), automatikusan örökíti a a könyvtár csoportját, a könyvtárban létrehozott könyvtárak és fájlok csoportjára, ahelyett, hogy a tulajdonos elsődleges csoportját állítaná be.

További beállításokhoz nézzük meg a chomod(1) és chown(1) kézikönyveket.

Kiterjesztett ACL beállítása

A fájlrendszernek támogatnia kell a kiterjesztett ACL-eket. Segítségükkel több felhasználónak és csoportnak és szabályozhatod egy állományon vagy egy könyvtáron a jogait. Hasonló a Windows ACL-hez. A POSIX ACL azonban limitált jogokkat tud használni:

A példa kedvéért állítsunk be olvasási, írás és végrehajtási jogot a Domain Admins csoport számára, olvasási és végrehajtási jogot a Domain Users csoport számára; mindenki mástól tagadjunk meg mindet a /srv/samba/pala könyvtáron.

Adjuk a megosztásunkhoz a inherit acls = yes paraméteret:

[pala]
    path = /srv/samba/pala
    read only = no
    inherit acls = yes

Az inherit acl = yes paraméter engedélyezi a kiterjesztett jogok örökítését. A részletekért lásd az smb.conf kézikönyvet.

Töltsük újra a Samba-t:

# smbcontrol all reload-config

Ellenőrizzük a könyvtárat, hogy támogatja-e az ACL-t. Tiltsuk le az automatikusan garantált jogokat a felhasznló elsődleges csoportjától:

# setfacl -m group::--- /srv/samba/pala
# setfacl -m default:group::--- /srv/samba/pala

A könyvtár elsődleges csoportja dinamikusan hozzá van rendelve a CREATOR GROUP principiumhoz. Ha kiterjesztett POSIX ACL-eket használsz a Samba megosztáson, ez a principium, automatikusan hozzáadódik, amit nem tudsz törölni. Részletekért lásd a CREATOR GROUP leírást.

Állítsuk be a jogokat a könyvtáron:

Garantáljuk az olvasást, írást és futtatást a Domain Admins csoport számára:

# setfacl -m group:"SMB01\Domain Admins":rwx /srv/samba/pala/

Garantáljuk az olvasást és futtatást a Domain Users csoport számára:

# setfacl -m group:"SMB01\Domain Users":rwx /srv/samba/pala/

Állítsuk be mindenki más jogait:

# setfacl -R -m other::--- /srv/samba/pala/

Ezeket a beállításokat csak magára a könyvtárra vonatkoznak. Windowsban ezt úgy hívjuk: „Csak ez a könyvtár”, This folder only.

Most állítsuk be, hogy az előzőleg létrehozott jogok öröklödjenek az újonnan léterhozott könyvtárakon és fájlokon:

# setfacl -m default:group:"SMB01\Domain Admins":rwx /srv/samba/pala/
# setfacl -m default:group:"SMB01\Domain Users":r-x /srv/samba/pala/
# setfacl -m default:other::--- /srv/samba/pala/

A This folder only, mód a principiumok számára most le lett cserélve „This folder, subfolders, and files”-ra.

Az eddigi lépések Windows ACL-hez kötése
Principiumok Hozzáférés Kinek alkalmazzuk Megjegyzés
SMB01\Domain Admins Mindent lehet „This folder
subfolder,
and files
SMB01\Domain Users Olvasás, futtatás „This folder
subfolder,
and files
Mindenki Semmi This folder,
subfolders,
and files
A Samba ezt princípiumot
az other nevű UNIX
ACL bejegyzéshezt köti
Könyvtár tulajdonos (Unix) Mindent lehet This folder only A Samba a könyvtár
tulajdonosához köti
Könyvtár elsődleges csoport (Unix) Semmit This folder only A Samba az elsődleges csoporthoz köti
CREATOR OWNER * Mindent lehet Subfolder and files only Új fájlrendszer objektum esetén
a készítő automatikusan örökli
ezeket a jogokat
CREATOR GROUP * Semmit Subfolder and files only Új fájlrendszer objektum esetén
a készítő elsődleges csoport jogai
automatikusan öröklik ennek
a princípiumnak a jogait

Több részletért lásd a setfacl kézikönyvét.

Felhasználói és csoport szintű hozzáférés

    valid users = +SMB01\"Domain Users"
    invalid users = SMB01\janos

Lásd még az smb.conf(5) kézikönyvet.

Az invalid users paraméter magasabb prioritású, mint a valid users. Ha a példában szereplő janos tagja a Domain Users csoportnak, a hozzáférés számára tiltva lesz.

Gép alapú hozzáférés

A gép alapú hozzáférés lehetővé teszi egy megosztást elérésének szabályozását, gépnév, IP cím vagy IP cím tartomány alapján. A példa kedvéért legyen egy 127.0.0.1 cím, a 192.168.20.0/24 IP cím tartomány és a jogep nevű gép:

hosts allow = 127.0.0.1 192.168.20.0/24 jogep
hosts deny = rosszgep

A hosts deny paraméternek magasabb a prioritása, mint a hosts allow paraméternek. A példa kedvéért, ha rosszgep nevű gép fel van sorolva a hosts allow és a hosts deny paraméternél is, a gép tiltva lesz.

Forrás