neděle 8. prosince 2024

Vytvoření skupiny, přidání uživatele do skupiny a konfigurace Samby

Vytvoření skupiny linlan a přidání uživatele do skupiny

$ sudo groupadd linlan
$ sudo usermod -aG linlan user

Přidat uživatele samby a nastavit mu heslo:

$ sudo smbpasswd -a user

Nejprve zadám heslo sudo a pak jsem vyzván k tomu, abych zadal heslo do Samby pro uživatele user. Potvrdím a pak ho zadám ještě jednou pro kontrolu.

Složce nastavíme práva

sudo chown -R :linlan /cesta/k/sdilene/slozce sudo chmod -R 770 /cesta/k/sdilene/slozce

Globální konfigurace samby

 [global]
bind interfaces only = yes
interfaces = lo enp14s0 192.168.1.101
workgroup = WORKGROUP
server role = standalone
log file = /var/log/samba/%m.log
max log size = 50

Tento blok konfigurace Samby obsahuje důležitá nastavení pro správu síťového připojení, síťové skupiny (workgroup) a protokolování (logování). Pojďme si ho podrobně rozebrat:


Rozbor konfigurace

[global]
bind interfaces only = yes
interfaces = lo enp14s0 192.168.1.101
workgroup = Workgroup
server role = standalone
log file = /var/log/samba/%m.log
max log size = 50

1. bind interfaces only = yes

  • Určuje, že Samba bude naslouchat pouze na definovaných rozhraních v parametru interfaces.
  • To je důležité pro bezpečnost, protože Samba nebude dostupná na všech rozhraních.

2. interfaces = lo enp14s0 192.168.1.101

  • Specifikuje síťová rozhraní nebo IP adresy, na kterých má Samba naslouchat.
    • lo je loopback rozhraní (localhost, 127.0.0.1).
    • enp14s0 je síťové rozhraní vašeho zařízení.
    • 192.168.1.101 je IP adresa zařízení (notebooku), na které Samba naslouchá.
    Pokud přidáte špatné nebo neexistující rozhraní/adresu, Samba nebude správně fungovat.
  • VM ale má lo ens33 192.168.200.128 proto samba na notebooku musí mít nastaveno:

[global]
bind interfaces only = yes
interfaces =
ens33  
# viz ifconfig -a
workgroup = workgroup 
# Použijte malá písmena
server role = standalone
log file = /var/log/samba/%m.log
max log size = 50

 

3. workgroup = WORKGROUP

  • Definuje síťovou pracovní skupinu, do které Samba patří.
  • WORKGROUP je výchozí hodnota používaná ve Windows sítích. Všechna zařízení, která chtějí spolupracovat, musí mít stejnou hodnotu.

4. server role = standalone

  • Určuje roli Samba serveru:
    • standalone: Server funguje samostatně, ne jako člen domény.
    • To je vhodné pro domácí sítě nebo malé kanceláře.

Llama k tomu píše

/etc/samba/smb.conf

Také místo @linlan by mělo být @linlan nahrazeno skupinou, která existuje na vašem systému, nebo můžete použít konkrétní uživatele.

Pokud chcete přistupovat do windowské sítě Workgroup, budete muset přidat sekci [global] do svého /etc/samba/smb.conf souboru a nastavit následující parametry:


[global]
  workgroup = WORKGROUP
  netbios name = jméno_vašeho_počítače
  security = user


Také budete muset přidat sekci [filmy] s parametry, které jste již uvedli:


[filmy]
  path = /home/user/mnt/filmy
  valid users = @linlan
  create mask = 0660
  directory mask = 0770


Po úpravě /etc/samba/smb.conf souboru nezapomeňte restartovat službu Samba, aby se změny projevily.

5. log file = /var/log/samba/%m.log

  • Určuje umístění logů Samby. Proměnná %m se nahrazuje názvem klienta (např. jménem počítače, který se připojuje).
  • Každý klient má tak svůj vlastní log soubor.

6. max log size = 50

  • Určuje maximální velikost log souborů (v KB).
  • Pokud log dosáhne této velikosti, Samba ho přestane rozšiřovat, aby nezabírala příliš mnoho prostoru.

Souvisí s nastavením sdílené složky?

Ano i ne:

  • Souvisí:
    • Parametry bind interfaces a interfaces zajišťují, že Samba je dostupná pouze na konkrétních IP adresách/rozhraních. Pokud je špatně nastavíte, Samba nemusí být dostupná na očekávané síti.
    • Workgroup musí odpovídat skupině ostatních zařízení v síti (např. pokud Windows PC má WORKGROUP, musí ji mít i Samba).
  • Nesouvisí přímo:
    • Parametry sdílení složek (např. path, valid users, read only) se nastavují v konkrétní sekci, jako je [sdilena_slozka].

Oprava a doporučení

  1. Aktualizace interfaces: Pokud víte, že vaše síťová karta je enp14s0 a Samba má být dostupná na IP adrese 192.168.1.101, pak je nastavení správné.

  2. Kontrola workgroup: Ujistěte se, že všechna zařízení (Windows i Linux) mají stejnou hodnotu workgroup.

  3. Logování: Zkontrolujte logy Samby, pokud máte problémy s připojením:

    sudo tail -f /var/log/samba/*.log
    

Pokud něco nefunguje, dejte vědět! 😊

 

 

 

Masky v Sambě

V konfiguraci Samby se parametry create mask a directory mask používají k nastavení oprávnění pro nové soubory a adresáře, které jsou vytvořeny přes Sambové sdílení. Umožňují kontrolovat, kdo může číst, zapisovat nebo provádět soubory a jaká oprávnění budou mít nově vytvořené adresáře.

Co znamenají masky?

  1. create mask:

    • Určuje oprávnění pro nové soubory vytvořené ve sdílené složce.
    • V Sambě jsou oprávnění nastavována v oktalovém formátu (stejně jako v Linuxu pomocí příkazu chmod).
    • Příklad:
      • Hodnota 0660 znamená:
        • Uživatel: čtení a zápis.
        • Skupina: čtení a zápis.
        • Ostatní: žádná oprávnění.
  2. directory mask:

    • Určuje oprávnění pro nové adresáře vytvořené ve sdílené složce.
    • Adresáře obvykle potřebují mít povolené procházení (bit x), aby je uživatelé mohli otevřít.
    • Příklad:
      • Hodnota 0770 znamená:
        • Uživatel: čtení, zápis a procházení.
        • Skupina: čtení, zápis a procházení.
        • Ostatní: žádná oprávnění.

Sdílení složek v sambě

Každá sdílená složka v Sambě musí být uvedena pod vlastní sekcí v konfiguraci (např. [zálohy_01], [zálohy_02]) s individuálním nastavením, včetně parametru path. Samba neumožňuje specifikovat více adresářů pro sdílení v rámci jedné sekce.

Důvody:

  1. Jednoznačné přiřazení nastavení: Každá sekce obsahuje individuální konfiguraci (jako oprávnění, masky, přístup uživatelů), která se vztahuje pouze na adresář uvedený v path.
  2. Struktura konfigurace: Samba je navržena tak, aby jedno path odpovídalo jednomu sdílení. Pokus o uvedení více cest v rámci jedné sekce by byl ignorován nebo vedl k chybám.

Nakonfigurujte sdílenou složku v /etc/samba/smb.conf:

[sdilena_slozka] path = /cesta/k/sdilene/slozce valid users = @linlan read only = no create mask = 0660 directory mask = 0770

Restartujte službu Samba:

sudo systemctl restart smbd

Uživatel user se nyní může přihlásit na sdílenou složku pomocí svého Sambového hesla.

Bash script

Bash skript na nasdílení mnoha složek v kořenovém adresáři (třeba na Windows) by mohl mít na začátku volbu zda chci potvrzovat z výpisu kořebnového adresáře... takže např. po zavolání ./sambadirs.sh /media/filmy by vyskočila volba zda chci potvrzovat složky jedotlivě zda je zahrnout do seznamu nebo se přidají všechny do té cesty

#!/bin/bash

# Ověří, zda byl zadán vstupní adresář
if [ -z "$1" ]; then
  echo "Použití: $0 "
  exit 1
fi

# Zadaný kořenový adresář
ROOT_DIR=$1

# Výstupní soubor pro sdílenou konfiguraci
SAMBA_CONF="/tmp/samba_shares.conf"

# Volba potvrzování
read -p "Chcete potvrdit přidání jednotlivých složek? [y/n] " CONFIRM

# Inicializace výstupního souboru
echo "; Automaticky generovaná Samba konfigurace" > "$SAMBA_CONF"

# Prochází všechny podadresáře
for DIR in "$ROOT_DIR"/*; do
  if [ -d "$DIR" ]; then
    if [ "$CONFIRM" == "y" ]; then
      read -p "Přidat adresář $DIR? [y/n] " ADD
      if [ "$ADD" != "y" ]; then
        continue
      fi
    fi

    # Název sdílené složky (bez cesty)
    SHARE_NAME=$(basename "$DIR")

    # Přidá do konfigurace
    echo "[$SHARE_NAME]" >> "$SAMBA_CONF"
    echo "path = $DIR" >> "$SAMBA_CONF"
    echo "read only = no" >> "$SAMBA_CONF"
    echo "create mask = 0660" >> "$SAMBA_CONF"
    echo "directory mask = 0770" >> "$SAMBA_CONF"
    echo "valid users = @linlan" >> "$SAMBA_CONF"
    echo "" >> "$SAMBA_CONF"
  fi
done

# Výstup
echo "Konfigurace byla uložena do $SAMBA_CONF"
echo "Pro přidání do Samby zkopírujte obsah do /etc/samba/smb.conf"

Nastavení práv, spuštění a přidání do konfigurace samby

chmod +x sambadirs.sh
./sambadirs.sh /media/filmy 
sudo cat /tmp/samba_shares.conf >> /etc/samba/smb.conf 
sudo systemctl restart smbd
 

Žádné komentáře:

Okomentovat

GPT: Ramdisk a extrakce .deb

  Následující skript provádí popsané kroky, využívá RAMdisky různých velikostí podle potřeby a provádí extrakci. Tento skript je psán v Bas...

Štítky

.profile adm administrace Adobe AI akcelerace alfa transparence AND any aplikace apt ar archiv asociativní pole atomicity audio autentifikace awk balíčkovací systém bash beacon beacon_hint benchmark Bézierovy křivky bezpečnost biblehub BJT boolean buffer buffering Cache-Conrol Cloudflare code Collector Cut-off ColorManager colorpicker common compare config cookies CPU CPU pipe css CSS3 curl cut čas data loss data lost data transfer reliability datasheet datetime.strptime deb deb-systemd-helper debian debián development dioda diody dpkg dpkg -S dpkg-deb drivers EBO Emitter Cut-off Current eps ETag exclude exec Expires extrakce jediného extrakce názvu balíčku souboru extrakce souboru .deb fflock fflush ffmpeg FIFO file read file write file_get_contents file_get_contents/file_put_contents file_put_contents filter find first_install.sh flock Fly-back dioda font-face fóra fotorezistor fread functions funkce fwrite gate gate drive GDVfs gedit gedit-common geolokace Ghostscript GIO glib gnome gnome settings GNU Privacy Guard gnupg gpg gradient-background grafika grep grep -v groupadd grub grub update gs gsettings gtk gtk.css gtk+ hebrejština history hlavičky HS html html 5 https hudba charakterizace chroot chyba ICES IGBT img sizes img srcset impedance implementace imshow inference inkscape inrush current install jalový výkon javascript javescript jednocení seznamů js kapacita součástek koeficient zesílení komponenty xFce komunikace se serverem konfigurace Krita KSF Last-Modified lazy caching led LEFT JOIN librosa ligatury light-locker lightdm linux list log maják manuál maskování maskování služby masky matplotlib Max-Age measure memory měření MFCC MFCC koeficienty mint Mint 21.3 Mint xFce míry modules moralizace morphologie MOSFET mount moviepy mysql náběhový proud napěťová ochrana návod nel Network Error Logging NLP not Notifications NTFS nth-child oblékání ochrana okruhy přátel OpenVINO IR formát oprava oprava balíčku optočlen org.gnome.desktop.screensaver org.gnome.nm-applet ořezové masky OSHB otázky otázky_jazyky otázky_moralismu_řešení ovladače panely parsování path personifikace photorec php php 4 php 5 php 6 php 7 php 8 phpbb phpBB3 PipeWire pitch PN přechody pnp pole Policykit postscript práva profilování program prune průraz přeinstalování přepěťová ochrana přepolování příkazy připojení k síti připojení k wifi pseudokódd pstoedit PulseAudio PWM regulátory pydub python python3 pytorch ramdisk RBE RDSon read reaktance rectifier regulace vstupního napětí reinstall relyability remount replace restore reverzní geolokace RIGHT JOIN rm role rozvržení disků pro OS linux a data databází řešení samba sdílení sdílení souborů Sec-Fetch-Dest Sec-Fetch-Mode Sec-Fetch-Site Sec-Fetch-User Secure Shell sed Set Cookie show-manual-login show-remote-login shunt schemas schémata schottka skript skupiny sloupce služby song sort soubory soundfile spínané zdroje spínání splines split správa diskových zařízení SQL ssh stabilizace napětí stahování stream string strojové učení stropové učení supplicant svg syntax systemctl systemd-logind T5 tabulky Tangentové úsečky tar témata tepelná ztráta test text-shadow themes thermal runaway time timestamp tkinter tr transistor transition tranzistor tranzistory tuple tvorba otázek TVS ubuntu účiník udiskd udisks unconfined underrun unity-greeter update usermod uživatelé va charakteristika vala vektorová grafika Vgs video Vth vynechání adresářů vývoj while wpa wpa_supplicant wrapovací funkce x xandr xapp-watt xargs -I xed xed-common xfdesktop xml XOR Xorg Xorg Thumbnails xrandr závislosti zdánlivý výkon zdroj zenerka zenerovo napětí zip zip archiv zkratky zpomalení zpracování textu Žalmy