A Samba megosztás beállítása talán a legjobb módszer a Debian 6 fájlrendszerének a Windows rendszerből eléréséhez, mivel a mögötte álló SMB protokollt már nem kell bemutatni a Windowsnak. Nincs szükség semmilyen speciális kliensszoftver használatára. A Debian 6 telepítésekor pedig a szervert is egy kattintással telepítésre jelölhetjük, vagy akár utólag is feltehető.
Ebben a fejezetben a Samba 3.5.6 fájlmegosztások alapvető beállításait mutatom be két megosztás elkészítésén keresztül.
Tartalomjegyzék
- Szerver telepítése
- Konfiguráció
- Megosztás felcsatolása Windows 7-ben
- Samba kliens Debian 6-on
- Megosztás felcsatolása Debian 6-ban
- Összefoglalás
- Források
- Ajánlott linkek
Szerver telepítése
A telepítése már az operációs rendszer telepítésével együtt is történhet, ahogy azt a Debian 6 telepítése VirtualBox 4.2-ben című fejezetben mutattam is.
Ha kimaradt volna, a következő paranccsal pótolható:
Konfiguráció
A konfigurációs fájl a "/etc/samba/smb.conf" lesz. A home könyvtárak már alapértelmezetten megosztottak a tulajdonosaik számára, de további könyvtárakat és a beléptethető felhasználókat külön kell engedélyezni.
Felhasználó engedélyezése
Két felhasználót engedélyezzünk. A "web" és a "root" felhasználókat. A következő módon a debian felhasználói közül választhatunk. Jelszót viszont külön be kell gépelni, ami eltérhet a rendszerjelszótól. Én a teszt virtuális géphez itt is a "password" jelszót adom meg, de ennél azért biztonságosabbat ajánlott éles környezetben.
smbpasswd -a web
Ezek után akár már a hálózati helyek között rá is kattinthatnánk a "SERVER" nevű helyre. Ahol már be lehetne lépni a home könyvtárba. Ezen kívül viszont hozzunk létre két megosztást!
vhosts megosztás
Elsőként a "web" felhasználónak elérhetővé tesszük a "/var/www/vhosts" könyvtárat, mert a saját home könyvtárán kívül itt vannak olyan jogai, ahol garázdálkodhat. Az egyes virtuális hosztokhoz egyenként is lehetne megosztást készíteni, de most ez is tökéletesen megteszi.
A "/etc/samba/smb.conf" fájl legvégére illesszük be a következőt!
path = /var/www/vhosts
writeable = yes
browseable = yes
valid users = web
- [vhosts]: A megosztás neve. A szögleges zárójelben levő néven jelenik meg majd a megosztások listájában. Ilyen mappanéven láthatjuk majd a fájlkezelőben.
- path: A megosztandó könyvtár útvonala
- writeable: Ha "yes", akkor a megosztott könyvtár írható lesz. Ha "no", akkor csak olvasható. A első "e" elhagyható. "writable"
- browseable: Ha "yes", akkor a hálózati helyet lenyitva szerepelni fog a listában a megosztás. Ha "no", akkor csak a megosztás nevét ismerve lehet megnyitni a könyvtárat. Például Windows Explorerben beírva a "\\SERVER\vhosts" útvonalat. Ilyen a "homes" megosztás, ami mindenkinek a saját home könyvtárát tartalmazza. Az opció nevéből az első "e" elhagyható: browsable.
- valid users: Alapesetben mindenki hozzáférhet egy megosztáshoz. A "valid users" opcióval megadhatjuk azokat a felhasználókat szóközökkel elválasztva, akik elérhetik a könyvtárat.
A samba szerver újraindítása után elérhető lesz a megosztás a web felhasználóval. Ez nagy könnyebbséget jelent a weboldalak programozásánál. A rendszerfájlokhoz viszont nem férünk hozzá a "web"-bel. Készítsük el a root hozzáférést a szerver gyökérkönyvtárához!
root megosztás
path = /
writeable = yes
browseable = yes
valid users = web root
force user = root
Újdonság a "force user", ami után egy felhasználónevet kell írni. Ennek a felhasználónak a nevében fog történni minden művelet. Azaz hiába a "web" felhasználóval lépünk be, a szerveren a "root" fog dolgozni. Ezt nem csak a "root"-tal lehetne megtenni, hanem bármely más felhasználóval.
Másik módja a root jog megszerzésének, hogy admin felhasználókat állítunk be.
Ekkor viszont a "web" felhasználóval dolgozva a fájlok a "web" csoporttal jönnének létre, de a "root" tulajdonossal.
Van mód a csoport kikényszerítésére is. A "force user" használatával alapértelmezetten a felhasználó elsődleges csoportjával dolgozhatunk. A "force group" opcióval viszont eltérő csoport is megadható.
Akkor jó, ha valahol lényeges a csoport is. Ilyenkor lehet több megosztást készíteni különböző kényszerített csoporttal és felhasználóval.
A fájlok jogosultságait is ki lehet kényszeríteni. Alapértelmezetten a mappák 0755, míg a fájlok 0744 joggal jönnek létre. Kivéve a home könyvtárakat, ahol 0700 az alap jogosultság. Szükség esetén egy megosztáshoz a "create mask"-kal a fájlok alap jogosultságait lehet megadni, a "directory mask" pedig a könyvtárak létrehozásakor adandó jogokért felelős.
directory mask = 755
Megjegyzések
További opciók
Ennyi beállítás elég is lehet. A linux parancssorból a
utasítással lehet tanulmányozni a többi lehetőséget. Vagy akár online dokumentációt is lehet olvasni. Akkor viszont figyelni kell a verziókra.
Rejtett fájlok
Azt még fontos tudni, hogy linuxon a ponttal kezdődő fájlok és mappák rejtettnek számítanak. Így például egy ".htaccess" samba megosztáson keresztül Windowsból sem látható, ha nincs bekapcsolva a rejtett fájlok megjelenítése ( Tools » Folder options » view » Advanced Settings » Files and Folders » Hidden files and Folders » Show hidden files, folders and drives ). Ez a viselkedés felülbírálható a "hide dot files" opció "no"-ra állításával.
Speciális szekciók
Egyes szekcióknak speciális jelentése van. Ilyen a "[global]", ami minden megosztásra érvényes beállításokat tárol. Ha a "hide dot files"-t például itt adjuk meg, akkor mindenhol kikapcsolható a ponttal kezdődő fájlok és mappák elrejtése. Ha a saját "[vhosts]" szekcióban állítjuk be, akkor csak ott lesz érvényes a szabály.
Jogosultságok állítása
A jogosultságokat Windowsból is lehet állítani a fájlon vagy könyvtáron jobb egérgombbal kattintva, majd a "properties" menüben a "Security" fülön. A mappák esetében viszont a Windows 7 nem látja a jelenlegi jogokat. Állítani viszont tudja. Linux parancssorból leellenőrizhető. A fájlokkal már könnyebben boldogul. Ott a jelenlegi jogok is rögtön látszanak.
Eltűnt hálózati helyek
Előfordulhat olyan is, hogy a virtuális gép megosztásai elfedik a saját hálózat megosztásait a hálózati helyek listájában. Kézzel megadott útvonallal továbbra is lehet rájuk hivatkozni.
A virtuális gépnél a következők is segíthetnek a megoldásban:
Host-only hálózat esetén, ha a virtuális gép samba szervere azonos munkacsoportban van, mint a gazda gép, az egyiket helyezzük más munkacsoportba! A szerveren az smb.conf elején a global szekcióban van a "workgroup" opció. Alapértelmezett értéke WORKGROUP Ezt megváltoztatva megszűnhet a probléma a samba újraindításával.
A Windows munkacsoportjának megváltoztatásához lépjünk be a "Start » Computer » System properties » Computer name, domain and workgroup settings" -hez navigálva a "Change settings" menübe! A megjelenő ablakban a "To rename this computer or change its domain or workgroup, click Change. felirat melletti "Change" gombra kattintva egy újabb ablakban a "Worgroup" mezőben lehet átírni a csoportot. Utána újra kell indítani a gépet.
Megosztás felcsatolása Windows 7-ben
Egy Samba megosztás felcsatolható egy betűjellel ellátott meghajtóként is, vagy akár egy konkrét könyvtárba is. Egy samba megosztást más programok is képesek megnyitni a hálózati helyeken keresztül. Nem úgy, mint az SSHFS-nél történt. Ettől függetlenül hasznos lehet felcsatolni a könyvtárakat, ha például nincsenek listázva automatikusan. Vagy más okból kell, hogy egy konkrét könyvtárban legyenek.
Felcsatolás meghajtóként
Válasszuk ki a megosztást és kattintsunk rá jobb egérgombbal! A "Map network drive..." menüt választva rendelhetünk betűjelet a megosztáshoz. A "Reconnect at logon" bejelölésével legközelebbi bejelentkezéskor is megmaradnak a meghajtók. A "root" megosztást én "R", a "vhosts" megosztást "V" meghajtóként csatoltam fel. Mindenki válassza a neki tetszőt! És persze ami elérhető.
Felcsatolás mappába
Ehhez meg kell nyitni a Windows parancssort. (Start, keresés CMD-re) Más néven "Windows Command Processor". Jobb egérgombbal kattintsunk az ikonra! Majd "Run as Administrator". Tehát "Futtatás rendszergazdaként". A parancssorban navigáljunk oda, ahova fel szeretnénk csatolni a könyvtárakat. Vagy teljes elérési útvonalt is meg lehet adni a létrehozandó szimbolikus linkeknek.
mklink /d "D:\samba\server\root" "\\SERVER\root"
mklink /d "D:\samba\server\web" "\\SERVER\web"
Első paraméter a "/d". Ez mondja meg, hogy könyvtárra mutató linket hozunk létre. Második a link útvonala. A samba\server könyvtárnak előre léteznie kell. A vhosts, root és web linkeket az mklink hozza létre. Ne hozzuk tehát létre előre könyvtárként őket! A harmadik paraméter a felcsatolandó könyvtár. Dupla backslash után a megosztást biztosító szerver neve, majd a megosztás neve.
A linkeket normál felhasználóval is lehet törölni. Létrehozni viszont csak adminisztrátorral.
Samba kliens Debian 6-on
Az smbclient programmal parancssorból lehet nézelődni a megosztások között, illetve belépni valamelyikre.
Elérhető megosztások listázása
Itt a "server" a gépnév. Windows 7-ben a gépnevet a "Start » Computer » System properties" menüben lehet megnézni. Debian 6-ban pedig a /etc/hostname fájl tartalmaza. De alapértelmezetten belépés után a promptnak is része. A "-U" után pedig a felhasználó neve jön.
Választott megosztás böngészése
A jelszó megadása után az új promptból a szokásos "exit" utasítással lehet kilépni.A "help" utasításra pedig a további elérhető parancsokat láthatjuk.
Megosztás felcsatolása Debian 6-ban
Rendszerindulás után
Adminként nincs gond. A következő utasítással felcsatolhatjuk a megosztást:
Itt IP-t adunk meg, mert a mount nem ismeri fel a hálózati hely nevét, hacsak a hosts fájlban vagy a névszerveren be nem állítjuk.
Az uid és a gid a kliensoldali felhasználó uid-je és csoport azonosítója. Így az ő nevében lesz a könyvtár felcsatolva.
A lecsatolás pedig
Ezeket viszont normál felhasználóként nem tehetjük meg alapértelmezetten.
Rendszerindításkor
A virtuális gépnél ennek csak úgy van értelme, ha a szerveren csatoljuk fel a gazda gép egy megosztását, mivel fordított esetben a virtuális gép még nem futna. Így a Users megosztáson mutatom be a példát.
A "/etc/fstab" fájlba rootként a következőt kell írni:
A credentials opció után írt fájlt viszont létre kell hozni 0700 jogokkal. Illetve az mnt/smb mappát is. De ott nem kell jogot állítani.
mkdir /home/felhasznalo/.smbcredentials
touch /home/felhasznalo/.smbcredentials/server.web
chmod -R 0700 /home/felhasznalo/.smbcredentials/
A "/home/felhasznalo/.smbcredentials/server.web" fájl tartalma pedig a következő
password=password
Itt az első "password" a jelszó változó neve. Én viszont a "password" jelszót használom a virtuális gépen a web felhasználóhoz is.
Ezzel legközelebbi rendszerindításkor már felcsatolódik automatikusan a meghajtó.
Osszefoglalás
A Windows alapból felismeri a megosztásokat a hálózatban. Debianra pedig gyerekjáték a samba szerver telepítése. Bár rengeteg opciója van, egy nagyon alap szinten könnyű könyvtármegosztásokat készíteni.
Windows 7-ben a felajánlott megosztásokat bármelyik program tudja olvasni, de még nagyobb kényelemi és praktikussági okokból betűjellel ellátott meghajtóként, de akár egy választott mappába is felcsatolhatjuk a megosztást.
Linuxon ugyan nincsenek a Windowsban megszokott meghajtók, de bármelyik könyvtárba felcsatolható egy megosztás. Szükség van viszont root jogokra.
Akár rendszerindításkor is felcsatolható automatikusan egy megosztás. Hálózati probléma esetén viszont lassíthatja a betöltést.
Habár a fájlok jogait valamilyen szinten kliensoldalról is lehet módosítani, azért a terminállal továbbra is barátságban kell maradni. Sok munkát megkönnyít így is egy ilyen megosztás. Windows klienshez (gazda géphez) pedig ideális választás lehet.
A Samba már a 4-es verziónál tart jelenleg. A Debian 6 tárolóból viszont a 3.5-ös telepíthető. A verziók között az egyes opciók használata változhat, amiről érdemes az aktuális dokumentációban tájékozódni.
Végül pedig, hogy el ne veszítsem a jó kis megosztásaimat, elmentem a virtuális gépet "wtk-vm1-v12-samba" néven.
Források
- Samba Server Configuration in Debian
- File Server Configuration in Debian Using Samba
- How to mount a network drive to a folder?
- Server Message Block
- Samba/SambaClientGuide
Hozzászólások
Sambával csinálok
Sambával csinálok fájlmegosztást, és authentikáció nélkül már sikerült, de azt szeretném megkérdezni, hogy hogyan lehet úgy beállítani a hálózati mappát, hogy a windows kliensen felhasználónevet és jelszavat kelljen megadni az eléréshez, de a windows klienseket ne kelljen tartományba léptetni.
Előre is köszönöm a segítséget!
Én ugyan csak virtuális gépen
Én ugyan csak virtuális gépen állítgattam samba-t és azt sem profi szinten, de a letölthető virtuális gépen a felhasználókat külön hozzáadtam a samba-hoz.
Ennyi a konfiguráció:
Link: smb.conf
Alul vannak a megosztások. Nincs nagyon speciális beállítás. De kér jelszót.