WordPress dozvole za fajlove i foldere i kako da ih pravilno podesite
WordPress je bez sumnje jedna od najpopularnijih CMS platformi za izradu i održavanje web-sajtova na svetu. Upravo zahvaljući toj popularnosti i velikom prisustvu na internetu, veoma često je izložen hakerskim napadima. To ne znači nužno da je WordPress manje bezbedan, već da je zbog velike prisutnosti na web-u prirodna meta hakerskih napada. Jedan od najčešćih razloga za ove napade jesu upravo nepravilna podešavanja WordPress dozvola (permissions) za fajlove i foldere na web serveru.
Zato ćemo ovom tekstu detaljno objasniti šta su dozvole za fajlove u WordPress-u, kako funkcionišu i kako da ih pravilno podesite. Takođe ćemo proći kroz konkretne primere koda, kako biste mogli samostalno da podesite ove dozvole.
Napomena: za pravilno razumevanje teksta biće vam potrebno barem osnovno razumevanje Linux/Unix sistema fajlova i foldera, jer se WordPress, u najvećem broju slučajeva, najčešće hostuje na Linux serverima. Čak i ako nemate nikakvo prethodno iskustvo, potrudićemo se da sve bude detaljno i jasno objašnjeno.
Šta su WordPress dozvole za fajlove (file permissions)?
U Unix/Linuks okruženju, svaki fajl i folder ima određena pravila koja definišu ko može da ih čita (read), menja (write) i izvršava (execute). Ova pravila su podeljena u tri grupe dozvola:
- Vlasnik (Owner) – Korisnik koji je vlasnik određenog fajla ili foldera (obično korisnik koji ga je kreirao).
- Grupa (Group) – Korisnici koji pripadaju istoj grupi kao i vlasnik fajla ili foldera.
- Ostali (Others / World) – Svi ostali korisnici na sistemu koji nisu vlasnik i ne spadaju u grupu vlasnika.
Svaka od ovih grupa može imati tri vrste dozvola:
- r (read) – dozvolu za čitanje sadržaja fajla (ili listanje sadržaja foldera);
- w (write) – dozvolu za upis, odnosno izmenu sadržaja fajla ili izmenu sadržaja foldera (dodavanje i brisanje fajlova unutar foldera);
- x (execute) – dozvolu za izvršavanje datog fajla, odnosno ulazak u folder i rad sa njim (npr. cd u taj folder).
U numeričkom formatu, ove dozvole se izražavaju pomoću tri cifre (ponekad i četiri, ali u ovom tekstu ćemo se fokusirati na tri), gde svaka cifra redom označava dozvole za vlasnika, grupu i ostale. Uobičajeni način kodiranja dozvola je sledeći:
- 4 = read (r)
- 2 = write (w)
- 1 = execute (x)
- 0 = nema dozvolu
Te vrednosti se na kraju sabiraju, pa se na taj način dobija jedan kombinovani broj.
Na primer:
- 7 = 4 + 2 + 1 (read + write + execute)
- 5 = 4 + 0 + 1 (read + execute)
- 6 = 4 + 2 + 0 (read + write)
Ako vidite nešto poput 755, to znači:
- prva cifra (7) se odnosi na vlasnika → r + w + x (4 + 2 + 1 = 7)
- druga cifra (5) se odnosi na grupu → r + x (4 + 0 + 1 = 5)
- treća cifra (5) se odnosi na ostale korisnike → r + x (4 + 0 + 1 = 5)
Pravilno podešene dozvole za fajlove i foldere u WordPress-u su izuzetno važne za bezbednost, ali i za ispravno funkcionisanje ovog CMS-a. Na primer, neke teme i plugini podrazumevano treba da imaju mogućnost pisanja (write) u određene fajlove ili foldere, kako bi mogli da skladište privremene podatke, prenose fajlove i slično.
Sa druge strane, previše labave dozvole otvaraju vrata hakerima da upadnu u sistem i ubace zlonamerne fajlove ili izmene postojeće.
Zašto je važno da pravilno podesite WordPress dozvole?
Bezbednosni aspekt
Najvažnija prednost pravilno definisanih dozvola za fajlove jeste upravo bezbednost. Ako neke važne fajlove kao što su wp-config.php, functions.php i sl. držite previše otvorenim, hakeri ili zlonamerni programi mogu da im pristupe i u njima naprave neovlašćene izmene. U ekstremnim slučajevima, napadači mogu čak i potpuno da preuzmu kontrolu nad vašim web sajtom.
Stabilnost i performanse
Drugi razlog su stabilnost i performanse samog WordPress-a. Ako su neke teme ili plugini konfigurisani tako da pišu (upisuju) u određene fajlove, a dozvole nisu dodeljene kako treba, pri izvršavanju PHP skripti može da dođe do pada sajta ili grešaka. Ako vam se desi da ne možete da ažurirate WordPress, instalirate temu ili plugin, ili da vršite izmene fajlova preko WordPress dashboard-a, česti uzrok jesu upravo pogrešna podešavanja dozvola za fajlove.
Kompatibilnost i ažuriranja
WordPress se stalno ažurira kako bi dodao nove funkcionalnosti i popravio bezbednosne propuste. Pored ažuriranja WordPress core-a koje radi kompanija Automattic (koja je vlasnik WordPress-a), i autori tema i plugina takođe redovno ažuriraju svoje softvere. Neodgovarajuće dozvole mogu da otežaju ili čak u potpunosti onemoguće ova ažuriranja. Tako se može desiti da it tog razloga ostanete sa zastarelim verzijama softvera koje su izložene bezbednosnim rizicima, ili ne rade ispravno sa novim verzijama WordPress-a.
Koje su preporučene vrednosti WordPress dozvola za fajlove i foldere?
Tradicionalno, preporuka za WordPress dozvole je sledeća:
- Fajlovi (Files): 644
- Folderi (Directories): 755
- wp-config.php fajl: 600 ili 640 (u zavisnosti od konfiguracije servera)
Dakle, uobičajeno je da se najčešće koristi:
- za folder: drwxr-xr-x (u numeričkoj notaciji 755),
- za fajl: -rw-r–r– (u numeričkoj notaciji 644).
Dok je za fajlove najčešće dovoljno podešavanje 644, neki tvrde da je moguće i 640 ukoliko to ne remeti funkcionisanje WordPress-a na konkretnom serveru.
Takođe, fajl wp-config.php sadrži osetljive podatke poput korisničkog imena baze, lozinke i naziva baze, pa ima smisla da bude zaštićeniji u odnosu na ostale fajlove. Zato se često postavlja na 600 ili 640 tako da samo vlasnik može da ga čita (a ponekad i vlasnik + grupa, ali ne i svi ostali).
Kako podesiti dozvole (chmod) u praksi?
Najčešći način podešavanja dozvola na daljinu jeste preko terminala (SSH pristup) ili putem SFTP klijenta (npr. FileZilla). U nastavku teksta ćemo prikazati kako to izgleda u terminalu pomoću komande chmod.
Ipak, većina SFTP klijenata nudi grafički interfejs gde možete da kliknete desnim klikom na fajl/folder > Permissions (ili Properties), pa da ručno podesite numeričku vrednost ili oznake za read, write, execute.
Ukoliko želite da saznate više o tome kako da koristite SFTP klijent, predlažemo da pročitate naš tekst Kako da koristite SFTP za transfer fajlova.
Primer za fajlove
Recimo da želite da svi fajlovi u vašem WordPress direktorijumu dobiju dozvolu 644. Ako se nalazite u root-u vaše WordPress instalacije, možete da upotrebite sledeću komandu:
find . -type f -exec chmod 644 {} \;
Evo objašnjenja:
- find . – pretražuje tekući direktorijum i sve poddirektorijume
- -type f – odnosi se samo na fajlove
- -exec chmod 644 {} \; – menja dozvolu svakom pronađenom fajlu u 644
Primer za foldere
Da biste podesili dozvolu 755 za sve foldere u instalaciji, možete da koristite:
find . -type d -exec chmod 755 {} \;
- -type d – odnosi se samo na foldere (direktorijume)
Posebna zaštita za wp-config.php
Za fajl wp-config.php, najčešća preporuka je 600, što znači da samo vlasnik može da čita i piše u taj fajl:
chmod 600 wp-config.php
Ukoliko to iz nekog razloga izaziva probleme, možete da probate sa 640:
chmod 640 wp-config.php
Razlika između 600 i 640 je u tome što kod 640 grupa kojoj pripada vlasnik fajla može da pročita fajl, što ponekad može biti potrebno, u zavisnosti od konfiguracije servera.
Pregled dozvola (ls -l) i razumevanje simboličkog zapisa
Kada u terminalu otkucate ls -l, videćete nešto poput:
-rw-r--r-- 1 korisnik grupa 1234 Jan 10 12:00 index.php
drwxr-xr-x 2 korisnik grupa 4096 Jan 10 12:00 wp-content
Prvi karakter označava da li je u pitanju fajl (-) ili direktorijum (d). Zatim sledi devet karaktera podeljenih u tri grupe po tri slova: prva grupa od tri slova se odnosi na vlasnika (owner), druga na grupu (group), a treća na ostale (others).
- r = read
- w = write
- x = execute
Pa tako, -rw-r–r– znači da vlasnik ima rw- (read/write), grupa ima r– (samo read), a ostali takođe r– (samo read). Time se u numeričkom formatu predstavlja kao 644.
Šta ako su dozvole suviše slabe?
Kada kažemo suviše slabe (ili previše permisivne) dozvole, obično mislimo na situaciju u kojoj su omogućene apsolutno sve dozvole i vlasniku i grupi i ostalima. Najčešći primer je 777, gde su uključeni read, write i execute za sve grupe korisnika.
Bezbednosni rizik
Ako fajlovi i folderi imaju 777 dozvolu, to u praksi znači da bilo ko na serveru (ili svako ko dobije pristup serveru) može da ih menja i čita. To otvara vrata svim vrstama malvera, shell skripti i ostalih manipulacija. Sa ovako postavljenim dozvolama apadač može bez problema da ubaci zlonamerni kod, presnimi originalne fajlove, ili da preuzme poverljive podatke.
Problem u radu WordPress-a
Suviše slabe dozvole mogu da dovedu i do neželjenih situacija poput sukoba s pravima vlasništva (owner vs. server user). Na primer, ako web server radi kao poseban korisnik (npr. www-data na Debian/Ubuntu ili apache na CentOS), a vlasnik fajlova je drugi korisnik, pogrešna podešavanja dozvola mogu dovesti do situacija gde WordPress misli da sve može da piše, pa dođe na taj način do nepredviđenih konflikata ili grešaka.
Šta ako su dozvole previše stroge?
Sa druge strane, previše stroge dozvole mogu da otežaju nesmetan rad vašeg WordPress sajta. Recimo, ako postavite dozvolu 400 na neki ključni fajl, onda niko osim vlasnika fajla ne može ni da piše u njega, a u zavisnosti od podešavanja sistema, moguće je da čak ni neki PHP proces neće imati pristup da ga pročita. Tako može doći do 500 Internal Server Error greške ili do toga da ne možete da ažurirate teme i plugine iz WordPress admin dashboard-a, jer sistem jednostavno ne može da upiše izmene.
Klasičan primer je i folder wp-content/uploads, gde se nalaze slike i dokumenti koje upload-ujete putem WordPress-a. Ako taj folder nema dozvolu za pisanje (za www-data ili koji god korisnik pokreće PHP), nećete moći da upload-ujete slike. Tada WordPress generiše grešku Could not create directory ili Upload failed.
Kako proveriti koji korisnik i grupa pokreću PHP (server) proces?
U mnogim slučajevima, pogotovo na deljenim (shared) hosting nalozima, postoji određeni način rada gde vaš hosting nalog i web server mogu da budu u istoj grupi ili čak kao isti korisnik.
Na primer, ako ste na cPanel hostingu, često postoji suPHP ili FastCGI mehanizam koji pokreće PHP procese kao vaš korisnički nalog. Zbog toga, najčešće ne morate da postavljate dozvole fajlova na 777 samo da biste omogućili pisanje, jer server ima pristup fajlovima kroz isti korisnički nalog.
Ako imate SSH pristup, komandom ps aux | grep apache ili ps aux | grep nginx (zavisno od servera) možete videti pod kojim korisnikom se izvršava proces. Tada možete prilagoditi dozvole i vlasništvo (chown, chgrp) tako da WordPress fajlove poseduje upravo taj korisnik ili grupa, i da su dodeljene ispravne dozvole za rad.
Podešavanje vlasništva (chown i chgrp)
Pored podešavanja dozvola (chmod), isto je važno ko je vlasnik fajla i kojoj grupi fajl pripada. Na Linux/Unix sistemima, za to služe komande chown (change owner) i chgrp (change group). Možete da koristite objedinjeni pristup, npr. chown korisnik:grupa fajl da biste istovremeno postavili i vlasnika i grupu.
Kada je u pitanju WordPress, dobro je da vaši WordPress fajlovi pripadaju (kao vlasnik) nalogu koji koristi vaš hosting, a da grupa bude ili neka uobičajena kao www-data (na Debian/Ubuntu), apache (na CentOS) ili slično, u zavisnosti od toga kako je podešen server. To omogućava da WordPress (i PHP proces) ima odgovarajući pristup fajlovima.
Na primer, ako su svi fajlovi trenutno vlasništvo root korisnika, a vi pokušavate da ih menjate iz običnog shared hosting naloga, ili WordPress pokušava da iznutra menja te fajlove, to može da napravi probleme. U tom slučaju, potrebno je da fajlove predate svom hosting korisniku:
chown -R mojkorisnik:mojkorisnik
(-R znači rekurzivno, tj. za sve fajlove i foldere unutar tekućeg direktorijuma).
Naravno, ime korisnika i grupe varira u zavisnosti od servera. Za deljene hostinge, ovo često nije dozvoljeno u potpunosti, pa ćete možda morati da kontaktirate podršku.
Kako da ručno promenite dozvole (bez SSH)?
Ako vam je SSH nedostupan, možete da se povežete preko FTP klijenta, npr. FileZilla:
- Povežite se na vaš hosting putem FTP kredencijala.
- Otvorite folder u kom se nalazi WordPress (obično
public_html). - Selektujte fajlove i foldere koje želite da izmenite.
- Desni klik > File Permissions…
- U polje Numeric value unesite željenu vrednost (npr. 755 za foldere ili 644 za fajlove).
- Ako menjate dozvole rekurzivno, obavezno čekirajte Recurse into subdirectories i onda izaberite da li želite da to važi samo za foldere ili za sve fajlove i foldere.

Ovaj način je lakši za korisnike koji iz nekog razloga ne vole da rade u komandnoj liniji ili nemaju mogućnost SSH pristupa. Doduše, ako imate veliki broj fajlova, sve to može da traje duže nego preko brzih komandi u terminalu, ali je svakako jednostavnije za početnike.
Automatski plugini za ispravljanje dozvola
Postoje WordPress plugini koji mogu automatski da prepoznaju i isprave nepravilna podešavanja dozvola. Među poznatijima su:
- iThemes Security (nekada Better WP Security) – ima opciju da predloži i eventualno ispravi neke od dozvola za ključne fajlove.
- All In One WP Security & Firewall – takođe nudi pregled bezbednosnih postavki, uključujući i fajl dozvole.
Ipak, naša preporuka je da se ne oslanjate isključivo na ove alate. Uvek je bolje da razumete suštinu i da sami izvršite proveru i ispravke. Automatski alati mogu nekad da postave dozvole previše restriktivno ili previše slobodno ako ne razumeju tačno kako je vaš server podešen.
Tipična greška: 403 Forbidden
Jedna od čestih grešaka koja se javlja kada su dozvole neregularne jeste 403 Forbidden greška. To znači da je pristup zabranjen (forbidden). Kod fajlova i foldera u WordPress-u, to može da se javi ako su dozvole postavljene tako da web server nema dozvolu za čitanje fajla. Recimo, ako ste umesto 644 slučajno postavili 600 na .htaccess ili na neku temu, tada web server neće moći da pristupi fajlu i vratiće 403 Forbidden.
Rešenje je da postavite ispravnu dozvolu, npr. 644 za .htaccess, i da proverite da li je folder u kome se fajl nalazi (npr. public_html) možda zaključan sa 700 ili sličnim restriktivnim podešavanjima.
Specifične situacije: višesajtni sajt i dodatni folderi
Ako pokrećete WordPress u višesajtnom (multisite) režimu (sa više sajtova u jednoj instalaciji), posebnu pažnju treba da obratite na folder wp-content/uploads i sve njegove podfoldere za različite sajtove. Svi oni moraju da imaju dozvolu koja omogućava čitanje slika (dakle read svima) i pisanje za proces koji radi PHP (obično www-data ili apache). Najčešća postavka je i dalje 755 za foldere i 644 za fajlove.
Ako imate dodatne foldere van uobičajene WordPress hijerarhije, a koje koristite za prilagođene skripte ili podatke, i oni bi trebalo da prate iste principe: 755 za foldere, 644 za fajlove.
Naravno, ako su u pitanju folderi koji sadrže isključivo privatne podatke i ako web server nema potrebe da čita te podatke, dozvole se mogu dodatno stegnuti (npr. 700), ali pod uslovom da sve i dalje nesmetano funkcioniše.
Kako testirati i proveriti funkcionisanje nakon podešavanja?
Nakon što podesite dozvole, uvek bi trebalo da obavite kratku proveru:
- Proverite da li WordPress i dalje radi: Otvorite početnu stranicu svog web sajta u browseru i probajte da otvorite neke linkove.
- Proverite upload slika: Ulogujte se u WordPress admin dashboard, idite na opciju Media > Add New i probajte da upload-ujete neku sliku. Ako je sve u redu, folder uploads i njegovi podfolderi imaju ispravne dozvole.
- Proverite ažuriranje teme i plugina: Pokušajte da ažurirate postojeći plugin ili temu (ako postoji dostupna nova verzija) ili instalirajte novi plugin kako biste bili sigurni da WordPress može da piše fajlove.
- Proverite pristup osetljivim fajlovima: Npr.
wp-config.phpne bi trebalo da bude dostupan za javno čitanje. Probajte da ga pozovete direktno u svom browseru (npr.https://nekidomen.rs/wp-config.php). Najčešće, WordPress ili web server vraćaju 403 Forbidden ili neku grešku, što znači da je fajl zaštićen.
Ako sve ovo prođe bez grešaka, verovatno ste uspešno podesili dozvole.
Zaključak
Kao što ste videli, pravilno podešavanje WordPress dozvola za fajlove i foldere jedan je od osnovnih koraka u zaštiti web sajta. Ukoliko držite sve fajlove i foldere po podrazumevanim standardima (644 za fajlove, 755 za foldere, eventualno zategnute dozvole za wp-config.php), uz odgovarajuće vlasništvo nad fajlovima, možete značajno da smanjite mogućnost kompromitovanja vašeg web sajta. Uz to, pravilne dozvole olakšavaju redovna ažuriranja, instalacije i rad sa temama i plugin-ima.
Uvek imajte na umu da se bezbednost ne sastoji samo od jedne radnje – poput setovanja pravilnih WordPress dozvola za fajlove i foldere, nego i od stalne primene dobrih praksi i alata. Na kraju možemo samo da zaključimo da podešavanje WordPress dozvola za fajlove i foldere predstavlja jedan od najvažnijih koraka kojim započinje svaka ozbiljna zaštita svakog WordPress sajta.
