Branje in pravilna nastavitev pravic datotek na Vašem VPS
Vsaka datoteka in vsaka mapa na Vašem VPS ima lastnika, skupino in pravice. Če so pravice preohlapne, lahko vdrto spletno mesto ali storitev piše povsod. Če so prestroge, dobite napake, kot sta "Permission denied" ali 403 na Vašem spletnem mestu. Tukaj preberite, kako pravice razberete in jih pravilno nastavite. Če imate paket gostovanja z DirectAdmin, si oglejte Prepovedano (403): Nimate dovoljenja za dostop do / na tem strežniku.
Branje pravic z ls -l
ls -l /var/www/example.com -rw-r--r-- 1 anna www-data 1520 index.html -rw-r----- 1 anna www-data 412 config.php drwxr-xr-x 2 anna www-data 4096 images drwxrwxr-x 2 www-data www-data 4096 uploads
Prvi znak označuje vrsto: - je datoteka, d mapa, l bližnjica. Sledijo tri skupine po tri znake: kaj sme lastnik, kaj sme skupina in kaj smejo vsi ostali. Nato sta navedena lastnik (anna) in skupina (www-data).
| Črka | Pri datoteki | Pri mapi |
|---|---|---|
r | Branje | Izpis imen v mapi |
w | Spreminjanje | Ustvarjanje, preimenovanje in brisanje datotek |
x | Izvajanje kot program | Vstop v mapo in odpiranje datotek v njej |
Bodite pozorni na dve stvari. Brez x na mapi ne pridete do datotek v njej, tudi če so berljive. Kdor ima w na mapi, lahko v njej briše datoteke, tudi če pripadajo komu drugemu.
Pravice kot število
Pravice pogosto zapišete s tremi števkami: r šteje 4, w 2 in x 1, seštejete jih za vsako skupino posebej.
| Število | Pravice | Uporaba |
|---|---|---|
| 644 | rw-r--r-- | Običajna datoteka, na primer spletna stran ali slika |
| 755 | rwxr-xr-x | Mapa ali program, ki ga sme uporabljati vsak |
| 640 | rw-r----- | Konfiguracija z geslom, ki jo spletni strežnik bere prek skupine |
| 600 | rw------- | Tajna datoteka, kot je authorized_keys, zasebni ključ ali datoteka .env |
| 700 | rwx------ | Zasebna mapa, kot je ~/.ssh |
Spreminjanje pravic in lastnika
chmod 640 /var/www/example.com/config.php chmod g+w /var/www/example.com/uploads sudo chown anna:www-data /var/www/example.com/config.php
chmod spremeni pravice, s številom ali s črkami (u, g, o za lastnika, skupino in ostale, z + ali -). chown lastnik:skupina spremeni lastnika in skupino; to sme samo root, zato z sudo.
Za celotno mapo je chmod -R 644 znana napaka: vse podmape tedaj izgubijo svoj x in postanejo neuporabne. Mape in datoteke nastavite ločeno z find:
sudo find /var/www/example.com -type d -exec chmod 755 {} +
sudo find /var/www/example.com -type f -exec chmod 644 {} +
Spletni strežnik prek skupine
Na Debianu in Ubuntuju nginx in PHP-FPM privzeto tečeta pod uporabnikom www-data. Urejena razporeditev: Vi ste lastnik datotek, skupina je www-data. Spletni strežnik tako bere prek skupine, piše pa samo v mapo, kjer je to res potrebno, na primer uploads (chmod g+w ali lastnik www-data samo na tej mapi). Spletnemu strežniku ne dajte pravice pisanja v Vaše datoteke PHP.
777. Tedaj lahko vsak na strežniku datoteko ali mapo bere, spreminja in izvaja. Če gre kdaj kaj narobe z enim samim spletnim mestom ali storitvijo, lahko vsiljivec piše povsod, kjer je nastavljeno 777. Prava težava je skoraj vedno lastnik ali skupina: rešite jo, namesto da vse odprete.Pravice za SSH
Strežnik SSH preverja pravice Vaših ključev. Če lahko drugi pišejo v Vašo mapo .ssh ali Vašo domačo mapo, Vaš ključ prezre in znova dobite poziv za geslo, brez jasnega sporočila o napaki. Nastavite takole:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
Če ste mapo kot root ustvarili za drugega uporabnika, popravite tudi lastnika, kot je opisano v Lasten uporabnik s sudo. Na AlmaLinux in Rocky Linux lahko tudi SELinux zavrne datoteko, ki ima pravilne pravice; pri ročno ustvarjeni mapi .ssh pomaga restorecon -Rv ~/.ssh.
s namesto x, na primer pri /usr/bin/passwd? To je bit setuid: program tedaj teče s pravicami lastnika. Nekaj sistemskih programov to potrebuje, vendar ga nikoli sami ne nastavite na skripto. Nepričakovana datoteka setuid lahko kaže na vdor, glejte Vdrli so Vam? Prvi koraki.Želite izvedeti več? Sledite brezplačnemu tečaju VPS in upravljanje strežnikov Linux, lekcija 3.1 Uporabniki, skupine in pravice datotek.
