WordPress Dosya İzinleri Nasıl Yapılır Kolayca Öğrenin
Dosya izinleri ve sahiplik ayarları, WordPress’in doğru ve güvenli olarak çalışması için çok önemlidir. WordPress kurulumunun hemen ardından yapılması gereken ilk iş dosya izinlerini düzenlemek olmalıdır. WordPress dosya izinleri nasıl yapılır konusu hakkında daha detaylı bilgi için WordPress Codex‘e göz atabilirsiniz. Ancak WordPress Dosya İzinleri Nasıl Yapılır? sorusunun cevabı sitenin yayınlandığı sunucu türüne göre bazı değişiklikler gösterir. WordPress dosya izinlerinin doğru bir şekilde yapılandırılmaması web sitesinin düzeltilemez şekilde tamamen çökmesine sebep olmasının yanında çok ciddi güvenlik açıklarına ve sitenin zararlı yazılımların kontrolüne geçmesine sebep olabilir. “403 Forbidden” hatasıyla karşılaşmamış web tasarımcısı yoktur. Bu tip hataların büyük bölümü doğru yapılandırılmamış dosya izinlerinden kaynaklanır.

Bu yazının devamında WordPress dosya ve sahiplik izinlerinin tam ve eksiksiz bir biçimde yapılmasının önemini ve bunun nasıl yapılması gerektiğini öğreneceksiniz. Bu yazı için kendi web sitelerimizde kullandığımız bir kaç temel prensibi de sizinle paylaşacağız. Bu yazı en yaygın kullanılan iki farklı WordPress sunucu konfigürasyonunu, birbirlerinden hangi noktalarda ayrıldıklarını ve her birinin nasıl yapılandırılması gerektiğini de kapsayacak.
Dosya izinlerini ayarlamak için Terminal uygulamasını kullanacağız. Aslında dosya izinlerini düzenlemek için herhangi bir FTP istemcisi de kullanabiliriz, ancak FTP ile dosya sahipliklerini değiştirmek mümkün olmadığı için tercihimiz Terminal oldu. Eğer Terminal uygulamasının nasıl kullanacağınızı bilmiyorsanız Terminal Nasıl Kullanılır başlıklı yazıya göz atabilirisiniz. Bu yazıdaki komutları kullanmak için SSH ile WordPress’in kurulu olduğu sunucuya bağlı olmanız gerekecek.
Kullanıcılar ve Gruplar
Dosya izinlerinin mantığını doğru anlamak için bilmeniz gerekenlerin en başında Kullanıcılar ve Gruplar gelir. Bu konu açıklığa kavuşmadan dosya izinlerini doğru anlamak mümkün değildir.
Basitçe tanımlarsak “kullanıcı” bilgisayara erişim yetkisi olan hesap manasına gelir. Grup ise belli türden kullanıcı hesaplarını içeren settir. Örneğin sunucuya FTP ile bağlanıp dosya yüklemek için bir kullanıcı hesabı ile bağlanırsınız. Bir kullanıcı bir veya birden çok grubun üyesi olabilir. Kullanıcılar ve gruplar sunucumuzdaki dosyalara erişim yetkilerini belirledikleri için çok önemlidir. Sahip kendine ait dosyalar üzerinde tam denetim yetkisine sahipken bazı kullanıcıların o dosyalara erişimleri sınırlıdır, bazılarının ise hiçbir yetkisi yoktur. Kullanıcıların dosyalar üzerindeki işlem yapma yetkilerini dosya izinleri olarak adlandırıyoruz.
Dosya İzinleri Ne Demek?
İzinler, kullanıcının o dosya üzerinde gerçekleştirebileceği işlemleri tanımlar. Dosya izinleri 664 veya 777 gibi üç basamaklı bir sayıyla tanımlanır. Muhtemelen WordPress’e bir eklenti yüklediğinizde sizden bir dosya ya da dizin üzerindeki izinleri değiştirmeniz gerektiğini yazan hata mesajlarıyla karşılaşmışsınızdır. Bunun sebebi eklentinin söz konusu dizin veya dosya üzerine yazamaması ya da değişiklik yapamamasıdır. Dosya izinlerini değiştirdiğiniz zaman eklentiye bu yetkiyi vermiş olursunuz. Dosya izinlerinin arkasındaki mantık “kim hangi işlemleri yapabilir” cümlesi ile açıklanır
- İlk Sayı: Sorudaki “kim” kısmının karşılığıdır. Dosyanın sahibini tanımlar.
- İkinci Sayı: Sahiple aynı grubun üyesi olan kullanıcılar için sorudaki “hangi işlemleri yapabilir” kısmının karşılığıdır.
- Üçüncü Sayı: Bunların dışındaki kullanıcıların ve site ziyaretçileri için”hangi işlemleri yapabilir” kısmının karşılığıdır.
İfadenin “hangi işlemleri yapabilir” kısmını temsil eden 2. ve 3. sayılar aşağıdaki kombinasyonlardan oluşur:
- 4 bir dosyanın içeriğini veya bir dizindeki dosya adlarını okuyabilme yetkisini temsil eder.
- 2 bir dosyaya veya bir dizine yazabilme yetkisini temsil eder.
- 1 bir dosyayı çalıştırabilme ya da bir dizine erişim yetkisini temsil eder.
Bu sayılar “kim” ile temsil edilen kullanıcının yetkilerini ifade eder. Bu yetkilerin dosyalar ve dizinler için farklı farklı olabileceğini göz önünde tutmalısınız.
Dosya İzinlerinde Sahiplik
FTP istemcileri size dosya izinlerini değiştirme imkanı sunar. Altaki resimde bizim kullandığımız FTP istemcisinin dosya izinlerini değiştirme ekranını görüyorsunuz.

Eğer sunucunuzun Terminal ekranına erişebiliyorsanız, aynı işlemi chmod komutu ile de yapabilirsiniz.
sudo chmod 644 <dosya adı>
sudo find . -type f -exec chmod 644 {} +
Bir dizindeki tüm altdizinlerin izinlerini 750 yapmak için aşağıdaki komutu kullanın:
sudo find . -type d -exec chmod 750 {} +
İki komut arasındaki farkın sadece d ve f olduğunu hemen fark etmişsinizdir. Linux komut istemcisinde; f dosya, d ise klasör veya dizin demektir.
644 ve 750 Arasındaki Farklar
İzin türlerine ve onların sitenizi hangi yollardan etkilediğine bakalım:
Bir betiğin, örneğin php uzantılı bir dosyanın izinlerinin 644 olarak ayarlanmış olması ne manaya gelir?
Yukarıda anlatılan izin türlerini, kullanıcıların bizim betiğimiz üzerinde yapabilecekleri işlemler olarak ifade edebiliriz.
- Sahibinin dosya üzerindeki izinleri “okuma” (4) + “yazma” (2) = 6
- Sahibinin dahil olduğu grubun üyelerinin izinleri “okuma” (4) = 4
- Yukarıdakilerin dışında kalanların tümü için izinler “okuma” (4) = 4
Daha sade bir ifadeyle:
- Bu betiğin üzerinde sadece sahibi okuma ve yazma haklarına sahiptir
- Geriye kalan herkes sadece okuyabilir.
Gördüğünüz gibi 644 betiğimiz için oldukça güvenli bir izin türüdür. Onu sadece biz okuyup yazabiliriz, sunucumuz okuyabilir. Ziyaretçilerimiz de görebilir ama herhangi bir değişiklik yapamazlar.
Şimdi bir de izinler konusuna dizinler üzerinden bakalım. Örneğin izinleri 777 olarak ayarlanmış bir dizine sahip olmanın anlamı nedir ve bu neden çok tehlikeli bir güvenlik açığına işaret eder?
- Sahibinin dosya üzerindeki izinleri “okuma” (4) + “yazma” (2) + “çalıştırma” (1) = 7
- Sahibinin dahil olduğu grubun üyelerinin izinleri “okuma” (4) + “yazma” (2) + “çalıştırma” (1) = (7)
- Yukarıdakilerin dışında kalanların tümü için izinler “okuma” (4) + “yazma” (2) + “çalıştırma” (1) = 7
Yukarıdakileri basitçe ifade edersek.
- Klasörümüzdeki dosyaları herkes listeleyebilir.
- Klasörümüzde herkes dosya oluşturabilir, silebilir yahut düzenleyebilir
- Klasörümüze herkes erişebilir.
777’nin WordPress web sitemiz için tehlikeli olduğu açıktır çünkü tüm ziyaretçiler dizine dosya ekleyebilecek, istedikleri betikleri silebileceklerdir. Daha fenası, sitemize bulaştırılan zaralı kodlar gene sitemizi kullanarak yayılacaklardır.
WordPress Sunucu Konfigürasyonları
Buraya kadar olan bölümlerde WordPress dosya izinleri nasıl yapılır konusunu öğrendik. Şimdi sıra bu bilgileri kendi sunucumuza nasıl uygulayabileceğimizi öğrenmeye geldi. Çünkü dosya izinleri kullanıcılar ve gruplar aracılığıyla yönetilir. Bunu anlamak için bir WordPress sitesinin nasıl çalıştığına göz atmamız gerekiyor.
Kullanımda olan web sunucuların her biri, üzerlerindeki WordPress sitesinin doğru çalışabilmesi için türlerine göre değişen farklı dosya izin setlerine gerek duyar.
Bu yazıda biz, en yaygın kullanılan iki konfigürasyon çeşidi için, WordPress dosya izinlerinin nasıl olması gerektiğini açıklayacağız.
Standart Sunucular
- Sizin bir kullanıcı hesabınız vardır.
- Web Sunucusu bir başka kullanıcı hesabı üzerinden çalışır.
Paylaşımlı Sunucular
- Sizin bir kullanıcı hesabınız vardır.
- Sizin kullanıcı hesabınızla aynı grubun üyesi diğer kullanıcı hesapları vardır.
- Web sunucunuz WordPress dosyalarının sahibidir.
Standart Bir WordPress Sunucusu İçin Dosya İzinleri
Standart WordPress server konfigürasyonları, paylaşımlı hostinglere göre biraz daha fazla uğraş gerektirebilir çünkü bu tür sistemlerde yönetici hesabının web sunucusunun çalışmasını düzenleyen hesapla arasında bağlantı yoktur.
WordPress İçin Dosya ve Dizin Sahiplikleri
İlk yapmamız gereken şey, WordPress’in dosya ve dizinlerinin sahibini belirlemektir.
- Kullandığınız hesap tüm WordPress dosya ve dizinlerinin sahibi mi?
- Kullandığınız hesap, Web Suncusunu yöneten hesapla aynı grubun üyesi mi?
Kullandığınız hesabın hangi grupların üyesi olduğunu terminal ekranına groups yazdıktan sonra giriş tuşuna basarak öğrenebilirsiniz:
groups
Web sunucunuzun WordPress kök dizininde groups.php yahut istediğiniz herhangi isimde .php uzantılı yeni bir dosya oluşturup, dosyanın içine aşağıdaki kodu ekleyin:
<?php
echo exec( 'groups' );
Daha sonra oluşturduğunuz bu dosyayı tarayıcınızdan http://sitenizin-adi.com/groups.php yazarak çalıştırın. Önünüze web sunucunuzun kullanıcı hesabının üyesi olduğu gruplar sıralanacak. Eğer Web Sunucu hesabıyla, sizin kullanıcı hesabınız aynı grubun üyesi değilse, aşağıdaki komutu kullanarak, hesabınızı web sunucusu ile aynı grubun üyesi yapabilirsiniz:
sudo usermod a G web-sunucu-grubu kendi-kullanıcı-adınız
Dosya ve dizin sahipliğinin doğru ayarlanıp ayarlanmadığını kontrol etmek için, WordPress dizinindeyken aşağıdaki komutu çalıştırın:
sudo find . -exec chown kendi-kullanıcı-adınız:web-sunucu-grubu {} +
WordPress İzinleri
Bu işlemlerden sonra WordPress dizinindeki dosyaların sahiplikleri ayarlanmış oldu. Şimdi sıra izin modlarını ayarlamaya geldi. Konuyu daha basit ve temelden anlayabilmek için sadece aşağıdakileri aklınızda tutmanız yeterli olacaktır:
- Tüm dosyalar 664 olmalı.
- Tüm dizinler 775 olmalı.
- wp-config.php dosyası 660 olmalı.
Bu dosya izin setiyle yapmayı hedeflediğimiz şey:
- Kendi kullanıcı hesabımız WordPress dosyalarını okuyabilmeli ve değiştirebilmeli.
- WordPress (web sunucusu aracılığıyla) betiklerimizi okuyabilmeli, değiştirebilmeli
- WordPress (web sunucusu aracılığıyla) dosya ve dizinleri, oluşturabilmeli, düzenleyebilmeli ve silebilmeli.
- Diğerleri wp-config-php dosyasında kayıtlı olan veri tabanı bağlantı bilgilerini okuyamamalı.
WordPress’e en geniş yetkiyi vermenin güvensiz olduğunu düşünebilirsiniz, ancak WordPress, dosya oluşturma ve düzenleyebilme izinlerini, bizim dosyaları yükleyebilmemiz, yeni eklentiler ve temalar kurabilmemiz ve silebilmemiz, üstelik de bu işlemleri yönetim paneli üzerinden gerçekleştirebilmemiz için gerek duyar. Eğer WordPress’e bu izinleri vermemiş olsaydık bu işlemleri her seferinde manuel olarak FTP üzerinden yapmak zorunda kalacaktık.
WordPress izin modlarını ayarlamak için bir FTP istemcisi kullanabilir, veya terminal üzerinden, web sitenizin kök dizininde iken aşağıdaki komutlar aracalığıyla yapabilirsiniz:
sudo find . -type f -exec chmod 664 {} + sudo find . -type d -exec chmod 775 {} + sudo chmod 660 wp-config.php
Bazı sunucuların güvenlik ayarları daha sıkıdır. Eğer böyle bir sunucunuz varsa, WordPress’in çalışır, durumda olabilmesi için wp-config.php dosyasının izinlerini 660 olarak ayarlamanız gerekeceğini göz önünde bulundurun. Bunun dışındaki durumlarda dosyanın izinlerini 664 olarak ayarlamanızda bir sakınca yoktur.
Paylaşımlı Bir sunucu İçin İzinlerin Yapılandırılması Veya SuEXEC konfigürasyonu
Paylaşımlı sunucularda WordPress izinlerini yapılandırmak görece daha kolaydır. Çünkü bu tip sunucularda web sunucusun kullanıcısı ve web dizinin sahibi aynıdır, dolayısıyla sahiplik meselesini dikkate almadan, doğrudan izinleri düzenlemeye başlayabiliriz.
- Tüm dosyalar 644 olmalı.
- Tüm dizinler 755 olmalı.
- wp-config.php dosyası 600 olmalı.
Bir önceki sunucu konfigürasyonunun izinleriyle benzer şekilde:
- Kendi kullanıcı hesabımız WordPress dosyalarını okuyabilmeli ve değiştirebilmeli.
- WordPress (web sunucusu aracılığıyla) betiklerimizi okuyabilmeli, değiştirebilmeli
- WordPress (web sunucusu aracılığıyla) dosya ve dizinleri, oluşturabilmeli, düzenleyebilmeli ve silebilmeli.
- Diğerleri wp-config-php dosyasında kayıtlı olan veri tabanı bağlantı bilgilerini okuyamamalı.
Daha önce olduğu gibi, izinleri isterseniz bir FTP istemcisi aracılığıyla, isterseniz SSH üzerinden aşağıdaki komutla yapabilirsiniz:
sudo find . -type f -exec chmod 644 {} + sudo find . -type d -exec chmod 755 {} + sudo chmod 600 wp-config.php
Standart WordPress sunucularındakine paralel olarak, sunucunuzun güvenlik yapılandırılmasına göre, wp-config.php dosyasının izinlerini 600 olarak ayarlamanız gerekebilir, çalışmazsa 640, eğer gene çalıştıramazsanız 644 yapın.
WordPress’inizi dengeli ve güvenli bir biçimde kullanmak için bu rehberi takip edebilirsiniz.
WordPress Dosya İzinleri Yapılırken Sıkça Yapılan Hatalar
En çok yapılan yanlışlardan biri ‘upload’ klasörünü 777 olarak ayarlamaktır. Bazıları bunu yapar çünkü, dosya yüklemeyi denediklerinde bir hata mesajı almaktadırlar ve dosya izinlerini 777 olarak düzenlemek bu sorunu çözecektir. Asla herkese sınırsız erişim izni vermeyin, aksi takdirde sunucunuzun güvenlik açıklarını kullanan tehlikeli saldırılarla karşı karşıya kalabilirsiniz. Eğer bu yazıda anlatılanları eksiksiz olarak uyguladıysanız zaten bu tip bir sorunla karşılaşmazsınız.
Bir eklentinin yüklenebilmesi için 777 yapmanız gerekiyorsa, kurulum tamamlandıktan sonra klasör izinlerini eski haline döndürmeyi unutmayın.
Bu yazı hazırlanırken büyük ölçüde Smashing Magazine sitesindeki WordPress Permissions başlıklı yazının metodolojisi kullanılmıştır. Kendilerine Teşekkür ederiz.
Bir cevap yazın
Yorum yapabilmek için giriş yapmalısınız.