Po podaniu identyfikatora użytkownika -- login, oraz hasła na którymś z komputerów pracujących w sieci unixowej znajdujemy się w sesji lokalnej, tj. uruchamiane przez użytkownika programy wykonują się na tym komputerze, przy którym on siedzi -- niezależnie od tego, że funkcje sieci umożliwiają mu dostęp do szeregu zasobów udostępnianych przez serwer lub serwery sieciowe (głównie plików na dyskach sieciowych). Ta forma dostępu do zasobów sieci nie wymaga żadnych szczególnych zabiegów ze strony użytkownika, praca na dysku sieciowym niczym się w zasadzie nie różni od pracy na dysku podłączonym bezpośrednio do używanego w danej chwili komputera.
Funkcje sieci unixowej pozwalają jednak również na bardziej ,,bezpośredni'' dostęp do komputera zdalnego, polegający na otwarciu zdalnej sesji np. w jednym z okienek terminalowych uruchomionych w ramach systemu okienkowego. Wiąże się to zazwyczaj z ponownym podaniem loginu i hasła (przedstawiamy się innemu komputerowi); programy uruchomione w ramach sesji zdalnej wykonują się na zdalnym komputerze i mają bezpośredni dostęp do jego zasobów -- dysków itp., oczywiście w ramach uprawnień przysługujących danemu użytkownikowi. Zdalny komputer może znajdować się w tej samej sieci lokalnej (tj. np. w OKWF) lub wręcz na drugim końcu świata -- o ile jest dostępny poprzez łącza internetowe. Oczywiście w tym drugim przypadku konieczne jest posiadanie konta uprawniającego do dostępu do tego właśnie komputera.
Poza programami terminalowymi, tj. komunikującymi się z użytkownikiem
poprzez terminal znakowy (jakim jest np. okienko xterm
),
możliwe jest również zdalne uruchamianie programów okienkowych, pracujących
w standardzie X Window System --
komunikujących się z użytkownikiem poprzez swoje własne okna (jak np.
Netscape). Z reguły możliwe jest to jednak jedynie w ramach sieci
lokalnej, odpowiednie kanały komunikacji sieciowej są zazwyczaj blokowane
na styku sieć lokalna -- ,,reszta świata'', ze względów bezpieczeństwa.
Zresztą komunikacja dalekiego zasięgu przez Internet jest zazwyczaj
zbyt powolna aby zapewnić wygodną pracę w zdalnie uruchamianym
programie okienkowym.
Omówimy tu również skrótowo inne możliwości wykorzystania sieci czy usługi sieciowe, takie jak transfer plików z wykorzystaniem protokołu FTP, korzystanie z WWW, Usenet, i pocztę elektroniczną.
telnet
Najprostszym narzędziem do pracy zdalnej jest program telnet
;
w dużym uproszczeniu, uruchomienie go zamienia aktualnie używany terminal
(okienko typu xterm
lub konsolę znakową) w terminal ,,jakby''
bezpośrednio podłączony do komputera zdalnego. Jako argument wywołania
telnet
podajemy nazwę lub adres zdalnego komputera, z którym
chcemy się połączyć; w przypadku (najczęstszym) gdy jest to komputer z tej
samej sieci lokalnej (dokładniej: domeny DNS), wystarczy podać pierwszy
człon tej nazwy (np. telnet tempac
, telnet primus
).
Po (udanym) przedstawieniu się zdalnemu komputerowi (identyfikatorem
użytkownika oraz hasłem), uzyskujemy dostęp do wszelkich zasobów tego
komputera (do których dostęp przysługuje danemu użytkownikowi), a więc
dysków i zainstalowanych na nim programów. Programy posługujące się
interfejsem znakowym możemy uruchamiać tak samo, jak byłoby to możliwe
na terminalu podłączonym bezpośrednio do zdalnego komputera.
Zakończenie sesji telnet
i powrót do sesji lokalnej następuje
przez podanie komendy logout
lub exit
. Wprowadzenie
z klawiatury sekwencji specjalnej (zazwyczaj Ctrl-]
, oznaczane
również jako ^]
, co znaczy równoczesne wciśnięcie klawiszy
Ctrl
i ]) umożliwia skorzystanie z szeregu
wewnętrznych funkcji samego programu komunikacyjnego telnet
,
takich jak: close
(natychmiastowe zamknięcie sesji), czy
z
(czasowe ,,zawieszenie'' sesji, powrót do sesji zdalnej
przez komendę fg
).
Głównym niedostatkiem programu telnet
jest fakt, że cała treść
komunikacji ze zdalnym komputerem przesyłana jest ,,otwartym tekstem'',
włącznie z hasłem użytkownika. W dzisiejszych warunkach uznawane jest to
za poważne zagrożenie dla bezpieczeństwa i z tego powodu komunikacja w
protokole telnet
jest zazwyczaj blokowana na styku sieć
lokalna -- reszta świata (firewall). Również komputery OKWF
nie są dostępne poprzez telnet
z zewnątrz sieci Wydziału
Fizyki.
ssh
i slogin
Nieco lepszą wersję pracy zdalnej umożliwia program ssh
, różniący
się od telnet
głównie tym, że strumień komunikacji pomiędzy
klientem a serwerem jest szyfrowany -- dość ,,silnym'', a więc trudnym do
złamania algorytmem (w każdym razie złamanie go wprost jest poza zasięgiem
możliwości domorosłych ,,hackerów''). Z tego względu komunikacja przez
ssh
częściej bywa dostępna w połączeniach dalekiego zasięgu
(poza siecią lokalną), np. komputer tempac
dostępny jest spoza
Wydziału Fizyki przez połączenia ssh
. Dostępna jest również
opcjonalnie kompresja strumienia komunikacyjnego, co istotnie poprawia
współpracę z programami okienkowymi uruchomionymi w sesji ssh
na odległym komputerze. Zarówno szyfrowanie jak i kompresja odbywają
się w sposób ,,przezroczysty'' dla użytkownika i nie wymagają od niego
specjalnych zabiegów, poza ew. poinformowaniem programu czy kompresja
ma być wykorzystywana czy wyrażeniem preferencji co do stosowanego
algorytmu szyfrowania.
Przy uruchamianiu zdalnej sesji w ssh
może być konieczne
podanie w linii komend identyfikatora konta (login), z którego
zamierzamy korzystać na zdalnym komputerze, o ile nie brzmi on tak samo
jak login konta lokalnego. Chcąc uruchomić sesję
interakcyjną, tj. o własnościach (dla użytkownika) najbardziej zbliżonych
do sesji telnet
, wywołujemy program slogin
,
w postaci np. slogin login@tempac
(jest to program
pomocniczy dla programu ssh
).
Aby mieć możliwość uruchamiania w sesji zdalnej programów okienkowych
(których okna będą wówczas pojawiały się na naszym aktualnym terminalu,
zakładając oczywiście, że pracuje on w trybie graficznym), może być
konieczne dodanie opcji -X
(np. slogin -X login@primus
).
Należy jednak wiedzieć, że administrator zdalnego komputera mógł mu ,,zabronić''
uruchamiania programów okienkowych dla sesji ssh
.
Istnieje wiele możliwości zmodyfikowania sposobu działania ssh
i slogin
dla danego użytkownika, poprzez zapisanie
odpowiednich opcji i informacji w plikach umieszczonych w katalogu ~/.ssh/
.
Możliwe jest m. in. zadanie różnych domyślnych identyfikatorów (loginów)
dla różnych zdalnych komputerów, kontrolowanie opcji dotyczących szyfrowania,
kompresji i możliwości uruchamiania programów okienkowych, oraz wykorzystanie
tzw. autoryzacji RSA (metodą klucza publicznego), co pozwala uniknąć każdorazowego
podawania hasła do zdalnego konta przy otwieraniu sesji. Dociekliwi
znajdą odpowiednie szczegóły w dokumentacji (man ssh
).
Program ssh
posiada również możliwość wygodnego transferu plików
z i do zdalnych komputerów, w czym może często zastąpić ftp
(w trybie
nieanonimowym, p. poniżej). W tym celu wywołujemy go poleceniem postaci
scp [login@]adres:ścieżka_do_pliku_zdalnego plik_lokalny
(dla transferu z komputera zdalnego na lokalny), i z odwróceniem kolejności
argumentów dla transferu w kierunku odwrotnym. Ścieżka do pliku zdalnego
może być podana bądź w postaci bezwzględnej (zaczynając od /
), bądź
względem katalogu ,,domowego'' dla zdalnego konta.
ftp
Protokół FTP i obsługujący go program (również o nazwie ftp
) służy
do przesyłania plików siecią pomiędzy klientem (tj. komputerem z którego
inicjujemy połączenie) a serwerem, i to w obu kierunkach. Nie jest on
potrzebny w przypadku, gdy chodzi o dwa komputery posiadające wspólny
dostęp do dysków sieciowych, natomiast często wykorzystywany jest do
udostępniania np. archiwów swobodnie dostępnego oprogramowania poprzez
Internet.
W najprostszym przypadku używamy FTP do przesyłania plików z i do komputera,
na którym również posiadamy własne konto. Wówczas, po uruchomieniu programu
ftp
podajemy login i hasło do konta na zdalnym komputerze,
uzyskując w ten sposób dostęp do odczytu i zapisu plików w ramach uprawnień
danego konta. Najważniejsze komendy dostępne w programie ftp
to:
dir
lub ls
: lista zawartości aktualnego katalogu na zdalnym
komputerze;
cd katalog_zdalny
: zmiana katalogu aktualnego na zdalnym
komputerze;
lcd katalog_lokalny
: zmiana katalogu aktualnego na lokalnym
komputerze -- przetransferowane pliki będą domyślnie umieszczane w aktualnym
katalogu;
get plik_zdalny [plik_lokalny]
: sprowadzenie zdalnego pliku
na lokalny komputer i zapisanie jego zawartości w pliku lokalnym o podanej
(opcjonalnie) nazwie -- domyślnie, pod tą samą nazwą co na komputerze zdalnym;
mget wzorzec_pliku_zdalnego
: sprowadzenie na lokalny
komputer wszystkich plików z aktualnego katalogu zdalnego, których nazwy pasują
do podanego wzorca; budowa wzorców nazw jest analogiczna jak w linii komend
shella, tj. z wykorzystaniem znaków takich, jak *, ?
...
put plik_lokalny [plik_zdalny]
: przesłanie na zdalny
komputer pliku lokalnego i umieszczenie jego zawartości w pliku o opcjonalnie
podanej nazwie;
mput wzorzec_pliku_lokalnego
: przesłanie na zdalny komputer
wszystkich plików lokalnych z aktualnego katalogu, o nazwach pasujących do
podanego wzorca;
prompt
: domyślnie, w trakcie wykonywania poleceń dotyczących wielu
plików (mget, mput
) program zapytuje użytkownika o potwierdzenie
operacji dla każdego kolejnego pliku. Polecenie prompt
wyłącza
te zapytania, a więc operacje te będą przeprowadzane bez pytania o potwierdzenie.
Jeżeli zapytania wcześniej wyłączono, polecenie to włącza je z powrotem;
binary
: transfer będzie wykonywany w trybie binarnym, zachowującym
,,co do bitu'' zawartość przesyłanych plików. Obecnie większość serwerów FTP
ustawia domyślnie tryb binarny przy otwarciu sesji, należy zwrócić uwagę
na pojawienie się odp. komunikatu na początku sesji -- jeżeli go nie było,
ustawić tryb binarny przed transferem, p. poniżej;
ascii
: transfer będzie wykonywany w trybie ASCII. Oznacza to
w praktyce, że ,,najstarszy'' z ośmiu bitów tworzących każdy bajt danych
ulegnie ,,zmasakrowaniu'', tak więc przesłane w ten sposób programy nie będą
działały, pliki graficzne nie dadzą się otworzyć, a pliki tekstowe zawierające
znaki spoza zakresu podstawowego (ą, ć, ę, ...) będą w ich miejsce zawierać
nie wiadomo co. Tryb ASCII jest reliktem historycznym i nie należy go używać
w zasadzie nigdy;
bye
lub quit
: kończy sesję i działanie programu ftp
.
Drugi tryb FTP to tzw. tryb anonimowy. Wykorzystywany on jest w kontaktowaniu się
z serwerami publicznymi, na których udostępnione są pliki które można pobrać bez
wykazania się jakimikolwiek uprawnieniami. W trybie anonimowym w miejsce identyfikatora
konta podajemy anonymous
lub (krócej) ftp
, a w miejsce hasła
można podać cokolwiek, z tym że dobrym zwyczajem jest wpisanie swojego adresu poczty
elektronicznej (rzadko jest to jednak w jakikolwiek sposób egzekwowane, o ile w ogóle).
Poza tym praca w trybie anonimowym wygląda dokładnie tak samo, jak w ,,zwykłym'',
niemożliwe jest jednak na ogół umieszczanie swoich plików na zdalnym serwerze.
Interesująca dla ,,gości'' zawartość zdalnego serwera znajduje się na ogół w katalogu
/pub
i jego podkatalogach.
Uwaga: w wielu przypadkach zabezpieczenia stosowane na firewallach
uniemożliwiają transfery FTP spoza sieci lokalnej w domyślnym trybie programu. W takiej
sytuacji należy wywoływać program jako ftp -p
lub pftp
; jeżeli
dostępna wersja ftp
nie udostępnia żadnej z tych opcji, to może zadziałać
podanie na początku sesji FTP komendy quote PASV
.
Obecnie przy przeglądaniu publicznych archiwów FTP wykorzystuje się zazwyczaj przeglądarkę WWW (np. Netscape), która również potrafi posługiwać się protokołem FTP, przynajmniej w trybie anonimowym. Jest to wygodne gdy nie wiemy dokładnie, czego szukamy; natomiast gdy znana jest nam lokalizacja plików do przetransferowania, użycie ,,klasycznego'' programu FTP często pozwala wykonać zadanie szybciej i sprawniej.
Czytanerazy.