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 d
ź
wi
ę
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
ą
d
ź
#.
Zale
ż
nie od tego, czy zalogowany u
ż
ytkownik jest uprzywilejowanym u
ż
ytkownikiem
(administratorem), czy te
ż
nie, na ko
ń
cu linii pojawia si
ę
znak # (root), bad
ź
$ (user).
Komendy:
hostname
domainname
dnsdomainname
nisdomainname
ypdomainname
nodename
pokazuje lub ustawia nazw
ę
hosta systemu
pokazuje/ustawia nazw
ę
domeny NIS/YP systemu
pokazuje nazw
ę
domeny systemu
pokazuje/ustawia nazw
ę
domeny NIS/YP
pokazuje/ustawia nazw
ę
domeny NIS/YP
pokazuje/ustawia nazw
ę
w
ę
zła DECnet systemu
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
w
programy do sprawdzania informacji o u
ż
ytkowniku(ach)
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
groups
drukuj nazwy u
ż
ytkowników obecnie zalogowanych na ho
ś
cie
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]... źró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 odpowied
ź
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 <enter>
wprowadzamy <enter>
dane <enter>
ctrl+d
dopisanie danych do pliku z u
ż
yciem
cat
:
cat >> nowyplik2 <enter>
dopisujemy <enter>
nowe <enter>
dane <enter>
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
"odwska
ź
nikowuje" 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) znale
źć
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