Advanced Samba Configuration on Ubuntu 24.04

By | 03/02/2026

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

Advanced Samba Configuration on Ubuntu 24.04

Přihlásit se jako uživatel lan s vámi nastaveným heslem:

Advanced Samba Configuration on Ubuntu 24.04

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:

Složka sdílení v Průzkumníku souborů

Práva pro uživatele lan funguji správně – objevila se očekávaná chybová hláška:

Advanced Samba Configuration on Ubuntu 24.04

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č):

Advanced Samba Configuration on Ubuntu 24.04
Nyní bude pro testování práv vytvořena nová složka. Jelikož uživatel martin a jirkaread-write přístup, složka by se měla vytvořit:

windows 11 vytvoreni nove slozky
Nová složka je úspěšně vytvořená – práva RW fungují:

windows 11 vytvoreni nove slozky

 

 

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: \> exit
smbclient //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 available

Zá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

Dobrovolný dar

Ahoj čtenáři, rád bych tě poprosil aby ses zamyslel, co je vše potřeba ke vzniku článku.
Jakožto amatérský softwarový kutil musím:

1) Nejdříve vše nastudovat v cizích jazycích.
2) Vše následně prakticky vyzkoušet.
3) Svoje poznatky a zkušenosti napsat do článku který si právě přečetl v jazyku kterému rozumíš.
4) Dát článku hlavu a patu a publikovat.

Každý článek zabere několik hodin práce, za kterou mi nikdo neplatí.
Prosím zvaž, kolik času jsem ti právě ušetřil.
Pokud ti to stojí aspoň za cenu jedné kávy, tak mi ji kup.
Předem moc děkuji.

Příspěvek tak můžeš provést zasláním libovolné částky na mé číslo účtu 1558701011/3030 Nebo můžeš dar poslat kliknutím na tento odkaz Podpořit tento WEB , který tě přesměruje na mou platební bránu Revolut.

Dar je také možné poslat ve formě Bitcoinu na BTC peněženku bc1qqdf5fp42a7srwwhh2rut8zr9x4jm5c8fqc9qw6

Veškeré peněžní prostředky budu také používat na zlepšení kvality své webové tvorby a na psaní nových technických návodů. Za každý dar předem děkuji.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *