W tym rozdziale przedstawione są informacje o kluczowych plikach
systemu operacyjnego. Zostały tu opisane jedynie podstawowe dane na
ich temat, więcej można znaleźć w podręczniku systemowym
man, oraz info
/etc/inittab
Plik /etc/inittab przechowuje
konfigurację programu init, uruchamianego
w trakcie startu systemu i działającego bez przerwy
do chwili jego zamknięcia. Głównym zadaniem procesu
init jest kontrola zachowania systemu w
zależności od osiągniętego poziomu pracy
systemu oraz w wypadku wystąpienia specjalnych zdarzeń.
Poziomy pracy szczegółowo opisano w
tym dokumencie.
Oto najważniejsze opcje zawarte w pliku
/etc/inittab:
-
Domyślny poziom uruchomienia - wskazuje programowi
init jaki poziom uruchomienia
ma być wybrany jeśli wywołano go bez parametrów lub
w trakcie startu systemu. Wiersz określający tę opcję
wygląda następująco:
id:{$poziom}:initdefault:
($poziom to cyfra odpowiadająca poprawnemu poziomowi
uruchomienia), ustawienie domyślnie trzeciego poziomu
uruchomienia przedstawiono na poniższym przykładzie:
-
Instrukcje uruchomienia programu mingetty
na pierwszym terminalu wirtualnym
(/dev/tty1), wywołania dla
kolejnych będą bardzo podobne:
1:12345:respawn:/sbin/mingetty --noclear tty1 |
-
Poniższy wiersz uruchomi program
agetty, łączący się z
portem szeregowym /dev/ttyS0,
w celu podłączenia terminala szeregowego:
0:12345:respawn:/sbin/agetty 9600 ttyS0 vt100 |
Jeśli nie używamy tego rodzaju urządzeń to powyższe
wywołania są dla nas zbyteczne.
-
Wywołania skryptów startowych - opcje te bardzo rzadko
wymagają ingerencji użytkownika:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0 |
-
Obsługa specjalnych zdarzeń np. wciśnięcia kombinacji
klawiszy ctrl+alt+del:
ca::ctrlaltdel:/sbin/shutdown -t3 -r now |
Mamy sporą dowolność w zarządzaniu tym zdarzeniem, w
powyższym przykładzie po naciśnięciu kombinacji
ctrl+alt+del nastąpi przeładowanie
systemu, aby nastąpiło zamkniecie powinniśmy użyć
polecenia shutdown -h.
/etc/fstab
Plik ten przechowuje szczegółowe informacje o systemach plików, które
mają być montowane do odpowiednich katalogów. Informacje w nim zawarte
są odczytywane w trakcie startu systemu, dzięki temu automatycznie są
montowane wszystkie woluminy (partycje) nie oznaczone opcją "noauto".
Plik ten jest zazwyczaj tworzony przez instalator, jednak administrator
ma możliwość, a nawet obowiązek dokonywać w nim zmian. Dla lepszego
zrozumienia tematu przyjrzyjmy się przykładowemu plikowi i
przeanalizujmy funkcje jakie spełniają poszczególne wpisy.
#(fs_spec) (fs_file)(fs_vfstype) (fs_mntops) (fs_freq) (fs_passno)
/dev/hda2 / ext3 defaults 0 0
/dev/hda3 swap swap defaults 0 0
proc /proc proc defaults 0 0
pts /dev/pts devpts gid=5,mode=600 0 0
/dev/fd0 /media/floppy vfat noauto 0 0
/dev/cdrom /media/cdrom iso9660 noauto,ro,user,unhide 0 0
|
Jak widzimy plik jest podzielony na wiersze, z których każdy odpowiada
jednemu obsługiwanemu woluminowi. Poszczególne pola oddzielone
są od siebie spacją lub tabulatorem. Dane odpowiedniego rekordu
wczytywane są przez skrypty startowe oraz programy takie jak:
fsck, mount czy
umount przez co muszą one być zapisane w
uporządkowany sposób.
Pole (fs_spec) - określa urządzenie blokowe lub zasób
sieciowy przeznaczony do zamontowania, na przykład partycję dysku,
CDROM czy udział NFS. Opis urządzeń masowych przedstawiono
w tym dokumencie, montowanie udziałów NFS
przedstawiono w tym dokumencie.
Pole (fs_file) - wskazuje na miejsce, w którym ma
być zamontowany dany system plików, na przykład dla partycji wymiany
(ang. "swap partition") to pole powinno zawierać wartość "none", a dla
CDROM-u "/media/cdrom".
Pole (fs_vfstype) - określa typ systemu plików jaki
znajduje się na danym urządzeniu. Najbardziej powszechne obecnie i
obsługiwane systemy plików to:
ext2 - podstawowy system plików w Linuksie
ext3 - j.w. tyle że z księgowaniem
reiserfs - zaawansowany system plików z księgowaniem
xfs - zaawansowany system plików z księgowaniem
vfat - używany w starszych systemach Microsoftu,
znany również jako FAT32
ntfs - system plików współczesnych wersji systemów Microsoftu
iso9660 - używany na płytach CD-ROM
nfs - sieciowe udziały dyskowe NFS
swap - obszar wymiany
Pole (fs_mntops) udostępnia szereg znaczników
systemowych, które mogą mieć kluczowe znaczenie dla bezpieczeństwa i
wydajności naszego systemu. Przykładowo następujące znaczniki oznaczają:
defaults - domyślny
zestaw opcji, użyteczny w większości wypadków.
nodev - zapobiega
rozpoznawaniu przez jądro dowolnych plików urządzeń,
znajdujących się w systemie plików
noexec - zapobiega
wykonywaniu plików wykonywalnych w danym systemie plików
nosuid - zapobiega
uwzględnianiu bitów set-UID oraz set-GID w przypadku dowolnego
pliku wykonywalnego
ro - powoduje zamontowanie
systemu plików w trybie tylko do odczytu, powstrzymując wszelkie
modyfikacje informacji dotyczących plików, włączając w to na
przykład czas dostępu do pliku
Pole (fs_freq) jest używane przez program
dump do wykrywania, który system plików ma mieć
wykonywaną kopię bezpieczeństwa. Jeżeli nie ma informacji o tym polu,
zwracana jest wartość 0 i dump przyjmuje, że dany
system plików nie musi być mieć robionych kopii danych. Jeśli nie
korzystamy z tego programu możemy wszędzie ustawić wartość 0.
Pole (fs_passno) jest używane przez program
fsck aby zadecydować, jaka powinna być kolejność
sprawdzania systemów plików podczas ładowania systemu. Główny
system plików powinien mieć (fs_passno) równą 1,
zaś inne systemy plików powinny mieć (fs_passno)
równe 2. Jeżeli to pole nie posiada żadnej wartości lub jest ona równa 0
to wtedy dany system plików nie jest sprawdzany. Sprawdzania nie wymagają
właściwie systemy plików z księgowaniem, gdyż są bardzo odporne na
awarie.
Uwaga! Najważniejszym woluminem w systemie jest ten przypisywany do
korzenia drzewa katalogów (katalog "/"), dlatego
należy bardzo ostrożnie dokonywać zmian jego konfiguracji. Błąd może
spowodować problemy z uruchomieniem systemu operacyjnego.
/etc/passwd
Jeden z najważniejszych plików w systemie - przechowuje
informacje o kontach wszystkich użytkowników. Jeden wiersz w tym pliku
zawiera informacje o jednym użytkowniku. Każdy składa się z pól
rozdzielonych dwukropkiem:
login:haslo:UID:GID:komentarz:katalog_domowy:powłoka
np.:
marek:x:502:1000:Marek Kowalski:/home/users/marek:/bin/bash |
Uwagi:
Znak "x" w miejscu hasła oznacza że jest przechowywane w osobnym pliku
(/etc/shadow). UID to unikalny identyfikator
użytkownika, zaś GID to unikalny numer grupy głównej użytkownika -
zdefiniowany w pliku /etc/group. Powłoka (shell)
musi być zdefiniowana w pliku /etc/shells.
Oznaczenie powłoki jako /bin/false oznacza że
jest to konto użytkownika systemowego. Jest to specjalny
rodzaj kont na które zwykli użytkownicy nie mogą się zalogować
Plik ten jak i opisany poniżej /etc/shadow mają
kluczowe znaczenie dla systemu, dlatego nie należy ich
edytować ręcznie. Narzędzia, służce do tego, opisano w
tym dokumencie.
/etc/shadow
Plik zawierający zakodowane hasła i dodatkowe informacje dla
systemu uwierzytelniania użytkowników np.:
marek:$1$qb/waABk$F3Y6dKw/6ekZPfcoTpzks/:12575:0:99999:5::: |
/etc/group
Plik zawierający nazwy utworzonych grup i przypisanych do nich
użytkowników według schematu:
nazwa_grupy::GID:login1,login2,login3,...
np.:
audio::23:kasia,marek |
Uwagi:
Pierwsze pole to unikalna nazwa grupy, drugie nie ma we współczesnych
systemach uniksowych już zastosowania, GID to niepowtarzalny
identyfikator grupy, trzecie pole zawiera listę identyfikatorów
użytkowników zapisanych do tej grupy.
Podobnie jak dwa powyższe, ten plik też powinien być modyfikowany
przez przeznaczone do tego programy, ich opis zawarto w
tym dokumencie
/etc/shells
Zawiera listę dostępnych dla użytkowników powłok np.:
/bin/ksh
/bin/sh
/bin/bash |
Aby użytkownik miał możliwość korzystania z danej powłoki musi być
ona zdefiniowana w tym pliku
/etc/motd
Wiadomość dnia (ang. Message of the day) - Powitanie użytkownika:
treść tego pliku wyświetlana po uwierzytelnieniu się w systemie.
/etc/nologin
Plik tworzony przez administratora - blokuje możliwość
logowania się użytkowników do systemu. Przy próbie logowania
wyświetlana jest jego treść.
|