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

Każdy plik i katalog może mieć prawo:
  • czytania (read)
  • pisania (write)
  • wykonywania (execute)
Zapis literowy i liczbowy:

Litera Znaczenie Zapis liczbowy
r odczyt 4
w zapis 2
x uruchomienie 1
- brak praw 0

Aby wyświetlić prawa dostępu używamy polecenia

ls -l

Wyświetla się:

-rw-r--r-- 1 mariusz mariusz 131438 2007-10-08 12:29 plik.txt

Pierwsza kolumna składająca się z dziesięciu znaków opisuje prawa dostępu, przy czym pierwszy znak określa rodzaj pliku:
 
- (minus) - oznacza plik,
d - oznacza katalog,
l - dowiązanie itd

Znak drugi, trzeci i czwarty określa prawa właściciela do pliku, znak piąty, szósty i siódmy określa prawa grupy do której należy plik, natomiast znak ósmy, dziewiąty i dziesiąty prawa innych użytkowników systemu.

Do pliku plik.txt przypisano następujące uprawnienia:

prawo odczytu i zapisu dla właściciela (rw-) prawo odczytu dla grupy (r--) prawo odczytu dla pozostałych użytkowników (r--)

Prawa Wartość Znaczenie
--- 0 brak praw
r-- 4 odczyt
rw- 6 odczyt zapis
rwx 7 odczyt zapis uruchamianie
r-x 5 odczyt uruchamianie
--x 1  uruchamianie

W ten sposób za pomocą trzech cyfr możemy zmienić zbiór praw dostępu do pliku:
  • pierwsza cyfra - prawa właściciela,
  • druga cyfra - prawa grupy,
  • trzecia - prawa dla pozostałych użytkowników
Prawa dostępu Wartość Liczbowa Znaczenie
-rw------- 600 odczyt zapis właściciel grupa inni
-rw-r--r-- 644 zapis właściciel
odczyt grupa inni
-rw-rw-rw 666 odczyt zapis dla wszystkich
-rwx------ 700 odczyt zapis wykonywanie
właściciel
-rwxr-xr-x 755 odczyt zapis uruchomienie
właściciel odczyt wykonywanie grupa inni
-rwxrwxrwx 777 odczyt zapis wykonywanie
właściciel grupa inni
-rwx--x--x 711 odczyt zapis wykonywanie właściciel
wykonywanie grupa inni
drwx------ 700   katalog prawo odczyt zapis ma właściciel zawsze im (katalogom) nadajemy prawo dostępu x
drwxr-xr-x 755 katalog odczyt zapis dostęp właściciel grupa inni odczyt zawartości
drwx---x--x 711 katalog odczyt zapis dostęp właściciel grupa inni nie mogą odczytać zawartości ponieważ jest ona niedostępna (ls -l nie wyświetli pliku) trzeba znać dokładną nazwę

Jak zmienić właściciela pliku ??

chown mariusz plik.txt

Właśnie przypisaliśmy sobie plik o nazwie plik.txt

Jak zmienić cały katalog wraz z podkatalogami ??

chown -R mariusz Moje dokumenty

Jak zmienić grupę np. dla nowego użytkownika ??

chown.mariusz plik.txt

Zmiana praw dostępu do plików

chmod 600 plik.txt

Tym sposobom nadaliśmy plikowi o nazwie plik.txt prawo odczytu i zapisu

Zmiana praw dostępu do plików znajdujących sie w danym katalogu

chmod -R 644 /home/mariusz/Moje pliki

Metoda symboliczna:

Kto Działanie Uprawnienie
u użytkownik + dać r odczyt
g grupa - zabrać w zapis
o inni = przypisać x wykonywanie
a wszyscy
s suid

chmod [ugoa][+-=][rwxs] plik.txt

Przykłady:

chmod +x test - plik test może być uruchomiony przez dowolnego użytkownika.
chmod u+x test - daje właścicielowi pliku test prawo jego wykonania.
chmod a-w test - odbiera wszystkim prawo do zapisu do pliku test
chmod a+r * - daje wszystkim użytkownikom prawo do odczytu do wszystkich plików znajdujących się w danym katalogu.

W Linuksie istnieje specjalne prawo dostępu zwane SUID (SetUID). Normalnie program może być uruchomiony przez użytkownika który jest jego właścicielem, ale są sytuacje gdy program (należący do roota) musi być uruchomiony przez osobę, do której nie należy (np.ping należy do roota a mimo tego, może być uruchomiony przez innych użytkowników). Aby umożliwić pozostałym użytkownikom korzystanie z takich programów trzeba nadać im specjalny atrybut SUID. Aby to zrobić należy liczbę określającą prawa dostępu poprzedzić cyfrą 4,

chmod 4755 /bin/ping lub w metodzie symbolicznej użyj opcji s: chmod +s /bin/ping

Prawa czytania, pisania i wykonania w takich plikach widoczne są jako rws a nie rwx