Zrozumienie uprawnień plików w Linuxie i jak je zarządzać
Jednym z kluczowych fundamentów bezpieczeństwa systemu Linux i architektury wieloużytkownikowej jest model uprawnień do plików. W przeciwieństwie do Windows, Linux ściśle egzekwuje własność i kontrolę dostępu dla każdego pliku i katalogu w systemie. Opanowanie uprawnień do plików nie dotyczy tylko bezpieczeństwa — jest niezbędne do zarządzania serwerami, wdrażania oprogramowania, uruchamiania skryptów i automatyzacji zadań.
Model uprawnień do plików w Linuxie
Każdy plik i katalog w Linuxie ma trzy rodzaje praw dostępu, przypisane do trzech typów użytkowników:
| Klasa użytkownika | Opis |
|---|---|
| właściciel | Użytkownik, który jest właścicielem pliku |
| grupa | Użytkownicy w grupie pliku |
| inni | Wszyscy inni użytkownicy w systemie |
Każda klasa może mieć przypisane trzy rodzaje uprawnień:
| Uprawnienie | Symbol | Znaczenie |
|---|---|---|
| odczyt | r | Wyświetl zawartość pliku / listuj katalog |
| zapis | w | Modyfikuj plik lub katalog |
| wykonanie | x | Uruchom plik lub uzyskaj dostęp do katalogu |
Wyświetlanie uprawnień za pomocą ls -l
Użyj polecenia ls -l, aby wyświetlić uprawnienia do plików:
ls -l myscript.sh
Wynik:
-rwxr-xr-- 1 alice devs 2048 Jan 25 10:00 myscript.sh
Analiza:
- – → plik regularny
- rwx → właściciel (odczyt/zapis/wykonanie)
- r-x → grupa (odczyt/wykonanie)
- r– → inni (tylko odczyt)
Zmiana uprawnień za pomocą chmod
📌 Tryb symboliczny:
chmod u+x myscript.sh # Add execute to user chmod g-w myscript.sh # Remove write from group chmod o=r myscript.sh # Set read-only for others
📌 Tryb numeryczny:
chmod 755 myscript.sh # rwx for owner, rx for group, rx for others
| Ósemkowy | Znaczenie |
|---|---|
| 7 | rwx |
| 6 | rw- |
| 5 | r-x |
| 4 | r– |
| 0 | — |
Przykład:
chmod 644 file.txt # owner: rw-, group: r--, others: r-- chmod 700 script.sh # owner: rwx, group/others: ---
Zarządzanie własnością za pomocą chown i chgrp
Zmiana właściciela pliku:
chown alice file.txt
Zmiana grupy:
chgrp devs file.txt
Zmiana obu:
chown bob:admins file.txt
Użyj -R, aby zastosować zmiany rekurencyjnie:
chown -R www-data:www-data /var/www/
Specjalne bity uprawnień
Linux obsługuje trzy specjalne tryby, które modyfikują domyślne zachowanie:
1. SUID (Set User ID)
- Dotyczy plików wykonywalnych
- Uruchamia się z uprawnieniami właściciela, a nie wywołującego
chmod u+s /usr/bin/passwd
🔍 wynik ls -l: -rwsr-xr-x
Przykład użycia: /usr/bin/passwd musi działać jako root, aby zaktualizować /etc/shadow.
SGID (Set Group ID) s
- Na plikach: uruchamia się z uprawnieniami grupy pliku
- Na katalogach: nowe pliki dziedziczą grupę
chmod g+s /opt/project
🔍 wynik ls -l: drwxr-sr-x
Przydatne w wspólnych folderach deweloperskich.
Sticky Bit t
- Na katalogach: tylko właściciel może usuwać/zmieniać nazwy swoich plików
- Typowe w /tmp, aby chronić pliki użytkowników
chmod +t /shared/folder
ls -ld /tmpdrwxrwxrwt 10 root root 4096 Jan 28 12:00 /tmp
Zrozumienie umask
umask ustawia domyślne uprawnienia dla nowych plików/katalogów:
Sprawdź bieżącą wartość: umask
Typowa wartość: 0022
| Plik | Domyślne uprawnienia | Z umask 0022 |
|---|---|---|
| Plik | 666 → 644 | rw-r–r– |
| Katalog | 777 → 755 | rwxr-xr-x |
Ustaw tymczasowy umask:
umask 0077 # Files: 600, Dirs: 700
Rekurencyjne naprawy uprawnień
Ustaw uprawnienia dla folderów i plików osobno:
find /my/project -type d -exec chmod 755 {} ; find /my/project -type f -exec chmod 644 {} ;
Podsumowanie
Uprawnienia do plików w Linuxie zapewniają szczegółową kontrolę dostępu dla bezpieczeństwa, środowisk wieloużytkownikowych i automatyzacji. Zrozumienie, jak wyświetlać, zmieniać i egzekwować uprawnienia, daje ci możliwość pewnego zarządzania serwerami, ochrony danych i bezpiecznej współpracy.
Niezależnie od tego, czy wdrażasz aplikacje internetowe, zarządzasz serwerami w chmurze, czy tworzysz skrypty powłoki — znajomość chmod, chown, umask i specjalnych bitów uprawnień jest niezbędna.
