Ć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.