Darmowy fragment publikacji:
Tytuł oryginału: Linux Utilities Cookbook
Tłumaczenie: Krzysztof Rychlicki-Kicior
ISBN: 978-83-246-8980-4
Copyright © Packt Publishing 2013.
First published in the English language under the title: „Linux Utilities Cookbook”.
Polish edition copyright © 2014 by Helion S.A.
All rights reserved.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości
lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą
kserograficzną, fotograficzną, a także kopiowanie
książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie
praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi
bądź towarowymi ich właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były
kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane
z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie
ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji
zawartych w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/nanali
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
• Kup książkę
• Poleć książkę
• Oceń książkę
• Księgarnia internetowa
• Lubię to! » Nasza społeczność
Spis tre(cid:258)ci
O autorze
O recenzentach
Wprowadzenie
Opis rozdzia(cid:239)ów
Co warto mie(cid:202) pod r(cid:218)k(cid:200)?
Dla kogo jest ta ksi(cid:200)(cid:285)ka?
Konwencje formatowania
Errata
Nielegalne kopiowanie
Rozdzia(cid:239) 1. Jak korzysta(cid:202) z wiersza polece(cid:241)
Wprowadzenie
Edycja polece(cid:241) w terminalu
Korzystamy z historii polece(cid:241)
Uzupe(cid:239)nianie nazw plików
Znak zach(cid:218)ty w pow(cid:239)oce
Pozosta(cid:239)e zmienne (cid:258)rodowiskowe
Stosowanie aliasów
Plik .bashrc
Bia(cid:239)e i specjalne znaki w nazwach plików
Jak interpretowa(cid:202) zmienn(cid:200) $?
Przekierowania i potoki
Przekazywanie wyj(cid:258)cia aplikacji pomi(cid:218)dzy terminalami
Stosowanie programu Screen
7
9
11
11
12
12
12
13
13
15
15
16
17
18
20
21
22
24
25
26
27
28
29
Kup książkęPoleć książkęSpis tre(cid:286)ci
Rozdzia(cid:239) 2. (cid:165)rodowiska graficzne
Wprowadzenie
GNOME 2
KDE desktop
xfce
LXDE
Unity
Mate
Rozdzia(cid:239) 3. Pliki i katalogi
Wprowadzenie
Kopiowanie, usuwanie oraz modyfikowanie plików i katalogów
Wyszukiwanie plików za pomoc(cid:200) narz(cid:218)dzi find i locate
Tworzenie plików tekstowych — vim, Emacs i inne
Narz(cid:218)dzie file
Stosowanie narz(cid:218)dzia grep do znajdywania wzorców
Kompresja plików za pomoc(cid:200) narz(cid:218)dzi ZIP i TAR
Inne przydatne narz(cid:218)dzia — stat, sum, touch itp.
Rozdzia(cid:239) 4. Sie(cid:202) i internet
Wprowadzenie
Rozwi(cid:200)zywanie problemów zwi(cid:200)zanych z po(cid:239)(cid:200)czeniem sieciowym
Kopiowanie plików za pomoc(cid:200) protoko(cid:239)ów FTP i SCP
Korzystanie ze zdalnego komputera — Telnet i SSH
Pobieranie stron WWW bez przegl(cid:200)darki — wget
Przegl(cid:200)danie stron internetowych — Firefox
Korzystamy z aplikacji do poczty elektronicznej
Stawiamy w(cid:239)asny serwer WWW — httpd
Sprawdzamy porty i aplikacje — /etc/services
IPv4 vs. IPv6
Rozdzia(cid:239) 5. Uprawnienia, dost(cid:218)p i bezpiecze(cid:241)stwo
Wprowadzenie
Tworzenie kont u(cid:285)ytkowników i zarz(cid:200)dzanie nimi — useradd
Obs(cid:239)uga hase(cid:239)
Obs(cid:239)uga uprawnie(cid:241) plików
Konfigurowanie zapory sieciowej i ustawie(cid:241) rutera
Obs(cid:239)uga Secure Linux (SELinux)
Korzystanie z narz(cid:218)dzia sudo
Katalog /tmp
Rozdzia(cid:239) 6. Procesy
Wprowadzenie
Zrozumie(cid:202) procesy
Analiza procesów za pomoc(cid:200) narz(cid:218)dzia ps
4
33
33
33
36
39
41
43
45
49
49
51
53
54
57
59
60
63
65
65
66
69
72
74
75
77
79
81
83
87
87
87
90
91
93
95
97
100
103
103
103
106
Kup książkęPoleć książkęAnaliza procesów za pomoc(cid:200) narz(cid:218)dzia top
Zmiana priorytetów za pomoc(cid:200) polecenia nice
Obserwowanie procesów za pomoc(cid:200) systemu plików /proc
Rozdzia(cid:239) 7. Dyski i partycje
Wprowadzenie
Korzystanie z aplikacji fdisk
Stosowanie narz(cid:218)dzia mkfs do formatowania dysku
Stosowanie narz(cid:218)dzia fsck do weryfikacji systemu plików
Zarz(cid:200)dzanie logicznymi wolumenami (LVM)
Rozdzia(cid:239) 8. Tworzenie skryptów
Wprowadzenie
Usuwanie tekstu z pliku
Korzystanie z parametrów w skryptach
Tworzenie p(cid:218)tli w skrypcie
Tworzenie kopii zapasowej systemu
Blokowanie pliku w celu zapewnienia wy(cid:239)(cid:200)cznego dost(cid:218)pu
Podstawy j(cid:218)zyka Perl
Rozdzia(cid:239) 9. Automatyzacja zada(cid:241) za pomoc(cid:200) narz(cid:218)dzia cron
Wprowadzenie
Tworzenie i uruchamianie pliku crontab
Uruchamianie polecenia raz na dwa tygodnie
Zg(cid:239)aszanie b(cid:239)(cid:218)dów z pliku crontab
Rozdzia(cid:239) 10. J(cid:200)dro
Wprowadzenie
Wprowadzenie do polece(cid:241) modu(cid:239)ów
Budowanie j(cid:200)dra ze strony kernel.org
Stosowanie narz(cid:218)dzia xconfig do modyfikowania konfiguracji
Praca z narz(cid:218)dziem GRUB
Zrozumienie zasad dzia(cid:239)ania programu GRUB 2
Dodatek A. Najlepsze praktyki w systemie Linux
Wprowadzenie
Administrator a zwyk(cid:239)y u(cid:285)ytkownik
Uruchamianie interfejsu graficznego (GUI)
Tworzenie, weryfikacja i przechowywanie kopii zapasowych
Uprawnienia a to(cid:285)samo(cid:258)(cid:202) u(cid:285)ytkownika
Tworzenie kopii zapasowych w czasie rzeczywistym
Zmienne (cid:258)rodowiskowe i pow(cid:239)oki
Najlepsze (cid:258)rodowisko do pracy
Stosowanie i monitorowanie UPS-ów
Zachowanie ostro(cid:285)no(cid:258)ci podczas kopiowania plików
Spis tre(cid:286)ci
108
113
115
121
121
125
127
129
131
137
137
138
140
141
144
146
147
155
155
157
158
161
163
163
164
169
171
174
176
179
180
180
181
182
184
184
185
186
187
188
5
Kup książkęPoleć książkęSpis tre(cid:286)ci
Weryfikacja archiwów i stosowanie sum kontrolnych
Zapory sieciowe, ustawienia ruterów i bezpiecze(cid:241)stwo
Co zrobi(cid:202), gdy wykryjesz w(cid:239)amanie
Spacje w nazwach plików
Stosowanie skryptów i aliasów w celu zaoszcz(cid:218)dzenia czasu i wysi(cid:239)ku
Automatyczne uwierzytelnianie a protoko(cid:239)y SCP i SSH
Zapisywanie historii i tworzenie zrzutów ekranu
Przestrze(cid:241) dyskowa
Jak by(cid:202) otwartym na nowe pomys(cid:239)y
Dodatek B. Korzystanie z pomocy
Wprowadzenie
Korzystanie ze stron podr(cid:218)cznika man
Stosowanie polecenia info
Polecenia a sekcja Sposób u(cid:285)ycia
Lokalne katalogi z dokumentacj(cid:200)
Przegl(cid:200)danie internetu w poszukiwaniu pomocy
Uwagi do wydania dystrybucji
Grupy u(cid:285)ytkowników Linuksa
Internet Relay Chat (IRC)
Skorowidz
189
189
191
192
192
193
193
194
194
195
195
195
197
198
200
201
202
204
205
209
6
Kup książkęPoleć książkę5
Uprawnienia, dost(cid:218)p
i bezpiecze(cid:241)stwo
W tym rozdziale zajmiemy si(cid:218):
(cid:81) tworzeniem kont u(cid:285)ytkowników i zarz(cid:200)dzaniem nimi — useradd,
(cid:81) obs(cid:239)ug(cid:200) hase(cid:239),
(cid:81) obs(cid:239)ug(cid:200) uprawnie(cid:241) plików,
(cid:81) konfigurowaniem zapory sieciowej i ustawie(cid:241) rutera,
(cid:81) obs(cid:239)ug(cid:200) Secure Linux — SELinux,
(cid:81) korzystaniem z sudo w celu zabezpieczenia systemu,
(cid:81) katalogiem /tmp.
Wprowadzenie
Ten rozdzia(cid:239) pos(cid:239)u(cid:285)y nam jako krótkie omówienie uprawnie(cid:241) plików w systemie Linux. Dowiesz
si(cid:218) tak(cid:285)e, jak zabezpieczenia s(cid:200) obs(cid:239)ugiwane przez system hase(cid:239). Poza tym pokazujemy, jak
w bezpieczny sposób skonfigurowa(cid:202) zapor(cid:218) sieciow(cid:200) i ruter, a tak(cid:285)e wspominamy o SELinux
i poleceniu sudo.
Tworzenie kont u(cid:285)ytkowników
i zarz(cid:200)dzanie nimi — useradd
W ramach tej porady dodamy konto u(cid:285)ytkownika, korzystaj(cid:200)c z programu useradd.
Kup książkęPoleć książkęNajlepsze narz(cid:266)dzia w systemie Linux
Przygotuj si(cid:218)
Poni(cid:285)sze polecenia nie powinny spowodowa(cid:202) problemów w Twoim systemie, niemniej jednak
b(cid:218)dzie Ci potrzebny dost(cid:218)p do konta administratora (roota).
W wi(cid:218)kszo(cid:258)ci dystrybucji systemu Linux s(cid:200) dost(cid:218)pne dwie wersje tego polecenia — useradd i adduser.
Nie zawsze wykonuj(cid:200) one te same czynno(cid:258)ci, dlatego sprawd(cid:283) podr(cid:218)cznik man (i/lub polecenie file),
aby si(cid:218) upewni(cid:202), (cid:285)e wykonujesz odpowiednie polecenie. W systemie Fedora adduser stanowi dowi(cid:200)za-
nie symboliczne do polecenia useradd, a zatem s(cid:200) one sobie równowa(cid:285)ne.
Jak to zrobi(cid:202)
Teraz wykonamy polecenie useradd, aby doda(cid:202) u(cid:285)ytkownika, a nast(cid:218)pnie polecenie passwd, aby
okre(cid:258)li(cid:202) has(cid:239)o. Wi(cid:218)cej informacji na temat polecenia passwd znajdziesz w kolejnych poradach:
1. Najpierw utworzymy kopi(cid:218) zapasow(cid:200) pliku /etc/passwd. Wykonaj poni(cid:285)sze polecenie:
cp /etc/passwd /tmp/passwd.orig
2. Utwórz u(cid:285)ytkownika o nazwie test1:
useradd test1
3. Powiniene(cid:258) powróci(cid:202) od razu do wiersza polece(cid:241). Nast(cid:218)pnie wykonaj polecenie:
su - test1
4. Znak zach(cid:218)ty powinien ulec zmianie. Wykonaj polecenie whoami — zostanie
wy(cid:258)wietlony tekst test1. Zawsze upewniaj si(cid:218) w ten sposób, (cid:285)e jeste(cid:258) zalogowany
na w(cid:239)a(cid:258)ciwe konto. Teraz zmienimy has(cid:239)o:
run passwd
5. Zostanie wy(cid:258)wietlony komunikat o zmianie has(cid:239)a, np. Zmiana has(cid:239)a dla u(cid:285)ytkownika
test1, a tak(cid:285)e pojawi si(cid:218) komunikat z pro(cid:258)b(cid:200) o wprowadzenie aktualnego has(cid:239)a.
Co to oznacza? O jakie has(cid:239)o prosi system?
6. Tak naprawd(cid:218) nie znam odpowiedzi na to pytanie, a strony podr(cid:218)cznika man tej
kwestii nie rozwi(cid:200)zuj(cid:200). Ten krok jest zawsze pomijany, co jest moim zdaniem do(cid:258)(cid:202)
dziwne. Istniej(cid:200) sposoby na wykonanie tego kroku dzi(cid:218)ki wykorzystaniu funkcji
crypto i innych skomplikowanych procedur. Ja na co dzie(cid:241) stosuj(cid:218) nieco inne
podej(cid:258)cie:
7. Wci(cid:258)nij kombinacj(cid:218) klawiszy Ctrl+C, aby opu(cid:258)ci(cid:202) polecenie passwd, a nast(cid:218)pnie
wykonaj polecenie exit, aby powróci(cid:202) do konta administratora. Otwórz do edycji
plik /etc/passwd i przejd(cid:283) do dolnego wiersza. W poni(cid:285)szym wierszu warto(cid:258)(cid:202)
liczbowa mo(cid:285)e by(cid:202) inna, ale poza tym nie powinno by(cid:202) problemów ze znalezieniem
wiersza podobnego do nast(cid:218)puj(cid:200)cego:
test1:x:1003:1003::/home/test1:/bin/bash
88
Kup książkęPoleć książkęRozdzia(cid:225) 5. • Uprawnienia, dost(cid:266)p i bezpiecze(cid:276)stwo
8. Usu(cid:241) x, dzi(cid:218)ki czemu wiersz przyjmie nast(cid:218)puj(cid:200)c(cid:200) posta(cid:202):
test1::1003:1003::/home/test1:/bin/bash
9. Zapisz plik i wyjd(cid:283) z edytora. Je(cid:258)li otrzymasz b(cid:239)(cid:200)d uprawnie(cid:241), upewnij si(cid:218),
(cid:285)e jeste(cid:258) na koncie administratora.
10. Wykonaj polecenie su, aby ponownie przej(cid:258)(cid:202) na konto u(cid:285)ytkownika test1:
su - test1
11. Wykonaj polecenie passwd.
12. Teraz jest znacznie lepiej — system nie prosi nas o has(cid:239)o. Mo(cid:285)na teraz utworzy(cid:202)
nowe has(cid:239)o, poniewa(cid:285) posiadanie niezabezpieczonych kont w systemie nie jest
zbyt m(cid:200)dre. Je(cid:258)li chcesz zachowa(cid:202) to konto na przysz(cid:239)o(cid:258)(cid:202), radz(cid:218) zapisa(cid:202) to has(cid:239)o
w bezpiecznym miejscu, a najlepiej przechowa(cid:202) w jakim(cid:258) zaszyfrowanym pliku.
13. Po dwukrotnym wprowadzeniu nowego has(cid:239)a powiniene(cid:258) otrzyma(cid:202) komunikat
podobny do poni(cid:285)szego:
passwd: all authentication tokens updated successfully
Teraz dysponujemy nowym kontem u(cid:285)ytkownika. Zwró(cid:202) uwag(cid:218), (cid:285)e u(cid:285)ytkownik mo(cid:285)e wykony-
wa(cid:202) wi(cid:218)kszo(cid:258)(cid:202) operacji z poziomu terminala, o ile tylko ma odpowiednie uprawnienia. W za-
le(cid:285)no(cid:258)ci od dystrybucji systemu Linux zwyk(cid:239)y u(cid:285)ytkownik mo(cid:285)e nie mie(cid:202) dost(cid:218)pu do wszyst-
kich zasobów (np. systemu d(cid:283)wi(cid:218)ku).
Oto zrzut ekranu z polecenia useradd --help, które wykona(cid:239)em w systemie Fedora 17:
89
Kup książkęPoleć książkęNajlepsze narz(cid:266)dzia w systemie Linux
Zobacz równie(cid:285)
Polecenie useradd mo(cid:285)e by(cid:202) u(cid:285)ywane do ró(cid:285)nych innych celów. Mo(cid:285)na m.in. modyfikowa(cid:202) spo-
sób dzia(cid:239)ania istniej(cid:200)cych kont lub zdefiniowa(cid:202) termin jego wyga(cid:258)ni(cid:218)cia. Istnieje mo(cid:285)liwo(cid:258)(cid:202)
przyznania szerokich uprawnie(cid:241) — niemal tak du(cid:285)ych jak uprawnienia administratora. Zajrzyj
na stron(cid:218) podr(cid:218)cznika man lub wywo(cid:239)aj polecenie useradd z parametrem --help w celu uzy-
skania bardziej szczegó(cid:239)owych informacji.
Obs(cid:239)uga hase(cid:239)
O poleceniu passwd wspomnia(cid:239)em w poprzedniej poradzie. U(cid:285)ywa si(cid:218) go do zmiany tokenów
uwierzytelniania u(cid:285)ytkownika. Do wykonania poni(cid:285)szych polece(cid:241) b(cid:218)dzie potrzebny dost(cid:218)p do
konta administratora. Skorzystamy tak(cid:285)e z konta test1, utworzonego w poprzedniej poradzie.
Jak to zrobi(cid:202)
1. Przejd(cid:283) do konta u(cid:285)ytkownika test1 z poziomu konta zwyk(cid:239)ego u(cid:285)ytkownika:
su - test1
2. Wprowad(cid:283) has(cid:239)o. Operacja powinna przebiec bez problemów.
3. Teraz zablokujemy to konto. Powró(cid:202) do konta administratora i wykonaj polecenie:
passwd -l test1
4. Z poziomu konta zwyk(cid:239)ego u(cid:285)ytkownika wykonaj ponownie polecenie su - test1.
Operacja powinna zako(cid:241)czy(cid:202) si(cid:218) niepowodzeniem.
5. Powró(cid:202) do konta administratora i odblokuj konto, korzystaj(cid:200)c z polecenia passwd
-u test1. Zaloguj si(cid:218) ponownie i sprawd(cid:283), czy wszystko dzia(cid:239)a.
6. Teraz wygasimy konto test1. W ten sposób zmusimy u(cid:285)ytkownika do utworzenia
nowego has(cid:239)a. Wykonaj poni(cid:285)sze polecenie jako root:
passwd -e test1
7. Z poziomu zwyk(cid:239)ego u(cid:285)ytkownika zaloguj si(cid:218) ponownie na konto test1, korzystaj(cid:200)c
z polecenia su - test1. Wprowad(cid:283) swoje has(cid:239)o.
8. Zostaniesz poproszony o utworzenie nowego has(cid:239)a. B(cid:200)d(cid:283) uwa(cid:285)ny — najpierw
musisz wprowadzi(cid:202) stare (aktualne) has(cid:239)o, a nast(cid:218)pnie dwa razy nowe.
9. Warto zapami(cid:218)ta(cid:202), (cid:285)e has(cid:239)o mo(cid:285)emy tak(cid:285)e usun(cid:200)(cid:202), wykonuj(cid:200)c polecenie passwd
-d test1. Jest to znacznie prostsze ni(cid:285) bezpo(cid:258)rednia modyfikacja pliku /etc/passwd,
wykonana w poprzedniej poradzie.
90
Kup książkęPoleć książkęRozdzia(cid:225) 5. • Uprawnienia, dost(cid:266)p i bezpiecze(cid:276)stwo
Zobacz równie(cid:285)
Modyfikacja konta u(cid:285)ytkownika obejmuje wiele ró(cid:285)nych aspektów. Mo(cid:285)na do nich zaliczy(cid:202)
czas pozosta(cid:239)y do wyga(cid:258)ni(cid:218)cia konta u(cid:285)ytkownika, a tak(cid:285)e moment, w którym nale(cid:285)y rozpocz(cid:200)(cid:202)
informowanie u(cid:285)ytkownika o zmianie has(cid:239)a. Wi(cid:218)cej informacji znajdziesz w podr(cid:218)czniku man.
Co nieco o has(cid:239)ach
Dawno temu u(cid:285)ytkownicy wybierali proste has(cid:239)a i nigdy ich nie zmieniali. Nie musieli(cid:258)my co chwil(cid:218) ich
zmienia(cid:202) i mogli(cid:258)my korzysta(cid:202) z nich wsz(cid:218)dzie, dlatego nie by(cid:239)o potrzeby zapisywania hase(cid:239). Niestety, ta
sytuacja uleg(cid:239)a zmianie. Obecnie has(cid:239)a musz(cid:200) zawiera(cid:202) kombinacje liter, cyfr, a nawet znaków specjal-
nych. Co wi(cid:218)cej, musz(cid:200) one by(cid:202) do(cid:258)(cid:202) d(cid:239)ugie, poniewa(cid:285) zasady tworzenia hase(cid:239) w jednym systemie mog(cid:200)
nie obowi(cid:200)zywa(cid:202) w innym. W zwi(cid:200)zku z tym sugeruj(cid:218) stosowa(cid:202) ró(cid:285)ne has(cid:239)a dla ró(cid:285)nych kont i zapisywa(cid:202)
je w bezpiecznym miejscu. Prawdopodobnie b(cid:218)dzie konieczna tak(cid:285)e regularna zmiana tych hase(cid:239).
Obs(cid:239)uga uprawnie(cid:241) plików
Linux jest systemem umo(cid:285)liwiaj(cid:200)cym obs(cid:239)ug(cid:218) wielu u(cid:285)ytkowników, dlatego ka(cid:285)dy plik ma
okre(cid:258)lone uprawnienia dost(cid:218)pu i przypisanego w(cid:239)a(cid:258)ciciela. W ten sposób mo(cid:285)emy ustrzec si(cid:218)
przed niepowo(cid:239)anym dost(cid:218)pem do zasobów, do których dany u(cid:285)ytkownik nie ma uprawnie(cid:241)
(niezale(cid:285)nie od tego, czy chce zrobi(cid:202) to przypadkiem, czy te(cid:285) celowo). Administrator (root) ma
zwykle dost(cid:218)p do wszystkich plików w systemie operacyjnym.
Przygotuj si(cid:218)
Najpierw omówimy podstawowe uprawnienia dost(cid:218)pu do pliku. W tym przyk(cid:239)adzie zak(cid:239)adam,
(cid:285)e maska pliku jest ustawiona na warto(cid:258)(cid:202) 0022. Wykonaj polecenie umask, aby sprawdzi(cid:202) t(cid:218) in-
formacj(cid:218).
Przeanalizujmy efekt dzia(cid:239)ania polecenia ls -la w katalogu, w którym znajduje si(cid:218) mój skrypt
do wykonania kopii zapasowej, czyli b:
-rwxr-xr-x. 1 gosc1 root 559 Mar 28 12:43 b
Analizuj(cid:200)c od lewej strony, najpierw dowiadujemy si(cid:218), z jakim rodzajem pliku mamy do czy-
nienia. Obecno(cid:258)(cid:202) znaku - informuje, (cid:285)e jest to zwyk(cid:239)y plik. Litera d obecna w tym miejscu
oznacza(cid:239)aby katalog, a l — (cid:239)(cid:200)cze (ang. link). Kolejne trzy zbiory trzyliterowe okre(cid:258)laj(cid:200) upraw-
nienia dost(cid:218)pu do pliku, które mo(cid:285)na podawa(cid:202) albo w sposób symboliczny, albo liczbowy. Sko-
rzystamy z trybu liczbowego (ósemkowego).
91
Kup książkęPoleć książkęNajlepsze narz(cid:266)dzia w systemie Linux
Pierwsza trójka, rwx, okre(cid:258)la ustawienia dost(cid:218)pu dla w(cid:239)a(cid:258)ciciela (gosc1). Kolejne trzy znaki
(r-x) stanowi(cid:200) ustawienia dost(cid:218)pu dla grupy (root). Ostatni zbiór to ustawienia dla pozosta(cid:239)ych
u(cid:285)ytkowników. Litera r oznacza, (cid:285)e plik mo(cid:285)na odczyta(cid:202), w — zapisa(cid:202), a x — wykona(cid:202).
Polecenie chmod przyjmuje ci(cid:200)gi z(cid:239)o(cid:285)one z od jednej do czterech cyfr ósemkowych. Je(cid:258)li pierw-
szej cyfry nie ma, przyjmuje si(cid:218), (cid:285)e na pocz(cid:200)tku jest umieszczane wiod(cid:200)ce zero. Pierwsza cy-
fra okre(cid:258)la ID u(cid:285)ytkownika, ID grupy lub tzw. lepki bit (ang. sticky bit). Druga cyfra okre(cid:258)la
uprawnienia u(cid:285)ytkownika, a trzecia — uprawnienia dla wszystkich.
Teraz zmienimy uprawnienia pliku tymczasowego i zobaczymy, jaki b(cid:218)dzie efekt.
Jak to zrobi(cid:202)
1. Przejd(cid:283) do katalogu /tmp:
cd /tmp
2. Je(cid:258)li plik f1 istnieje, usu(cid:241) go:
rm f1
3. Korzystaj(cid:200)c z konta go(cid:258)cia (w moim przypadku jest to konto autor), utwórz plik
tymczasowy:
ls f1
4. Wykonaj poni(cid:285)sze polecenie:
ls -al f1
5. Powinien zosta(cid:202) wy(cid:258)wietlony tekst podobny do poni(cid:285)szego:
-rw-rw-r--. 1 autor autor 131 Mar 29 10:35 f1
6. Przedstawione uprawnienia stanowi(cid:200) uprawnienia domy(cid:258)lne przydzielane przez
polecenie umask. W ten sposób stwierdzamy, (cid:285)e w(cid:239)a(cid:258)ciciel i grupa maj(cid:200) uprawnienia
do odczytu i zapisu, a inni mog(cid:200) jedynie odczyta(cid:202) plik.
7. W jaki sposób dokonamy zmiany? Korzystaj(cid:200)c z polecenia chmod. Za(cid:239)ó(cid:285)my, (cid:285)e nasz
plik jest skryptem i chcieliby(cid:258)my uczyni(cid:202) go wykonywalnym. Wykonaj poni(cid:285)sze
polecenie:
chmod 775 f1
8. Wykonaj polecenie ls -la f1. Efekt powinien by(cid:202) podobny do poni(cid:285)szego:
-rwxrwxr-x. 1 autor autor 131 Mar 29 10:35 f1
9. Pojawiaj(cid:200)ce si(cid:218) w trzech miejscach litery x oznaczaj(cid:200), (cid:285)e ka(cid:285)dy u(cid:285)ytkownik mo(cid:285)e
wykona(cid:202) ten plik. Wykonajmy jeszcze dwa polecenia: chmod 000 f1, a nast(cid:218)pnie
ls -la f1. Zostanie przedstawiony nast(cid:218)puj(cid:200)cy efekt:
----------. 1 autor autor 131 Mar 29 10:35 f1
92
Kup książkęPoleć książkęRozdzia(cid:225) 5. • Uprawnienia, dost(cid:266)p i bezpiecze(cid:276)stwo
No prosz(cid:218)! Czy to oznacza, (cid:285)e z tym plikiem nie da si(cid:218) ju(cid:285) nic zrobi(cid:202)? Na szcz(cid:218)(cid:258)cie nie — w(cid:239)a-
(cid:258)ciciel wci(cid:200)(cid:285) mo(cid:285)e zmieni(cid:202) uprawnienia. A skoro ju(cid:285) o tym mowa, to aby zmieni(cid:202) w(cid:239)a(cid:258)ciciela
pliku, nale(cid:285)y skorzysta(cid:202) z polecenia chown. Zazwyczaj jest ono wykonywane z poziomu konta
administratora.
Zobacz równie(cid:285)
W tej poradzie nie omawia(cid:239)em bitów setuid, setgid i sticky. Zerknij do podr(cid:218)cznika man na
temat polecenia chmod, aby dowiedzie(cid:202) si(cid:218) wi(cid:218)cej na ich temat. Bit ograniczonego prawa usu-
ni(cid:218)cia (ang. restricted deletion bit) jest omówiony w poradzie Katalog /tmp.
Konfigurowanie zapory sieciowej
i ustawie(cid:241) rutera
Zapora sieciowa jest u(cid:285)ywana do zapobiegni(cid:218)cia nieautoryzowanemu dost(cid:218)powi do kompute-
ra — przy jednoczesnym dopuszczeniu autoryzowanego ruchu. Polecenie iptables jest wyko-
rzystywane do konfigurowania i przegl(cid:200)dania tabel regu(cid:239) IPv4 j(cid:200)dra. Szczegó(cid:239)owe omówienie
tego narz(cid:218)dzia wykracza poza ramy tej ksi(cid:200)(cid:285)ki, dlatego w tym miejscu omówimy sobie pokrótce
jedynie podstawy tego narz(cid:218)dzia.
Polecenie iptables korzysta z jednej (lub kilku) tabeli. Ka(cid:285)da tabela sk(cid:239)ada si(cid:218) z pewnej liczby
gotowych (cid:239)a(cid:241)cuchów, ale mo(cid:285)e tak(cid:285)e zawiera(cid:202) (cid:239)a(cid:241)cuchy stworzone przez u(cid:285)ytkownika. (cid:146)a(cid:241)-
cuch stanowi zbiór regu(cid:239), a ka(cid:285)da regu(cid:239)a decyduje o tym, co zrobi(cid:202) z pakietem, który pasuje do
jej ustawie(cid:241). Takie dopasowanie nazywamy celem (ang. target).
Je(cid:258)li pakiet nie pasuje do danej regu(cid:239)y, zostaje on poddany sprawdzeniu przez nast(cid:218)pn(cid:200) re-
gu(cid:239)(cid:218) z (cid:239)a(cid:241)cucha. Je(cid:258)li jednak pakiet pasuje do regu(cid:239)y, mo(cid:285)e zosta(cid:202) podj(cid:218)ta wobec niego jedna
z akcji:
(cid:81) akceptuj (ang. ACCEPT) — pakiet jest przepuszczany,
(cid:81) odrzu(cid:202) (ang. DROP) — pakiet jest odrzucany,
(cid:81) zakolejkuj (ang. QUEUE) — pakiet jest dodawany do przestrzeni u(cid:285)ytkownika,
(cid:81) powró(cid:202) (ang. RETURN) — dany (cid:239)a(cid:241)cuch jest przerywany; kolejna wywo(cid:239)ana regu(cid:239)a
pochodzi z (cid:239)a(cid:241)cucha wywo(cid:239)uj(cid:200)cego.
Jak to zrobi(cid:202)
W tym miejscu przedstawimy zaledwie kilka polece(cid:241) typu iptables. Nie wykonuj ich w swoim
systemie — instrukcje te stanowi(cid:200) jedynie przyk(cid:239)ad u(cid:285)ycia:
93
Kup książkęPoleć książkęNajlepsze narz(cid:266)dzia w systemie Linux
1. Aby usun(cid:200)(cid:202) wszystkie istniej(cid:200)ce regu(cid:239)y, wykonaj polecenie:
iptables -F
2. Aby zablokowa(cid:202) konkretny adres IP, wykonaj nast(cid:218)puj(cid:200)ce polecenie:
iptables -A INPUT -s 192.168.1.115 -j DROP
3. Aby zezwoli(cid:202) na dost(cid:218)p do p(cid:218)tli zwrotnej, skorzystaj z poni(cid:285)szego polecenia:
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
Teraz zajmiemy si(cid:218) ruterami. Wi(cid:218)kszo(cid:258)(cid:202) z nich zawiera wbudowane zapory sieciowe, które
mo(cid:285)na skonfigurowa(cid:202) z poziomu przegl(cid:200)darki internetowej. Cho(cid:202) taki sposób dost(cid:218)pu nie za-
st(cid:200)pi polecenia iptables, zazwyczaj jest on (cid:239)atwiejszy w konfiguracji i pozwala na prac(cid:218) z do-
wolnego komputera dzia(cid:239)aj(cid:200)cego w Twojej sieci.
Adres strony internetowej domowego rutera to (najcz(cid:218)(cid:258)ciej) 192.168.1.1. Spróbuj otworzy(cid:202) go
w Twojej przegl(cid:200)darce.
Oto zrzut ekranu ustawie(cid:241) bezpiecze(cid:241)stwa przyk(cid:239)adowego rutera:
Prawdopodobnie trzeba b(cid:218)dzie wprowadzi(cid:202) identyfikator u(cid:285)ytkownika i has(cid:239)o. Zajrzyj do do-
kumentacji rutera, aby znale(cid:283)(cid:202) domy(cid:258)lne ustawienia (o ile nie uleg(cid:239)y one zmianie). Przejd(cid:283)
na zak(cid:239)adk(cid:218) Bezpiecze(cid:241)stwo (Security) lub podobn(cid:200), aby uzyska(cid:202) dost(cid:218)p do omawianych funk-
cjonalno(cid:258)ci.
94
Kup książkęPoleć książkęRozdzia(cid:225) 5. • Uprawnienia, dost(cid:266)p i bezpiecze(cid:276)stwo
Zobacz równie(cid:285)
Na temat polecenia iptables mo(cid:285)na by napisa(cid:202) ca(cid:239)(cid:200) ksi(cid:200)(cid:285)k(cid:218). Wiele informacji znajdziesz w pod-
r(cid:218)czniku man, a tak(cid:285)e w ksi(cid:200)(cid:285)kach po(cid:258)wi(cid:218)conych zaporom sieciowym. Istnieje tak(cid:285)e wiele cie-
kawych stron internetowych zwi(cid:200)zanych z t(cid:200) tematyk(cid:200).
Obs(cid:239)uga Secure Linux (SELinux)
W tym podrozdziale zajmiemy si(cid:218) omówieniem us(cid:239)ugi Security Enhanced Linux (SELinux).
W poradzie Obs(cid:239)uga uprawnie(cid:241) plików omawiali(cid:258)my standardowy sposób ochrony systemu
w Linuksie. Metoda ta nosi nazw(cid:218) uznaniowej kontroli dost(cid:218)pu (ang. Discretionary Access
Control — DAC) i ma pewne ograniczenia. Zwyk(cid:239)y u(cid:285)ytkownik mo(cid:285)e udost(cid:218)pni(cid:202) swoje pliki
(przypadkowo lub celowo) innym u(cid:285)ytkownikom do odczytu lub zapisu, co w konsekwencji
mo(cid:285)e prowadzi(cid:202) do ujawnienia istotnych informacji. Wi(cid:218)kszy poziom bezpiecze(cid:241)stwa zapew-
nia obowi(cid:200)zkowa kontrola dost(cid:218)pu (ang. Mandatory Access Control) stosowana w SELinux.
MAC korzysta z polityki bezpiecze(cid:241)stwa, która obejmuje wszystkie procesy i pliki w syste-
mie. Wszystkie pliki w SELinux maj(cid:200) etykiety, które zawieraj(cid:200) informacje zwi(cid:200)zane z bezpie-
cze(cid:241)stwem.
Przyk(cid:239)adowo poni(cid:285)szy listing przedstawia plik obj(cid:218)ty kontrol(cid:200) DAC:
ls -la ifcfg-eth0
-rw-r--r--. 1 root root 73 Apr 22 2011 ifcfg-eth0
Ten sam plik sprawdzony za pomoc(cid:200) opcji Z (kontekst bezpiecze(cid:241)stwa) wygl(cid:200)da nast(cid:218)puj(cid:200)co:
ls -Z ifcfg-eth0
-rw-r--r--. root root unconfined_u:object_r:default_t:s0ifcfg-eth0
Ci(cid:200)g unconfined_u oznacza u(cid:285)ytkownika, object_r — rol(cid:218), default_t — typ, a s0 — poziom.
To w(cid:239)a(cid:258)nie te informacje pozwalaj(cid:200) na podejmowanie przez system decyzji dotycz(cid:200)cych bez-
piecze(cid:241)stwa. Pami(cid:218)taj, (cid:285)e najpierw s(cid:200) sprawdzane regu(cid:239)y DAC — je(cid:258)li nie pozwalaj(cid:200) one na
podj(cid:218)cie dzia(cid:239)a(cid:241), to regu(cid:239)y SELinux w ogóle nie b(cid:218)d(cid:200) sprawdzane.
Przygotuj si(cid:218)
Wykonamy jedynie kilka polece(cid:241) na koncie administratora; przejrzymy tak(cid:285)e niektóre ustawie-
nia. Nie b(cid:218)dziemy wprowadza(cid:202) (cid:285)adnych zmian w konfiguracji. W tym przyk(cid:239)adzie zak(cid:239)adam,
(cid:285)e SELinux dzia(cid:239)a w trybie restrykcyjnym (ang. enforcing mode). Aby okre(cid:258)li(cid:202) tryb, w którym
si(cid:218) znajdujesz, wywo(cid:239)aj polecenie sestatus. Efekt powinien by(cid:202) podobny do tego:
95
Kup książkęPoleć książkęNajlepsze narz(cid:266)dzia w systemie Linux
Jak to zrobi(cid:202)
1. Wykonaj polecenie getenforce; powinien zosta(cid:202) wy(cid:258)wietlony komunikat
o w(cid:239)(cid:200)czeniu trybu restrykcyjnego (ang. enforcing mode).
2. Przejrzyj list(cid:218) powi(cid:200)za(cid:241):
semanage login -l
3. Aby przejrze(cid:202) konteksty SELinux dla wykonywanych procesów, wykonaj
poni(cid:285)sze polecenie:
ps -eZ
4. Aby obejrze(cid:202) kontekst u(cid:285)ytkownika, wykonaj poni(cid:285)sze polecenie:
id -Z
5. Polecenie sealert jest wykorzystywane do przegl(cid:200)dania pe(cid:239)nych komunikatów
SELinux w momencie wyst(cid:200)pienia b(cid:239)(cid:218)dów. Sprawd(cid:283) zawarto(cid:258)(cid:202) pliku /var/log/
messages, aby si(cid:218) przekona(cid:202), czy zosta(cid:239)y wygenerowane jakiekolwiek b(cid:239)(cid:218)dy.
Je(cid:258)li tak, mo(cid:285)esz wykona(cid:202) polecenie sealert -l dla komunikatu o wybranym
numerze, aby dowiedzie(cid:202) si(cid:218) wi(cid:218)cej.
6. Szczegó(cid:239)owa lista warto(cid:258)ci logicznych SELinux z opisami jest dost(cid:218)pna
za pomoc(cid:200) polecenia:
semanage boolean -l
7. Aby obejrze(cid:202) list(cid:218) bez opisów, wykonaj poni(cid:285)sze polecenie:
getsebool -a
8. Aby sprawdzi(cid:202), czy pliki i katalogi dysponuj(cid:200) odpowiednio uruchomionym
kontekstem SELinux, wykonaj poni(cid:285)sze polecenie:
matchpathcon
96
Kup książkęPoleć książkęRozdzia(cid:225) 5. • Uprawnienia, dost(cid:266)p i bezpiecze(cid:276)stwo
Zobacz równie(cid:285)
Jak ju(cid:285) wspomnia(cid:239)em, SELinux jest instalowany domy(cid:258)lnie w wi(cid:218)kszo(cid:258)ci dystrybucji. Czasa-
mi mo(cid:285)esz nie zdawa(cid:202) sobie sprawy, (cid:285)e jest on dost(cid:218)pny. Niekiedy mo(cid:285)e si(cid:218) jednak okaza(cid:202), (cid:285)e
z powodu jego obecno(cid:258)ci b(cid:218)d(cid:200) wynika(cid:202) ró(cid:285)ne problemy. Je(cid:258)li spróbujesz zainstalowa(cid:202) us(cid:239)ug(cid:218)
— np. vsftpd — mo(cid:285)e si(cid:218) okaza(cid:202), (cid:285)e nie b(cid:218)dzie to mo(cid:285)liwe z powodu wyst(cid:200)pienia konfliktu
z polityk(cid:200) SELinux. Zazwyczaj w takich sytuacjach otrzymasz komunikat o b(cid:239)(cid:218)dzie. Cho(cid:202) ko-
munikat ten mo(cid:285)e okaza(cid:202) si(cid:218) pomocny w rozwi(cid:200)zaniu problemu, z mojego do(cid:258)wiadczenia
wynika, (cid:285)e takie porady nie s(cid:200) przydatne. Mimo wykonania opisanych kroków dost(cid:218)p nadal
nie b(cid:218)dzie mo(cid:285)liwy. W takich sytuacjach prze(cid:239)(cid:200)czam tryb SELinux na tryb zezwalania (ang.
permissive mode) i kontynuuj(cid:218) wykonywane przeze mnie operacje:
setenforce 0
Zwró(cid:202) uwag(cid:218), (cid:285)e taki trik zadzia(cid:239)a tylko do nast(cid:218)pnego restartu.
Wi(cid:218)cej informacji na temat SELinux znajdziesz w doskona(cid:239)ym przewodniku na stronie inter-
netowej dystrybucji Fedora.
Korzystanie z narz(cid:218)dzia sudo
Czasami (zw(cid:239)aszcza gdy jeste(cid:258) administratorem systemu) istnieje konieczno(cid:258)(cid:202) przyznania nie-
którym u(cid:285)ytkownikom wi(cid:218)kszego dost(cid:218)pu do komputera. Jednocze(cid:258)nie nie powinni oni mie(cid:202)
dost(cid:218)pu do konta administratora. Te dwa za(cid:239)o(cid:285)enia da si(cid:218) po(cid:239)(cid:200)czy(cid:202), modyfikuj(cid:200)c plik /etc/sudoers
i korzystaj(cid:200)c z narz(cid:218)dzia sudo.
Przygotuj si(cid:218)
Poni(cid:285)sze czynno(cid:258)ci nie powinny uszkodzi(cid:202) Twojego systemu. Wykonamy je z poziomu konta
u(cid:285)ytkownika utworzonego powy(cid:285)ej. W ramach tej porady b(cid:218)dzie niezb(cid:218)dny dost(cid:218)p do konta
administratora.
Jak to zrobi(cid:202)
1. Najpierw zrób kopi(cid:218) zapasow(cid:200) pliku /etc/sudoers:
cp /etc/sudoers /tmp/sudoers.orig
2. Pliku sudoers nie edytuje si(cid:218) bezpo(cid:258)rednio — s(cid:239)u(cid:285)y do tego celu polecenie visudo.
Nazwa tego polecenia nie jest zbyt praktyczna, poniewa(cid:285) nie musisz korzysta(cid:202)
akurat z vi — mo(cid:285)esz ustawi(cid:202) dowolny edytor, korzystaj(cid:200)c ze zmiennej EDITOR.
Ustaw edytor zgodnie ze swoimi preferencjami, a nast(cid:218)pnie wykonaj polecenie:
visudo
97
Kup książkęPoleć książkęNajlepsze narz(cid:266)dzia w systemie Linux
3. To polecenie utworzy tymczasow(cid:200) kopi(cid:218) pliku sudoers i otworzy j(cid:200) do edycji. Je(cid:258)li
wszystko zostanie wykonane poprawnie, po zako(cid:241)czeniu edycji tymczasowa kopia
zast(cid:200)pi oryginalny plik.
4. Przejrzyj cz(cid:218)(cid:258)(cid:202) pliku po(cid:258)wi(cid:218)con(cid:200) aliasom. Zosta(cid:239)y one podzielone na grupy, takie
jak: networking (sie(cid:202)), software (oprogramowanie), services (us(cid:239)ugi), locate i inne.
Za chwil(cid:218) przekonamy si(cid:218), jak dzia(cid:239)aj(cid:200) przedstawione mechanizmy.
5. Najpierw jednak wykonamy pewne testy. Otwórz inn(cid:200) sesj(cid:218) (jako go(cid:258)(cid:202)). Ja skorzystam
ze swojego konta autor.
6. Jako autor wejd(cid:283) do katalogu /tmp:
cd /tmp
7. Utwórz plik, korzystaj(cid:200)c z polecenia:
ls f1
8. Skopiuj ten plik do katalogu /usr/bin:
cp f1 /usr/bin
9. Powiniene(cid:258) otrzyma(cid:202) komunikat o b(cid:239)(cid:218)dzie. Nie jest to nic dziwnego — zwyk(cid:239)y
u(cid:285)ytkownik standardowo nie ma uprawnie(cid:241) do zapisu do katalogu /usr/bin. Teraz
powró(cid:202)my do sesji z otwartym narz(cid:218)dziem visudo.
10. B(cid:218)dzie Ci potrzebna nazwa hosta Twojego komputera. W tym przyk(cid:239)adzie
skorzystamy po prostu z adresu IP. W razie potrzeby mo(cid:285)esz go uzyska(cid:202),
korzystaj(cid:200)c z polecenia ifconfig.
11. Tu(cid:285) za fragmentem pliku po(cid:258)wi(cid:218)conym poleceniu shutdown dodamy wiersz dla
naszego u(cid:285)ytkownika-go(cid:258)cia. Sk(cid:239)adnia jest nast(cid:218)puj(cid:200)ca: u(cid:285)ytkownik, nazwa hosta,
polecenia i opcje. Dodaj wi(cid:218)c poni(cid:285)szy wiersz:
autor 192.168.1.115=(ALL) ALL
12. Zapisz plik i zamknij sesj(cid:218) visudo. Spróbuj wykona(cid:202) polecenie ponownie
— z poziomu katalogu /tmp wykonaj polecenie cp f1 /usr/bin. Nadal
powiniene(cid:258) otrzyma(cid:202) komunikat o b(cid:239)(cid:218)dzie. Teraz za to spróbuj wykona(cid:202)
polecenie po lekkiej modyfikacji:
sudo cp f1 /usr/bin
13. Uch, czy(cid:285)by kolejna pro(cid:258)ba o has(cid:239)o? W rzeczy samej, i co wa(cid:285)ne, chodzi o has(cid:239)o
u(cid:285)ytkownika, a nie administratora. W takiej sytuacji nietrudno o b(cid:239)(cid:200)d. Najpro(cid:258)ciej
b(cid:218)dzie zapami(cid:218)ta(cid:202), (cid:285)e u(cid:285)ytkownik-go(cid:258)(cid:202) nie powinien w ogóle zna(cid:202) has(cid:239)a
administratora. Wprowad(cid:283) zatem swoje has(cid:239)o.
14. Je(cid:258)li jest to pierwsza sytuacja, w której korzystasz z polecenia sudo, zostanie
wy(cid:258)wietlony dodatkowy komunikat. Warto si(cid:218) z nim dok(cid:239)adnie zapozna(cid:202).
15. Wreszcie polecenie powinno zosta(cid:202) wykonane bez problemów. (cid:165)wietnie, prawda?
Dzi(cid:218)ki zastosowaniu ci(cid:200)gu ALL w pliku sudoers u(cid:285)ytkownik otrzyma(cid:239) pe(cid:239)ne
uprawnienia. Zwró(cid:202) uwag(cid:218), (cid:285)e niektóre mechanizmy dalej nie b(cid:218)d(cid:200) dzia(cid:239)a(cid:202)
poprawnie — np. przekierowania.
98
Kup książkęPoleć książkęRozdzia(cid:225) 5. • Uprawnienia, dost(cid:266)p i bezpiecze(cid:276)stwo
16. No có(cid:285), prawdopodobnie nie chcemy, aby u(cid:285)ytkownik autor zamiesza(cid:239) zbyt du(cid:285)o
w systemie, dlatego ograniczymy jego mo(cid:285)liwo(cid:258)ci. Wykonaj ponownie polecenie
visudo.
17. Przewi(cid:241) plik w dó(cid:239) lub znajd(cid:283) ci(cid:200)g Processes. Odkomentuj wiersz # Cmnd_Alias
PROCESSES, usuwaj(cid:200)c pocz(cid:200)tkowy znak #.
18. Przewi(cid:241) plik w dó(cid:239) do wiersza zawieraj(cid:200)cego ustawienia u(cid:285)ytkownika autor.
Zmie(cid:241) go w nast(cid:218)puj(cid:200)cy sposób:
autor 192.168.1.115=(ALL) PROCESSES
19. Teraz musimy znale(cid:283)(cid:202) proces, który mo(cid:285)na zabi(cid:202). Uruchom narz(cid:218)dzie vi z poziomu
konta administratora — mo(cid:285)esz np. wykona(cid:202) polecenie vi ksiazka.
20. W ramach sesji swojego u(cid:285)ytkownika wykonaj polecenie ps auxw | grep
vi ksiazka . Zapami(cid:218)taj identyfikator procesu (ang. Process ID — PID).
21. W ramach sesji swojego u(cid:285)ytkownika wykonaj polecenie kill -9 dla podanego
PID. Otrzymasz b(cid:239)(cid:200)d. Teraz wykonaj je ponownie, korzystaj(cid:200)c za to z polecenia:
sudo kill -9 PID
22. Proces z edytorem vi powinien zosta(cid:202) zabity.
Je(cid:258)li ekran pozostanie niebieski, wykonaj polecenie ls. W ten sposób oczy(cid:258)cisz terminal.
Oto zrzut ekranu pochodz(cid:200)cy z przyk(cid:239)adowego pliku /etc/sudoers:
99
Kup książkęPoleć książkęNajlepsze narz(cid:266)dzia w systemie Linux
Zobacz równie(cid:285)
Jak wida(cid:202), plik sudoers pozwala na bardzo wyrafinowane przyznawanie uprawnie(cid:241). U(cid:285)ytkow-
nicy mog(cid:200) otrzyma(cid:202) przeró(cid:285)ne przywileje. Wi(cid:218)cej informacji znajdziesz na stronach podr(cid:218)cz-
nika man: man sudoers.
Moim zdaniem, wielu u(cid:285)ytkownikom mo(cid:285)na zaufa(cid:202), daj(cid:200)c im pe(cid:239)en dost(cid:218)p do konta root bez
szkody dla systemu. Czasami zdarzaj(cid:200) si(cid:218) jednak wyj(cid:200)tki. Konfiguruj(cid:200)c polecenie sudo, mo(cid:285)esz
sp(cid:218)dzi(cid:202) wiele czasu na próbie ustawienia go w odpowiedni sposób, i to tylko po to, aby si(cid:218) na
ko(cid:241)cu dowiedzie(cid:202), (cid:285)e i tak musisz co(cid:258) jeszcze doda(cid:202). U(cid:285)ytkownicy b(cid:218)d(cid:200) poirytowani, ponie-
wa(cid:285) nie b(cid:218)d(cid:200) w stanie wykonywa(cid:202) swojej pracy, dopóki nie wprowadzisz zmian. Wreszcie, gdy
skonfigurujesz sudo w pe(cid:239)ni, oka(cid:285)e si(cid:218), (cid:285)e kto(cid:258) korzystaj(cid:200)c z niego, narobi szkód. Z mojego do-
(cid:258)wiadczenia wynika, (cid:285)e je(cid:285)eli u(cid:285)ytkownik pope(cid:239)ni raz jaki(cid:258) b(cid:239)(cid:200)d, to b(cid:218)dzie go pope(cid:239)nia(cid:239) stale.
Katalog /tmp
Katalog /tmp jest wyj(cid:200)tkowy, poniewa(cid:285) mog(cid:200) do niego zapisywa(cid:202) pliki wszyscy u(cid:285)ytkownicy.
Oto wpis dla katalogu /tmp na moim komputerze:
drwxrwxrwt. 10 root root 4096 Mar 31 03:48 tmp
Jak wida(cid:202), jest on dost(cid:218)pny dla wszystkich. Litera t w uprawnieniach oznacza, (cid:285)e bit ograni-
czonego usuni(cid:218)cia jest ustawiony dla tego katalogu. W przypadku katalogów oznacza to, (cid:285)e
zwykli u(cid:285)ytkownicy nie mog(cid:200) usun(cid:200)(cid:202) lub zmieni(cid:202) nazwy tego katalogu, o ile nie maj(cid:200) specjal-
nych uprawnie(cid:241).
Korzystaj(cid:200)c z katalogu /tmp jako zwyk(cid:239)y u(cid:285)ytkownik, powiniene(cid:258) uwa(cid:285)a(cid:202), poniewa(cid:285) obowi(cid:200)zuj(cid:200)
w nim pewne ograniczenia.
Jak to zrobi(cid:202)
1. Wykonaj poni(cid:285)sze polecenie:
cd /tmp
2. Je(cid:258)li w katalogu znajduj(cid:200) si(cid:218) pliki .txt pochodz(cid:200)ce z poprzednich porad,
usu(cid:241) je — zwyk(cid:239)e polecenie rm *.txt powinno wystarczy(cid:202).
3. Wykonaj poni(cid:285)sze polecenie:
ls root1.txt
4. W kolejnej sesji (ja jako u(cid:285)ytkownik-go(cid:258)(cid:202) skorzystam z konta autor)
wykonaj poni(cid:285)sze polecenie:
cd /tmp
100
Kup książkęPoleć książkęRozdzia(cid:225) 5. • Uprawnienia, dost(cid:266)p i bezpiecze(cid:276)stwo
5. Wykonaj kolejne polecenie:
ls autor.txt
6. Powy(cid:285)sze polecenie nie powinno sprawi(cid:202) k(cid:239)opotów. Teraz wykonaj nast(cid:218)pne
polecenie:
ls root1.txt
7. Powinien zosta(cid:202) wy(cid:258)wietlony komunikat Odmowa dost(cid:218)pu. Dlaczego? Poniewa(cid:285)
mimo mo(cid:285)liwo(cid:258)ci zapisu do katalogu przez wszystkich u(cid:285)ytkowników tradycyjne
uprawnienia (DAC) wci(cid:200)(cid:285) musz(cid:200) by(cid:202) przestrzegane.
Zobacz równie(cid:285)
Z opisanych powy(cid:285)ej wzgl(cid:218)dów nie radz(cid:218) korzysta(cid:202) z katalogu /tmp do czegokolwiek z wy-
j(cid:200)tkiem plików tymczasowych. Co wi(cid:218)cej, spora cz(cid:218)(cid:258)(cid:202) dystrybucji systemu Linux regularnie
czy(cid:258)ci katalog /tmp, co powoduje, (cid:285)e wszystkie pliki nieb(cid:218)d(cid:200)ce w posiadaniu administratora s(cid:200)
usuwane. Pami(cid:218)taj o tym, tworz(cid:200)c pliki tymczasowe — zw(cid:239)aszcza gdy piszesz skrypty (wi(cid:218)cej
informacji na ten temat znajdziesz w rozdziale 8.).
101
Kup książkęPoleć książkęNajlepsze narz(cid:266)dzia w systemie Linux
102
Kup książkęPoleć książkęSkorowidz
A
administrator, 180, 184
adres IP, 69
aliasy, 22–24
aplikacje do poczty elektronicznej, 77–79
automatyzacja zada(cid:241) za pomoc(cid:200) narz(cid:218)dzia cron,
155–161
E
edycja polece(cid:241) w terminalu, 16, 17
Emacs, 54–56
ext2, 135
ext3, 135
ext4, 135
B
Bash, 16
bezpiecze(cid:241)stwo systemu, 189–191
bezpieczna pow(cid:239)oka, 72
bezpieczne kopiowanie, 69–72
bia(cid:239)e znaki w nazwach plików, 25, 26
blok identyfikacyjny, 50
blokowanie pliku w celu zapewnienia wy(cid:239)(cid:200)cznego
dost(cid:218)pu, 146, 147
BSD, 106–108
Btrfs, 134
budowanie j(cid:200)dra ze strony kernel.org, 169–171
C
D
cron, 155–161
DAC, 95
demon apcupsd, 188
demony, 105
domena, 69
F
FAT, 135
Firefox, 75–77
formatowanie partycji, 128
FTP, 69–72
G
GNOME 2, 33–36
graficzny interfejs u(cid:285)ytkownika, 33
GRUB, 174–176
GRUB 2, 176–178
GUI, 33, 181, 182
H
has(cid:239)a, 90, 91
historia polece(cid:241), 17, 18
Kup książkęPoleć książkęSkorowidz
I
identyfikator procesu, 50, 117
identyfikatory u(cid:285)ytkownika i grup, 103
inode, 49
interfejs graficzny, 181, 182
IPv4, 83–85
IPv6, 83–85
j(cid:200)dro, 163–178
monolityczne, 163
j(cid:218)zyk Perl, 147–153
J
K
katalog, 49–64
/bin, 152
/boot, 122, 123
/dev, 122
/etc/grub.d, 177
/home, 122
/root, 122
/tmp, 100, 101, 122
/usr, 122
/usr/bin, 153
g(cid:239)ówny, 121
KDE desktop, 36–39
kernel.org, 169–171
klasy dost(cid:218)pne w protokole IPv4, 83
klawisze u(cid:285)ywane do edycji polece(cid:241), 17
kompresja plików, 60–63
konfigurowanie zapory sieciowej, 93–95
konsola, 15–31
kopie zapasowe, 182, 183
kopiowanie plików, 51–53, 188
za pomoc(cid:200) protoko(cid:239)ów FTP i SCP, 69–72
L
logowanie za pomoc(cid:200) protoko(cid:239)ów ssh/scp
bez konieczno(cid:258)ci wprowadzania hase(cid:239), 193
LVM, 131–135
LXDE, 41–43
210
MAC, 95
man, 195–197
Mate, 45–47
Mozilla Firefox, 75–77
nazwy plików, 192
niceness level, 113
M
N
O
obowi(cid:200)zkowa kontrola dost(cid:218)pu, 95
obs(cid:239)uga
hase(cid:239), 90, 91
uprawnie(cid:241) plików, 91–93
odmowa dost(cid:218)pu, 58
opcja si(cid:239)owa polecenia, 167
operacje na plikach, 51–53
operator
potoku, 27, 28
przekierowania, 27, 28
P
parametry w skryptach, 140, 141
partycja, 121, 123
Perl, 147–153
p(cid:218)tle, 141–144
PID, 50, 103
plik, 49–64
/boot/grub2/grub.cfg, 176
/etc/default/grub, 176
/etc/fstab, 123
/etc/services, 81, 82
/etc/sudoers, 97–100
/etc/toprc, 112
/var/log/cron, 161
/var/log/messages, 167
bashrc, 24, 25
binarny, 57, 58
cron.allow, 155
cron.deny, 155
crontab, 156–158
zg(cid:239)aszanie b(cid:239)(cid:218)dów, 161
Kup książkęPoleć książkęgrub.conf, 174–176
initramfs, 123
tekstowy, 54–56
poczta elektroniczna, 77–79
podr(cid:218)cznik man, 195–197
podsie(cid:202), 69
polecenie
a sekcja Sposób u(cid:285)ycia, 198, 199
adduser, 88
alias, 23
chown, 93
crontab, 156
df, 124, 194
diff, 173
dmesg, 59, 167
dumpe2fs, 50
echo, 21
echo $, 26, 27
fdisk, 125–127
file, 57, 58, 188
find, 53, 54
fsck, 125, 129–131
grep, 59, 60
GRUB 2, 178
head, 64
history, 17, 18
info, 197
insmod, 164, 165
iptables, 93
irssi --help, 206
lbook, 23
locate, 53, 54
ls, 99
ls /proc, 105
ls -la, 90, 91
lsmod, 164
LVM, 131, 132
man, 196
mkfs, 127, 128
modinfo, 164, 165
modprobe, 164, 165
nice, 113–115
passwd, 90, 91
ps, 105–108, 191
rmmod, 166
route, 67
scp, 70
Skorowidz
screen aplikacja :, 30
screen -list, 30
sealert, 96
stat, 63
su, 184
sudo, 98
sum, 63
tail, 64
tar, 61, 182
top, 105, 108–113
touch, 63, 64
ulimit, 105
uname -r, 169
useradd, 87–90
wget, 74–75
who, 190
zip, 60–63
po(cid:239)(cid:200)czenie
bezprzewodowe, 66
przewodowe, 66
pomoc na temat systemu Linux, 195–207
porty
dynamiczne, 82
powszechnie znane, 82
prywatne, 82
zarejestrowane, 82
potoki, 27, 28
PPID, 103
priorytety procesów, 113–115
proces, 103–119
init, 103
pierwszoplanowy, 104
uruchomiony w tle, 104
przegl(cid:200)danie stron internetowych w Firefox, 75–77
przekazywanie wyj(cid:258)cia aplikacji
pomi(cid:218)dzy terminalami, 28, 29
przekierowania, 27, 28
punkt montowania, 123
R
Reiser3, 135
Reiser4, 135
ReiserFS, 135
rodzic, 121, 122
rozwi(cid:200)zywanie problemów, 66–69
ruter, 94, 95, 190
211
Kup książkęPoleć książkęSkorowidz
S
SCP, 69–72
Screen, 29–31
Security Enhanced Linux, 95–97
SELinux, 95–97
serwer Apache httpd, 79–81
skróty w programie cron, 160
skrypty, 137–153
sprawdzanie numeru portu, 81, 82
SSH, 72–74
standardowe
wej(cid:258)cie, 104
wyj(cid:258)cie, 104
standardowy strumie(cid:241) b(cid:239)(cid:218)dów, 104
sudo, 97–100
superblock, 50
swap, 121, 122
system plików, 49–64, 123, 134, 135
/proc, 115–118, 123
/sys, 123
systemy plików i katalogów, 122–125
(cid:165)
(cid:258)rodowiska graficzne, 33–47
T
TAR, 60–63, 189
Telnet, 72–74
terminal, 15–31, 29
tworzenie
aliasów, 22–24
pliku crontab, 157, 158
kont u(cid:285)ytkowników, 87–90
kopii zapasowej systemu, 144–146
kopii zapasowych, 182–185
p(cid:218)tli w skrypcie, 141–144
plików i katalogów, 51
skryptów, 137–153
U
uchwyty do plików, 104, 105
Unity, 43, 44
uprawnienia dost(cid:218)pu do pliku, 91–93
UPS, 187
uruchamianie
polecenia, 158–160
w(cid:239)asnego serwera WWW, 79–81
212
urz(cid:200)dzenie, 123
us(cid:239)ugi, 105
usuwanie
pliku crontab, 160
tekstu z pliku, 138–39
uznaniowa kontrola dost(cid:218)pu, 95
uzupe(cid:239)nianie nazw plików, 18–20
Vim, 54–56
V
W
w(cid:200)tki, 105
weryfikacja systemu plików, 129–131
wget, 74, 75
wiersz polece(cid:241), 15–31
w(cid:239)amanie do systemu, 191, 192
wolumeny logiczne, 131–135
xconfig, 171–174
xfce, 39–41
X
Z
zadania, 104
zapora sieciowa, 93–95
zarz(cid:200)dzanie modu(cid:239)ami, 164–169
zg(cid:239)aszanie b(cid:239)(cid:218)dów z pliku crontab, 161
ZIP, 60–63, 189
zmienna, 141
CRON_TZ, 160
EDITOR, 21
HISTSIZE, 18, 21
HOME, 21
HOSTNAME, 21
MAILTO, 160
PATH, 21
PS1, 20, 21, 186
PWD, 21
SHELL, 21, 160
(cid:258)rodowiskowa, 21, 22, 160, 185
TERM, 21
TZ, 21
USER, 21
znak zach(cid:218)ty, 20
znaki w nazwach plików, 25, 26
Kup książkęPoleć książkę
Pobierz darmowy fragment (pdf)