3101. suse linux enterprise 11 – podstawy linuksa. podręcznik

42
3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 1 copyright by NATP PL On-line Education

Upload: kacper07

Post on 22-Dec-2015

6 views

Category:

Documents


0 download

DESCRIPTION

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik

TRANSCRIPT

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 1

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 2

Spis treści

1. Poznaj SUSE.................................................................................................................................... 8

1.1. Instalacja systemu..................................................................................................................... 9

Menu startowe.............................................................................................................................9

Język, tryb, rozdzielczość i rodzaj nośnika instalacji............................................................... 10

Umowa licencyjna.....................................................................................................................10

Tryb instalacji............................................................................................................................11

Zegar i strefa czasowa...............................................................................................................12

Środowisko graficzne................................................................................................................12

Ustawienia instalacji................................................................................................................. 13

Konfiguracja klawiatury........................................................................................................... 14

Partycjonowanie........................................................................................................................14

Wybór oprogramowania............................................................................................................18

Program startowy...................................................................................................................... 19

Wybór programu rozruchowego............................................................................................... 20

Język systemu........................................................................................................................... 20

Poziom pracy systemu.............................................................................................................. 22

Zatwierdzenie instalacji............................................................................................................ 23

Instalacja pakietów....................................................................................................................24

Hasło administratora systemu................................................................................................... 25

Nazwa komputera i domeny..................................................................................................... 26

Konfiguracja sieci..................................................................................................................... 27

Testowanie połączenia z Internetem......................................................................................... 28

Uwierzytelnianie użytkowników.............................................................................................. 29

Tworzenie użytkownika............................................................................................................ 30

Informacje o systemie............................................................................................................... 31

Konfiguracja sprzętu................................................................................................................. 32

Koniec instalacji........................................................................................................................33

Logowanie do systemu..............................................................................................................34

1.2. Wykorzystanie linuksowych interfejsów graficznych............................................................ 35

1.3. Przegląd graficznych interfejsów linuksowych...................................................................... 35

1.4. Wirtualne terminale.................................................................................................................36

1.5. System X Window.................................................................................................................. 38

Warstwy systemu X...................................................................................................................38

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 3

Podstawy pracy z klientami serwera X..................................................................................... 40

Start X serwera..........................................................................................................................40

Zdalna praca w środowisku graficznym................................................................................... 41

Kontrola dostępu....................................................................................................................... 42

Tunelowanie X sesji poprzez SSH............................................................................................ 43

1.6. Wykorzystanie środowiska graficznego GNOME..................................................................44

Logowanie.................................................................................................................................44

Wylogowanie i wyłączenie komputera..................................................................................... 45

Identyfikacja składników pulpitu GNOME.............................................................................. 47

Zarządzanie ikonami w GNOME..............................................................................................50

Pulpit......................................................................................................................................... 50

Panel..........................................................................................................................................51

Główne Menu............................................................................................................................52

Wykorzystanie menadżera plików GNOME (Nautilus)........................................................... 52

1.7. Dostęp do interfejsu linii poleceń z pulpitu............................................................................ 53

2. Pomoc w systemach linuksowych.................................................................................................. 55

2.1. Dostęp i korzystanie ze stron podręcznika (manuala)............................................................ 55

Nagłówek strony podręcznika...................................................................................................56

2.2. Użycie stron Info.................................................................................................................... 58

2.3. Użycie Access Release Notes i White Papers.........................................................................59

Release Notes............................................................................................................................ 59

Howto........................................................................................................................................59

Pomoc dla pakietów instalacyjnych.......................................................................................... 60

2.4. Użycie pomocy w trybie graficznym w systemie Linux........................................................ 60

Wyświetlanie Centrum pomocy SUSE..................................................................................... 60

2.5. Wyszukiwanie pomocy w Internecie...................................................................................... 61

3. Zarządzanie systemami plików...................................................................................................... 62

3.1. FHS – standard hierarchicznej struktury plików.................................................................... 62

Katalogi niezbędne....................................................................................................................63

3.2. Adresowanie względne i bezwzględne................................................................................... 73

3.3. Typy plików w systemie Linux...............................................................................................74

Pliki normalne........................................................................................................................... 74

Katalogi..................................................................................................................................... 74

Pliki urządzeń............................................................................................................................74

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 4

Linki - łącza - dowiązania......................................................................................................... 74

Gniazda..................................................................................................................................... 75

FIFO.......................................................................................................................................... 75

3.4. Zmiana katalogów i wyświetlanie ich zawartości.................................................................. 75

Pokazywanie zawartości katalogów – polecenie ls...................................................................75

Przechodzenie pomiędzy katalogami polecenie – cd................................................................76

Polecenie pwd........................................................................................................................... 76

3.5. Tworzenie i podgląd plików....................................................................................................76

Tworzenie nowego pliku poleceniem touch..............................................................................76

Przeglądanie pliku poleceniem cat............................................................................................77

Wyświetlanie pliku poleceniem less......................................................................................... 77

Wyświetlanie pliku poleceniami head i tail.............................................................................. 78

3.6. Praca z plikami i katalogami...................................................................................................78

Kopiowanie, przenoszenie plików i katalogów........................................................................ 78

Tworzenie katalogów................................................................................................................ 79

Usuwanie plików i katalogów...................................................................................................80

Linki - łącza-dowiązania........................................................................................................... 80

3.7. Wyszukiwanie plików w linuksie........................................................................................... 81

Graficzne narzędzia wyszukiwania...........................................................................................81

Polecenie find............................................................................................................................82

Polecenie locate.........................................................................................................................84

Polecenie whereis......................................................................................................................85

Polecenie which........................................................................................................................ 85

Polecenie type........................................................................................................................... 85

3.8. Przeszukiwanie zawartości plików......................................................................................... 86

Polecenie grep i egrep............................................................................................................... 86

Wyrażenia regularne..................................................................................................................87

4. Praca z powłoką i linią poleceń ..................................................................................................... 90

4.1. Typy powłok........................................................................................................................... 90

4.2. Tryby pracy powłoki...............................................................................................................91

Tryb logowania......................................................................................................................... 92

Tryb logowania bash ................................................................................................................ 93

Tryb interaktywny bez logowania.............................................................................................93

Tryb nieinteraktywny................................................................................................................ 94

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 5

4.3. Wiersz poleceń........................................................................................................................94

Uzupełnienie poleceń i nazw plików........................................................................................ 95

Przełączanie na użytkownika root.............................................................................................96

4.4. Uruchamianie programów...................................................................................................... 96

Uruchamianie programów z przekazywaniem terminala sterującego......................................96

Uruchamianie programów w tle................................................................................................97

4.5. Strumienie...............................................................................................................................99

4.6. Potoki.................................................................................................................................... 100

4.7. Listy...................................................................................................................................... 100

4.8. Polecenia złożone................................................................................................................. 101

4.9. Rozwinięcie poleceń............................................................................................................. 103

4.10. Zmienne i aliasy..................................................................................................................103

Zmienne.................................................................................................................................. 103

Aliasy...................................................................................................................................... 105

4.11. Symbole wieloznaczne – zmienne globalne....................................................................... 106

4.12. Wyrażenia regularne........................................................................................................... 107

5. Administracja Linuksa za pomocą YaST......................................................................................108

5.1 Co to jest YaST...................................................................................................................... 108

5.2 Zrozumienie roli SuSEconfig................................................................................................ 110

5.3. Zarządzanie informacją o konfiguracji sieci z YaST-a..........................................................111

6 Użytkownik, grupy i uprawnienia................................................................................................. 119

6.1. Zarządzanie kontami użytkowników i grup za pomocą YaSTa............................................ 119

Podstawowe informacje o użytkownikach i grupach..............................................................119

Zarządzanie użytkownikami za pomocą YaSTa......................................................................120

Zakładanie nowych kont użytkowników................................................................................ 122

Modyfikacja kont użytkowników........................................................................................... 123

Zarządzanie grupami za pomocą YaSTa................................................................................. 126

6.2. Użytkownicy i grupy – więcej szczegółów.......................................................................... 128

Baza danych użytkowników i grup......................................................................................... 129

Hasła - parę słów o kryptografii..............................................................................................129

Plik /etc/passwd.......................................................................................................................132

Plik etc/shadow....................................................................................................................... 133

Plik /etc/group......................................................................................................................... 135

6.3. Zarządzanie użytkownikami z wiersza poleceń....................................................................136

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 6

useradd.................................................................................................................................... 136

userdel..................................................................................................................................... 137

usermod...................................................................................................................................138

passwd.....................................................................................................................................138

6.4. Zarządzanie grupami z linii poleceń................................................................................ 139

groupadd..................................................................................................................................139

groupdel.................................................................................................................................. 140

groupmod................................................................................................................................ 140

gpasswd...................................................................................................................................141

6.5. Tworzenie komunikatu wyświetlanego podczas logowania użytkowników........................141

6.6. Zarządzanie uprawnieniami do plików i właścicielami........................................................142

Prawa dostępu......................................................................................................................... 142

Zrozumienie uprawnień do plików......................................................................................... 145

Zmiana uprawnień do pliku poprzez polecenie chmod...........................................................147

Zmiana właściciela i grupy..................................................................................................... 148

Modyfikacja domyślnych uprawnień dostępu........................................................................ 148

Konfiguracja specjalnych uprawnień do plików.....................................................................150

6.7. Zapewnienie bezpieczeństwa systemu plików..................................................................... 151

Podstawowe zasady dostępu do zapisu dla użytkownika.......................................................151

Podstawowe zasady dostępu do odczytu dla użytkownika..................................................... 152

Wykorzystanie uprawnień specjalnych do zabezpieczenia systemu plików...........................153

7. Edytory tekstu...............................................................................................................................154

7.1 Podstawowe wiadomości o edytorach tekstowych................................................................154

7.2. Wykorzystanie edytora vi do edycji plików..........................................................................155

Startowanie vi......................................................................................................................... 155

Wykorzystanie edytora vi........................................................................................................156

Zaawansowane polecenia vi....................................................................................................158

8. Oprogramowanie ......................................................................................................................... 161

8.1. Kompilacja oprogramowania................................................................................................161

Język C....................................................................................................................................161

Bibioteki współdzielone..........................................................................................................161

Zależności między bibliotekami - ldd..................................................................................... 162

Lista katalogów z bibliotekami - /etc/ld.so.conf..................................................................... 162

Aktualizacja pamięci podręcznej bibliotek............................................................................. 163

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 7

Łańcuch narzędzi programistycznych GNU........................................................................... 164

Typowy proces kompilacji programu......................................................................................164

Typowy proces instalacji programu........................................................................................ 165

8.2 Systemy zarządzania pakietami............................................................................................. 166

Właściwości RPM...................................................................................................................167

Podstawy RPM........................................................................................................................167

Zarządzanie pakietami RPM................................................................................................... 169

Weryfikacja autentyczności oprogramowania........................................................................ 169

Instalacja, aktualizacja i deinstalacja pakietów.......................................................................170

8.3. Zarządzanie pakietami - YaST......................................................................................... 175

8.4. Zarządzanie oprogramowaniem za pomocą programu zypper............................................. 176

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 119

6 Użytkownik, grupy i uprawnieniaZarządzanie użytkownikami, grupami i uprawnieniami

System operacyjny Linux może obsługiwać wielu użytkowników naraz (jest systemem wieloużytkownikowym).

Co więcej, użytkownicy ci mogą wykonywać wiele różnych zadań na danym komputerze jednocześnie (system wielozadaniowy).

Aby to umożliwić, zapewniając równocześnie bezpieczeństwo danych i aplikacji, system wykorzystuje:

• zabezpieczenia systemu plików,

• podział na użytkowników i grupy,

• prawa dostępu i prawa właściciela pliku,

• zarządzanie uprawnieniami do plików i właścicielami,

• zapewnienie bezpieczeństwa systemowi plików.

Zasady zarządzanie użytkownikami, grupami i uprawnieniami zostały przedstawione w poniższych rozdziałach

• Zarządzanie za pomocą YAST-a

• Użytkownicy i grupy - więcej szczegółów

• Zarządzanie użytkownikami z wiersza poleceń

• Tworzenie komunikatu wyświetlanego podczas logowania użytkowników

• Zarządzanie uprawnieniami do plików i właścicielami

• Zapewnienie bezpieczeństwa systemu plików

6.1. Zarządzanie kontami użytkowników i grup za pomocą YaSTa

Podstawowe informacje o użytkownikach i grupach

Każdy użytkownik jest jednoznacznie identyfikowany w systemie przez swoje konto użytkownika.

Każde konto składa się z nazwy i hasła dostępu, które są wymagane do zalogowania się w systemie.

Użytkownicy wymagający podobnych praw dostępu do plików i aplikacji - mogą być łączeni w grupy.

Aby efektywnie zarządzać użytkownikami i grupami musimy rozróżnić pojęcia: numer identyfikacyjny (ID) użytkownika i grupy.

Jako, że system operacyjny znacznie lepiej radzi sobie z liczbami niż z ciągami liter, użytkownicy są kodowani liczbami.

Taka liczba, określająca danego użytkownika, nazywana jest UID (User ID- identyfikator użytkownika).

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 120

W każdym systemie linuksowym istnieje uprzywilejowany użytkownik, administrator systemu zwany root.

Użytkownik ten ma zawsze UID 0.

Przydzielanie numerów dla zwyczajnych użytkowników w systemie SUSE Linux zaczyna się od 1000.

Jak w przypadku użytkowników, również każdej grupie jest przydzielony numer zwany Group ID (GID).

Większość zwykłych użytkowników jest dodawana do grupy users.

W systemie istnieją też inne grupy, zazwyczaj używane do zadań specjalnych.

Istnieją trzy typy grup:

• grupy standardowe (GID ≥ 100),

• grupy systemowe (GID ˂ 100),

• grupa root (GID = 0).

W systemach operacyjnych Linux są dwa główne rodzaje użytkowników:

• zwykli użytkownicy: są to konta pozwalające na dostęp użytkowników do systemu i bezpieczną w nim pracę. Kontami zarządza administrator systemu.

• użytkownicy systemowi: są to konta tworzone podczas instalacji systemu używane przez rozmaite usługi, narzędzia i aplikacje, aby zapewnić efektywną pracę serwera.

Grupy prywatne i publiczne: Przy tworzeniu użytkownika w systemie Linux jest on przydzielony do grupy wg jednego z dwóch schematów:

• prywatna: wg tego schematu użytkownik jest przydzielany do swojej własnej grupy, którą może dowolnie zarządzać (np. użytkownik ala jest przydzielany do grupy ala)

• publiczna: wg tego schematu nowy użytkownik trafia po utworzeniu do ogólnej grupy skupiającej wszystkich użytkowników, np. users.

Zarządzanie użytkownikami za pomocą YaSTa

W środowisku graficznym można zarządzać użytkownikami za pomocą YaSTa.

Odpowiedni moduł YaSTa możemy uruchomić na 2 sposoby:

• po uruchomianiu YaSTa i podaniu hasła konta root należy wybrać Security and Users -> Edit and create users,

• można również otworzyć okno terminala, wpisać komendę su - oraz podać hasło roota. Następnie należy wpisać yast2 users.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 121

W obydwu przypadkach pojawi się następujące okno:

W środkowej części okna znajduje się lista kont użytkowników z takimi informacjami, jak: login, nazwa użytkownika (Name) , UID i lista grup (Groups), do których dany użytkownik należy.

W przypadku, gdy chcemy zmienić typ wyświetlanych użytkowników, klikamy na przycisk Set Filter, a następnie wybieramy z menu jedną z dostępnych opcji:

Użytkownicy lokalni Local Users. Utworzone przez administratora konta użytkowników, dzięki którym mogą oni logować się do systemu.

Użytkownicy systemowi System Users. Utworzone przez system konta użytkowników, niezbędne dla poprawnego działania niektórych usług oraz programów.

Dowolny Custom, Wyświetla listę użytkowników wg kryteriów skonfigurowanych przy pomocy opcji Customize Filter.

Dostosuj filtr Customize Filter. Opcja pozwalająca dobrać typy użytkowników (np. użytkownicy lokalni i użytkownicy systemowi), które zostaną wyświetlone po wybraniu opcji Dowolny.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 122

Zakładanie nowych kont użytkowników

Konta dla nowych użytkowników mogą zostać utworzone po naciśnięciu przycisku Add.

Po wybraniu tej opcji system poprosi o wybranie typu użytkownika (lokalny lub systemowy).

Następnie pojawi się okno:

W celu utworzenia nowego konta użytkownika należy wypełnić powyższy formularz podając następujące dane:

• Full User Name – Nazwa/opis użytkownika (np. Sandy Geeko)

• User Login – login, który będzie używany w celu zalogowania się użytkownika do systemu

• Password i Verify Password – hasło i jego potwierdzenie. Hasło będzie potrzebne do zalogowania się użytkownika do systemu. Należy pamiętać o rozróżnianiu przez system dużych i małych liter. Prawidłowo dobrane hasło powinno zawierać litery, cyfry, spacje oraz znaki, takie, jak: #*,.;:._-+!$%&/|?{ [()] }=. Długość hasła powinna wynosić od 5-8 znaków.

Przeznaczenie i opis opcji Password Settings oraz Details zostanie omówione nieco później.

Po wpisaniu wszystkich informacji należy kliknąć na przycisk Create.

Nowe konto użytkownika zostanie dodane i pojawi się na liście.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 123

Modyfikacja kont użytkowników

Aby zmienić parametry danego konta użytkownika, należy wybrać to konto z listy, a następnie wcisnąć przycisk Edit.

Pojawi się okienko, w którym możemy zmienić Nazwę użytkownika, login, oraz hasło:

Aby zmodyfikować zaawansowane ustawienia użytkownika, należy wcisnąć przycisk Details.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 124

Na ekranie pojawi się następujące okno:

Możemy tu zmienić lub ustawić takie parametry konta, jak:

• User ID (UID) – liczbowy (numeryczny) identyfikator użytkownika.

Dla zwykłych użytkowników liczba ta powinna być większa od 499, gdyż mniejsze UID zarezerwowane są dla systemu.

Należy pamiętać, że jeżeli zmienimy UID już istniejącego użytkownika, musimy zmienić prawa dostępu do plików należących do tego użytkownika. System automatycznie zmieni prawa dostępu dla plików zlokalizowanych w katalogu domowym użytkownika, lecz nie zmieni ich dla plików zlokalizowanych w innych miejscach.

• Home Directory – wskazanie katalogu domowego użytkownika. Standardowo jest to katalog/home/nazwa_uzytkownika.

Jeżeli chcemy go zmienić, należy nacisnąć przycisk Browse, a następnie wskazać nowy katalog.

• Additional User Information – możemy tu wprowadzić dodatkowe informacje o użytkowniku składające się z 3 części oddzielonych przecinkami. Najczęściej podaje się tutaj nazwę biura, telefon służbowy oraz telefon domowy użytkownika.

Informacje te zostaną wyświetlone, gdy użyjemy polecenia finger.

• Login shell – z rozwijanej listy możemy wybrać domyślną powłokę logowania spośród wielu dostępnych powłok zainstalowanych w systemie.

• Default Group – nazwa domyślnej grupy, do której użytkownik należy. Możemy ją wybrać z rozwijanej listy.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 125

• Additional group membership – można wybrać i zaznaczyć dodatkowe grupy, do których dany użytkownik ma należeć.

Po wprowadzeniu zmian wystarczy nacisnąć przycisk Next w celu ich akceptacji.

Możemy również skonfigurować ustawienia hasła (jak np. data jego ważności) - osobno dla każdego użytkownika.

Wystarczy wybrać konto danego użytkownika z listy, nacisnąć przycisk Edit, a następnie wybrać opcję Password Settings.

Zostanie wyświetlone następujące okno:

W górnej części okna znajduje się informacja o dacie ostatniej zmiany hasła.

Możemy tu również ustawić takie parametry, jak:

• Days before Password Expiration to Issue Warning – podajemy, na ile dni przed wygaśnięciem hasła użytkownik ma zostać poinformowany o tym fakcie.

Jeśli nie chcemy, aby pojawiało się ostrzeżenie o wygaśnięciu hasła, wpisujemy -1.

• Days after Password Expires with Usable Login – podajemy, przez ile dni po wygaśnięciu hasła użytkownik może się logować.

Jeśli chcemy, aby użytkownik miał nieograniczony dostęp do konta, wpisujemy -1.

• Maximum number of days for the same password – podajemy maksymalną liczbę dni posługiwania się tym samym hasłem, zanim hasło wygaśnie.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 126

• Minimum number of days for the same password – podajemy minimalną liczbę dni, które muszą upłynąć od wprowadzenia nowego hasła, zanim użytkownik będzie mógł je zmienić.

• Expiration date – data wygaśnięcia konta. Data powinna być zapisana w formacie RRRR-MM-DD.

Jeżeli pozostawimy pole puste - konto nigdy nie wygaśnie.

Po zakończeniu edycji ustawień hasła, należy nacisnąć przycisk Next, w celu akceptacji zmian.

Zarządzanie grupami za pomocą YaSTa

W podobny sposób można zarządzać grupami za pomocą odpowiedniego modułu YaSTa.

Możemy go uruchomić na 2 sposoby:

• po uruchomianiu YaSTa i podaniu hasła konta root należy wybrać Security and Users ->Edit and create groups.

• można otworzyć okno terminala, wpisać polecenie sux oraz podać hasło roota. Następnie należy wpisać yast2 groups.

W środkowej części okna znajduje się lista grup z takimi informacjami jak nazwa grupy, GID i lista użytkowników należących do danej grupy.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 127

W przypadku, gdy chcemy zmienić zakres wyświetlanych grup, klikamy na przycisk Set Filter , a następnie wybieramy z menu jedną z dostępnych opcji:

• Grupy lokalne Local Groups – wyświetla utworzone na lokalnej maszynie grupy, dzięki którym można przydzielać określone uprawnienia członkom danej grupy,

• Grupy systemowe System Groups – wyświetla grupy, które zostały stworzone przez system, konieczne do funkcjonowania usług i aplikacji,

• Dowolny Custom – wyświetla listę grup wg kryteriów podanych przy pomocy opcji Customize Filter.

• Dostosuj filtr Customize Filter – umożliwia wyświetlenie zarówno grup systemowych jak i lokalnych (przy wykorzystaniu opcji Custom).

W celu utworzenia nowej grupy należy nacisnąć przycisk Add. Po wybraniu tej opcji system poprosi o wybranie typu grupy (lokalna lub systemowa), którą chcemy utworzyć.

Następnie pojawi się okno:

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 128

Aby utworzyć grupę należy wypełnić formularz podając następujące dane:

• Group Name – Nazwa grupy. Nie należy podawać długich nazw. Nazwa grupy powinna zawierać od 2 do 8 znaków.

• Group ID (GID). Identyfikator nadany grupie. Numer grupy musi być liczbą z przedziału od 0 do 60 000 z tym, że zwykłym grupom lokalnym można przydzielać jedynie identyfikatory o wartości powyżej 99 (identyfikatory od 0 do 99 odpowiadają grupom systemowym). Jeżeli podany numer jest już wykorzystany przez inną grupę, YaST o tym poinformuje.

• Enter a Password (opcjonalnie). Jeśli chcemy, aby członkowie grupy uwierzytelniali się przy każdorazowym przełączeniu do danej grupy (zobacz man newgrp), przydzielamy grupie hasło.

• Reenter the Password – Należy ponownie wprowadzić hasło, w celu jego weryfikacji.

• Members of This Group – należy zaznaczyć, którzy użytkownicy mają należeć do tworzonej grupy.

Jeżeli wprowadziliśmy wymagane dane, należy nacisnąć przycisk Next. Grupa zostanie utworzona.

6.2. Użytkownicy i grupy – więcej szczegółów

Informacje o użytkowniku i grupach, do których użytkownik należy, otrzymamy poleceniem id w oknie terminala:

Możemy podać polecenie id nazwa_użytkownika, aby uzyskać informacje o konkretnym użytkowniku:

Aby uzyskać informację o tym, do jakich grup należy użytkownik, podajemy polecenie groups (w przypadku, jeśli chcemy poznać grupy, do jakich sami należymy) bądź groups nazwa_użytkownika (w przypadku innego użytkownika):

Każdy użytkownik ma swoje środowisko pracy identyfikowane jego nazwą i chronione hasłem.

Dzięki takiemu rozwiązaniu - osobiste dane użytkowników są chronione przed modyfikacją, odczytem i usuwaniem przez innych.

Każdy użytkownik ma też swój własny katalog, który jest podkatalogiem katalogu /home.

Wyjątkiem jest administrator systemu, którego katalog /root NIE jest podkatalogiem /home.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 129

System Linux przechowuje konfigurację dotyczącą użytkowników i grup w plikach: /etc/passwd, /etc/shadow oraz /etc/group.

Pliki te powinny być modyfikowane z wykorzystaniem narzędzi zapewnianych przez YaST, bądź poleceń wiersza poleceń, nie zaś za pomocą bezpośredniej modyfikacji w edytorze tekstu.

Baza danych użytkowników i grup

Baza danych użytkowników i grup jest podzielona na cztery pliki:

• /etc/passwd rw-r--r--

• /etc/shadow rw-r----

• /etc/group rw-r--r--

• /etc/gshadow rw-r----

Pierwsze dwa zawierają informacje o użytkownikach, dwa ostatnie o grupach.

Baza danych użytkowników i grup musi być dostępna do czytania dla każdego procesu w systemie, dlatego rozdzielono bazę na dwa pliki.

W pliku /etc/shadow znajdują się wrażliwe dane - hasła użytkowników.

Niewiele programów (np. login) potrzebuje dostępu do hasła. Programy te muszą odczytywać bazę z prawami supervisora (nadzorcy).

Plik /etc/gshadow jest odpowiednikiem /etc/shadow dla pliku grup.

Hasła w pliku /etc/shadow przechowywane są w postaci zaszyfrowanej.

W postaci jawnego tekstu istnieją tylko podczas pracy programu passwd, który pobiera od użytkownika hasło, szyfruje je i zapisuje w bazie.

Mimo to, baza nie może być dostępna do czytania dla wszystkich, aby nie dostarczać materiału do kryptoanalizy.

Hasła - parę słów o kryptografii

Upowszechniły się dwa sposoby szyfrowania hasła przed umieszczeniem go w bazie:

• za pomocą jednokierunkowej funkcji skrótu,

• za pomocą symetrycznego szyfru blokowego, gdzie hasło jest kluczem.

Jednokierunkowa funkcja skrótu odwzorowywuje większy zbiór tekstów jawnych na mniejszy (o długości skrótu) co powoduje, że naturalną dla niej rzeczą są kolizje, czyli sytuacje, że dwa testy jawne będą dawały ten sam skrót.

Logując się do systemu wykorzystującego jednokierunkowe funkcje skrótu, możemy podać de facto kilka kombinacji, które dadzą ten sam skrót.

Prawdopodobieństwo kolizji rośnie wraz ze wzrostem zbioru możliwych tekstów jawnych, a maleje wraz ze wzrostem zbioru możliwych skrótów.

Przykładowo funkcja MD5 generuje 128b skrót. To oznacza, że istnieje 2 do potęgi 128 wszystkich skrótów.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 130

Ponieważ funkcja jest jednokierunkowa - ze skrótu nie otrzymamy nigdy tekstu jawnego, ale możemy szyfrować po kolei wszystkie możliwe teksty jawne i porównywać je ze skrótem. Jeśli wykryjemy zgodność to oznacza że mamy hasło.

Każdy algorytm pozwalający wyszukać kolizję szybciej jest uznawany za złamanie danej funkcji.

Dla funkcji MD5 Vlastimil Klima z Czech opracował algorytm pozwalający znaleźć kolizję w 8 godzin przy wykorzystaniu 1,6GHz laptopa.

Gdy są już znane szybkie algorytmy wyszukiwania kolizji oznacza to, że funkcja posiada błędy projektowe, więc dalsze jej wykorzystywanie mija się z celem.

Dla funkcji, których znane algorytmy łamiące nie są w stanie osiągnąć więcej niż kilka rzędów wielkości istnieje technika aby wydłużać skrót (wyjście funkcji) co rozszerzy obszar poszukiwań.

Tak się dzieje teraz z funkcją SHA. Prace nad algorytmami łamiącymi jak zwykle trwają, a w międzyczasie wydłuża się wyjście aby dostosować je do postępów tych prac.

Funkcja SHA jest o tyle ciekawa, że jest przykładem kodu obcych, algorytmem zaproponowanym przez NSA.

Kryptografia wojskowa korzysta z zamkniętych podręczników, przez co nie bardzo wiadomo, jak rzeczywiście są bezpieczne są te algorytmy, gdyż ich konstrukcje mogą opierać się na czymś, co nie zostało jeszcze odkryte w cywilnej kryptografii.

Wiadomo na pewno, że wojsko nie upublicznia szyfrów, których nie potrafi złamać w rozsądnym czasie.

Obecnie funkcję SHA-1 produkującą 160b skrót kryptoanaliza cywilna potrafi złamać w 2 do potęgi 52 prób (w stosunku do 2 do potęgi 80 wymaganych do brutalnego przeszukania).

Zalecenia NIST są takie, że do 2010 roku bezpieczne były algorytmy, których kryptoanaliza wymagała 2 do potęgi 80 prób.

Można

• używać funkcji dającej większy skrót, np SHA512, lecz to wystawia nas dalej na ataki wojskowe, gdyż zakładamy, że znają krótszą drogę;

albo

• można użyć mocnego symetrycznego szyfru blokowego.

W systemie SLE/OpenSUSE domyślnie używanym algorytmem chroniącym hasła użytkowników jest blowfish.

Jest to dobry wybór, gdyż jest to mocny cywilny algorytm. Zaproponowany został w 1993 r. przez Brucea Scheiera. Obecnie nie są znane ataki na blowfish o pełnej liczbie cykli. Jest to algorytm otwarty, w stosunku do którego kryptoanaliza była prowadzona przez 16 lat.

Długość istnienia szyfru warunkuje jego bezpieczeństwo, bowiem algorytm uznaje się za bezpieczny, gdy opiera się kryptoanalizie przez 10 lat. Musi też być otwarty, gdyż tylko wtedy można go badać.

Algorytmy nieprzebadane nie gwarantują bezpieczeństwa.

Algorytmy, w pracach nad którymi brały udział jakieś agencje rządowe, są podejrzewane o istnienie ukrytych zapadek lub możliwą kryptoanalizę w oparciu o zamknięte wyniki prac badawczych prowadzonych nieprzerwanie od końca II wojny.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 131

Ogólnie - między rokiem 50 a 70 powstała technologiczna dziura w kryptografii cywilnej i wojskowej. Pewne fakty wskazują na to, że większość z tej dziury udało się nadrobić, jednak nie wiadomo dokładnie ile.

To, jakiego algorytmu możemy używać do szyfrowania hasła, zależy od implementacji funkcji crypt(), która w systemach z rodziny unix służy jako interfejs do szyfrowania haseł.

Generalnie implementowane są takie algorytmy, które są wystarczająco odporne na ataki ze znanym tekstem jawnym.

Dodatkowo modyfikuje się dany algorytm, aby go maksymalnie spowolnić ale nie popsuć, by przeszukanie przestrzeni kluczy trwało dłużej.

Spopularyzowały się cztery schematy, które możemy w pliku /etc/shadow poznać po początkowych literach wpisu w polu hasła

$numer_algorytmu$sól_kryptogram

Sól została wprowadzona po to, by uniemożliwić napastnikowi hurtowe sprawdzenie całej bazy haseł, czyli aby w stosunku do każdego hasła musiał wykonać osobne szyfrowanie celem dokonania sprawdzenia.

Dodatkowo sól jest wykorzystywana właśnie do rozróżnienia algorytmów szyfrowania.

$1$ - algorytm MD5. Nie jest obecnie kryptograficznie bezpieczny.

$2$ lub $2a$ - algorytm Blowfish. Jest kryptograficznie bezpieczny.

$5$ lub $6$ - algorytm SHA. Jest na razie bezpieczny, ale jest kodem obcych.

brak $..$ - algorytm DES. Nie jest obecnie kryptograficznie bezpieczny.

Wybór Blowfish wydaje się być najlepszym wyborem, stąd zmiana domyślnych ustawień SLES nie jest obecnie wskazana.

Jest za to wysoce wskazane używanie mocnych haseł.

Długość hasła warunkuje ilość sprawdzeń, które będzie musiał dokonać atakujący w pesymistycznym przypadku. Będzie on starał się wyeliminować część sprawdzeń (lub przesunąć je na koniec) zakładając, że użytkownik popełnił jakiś błąd przy konstrukcji hasła (np. użył słowa występującego w słowniku). Taki błąd pozwoli na przeszukiwanie selektywne przestrzeni kluczy zaczynając od wariantów bardziej prawdopodobnych niż inne.

Hasło powinno być przechowywane w pamięci lub w portfelu na klucze kryptograficzne.

Do audytu bazy haseł używamy programu John the Ripper dostępnego na http://openwall.com/john.

Należy również zbudować jak największy słownik.

W sieci można znaleźć wiele słowników, należy je po prostu połączyć w przemyślany sposób.

Istnieją wersje programu John the Ripper zarówno pracujące na blibliotece MPI http://www.bindshell.net/tools/johntheripper/john-1.7.2-bp17-mpi2.tar.gz, jak i w środowisku sieciowym http://sourceforge.net/projects/djohn/ .

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 132

Plik /etc/passwd

Plik etc/passwd przechowuje informacje o każdym użytkowniku, między innymi: nazwę, numer UID, katalog domowy i standardową powłokę.

Przykładowy użytkownik:

Kolejne elementy oznaczają:

• Nazwa użytkownika, podawana podczas logowania się do systemu. Ze względu na kompatybilność ze starszymi programami - nie powinna być dłuższa niż 8 znaków.

• Hasło – Symbol x w tym polu oznacza, że hasła w postaci zaszyfrowanej są przechowywane w pliku /etc/shadow

• UID – numer użytkownika. Numery od

• 0 - 99 są zarezerwowane dla systemu,

• 100 - 499 dla użytkowników systemowych (np. programy lub usługi),

• powyżej 1000 są przeznaczone dla zwykłych użytkowników.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 133

• GID – numer grupy, do której należy dany użytkownik

• 0-99 przeznaczone są dla grup specjalnych takich jak np. usługi FTP itd.

• od 100 normalne grupy

• Komentarz – zwykle podaje się tu imię i nazwisko użytkownika oraz inne informacje jak np. numer telefonu czy numer pokoju

• Katalog domowy – zawiera ścieżkę do katalogu użytkownika, dla normalnych użytkowników jest to przeważnie katalog o nazwie identycznej z login_name zlokalizowany w katalogu /home

• Standardowa powłoka – jest to ścieżka do powłoki uruchamianej po zalogowaniu się użytkownika do systemu. W systemach Linux jest to zwykle powłoka Bash. Może być ona zmieniona za pomocą komendy chsh.

Plik etc/shadow

Plik etc/shadow przechowuje informacje o hasłach i same hasła w postaci zaszyfrowanej.

Jest wykorzystywany przez większość systemów Linux.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 134

Kolejne pozycje (rozdzielone ":") oznaczają:

• nazwa użytkownika;

• hasło w postaci zaszyfrowanej;

• data ostatniej zmiany hasła;

• liczba dni, po których hasło może zostać zmienione;

• ilość dni, po których hasło musi zostać zmienione;

• na ile dni przed wygaśnięciem hasła nastąpi ostrzeżenie użytkownika o tym fakcie;

• ile dni po wygaśnięciu hasła użytkownik wciąż może logować się do systemu;

• dzień, w którym konto zostało zablokowane (w postaci daty uniksowej).

Na powyższym zrzucie ekranu można odnaleźć informacje, między innymi, dla roota oraz geeko.

Zakodowane hasło ma zawsze 13 znaków długości.

Jeśli zamiast hasła w postaci zakodowanej w tym polu znajduje się ‘*’ oznacza to, że dany użytkownik nie loguje się do systemu (np. użytkownik wwwrun).

Jeśli pole hasła jest puste - użytkownik może zalogować się do systemu bez podawania hasła. Należy unikać takich sytuacji.

Może się zdarzyć, że wpis dotyczący użytkownika będzie znajdował się w pliku/etc/passwd, ale nie będzie w /etc/shadow. Może się to zdarzyć np. w przypadku edycji plików w edytorze.

Wtedy rozwiązaniem problemu jest wydanie polecenia pwconv, które słudzy do scalania plików/etc/passwd oraz /etc/shadow.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 135

Plik /etc/group

Plik /etc/group przechowuje informacje o grupach.

Każdy wiersz zawiera informacje o pojedynczej grupie (nazwa, hasło, numer GID, należący do niej użytkownicy).

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 136

6.3. Zarządzanie użytkownikami z wiersza poleceń

W wierszu poleceń można wykonać te same operacje na użytkownikach, co za pomocą narzędzia YaST.

By można było wykonać tego rodzaju polecenia - niezbędne jest posiadanie praw użytkownika root.

useradd

Wynik polecenia useradd zależy od trzech czynników:

• parametrów wiersza poleceń,

• pliku etc/login.defs,

• pliku /etc/default/useradd.

Poniższa tabela zawiera zestawienie najważniejszych opcji polecenia useradd:

Opcja Znaczenie Przykład

bez opcji

Tworzy użytkownika z domyślnymi ustawieniami

useradd joe

-m Tworzy konto użytkownika joe wraz z katalogiem domowym /home/joe lub katalogiem podanym po opcji -m

useradd –m joe

-c Przy tworzeniu użytkownika z pomocą tej opcji wypełniamy pole komentarza

useradd –c „Joe Monster” joe -tworzy konto użytkownika joe o pełnej nazwie Joe Monster

-u Opcja ta umożliwia utworzenie konta użytkownika o podanym identyfikatorze

useradd – u 3001 joe tworzy użytkownika joe o numerze 3001

-g Opcja ta definiuje podstawową grupę użytkownika

usseradd -g ftpusers joe – tworzy użytkownika joe którego grupą podstawową jest ftpusers

-p Opcja pozwala na stworzenie użytkownika wraz z hasłem. Hasło musi być zaszyfrowane więc tworzymy go poleceniem mkpasswd

Tworzymy użytkownika dając mu równocześnie hasło utworzone za pomocą mkpasswd

-e Opcja ta pozwala na ustalenie daty ważności konta

useradd -m -e 2007-06-20 joe – tworzymy użytkownika którego konto traci ważność w dniu 20.06.2007

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 137

Zmiana hasła dla nowo utworzonego użytkownika jest możliwa po wydaniu polecenia passwd np. passwd joe.

Gdy tworzymy nowego użytkownika, konieczne informacje o standardowej konfiguracji system czerpie z dwóch plików: /etc/default/useradd i /etc/login.defs.

Przykładową zawartość pliku /etc/default/useradd przedstawiono poniżej.

Zmienne w pliku mają następujące znaczenie:

• GROUP – grupa podstawowa do której będzie należał tworzony użytkownik

• HOME - ścieżka gdzie będą składowane katalogi domowe użytkowników

• INACTIVE - liczba dni bezczynnych po wygaśnięciu hasła przed zablokowaniem konta (-1 blokuje tą opcje)

• EXPIRE – data ( dni od 1 stycznia 1970) kiedy konto traci ważność

• SHELL – ścieżka do powłoki logowania

• SKEL – ścieżka szkieletu katalogu domowego

• GROUPS – pozostałe grupy do których będzie należał użytkownik

• CREATE_MAIL_SPOOL zmienna specyfikuje czy katalog składowania poczty ma być tworzony automatycznie

userdel

Polecenie userdel spowoduje usunięcie istniejącego konta użytkownika.

Możliwe jest użycie wraz z tym poleceniem parametru –r, który powoduje usunięcie także katalogu domowego użytkownika.

Aby usunąć wszystkie pliki w systemie należące do danego użytkownika, należy znać jego UID (user ID). Wówczas system zlokalizuje wszystkie pliki należące do danego użytkownika leżące poza katalogiem domowym.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 138

Po podaniu polecenia:

find / -uid UID_uzytkownika – exec rm {} \;

kasujemy wszystkie pliki należące do danego użytkownika będące w systemie.

Przykładowo userdel –r joe – kasuje konto użytkownika joe wraz z jego katalogiem domowym.

usermod

Polecenie usermod pozwala na modyfikacje niektórych parametrów związanych z użytkownikiem (np. jego UID, grupa, powłoka).

Parametry tego polecenia są podobne do polecenia useradd.

Przykłady:

usermod –d /home/newhome/joe –m joe – zmienia katalog domowy użytkownika joe z poprzedniej lokalizacji na /home/newhome/joe

usermod –u 10000 joe – zmienia numer UID użytkownika joe na 10000

passwd

Polecenie passwd służy przede wszystkim do zmiany hasła, może jednak wypełniać też inne funkcje.

Jeśli zostanie podane przez zwykłego użytkownika, służy tylko do zmiany hasła tego użytkownika, jeśli natomiast zostanie podane przez użytkownika root w formacie passwd nazwa_użytkownika, pozwala na zmianę hasła dowolnego użytkownika.

Inne funkcje polecenia passwd to:

• Blokowanie konta użytkownika: pozwala zablokować dostęp do systemu dla danego użytkownika (opcja –l) bez usuwania konta użytkownika, pozwala też zdjąć tą blokadę (opcja –u).

Dla przykładu polecenie passwd –l joe blokuje możliwość zalogowania się do systemu użytkownikowi joe.

• Wyświetlanie aktualnego statusu hasła użytkownika: polecenie passwd wydane z parametrem –S pozwala wyświetlić informacje o haśle użytkownika takie, jak: status konta (zablokowane LK, poprawne hasło PS, konto bez hasła NP), datę ostatniej zmiany hasła, minimalną i maksymalną długość hasła oraz czas ostrzegania i zablokowania dostępu do systemu po wygaśnięciu hasła.

• Zmiana okres ważności hasła: polecenie passwd wydane z opcją –x ustawia maksymalną liczbę dni ważności hasła, po tym czasie należy zmienić hasło, opcja –w określa czas przed wygaśnięciem hasła, kiedy to użytkownik jest o tym powiadamiany, opcja -n ustawia minimalną liczbę dni, które muszą upłynąć by użytkownik mógł zmienić hasło, opcja -i blokuje konto po wygaśnięciu hasła

Gdy używamy polecenia passwd system przeszukuje plik /etc/default/passwd w poszukiwaniu metody, za pomocą której ma szyfrować hasło.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 139

Poniżej przedstawiono przykładowy plik.

Jak widać metodą szyfrowania w tym przypadku jest metoda des.

Szczegółowe informacje o tym i innych poleceniach można znaleźć na odpowiednich stronach podręcznika systemowego: man useradd; man userdel; man usermod; man passwd.

6.4. Zarządzanie grupami z linii poleceń

Za pomocą poleceń wiersza poleceń można też zarządzać grupami.

Polecenia te są podobne do tych związanych z zarządzaniem użytkownikami.

Oto one:

• groupadd

• groupdel

• groupmod

• gpasswd

groupadd

Polecenie groupadd pozwala utworzyć nowa grupę.

Możemy sami podać numer GID (opcja –g) bądź, w przypadku jego braku, grupie zostanie przydzielony pierwszy wolny numer.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 140

Przykłady:

groupadd –g 200 sport – tworzy grupę o numerze GID 200 o nazwie sport

groupadd sport – tworzy grupę o nazwie sport

Dodanie nowej grupy do systemu możemy sprawdzić poleceniem tail /etc/group.

groupdel

Polecenie groupdel pozwala na usunięcie grupy z systemu.

Nie ma żadnych związanych z nim dodatkowych opcji.

Usunięcie grupy z systemu jest możliwe tylko wtedy, kiedy dana grupa nie jest grupą podstawową dla żadnego z użytkowników.

Przykład:

groupdel sport – usuwa grupę sport

groupmod

Polecenie groupmod służy do modyfikacji ustawień związanych z grupami.

Przykłady:

groupmod –g 201 sport – zmienia numer GID grupy sport na 201

groupmod –n water sport – zmienia nazwę grupy sport na water.

groupmod –A tux sports – dodaje użytkownika tux do grupy sport.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 141

gpasswd

Polecenie gpasswd ustawia lub zmienia hasło dla kont grupowych.

Tylko administrator ma możliwość zmiany hasła do każdej grupy.

Użycie polecenia z opcją -r powoduje usunięcie hasła do konta grupowego

Podobnie jak w przypadku poleceń związanych z zarządzaniem użytkownikami, szczegółowe informacje o każdym poleceniu można znaleźć na odpowiednich stronach podręcznika systemowego: man groupadd; man groupdel; man groupmod

6.5. Tworzenie komunikatu wyświetlanego podczas logowania użytkowników

Możemy utworzyć treść komunikatu, który będzie wyświetlany podczas logowania się do systemu z okna terminalu, wirtualnego terminalu czy też użytkownika z dostępem zdalnym.

Aby zmodyfikować treść komunikatu, musimy edytować następujące pliki:

• /etc/issue – plik odpowiadający za komunikat podczas logowania się użytkownika do systemu,

• /etc/issue.net – ten plik służy do konfiguracji komunikatu ukazującego się użytkownikowi logującemu się z sieci,

• /etc/motd – tzw. motto dnia, ukazujące się użytkownikom logującym się w danym dniu do systemu.

Należy upewnić się, że dodaliśmy jedną lub dwie linie na końcu pliku.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 142

6.6. Zarządzanie uprawnieniami do plików i właścicielami

W tym rozdziale zostaną omówione następujące zagadnienia:

• Prawa dostępu

• Zrozumienie uprawnień do plików

• Zmiana uprawnień do pliku poprzez polecenie chmod

• Zmiana właściciela i grupy

• Modyfikacja domyślnych uprawnień dostępu

• Konfiguracja specjalnych uprawnień do plików

Prawa dostępu

Wszystkie pliki w systemie (pliki zwykłe, katalogi, urządzenia) mają swoje prawa dostępu.

Dla każdego pliku istnieje dziewięć bitów uprawnień, które można podzielić na trzy kategorie:

Polecenie ls -l podaje informacje o prawach plików w następującym formacie:

rwx rwx rwx

właściciel grupa inni

Polecenie ls -l podaje 10, a nie jakbyśmy się spodziewali 9 bitów!

np. -rw-r--r-- gdy patrzymy na prawa pliku lub drwxr-xr-x w przypadku katalogu.

Pierwszy, dodatkowy znak, oznacza typ pliku:

• - zwykły plik

• d katalog

• l dowiązanie

• c plik urządzenia znakowego

• b plik urządzenia blokowego

Jak się za chwilę okaże, informacja czy mamy do czynienia ze zwykłym plikiem, czy z katalogiem ma fundamentalne znaczenie dla interpretacji dalszych praw.

Do modyfikacji praw dostępu do pliku posługujemy się programem chmod, który rozumie dwie notacje:

• RWX (read, write, execute),

• notację liczbową.

Każde z trzech pól (właściciel, grupa, inni) to jedna, 3 bitowa, liczba oznaczająca prawa dostępu.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 143

Przykładowo:

rw-r--r-- = 110100100 = 110 100 100 = 6 4 4

rwxr-xr-x = 111101101 = 111 101 101 = 7 5 5

Możemy podawać uprawnienia w formach:

1. chmod 640 plik

2. chmod u=rw, g=r, o= plik

3. chmod u=+x plik

Po utworzeniu - nowy plik lub katalog dostaje automatycznie prawa zgodnie z maską trybu dostępu do pliku.

Polecenie umask podane bez parametrów - pokazuje aktualną maskę.

Przykładowo 0022 - po pominięciu pierwszego 0, daje maskę 022.

dla pliku dla katalogu

domyślne prawa 6 6 6 7 7 7

maska 0 2 2 0 2 2

prawa dostępu 6 4 4 7 5 5

Poszczególne bity występujące w masce nie występują w prawach dostępu.

Przykładowo:

NOT 0 2 2 = ~ 000 010 010 = 111 101 101

6 6 6 = 110 110 110

6 6 6 AND NOT 0 2 2 = 110 110 110 & 111 101 101 = 110 100 100 = 6 4 4

Istnieje kilka zasad, którymi kieruje się system przy sprawdzaniu praw dostępu do danego pliku:

• Zawsze, gdy chcemy otworzyć dowolny typ pliku, podając jego nazwę - musimy mieć prawo do wykonania dla każdego katalogu występującego w nazwie, łącznie z katalogiem bieżącym. Dlatego dla katalogu bit wykonania jest często nazywany bitem przeszukania.

• Prawo odczytu dla pliku decyduje, czy możemy otworzyć istniejący plik do odczytu

• Prawo zapisu decyduje, czy możemy otworzyć dany plik do zapisu

• Nie możemy utworzyć nowego pliku w katalogu, jeśli nie mamy prawa zapisu i wykonania w danym katalogu.

• Aby usunąć istniejący plik musimy mieć prawo zapisu i wykonania w katalogu, w którym jest umieszczony ten plik. Nie jest potrzebne prawo odczytu ani zapisu do tego pliku.

• Jeżeli chcemy uruchomić (wykonać) dany plik, musimy mieć prawo wykonania dla tego pliku, musi to być ponadto zwykły plik.

Aby wyjaśnić jakie sprawdzenia dokonuje jądro systemu celem przyznania lub odmówienia dostępu, należy najpierw wyjaśnić czym są rzeczywisty i obowiązujący identyfikator użytkownika.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 144

Istnieją dwie klasy użytkowników: zwykli użytkownicy i nadzorca systemu (root).

Nadzorcę systemu można poznać po tym, że jego identyfikator użytkownika (uid) ma wartość 0. We wszystkich systemach klasy Unix nadzorca systemu ma pełną swobodę działania, a zwykli użytkownicy mają tyle praw, żeby nie mogli popsuć systemu.

Użytkownicy systemu komunikują się z systemem poprzez procesy działające w ich imieniu (jak powłoka).

Z każdym procesem wiąże się sześć identyfikatorów:

rzeczywisty identyfikator użytkownika

rzeczywisty identyfikator grupy

poświadczenie tożsamości

obowiązujący identyfikator użytkownika

obowiązujący identyfikator grupy

kontrola praw dostępu

zachowany identyfikator użytkownika

zachowany identyfikator grupy

zachowywane przez wywołania funkcji exec

Rzeczywisty identyfikator użytkownika i rzeczywisty identyfikator grupy wskazują, kim faktycznie jest osoba uruchamiająca program. Obie informacje pobierane są w trakcie logowania do systemu z odpowiedniego wpisu w pliku haseł.

Na ogół te wartości nie zmieniają się w czasie sesji.

Obowiązujący identyfikator użytkownika oraz obowiązujący identyfikator grupy decydują o naszych uprawnieniach przy dostępie do pliku.

Zachowany identyfikator użytkownika oraz zachowany identyfikator grupy zawierają kopie rzeczywistego identyfikatora użytkownika i rzeczywistego identyfikatora grupy w uruchomionym programie.

Typowo obowiązujący identyfikator użytkownika jest równy rzeczywistemu identyfikatorowi użytkownika, a obowiązujący identyfikator grupy jest równy rzeczywistemu identyfikatorowi grupy.

Każdy plik ma swojego właściciela oraz grupę.

Gdy uruchamiamy plik programu, wówczas obowiązującym identyfikatorem użytkownika procesu jest zazwyczaj rzeczywisty identyfikator użytkownika, a obowiązującym identyfikatorem grupy - rzeczywisty identyfikator grupy.

Możliwe jest ustawienie specjalnego sygnalizatora, który ma następujące znaczenie:

• jeżeli plik jest wykonywany, to obowiązujący identyfikator użytkownika procesu musi być taki sam jak identyfikator właściciela pliku.

Podobnie można zrobić z obowiązującym identyfikatorem grupy.

Te bity nazywają się bitami ustanowienia identyfikatora użytkownika orazustawienia identyfikatora grupy.

Jeśli właścicielem pliku jest np nadzorca systemu, a jednocześnie jest ustanowiony bit ustanowienia identyfikatora użytkownika; to plik programu uruchamiany jako proces dysponuje prawami

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 145

nadzorcy systemu, niezależnie od tego kto go wykona.

Przykładem jest program passwd umożliwiający użytkownikowi zmianę swojego hasła w pliku haseł, do którego prawo zapisu posiada tylko nadzorca.

W typowej sytuacji (gdy nie jest ustawiony bit ustanowienia identyfikatora użytkownika), system dokonuje następujących sprawdzeń:

• Jeżeli obowiązujący identyfikator użytkownika dla danego procesu jest równy 0 (nadzorca), to dostęp jest dozwolony. Właśnie dzięki temu nadzorca panuje w systemie plików.

• Jeżeli obowiązujący identyfikator użytkownika dla danego procesu jest równy identyfikatorowi właściciela pliku (czyli proces jest właścicielem pliku), to gdy są ustawione odpowiednie bity prawa dostępu dla użytkownika dostęp jest dozwolony, w przeciwnym razie dostęp jest zabroniony.

• Jeżeli obowiązujący identyfikator grupy dla danego procesu lub jeden z dodatkowych identyfikatorów grupy tego procesu jest równy identyfikatorowi grupy pliku, to gdy ustawione są odpowiednie bity praw dostępu dla grupy, dostęp jest dozwolony - w przeciwnym przypadku dostęp jest zabroniony.

• Jeżeli ustawione są odpowiednie bity praw dostępu dla innych, to dostęp jest dozwolony, w przeciwnym razie zabroniony.

Kroki są wykonywane w przedstawionej wyżej kolejności.

Zrozumienie uprawnień do plików

Uprawnienia służą do ustalenia: kto ma dostęp, a komu zabrania się dostępu do plików i katalogów.

Dodatkowo można określić, co może określony użytkownik zdziałać z danym plikiem.

Jeżeli użyjemy polecenia ls -l, to wyświetlona zostanie zawartość bieżącego katalogu wraz z przypisanymi uprawnieniami do każdego pliku i podkatalogu:

Pierwszy znak określa typ obiektu:

- Plik normalny standardowy

d katalog

l link

b Urządzenie blokowe np. napęd taśmowy

c Urządzenie znakowe

p Potok

Dziewięć pozostałych znaków można podzielić na trzy grupy określające jakie uprawnienia ma właściciel obiektu, grupa i reszta świata (publiczny dostęp).

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 146

Uprawnienia, jakie można przypisać do plików i katalogów, są następujące:

• Read (r) – uprawnienie to pozwala na odczyt pliku, w stosunku do katalogów pozwala za zobaczenie co znajduje się wewnątrz katalogu

• Write (w) – uprawnienie to pozwala na modyfikacje plików, zmianę zawartości i nadpisywanie. Wówczas gdy uprawnienie zostanie nadane do katalogu - możemy w nim przenosić i usuwać pliki, nawet w przypadku nieposiadania uprawnień zapisu do poszczególnych plików.

• Execute (x) uprawnienie to pozwala na wykonanie pliku przez system np. zawierającego skrypt. Gdy uprawnienie to ustawimy na katalogu, uprawnienie to pozwoli nam przejść do określonego katalogu. Razem z uprawnieniem odczytu pozwala na przeszukiwanie katalogu.

• - (łącznik) oznacza brak uprawnień

Każdy plik lub katalog należy tylko do jednego użytkownika i jednej grupy.

Nazwa użytkownika właściciela pliku lub katalogu i grupy wyświetlane są poleceniem ls -l.

W trybie graficznym uprawnienia do plików lub katalogów możemy wyświetlić przez wybranie właściwości (Properties) a następnie zakładki uprawnienia (Permissions):

W tym oknie dialogowym możemy zmieniać uprawnienia do pliku dla poszczególnych obiektów – właściciela grupy i innych.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 147

Zmiana uprawnień do pliku poprzez polecenie chmod

Poprzez polecenie chmod możemy dodawać lub odbierać uprawnienia.

Tylko właściciel pliku i root mogą wykonać to polecenie.

Polecenie zmiany uprawnień posiada opcje odnośnie właściciela „u”, grupy „g”, innych „o” lub wszystkich „a”.

Prześledźmy wykorzystanie polecenia chmod na przykładach:

Przykład Rezultat polecenia

chmod u+x Właścicielowi dodawane jest prawo r odczytu

chmod g=rw Grupie nadawane są jawne prawa r odczytu i w zapisu

chmod u=rwx Właściciel otrzymuje wszystkie uprawnienia.

chmod u=rwx,g=rw,o=r Właściciel otrzymuje wszystkie uprawnienia, grupa uprawnienia odczytu i zapisu, natomiast reszta świata uprawnienia odczytu

chmod a+x Wszyscy – właściciel, grupa, inni – otrzymują prawo wykonywania x

Jeżeli wykorzystamy opcje -R (recursive) w danym katalogu, zmiana uprawnień nadanych dla danego katalogu będzie przeniesiona na wszystkie pliki i podkatalogi w tym katalogu.

Ponieważ system Linux nastawiony jest na minimalizację, więc uprawnienia zapisywane w formie literowej zastąpić można sekwencjami liczbowymi.

Każde uprawnienie otrzymało swój odpowiednik liczbowy; i tak uprawnienie

• r - ma przypisaną liczbę 4

• w – ma przypisaną liczbę 2

• x – ma przypisaną liczbę 1

• - brak uprawnień- ma liczbę 0

Używając wartości liczbowych można utworzyć zbiory uprawnień, bardzo łatwe do zrozumienia.

Popatrzmy na przykład:

Właściciel Grupa Inni

rwx r-x r--

421 ( 4+2+1=7) wynik 7 4-1 (4+0+1=5) wynik 5 4-- (4+0+0=4) wynik 4

Czyli polecenie

chmod u=rwx,g=rx,o=r

można zastąpić poleceniem

chmod 754

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 148

podanie polecenia

chmod 754 plik1

oznacza, że właściciel posiada wszystkie uprawnienia, grupa ma uprawnienia do odczytu i wykonywania, natomiast inni mają tylko możliwość odczytu pliku plik1.

Zmiana właściciela i grupy

Użytkownik root może wykorzystać polecenie chown do zmiany właściciela pliku i grupy.

Składnia tego polecenia jest następująca:

chown nowy_właściciel.nowa_grupa nazwa_pliku

Może zmienić tylko właściciela poprzez podanie polecenia:

chown nowy_właściciel nazwa_pliku

lub pozostawić właściciela pliku, a zmienić tylko grupę:

chown .nowa_grupa nazwa_pliku

Jako administrator możemy zmienić grupę, która jest właścicielem pliku innym poleceniem.

Jest to polecenie chgrp z następującą składnią:

chgrp nowa_grupa nazwa_pliku

Normalny użytkownik może wykorzystać polecenie chown do zmiany grupy właścicieli, jeżeli jest on właścicielem danego pliku.

Wykonuje to poleceniem

chown .nowa_grupa nazwa_pliku

Właściciel pliku może również zmienić grupę poleceniem

chgrp nowa_grupa nazwa_pliku

Użytkownik może zmienić grupę właścicieli na nową jedynie wtedy, gdy jest członkiem tej nowej grupy.

Modyfikacja domyślnych uprawnień dostępu

Jeżeli uprawnienia domyślne nie zostały zmienione, to tworzone pliki dostają uprawnienia 666 a katalogi 777.

Do modyfikacji tych domyślnych uprawnień służy polecenie umask.

Polecenie podajemy z trzycyfrowym argumentem np. 022.

Polecenie to usuwa uprawnienia z uprawnień domyślnych.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 149

Przykład użycia polecenia umask 022 przedstawiono poniżej:

Katalogi Pliki

Uprawnienia domyślne rwx rwx rwx rw- rw- rw-

7 7 7 6 6 6

umask --- -w- -w- --- -w- -w-

0 2 2 0 2 2

rezultat rwx r-x r-x rw- r-- r--

7 5 5 6 4 4

Prześledźmy przykłady użycia różnych argumentów polecenia umask.

Poprzez wprowadzenie polecenia umask 077 blokujemy dostęp dla grup i innych użytkowników zostawiając dostęp tylko dla właściciela i roota.

Jeżeli podamy polecenie umask bez żadnych argumentów, to pozostawimy bieżące wartości:

Aby ustawić maskę na stałe, musimy zmienić wartość maski w pliku konfiguracyjnym /etc/profile.local.

Jeżeli chcemy zmienić ustawienia dla podanego użytkownika, zmiany maski musimy wprowadzić w pliku .bashrc w katalogu domowym tego użytkownika.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 150

Konfiguracja specjalnych uprawnień do plików

W bardzo wyjątkowych sytuacjach wykorzystujemy specjalne uprawnienia.

Trzy specjalne uprawnienia to:

• SUID Set User ID

• SGID Set Group ID

• Sticky bit - bit lepkości

SUID

Uprawnienia Set User ID używamy wówczas, gdy mamy plik wykonywalny, którego normalny użytkownik nie powinien wykonywać, ale musi to zrobić.

Na przykład: tylko użytkownik root powinien wykonywać tworzenie i przywracanie kopii zapasowych.

Czasami ze względów np. czasowych, zadanie to jest delegowana na normalnego użytkownika.

Nadając uprawnienia SUID do skryptu nakazujemy aby skrypt wykonywał normalny użytkownik z uprawnieniami właściciela.

Dzięki uprawnieniu SUID proces może działać jako należący do osoby, która go utworzyła, a nie osoby wykonującej go.

Uprawnienie SUID ma wartość 4000. można go nadać poprzez polecenie:

chmod 4777 nazwa_skryptu lub

chmod u+s nazwa_skryptu

Zauważmy, że przy dodaniu uprawnienia SUID, literka „x” w uprawnieniach właściciela zmienia się na „s”.

SGID

Bit SGID zmienia identyfikator grupy w czasie wykonywania pliku. Jest bardzo podobny do bitu SUID, lecz zmienia uprawnienia do grupy.

Plik z ustawionym bitem SGID może wykonywać normalny użytkownik tak, jakby był członkiem grupy, do której należy dany plik.

Literka „x” w uprawnieniach dla grupy zmienia się na „s”, wartość liczbowa uprawnienia to 2000.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 151

Polecenie ma następującą składnię:

chmod g+s skrypt lub

chmod 2777 skrypt

Sticky bit

Uprawnienie związane ze znakiem Sticky bit, zwanym też „bitem lepkości”, różni się od innych uprawnień specjalnych.

Ma wartość liczbową 1000, a działanie tego uprawnienia zależy od tego, czy dotyczy pliku czy też katalogu.

W katalogach uniemożliwia użytkownikowi usuwanie plików z folderów, w których mają uprawnienia zapisu, o ile nie są właścicielami plików.

Domyślnie każdy użytkownik, który ma uprawnienia zapisu do katalogu, może usuwać pliki w tym katalogu, nawet jeśli nie ma uprawnień zapisu do poszczególnych plików.

W przypadku zastosowania uprawnienia do pliku, ten bit „przykleja” się do pliku.

Gdy plik z takim bitem jest po raz pierwszy otwierany lub uruchamiany, zostaje załadowany do pamięci albo pliku wymiany, dzięki czemu działa szybciej, niż gdyby był uruchamiany z dysku.

W przypadku, gdy plik nie jest wykonywalny, ostatni bit uprawnienia („x” dla „reszty świata”) przyjmuje wartość „T”, w przeciwnym przypadku pliku wykonywalnego „t”.

Uprawnienie to jest często wykorzystywane dla katalogu tymczasowego /tmp/.

6.7. Zapewnienie bezpieczeństwa systemu plików

Co użytkownik po zalogowaniu się do systemu może wykonywać, a co ma zabronione określają ustawienia bezpieczeństwa nałożone na system plików.

W Linuksie, bezpieczeństwo systemu plików jest szczególnie ważne, ponieważ każdy dostępny zasób jest reprezentowany jako plik.

Jeżeli np. użytkownik potrzebuje wykorzystać kartę dźwiękową do odtwarzania muzyki, dostęp do karty muzycznej jest determinowany przez ustawienia dostępu do pliku urządzenia znajdującego się w katalogu /dev.

Aby zapewnić podstawowe bezpieczeństwo systemu plików, musimy zapoznać się z poniższymi zagadnieniami.

Podstawowe zasady dostępu do zapisu dla użytkownika

System plików w linuksie obsługuje typowe uprawnienia dostępu – read, write, execute, sticky bit, SUID, SGID, itd.

Jako podstawową zasadę przyjmuje się, że prawa zapisu normalny użytkownik posiada w następujących katalogach:

• swoim katalogu domowym

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 152

• w katalogu /tmp do składowania plików tymczasowych

W zależności od przeznaczenia i sposobu wykorzystywania danego komputera, inne katalogi mogą mieć ustawione prawo zapisu przez normalnego użytkownika.

Przykładowo: jeżeli wykorzystujemy system plików Samba, wówczas musimy ustawić katalog danych dzielonych jako katalog do zapisu dla użytkowników korzystających z Samby.

Niektóre pliki urządzeń muszą być plikami z uprawnieniami do zapisu dla użytkownika np. karta dźwiękowa.

Podstawowe zasady dostępu do odczytu dla użytkownika

Niektóre pliki w systemie są chronione przed odczytem.

Przykładowo: jest to ważne dla plików, w których gromadzone są hasła.

W przypadku gdy hasła są szyfrowane i gromadzone w pliku, taki plik musi być chroniony przed każdym nieautoryzowanym dostępem.

Poniżej przedstawiono pliki, które należy chronić przed nieautoryzowanym dostępem:

• /etc/shadow – plik zawiera hasła użytkowników w postaci zaszyfrowanej. Wówczas gdy wykorzystujemy autoryzację użytkowników poprzez LDAP, plik ten zawiera co najmniej hasło roota.

• /etc/samba/smbpasswd - plik ten zawiera hasła użytkowników usługi Samba. Domyślnie uprawnienia ustawione są na 600.

• Pliki z hasłami do usługi Apache – lokalizacja tych plików zależy od konfiguracji systemu. Pliki te zawierają hasła użytkowników do autoryzowanego dostępu do serwera webowego.

• /etc/openldap/slapd,conf – plik ten zawiera hasło roota do serwera openLDAP.

Po zainstalowaniu pakietów openldap2, zabezpieczenia ustawione są na 644.

• /boot/grub/menu.lst plik ten zawiera hasło do GRUB boot loader. Domyślnie zabezpieczenia ustawione są na 600.

Przedstawione powyżej zestawienie nie jest kompletne.

Mamy w systemie więcej plików zawierających hasła, zależy to przede wszystkim od konfiguracji systemu i zainstalowanych usług.

Niektóre pliki haseł powinny być do odczytu przez użytkowników nie będących administratorami. Są to pliki do demonów usług uruchamianych przez normalnych użytkowników.

Dla przykładu serwer Apache uruchamiany jest przez użytkownika wwwrun. W tym przypadku plik haseł musi być dostępny do odczytu dla użytkownika wwwrun.

copyright by NATP PL On-line Education

3101. SUSE Linux Enterprise 11 – podstawy Linuksa. Podręcznik strona 153

Wykorzystanie uprawnień specjalnych do zabezpieczenia systemu plików

• SUID – gdy bit SUID ustawiony jest na pliku wykonywalnym, program może wystartować użytkownik, który nie jest jego właścicielem. W wielu wypadkach wykorzystuje się to do umożliwienia wykonania aplikacji, których właścicielem jest root.

Bit ten powinien być wykorzystywany jedynie przy testowaniu danej aplikacji lub w przypadku gdy nie ma innej drogi do nadania uprawnień do wykonania specyficznych zadań.

Bit ten wykorzystywany jest przez atakujących system do uruchomienia wszelkiego rodzaju „exploidów”.

• SGID – sytuacja jest bardzo podobna do przypadku wykorzystania bitu SUID, przy czym w tym przypadku aplikacje wykonują członkowie grupy.

• Sticky bit – ma pozytywny wpływ na bezpieczeństwo systemu. W katalogach udostępnionych do zapisu dla ogółu chroni pliki danego użytkownika przed usunięciem przez innego.

Typowym zastosowaniem tego bitu jest ustawienie go we wszelkich katalogach tymczasowych – takich, jak np. /tmp czy /var/tmp. Są to katalogi, w których wszyscy użytkownicy muszą mieć prawo zapisu.

Uprawnienia do zapisu ustawione na katalog, nie tylko zawierają w sobie uprawnienia do tworzenia plików i podkatalogów, lecz również uprawnienia do kasowania, bez względu na to, czy użytkownik ma dostęp do tych plików lub podkatalogów.

Jeżeli ustawimy bit lepkości na katalogu z prawem do zapisu, usuwanie i zmiana nazwy w tym katalogu jest możliwa jedynie gdy spełnimy któryś z poniższych warunków:

• efektywny UID dla procesu kasowania lub zmiany nazwy jest taki jak właściciela pliku

• efektywny UID dla procesu kasowania lub zmiany nazwy jest taki jak właściciela katalogu z uprawnieniami do zapisu z zaznaczonym bitem lepkości

• superużytkownik root może zrobić wszystko.

copyright by NATP PL On-line Education