[[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)