Tartalomjegyzék

< Linux

Hálózati megosztások

A hálózati fájlrendszerekről

SMB

Server Message Block szavakból. Egy fájlmegosztó protokoll, amely a helyi hálózaton lehetővé teszi állományok írását és olvasását egy távoli gépen. Azokat a könyvtárakat, amelyek elérhetők a távoli gépekről SMB-én keresztül megosztásoknak (angolul share) hívjuk.

CIFS

Common Internet File System szavakból. Az SMB egyik dialektusa. A Microsoft népszerű SMB protokoll megvalósítása.

Van különbség a SMB és a CIFS között? Egy CIFS kliens képes beszélni egy SMB szerverrel és fordítva is.

Manapság nem használunk CIFS-t megvalósítást csak az SMB-t. A Windows világában például a Windows Vista az SMB 2 szabványt használja. A Windows 8 és a Windows Server 2012 az SMB 3-at. A folyton frissülő SMB 2 és SMB 3 megvalósítások nem szeretik a helytelen elnevezéseket.

A Samba egy SMB megvalósítás, Unix rendszerekre, amit Andrew Tridgell kezdett írni. A Samba képes Windows kliensek számára Unix könyvtárak kiszolgálására SMB protokollon keresztül. A Samba több platformon is fut, köztük Linuxon.

NFS

A hálózati fájlrendszerek egyik képviselője az NFS. Az NFS a Networked File System szavakból van. Az NFS-t a Sun Microsystems hozta létre, lényegében ugyanazzal a céllal mint a SMB, de egy másik protokollal. Az NFS kliens nem képes beszélni egy SMB szerverrel.

CIFS megosztások Linuxon

SMB/CIFS megosztások csatolásához a cifs-utils csomag szükséges. (Régebbi rendszereken az smbfs csomag volt használatos.) A cifs-utils telepítése után a mount parancs paramétereként használható lesz a cifs típus is. A mount -t cifs helyett használhatjuk a mount.cifs parncsot is.

A következőket feltételezzük:

Az első megoldásban egy credentials nevű állományt fogunk használni. Hozzuk létre az állományt:

credentials
username=joska
password=titok
domain=sajatdomain
mount -t cifs //192.168.10.2/munka /home/joe/mnt -o credentials=credentials,uid=joe,gid=joe

A parancs magyarázata:

A credentials állomány a fenti esetben az aktuális könyvtárban kell legyen. Ellenkező esetben meg kell adni az útvonalat. A credentials állomány helyet, használható rejtett állomány is:

/home/joe/.credentials

A felhasználónév és a jelszó megadható -o paraméterében a username és a password értékeként:

mount -t cifs //192.168.10.2/munka /home/joe/mnt \
  -o username=joska,password=titok,uid=joe,gid=joe

Az opciók között megadható az átvitel kódolása is:

mount -t cifs //192.168.10.2/munka /home/joe/mnt \
  -o username=joska,password=titok,iocharset=utf8

Használható a mount.cifs parancs is:

mount.cifs //192.168.10.2/munka /home/joe/mnt \
  -o username=joska,password=titok,uid=joe,gid=joe

Ebben az esetben nem szükséges megadni a fájlrendszer típusát.

gvfs-mount

dbus-launch bash
gvfs-mount smb://user@192.168.5.2/pub

fstab

A hálózati megosztások beírhatók az fstab állományba, így rendszerindításkor a csatolásuk automatikusan megtörténik. A következőkben ezekre láthatunk néhány példát.

Vendégként elérhető megosztás

/etc/fstab
...
//server/munka   /mnt/data   cifs   defaults,uid=joe,gid=joe,guest   0   0

A guest opció hatására nem kér jelszót csatolási folyamat.

Azonosítás után elérhető megosztások

/etc/fstab
...
//server/munka   /mnt/data   cifs   defaults,uid=joe,gid=joe   0   0
/etc/fstab
...
//server/munka  /media/data  cifs  username=joska,password=titok,iocharset=utf8,sec=ntlm  0  0

Az fstab mindenki számára olvasható, ezért a jelszót és a felhasználónevet külön szokás tenni:

/etc/sambaUser
username=joska
password=titok

Állítsuk be, hogy csak a tulajdonos tudja olvasni:

chmod 600 /etc/sambaUser

Ezek után:

/etc/fstab
...
//server/munka   /mnt/data   cifs   credentials=/etc/sambaUser,rw,uid=joska   0   0
/etc/fstab
...
//server/munka  /mnt/data  cifs  credentials=/etc/sambaUser,noexec  0 0
/etc/fstab
//server/munka /media/data cifs credentials=/etc/sambaUser,iocharset=utf8,sec=ntlm 0 0 

Esetleg, adjuk meg a helyi gépen joska tulajdonába csatolódjon fel:

/etc/fstab
//server/munka  /media/data  cifs   uid=joska,credentials=/etc/sambaUser,iocharset=utf8,sec=ntlm   0       0

Csatolás később

Beállíthatjuk, hogy a felcsatolás ne rendszerindulás (boot) folyamata alatt történjen meg. Ehhez tegyük be a noauto opciót.

/etc/fstab
//server/munka  /media/data  cifs  noauto,credentials=sambaUser  0  0

Vegyük észre a noauto kapcsolót.

Csatolás rendszergazdaként:

mount /media/data

Csatolás felhasználóként:

/etc/fstab
//server/munka  /mnt/a  cifs  noauto,user,rw,credentials=sambaUser  0  0

Itt fontos, hogy az opciók között ne szerepeljen a defaults, ez konfliktusban áll a user opcióval. A user opció megengedi a felhasználók számára a csatolást. Bekerült még a rw opció, hogy írni is tudják a felhasználók a csatolt fájlrendszert.

Ezek után felhasználóként is kiadható mount parancs:

mount /media/data
A user opció bekapcsolja a noexec, nosuid és a nodev opciókat. Az opció hatására bármely felhasználó képes felcsatolni a megosztást.

Mount felhasználóként

mount.cifs

A mount parancsot csak a root használhatja (kivéve ha az /etc/fstab használjuk a user opciót). A távoli SMB megosztást viszont a felhasználó is jó ha tudja csatolni. Ehhez a mount.cifs parancsot fogjuk használni. Erre akkor lehet szükség, ha a felhasználó nem azzal a felhasználónévvel lép be a linuxos rendszerbe, amellyel eléri az SMB megosztást.

A példában egy janos nevű felhasználó számára állítjuk be a lehetőséget, a 192.168.10.2 IP című szerveren.

Szükség van egy bejegyzésre az /etc/fstab fájlban:

nano /etc/fstab

A fájl végére a következő sorokat vegyük fel.

//192.168.10.2/homes /home/janos/data  cifs   noauto,user  0 0

A felhasználó könyvtárában a data könyvtárnak léteznie kell.

A felhasználó ezek után így tudja csatolni a megosztását:

/sbin/mount.cifs //192.168.10.2/homes ~/data

A megosztás a gép leállításáig marad csatolva.

sudo

apt install sudo

Szerkesszük a sudo jogokat:

visudo

Hozzunk létre egy ilyen sort:

janos   ALL=(ALL) ,/sbin/mount.cifs,/bin/umount /home/janos/home
mkdir -p ~/home

Csatolás:

sudo mount.cifs //server/homes ~/home -o username=sambaUser

Leválasztás:

sudo umount ~/home

A sudo kombinálható az /etc/fstab szerkesztésével. Ebben a felállásban a felhasználó csak a /home/janos/home könyvtárat távolíthatja el.

smbclient

Az smbclient parancs használható a megosztások tesztelésére, de akár fájlok és könyvtárakkal való munkára is.

Információk a szerverről

smbclient -L //server -U joska

Kapcsolódás a pub megosztáshoz:

smbclient //server/pub -U joska

Jelszóval:

smbclient //server/pub -U joska%titok

Ha sikerült belépni ezt kell lássuk:

smb: \>

Kapcsolódás jelszó kérés nélkül:

smbclient -U GUEST //192.168.5.101/pub

Az smbclient néhány kapcsolója:

-N --no-pass
-B --browse
-A --authentication-file=fájl
-U --user=felhasználónév[%jelszó]

Fájlkezelés csatlakozva

Az aktuális könyvtár listázása a távoli szerveren:

Az aktuális könyvtár listázása a hely gépen:

A ! karakter minden parancs esetén használható. Hatására a parancs a helyi gépen hajtódik végre.

Szerveroldali másolás:

Több könyvtár és állomány fel- vagy letöltése szerverhez csatlakozva:

smb: > recurse
smb: > mput dir1
Put directory dir1? y
Put directory dir1/dir2? y
Put file dir1/f1.txt? y
putting file dir1/f1.txt as \dir1\f1.txt 0,0 kb/s) (average 0,0 kb/s)
Put file dir1/f2.txt? y
putting file dir1/f2.txt as \dir1\f2.txt 0,0 kb/s) (average 0,0 kb/s)
recurse

A recurse parancs hatására az l, ls és a dir parancs is rekurzívan működnek. Ha szeretnénk kikapcsolni, adjuk ki újra a recurse parancsot.

Másolás egyetlen menetben:

smb: \> prompt
smb: \> recurse
smb: \> mput dir1
putting file dir1/f1.txt as \dir1\f1.txt 0,0 kb/s) (average 0,0 kb/s)
putting file dir1/f2.txt as \dir1\f2.txt 0,0 kb/s) (average 0,0 kb/s)

A prompt parancs hatására, nem kérdez rá mit töltsön fel. Egyetlen menetben feltölti a dir1 könyvtár tartalmát.

PCManFM

A PCManFM grafikus alkalmazás, képes URL alapján Windows megosztások csatolására.

A PCManFM beviteli mezőjében egy URL-t kell megadni, amelyre a következő sor mutat példát:

smb://192.168.5.101/pub

Ezek után feldob egy ablakot az azonosításhoz:

(*) Kapcsolódás névtelenül
( ) Kapcsolódás felhasználóként:
  Felhasználónév:
  Tartomány:
  Jelszó:
(*) Jelszó azonnali elfelejtése
( ) Jelszó megjegyzése kijelentkezésig
( ) Megjegyzés örökre
            [Mégse] [Kapcsolódás]

A csatolt megosztás más programok számára a következő helyen érhető el:

/var/run/user/[uid]/gvfs

A háttérben a gvfs-mount ide csatolja fel automatikusan.

Készíthetünk egy linket a felhasználó könyvtárába:

$ ln -s /var/run/user/1000/gvfs /home/janos/Asztal/net

Irodalom