Akademia Górniczo-Hutnicza im. St. Staszica Unix/Linux 1 praca zdalna, katalog domowy, prawa dostępu Tomasz Bartuś 2012
SSH SSH to standard protokołów komunikacyjnych używanych w sieciach komputerowych TCP/IP, w architekturze klient-serwer (Fig. 1). W ścisłym znaczeniu SSH to tylko następca protokołu telnet, służącego do terminalowego łączenia się ze zdalnym komputerem. SSH różni się od Telnetu tym, że transfer wszelkich danych jest zaszyfrowany, oraz możliwe jest rozpoznawanie użytkownika na wiele różnych sposobów. W szerszym znaczeniu SSH to wspólna nazwa dla całej rodziny protokołów, nie tylko terminalowych, lecz także służących do przesyłania plików (SCP, SFTP), zdalnej kontroli zasobów, tunelowania i wielu innych. Fig. 1. Architektura klient-serwer Wspólną cechą wszystkich tych protokołów jest identyczna z SSH technika szyfrowania danych i rozpoznawania użytkownika. Obecnie protokoły z rodziny SSH praktycznie wyparły wszystkie inne "bezpieczne" protokoły takie jak np: Rlogin i RSH. Ogólne założenia protokołu SSH powstały w grupie roboczej IETF. Istnieją jego dwie wersje SSH1 i SSH2. W jego wersji 2, możliwe jest użycie dowolnych sposobów szyfrowania danych i 4 różnych sposobów rozpoznawania użytkownika, podczas gdy SSH1 obsługiwał tylko stałą listę kilku sposobów szyfrowania i 2 sposoby rozpoznawania użytkownika (klucz RSA i zwykłe hasło). Najczęściej współcześnie stosowany sposób szyfrowania to AES, chociaż nadal częśd serwerów używa szyfrowania Blowfish i technik z rodziny DES. Rozpoznawanie użytkownika może się opierad na tradycyjnym pytaniu o hasło, klucz (RSA lub DSA) lub z użyciem protokołu Kerberos. SSH pod Windows Istnieje, oczywiście, możliwośd połączenia zdalnego przy pomocy protokołu SSH z poziomów systemów Windows. Najlepszym klientem SSH dostępnym obecnie na rynku jest darmowy program PuTTY (Fig. 2). Można go pobrad ze strony: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 1
Fig. 2. Okno konfiguracyjne terminala PuTTY System Unix/Linux 1. Konwencje w Unix/Linux UWAGA! pracując na komputerze zdalnym za pomocą terminala musimy dostosowad się do szeregu zasad obowiązujących w systemach Unix/Linux: o o o o małe i duże litery są rozróżnialne, polecenia kooczymy klawiszem ENTER, poszczególne fragmenty polecenia są rozdzielane spacją, składnia poleceo wygląda następująco: znak_zachęty:~$ polecenie [opcja]... [argument]... nawiasy kwadratowe [] oznaczają, że dany fragment jest opcjonalny, trzy kropki... oznaczają, że dany fragment może byd powtórzony większą liczbę razy, argumenty polecenia zwykle wskazują cel jego działania (np. pliki do skopiowania), opcje polecenia mają na celu dostosowania sposobu działania polecenia (np. sposobu wyświetlania informacji) opcje polecenia zwykle mają formę: jednej literki poprzedzonej myślnikiem (np. -h), słowa poprzedzonego dwoma myślnikami (np. --help), kolejnośd opcji zwykle nie ma znaczenia, 2
jeśli używane są opcje jednoliterowe, zamiast np. "-a -b" można je łączyd, pisząc "- ab", Wszystkie polecenia wpisujemy w okienku powłoki (terminala, konsoli). Aby rozpocząd pracę w trybie zdalnym (połączyd się z serwerem) musimy posiadad na nim konto, znad jego adres (domenowy bądź IP) oraz znad swój login (nazwa użytkownika) i password (hasło) (Fig. 3). Fig. 3. Okienko terminala SSH PuTTY ZADANIE Używając PuTTY oraz login i password zaloguj się zdalnie z komputera lokalnego na serwer: student.agh.edu.pl 2. Konto na serwerze zdalnym Zmiana hasła konta: passwd najpierw podajemy stare hasło, potem dwukrotnie nowe, poszczególne znaki hasła nie są pokazywane na ekranie!, przy zgubieniu/zapomnieniu hasła lub innych kłopotach z kontem należy zwrócid się do administratorów, zasady tworzenia bezpiecznego hasła: Zasada wybierania dobrego hasła jest prosta - wymyśl sobie hasło, którego nikt nie będzie w stanie odgadnąd ani złamad atakiem słownikowym, a przy tym nie będziesz miał problemów z jego zapamiętaniem. Kilka dobrych rad: Nie używaj swojej nazwy konta. 3
Nie używaj żadnych imion ani nazw własnych rzeczy. Nie używaj wyrazów lub ich skrótów pochodzących z języka polskiego lub dowolnego innego języka. Nie wykorzystuj żadnych danych osobistych, np. inicjałów, numeru indeksu lub telefonu, daty urodzenia, numeru rejestracyjnego samochodu. Nie używaj prostych sekwencji klawiszy, jak qwerty, qwe123 itp. Wyżej wymienione elementy nie powinny byd wykorzystywane nawet po dokonaniu przeróbek typu: pisanie wspak albo wielkimi literami. Nie używaj haseł składających się wyłącznie z cyfr. Nie wykorzystuj przykładowych haseł zaczerpniętych z książek omawiających problemy bezpieczeostwa albo z tej strony. Używaj haseł składających się przemieszanych cyfr oraz wielkich i małych liter. Używaj haseł przynajmniej sześcioznakowych. Używaj w haśle pozornie losowo wybranych liter i cyfr. Możesz np. wykorzystad pierwsze litery z każdego słowa z linii tekstu w książce, piosence lub wierszu. Na przykład tekst "Pan kotek był chory i leżał w łóżeczku" da nam hasło: Pkbcilwl. Po skróceniu, dorzuceniu znaków interpunkcyjnych i wielkich liter otrzymamy PKb,cIL a to już całkiem niezłe hasło. Można też wziąd dwa krótkie słowa, przedzielid znakiem interpunkcyjnym i cyfrą, pozamieniad literki na wielkie: kot%5pies Grunt, żeby nie tworzyd haseł z "doklejoną" jedynką i unikad haseł tak trywialnych jak: marysia1 czy staszek2. Fig. 4. Zmiana hasła konta za pomocą polecenia passwd Limit miejsca na koncie: quota -v 4
Fig. 5. Wynik działania polecania quota konta: bartus na serwerze galaxy gdzie: blocks - łączny rozmiar danych na koncie (w blokach, czyli kb), files - łączna liczba plików na koncie, quota - (limit miękki) maksymalna dozwolona kwota stała, limit - (limit twardy) maksymalna dozwolona kwota chwilowa (zwykle nie dłużej niż tydzieo), WŁAŚCIWOŚCI: przekroczenie quoty uniemożliwia zapisanie na koncie jakichkolwiek danych, czasami także logowanie się w trybie graficznym, limity zapisu dotyczą każdego urządzenia pamięci masowej (partycji dyskowej) osobno, najczęstsze przyczyny bezwiednego przekroczenia limitów dyskowych: pliki core zawierające zrzut zawartości pamięci programu, który wykonał niedozwoloną operację i został zakooczony przez system, pliki cache'a przeglądarki internetowej (proszę odpowiednio dostosowad maksymalny rozmiar cache'a w ich ustawieniach), System pomocy (manual): man [numer rozdziału] nazwa polecenia proszę sprawdzid wynik polecenia man passwd, 5
Fig. 6. Wynik działania polecenia: man passwd gdzie: name - krótki opis polecenia, synopsis - składnia polecenia, description - rozszerzony opis polecenia, see also - lista podobnych poleceo, jeśli jakaś nazwa może mied różne znaczenia, jest opisywana w kilku rozdziałach, np. zapis passwd(5) wskazuje, żeby użyd polecenia man 5 passwd, 3. Drzewo katalogów w systemach UNIX/LINUX 6
Fig. 7. Typowe podkatalogi katalogu root w systemach UNIX/Linux WŁAŚCIWOŚCI: zawsze dokładnie jeden katalog główny (tzw. root) oznaczony symbolem / (slash), katalogi (ang. directory), którym w systemach Windows odpowiadają foldery to rodzaj plików o specjalnym charakterze - służą do przechowywania informacji o innych plikach, każdy katalog posiada swój (jeden, jedyny) katalog nadrzędny (poza katalogiem głównym), nazwy kolejnych podkatalogów w ścieżce dostępu oddziela się znakiem / (bez spacji), przykładowo: / - katalog główny, /usr/bin/pico - oznacza plik o nazwie pico umieszczony w katalogu bin, będącym podkatalogiem katalogu usr, który jest z kolei podkatalogiem katalogu głównego, ~ - zanakiem tyldy oznacza się najczęściej katalog domowy użytkownika, różne dyski (dyskietki, napędy) są montowane (kojarzone) z wybranym miejscem w strukturze drzewa katalogów (zobacz wynik działania polecenia df), nazwy plików i katalogów: nazwa musi byd unikalna w ramach katalogu, rozróżniane są małe i duże litery, nazwy są (niemal) dowolne, z wyjątkiem zastrzeżonego zbioru znaków (np. /), zastrzeżona nazwa '.' (jedna kropka) oznacza katalog bieżący, zastrzeżona nazwa '..' (dwie kropki) oznacza katalog nadrzędny, sam system nie rozróżnia rozszerzeo, kropki mogą byd stosowane dowolnie (poza dwoma powyższymi wyjątkami), długośd nazwy nie jest nieograniczona, ale zależy od systemu (zwykle 255 znaków), w nazwach plików/katalogów należy unikad znaków specjalnych: *,?,!,<,>,,\,$ oraz spacji - zwykle także lepiej unikad polskich znaków diakrytycznych (ą, ę, d, ś, ź, ż, ó, o, itd.), 7
Katalog bieżący i domowy, zmiana katalogu, ścieżka względna i bezwględna: katalog domowy (~) to katalog, w którym użytkownik jest umieszczany po zalogowaniu się (jest on tworzony przez administratora w trakcie tworzenia nowego konta i zwykle tylko w tym katalogu użytkownik może tworzyd pliki/podkatalogi), polecenie: cd, bez opcji i argumentów przenosi nas zawsze do wewnątrz katalogu domowego Cd katalog bieżący - wybrany katalog w strukturze drzewa, w którym akurat się znajdujemy (po zalogowaniu jest identyczny z domowym). polecenie: pwd wypisuje aktualną nazwę katalogu bieżącego (pełną ścieżkę): Pwd zmiana katalogu: cd ścieżka powyższe polecenie zmienia katalog bieżący zgodnie z podaną ścieżką ścieżka może byd zapisana w sposób: 1. bezwględny (rozpoczyna się od katalogu głównego), np: cd /home/geolgrp/user cd /tmp 2. względny (wyrażoną względem katalogu bieżącego), np: cd.. cd../michal cd../../staff cd zadania Wypisanie zawartości katalogu: ls [opcje]... [katalog]... wypisuje zawartośd katalogu (podanego ścieżką), jeśli katalog nie zostanie podany, wypisywana jest zawartośd katalogu bieżącego, opcje (najważniejsze): -a - wypisuje wszystkie pliki (także ukryte - w systemie UNIX/LINUX są traktowane wszystkie pliki/katalogi rozpoczynające się od kropki), -l - wypisuje szersze informacje o plikach, kolejne kolumny: typ pliku + prawa dostępu, liczba dowiązao, właściciel, grupa, rozmiar, data ostatniej modyfikacji, nazwa. przykłady: ls 8
ls /tmp ls -a ls -l ls -al /tmp Prawa dostępu: system UNIX/LINUX jest wieloużytkownikowy, stąd niezbędna kontrola dostępu, każdy plik w systemie jest czyjąś własnością, pliki systemowe są zwykle własnością specjalnego użytkownika (root, administrator), wpisz polecenie: ls -l.. d/-/l: katalog/plik/link uprawnienia liczba plików/katalogów /linków w danym katalogu właściciel grupa wielkość data nazwa przyjrzyj się pierwszej kolumnie, np: drwx------ (podziel ją sobie w myślach na 4 części: d rwx --- ---) pierwszy znak to typ pliku (myślnik oznacza plik zwykły, 'd' to katalog, 'l' to dowiązanie), kolejne 9 znaków określają prawa dostępu w 3 zestawach po 3 prawa, kategorie (kolejno od lewej): gdzie: u g o d rwx --- --- u (jak user) to właściciel katalogu/pliku, g (jak group) to członkowie grupy, do której należy właściciel, o (jak other) to wszyscy inni użytkownicy systemu. 9
u+g+o=a oraz prawa (kolejno od lewej) to: prawo do odczytu informacji zapisanej w pliku (r jak read), prawo do zapisu (modifykacji) pliku (w jak write), prawo do uruchamiania pliku jako programu (x jak execute), w przypadku katalogów prawa oznaczają odpowiednio: r - prawo do odczytu zawartości katalogu (czyli np. wykonania polecenia ls), w - prawo do tworzenia/usuwania plików w katalogu, x - prawo do wejścia do katalogu (wykonania polecenia cd) wpisana literka oznacza przyznanie danego prawa, brak literki (czyli myślnik) oznacza brak danego prawa, Zmiana praw dostępu chmod [opcje]... prawa plik/katalog... prawa dostępu do pliku może zmieniad tylko jego właściciel, zmieniane prawa można podad na dwa sposoby: 1. symbolicznie - opis zawiera trzy składowe: komu (u, g, o, lub połączenie np. ug), jak (+, -, =, czyli dodad, cofnąd, ustalid), co (r, w, x, lub połącznie np. rwx), np: chmod u+x plik1 chmod ug-w plik2 plik3 chmod g-w,o-rw plik1 2. liczbowo - opis jest kodowany jako zestaw trzech cyfr opisujących poszczególne prawa na wzór systemu dwójkowego, gdzie r=4, w=2, x=1 (np. rwxr-xr-x jest zapisane jako 755, rw-r---- - jako 640), np: chmod 711 plik1 chmod 622 plik2 plik opcja -R pozwala zmieniad prawa rekursywnie dla wszystkich podkatalogów i plików zawartych w podanym katalogu, Literatura: Dyrek A., 1992. Od PC do workstation czyli Jak zostać użytkownikiem systemu Unix. Wyd. Doktor Q Press, Kraków, s. 485. Moczurad W., 1993. W sieci. Unix sieci lokalne i rozległe. Wyd. Fortis, Kraków, s. 212. 10
Prata S., Martin D., 1994. Biblia systemu UNIX V. Polecenia i programy użytkowe. Wyd. LT&P, Warszawa, s. 458. Silvester P., P., 1990. System operacyjny Unix. Wydawnictwa Naukowo-Techniczne, Warszawa, s. 320. http://galaxy.uci.agh.edu.pl/~jurczyk/wms/unix1.html 11