| Siec TCP/IP || Otoczenie Sieciowe || Poczta || Usnet || FTP || Konto Shellowe || Czat || IRC || Serwer PROXY |
Montowanie Dysków Sieciowych - Samba/Unix W dużym uproszczeniu to co w systemach Windows nazywa się mapowaniem dysków sieciowych to w systemach typu Samba/Unix jest w montowaniem. Po części różnica wynika z innej nomenklatury nazewnictwa w tych systemach, a po części z innego podejścia do "problemu". Większość programów omówionych w dziale Programy do przeglądania sieci SMB - Samba-Unix, korzysta w rzeczywistości z montowania dysków, wiec poniższy opis byłby powielaniem tamtego przeglądu. Ale w systemach opartych na rozwiązaniu Samba/Unix sprawa się jeszcze trochę komplikuje gdyż istnieje szeroka gama rozwiązań uniksowych, z których każdy posiada swoje jakieś odmienne cechy m.in. w obsłudze sieci SMB, a w szczególności w montowaniu dysków sieciowych. Z tych względów opisze tutaj tylko komendy wiersza poleceń/konsoli, gdyż mimo mnogości programów korzystają one właśnie z tych rozwiązań. Opis zostanie podzielony na dwie części, czyli Linux oraz systemy *BSD. Razem stanowią one obecnie chyba większość używanych systemów uniksowych. Linux Obsługa SMBFS/CIFS System Linux potrafi zamontować dysk sieciowy SMBFS/CIFS w sieci SMB (Microsoft Networks) pod warunkiem że jest zainstalowany pakiet Samba oraz że w używany kernel (jądro systemu) obsługuje SMBFS/CIFS, czyli albo ma wkompilowane na stałe lub jako moduł (wtedy trzeba go załadować). Oczywiście w większości popularnych dystrybucji nie powinieneś na standardowym kernelu otrzymać komunikatu w stylu "smbfs filesystem not supported by the kernel", gdyż taka obsługa zazwyczaj już jest. Jeśli sam będziesz przygotowywał kernel Linuksa, po włączeniu np. make menuconfig, będziesz musiał wybrać odpowiednie opcje. Opis opcji w kernelach od 2.2 (a właściwie od 1.3 i 2.0), poprzez 2.4, aż do 2.6 został opisany poniżej. W kernelu 2.2 i wcześniejszych czyli 2.0 i 1.3 (ktoś w ogóle tego jeszcze używa) obsługę sieciowego systemu plików SMB można włączyć poprzez: Filesystems ---> Network File Systems (kernel 2.2) --->
W kernelu 2.4 obsługę sieciowego systemu plików SMB można włączyć poprzez: File systems ---> Network File Systems --->
W kernelu 2.6 obsługę sieciowych systemów plików SMB i CIFS można włączyć poprzez: File systems ---> Network File Systems --->
UWAGA: CIFS jest rozszerzaniem SMB obsługiwane przez Sambe od wersji 3.0 ( w Linux 2.6 i opcjonalnie 2.4) oraz przez Windows od wersji 2000 i późniejszych w tym XP, 2003, Vista i NT 4.0. Ograniczona obsługa CIFS jest zaimplementowana w Windows ME i OS/2. CIFS (Common Internet File System) jest sukcesorem po SMB (Server Message Block), gdzie dodano m.in. rozszerzenia i usprawnienia typu DFS, oplock, wspracie dla dużych plików, opcjonalne podpisywanie pakietów, nawiązywanie sesji per-użytkownik, wsparcie dla Unicod i wiele innych związanych z internacjonalizacją. O CIFS w systemie Linux możesz poczytać pod tym adresem - http://us1.samba.org/samba/Linux_CIFS_client.html, natomiast specyfikacja CIFS dostępna jest na tej stronie - http://www.snia.org/tech_activities/CIFS.
Montowanie i odmontywanie zasobów SMBFS/CIFS Montowanie z wiersza poleceń (w terminalu) zasobów SMBFS/CIFS wykonujemy w następujący sposób:
Zamiast używać komendy mount/umount -t smbfs, możesz po prostu użyć komendy smbmount/smbumount, co jest równoznaczne gdyż mount/umount w tym wypadku do niej się odwołuje. Naprawdę sytuacja jest nieco ciekawsza gdyż dokładna ścieżka odwołań wygląda następująca w przypadku smbfs:
W przypadku cifs powyższa historia nie jest już aż tak pasjonująca gdyż wywołanie komendy mount/umount -t cifs najzwyczajniej w świecie wywołuje tylko komendę mount.cifs. Po prostu nuda i banał w porównaniu z smbfs. Jeśli
chcesz żeby mógł to wykonać zwykły użytkownik zainteresuj się pakietem sudo (www.courtesan.com/sudo).
Aby nadać możliwość
montowania udziałów smbfs, przez zwykłych użytkowników, można pobawić się
z uprawnieniami do smbmnt: W nowszych dystrybucjach systemu Linux odchodzi się od używania SMBFS na rzecz CIFS. Warto zatem na nim realizować szczególnie połączenia miedzy systemami je obsługującymi czyli Samba 3.0/Linux 2.6 a Windows 2000/XP/2003. Owe połączenia to oczywiście montowanie zasobów poprzez CIFS, a konkretnie komendę mount.cifs. Składnia komendy mount.cifs jest podobna do smbmount z pewnymi różnicami w nazwach opcji. Dodatkowo została owa komenda rozszerzona o cechy charakterystyczne dla CIFS jak choćby listy kontroli dostępu ACL. Zamiennie z komendą mount.cifs możesz oczywiście używać komendy mount -t cifs. Najpopularniejsze opcje komend smbmount/mount.cifs zostały wyjaśnione poniżej:
Wszystkie opcje komendy smbmount są dostępne oczywiście na odpowiedniej stronie manuala dostępnej w twoim systemie poprzez man smbmount, dodatkowo warto zerknąć na man smbmnt. Oczywiście lektura man mount.cifs jest też zalecana, choćby na stronie www - http://us1.samba.org/samba/docs/man/manpages-3/mount.cifs.8.html. FSTAB Plik konfiguracyjny fstab (file systems table) występuje w systemach operacyjnych UNIX i innych systemach jemu pokrewnych. W owym pliku znajdującym się z reguły w katalogu /etc, są zapisane informacje o dyskach, partycjach i systemach plików w naszym systemie operacyjnym i z jakimi opcjami owe systemy plików maja być montowane oraz czy ma się to dziać przy starcie systemu. Czyli są tam zawarte wszystkie informacje aby za każdym razem, gdy chcemy zamontować choćby "ręcznie" jakiś system plików nie wpisywać "robaczka" komendy mount. Plik /etc/fstab składa się z pięciu kolumn z których każda określa:
Wpis w pliku /etc/fstab dla systemu plików SMBFS może wyglądać tak jak poniżej:
Teraz żeby zamontować te udziały wystarczy wpisać mount //komp/udzial. Aby odmontować dany zasób smbfs należy użyć komendy smbumount /mnt/mountpoint lub ciut krócej umount/mnt/mountpoint, można też poprzez odwołanie nie miejsca montowania ale tego co zamontowaliśmy jeśli jest wpisane w /etc/fstab czyli umount //komp/udzial. Zauważ że cały proces montowania i odmotowywania musisz wykonywać jako root. Niestety montowanie za pomocą fstab ma tez swoje wady. O ile jest to bardzo wygodne rozwiązanie dla lokalnych systemów plików, które są z reguły zawsze dostępne to przy sieciowych systemach plików jak SMBFS/CIFS już tak zawsze nie jest. Dany zasób sieciowy SMBFS/CIFS, może przestać być dostępny i gdy mamy go zamontowanego, nasz system zacznie wyrzucać błędy, ponawiać próby montażu i tak przez bardzo długi czas zanim uda nam się ów zasób odmontować. Jest to scenariusz dość częsty i niestety denerwujący. Kolejna wada montowania poprzez fstab, jak i ręcznego, to trzeba posiadać prawa root do owej operacji montowania. Dodatkowo te same prawa root trzeba posiadać aby dodać kolejny wpis do fstab, gdy np. zechcemy dodać kolejny zasób sieciowy do naszego systemu. Jak widać powyższe metody montowania nie bardzo przystają do dynamicznie się zmieniających zasobów sieci, gdzie dodatkowo zwykły użytkownik sam chciałby montować zasób SMBFS/CIFS jaki właśnie znalazł w sieci. Właśnie miedzy innymi z tych powodów stworzono coś takiego jak autofs. AUTOFS Lepszą metodą aby montować zasoby sieciowe zamiast używania fstab jest użycie demona autofs. Po pierwsze wtedy nam niestraszne przerwy w dostępne do montowanego zasobu sieciowego. Po drugie można montować nawet dowolny zasób na żądanie. Autofs jest demonem automatycznego montowania różnych systemów plików lokalnych i sieciowych, czyli wszystkiego co jest obsługiwane poprzez komendę mount. Jego zalety poznajmy przy ciągle zmieniających się zasobach np. przy CDROMach, różnych zabawkach na USB no i oczywiście przy sieciowych systemach plików tj. NFS i SMBFS/CIFS. Demon autofs jest narzędziem w przestrzeni użytkownika, wymagana jest dodatkowo obsługa automountera w kernelu (domyślnie w 2.6). Autofs czyta swoja konfiguracje z tzw. "map" czyli plików z konfiguracją. Główny plik konfiguracyjny to /etc/auto.master, w którym znajdują się odwołania do plików konfiguracyjnych ze zdefiniowanymi zasobami do montowania, a przede wszystkim /etc/auto.misc. Wystarczy teraz w pliku /etc/auto.misc dodac swój wpis do montowania konkretnego zasobu CIFS: komp -fstype=cifs,rw,noperm,user=użytkownik,pass=hasło ://komp/udzial Gdy chcesz ukryć hasło, należy wykorzystać do tego oddzielny plik: komp -fstype=cifs,rw,noperm,credentials=/root/secret.txt ://komp/udzial Jak widać autofs, przyjmuje dokładnie takie same opcje montowania (-fstype) jak komenda mount. Jeśli zamiast nazwy komputera chcesz podać jego adres IP, dodaj wpis wins w opcji hosts w pliku /etc/nsswitch.conf. Teraz aby uzyskać dostęp do owego zasobu udział, czyli go zamontować, wystarczy wejść w katalog /misc/komp. Oczywiście jeśli jako punkt montowania w pliku /etc/auto.master dla /etc/auto.misc, jest zdefiniowany katalog /misc. Aby to sprawdzić, wystarczy zajrzeć do pliku /etc/auto.master i poszukać wpisu "/misc /etc/auto.misc". Powyższa metoda jest wygodna ale tylko dla ograniczonej liczby zasobów. Wyobraź sobie teraz sieć z nieograniczoną liczbą zasobów lub po prostu z ciągle zmieniającymi się zasobami. Czyli różne komputery się włączają, różni użytkownicy cos tam udostępniają, innym razem coś innego chcą udostępnić i tak bez przerwy udostępniane jest ciągle coś innego. Wtedy można załatwić cała konfiguracje nadzwyczaj prosto. Wystarczy stworzyć ogólny wpis udostępnionego zasobu. Czyli po kolei:
Jak widać szczególnie po ostatnim przykładzie autofs potrafi ułatwić życie. BSD Systemy z rodziny BSD czyli m.in. NetBSD, FreeBSD, Mac OS X, Darwin, nie obsługują znanego z systemu Linux sposobu na montowanie udziałów udostępnionych w sieci SMB (Microsoft Networks) do lokalnego systemu plików przez komendy "smbmount" i "smbmnt" z pakietu Samba. W systemach BSD za montowanie zasobów SMB odpowiada komenda mount_smbfs. Z jakiś powodów tylko OpenBSD nie obsługuje mount_smbfs i trzeba się w nim posiłkować programem Sharity. mount_smbfs Komenda mount_smbfs pełni dokładnie taką samą rolę w systemach BSD czyli m.in. NetBSD, FreeBSD, Mac OS X, Darwin, jak w systemie Linux komenda smbmount. Montowanie zasoby smbfs przy pomocy mount_smbfs wykonujemy tak:
Najpopularniejsze opcje komendy mount_smbfs zostały wyjaśnione poniżej:
Opis wszystkich opcji komendy znajdziesz na stronach podręcznika mount_smbfs, dostępnych w twoim systemie za pomocą komendy man mount_smbfs oraz pod tym adresem http://www.hmug.org/man/8/mount_smbfs.php. Komenda ta została opisana również w dziale Użycie plików .nsmbrc i nsmb.conf Montowanie udziałów SMB wymaga
wpisywania za każdym razem jeśli to potrzebne szeregu danych typu nazwa
użytkownika, hasło, grupa robocza. Jest to nużące ale można sobie uprościć życie
przy użyciu pliku .nsmbrc, który będzie zawierać te dane. Plik .nsmbrc
jest standardowym plikiem przechowującym hasła dostępu dla komendy
mount_smbfs, obecnej w systemach BSD
czyli m.in. NetBSD, FreeBSD, Mac OS X, Darwin. Utwórz w swoim
katalogu domowym plik .nsmbrc o prawach dostępu na poziomie systemu plików 0600
(komenda chmod). Owe prawa dają możliwość odczytu tylko właścicielowi pliku,
jest to bardzo ważne gdyż plik ten zawiera hasła dostępu do zdalnych zasobów.
Format pliku ~/.nsmbrc jest następujący: W pierwszej linii w nawiasach kwadratowych masz po kolei nazwę NetBIOS komputera zdalnego KOMP, nazwę użytkownika USER oraz nazwę udziału jaki będziesz montował. W następnych liniach jest adres IP komputera KOMP, hasło dostępu dla danego użytkownika USER oraz grupa robocza WARIACI. Następnie o wolnym wierszu możesz w pliku nsmbrc dodać następną grupę. Kolejnym ciekawym plikiem jest nsmb.conf znajdujący się standardowo w katalogu /etc. Jest to globalny plik ustawień dla żądań SMB przekazywanych z programów smbutil i mount_smbfs jak i montowań SMB Findera z Mac OS X. Możemy w tym pliku ustawić globalnie opcje dla połączeń SMB. Plik /etc/nsmb.conf może zawierać sekcje [default] gdzie definiujemy globalne parametry montowań SMB oraz trzy rodzaje sekcji zawierających spersonalizowane względem danych serwerów parametry montowań SMB. Owa personalizacja parametrów względem danych serwerów odbywa się poprzez odpowiednie nazewnictwo owych sekcji w poniższym stylu.
Oczywiście nazwę SERVER należy zastąpić nazwą danego serwera, USER zastąpić nazwą użytkownika SMB na danym serwerze, a SHARE nazwą udziału udostępnionego na danym serwerze. Owe sekcje mogą zawierać opcje typu: addr (adres serwera NetBIOS), charsets (kodowanie), workgroup (grupa robocza), password (hasło), czyli praktycznie to samo co możesz wpisać w pliku danego użytkownika .nsmbrc. W sekcji [default] niektóre też w sekcji typu SERVER, pliku /etc/nsmb.conf możesz użyć opcji typu: nbns (adres serwera WINS), nbscope (NetBIOS scope), nbtimeout (limit czasu serwera NetBIOS), retry_count (liczba prób zanim połączenie zostanie uznane jako zerwane), workgroup (grupa robocza), minauth (minimalny protokół). FSTAB
Plik konfiguracyjny fstab (file systems table), jak już mogłeś
się dowiedzieć z jego opisu dla systemu Linux, występuje w
systemach operacyjnych UNIX i innych systemach jemu pokrewnych. W systemach BSD
pełni on taka samą rolę co w innych systemach Unix, czyli
We FreeBSD i innych systemach BSD tj. NetBSD, Mac OS X, Darwin, wpis w pliku /etc/fstab dla systemu plików SMBFS może wyglądać tak jak poniżej:
Teraz żeby zamontować te udziały wystarczy wpisać mount //komp/udzial. Aby odmontować dany zasób smbfs należy użyć komendy umount/mnt/mountpoint, można też poprzez odwołanie nie miejsca montowania ale tego co zamontowaliśmy jeśli jest wpisane w /etc/fstab czyli umount //komp/udzial. Zauważ że cały proces montowania i odmotowywania musisz wykonywać jako root. Oczywiście jak w przypadku systemu
Linux w systemach BSD,
shlight Swego czasu jedyna możliwością w systemach z rodziny BSD, było użycie innego sposobu w postaci darmowego pakietu klienckiego Sharity-Light. Program ten jest w zasadzie "konwerterem" z protokołu SMB na NFS, działa na poziomie użytkownika a nie jądra systemu (tak jak jest to w Linuksie). Obecnie shlight nie jest już rozwijany od końca 2003 roku skończywszy na wersji 1.3 ale został przeportowany na systemy NextStep, Openstep/Mach, Linux, FreeBSD, NetBSD, BSDI, Solaris, HP-UX i IRIX. Montowanie zasobu smbfs przy pomocy Sharity-Light wygląda np. tak: shlight //komp/udzial /katalog_lokalny [ewentualne opcje] Najczęściej używane opcje to -U czyli użytkownik, -P czyli hasło, -n brak hasła, -W grupa robocza, -u uid, -g gid. Wszystkie opcje są opisane w pliku README dołączonym do programu i dostępnym pod adresem - http://www.obdev.at/ftp/pub/Products/Sharity-Light/Sharity-Light.1.3.README. Odmontowanie odbywa się oczywiście w równie prosty sposób poprzez:
Możesz tez po prostu odmontowac wszystkie zasobu poprzez:
Program Sharity-Light możemy ściągnąć ze strony projektu http://www.obdev.at/products/sharity-light/.
|