SYSTEMY OPERACYJNE
Sprawozdanie z ćwiczeń laboratoryjnych nr 2
Prowadzący: dr hab. inż. Antoni Donigiewicz
Wykonał: Szymon Puacz I6Y2S1
Data: 10.03.2008
Na zajęciach laboratoryjnych poznawaliśmy podstawowe polecenia operacji na plikach i katalogach systemu UNIX. Poniżej prezentuję spis poleceń wraz z opisem działania (* oznacza, że do zaznaczonego polecenia jest przykład poniżej spisu):
apropos nazwa - pokazuje w manualu wszystkie polecenia, w których wystąpiło słowo kluczowe „nazwa”
*head liczba plik - listuje początkowe wiersze pliku (w tym miejscu musi być nazwa pliku lub ścieżka dostępu do pliku), których ilość jest określona przez „liczbę”
przykład uzycia: head -25 /etc/passwd - wyświetla pierwsze 25 wierszy pliku passwd
*tail liczba plik - realizuje tę samą funkcję, co polecenie powyżej, z tą rożnicą, że listuje końcowe wiersze
przykład użycia: tail -20 /etc/passwd
*mkdir -m -p nazwa_katalogu - (make directory) tworzenie nowego katalogu o podanej nazwie w bieżącym katalogu. Opcja „-m” umożliwia ustalenie trybu dostępu do katalogu dla poszczególnych grup użytkowników - zostanie to omówione za chwilę; opcja „-p” umożliwia tworzenie katalogów - najpierw zostaje utworzony nieistniejący katalog rodzicielski
przykład użycia: mkdir -p książki/testy - został utworzony katalog książki, a nim katalog testy
rmdir nazwa - usuwanie katalogu o podanej nazwie; nie usuwa niepustego katalogu, nie pyta użytkownika o potwierdzenie
*cp plik_zr plik_docelowy - kopiuje plik, jeśli plik źródłowy nie istnieje, zostanie utworzony
przykład użycia: cp /etc/passwd /export/home/y2s1_1/książki/przykłady/logo
cp -ir - polecenie kopiowania z opcjami - „-i” - system będzie domagał się potwierdzenia operacji, jeśli kopiowanie będzie probowało napisać istniejącą lokalizację; cp z opcją „-r” będzie kopiować katalog wraz z zawartością
mv plik plik - zmiana nazwy pliku; jeśli określony plik nie istnieje, zostanie utworzony, jeśli istnieje, zostanie nadpisany; jeśli zamiast nazw podamy lokalizacje, nastąpi przeniesienie pliku
uprawnienia:
możemy wyróżnić 3 kategorie użytkowników:
- właściciel - u (user) - identyfikator usera jest zgodny z identyfikatorem usera pliku
- grupa - g (group) - grupowy identyfikator jest zgodny z grupowym identyfikatorem pliku
- pozostali - o (others) - nie ma zgodności identyfikatorów
Należy pamiętać, że każda kategoria ma własne prawa dostępu do plików i katalogów; właściciel nie korzysta z praw grupy, choć do niej należy.
Możemy wyróżnić 3 kategorie praw dostępu do plików, katalogów:
r (read) - czytanie (np. listowanie, wypisywanie)
w (write) - pisanie (np. zmiana, kasowanie, nadpisywanie)
x (execute) - wykonywanie (np. otwieranie folderu)
przykład zapisania praw dostępu:
- rwx rwx rwx
1 2 3 4
1: „-„ oznacza, że opisywany obiekt jest plikiem (jeśli będzie d - katalog)
2: prawa dostępu dla właściciela
3: prawa dostępu dla grupy
4: prawa dostępu dla pozostałych
Jak widzimy, wszyscy użytkownicy mają pełny dostęp do tego pliku.
Aby zmienić uprawnienia do obiektu dla użytkowników, można użyć polecenia
*chmod opcje nazwa_pliku
przykład użycia: chmod u+w - dla właściciela zostaje dodane prawo pisania
chmod g-r - grupie zostaje zabrane prawo czytania
chmod o+x - pozostałym zostaje dodane prawo wykonywania
Innym sposobem ustawiania praw dostępu jest przedstawienie ich jako liczby ósemkowej.
- - - - 0 - nie ma żadnych praw
r - x - 5 (101b) - ustawione prawo czytania i wykonywania.
Aby zrozumieć istotę takiego przedstawiania praw dostępu, należy liczbę w postaci ósemkowej przedstawić jako liczbę w postaci binarnej. Jedynka informuje, że dane prawo jest nadane, 0 zaś, że takiego prawa nie ma.
Przykład:
3 0 2 = 011 000 010
1 2 3
1: prawa dla właściciela ( - w x ) - pisanie i wykonywanie
2: prawa dla grupy ( - - -) - żadnych praw
3: prawa dla pozostałych (- w -) - pisanie
użycie wraz z poleceniem:
chmod 302 nazwa_pliku
Aby zobaczyć, jak ustawione są prawa dostępu, stosujemy polecenie umask. Wyświetla nam się wtedy liczba ósemkowa, która pokazuje, które prawa zostały komu zabrane.
Po wprowadzeniu tego polecenia na zajęciach została wyświetlona liczba 0022, tzn., że od liczby ósemkowej reprezentującej prawa dostępu odjęto liczbę 22.
Na przykład zasadnicze prawa dostępu dla pliku to 666, a dla katalogu 777. Gdy zabrane prawa dostępu ustawione są na 022, to mamy: dla pliku - 644, co reprezentuje: rw- r-- r-- ,
dla katalogu: 755: rwx r-x r-x.
Wykonaliśmy przykład: został utworzony plik zzz bez żadnych praw. Przy próbie usunięcia system zażądał potwierdzenia.
Ostatnim etapem było wykonanie ćwiczenia: utworzyłem katalog „kat” z plikiem „dat”. Operując różnymi przypadkami praw dostępu dla właściciela zarówno dla katalogu jak i dla pliku miałem sprawdzić zachowanie systemu przy wykonywaniu poniższych poleceń:
cd kat
ls
ls -l
cat dat
rm dat
cat >dat
21
22
23
ctrl-D
W poszczególnych komórkach tabeli cyframi zaznaczyłem, w których przypadkach jakie polecenia dało się wykonać.
Prawa do katalogu kat |
Prawa do pliku dat |
||
|
rw- |
r-- |
-w- |
rwx |
(1) 1,2,3,4,5,6 |
(2) 1,2,3,4,5* |
(3) 1,2,3,5,6 |
r-x |
(4) 1,2,3,4,6 |
(5) 1,2,3,4 |
(6) 1,2,3,6 |
-wx |
(7) 1,4,5 |
(8) 1,4,5* |
(9) 1,5,6 |
Komentarz:
W pierwszym przypadku wszystkie polecenia wykonały się bez przeszkód, gdyż zarówno plik jak i katalog miały ustawione pełne prawa dostępu.
W drugim, zabrano właścicielowi prawo zapisywania pliku. Wtedy niemożliwa okazała się jego modyfikacja, a przy poleceniu usunięcia pliku system zażądał potwierdzenia.
W trzecim przypadku nie wykonało się jedynie polecenia 4 - wyświetlenie zawartości pliku - dzieje się tak dlatego, że właściciel miał jedynie prawo czytać plik bez możliwości modyfikacji.
W czwartym, piątym, szóstym przypadku nie można było jedynie usunąć pliku z katalogu - właściciel nie miał praw modyfikowania folderu, więc operacje tworzenia i usunięcia pliku były niemożliwe.
Piąty przypadek to ponowne zabranie prawa zapisu pliku, więc oprócz tego, co w poprzednim, właściciel nie miał prawa modyfikować zawartości pliku.
Z kolei w szóstym przypadku user nie może odczytać zawartości pliku, plik ma prawo dostępu read.
Siódmy, ósmy, dziewiąty przypadek to brak możliwości przeglądania zawartości katalogu - nie ma ona prawa dostępu read.
Ósmy przypadek różni się od siódmego tym, że zabrane jest prawo write, dlatego pliku nie można modyfikować, przy usuwaniu system żąda potwierdzenia.
W dziewiątym przypadku do pliku można zapisywać, ale nie można go czytać.
Wnioski:
Powyższe polecenia umożliwiają sprawne poruszanie się po plikach i katalogach w systemie UNIX, a także zarządzanie prawami dostępu dla różnych grup użytkowników, możemy zauważyć, jak zmiana prawa dostępu dla katalogu zmienia możliwości zarządzania plikiem w nim umieszczonym.