Ćw. 13 Linux - operacje systemu plików
Transkrypt
Ćw. 13 Linux - operacje systemu plików
Ćw. 13 Linux - operacje systemu plików 1. Ściągnąć program PUTTY ze strony z materiałami dydaktycznymi skompresowany plik i uruchomić. 2. Skonfigurować host name: - zapisać, rozpakować host name: 192.168.11.110 protokół SSH 3. Zmienić czcionkę konsoli (menu appearance/font/change) na większą, 4. Powrócić do menu Session – wykonać zapis: Save 5. Wykonać połączenie z serwerem linuxowym (open): • loginy użytkowników: lxc01, lxc02, lxc03 itd. aż do 12 (sala komputerowa C, na innych salach wstawić w miejsce c litery a, b lub d) - uzgodnić loginy w grupie, aby uniknąć konfliktu pomiędzy użytkownikami • hasło: samoloty System plików - wprowadzenie System plików jest w dużej mierze podobny do Windows. Dane przechowywane są w plikach, pliki natomiast w katalogach. Katalogi mogą zawierać inne katalogi zwane podkatalogami – jest to tzw. hierarchiczny system plików. Istnieje pojedynczy katalog zwany katalogiem głównym (ang. root directory - katalog korzeń), w którym zawiera się cały system plików – jak w Windows. Katalog główny jest oznaczany "/". W Linuxie nie ma oznaczeń dysków. Istnieje tylko jedna struktura katalogów, która obejmuje wszystkie dyski (nawet te, które są zamontowane w innych komputerach). Każdemu użytkownikowi podczas tworzenia konta jest zakładany katalog użytkownika (zwanym też katalogiem domowym od ang. "home directory"). Katalog domowy należy tylko do tego jednego użytkownika, który jako jedyny może tam tworzyć nowe katalogi i umieszczać pliki. Rozpoczynamy pracę będąc w swoim katalogu domowym (/users/grupa/użytkownik). W swoim katalogu domowym użytkownik ma pełne prawa, tzn. może w nim tworzyć pliki i katalogi, modyfikować je, usuwać, kopiować, nadawać prawa itd. Katalog bieżący jest to ten katalog, w którym się w danej chwili znajdujemy, w którym pracujemy. Wyróżniającym się spośród wszystkich użytkowników w Linuksie jest root, czyli superużytkownik. Root posiada specjalne przywileje do każdego katalogu, pliku i konfiguracji. Pełni on rolę administratora całego systemu. Konta root używa się tylko do celów administracyjnych, wyłączając go z normalnej pracy. Ścieżki dostępu • • ścieżki bezwzględne zaczynają się zawsze od nazwy katalogu głównego "/" ścieżki względne nigdy nie zaczynają się od nazwy katalogu głównego i identyfikują plik/katalog z punktu widzenia katalogu bieżącego. Nazwy katalogów w ścieżkach oddzielamy znakiem "/", a więc inaczej niż w DOS. "." - oznacza katalog bieżący, ".." – oznacza katalog nadrzędny. Wszystko w Linux'ie jest plikiem - jest nim także katalog. Do informacji o pliku (katalogu) należą m.in. nazwa, oznaczenie typu (plik zwykły, specjalny, katalog), prawa dostępu, nazwa właściciela, data modyfikacji, rozmiar. Nazwy plików (a więc i katalogów) w linuxie mogą być o wiele dłuższe, niż np. w systemie DOS. Mogą one zawierać duże i małe litery (!), liczby, dowolną ilość kropek, myślniki, podkreślenia, przecinki - o długości do 255 znaków. Rozszerzenia, jakie mogą zawierać nazwy plików, mają znaczenie tylko informacyjne i porządkujące dla systemu nie ma to większego znaczenia. Polecenia systemowe - wiersz poleceń Jeśli w trakcie wprowadzania polecenia chcemy je poprawić, możemy użyć klawisza Backspace. Historia poprzednich poleceń dostępna jest przy użyciu strzałek "góra" "dół" na klawiaturze. Operacje na katalogach Do sprawdzania, w jakim katalogu użytkownik znajduje się w danym momencie (jaki katalog jest katalogiem bieżącym) służy polecenie pwd. $ pwd Aby przejrzeć zawartość katalogu bieżącego należy wydać polecenie ls: $ ls lub $ ls -l $ ls ?? (pliki o nazwie dwuznakowej) $ ls a* (pliki o nazwie rozpoczynającej się od litery a) Do zmiany katalogu bieżącego służy polecenie cd (od ang. change directory - zmień katalog) $ cd .. (do nadrzędnego) $ cd / (do głównego) $ cd (wróć do domowego) $ cd ./teksty (przejdź do podrzędnego katalogu teksty) Do tworzenia nowych katalogów służy polecenie mkdir (z ang. make directory - "utwórz katalog"). $ mkdir przyklad Katalog usuwamy poleceniem rmdir. Nazwę katalogu do usunięcia można podawać również razem ze ścieżką dostępu: $ rmdir ./przyklad $ rmdir /users/lxc01/przyklad Polecenie rmdir usuwa tylko puste katalogi. Jeśli katalog nie jest pusty trzeba z niego wcześniej usunąć wszystkie pliki. Polecenie rm potrafi usuwać niepuste katalogi: $ rm –r nazwa_kat Polecenie mv (ang. move) służy do zmiany nazwy (lub przeniesienia) pliku lub katalogu. Jego uproszczona składnia to: mv nazwa_oryginalna nazwa_docelowa $ mv przyklad proba (zmiana nazwy foldera) Operacje plikowe Plik jest ciągiem informacji/danych zapisanych na dysku, posiadającym następujące atrybuty: nazwa, rozmiar, data ostatniej modyfikacji zawartości, typ (katalog, plik zwykły lub specjalny) prawa dostępu właściciel i grupa. Z plikiem można: • obejrzeć jego zawartość (komendy cat, more, tail, head) • zrobić kopię (skopiować) (cp) • zmienić nazwę (mv) • przenieść do innego katalogu (mv) • usunąć (rm) • utworzyć inną nazwę tego samego pliku (ln) • utworzyć plik tekstowy (cat, touch, edytor vi i inne programy) • zmienić jego zawartość (vi i inne programy) Tworzenie plików: $ cat > plik.z.cat Ala ma kota Kot ma ogon ^D (jednocześnie CTRL+D – koniec pliku) Do wyświetlania na ekranie zawartości pliku służy polecenie cat (od ang. concatenate): cat plik Polecenie: more plik (ang. more - więcej) umożliwia wyświetlenie zawartości pliku podzielonej na strony mieszczące się na ekranie. Następną stronę oglądamy naciskając spację. Jedną z podstawowych operacji na plikach jest ich kopiowanie. Do tego celu służy polecenie cp (od ang. copy - kopiuj). Składnia jest następująca: cp plik [plik...] cel Jako argumentów należy więc użyć: • nazwy kopiowanego pliku lub plików, • nowej nazwy pliku lub nowego miejsca, gdzie kopia ma się znajdować (lub obu naraz). Uwaga: jeśli kopiujemy plik z katalogu bieżącego, to cel może być nową nazwą (kopiowanie w tym samym katalogu) lub zawierać pełną ścieżkę (względną lub bezwzględną) do katalogu docelowego (ewentualnie też inna nazwa pliku). Można również kopiować całe grupy plików stosując metaznaki (* ?) Do fizycznego przenoszenia pliku w inne miejsce lub pod inną nazwę służy polecenie mv (od ang. move - przenieś). Składnia polecenia jest podobna, jak przy cp . mv plik [plik...] cel Przykładowo: $ mv kopia.pliku nowy.plik Usuwanie plików możliwe jest dzięki poleceniu rm (od ang. remove - usuń, wymaż). Składnia polecenia jest następująca: rm [-i] plik... Wydanie polecenia bez opcji powoduje usuniecie pliku bez ostrzeżenia, stąd też należy uważać. Opcja -i (od ang. interactiv) powoduje wyświetlanie pytania o potwierdzenie operacji przy każdym kasowanym pliku. Polecenie rm z opcją -r: rm -r katalog usuwa katalog (z plikami!) . Prawa dostępu w Linuksie W systemie operacyjnym Linux każdy plik i katalog posiada zestaw praw określający, kto ma dostęp do pliku i jakie ma prawa. Każdy plik lub katalog może mieć prawo: r - czytania (Read), w - pisania (Write), x - wykonywania (eXecute). W przypadku katalogu "eXecute", czyli uruchomienie, oznacza możliwość jego otwarcia, a prawo "Read" listowania jego zawartości. Każde z tych praw dostępu reprezentowane jest odpowiednią literą i posiada przypisany odpowiedni parametr cyfrowy. Litera Znaczenie Parametr Liczbowy r prawo odczytu 4 w prawo zapisu 2 x prawo uruchomienia 1 brak praw dostępu 0 Do każdego pliku lub katalogu możemy wyszczególnić trzy zestawy takich praw: • prawa właściciela • prawa grupy • prawa pozostałych użytkowników Do wyświetlenia praw dostępu do plików można posłużyć się poleceniem ls. Pierwsza kolumna składająca się z dziesięciu znaków opisuje prawa dostępu, przy czym: • pierwszy znak określa rodzaj pliku (np. - (minus) oznacza plik, d oznacza katalog, l tzw. dowiązanie itd). • znak drugi, trzeci i czwarty określa prawa właściciela do pliku, • znak piąty, szósty i siódmy określa prawa grupy do której należy plik, • natomiast znak ósmy, dziewiąty i dziesiąty prawa innych użytkowników systemu. Łącząc odpowiednie parametry, zestaw trzech praw możemy przedstawić za pomocą jednej cyfry. Oto kilka najczęściej spotykanych kombinacji: Prawa Wartość Znaczenie --0 brak praw r-4 prawo do odczytu rw6 prawa do odczytu i zapisu rwx 7 prawa do odczytu zapisu i uruchomienia r-x 5 prawa do odczytu i uruchomienia --x 1 prawo do uruchomienia W ten sposób za pomocą trzech cyfr możemy przedstawić całkowity (tzn. trzy zestawy) zbiór praw dostępu do pliku (pierwsza cyfra - prawa właściciela, druga cyfra - prawa grupy, trzecia - prawa dla pozostałych użytkowników). Prawa dostępu Wartość Znaczenie liczbowa -rw------600 Prawa do odczytu i zapisu tylko dla właściciela pliku -rw-r--r-644 Prawa odczytu i zapisu dla właściciela oraz odczytu dla wszystkich pozostałych użytkowników. drwx--x--x 711 Wszystkie prawa ma właściciel. Katalog z takimi prawami dostępny jest także dla wszystkich pozostałych użytkowników, polecenie ls nie wyświetli listy plików w katalogu). Aby odczytać plik użytkownik musi znać jego nazwę. Zmiana praw dostępu do plików Do zmiany praw dostępu do plików w systemie Linux służy polecenie chmod. Składnia polecenia przy wykorzystaniu metody cyfrowej: chmod prawa_dostępu nazwa_pliku gdzie prawa_dostępu to jedna z opisanych wyżej trzycyfrowych liczb. Przykładowo aby zmienić prawa dostępu do pliku readme.txt na -rw------ (prawo odczytu i zapisu tylko dla właściciela pliku) musimy napisać: $ chmod 600 readme.txt Inną metodą nadawania uprawnień jest metoda symboliczna, polega na zdefiniowaniu odpowiedniego ciągu pojedynczych liter. W tabelce poniżej przedstawione są znaczenia poszczególnych liter. Kto Działanie u użytkownik + dać g grupa - zabrać o inni = przypisać a wszyscy Składnia polecenia przy wykorzystaniu tego sposobu: Uprawnienie r odczyt w zapis x wykonanie chmod [ugoa][+ - =][rwxs] nazwa_pliku Przykłady: chmod +x playit - plik playit może być uruchomiony przez dowolnego użytkownika chmod u+x playit - daje właścicielowi pliku playit prawo jego wykonania chmod a–w readme - odbiera wszystkim prawo do zapisu do pliku readme chmod a+r * - daje wszystkim użytkownikom prawo do odczytu do wszystkich plików znajdujących się w danym katalogu. Ćwiczenie 1. Wykonać połączenie z serwerem i przećwiczyć polecenia systemu plików. • przemieszczanie się po strukturze katalogów, • listowanie zawartości katalogu (z zastosowaniem wzorców nazw zawierających metaznaki * i ? , według własnych pomysłów). • tworzenie nowego katalogu, • tworzenie, kopiowanie, przenoszenie i zmianę nazwy plików, 2. Sprawdzić możliwość przemieszczenia się do katalogu innego użytkownika (czy da się tam dostać i wykonywać operacje na cudzych plikach). 3. Sprawdzić zawartość innych katalogów systemu. 4. Utworzyć nowy plik (pliki). Jakie ma prawa po utworzeniu? Zmieniać opisanymi metodami prawa dostępu do tego pliku. 5. Sprawdzić jak zmiana praw do plików wpływa na możliwość odczytu pliku, zmiany nazwy, usuwania itp. 6. Sprawdzić jakie prawa dostępu ma katalog domowy użytkownika, czy użytkownikwłaściciel może te prawa zmieniać. 7. Wypróbować symboliczny sposób zmian praw.