Asmo Slackware Page

8th September 2010

.::MENU::.

Wstęp
Mapa serwisu
Instalacja
Serwery
Artykuły
Tips&Tricks
Programowanie
ASP changelog
FORUM
FAQ
Linki
Ksiega gosci
O mnie

GG:
1710841


8.3 Pliki konfiguracyjne

Podstawowe wiadomości o plikach konfiguracyjnych w Linuksie:

  • Pliki konfiguracyjne Linuksa to pliki tekstowe.
  • Na końcu każdego pliku konfiguracyjnego powinien być zawsze pozostawiony jeden wiersz pusty.
  • Wszystko, co znajduje się po znaku # jest uważane za komentarz i nie jest brane pod uwagę.
  • Pliki tekstowe pod Linuksem to nie to samo, co pliki tekstowe pod Windows. Różnią się one znakiem końca wiersza. Windows koniec wiersza koduje jako CR+LF natomiast Linux jako LF. Aby przenosić pliki tekstowe między tymi systemami możemy użyć np. programu EmEditor, który znajdziecie tutaj.
  • większość plików konfiguracyjnych znajduje się w katalogu /etc

Ponieważ plików konfiguracyjnych w Linuksie jest od groma a praktycznie każdy z nich opisany jest na stronach odpowiedniego manuala to po informacje o nich odsyłam was właśnie tam.

8.3.1 Opis plików konfiguracyjnych

/etc/fstab

Plik ten opisałem dokładnie w artykule Dodawanie kolejnego dysku HDD

/etc/group

Plik zawiera informacje o grupach użytkowników w systemie. Każda linia jest formatu:

identyfikator_grupy : zaszyfrowane_hasło : numer_grupy : lista_użytkowników

Jeśli pole hasło jest puste oznacza to, że żadne dodatkowe hasło nie jest potrzebne.

/etc/inittab

Plik ten opisałem dokładnie w artykule Start systemu - krok po kroku

/etc/issue

Plik ten zawiera tekst wyświetlany przed linią zachęty w momencie rejestrowania się do systemu.

/etc/motd

Zawartość tego pliku jest wyświetlana zaraz po udanym zarejestrowaniu się do systemu przed uruchomieniem interpretatora poleceń.

/etc/mtab

Plik zawiera dane o aktualnie przyłączonych systemach plików. Są to wiadomości zmieniane dynamicznie przez komendy mount i unmount. Format danych jest taki sam jak w pliku /etc/fstab.

/etc/nologin

Obecność tego pliku sprawia, że jedynie administrator może się zalogować do systemu.Gdy ktoś inny spróbuje się zarejestrować zostanie mu wyświetlona zawartość tego pliku i operacja zakończy się niepowodzeniem. Tips&Tricks #13

/etc/passwd

Plik ten opisałem w rozdzale 11.5 Zmiana domyślnej powłoki dla niektórych użytkowników.

/etc/profile

Plik zawiera ustawienia zmiennych środowiskowych przy starcie systemu.

/etc/rc.d

Katalog zawierający skrypty uruchamiające i zatrzymujące poszczególne usługi i demony podczas przejść pomiędzy różnymi poziomami startu. Plik ten opisałem szczegółowo w artykule Start systemu - krok po kroku

/etc/rc.d/rc.local

Skrypt wykonywany jako ostatni przy starcie systemu. Może uruchamiać różne dodatkowe procesy.

/etc/securetty

Plik zawierający nazwy terminali, z których administrator może się zalogować do systemu.

/etc/shells

Plik zawierający pełne ścieżki dostępu do interpretatorów poleceń dostępnych w systemie (tzw. powłok).

/etc/syslog.conf

Plik konfiguracyjny programu syslogd podający gdzie mają być kierowane informacje ( logi ) z różnych części systemu i demonów działających w tym systemie.
W linii podane jest najpierw skąd i o jakim priorytecie informacje maja być zapisywane, po czym podana jest pełna ścieżka do pliku, w którym te informacje mają zostać zgromadzone. Zamiast ścieżki do pliku może tu być ewentualnie podany adres innego komputera lub identyfikator użytkownika, który miałby te informacje otrzymywać.

8.4 Prawa dostępu do plików i katalogów

Każdy plik w systemie Linux posiada przyporządkowane uprawnienia dostępu:

  • read acces ( czytanie ) - r
  • write acces ( pisanie ) - w
  • execute acces ( wykonywanie ) - x

uprawnienia te można przyporządkować do trzech rodzajów użytkowników dla każdego pliku:

  • owner ( właściciel pliku )
  • group ( grupa do której należy właściciel )
  • others ( inni użytkownicy )

Daje nam to dziewięć pozycji dla każdego pliku ( 3 prawa x 3 grupy ). Plus jedna pozycja na początku określająca rodzaj pliku. W systemie Linux mamy siedem rodzajów plików: "-" normalny plik, "d" - katalog, " l" - link, dołączenie symboliczne, "b" - urządzenie blokowe, "c" - urządzenie znakowe, "s" - gniazdo unixowe, "f" - kolejka FIFO (First In First Out).

Jak widać na rysunku uprawnienia mają również odpowiednik cyfrowy, który wyjaśnie za chwilę.

Prawa dostępu do plików możemy zobaczyć wydając polecenie ls -l. Weźmy taki przykład:

# ls -l

-rw-r--r-- 1 root daemon 1852 Sep 17 16:25   file1
-rw-r--r-- 1 root daemon 408  Jul 29 08:30   file2
drwxrwxrwx 2 root wheel  2048 Apr 2 2003     dokumenty/
lrwxrwxrwx 1 root wheel  9    Sep 15 11:17   bin -> ./usr/bin/

Plik file1 ma prawa dostępu "-rw-r--r-- 1 root daemon". Wynika z tego że właścicielem pliku jest root, plik należy do grupy daemon, właściciel ma prawo czytania i zapisu do pliku, grupa oraz wszyscy inni użytkownicy mają prawo do czytania z tego pliku. Patrząc na rysunek powyżej zapis cyfrowy uprawnień dla tego pliku wyglądałby tak: 0644 ( 400 + 200 + 40 + 4 = 644).

Pewnie zastanawiasz się czemu nie napisałem po prostu 644 tylko 0644. Zero na początku świadczy, że plik nie ma przyporzadkowanych dodatkowych praw. Ale o tym za chwile.

Litery "d" i "l" w uprawnieniach do plików dokumenty oraz bin świadczą, że jest to odpowiedznio katalog i dołączenie symboliczne do pliku ./usr/bin.

Żeby trochę skomplikować to jest mała różnica między interpretacją praw dostępu do katalogów i plików. Różnice przedstawiłem w poniższej tabeli.

 

Pliki

Katalogi

Read

Zawartość pliku może być czytana

Da się wyświetlić listę plików w katalogu przy pomocy komandy ls (bez dodatkowych opcji)

Write

Da się pisać do pliku, kasować, zmieniać nazwę

Zawartość katalogu może być modyfikowana. Można tworzyć nowe pliki i katalogi, zmieniać nazwy istniejącym, kasować pliki i katalogi

Execute

Plik może być uruchamiany (program, skrypt)

Można "wejść" do katalogu. Lub mówiąc dokładniej można go uczynić katalogiem bieżącym

Zauważ, że można uruchomić, przeczytać plik znajdujący się w katalogu gdy ma się tylko prawo do czytania (read) tego katalogu (jeśli tylko znamy nazwę pliku, który chcemy uruchomić lub przeczytać).

Prócz powyższych praw istnieją również prawa dostępu nazywane set UID, set GID i sticky bit. Mają one następujące znaczenie:

- SUID lub setuid: zmień ID użytkownika przy uruchamianiu. Jeśli plik posiada prawo setuid to podczas uruchamiania będziepracował z prawami użytkownika do którego ten plik należy.

Jeśli plik ma ustawione prawo setuid, należy do root i ma prawo wykonywalny to po uruchomieniu będzie działał jako proces należący do root. Takie prawo ma np. polecenie passwd, które pozwala normalnemu użytkownikowi na zmianę hasła. Polecenie to musi pracować z uprawnieniami root ponieważ by zmienić hasło musi zmienić piki /etc/passwd i /etc/shadow do których dostęp ma tylko root.

- SGID lub setgid: zmień grupę GID użytkownika przy uruchamianiu. Podobnie jak wyżej tylko odnośnie grupy do której należy program. Jeśli ustawimy SGID dla katalogu to wszystkie tworzone w nim pliki będą należeć do tej samej grupy co ten katalog, niezależnie od tego do jakiej grupy należy tworzący je użytkownik.

- Sticky bit. W folderze z ustawionym prawem sticky bit możesz kasować tylko pliki należące do ciebie - nawet jeśli masz prawo pisania do tego katalogu.

To prawo ma ustawiony np. katalog /tmp. Każdy może wrzucić tam jakieś pliki a później jeskasować, ale tylko jeśli należą do niego.

Polecenie ls -l wyświetla informacje o tych prawach w następujący sposób:

SUID

Jeśli ustawione pojawia się jako s lub S w części odpowiadającej za prawa właściciela ( na miejscu x )
-rws------ prawo do uruchomienia i suid ustawione jednocześnie
-r-S------ prawo uruchomienia nie ustawione natomiast ustawione prawo suid

SGID

Jeśli ustawione pojawia się jako s lub S w części odpowiadającej za prawa grupy ( na miejscu x )
-rwxrws--- prawo do uruchomienia i sgid ustawione jednocześnie
-rwxr-S--- prawo uruchomienia nie ustawione natomiast ustawione prawo sgid

Sticky

Jeśli ustawione pojawia się jako t lub T w części odpowiadającej za prawa innych użytkowników ( na miejscu x )
-rwxrwxrwt prawo do uruchomienia i sticky ustawione jednocześnie
-rwxrwxr-T prawo uruchomienia nie ustawione natomiast ustawione prawo sticky

Liczbowa wartość praw SUID, SGID i Sticky reprezentowana jest w następujący sposób:

0

SUID, SGID i Sticky nie ustawione

1

Sticky ustawione

2

SGID ustawione

3

SGID i Sticky ustawione

4

SUID ustawione

5

SUID i Sticky ustawione

6

SUID i SGID ustawione

7

SUID, SGID i Sticky ustawione

Mając więc plik o prawach 4740 znaczy że:

  • SUID jest ustawione
  • Właściciel ma prawo do zapisu, odczytu i uruchamiania
  • Grupa ma prawo do odczytu
  • Wszyscy inni nie mają żadnych praw do pliku

Prawa do plików możemy modyfikować przy pomocy poleceń chmod oraz chown:

# chown root.users plik1 plik2 plik3
# chmod 4740 plik1 plik2 plik3

Pierwsze polecenie zmieni właściciela pliku(ów) na root i grupę na users a drugie przyzna prawa dostępu do pliku(ów) jak w poprzednim przykładzie.

W poleceniu chmod możemy również używać literek odwzorowywyjących prawa dostępu:

# chmod ugoa+-=rwx <plik>

gdzie: u - właściciel pliku, g - grupa, o - wszyscy inni, a - wszyscy, - (minus) - zabiera, + - daje, = - czyni podane prawa jedynymi prawami dla pliku. Kilka przykładów:

# chmod a-w nazwa_pliku <- zabiera wszystkim możliwość edycji tego pliku
# chmod g-x nazwa_pliku <- zabiera grupie możliwość wykonania pliku
# chmod o+w nazwa_pliku <- nadaje pozostałym możliwość edycji pliku
# chmod g=r nazwa_pliku <- ustala, że grupa może jedynie czytać plik
# chmod og-r nazwa_pliku <- zabiera grupie i wszystkim innym prawo czytania pliku

 

[ Poprzednia ] [ Spis treści ] [ Następna ]
©Asmo , last modified: April 20 2008 23:28:39.