Raspberry Pi a zdieľanie súborov cez sieť (samba)

Základom každého NAS servera (a teda aj toho nášho postavenom na Raspberry Pi) je sprístupnenie adresárov / súborov cez sieť pre ostatné počítače. V Linuxe sa na tento účel používa SAMBA.

Samba je linuxová implementácia SMB/CIFS protokolu určeného na zdieľanie súborov, ktorý je štandardne používaný najmä vo Windows svete. Pomocou Samby môžete prenášať cez dátovú sieť súbory medzi Raspberry a ostatnými počítačmi (Win/Apple) a tiež aj inými zariadeniami (mobily, hracie konzoly a pod.).

Cieľom tohto návodu bude vytvorenie zdieľaného adresára na ukladanie fotiek a filmov, ktorý sprístupníme pre ostatných používateľov v LAN sieti:

  • Na čítanie pre všetkých návštevníkov – bez nutnosti zadávania hesla.
  • Na zápis pre vybraných používateľov – s použitím prístupového mena a hesla.

Inštalácia Samby z repozitáru

Samba je dostupná v rámci štandardných softvérových Raspbian repozitárov. Pred samotnou inštaláciou si nezabudnite Raspbian aktualizovať:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install samba samba-common-bin

Vytvorenie zdieľaného adresára

Keďže tento návod je pokračovaním postupu ako vytvoriť na Raspberry domáce NAS, náš hlavný zdieľaný adresár vytvoríme na externom USB disku, ktorý máme namountovaný pod /mnt/data1/ – pozri návod na inštaláciu disku na Raspberry Pi. Ako cieľový podadresár pre zdieľanie vytvoríme priečinok Multimedia, ktorému zároveň nastavíme oprávnenie na zápis pre všetkých:

sudo mkdir /mnt/data1/Multimedia
sudo chmod 777 /mnt/data1/Multimedia

Konfigurácia Samby

Konfigurácia Samby je štandardne uložená v súbore /etc/samba/smb.conf. Predtým, ako do neho začneme babrať, urobíme si z neho kópiu. Následne si ho otvoríme na editáciu:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo nano /etc/samba/smb.conf

Konfiguračný súbor smb.conf je trošku dlhší ako sme čakali ;-). Vysvetľovať všetky jeho parametre je nad rámec tohto basic návodu, takže mám takýto návrh – celý jeho obsah nahraďte podľa nasledovného vzoru, ktorý mne zaručene funguje:

[global]
netbios name = NASKO
workgroup = WORKGROUP
dns proxy = no
logging = syslog@1 /var/log/samba/log.%m
max log size = 1000
panic action = /usr/share/samba/panic-action %d
server role = standalone server
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
usershare allow guests = yes

#======================= Share Definitions =======================
[Multimedia]
  path = /mnt/data1/Multimedia
  browsable = yes
  guest ok = yes
  read only = yes
  write list = gendzo
  create mask = 0755

Prvá časť textu (označená ako „Global“) je prenesená z predinštalovaného konfig súboru. Vašou úlohou je nastaviť netbios name – pod akým názvom má byť vaše NAS viditeľné v sieti a zvoliť správnu workgroup – takú ako máte nastavenú na ostatných PC v sieti.

V druhej časti konfiguráku označenej ako Share Definitions nastavíme konkrétne parametre nášho zdieľaného adresára. Parameter guest ok znamená, že adresár /mnt/data1 bude defaultne prístupný pre všetkých používateľov (bez hesla) a to na čítanie – read only. Okrem toho bude existovať jeden používateľ s menom gendzo, ktorý bude mať prístup aj na zápis. (Meno používateľa si zmeňte na vlastné!)

Toto je základná minimalistická konfigurácia, ktorá spĺňa naše zadanie z úvodu článku – vytvorenie zdieľaného adresára na ukladanie fotiek a filmov, pričom jeden user súbory na zdieľaný disk ukladá, ostatní ich len konzumujú. V prípade, ak sa v tom chcete viac bahniť, dávam do pozornosti kompletný samba konfig manuál.

Pridanie používateľa

Aby nám táto maškaráda naozaj fungovala, musíme zabezpečiť ešte jednu vec – vytvoriť používateľa gendzo (respektíve vášho vlastného), ktorý bude mať prístup na zápis. Všimnite si jednu vec – používateľa je nutné pridať zvlášť ako používateľa Raspbianu a zvlášť aj ako používateľa Samby.

sudo useradd gendzo -m -G users
sudo passwd gendzo
sudo smbpasswd -a gendzo

Reštart a skúška správnosti

Pred otestovaním musíme vykonať ešte jednu vec – reštart. Nie je potrebné reštartovať celý server, stačí reštart služby samba, z dôvodu aby si táto načítala novú konfiguráciu:

sudo service smbd restart

Skúšku správnosti vykonáte tak, že si vo Windowse otvoríte klasický Explorer (Priezkumník) a do vrchného riadku napíšte \\NASKO (alebo vlastný názov, ktorý ste si zvolili). Mal by sa vám hneď ukázať adresár Multimedia, v ktorom nájdete sprístupnený obsah /mnt/data1/Multimedia z vášho Raspberry. Tento prístup je bez hesla (t.j. iba na čítanie).

Pripojenie zdieľaného adresára z Raspberry Pi úložiska.

Prístup na zápis overíte tak, že sa pokúsite namapovať adresár Multimedia ako sieťový disk. Kliknite na priečinok Multimedia pravý tlačidlom myši a vyberte možnosť Map network drive… (Pripojiť sieťovú jednotku…). Zadajte meno a heslo používateľa, ktorého ste si na tento účel vytvorili – viď kapitolu „Pridanie používateľa“. Ak všetko zafunguje správne, zdieľaný adresár bude vo Windows ako nové písmeno disku. Zápis overíte napr. vytvorením nového adresára, alebo skopírovaním ľubovoľného súboru.

Prístup na zápis (po zadaní správneho prihlasovacieho mena / hesla) overíme vytvorením nového adresára.

Tento návod bol úspešne testovaný na Raspberry Pi3 model B+ 64-bit 1GB RAM a tiež aj na Raspberry Pi4 model B 64-bit 4GB RAM. Naposledy testované na verzii Raspbian GNU/Linux 10 (buster), kernel: Linux 4.19.75-v7l+


Použitá fotografia: upload-online-internet-files-cloud / Autor: Mudassar Iqbal / Licencia: Pixabay License

Gendzo

Cez deň pracujem ako IT manažéris. Po nociach robím vlastné web stránky a píšem články. Rád varím, cestujem a lúštim hlavolamy. Vo voľnom čase cvičím power jogu, čítam knihy a hľadám geokešky. A som šťastný majiteľ jednej skvelej manželky a dvoch detí k tomu. www.gendzo.sk/autor/gendzo-macher

4 komentáre

  1. Opino píše:

    Dobry den. Dakujem za Vase super navody. Prosim o malu radu. Nakonfiguroval som sambu ako tu mate uvedene. Sprava sa to zvlastne. Windows 7: v prieskumnikovi-siete vidi aj netbios meno a vie sa dostat na share. Windows 10 Home domaci sice nevidi netbios meno ani ho nerozozna, ale cez IP sa na sambu dostanem. No a nakoniec Windows 10 Enterprise firemny nevidi ani netbios a nedostanem sa tam ani cez IP. Pingat IP mozem. Co je zaujimave, tak ten firemny W10E vidi moje domace W10H aj W7. Nevidi iba sambu. SMB 1.0 klienta mam zapnuteho. Tusite prosim ktore nastavenie moze chybat? Dakujem.

    • Gendzo píše:

      Žiaľ, s týmto som sa nestretol, neviem konkrétne poradiť. Nemôže to byť firemnými politikami na tom notebooku? Ak je firemný, politiky máte riadené cez doménu, dožvie čo tam je nastavené… Mne to funguje aj na mojom súkromnom a aj na firemnom :-).

  1. 20.12.2019

    […] Nastavte zdieľanie dát cez sieť – Raspberry Pi a zdieľanie súborov cez sieť (samba). […]

  2. 21.12.2019

    […] správnosti vykonáme tak, že cez SAMBA protokol (pozri článok Raspberry Pi a zdieľanie súborov cez sieť) nahráme na disk pripojený k Raspberry Pi nejaké multimediálne súbory – povedzme film vo […]

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

Táto webová stránka používa Akismet na redukciu spamu. Získajte viac informácií o tom, ako sú vaše údaje z komentárov spracovávané.