[[oktatas:linux:samba|< Samba]] ====== Samba4 ACL ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2019 * [[https://creativecommons.org/licenses/by-sa/4.0/|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 [[https://support.microsoft.com/de-at/help/243330/well-known-security-identifiers-in-windows-operating-systems|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)