Linux | Terminal - nadzorowanie uprawnień do plików i folderów · Technik informatyk egzamin zawodowy

Soisk / Linux

Linux | Terminal - nadzorowanie uprawnień do plików i folderów

Nadawanie i odbieranie uprawnień do folderów i plików dla właściciela, grupy i reszty świata z poziomu wiersza poleceń / terminala systemu Linux.

Zmiana własności pliku / katalogu

chown – zmiana własności pliku / katalogu

chgrp – zmiana własności grupy pliku / katalogu

chmod – ustawienie uprawnień do pliku / katalogu dla właściciela, grupy i reszty świata

 

ls -l
-rw-rw-r-- 1 student student    0 mar 18 16:16 plik
sudo chown -c nauczyciel plik
właściciel 'plik' zmieniony z student na nauczyciel
ls -l
-rw-rw-r-- 1 nauczyciel student    0 mar 18 16:16 plik

sudo chgrp nauczyciel plik
ls -l
-rw-rw-r-- 1 nauczyciel nauczyciel    0 mar 18 16:16 plik

sudo chmod 741 plik
ls -l
-rwxr----x 1 nauczyciel nauczyciel    0 mar 18 16:16 plik

 

Polecenie ls -l

Wypisanie informacji o plikach i katalogach, w tym informacji dotyczących uprawnień

ls -l
drwxrwxr-x 2 student    student    4096 mar 18 16:16 katalog
-rwxr----x 1 nauczyciel nauczyciel    0 mar 18 16:16 plik

Pierwszy znak oznacza typ:

Znak Znaczenie
 –  zwykły plik
 b  specjalny plik blokowy (ang. Block)
 c  specjalny plik znakowy (ang. Character)
 d  katalog (ang. Directory)
 l  małe (“L”) – dowiązanie symboliczne (ang. Symbolic link)
 p  nazwany potok
 s  gniazdo

Następnie widzimy oznaczenia typu r, w, x oraz -.

Znak Angielski Plik Katalog
 r  Read prawo do odczytu prawo do przeszukania zawartości
 w  Write prawo do zapisu prawo do zmiany zawartości
 x  eXecute prawo do wykonywania prawo do wejścia do katalogu

– myślnik oznacza brak braw dostępu i występuje w miejscu odpowiedniej litery

  a b c
rwx r-x

a – prawa właściciela pliku
b – prawa grupy do której należy właściciel
c – prawa reszty użytkowników systemu

Jak widzimy aby kontrolować dostęp do plików, Linux dzieli użytkowników systemu na trzy kategorie:

  • właścicieli plików
  • członków grupy, do której należy właściciel grupy
  • innych użytkowników systemu

 

Modyfikacja praw dostępu – sposób tradycyjny

Polecenie chmod umożliwia właścicielowi pliku lub administratorowi systemu zmienić uprawnienia pliku. Jego forma jest następująca:

chmod u-w plik1

Ciąg znaków u-w symbolizuje zmianę praw pliku , na pierwszym miejscu (w naszym przykładzie „u”) określa się kto ma prawo korzystać z pliku, dysponujemy następującymi symbolami:

u – symbolizuje właściciela pliku
g – symbolizuje grupę, do której plik jest przypisany
o – reszta użytkowników systemu
a – symbol ten oznacza wszystkich  u+g+o

Na drugim miejscu umieszcza się symbole zmiany praw:

+  dorzucamy prawo
–  likwidujemy prawo
=  przypisujemy prawo

Na trzecim miejscu umieszczamy symbole, czego dotyczy prawo:

r – prawo czytania pliku
w – prawo modyfikacji pliku
x – prawo jego egzekucji

 

Przykłady:

Likwidujemy prawo modyfikacji pliku dla jego właściciela:

chmod u-w plik1

 

Dorzucamy prawo modyfikacji dla grupy, do której jest przypisany plik:

chmod g+w plik1

 

Modyfikacja praw dostępu – sposób cyfrowy

Prawo do pliku ustalamy w sposób cyfrowy, np:

chmod 740 plik

Trzy cyfry znajdujące się po poleceniu chmod określają prawa dostępu dla 3 już Ci znanych podmiotów, pierwszy to właściciel pliku (u), drugi grupa do której przynależy plik (g), trzeci pozostali użytkownicy (o).

Można więc symbolicznie zapisać: chmod ugo plik

Pozostaje jeszcze kwestia, co oznaczają poszczególne cyfry. Są one binarnym odwzorowaniem praw dostępu, gdzie poszczególne pozycje zapisu binarnego cyfry odpowiadają literce prawa odczytu, zapisu i wykonania, czyli r, w oraz x.

W naszym przykładzie pierwszą cyfrą jest cyfra 7. Jak ją zapiszemy binarnie ?

Oczywiście jako 111 (2).  (Więcej o liczbach binarnych w temacie o systemach liczbowych).

Teraz każda 1 mówi nam o tym, iż mamy przypisać określone prawo (r, w oraz x). Zapis 111 oznacza nie mniej, nie więcej, jak pełne prawo, więc rwx.

Kolejna cyfra to 4, w zapisie binarnym 100(2).

Mamy tu 1 jedynie w miejscu litery r, więc prawo to zapiszemy jako r– (dwa myślniki w miejscach nie przyznanych praw).

No i jeszcze 0, w zapisie binarnym 000(2), czyli — (brak praw).

Reasumując właściciel ma pełne prawa, grupa prawo do odczytu, a pozostali nie maja żadnych praw do pliku.

Polecenie ls -l dla takiego pliku dałoby rezultat:

– rwx r– —

Inne przykłady:
400 – prawo czytania dla właściciela pliku
200 – prawo pisania dla właściciela pliku
100 – prawo egzekwowania pliku przypisane jego właścicielowi
040 – prawo czytania dla grupy użytkowników
020 – prawo pisania dla grupy użytkowników
010 – prawo egzekwowania pliku przypisane grupie użytkowników
004 – prawo czytania przypisane innym użytkownikom
002 – prawo pisania przypisane innym użytkownikom
001 – prawo egzekwowania przypisane innym użytkownikom

Rozkład cyfr:

Znaki Cyfra Znaczenie
0 brak praw
–x 1 tylko wykonywanie
-w- 2 tylko zapis
-wx 3 zapis i wykonywanie
r– 4 tylko odczyt
r-x 5 odczyt i wykonanie
rw- 6 pokazuje informacje na temat komendy
rwx 7 zapis, odczyt i wykonywanie

 

Polecenie chmod pozwala zmienić prawa przy pomocy wartości wyrażonych w kodzie ósemkowym, np. jak nadać wszystkie prawa właścicielowi pliku plikb, prawa do czytania i egzekwowania tego pliku grupie, do której należy jego właściciel i prawo do czytania pliku innym użytkownikom systemu ?

chmod 754 plikb

 

Ćwiczenia

Zezwolenia ustawiamy jednym poleceniem.

  1. W katalogu domowym załóż katalog katalog1. Ustaw mu cyfrowo zezwolenia drwxrw-r--.
  2. Odbierz innym możliwość odczytu (system literowy).
  3. Dodaj grupie możliwość wykonywania (system literowy).
  4. Przypisz wszystkim możliwość odczytu, zapisu oraz wykonywania (system literowy).
  5. Odbierz grupie i innym możliwość zapisu (system literowy).
  6. Nadaj numerycznie zezwolenia dr-xrw-r--.
  7. Przypisz grupie i innym odczyt i wykonywanie (system literowy).
  8. Załóż w katalogu katalog1 plik tekstowy plik1.txt. Ustaw mu numerycznie zezwolenia -rw-r--r--.
  9. Numerycznie ustaw dla katalogu katalog1 i całej jego zawartości zezwolenia odczytu i wykonywania.
  10. Załóż katalog katalog2. Nie korzystając z polecenia chmod przypisz mu uprawnienia drwx------.

 

Ćwiczenia: Linux | Terminal - nadzorowanie uprawnień do plików i folderów

🗸 Nadaj w sposób cyfrowy uprawnienia do pliku kot: właściciel pełne prawa, grupa odczyt, pozostali brak praw
Zaloguj się, aby sprawdzić odpowiedź.
🗸 Zmień właściciela pliku kot na baltazar
Zaloguj się, aby sprawdzić odpowiedź.
Zaloguj się, aby zobaczyć pozostałe 10 ćwiczeń i zapisywać wyniki.