Uprawnienia plików i katalogów - chmod i chowa
1. Podstawy modelu uprawnień
Każdy plik i katalog ma przypisane uprawnienia dla trzech grup użytkowników:
- u (user) – właściciel pliku
- g (group) – grupa, do której należy plik
- o (others) – wszyscy pozostali użytkownicy
Dla każdej z tych grup można przypisać trzy typy uprawnień:
- r (read) – prawo do odczytu
- w (write) – prawo do zapisu/modyfikacji
- x (execute) – prawo do wykonania (dla plików) lub wejścia (dla katalogów)
2. Wyświetlanie uprawnień
ls -l plik.txt
Wyświetla szczegółowe informacje, w tym uprawnienia w formacie:
-rwxr-xr--
Gdzie:
- Pierwszy znak: typ pliku (
-zwykły plik,dkatalog,llink symboliczny) - Kolejne 3 znaki: uprawnienia właściciela (
rwx) - Kolejne 3 znaki: uprawnienia grupy (
r-x) - Ostatnie 3 znaki: uprawnienia innych (
r--)
3. Komenda chmod – zmiana uprawnień
Format symboliczny (literowy):
chmod u+x skrypt.sh
Dodaje właścicielowi prawo wykonywania pliku skrypt.sh.
chmod g-w dokument.txt
Odbiera grupie prawo do zapisu w pliku dokument.txt.
chmod o+r raport.pdf
Dodaje innym użytkownikom prawo do odczytu pliku raport.pdf.
chmod a+r plik.txt
Dodaje prawo do odczytu dla wszystkich (właściciel, grupa, inni).
chmod go-rwx prywatny.txt
Odbiera grupie i innym wszystkie uprawnienia do pliku.
Format numeryczny (oktalny):
Każde uprawnienie ma wartość liczbową:
- r (read) = 4
- w (write) = 2
- x (execute) = 1
Sumując wartości, otrzymujemy kod uprawnień dla każdej grupy:
- 7 = rwx (4+2+1)
- 6 = rw- (4+2)
- 5 = r-x (4+1)
- 4 = r-- (4)
- 0 = --- (brak uprawnień)
chmod 755 skrypt.sh
Właściciel: rwx (7), grupa: r-x (5), inni: r-x (5).
chmod 644 dokument.txt
Właściciel: rw- (6), grupa: r-- (4), inni: r-- (4).
chmod 700 prywatny_skrypt.sh
Tylko właściciel ma pełny dostęp, inni nie mają żadnych uprawnień.
4. Rekurencyjna zmiana uprawnień
chmod -R 755 /var/www/strona
Opcja -R (recursive) zmienia uprawnienia dla katalogu i wszystkich plików oraz podkatalogów w nim zawartych.
chmod -R u+rwX /home/user/dokumenty
Duże X dodaje prawo wykonywania tylko do katalogów i plików, które już mają to prawo dla kogokolwiek.
5. Komenda chown – zmiana właściciela i grupy
chown user plik.txt
Zmienia właściciela pliku na użytkownika user.
chown user:grupa plik.txt
Zmienia właściciela na user i grupę na grupa.
chown :grupa plik.txt
Zmienia tylko grupę (właściciel pozostaje bez zmian).
chown -R www-data:www-data /var/www
Rekurencyjnie zmienia właściciela i grupę dla całego katalogu i jego zawartości.
6. Praktyczne przykłady zastosowań
# Nadanie uprawnień wykonywania dla skryptu
chmod +x deploy.sh
# Zabezpieczenie pliku konfiguracyjnego (tylko właściciel może czytać i pisać)
chmod 600 config.ini
# Typowe uprawnienia dla katalogu www
chmod -R 755 /var/www/html
chown -R www-data:www-data /var/www/html
# Odebranie wszystkich uprawnień innym użytkownikom
chmod go-rwx /home/user/tajne_dane
# Sprawdzenie uprawnień przed i po zmianie
ls -l plik.txt
chmod 644 plik.txt
ls -l plik.txt