Varnostni model operacijskega sistema Linux temelji na natančno določenih pravicah dostopa do vsake posamezne datoteke in mape. Če pravice niso ustrezno nastavljene, lahko spletni strežnik javi napako 403 Forbidden ali Permission Denied, po drugi strani pa preveč odprte pravice predstavljajo resno varnostno tveganje. V tem vodniku si bomo ogledali strukturo pravic ter praktično uporabo ukazov chmod in chown.
Struktura dovoljenj in uporabniški nivoji
Vsaka datoteka v Linuxu določa pravice za tri skupine uporabnikov: lastnika (User), skupino (Group) in vse ostale (Others).
| Pravica | Simbol | Številčna vrednost | Pomen za datoteko / mapo |
|---|---|---|---|
| Branje (Read) | r | 4 | Branje vsebine datoteke ali izpis seznama datotek v mapi. |
| Pisanje (Write) | w | 2 | Spreminjanje vsebine, brisanje ali ustvarjanje novih datotek. |
| Izvajanje (Execute) | x | 1 | Zagon skripte/programa ali vstop v mapo (odpiranje mape). |
Spreminjanje pravic z ukazom chmod
Ukaz chmod (Change Mode) omogoča nastavitev dovoljenj s seštevanjem številčnih vrednosti (npr. 4 + 2 + 1 = 7 za vse pravice).
- chmod 644 datoteka.txt: Lastnik lahko bere in piše (6), skupina in ostali le berejo (4). Standard za spletne datoteke.
- chmod 755 skripta.sh: Lastnik ima vse pravice (7), ostali lahko berejo in izvajajo (5). Standard za mape in zagonske skripte.
- chmod 700 kljuc.pem: Popoln dostop ima izključno lastnik, vsi ostali nimajo nobenega dostopa. Obvezno za SSH ključe.
Spreminjanje lastništva z ukazom chown
Ukaz chown (Change Owner) določa, kateri uporabnik in katera skupina sta uradna lastnika datoteke ali mape.
# 1. Sprememba lastnika datoteke na uporabnika 'www-data' (spletni strežnik) sudo chown www-data index.php # 2. Sprememba lastnika in skupine hkrati sudo chown www-data:www-data index.php # 3. Rekurzivna sprememba lastništva celotne spletne mape (-R) sudo chown -R www-data:www-data /var/www/html/
Zlato pravilo varnosti pri pravicah
Nikoli ne uporabljajte ukaza chmod 777 na produkcijskih strežnikih. S tem vsem uporabnikom in morebitnim napadalcem omogočite neomejeno spreminjanje ter izvajanje škodljive kode. Vedno uporabite najmanjši možni nivo pravic, ki še omogoča nemoteno delovanje aplikacije.