Last Updated on 03/02/2026 by administrator
Advanced Samba Configuration on Ubuntu 24.04
Advanced Samba Configuration on Ubuntu 24.04
Motivace:
Samba je v moderním IT klíčovým nástrojem pro sdílení souborů, který funguje jako most mezi světy Linuxu, Windows a macOS. Umožňuje efektivní správu dat v heterogenním prostředí, což je neocenitelné pro domácí servery, firemní sítě i profesionální NAS řešení. Na rozdíl od základních konfigurací se tento přístup zaměřuje na pokročilé řízení přístupu, které zajišťuje nejen rychlý a bezpečný přenos dat, ale především dlouhodobou udržitelnost struktury oprávnění.
Hlavním pilířem této implementace je využití Access Control Lists (ACL) přímo v souborovém systému Ubuntu 24.04. Zatímco běžné sdílení často naráží na problémy s rozbitými právy při vytvoření nového souboru, tato konfigurace využívá mechanismus dědičnosti. To znamená, že veškerá nastavená pravidla pro čtení a zápis se automaticky a inteligentně přenášejí na budoucí data. Administrátor tak nemusí ručně zasahovat do oprávnění pokaždé, když uživatel nahraje novou složku, což dramaticky snižuje režii správy.
Test připojení klientů na samba server následně otestován na Windows 11 23H2, Windows 11 24H2 a Windows 11 25H2.
OS:
Implementace byla prováděna na Ubuntu 24.04 LTS a také na platformě Proxmox 9.1 s Ubuntu 24.04 LTS.
Implementace [1]:
1. Instalace a příprava systému:
Aktualizace balíčků:
sudo apt update
Instalace Samby a ACL nástrojů:
sudo apt install samba acl -y
2. Správa uživatelů:
Vytvořit uživatele martin a jirka (RW) a systémového uživatele lan pouze pro čtení (RO).
sudo adduser martin sudo adduser jirka
Vytvořit systémového uživatele lan bez domovské složky pro omezený přístup:
sudo adduser --system --no-create-home --disabled-password --group lan
Nastavení Samba hesel pro všechny vytvořené uživatele:
sudo smbpasswd -a martin sudo smbpasswd -a jirka sudo smbpasswd -a lan
3. Vytvoření sdílené složky:
Vytvoří fyzickou složku share pro sdílení a díky parametru -p zajistí i automatické vytvoření všech chybějících nadřazených adresářů:
sudo mkdir -p /srv/samba/share
Nastaví jako vlastníka složky systémového správce (root), což brání běžným uživatelům v jejím neoprávněném smazání nebo přejmenování:
sudo chown root:root /srv/samba/share
Nastaví základní přístup tak, aby vlastník mohl vše, zatímco ostatní uživatelé mohou do složky share pouze vstoupit a prohlížet její obsah:
sudo chmod 755 /srv/samba/share
4. Nastavení práv pro současné soubory:
Udělí uživateli martin a jirka plná práva (čtení, zápis, spouštění) ke složce /srv/samba/share:
sudo setfacl -m u:martin:rwx /srv/samba/share sudo setfacl -m u:jirka:rwx /srv/samba/share
Omezuje uživatele se jménem lan pouze na čtení a prohlížení obsahu bez možnosti cokoli měnit:
sudo setfacl -m u:lan:rx /srv/samba/share
Nastavuje práva pro ostatní (others) tak, aby každý mohl složku otevřít a číst, ale nikdo cizí do ní nemohl zapisovat.
sudo setfacl -m o::rx /srv/samba/share
5. Nastavení dědičnosti pro budoucí soubory a složky:
Zajišťuje, že uživatel martin a jirka bude mít automaticky plná práva ke každému novému souboru nebo podsložce, které v tomto adresáři vzniknou. Parametr -d (default) zajišťuje, že se nastavená práva „přenesou“ na každý soubor, který někdo do složky v budoucnu nahraje.
sudo setfacl -d -m u:martin:rwx /srv/samba/share sudo setfacl -d -m u:jirka:rwx /srv/samba/share
Nastavuje, že uživatel lan uvidí i všechny budoucí soubory, ale nikdy je nebude moci smazat ani upravit:
sudo setfacl -d -m u:lan:rx /srv/samba/share
Udržuje budoucí obsah složky čitelný pro ostatní uživatele systému, ale bez možnosti zápisu:
sudo setfacl -d -m o::rx /srv/samba/share
6. Konfigurace Samba:
Upravit konfiguračního souboru smb.conf ve složce /etc/samba:
sudo vi /etc/samba/smb.conf
a přidat na konec:
[share] comment = Sdileny adresar path = /srv/samba/share browseable = yes read only = no guest ok = no # definuje kdo se muze prihlasit: valid users = martin, jirka, lan # definuje kdo muze zapisovat: write list = martin, jirka # technicke nastaveni pro Windows 11 a dedicnost: inherit acls = yes map archive = no create mask = 0664 directory mask = 0775 force create mode = 0664 force directory mode = 0775
Legenda:
- [share] – Určuje název sdílené složky, pod kterým ji uživatelé uvidí v síti (např. jako \\IP_ADRESA\share).
- comment = Sdileny adresar – Krátký popisek sdílení, který se uživatelům zobrazí v prohlížeči souborů.
- path = /srv/samba/share – Definuje skutečnou cestu na disku serveru, kde se nacházejí sdílená data.
- browseable = yes – Zajišťuje, že složka bude viditelná v seznamu síťových prostředků a nebude skrytá.
- read only = no – Povoluje zápis do složky (opakem je yes, což by znamenalo pouze čtení).
- guest ok = no – Zakazuje přístup anonymním uživatelům a vyžaduje zadání jména a hesla.
- valid users = martin, jirka, lan – Vymezuje seznam konkrétních uživatelů, kteří mají vůbec povoleno se k tomuto sdílení přihlásit.
- write list = martin, jirka – Určuje, kteří z přihlášených uživatelů mají právo nahrávat, upravovat a mazat soubory.
- inherit acls = yes – Klíčový parametr, který říká Sambě, aby respektovala a přebírala pokročilá Linuxová ACL práva (ta, která byla nastavena příkazem setfacl).
- map archive = no – Vypíná mapování DOS atributu „archivovat“ na Linuxový příznak spuštění, což zabraňuje zmatkům v právech u Windows 11.
- create mask = 0664 – Nastavuje základní práva pro nově vytvořené soubory (vlastník a skupina mohou zapisovat, ostatní jen číst).
- directory mask = 0775 – Nastavuje základní práva pro nově vytvořené složky, aby do nich bylo možné vstupovat a číst je.
- force create mode = 0664 – Vynucuje, aby každý nový soubor měl vždy alespoň tato minimální práva, bez ohledu na to, co požaduje klientský počítač.
- force directory mode = 0775 – Vynucuje, aby každá nová složka měla vždy alespoň tato minimální práva pro zajištění přístupu.
Pozn. Kombinace inherit acls a masek (mask) zajišťuje, že se soubory budou mezi Windows a Linuxem chovat konzistentně a nikdo nebude mít problém s přístupem k souborům, které vytvořil kolega.
Příkaz níže provede kontrolu syntaxe a vypíše konfiguraci v tzv. kompaktním formátu. Přepínač -s tyto výchozí parametry skryje a ukáže vám pouze ty řádky, které jste sami do souboru napsali nebo které se od výchozích liší.
testparm -s
Restart samba služby:
sudo systemctl restart smbd
7. Ověření připojení:
Info: Samba server běží na IP adrese 192.168.0.150.
Poznámka: SMB2/3 musí být povoleno (SMB1 je zakázáno).
Windows 11 – Test uživatele „lan“:
Uživatel lan má pouze práva pro čtení (RO access):
V průzkumníku Windows zadat \\192.168.0.150\share
Přihlásit se jako uživatel lan s vámi nastaveným heslem:
Přihlášení proběhlo úspěšně.
Nyní bude pro testování práv vytvořena nová složka. Jelikož uživatel lan má jen read-only přístup, měla by se objevit chybová hláška:
Práva pro uživatele lan funguji správně – objevila se očekávaná chybová hláška:
Windows 11 – Test uživatele „martin“:
Uživatel martin má práva pro čtení a zápis (RW access):
Otevřít příkazový řádek (CMD) a zadat:
net use x: \\192.168.0.150\share /user:martin <heslo>
Pokud by nastala chyba mapování sdílené složky, aplikovat příkaz níže:
net use * /delete /y cmdkey /delete:192.168.0.150 net use x: \\192.168.0.150\share /user:martin <heslo>
Sdílená složka by se měla namapovat v This PC (Tento počítač):

Nyní bude pro testování práv vytvořena nová složka. Jelikož uživatel martin a jirka má read-write přístup, složka by se měla vytvořit:

Nová složka je úspěšně vytvořená – práva RW fungují:
Linux/Ubuntu – test uživatele „jirka“ a „lan“:
smbclient //192.168.0.150/share -U lan
Password for [WORKGROUP\lan]:
Try "help" to get a list of possible commands.
smb: \> mkdir newfolder
NT_STATUS_OBJECT_NAME_COLLISION making remote directory \newfolder
smb: \> exitsmbclient //192.168.0.150/share -U jirka
Password for [WORKGROUP\jirka]:
Try "help" to get a list of possible commands.
smb: \> mkdir newfolder
smb: \> dir
. D 0 Mon Feb 2 22:09:11 2026
.. D 0 Mon Feb 2 22:09:11 2026
newfolder D 0 Mon Feb 2 22:09:11 2026
test D 0 Mon Feb 2 22:06:48 2026
hry D 0 Sun Feb 1 18:47:24 2026
3021608 blocks of size 1024. 1785684 blocks availableZákladní nastavení Samba serveru lze najít zde Install and Configure Samba Ubuntu 24.04
Zdroj:
[1] https://linuxgenie.net/install-configure-samba-ubuntu-24-04




