Podstawowym elementem systemu UNIX jest plik. W postaci plików zapisywane są na dysku zarówno programy i dane, jak również sposób organizacji struktury informacji dyskowej (katalogi, linki symboliczne lub stałe). Typ danego pliku rozpoznawany jest przez system na podstawie jego zawartości, a nie nazwy, czy rozszerzenia. Nazwa pliku, czy katalogu może zawierać znaki specjalne takie jak: kropka, spacja, znaki regionalne, znaczenie ma wielkość liter. Specjalną grupą są tzw. pliki ukryte, których nazwa rozpoczyna się od kropki. Są to zwykle pliki konfiguracyjne, czy tymczasowe, ale nie ma żadnych ograniczeń w ich wykorzystywaniu. Przykłady takich plików znaleźć można w katalogu domowym każdego użytkownika:
.pinerc – plik konfiguracyjny programu pine,
.bash_history – przechowuje historię poleceń wywołanych przez użytkownika podczas korzystania z powłoki “bash”,
System plików w systemie UNIX ma strukturę hierarchiczną. Wszystkie pliki umieszczone są w wielopoziomowym drzewie katalogów. U podstaw znajduje się katalog główny (root) oznaczany przez ukośnik /. Każdy inny katalog w systemie posiada swój katalog nadrzędny (oznaczony symbolem ..). Można mówić również o katalogu bieżącym (oznaczanym symbolem .).
Położenie każdego pliku lub katalogu na dysku może być określone za pomocą pełnej ścieżki bezwzględnej, która zawiera nazwy katalogów, poczynając od katalogu głównego.
Przykłady
Plik o nazwie “passwd”, który znajduje się w katalogu “etc” znajdującym się w katalogu głównym /
/etc/passwd
Pełna ścieżka dostępu do pliku “plik.txt” znajdującym się w katalogu domowym użytkownika “student”
/home/ee/stud/student/plik.txt jest.
Taki sposób organizacji danych powoduje, iż z każdego miejsca w strukturze katalogów systemu mamy dostęp do dowolnego pliku i katalogu. Dzięki temu możemy dokonywać wszelkich operacji bez potrzeby zmiany katalogu roboczego, w którym się aktualnie znajdujemy.
Przykłady
Przejście do podanego katalogu niezależnie od katalogu bieżącego
cd /home/ee/prac/profesor/wyklad
Kopiowanie z katalogu /etc do podkatalogu “conf” wszystkich plików, /których nazwa kończy się na “.ini”
cp /etc/*.ini ./conf/
Wyświetlenie ostatnich 10 linii z pliku dziennika serwera pocztowego
tail /var/log/maillog
Standardowa struktura drzewa posiada zawsze następujące katalogi:
/bin – zawiera zbiór programów wykonywalnych udostępnionym wszystkim użytkownikom systemu,
/sbin – zawiera zbiór programów do zarządzania i administracji systemu dla użytkowników uprzywilejowanych,
/dev – znajdują się tu sterowniki urządzeń obsługiwanych przez system,
/etc – gromadzi pliki konfiguracyjne systemu i usług,
/tmp – katalog tymczasowy wykorzystywany przez użytkowników i system operacyjny na przechowywanie tymczasowych plików i katalogów,
/lib – gromadzi zbiór bibliotek,
/home – przechowuje katalogi domowe użytkowników systemu,
Zależnie od dystrybucji systemu UNIX, a także indywidualnego podejścia administratora katalogi mogą zmieniać swoje nazwy i przeznaczenie.
Ponieważ system UNIX jest systemem wielodostępnym istnieje mechanizm kontroli dostępu do poszczególnych zasobów. Wyróżniamy trzy główne prawa dostępu:
Dostęp |
Symbol dostępu |
Reprezentacja
bitowa
|
Plik
|
Katalog |
Czytanie (Read) |
r |
4 |
Plik może być wyświetlony lub skopiowany |
Zawartość może być wyświetlona przy pomocy plecenia ls (dla ls –l niezbędne jest również prawo do wykonywania) |
Zapis (Write) |
w |
2 |
Zawartość pliku może być zmodyfikowana |
Można dodawać pliki lub je kasować (niezbędne jest również prawo do wykonywania) |
Wykonywanie (Execute) |
x |
1 |
Plik może być uruchomiony (skrypt lub program) |
Można wejść do katalogu |
Prawa dostępu określane są dla następujących grup użytkowników:
właściciel (u) – prawa tylko dla właściciela danego pliku,
grup (g) – prawa tylko dla danej grupy,
inni (o) – pozostali użytkownicy systemu,
Przykłady różnych praw dostępu
-rwx------
dr-xr-x---
-rwxr-xr-x
-rwxr-x—x
· Sprawdzić, jakie katalogi znajdują się w katalogu głównym /?
· Jaka jest pełna nazwa Twojego katalogu domowego?
· Jakie pliki ukryte znajdują się w Twoim katalogu domowym?
· Jakie masz prawa dostępu do katalogów: /bin , /etc, /home/ee/stud? Kto może edytować plik /etc/resolv.conf?