Přejít na obsah
Nastavení a diagnostika Samba

Nastavení a diagnostika Samba

Nastavení a diagnostika Samba

Úvod do Samby

Samba je open-source software, který umožňuje sdílení souborů a tiskáren mezi systémy s Linuxem a Windows. Je to klíčový nástroj pro integraci Linuxových serverů do sítí s Windows. Tento článek pokrývá základy nastavení Samby a diagnostiky běžných problémů.


Instalace Samby

  • Instalace na Ubuntu/Debian:

    sudo apt update
    sudo apt install samba
  • Instalace na CentOS/RHEL:

    sudo yum install samba
  • Spuštění a povolení služby:

    sudo systemctl start smbd
    sudo systemctl enable smbd

Základní konfigurace Samby

  • Konfigurační soubor:
    Hlavní konfigurační soubor Samby je /etc/samba/smb.conf.

  • Základní struktura konfigurace:

    [global]
       workgroup = WORKGROUP
       server string = Samba Server
       security = user
    
    [shared]
       path = /srv/samba/shared
       browseable = yes
       writable = yes
       valid users = uzivatel
    • [global]: Globální nastavení (název pracovní skupiny, zabezpečení).
    • [shared]: Definice sdílené složky (cesta, oprávnění, uživatelé).
  • Vytvoření sdílené složky:

    sudo mkdir -p /srv/samba/shared
    sudo chmod 777 /srv/samba/shared
  • Přidání uživatele do Samby:

    sudo smbpasswd -a uzivatel

Uživatel musí již existovat v systému adduser uzivatel


Diagnostika a řešení problémů

  • Zobrazení sdílených složek:

    • Příkaz smbclient zobrazí dostupné sdílené složky na cílovém serveru ( localhost v tomto případě ):
      smbclient -L localhost -U uzivatel
  • Připojení k sdílené složce:

    • Z Linuxu:
      smbclient //server/shared -U uzivatel
    • Z Windows:
      • Otevřít Průzkumník souborů a zadat \\ip_adresa\shared.
  • Prohlížení logů:

    • Logy Samby jsou uloženy v /var/log/samba/.
    • Hlavní logy: log.smbd, log.nmbd.
    • Příkaz tail pro zobrazení posledních záznamů:
      tail -n 20 /var/log/samba/log.smbd
  • Použití journalctl pro diagnostiku:

    • Pokud Samba používá systemd, lze logy zobrazit pomocí:
      journalctl -u smbd
  • Běžné problémy a řešení:

    • Nelze se připojit k sdílené složce:
      • Kontrola, zda je služba smbd spuštěna:
        sudo systemctl status smbd
      • Kontrola firewallu:
        sudo ufw allow samba
    • Chyba oprávnění:
      • Kontrola oprávnění složky a uživatelských účtů v Samba.
      • Příkaz getfacl pro kontrolu ACL:
        getfacl /srv/samba/shared
      • Případně UNIX práva 777 nad složkou ( práva pro všechny uživatele a skupiny na čtení, zápis a spouštění )

Pokročilé nastavení

  • Anonymní přístup:

    • Přidání do smb.conf:
      [global]
         map to guest = Bad User
      
      [public]
         path = /srv/samba/public
         browseable = yes
         writable = yes
         guest ok = yes
  • Vázání na konkrétní síťové rozhraní:

    • Přidání do smb.conf:
      [global]
         interfaces = 192.168.1.0/24
         bind interfaces only = yes

Příklady konfigurace Samby pro uživatele s oprávněním write a read

Samba umožňuje nastavit různá oprávnění pro různé uživatele nebo skupiny. Níže jsou uvedeny příklady konfigurace, kde jeden uživatel má oprávnění k zápisu (write), zatímco ostatní uživatelé mají pouze oprávnění ke čtení (read).


Základní konfigurace pro jednoho uživatele s write a ostatní s read

  • Cíl:

    • Uživatel uzivatel1 má oprávnění k zápisu (write).
    • Ostatní uživatelé (např. uzivatel2, uzivatel3) mají pouze oprávnění ke čtení (read).
  • Konfigurace v /etc/samba/smb.conf:

    [global]
       workgroup = WORKGROUP
       server string = Samba Server
       security = user
    
    [shared]
       path = /srv/samba/shared
       browseable = yes
       writable = yes
       valid users = uzivatel1, uzivatel2, uzivatel3
       write list = uzivatel1
    • Vysvětlení:
      • valid users: Definuje, kteří uživatelé mají přístup ke sdílené složce.
      • write list: Určuje, kteří uživatelé mají oprávnění k zápisu. Ostatní uživatelé mají pouze oprávnění ke čtení.
  • Nastavení oprávnění na souborovém systému:

    • Ujistěte se, že složka /srv/samba/shared má správná oprávnění:
      sudo chown -R uzivatel1:skupina /srv/samba/shared
      sudo chmod 775 /srv/samba/shared
      • chown: Nastaví vlastníka složky na uzivatel1 a skupinu na skupina.
      • chmod 775: Umožňuje vlastníkovi a skupině čtení, zápis a spouštění, ostatním pouze čtení a spouštění.
  • Přidání uživatelů do Samby:

    sudo smbpasswd -a uzivatel1
    sudo smbpasswd -a uzivatel2
    sudo smbpasswd -a uzivatel3

Uživatel musí již existovat v systému adduser uzivatel1


Konfigurace pro skupiny s různými oprávněními

  • Cíl:

    • Skupina skupina_write má oprávnění k zápisu (write).
    • Skupina skupina_read má pouze oprávnění ke čtení (read).
  • Konfigurace v /etc/samba/smb.conf:

    [global]
       workgroup = WORKGROUP
       server string = Samba Server
       security = user
    
    [shared]
       path = /srv/samba/shared
       browseable = yes
       writable = yes
       valid users = @skupina_write, @skupina_read
       write list = @skupina_write
    • Vysvětlení:
      • @skupina_write: Skupina s oprávněním k zápisu.
      • @skupina_read: Skupina s oprávněním ke čtení.
  • Vytvoření skupin a přidání uživatelů:

    sudo groupadd skupina_write
    sudo groupadd skupina_read
    sudo usermod -aG skupina_write uzivatel1
    sudo usermod -aG skupina_read uzivatel2
    sudo usermod -aG skupina_read uzivatel3
  • Nastavení oprávnění na souborovém systému:

    sudo chown -R :skupina_write /srv/samba/shared
    sudo chmod 775 /srv/samba/shared
  • Přidání uživatelů do Samby:

    sudo smbpasswd -a uzivatel1
    sudo smbpasswd -a uzivatel2
    sudo smbpasswd -a uzivatel3

Konfigurace s anonymním přístupem a oprávněními

  • Cíl:

    • Uživatel uzivatel1 má oprávnění k zápisu (write).
    • Ostatní uživatelé (včetně anonymních) mají pouze oprávnění ke čtení (read).
  • Konfigurace v /etc/samba/smb.conf:

    [global]
       workgroup = WORKGROUP
       server string = Samba Server
       security = user
       map to guest = Bad User
    
    [shared]
       path = /srv/samba/shared
       browseable = yes
       writable = yes
       valid users = uzivatel1, @skupina_read
       write list = uzivatel1
       guest ok = yes
    • Vysvětlení:
      • map to guest = Bad User: Umožňuje anonymní přístup, pokud uživatel nezadá platné přihlašovací údaje.
      • guest ok = yes: Povoluje anonymní přístup ke sdílené složce.
  • Nastavení oprávnění na souborovém systému:

    sudo chown -R uzivatel1:skupina_read /srv/samba/shared
    sudo chmod 775 /srv/samba/shared
  • Přidání uživatelů do Samby:

    sudo smbpasswd -a uzivatel1
    sudo smbpasswd -a uzivatel2
    sudo smbpasswd -a uzivatel3

Testování konfigurace

  • Restartování Samby:

    sudo systemctl restart smbd
  • Připojení k sdílené složce:

    • Z Linuxu:
      smbclient //server/shared -U uzivatel1
    • Z Windows:
      • Otevřít Průzkumník souborů a zadat \\ip_adresa\shared.
  • Kontrola oprávnění:

    • Zkuste vytvořit soubor jako uzivatel1 (mělo by to fungovat).
    • Zkuste vytvořit soubor jako uzivatel2 nebo anonymně (mělo by to selhat).