sop 2009 lab02


Uniwersytet w Białymstoku
Wydział Matematyki i Informatyki
Instytut Informatyki
Materiały bazowe do zajęć z przedmiotu:
Systemy operacyjne
Laboratorium nr 02
Temat:
Poruszanie się po systemie Linux,
podstawowe komendy cd. prawa dostępu.
mgr Adam Bonda
Białystok 2008
Cel laboratorium: Zapoznanie się z podstawowymi komendami Linux'a ciąg dalszy.
Prawa dostępu do plików i katalogów. Dowiązania symboliczne.
Po załadowania jądra (ang. kernel) w które w kompilowany jest zestaw niezbędnych
sterowników zapewniających inicjalizację systemu (obsługa dysków, systemu plików,
chipsetu płyty głównej itp.), oraz sterowników zewnętrznych (modułów) nie wchodzących
w skład jądra (karty dzwiękowe karty sieciowe  o ile nie mamy do czynienia z np.
bezdyskową stacją roboczą), a tak\e po uruchomieniu podstawowych usług systemowych
(od clientów dhcp pobierających adresy sieciowe, po serwery plików ftp, samba, czy www
 apache i deamon'y jak sshd nasłuchujące na wybranych portach na przychodzące
połączenia) Linux prosi nas o podanie nazwy u\ytkownika (ang. login) oraz hasła mu
przypisanego (ang. password)
Logowanie do systemu:
login: (nazwa u\ytkownika)
password: (hasło u\ytkownika)
Warto zauwa\yć, \e wpisywane hasło nie jest wyświetlane ani w formie tekstu, ani
gwiazdek. Ma to na celu utrudnienie podpatrzenia długości hasła osobie postronne.
Nieznajomość długości hasła znacznie wydłu\a jego złamanie. Program łamiący musi
sprawdzać kombinacje znaków dla kolejnych długości haseł, dopóki nie znajdzie
prawidłowego słowa.
Po poprawnym zalogowaniu do systemu, uruchamiana jest określona w /etc/passwd
powłoka.
Zale\nie od dystrybucji, czy te\ fantazji administratora przywita nas tzw. znak zachęty
(definicja znajduje się pod zmienną środowiskową $PS1), który na ogół przybiera
następujący wygląd:
login@nazwa:aktualny_katalog$
Typowa konstrukcja znaku zachęty (zachęta, bo zachęca do wprowadzania komend)
składa się z nazwy u\ytkownika, @, nazwy stacji roboczej, :, bie\ącego katalogu w którym
znajduje się u\ytkownik, oraz symbolu $, bądz #.
Zale\nie od tego, czy zalogowany u\ytkownik jest uprzywilejowanym u\ytkownikiem
(administratorem), czy te\ nie, na końcu linii pojawia się znak # (root), badz $ (user).
Komendy:
hostname pokazuje lub ustawia nazwę hosta systemu
domainname pokazuje/ustawia nazwę domeny NIS/YP systemu
dnsdomainname pokazuje nazwę domeny systemu
nisdomainname pokazuje/ustawia nazwę domeny NIS/YP
pokazuje/ustawia nazwę domeny NIS/YP
ypdomainname
pokazuje/ustawia nazwę węzła DECnet systemu
nodename
więcej informacji man hostname etc.
date wyświetla lub ustawia datę i czas systemowy
więcej informacji man date
passwd zmienia hasła kont u\ytkowników i grup
Zwykły u\ytkownik mo\e zmienić wyłącznie hasło własnego konta, super u\ytkownik mo\e
zmieniać hasła dowolnych kont. Administrator grupy mo\e zmienić hasło tej grupy.
passwd zmienia tak\e informacje o koncie, takie jak pełna nazwa u\ytkownika, jego
powłoka zgłoszeniowa (logowania) czy daty i interwały dotyczące wa\ności hasła.
U\ycie opcji:
-s powoduje wywołanie przez passwd programu chsh w celu zmiany powłoki u\ytkownika,
-f powoduje wywołanie przez passwd programu chfn w celu zmiany informacji o
u\ytkowniku.
Te dwie opcje istnieją jedynie dla zgodności, gdy\ wymienione programy mogą być
wywoływane bezpośrednio.
su zmiana identyfikatora u\ytkownika lub uzyskanie praw super u\ytkownika
Komenda słu\y do stawania się innym u\ytkownikiem w trakcie własnej sesji.
Wywołanie bez nazwy u\ytkownika, domyślnie oznacza dla su próbę stania się
superu\ytkownikiem. Opcjonalnym argumentem - mo\na posłu\yć się do zasymulowania
rzeczywistego rozpoczynania sesji pracy. Pozwala to na utworzenie środowiska
u\ytkownika. podobnego do tego, jakie występuje przy bezpośrednim zgłoszeniu
u\ytkownika w systemie.
więcej informacji man su
exit zakończenie bie\ącej sesji własnej, lub nabytego komendą su identyfikatora
finger
who programy do sprawdzania informacji o u\ytkowniku(ach)
w
więcej informacji man finger etc.
id zwraca informacje o UID and GID  literowym i numerycznym identyfikatorze
u\ytkownika i grupy do której jest on przypisany
więcej informacji man id
users drukuj nazwy u\ytkowników obecnie zalogowanych na hoście
groups drukuj grupy, do których przypisany jest u\ytkownik
Prawa dostępu do plików:
ls -l /etc/resolv.conf
-rw-r--r-- 1 root root 55 2008-10-07 22:16 /etc/resolv.conf
cd / ; ls -l
drwxr-xr-x 122 root root 8192 2008-10-07 20:17 etc
rozmiar w [B]
grupa
właściciel
liczba podkatalogów (dla d) lub liczba
dowiązać (dla -)
uprawnienia innych
uprawnienia grupy
uprawnienia właściciela
katalog (d), plik (-), dowiązanie (l)
r  (ang. read) prawo odczytu
w  (ang. write) prawo zapisu
x  (ang. execute) prawo wykonywania
Kody numeryczne określające prawa dostępu generuje się na podstawie systemu
dwójkowego, a końcowa liczba określająca dostęp do pliku jest ósemkową reprezentacją
wzorca bitowego nowych praw:
r w x r+w+x
2^2 2^1 2^0
read,write,execute 4 2 1 7
read,write 4 2 0 6
write,execute 0 2 1 3
read,execute 4 0 1 5
brak praw 0 0 0 0
Pierwsza cyfra wybiera SUID (4) i SGID (2) oraz atrybut zachowania obrazu tekstowego
(1). Następna cyfra wybiera prawa dla właściciela:odczytu (4), zapisu (2), wykonania (1);
trzecia cyfra prawa dla grupy posiadającej plik, a czwarta dla innych u\ytkowników, spoza
grupy (analogicznie do cyfry dla właściciela).
d(rwx)(r-x)(r-x) 122 root root 8192 2008-10-07 20:17 etc
7 5 5
chmod zmienia prawa dostępu do ka\dego podanego pliku według parametru, który jest
albo symbolicznym/literowym przedstawieniem zmian, których dokonać, albo
ósemkową liczbą reprezentującą wzorzec bitowy nowych praw
Format trybu symbolicznego to [ugoa...][[+-=][rwxXstugo...]...][,...]. Mo\na
podać wiele operacji symbolicznych, oddzielonych przecinkami.
Kombinacja liter ugoa kontroluje, czyje prawa mają zostać zmienione: właściciela (u),
innych u\ytkowników z tej samej grupy (g), innych u\ytkowników (o), lub wszystkich (a).
Jeśli \adnego z tych parametrów nie podano, rezultatem jest u\ycie domyślne a, lecz bity,
które są ustawione w umask nie są zmieniane.
Operator:
+ powoduje dodanie wybranych praw do istniejących,
- powoduje ich odjęcie,
= powoduje ustawienie dokładnie takich praw, jakie wybrano.
Litery rwxXstugo wybierają nowe prawa dla u\ytkowników: odczytu (ang. read) (r), zapisu
(ang. write) (w), wykonania (ang. eXecute) (lub dostępu do katalogu) (x), wykonania tylko
jeśli plik jest katalogiem, lub ju\ ma prawa wykonania dla danego u\ytkownika (X),
ustawienia ID grupy podczas wywołania (s), zachowania tekstu programu na urządzeniu
wymiany (t), prawa które posiada właściciel pliku (u), prawa innego u\ytkownika z grupy
posiadającej plik (g), prawa innych u\ytkowników (o).
chmod nigdy nie zmienia praw dowiązań symbolicznych, gdy\ funkcja systemowa chmod
nie potrafi tego dokonać. Nie jest to problemem, poniewa\ prawa dowiązań symbolicznych
nigdy nie są u\ywane. Jednak\e, dla ka\dego dowiązania symbolicznego, wymienionego
w wierszu poleceń, chmod zmienia prawa wskazywanego przez nie pliku. W
przeciwieństwie do powy\szego, chmod ignoruje dowiązania symboliczne napotkane
podczas rekurencyjnego przechodzenia przez katalogi.
Przykłady:
Przykład nadania pełnego prawa dostępu dla właściciela, jego grup i innych u\ytkowników
systemu plikowi nazwapliku znajdującego się w domowym katalogu wykonującego
komendę chmod:
chmod +777 ~/nazwapliku
Przykłady u\ycia komendy chmod przy u\yciu symboli literowych:
chmod u+x nazwa
chmod g+rwx nazwa
chmod ug-x nazwa
chmod g-w,o+r nazwa
chmod g-wx nazwa
chown chown zmienia właściciela i/lub grupę właścicieli ka\dego zadanego pliku,
według pierwszego nie będącego opcją argumentu lub według u\ytkownika i
grupy istniejącego pliku odniesienia, wskazanego opcją --reference. Je\eli
u\yto składni opisującej wprost nowego właściciela, to określa ona nowego
właściciela i grupę w formacie: [właściciel][[:|.][grupa]]
W zale\ności od postaci zapis [właściciel][[:|.][grupa]] jest interpretowany w
następujący sposób:
właściciel
Jeśli podano tylko właściciela (nazwę u\ytkownika lub jego numeryczny identyfikator), to
ten u\ytkownik staje się właścicielem pliku, a grupa pliku pozostaje niezmieniona.
właściciel.grupa
właścicie:grupa
Jeśli po właścicielu występuje dwukropek i bezpośrednio po nim, grupa (nazwa lub
numeryczny identyfikator grupy), to zmieniana jest tak\e grupa pliku (na grupę).
właściciel.
właściciel:
Jeśli po właścicielu wpisano dwukropek, lecz nie podano nazwy grupy, to właścicielem
plików staje się wskazany u\ytkownik, a grupa jest zmieniana na grupę główną
(zgłoszeniową) nowego właściciela.
.grupa
:grupa
Jeśli podano dwukropek lub kropkę i grupę, lecz pominięto nazwę właściciela,
zmieniana jest tylko grupa plików. W tym wypadku chown dokonuje tych samych operacji
co chgrp.
Przykłady:
chown root /home/student/temp1/plik
chown 1000 /home/student/temp1/plik
chwon -R student:100 [kK][aA][tT][aA][lL][oO][gG]_[rR][oO][bB][oO][cC][zZ][yY]
cp [opcja]... zródło... katalog_docelowy kopiuje pliki i katalogi
Przykłady:
Kopiowanie katalogu o nazwie jakis_katalog z bie\ącej lokalizacji z jego całą
zawartościa (pliki, podkatalogi) do katalogu /home/user1/temp
cp -R ./jakis_katalog /home/user1/temp
Kopiowanie zawartości pliku plik1 do plik2
cp plik1 plik2
rm [opcja]... plik... usuwa ka\dy podany plik. Domyślnie nie usuwa katalogów.
rm, podobnie jak ka\dy inny program, który u\ywa funkcji getopt do rozbioru swoich
argumentów, pozwala na u\ywanie opcji -- do wskazania, \e wszystkie następne
argumenty nie są opcjami. Aby skasować plik o nazwie -f w bie\ącym katalogu, mo\na
wpisać albo:
rm -- -f
albo
rm ./-f
Opcje:
-d, --directory
Usuwa katalogi za pomocą unlink zamiast u\ycia rmdir i nie wymaga by katalogi były
puste przed próbą skasowania. Działa to tylko jeśli mamy odpowiednie uprawnienia
a system obsługuje unlink w odniesieniu do katalogów. Poniewa\ kasowanie w ten
sposób katalogów powoduje, \e wszystkie pliki w skasowanym katalogu nie posiadają
przypisań, rozsądnie jest u\yć fsck na systemie plików po dokonaniu takiej operacji.
-f, --force
Ignoruje nieistniejące pliki i nigdy nie pyta u\ytkownika. Ignoruje uprzednią opcję
--interactive (-i).
-i, --interactive
Dla ka\dego z plików prosi o potwierdzenie usunięcia. Jeśli odpowiedz nie zaczyna się od
y lub Y, plik jest pomijany. Ignoruje uprzednią opcję --force (-f).
-r, -R, --recursive
Usuwanie rekurencyjne. Usuwane są tak\e katalogi wraz z całą zawartością. Tej opcji
nale\y u\ywać bardzo ostro\nie.
Tworzenie pliku za pomocą komendy cat:
cat > nowyplik1
wprowadzamy
dane
ctrl+d
dopisanie danych do pliku z u\yciem cat:
cat >> nowyplik2
dopisujemy
nowe
dane
ln tworzy dowiązania między plikami
ln działa podobnie do cp - poza tym i\, cp tworzy niezale\ną kopię pliku zaś ln jedynie
dowiązanie.
"Dowiązanie twarde" (hard link) jest inną nazwą istniejącego pliku. Dowiązanie i oryginalna
nazwa są w pełni równoprawne. (Technicznie rzecz biorąc, posiadają ten sam i-węzeł,
zaś i-węzeł zawiera całą informację o pliku - faktycznie nie jest błędem stwierdzenie, i\ i-
węzeł *jest* plikiem.) W ten sposób plik mo\e występować pod wieloma równowa\nymi
nazwami - wskazującymi na te same dane. Usunięcie jednej z tych nazw przez rm nie
powoduje jeszcze usunięcia pliku. Jest on usuwany dopiero z chwilą usunięcia ostatniej
nazwy.
We wszystkich istniejących implementacjach nie mo\na tworzyć twardych dowiązań do
katalogów, a dowiązania twarde nie mogą przekraczać granic systemów plików.
(Ograniczenia te nie są jednak narzucone przez POSIX.)
"Dowiązania symboliczne" (symbolic link, symlink), z drugiej strony, są specjalnym typem
plików (nie obsługiwanym przez wszystkie jądra; w szczególności system V release 3 i
starsze nie posiadają dowiązań symbolicznych), w którym plik dowiązania faktycznie
wskazuje na inny plik (przez nazwę). Dla większości operacji (otwarcie, odczyt, zapis i tak
dalej) otrzymujących jako argument dowiązanie symboliczne jądro automatycznie
"odwskaznikowuje" dowiązanie i działa na samym celu dowiązania. Przy niektórych (np.
usuwanie) działa na samym dowiązaniu, nie zaś na celu przez nie wskazywanym.
Opcje
-d, -F, --directory
Pozwala u\ytkownikowi uprzywilejowanemu (root) na tworzenie dowiązań twardych
(hardlinks) do katalogów
-f, --force
Usuwa istniejące pliki docelowe.
-i, --interactive
Pyta czy nadpisywać istniejące pliki docelowe.
-s, --symbolic
Tworzy dowiązania symboliczne zamiast dowiązań twardych. Ta opcja wypisuje błąd na
systemach nie obsługujących dowiązań symbolicznych.
Przykłady:
tworzy dowiązanie ./nazwa wskazujące na /jakas/nazwa
ln -s /jakas/nazwa
tworzy dowiązanie ./mojanazwa wskazujące na /jakas/nazwa
ln -s /jakas/nazwa mojanazwa
tworzy dowiązania ../a i ../b wskazujące na ./a i ./b
ln -s a b ..
sprawdzenie liczbę dowiązań (przy linkach symbolicznych)
ls -l
podaje numery i-węzłów plików, czyli adresy gdzie znajdują się szczegółowe informacje o
plikach. Jeśli obydwa są takie same dotyczą jednego pliku
ls -i
Wszelkie operacje modyfikacji dokonujemy na plikach w swoich katalogach domowym.
Domyślnie proszę u\ywać konta studenta do wykonywania poleceń, a w przypadkach
niezbędnych korzystać z root'a.
Zadane 1.
(a) znalezć w systemie wszystkich u\ytkowników mogących u\ywać powłoki bash.
(b) sprawdzić ilu u\ytkowników nale\y do grupy administratorów
(c) dla 3 ostatnich stworzyć katalogi w swoim katalogu domowym
(d) nazwy katalogów powinny być identyczne jak login'y tych u\ytkowników
Zadanie 2.
(a) w katalogu domowym, u\ywając jedynie polecenia cat stworzyć plik o nazwie
test01 i wprowadzić nazwy, tych samych co w zadaniu 1 u\ytkowników, ka\da w
nowej linii
(b) skopiować utworzony plik do pierwszego i drugiego katalogu, a w trzecim stworzyć
dowiązanie symboliczne do kopii pliku pozostającej w katalogu domowym.
Zadanie 3. Nadać odpowiednie prawa trzem katalogom, aby tylko u\ytkownicy własnej
grupy mogli do nich wchodzić, ale nie mogli ich modyfikować.
Zadanie 4.
(a) dla pliku w katalogu pierwszym ustalić nowego właściciela i zmienić mu prawa tylko
na odczyt/zapis
(b) dla pliku w drugim katalogu przypisać prawa tylko na odczyt dla wszystkich
(c) dla pliku w katalogu domowym utworzyć pełny zapis.
(d) sprawdzić wszystko zarówno u\ywając wartości numerycznych jak i literowych.
Zadanie 5. Jednym poleceniem zapisać w nowym pliku za pomocą wszystkich znanych
komend informacje o aktualnie zalogowanych u\ytkownikach. Sprawdzić z jakimi prawami
dostępu stworzony został plik
Zadanie 6.
(a) stworzyć katalog USERS.
(b) jednym poleceniem umieścić w nim trzy stworzone katalogi i plik, razem z ich
zawartością.
(c) jednym poleceniem zmienić prawa dostępu dla wszystkich plików znajdujących się
wewnątrz USERS na tylko do odczytu dla wszystkich, lecz bez prawa wykonywania
dla innych (others)
Zadanie 7. Jednym poleceniem stworzyć w katalogu domowym plik zawierający wszystkie
nazwy pięcioliterowe w katalogu /dev/, których dwie pierwsze litery to du\e lub małe  t ,
natomiast na ekranie wyświetlić tylko 15 pierwszych linii stworzonego pliku


Wyszukiwarka

Podobne podstrony:
sop 2009 lab04
sop 2009 lab05
sop 2009 lab12
sop 2009 lab10
sop 2009 lab03
sop 2009 lab08
sop 2009 lab01
sop 2009 lab11
sop 2009 lab06
sop 2009 lab07
sop 2009 lab09
2009 2010 rejon
2009 pytania testowe
[W] Badania Operacyjne Zagadnienia transportowe (2009 04 19)
Twilight Saga New Moon 2009 CAM XviD POISON

więcej podobnych podstron