Failų teisių peržiūra ir teisingas nustatymas Jūsų VPS serveryje
Kiekvienas Jūsų VPS failas ir katalogas turi savininką, grupę ir teises. Jei teisės per plačios, nulaužta svetainė ar paslauga gali rašyti bet kur. Jei per griežtos, gaunate klaidas, tokias kaip „Permission denied“ arba 403 savo svetainėje. Čia sužinosite, kaip skaityti teises ir jas teisingai nustatyti. Jei turite prieglobos planą su DirectAdmin, žr. Draudžiama (403): Jūs neturite teisės pasiekti / šiame serveryje.
Teisių skaitymas su 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
Pirmasis simbolis nurodo tipą: - yra failas, d katalogas, l simbolinė nuoroda. Toliau eina trys grupelės po tris simbolius: ką gali savininkas, ką gali grupė ir ką gali visi kiti. Po jų nurodomi savininkas (anna) ir grupė (www-data).
| Raidė | Failui | Katalogui |
|---|---|---|
r | Skaityti | Gauti kataloge esančių failų pavadinimus |
w | Keisti | Kurti, pervadinti ir šalinti failus |
x | Vykdyti kaip programą | Įeiti į katalogą ir atidaryti jame esančius failus |
Atkreipkite dėmesį į du dalykus. Be x teisės katalogui nepasieksite jame esančių failų, net jei jie skaitomi. O kas turi w teisę katalogui, gali šalinti jame esančius failus, net jei jie priklauso kitam.
Teisės skaičiais
Teisės dažnai užrašomos trimis skaitmenimis: r reiškia 4, w 2, o x 1, sumuojant kiekvienai grupelei.
| Skaičius | Teisės | Naudojimas |
|---|---|---|
| 644 | rw-r--r-- | Įprastas failas, pavyzdžiui, tinklalapis ar paveikslėlis |
| 755 | rwxr-xr-x | Katalogas arba programa, kurią gali naudoti visi |
| 640 | rw-r----- | Konfigūracija su slaptažodžiu, kurią žiniatinklio serveris gali skaityti per grupę |
| 600 | rw------- | Slaptas failas, pvz., authorized_keys, privatusis raktas ar .env failas |
| 700 | rwx------ | Privatus katalogas, pvz., ~/.ssh |
Teisių ir savininko keitimas
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 keičia teises skaičiumi arba raidėmis (u, g, o savininkui, grupei ir kitiems, su + arba -). chown savininkas:grupė keičia savininką ir grupę; tai gali daryti tik root, todėl naudokite sudo.
Visam katalogui chmod -R 644 yra dažna klaida: visi pakatalogiai praranda x teisę ir tampa nenaudojami. Katalogų ir failų teises nustatykite atskirai su find:
sudo find /var/www/example.com -type d -exec chmod 755 {} +
sudo find /var/www/example.com -type f -exec chmod 644 {} +
Žiniatinklio serveris per grupę
Debian ir Ubuntu sistemose nginx ir PHP-FPM pagal numatymą veikia naudotojo www-data vardu. Tvarkingas išdėstymas: Jūs esate failų savininkas, o grupė yra www-data. Tada žiniatinklio serveris gali skaityti per grupę, o rašyti tik tame kataloge, kur to tikrai reikia, pvz., uploads (chmod g+w arba savininkas www-data tik tam katalogui). Nesuteikite žiniatinklio serveriui rašymo teisės Jūsų PHP failams.
777. Tada visi serverio naudotojai gali skaityti, keisti ir vykdyti failą ar katalogą. Jei kada nors bus pažeista bent viena svetainė ar paslauga, įsibrovėlis galės rašyti visur, kur nustatyta 777. Tikroji problema beveik visada yra savininkas arba grupė: išspręskite ją, užuot viską atvėrę.Teisės SSH
SSH serveris tikrina Jūsų raktų teises. Jei kiti gali rašyti į Jūsų .ssh katalogą ar namų katalogą, jis ignoruoja Jūsų raktą ir vėl prašo slaptažodžio, nepateikdamas aiškaus klaidos pranešimo. Nustatykite teises taip:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
Jei katalogą sukūrėte kaip root kitam naudotojui, taip pat pataisykite savininką, kaip aprašyta straipsnyje Atskiras naudotojas su sudo. AlmaLinux ir Rocky Linux sistemose SELinux taip pat gali atmesti failą, kurio teisės teisingos; rankiniu būdu sukurtam .ssh katalogui padeda restorecon -Rv ~/.ssh.
s vietoj x, pvz., ties /usr/bin/passwd? Tai setuid bitas: programa tada veikia su savininko teisėmis. Kelioms sistemos programoms jo reikia, tačiau niekada nenustatykite jo patys scenarijui. Netikėtas setuid failas gali rodyti įsilaužimą, žr. Nulaužta? Pirmieji žingsniai.Norite sužinoti daugiau? Išklausykite nemokamo kurso VPS ir Linux serverių administravimas pamoką 3.1 Naudotojai, grupės ir failų teisės.
