Linux/Definicje/Plik

(Przekierowano z GNU/Linux:Definicje:Plik)

W systemie Linux, podobnie jak i w innych systemach z rodziny UNIX, plik jest jednym z podstawowych pojęć. Definiuje się go jako "wirtualną jednostkę magazynowania informacji". Co ciekawe, plik w systemie Linux (i innych Uniksach) może reprezentować np. dysk twardy czy pamięć fizyczną komputera! Nawet jednym z jego "założeń" (?) jest traktowanie całej zawartości dysku jako jednego pliku!

Atrybuty pliku edytuj

Każdy plik posiada zestaw pewnych cech, które umożliwiają m.in. jednoznaczną identyfikację pliku (nazwa) bądź też wyznaczają zasady dostępu do pliku (prawa dostępu)[1]. Przyjrzyjmy się teraz najbardziej podstawowym atrybutom plików.

Nazwa pliku edytuj

Przyjęło się, że nazwa pliku może być dowolnym, nie przekraczającym 256 bajtów ciągiem znaków, który w połączeniu z położeniem w strukturze katalogów jednoznacznie informuje system operacyjny o jaki plik chodzi użytkownikowi. Uwaga: w systemie Linux rozszerzenie nie jest traktowane jako element nazwy służący interpretacji – programy z reguły rozpoznają plik po zawartości a nie po nazwie, a powłoka systemu umożliwi uruchomienie programu lub skryptu wtedy, kiedy plik zawierający ten program lub skrypt będzie miał prawa do wykonania, a nie wtedy, kiedy będzie miał nazwę z rozszerzeniem .exe czy .sh.

Tak „się przyjęło”. Natomiast użycie w nazwie pliku niektórych znaków innych niż litery duże i małe oraz cyfry powoduje niemiłe konsekwencje w linii poleceń, tzn. na przykład znak spacji jest traktowany jako separator więc polecenie zawierające argument dobra nasza.txt potraktuje ten argument jako dwie nazwy plików. Żeby temu zapobiec należy znaki spacji, &, `, ( itd poprzedzać znakiem \ który usuwa ich specjalne znaczenie w powłoce.

Prawa dostępu edytuj

System Linux jest systemem wieloużytkownikowym. W takich systemach bardzo istotną rolę odgrywają tzw. prawa dostępu, które regulują możliwość ingerencji innych użytkowników systemu w nasze pliki. System Linux (jak i jego pierwowzór- UNIX) wyróżnia trzy podstawowe grupy użytkowników, dla których definiuje się oddzielne zestawy praw dostępu. Są to:

  • właściciel pliku (osoba, która go utworzyła)
  • grupa użytkowników, do której należy właściciel
  • reszta świata (inni użytkownicy i grupy)

Do tego dochodzą odpowiednie prawa. Wyróżniamy tylko 3 rodzaje praw dostępu:

  • prawo do odczytu zawartości pliku (ang. read - "r")
  • prawo do zapisu danych w pliku (ang. write - "w")
  • prawo do wykonania pliku (ang. execute - "x") [2]

Przypisy

  1. Niektóre systemy plików (np. FAT) nie obsługują typowo Uniksowego modelu praw dostępu. Wtedy implementacja systemu plików w jądrze systemu musi niejako "emulować" obecność praw dostępu
  2. Linux nie rozróżnia programów na podstawie rozszerzenia (czyli np. .exe dla Windowsa) lecz właśnie na podstawie uprawnień