< Samba

Samba4 ACL

Szerző: Sallai András

Copyright © Sallai András, 2019

CC Attribution-Share Alike 4.0 International

Web: http://szit.hu

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:

tartomány tagján

NT4 PDC és BDC-én

„Standalone” gép

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:

nincs jog

olvasás

írás

teljes kontroll

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

https://wiki.samba.org/index.php/Setting_up_a_Share_Using_POSIX_ACLs (2019)

smb.conf(5) (Debian 10; 2019)