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