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).
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.
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
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.
Ž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 :-).