Hogyan oszthatunk meg könyvtárakat Linux és Windows rendszerek között

botond küldte be 2018. 11. 20., k – 14:28 időpontban

Az 1. oldal tartalma

 

Bevezető

Fontos, hogy egy hálózat számítógépei között oda-vissza működjenek a megosztások, beleértve ebbe Linuxos és Windowsos számítógépeket is egyaránt. Linux rendszerek közötti NFS alapú fájlmegosztásról már készítettem korábban egy másik leírást, de ahhoz hogy Linuxon készíthessünk olyan megosztásokat, amik Windows alól is elérhetők, vagy éppen a Linuxból szeretnénk elérni a Windows megosztásokat, ehhez most más eszközökhöz kell folyamodnunk.

Ebben a leírásban tekintjük át ezt a témakört az alapoktól lépésről lépésre, amit konkrét, működő példákkal követhetünk végig.

A példák kitérnek az alábbi szituációkra:

  • Debianon megosztott könyvtár elérése Windows 7 rendszereken.
  • Windows 7 rendszeren megosztott könyvtár elérése Debian rendszereken.
  • Megosztások oda-vissza kezelése Debian 8 és/vagy 9 verziójú operációs rendszerek között

Én Debian 8, Debian 9 és Windows 7 rendszereket használok az itthoni gépeimen, ezért ezeken tudom bemutatni a Samba megosztások beállításait működés közben.

 

 

A programcsomag telepítése és beállítása Debianon

Mielőtt bárminek nekiállnánk, mindig célszerű frissítenünk a tárolót és csomagjainkat (root-ként) a szokásos apt-get parancsokkal:

apt-get update
apt-get upgrade

Így biztosak lehetünk benne, hogy a disztribúciónkban lévő legfrissebb szoftverekkel dolgozhatunk.

Ezután telepítsük a Samba megosztások működtetéséhez szükséges csomagokat:

Samba szerver

Az alább telepítendő csomagok a Debianon (vagy bármelyik Debian  alapú disztribúción) létrehozandó "kimenő" megosztások működtetéséért felelősek:

apt-get -y install libcups2 samba samba-common cups

Ezek közül a libcups2 és a cups a hálózati nyomtatásért felelősek, ha nyomtatókat is szeretnénk megosztani.

Samba kliens

Ezek pedig ahhoz szükségesek, hogy a "kívülről érkező" megosztásokat tudjuk kezelni a Debianon:

apt-get -y install samba-client cifs-utils

Itt pedig a samba-client (vagy smbclient) az egyértelmű, a cifs-utils pedig biztosítja a különböző platformok között (Linux, Windows, OS X, stb) megosztott fájlrendszerek kompatibilitását.

Alapbeállítások

A csomagok telepítése után létre kell hoznunk a saját Samba beállító fájlunkat, amit a gépünkre, hálózatunkra kell szabnunk.

Először készítsünk egy mentést a gyári Samba konfigurációs fájlról, hogy megmaradjon szükség esetére (továbbra is rootként maradva):

mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

Ezután hozzuk létre a sajátunkat (pl a nano szerkesztővel):

nano /etc/samba/smb.conf

És tegyük bele a következő tartalmat:

[global]
    workgroup = WORKGROUP
    server string = Samba Server %v
    netbios name = SZAMITOGEP-NEVE
    map to guest = bad user
    security = user
    encrypt passwords = yes
    dns proxy = no

Ez az általános alapbeállítás a Samba szerver számára, ahol a sorok jelentése a következő:

  • workgroup: Ez a hálózatunk munkacsoportja. Optimális esetben minden számítógépen ugyanaz van beállítva például egy otthoni hálózaton. A Windowsban alapértelmezetten ez a "WORKGROUP". Tehát ha nem állítottuk el a többi gépen, akkor ez így jó is.
  • server string: Részletes leírása a gépnek. Pl Windowsból a Network Neighborhood panelen jelenik meg a részleteknél.
  • netbios name: A számítógép hálózati neve. Itt adjuk meg a pontos számítógép nevet, amit telepítéskor adtunk a gépnek. (A hostname paranccsal is kiiratható)
  • map to guest: Vendég hozzáférés szabályozása. Ha nem tervezzük a vendég hozzáférést a megosztásokhoz, akkor vegyük ki ezt a sort, vagy állítsuk "Never" opcióra (ez az alapértelmezés is)
  • security: Ezzel szabályozthatjuk, hogy a hitelesítés felhasználói alapon menjen-e ("user" beállítás), vagy a megosztásokhoz külön hozzárendelt jelszavakkal ("share" beállítással).
  • encrypt passwords: Titkosítsa-e a jelszavakat a hálózaton történő küldözgetéskor
  • dns proxy: Ha használunk DNS Proxy szervert, akkor itt kell bekapcsolni. Egyébként hagyjuk így.

Persze van még sok más beállítása is a Samba szervernek, de ennyi elegendő a működéséhez.

Mentsük le a fájlt, majd indítsuk újra a Samba daemonját a systemctl segítségével:

systemctl restart smbd.service

Ezennel tehát felkészítettük Linux rendszerünket a megosztások kétirányú működtetéséhez. Már csak létre kell hoznunk az első megosztásunkat.

 

 

Samba megosztás létrehozása Debianon

Hozzunk létre valahol egy könyvtárat, amit meg szeretnénk osztani.

A teszt kedvéért a laptopomon a felhasználóm alatt (saját felhasználóval) létrehoztam egy "Megosztás" nevű könyvtárat, és benne két teszt fájlt:

Samba megosztás Debianon - Teszt könyvtárstruktúra

Én most ezzel fogom bemutatni a megosztást, persze bármilyen könyvtárral lehet kísérletezni.

Nyissuk meg root-ként újra a korábban szerkesztett Samba konfigurációs fájlt:

nano /etc/samba/smb.conf

És fűzzük a fenti alapbeállítások után a következő részt:

[Megosztás]
    path = /home/botond/Megosztás
    create mask = 0644
    directory mask = 0755
    read only = no
    browsable = yes
    writable = yes
    valid users = botond
    map archive = no

Itt a sorok jelentése a következő:

  • [Megosztás]: Ez lesz a megosztásunk neve. Én most pont ugyanazt a nevet adtam meg, mint ami a megosztandó könyvtáram neve, de bármi más is megadható. Ez fog megjelenni a hálózaton a tallózáskor.
  • path: A megosztani kívánt könyvtár elérése.
  • create mask: A megosztott könyvtárban létrehozott fájlok jogosultsági maszkja. Ezzel a beállítással tehát 0644-es jogosultsággal fognak létrejönni a távoli gépről újonnan létrehozott fájlok.
  • directory mask: Ugyanez a távolról létrehozott alkönyvtárakkal.
  • read only: Csak olvasható-e a megosztás
  • browsable: Lehet-e böngészni, keresni a megosztott könyvárban, vagy csak "látatlanban" lehessen hozzáférni az ismert nevű fájlokhoz/alkönyvtárakhoz.
  • writable: Ez is az írhatóságot jelöli. A Samba egyes verzióiban az egyik, a másikban a másik kapcsoló került használatba, így a kompatibilitás megőrzése végett célszerű mindkettőt alkalmazni, és persze úgy, hogy ne ütközzön a két beállítás.
  • valid users: Érvényes felhasználók, akik hozzáférhetnek a megosztáshoz. Természetesen ettől függetlenül érvényben vannak a Linux rendszerében lévő jogosultságok is. Így azokat is ehhez kell állítani. Például ha egy közös megosztásról van szó, akkor több felhasználó is használhatja, stb.
  • map archive: Alapértelmezetten, ha a Samba megosztásban lévő fájlokat Windows rendszerek alól módosítják, akkor a fájlokról elvesznek a futtatható bitek a tulajdonosi részekről, mert a Windows rendszerek másképpen kezelik a fájl attribútumokat. Ezzel a beállítással kiküszöbölhetjük ezt az effektust. Tehát ha olyan megosztásról van szó, ami például shell script-eket tartalmaz, és nem szeretnénk elveszíteni róluk a futtatási jogokat, akkor használjuk ezt a "no" beállítást. Más esetekben nincs jelentősége. (bekerült: 2019-03-12)

Mentsük le, majd indítsuk újra a Samba daemont ismét:

systemctl restart smbd.service

Samba felhasználó létrehozása

A megosztáshoz való hozzáféréshez még létre kell hozni egy Samba felhasználót is. Ezek a felhasználók egy külön, a Samba által kezelt adatbázisban kerülnek tárolásra.

Erre a műveletre az smbpasswd parancs szolgál. Hozzuk tehát létre (a Linux rendszerben is létező felhasználó számára) a Samba felhasználót és jelszavát:

smbpasswd -a <felhasználónév>
Itt fontos tudni, hogy a paranccsal csak olyan Samba felhasználók hozhatók létre, akik már léteznek a Linux rendszerben. Tehát ha egy új Samba felhasználót szeretnénk létrehozni, akkor először a rendszerben létre kell hozni a rendes felhasználót az useradd paranccsal. Ellenkező esetben az smbpasswd parancs a "Failed to add entry for user <felhasználónév>." hibaüzenetet adja.

 

Ennek megfelelően én létrehoztam a saját felhasználóm számára egy Samba felhasználót:

smbpasswd -a botond

Itt is ugyanazt a jelszót adtam meg, mint amit a rendszerbe lépésnél használok, így elkerülhetem a keveredéseket. Persze más jelszó is megadható a Samba megosztásokhoz.

Samba felhasználók listázása

Ha netán elfelejtettük a Samba felhasználókat, akkor az alábbi paranccsal listázhatjuk ki őket:

pdbedit -L -v

A pdbedit parancs kezeli a Samba felhasználók adatbázisát, így sok mindent tehetünk a rekordokkal.

Most már teljesen készen állunk a hálózatról történő hozzáférésre.

 

 

Samba megosztás tesztelése

Ha olyan helyzetben lennénk, hogy éppen nem áll rendelkezésre másik számítógép ahonnan ki lehetne próbálni a megosztott könyvtárunkat, akkor lehetőségünk van ugyanebből a rendszerből is tesztelni a Samba megosztást. Ehhez terminálból (bármilyen felhasználóval) használjuk az smbclient parancsot:

smbclient -U <Samba felhasználó> //<hoszt>/<Megosztás>

Ekkor bekéri a Samba felhasználóhoz megadott jelszót, majd beadja az SMB promptot, ahol tudunk lépkedni a megosztásban, stb. Tehát ha eddig mindent jól csináltunk, akkor valami ilyesmit láthatunk a terminálban:

Samba megosztás tesztelése parancssorból

Így már teljesen biztosak lehetünk benne, hogy a megosztásunk működik.

A leírás következő oldalán pedig csatlakozni fogunk ehhez a megosztáshoz Windows rendszerből.

 

Lapozó

Ez a leírás több oldalból áll: