Rehber 21 Haziran 2026 · 6 dakika okuma

WordPress Dosya İzinleri: Dizin Bazlı En Doğru Ayarlar

WordPress’te doğru dosya izinlerini dizin bazında öğrenin: wp-content, uploads, cache, config ve SSH ile güvenli uygulama örnekleri.

WordPress’te dosya izinleri (permissions), hem güvenliği hem de içeriklerin çalışmasını doğrudan etkiler. Yanlış ayarlar dosya yüklemeyi bozar, eklentilerin güncellemelerini keser veya “hatalı yazma izni” yüzünden risk artırır. Bu rehberde, sunucu ortamından bağımsız şekilde dizin bazlı hangi hakların verilmesi gerektiğini, ayrıca pratik doğrulama yöntemleriyle birlikte net bir kontrol listesi olarak okuyacaksınız.

Aşağıdaki hedef, “maksimum izin” vermek değil; WordPress’in gerçekten ihtiyaç duyduğu yazma izinlerini, geri kalanını kilitleyecek şekilde ayarlamaktır.

WordPress’te dosya izinleri neden bu kadar hassas?

WordPress’in yazma ihtiyacı dinamik içerik üretilirken ortaya çıkar: - Görsel ve dosya yükleme (uploads) - Geçici dosyalar ve cache üretimi (ör. wp-content/cache) - Eklenti/tema güncellemeleri ve otomatik kurulumlar (wp-content) - wp-config.php gibi ayar dosyalarının korunması (yazmaya kapalı)

Linux’ta yetkiler genelde 3 haneli (ör. 644, 755) görünür. Bu sayıların mantığı: - İlk hane: dosyanın sahibi - İkinci hane: grup - Üçüncü hane: diğerleri (world)

Örnek: - 644: dosya için tipiktir (sahibi yazabilir, herkes okuyabilir) - 755: dizin için tipiktir (dizin içine erişim ve listeleme mümkün, dosya çalıştırma/erişim akışı izinli)

Kritik nokta: WordPress’te en sık görülen problem “dizinlerin yazmaya açık olması” değil; yazma izninin gereksiz yere fazla verilmesidir. Diğer yandan en sık işlev bozan problem de “gereken yere yazma izni verilmemesidir”.

WordPress dizinleri için önerilen izinler (standart şablon)

Aşağıdaki değerler, Apache/Nginx ile çalışan çoğu WordPress kurulumunda kullanılan, güvenlik ile işlevi dengeler. Kurulumunuz farklı ise (ör. farklı PHP-FPM kullanıcıları, farklı web kökü), tabloda yer alan “kime (user) verilecek?” kısmını mutlaka eşleştirin.

Dosya türlerine göre temel kural

  • PHP/konfigürasyon dışındaki dosyalar: 644
  • Dizinsal yapılar: 755

Bunun istisnası; yazma gerektiren dizinlerdir. Bunlarda dizin izni genellikle 775 (grup yazabilir) veya bazı kurulumlarda 777 değildir. “777” pratikte genellikle gereksiz ve risklidir.

wp-content ve kritik dizin eşlemesi

Aşağıdaki tablo, WordPress’in en çok dokunduğu dizinleri gösterir. Buradaki izinler, “uploads ve cache yazabilsin, config yazamasın” mantığıdır.

Yol (dizin/yol) Beklenen izin Kimin yazabilmesi? Neden
/var/www/html (web kökü) 755 Web server user (veya grup) Dizin listeleme ve erişim için temel erişim
/wp-admin 755 Web server user/grup Çalışma için gerekli, dosya yazma gerekmez
/wp-includes 755 Web server user/grup Güncelleme sırasında yazma gerekebilir; tipik olarak yeterli değilse güncellemeler patlar
/wp-content 755 Sınırlı (genellikle grup) Tema/eklenti dizinleri burada; gerekirse alt dizinlere yazma ver
/wp-content/uploads 775 Web server user/grup Dosya yükleme ve ortam dosyaları
/wp-content/cache (kullanıyorsanız) 775 Web server user/grup Cache üretimi
/wp-content/uploads/tmp (varsa) 775 Web server user/grup Geçici yükleme dosyaları
/wp-content/upgrade (varsa) 775 Web server user/grup Güncelleme paketleri
wp-config.php 640-600 Sadece owner Uygulama ayarları; “public write” tehlikeli
.htaccess (kullanıyorsanız) 644 Owner Kural seti; yazma gerekir ama yönetimli olmalı
wp-config.php ve config benzeri dosyalar 640 (öneri) Owner; gerekirse grup okumaya açık Çalınma/bozulma riskini azaltır

Eğer “grup” mantığını kullanıyorsanız (ör. tüm dizinler aynı grup altında), 775 ile hem güvenlik hem çalışabilirlik dengelenir. Gruplama yapamıyorsanız, owner’a yazma verip diğerlerine kapatmak daha iyi sonuç verir.

Doğru user:group eşlemesi (permissions kadar önemli)

Dosya izinleri tek başına yetmez. “Web server’ın hangi kullanıcı ile çalıştığı” ve dosyaların owner/grup bilgisi, izinleri fiilen anlamlandırır.

Kontrol: Sizin web server user’ınız kim?

  • Nginx + PHP-FPM: genellikle www-data, nginx veya benzeri bir kullanıcı
  • Apache + mod_php: genelde www-data / apache gibi

Hangi kullanıcı olduğunu iki yolla netleştirebilirsiniz: - PHP-FPM havuz ayarlarından (pool) ilgili user/group - Sunucu üzerinde çalışan web server hizmeti kullanıcı bilgisinden

Kontrol: İzinler niye yetmiyor?

Klasik senaryolar: - wp-content/uploads dizini var ama owner/grup farklı → web server yazamaz - Dizindeki izin 775 görünüyor ama asıl kullanıcı farklı → yazma başarısız

Bu yüzden izin değişikliğinden önce owner/grubu doğru hedefe almak gerekir.

Uygulama: Güvenli ve tekrarlanabilir izin ayarlama adımları

Aşağıdaki adımlar, “her şeyi 777 yap ve düzelsin” yaklaşımına karşı, tekrar edilebilir ve ölçülebilir bir yöntemdir.

1) Hedef dizini ve mevcut izinleri görün

Örnek kontrol komutu (yolunuza göre uyarlayın): - ls -la /var/www/html/wp-content

Burada şu kolonları okuyun: - drwx... (dizin/dosya türü) - sahibi (user) - grubu (group) - izin (ör. 775)

2) Web server’ın sahibi/grubu ile eşleştirin

Genel prensip: - WordPress dosyalarının owner’ı web server’ın erişebileceği kullanıcı olmalı - Yazma gerektiren dizinlerde grup yazabilir olmalı (775)

Bu işlemler için kullanılan komutlar: - chown -R user:group /var/www/html - chgrp -R group /var/www/html/wp-content

Hangi user:group değerlerini kullanacağınız, sunucunuzun web server/PHP-FPM ayarlarına bağlıdır. Rastgele değer yazmayın.

3) Dosya/dizin izinlerini kural tabanlı düzeltin

Pratik bir yaklaşım iki adım halinde çalışır: 1) Tüm dosya/dizinleri “varsayılan” seviyeye çek 2) Yazma gerektiren dizinleri özel izinle yükselt

Örnek kural seti (yol ve kullanıcı/grup değerlerini uyarlayın): - Dizini 755 yap: /var/www/html altında dizinler - Dosyaları 644 yap: /var/www/html altında dosyalar - wp-content/uploads gibi yazma dizinlerini 775 yap

Hızlı doğrulama: WordPress’te hangi izin hatası nereye yazıyor?

WordPress içinde tipik semptomlar: - “Dosya taşınırken hata oluştu” - Eklenti yükleme güncelleme başarısız - Görsel yükleyememe

Bunlarda ek olarak sunucu loglarına bakın: - PHP hata logları - Web server error logları

Bu sayede “izin mi, disk mi, SELinux/AppArmor mı?” sorusu ayrışır.

Yaygın yanlışlar ve nasıl düzeltilir?

wp-config.php dosyasını yazılabilir yapmak

wp-config.php üzerinde yazma izni vermek saldırı riskini artırır. Özellikle tüm world’a (777/666) izin verilmesi güvenlik açığı üretir.

Düzeltme yaklaşımı: - wp-config.php için 640-600 aralığını hedefleyin - Web server user’ın owner ya da grubu olmasını sağlayın, ancak diğerlerine write vermeyin

wp-content içinde “her yere” aynı izin

Gereken yazma alanı sınırlıdır. wp-content köküne 775 vermek genelde çalışır ama wp-content içindeki tüm alt dizinleri aynı şekilde yükseltmek gereksizdir.

Düzeltme yaklaşımı: - Kök wp-content için 755 - Yazma gereken alt dizinler için 775 (uploads/cache/upgrade gibi)

Sahiplik bozulması: “Ben değiştiriyorum ama değişmiyor” hissi

Bazı senaryolarda SSH ile chown/chmod yaparsınız ama WordPress daha sonra bir dosyayı farklı kullanıcı ile oluşturur. Böylece karışıklık oluşur.

Düzeltme yaklaşımı: - Web server’ın üretken işlemlerinde (PHP-FPM worker) kullanılan user/grup ile uyum sağlayın - Otomasyon/cron job aynı izin modelini takip etsin

Özel senaryolar: Nginx, Apache ve PHP-FPM farklılıkları

PHP-FPM ile yazma izinleri

PHP-FPM, genelde havuz bazında user/group kullanır. Bu nedenle: - İzinleri belirlerken “web root’a yazan” kullanıcıyı hedefleyin - Havuz sayınız (pool) birden fazlaysa, tüm pool’ların user’ını hesaba katın

Apache mod_php ile izin mantığı

mod_php kullanıyorsanız web server kullanıcıları daha tekdüzedir ancak yine de owner/grup uyumsuzluğu upload’ları etkileyebilir.

“Doğru izinleri verdim” nasıl anlarsınız? Kontrol listesi

Aşağıdaki testler izinlerin doğru olduğunu somutlaştırır:

1) Medya yükleme testi - WordPress admin panelinde küçük bir görsel yükleyin - Dosyanın wp-content/uploads altında görünüp görünmediğine bakın - Görünmüyorsa: owner/grup uyumsuzluğu veya 775 eksikliği vardır

2) Eklenti/tuzak güncelleme testi - Küçük bir eklenti güncellemesi yapın - Başarısız olursa: güncelleme paketleri için wp-content/upgrade veya çekirdek alt dizinlerde yazma eksik olabilir

3) Cache üretimi testi - Etkin cache eklentiniz varsa cache dosyaları üretiliyor mu kontrol edin - Üretilmiyorsa wp-content/cache (ve/veya kullanılan alt yol) 775 değil ya da owner/grup uyumsuz

4) wp-config.php bütünlüğü testi - wp-config.php yazılabilir mi kontrol edin - “diğerleri” (world) write alıyorsa bu tablo dışına taşıyor demektir

Sonuç: Aksiyonla kapatın

WordPress dosya izinlerinde en iyi sonuç, “tüm sistemi geniş yazma izinleriyle açmak” değil, uploads/cache gibi belirli dizinleri yazılabilir kılıp wp-config.php gibi kritik dosyaları yazmaya kapatmaktır. Önce web server/PHP-FPM user’ını tespit edin, ardından dizin bazlı izin hedeflerini (kök 755, yazma dizinleri 775, dosyalar 644 ve config 640-600) uygulayın. Dosya yükleme ve eklenti güncelleme testleri geçince izin ayarlarınızı “doğru” kabul edin; sonra aynı şablonu staging→prod akışında da tutarlı şekilde kullanın.

Etiketler: #wordpress #dosya-izinleri #vps #vds #güvenlik

Hosting karşılaştırması yapmaya hazır mısın?

100+ firmanın fiyatlarını tek tıkla karşılaştır, en uygun paketi bul.

Hosting Karşılaştır →

İlgili Yazılar

0 ürün seçildi
NetKıyas AI
Hosting danışmanınız
Merhaba! Ben NetKıyas yapay zekâ asistanı. Hosting, VDS, VPS veya sunucu seçiminde size yardımcı olabilirim. Ne arıyorsunuz?