Dosya İzinleri Nedir ve Neden Önemsemelisiniz?
Linux'ta Permission denied hatasıyla karşılaştıysanız, sorunun kökünün dosya izinlerinde (File Permissions) yattığını bilin. Tüm Unix tabanlı sistemlerde (Linux sunucular dahil) kullanılan bu kavram, bir dosyayı kimin okuyabileceğini, yazabileceğini veya çalıştırabileceğini belirler. Hosting ortamında, yanlış dosya izni ayarları hacker saldırılarına, site çökmesine veya içerik görüntülenememesine yol açabilir.
Bu makalede, basit bir dille ve pratik örneklerle dosya izinlerindeki her rakamın anlamını (755 ve 644 gibi) açıklıyor, dosya ve klasör arasındaki farkı inceliyor ve en önemlisi 777 değerinin neden tehlikeli bir güvenlik hatası olduğunu gösteriyoruz. ServerNet gibi web hosting hizmetleri kullanıyorsanız, bu bilgi dosyalarınızın güvenliğini manuel olarak yönetmenize yardımcı olacaktır.
Dosya İzin Yapısı: Üç Rakam ve Üç Grup
Linux'taki her dosya veya klasör, üç sekizlik (octal) rakamla gösterilen üç ayrı izin düzeyine sahiptir. Bu rakamlar sırasıyla aşağıdaki izinleri temsil eder:
- Birinci rakam (Sahip – Owner): Dosyayı oluşturan kullanıcı.
- İkinci rakam (Grup – Group): Sahibin ait olduğu grup.
- Üçüncü rakam (Diğerleri – Others): Sistemdeki diğer tüm kullanıcılar.
Her rakam, 4 (okuma), 2 (yazma) ve 1 (çalıştırma) sayılarının toplamından oluşur. Örneğin:
- 7 = 4+2+1 (tam izin: okuma, yazma, çalıştırma)
- 6 = 4+2 (yalnızca okuma ve yazma)
- 5 = 4+1 (yalnızca okuma ve çalıştırma)
- 4 = 4 (yalnızca okuma)
- 0 = izin yok
Örnek: 755 İzin Düzeyi
755 değeri şu anlama gelir:
- Sahip: 7 (tam izin)
- Grup: 5 (okuma ve çalıştırma)
- Diğerleri: 5 (okuma ve çalıştırma)
Bu, web klasörleri (örneğin public_html) için en yaygın izin düzeyidir. Sahip dosyaları oluşturup düzenleyebilirken, diğerleri yalnızca içeriği görebilir ve çalıştırabilir (site ziyaretçileri gibi).
Örnek: 644 İzin Düzeyi
644 değeri şu anlama gelir:
- Sahip: 6 (okuma ve yazma)
- Grup: 4 (yalnızca okuma)
- Diğerleri: 4 (yalnızca okuma)
Bu, PHP, CSS veya resim dosyaları gibi normal dosyalar için standart değerdir. Sahip dosyayı düzenleyebilir, ancak diğerleri yalnızca okuyabilir (kullanıcının tarayıcısı gibi).
Dosya ve Klasör İzinleri Arasındaki Fark
Çalıştırma biti (1) dosya ve klasörde farklı anlamlara gelir:
- Dosyada: Çalıştırma biti, dosyanın bir program olarak çalıştırılabilir olduğu anlamına gelir. Script dosyaları (PHP gibi) için genellikle çalıştırma bitine gerek yoktur, doğrudan komut satırından çalıştırılmaları gerekmedikçe.
- Klasörde: Çalıştırma biti, klasöre girme (cd) ve içeriğine erişme izni anlamına gelir. Bir klasör yalnızca okuma bitine (4) sahipse, dosya listesini görebilir ancak içine giremez veya içindeki dosyaları okuyamazsınız.
Önemli not: Web klasörleri için, grup ve diğerleri için çalıştırma biti (1) mutlaka etkin olmalıdır. Aksi takdirde, web sunucusu klasöre erişemez ve 403 Forbidden hatası alırsınız.
777 İzin Düzeyi Neden Tehlikelidir?
777 değeri, herkesin (sahip, grup, diğerleri) tam okuma, yazma ve çalıştırma iznine sahip olduğu anlamına gelir. Bu, sunucudaki herhangi bir kullanıcının (kötü niyetli kullanıcılar dahil) dosyalarınızı değiştirebileceği, kötü amaçlı script'ler yükleyebileceği veya site içeriğini manipüle edebileceği anlamına gelir.
Tehlikeli senaryo: Sitenizde 777 izin düzeyine sahip bir dosya yükleyiciniz (uploader) olduğunu varsayalım. Bir hacker bu zayıflığı kullanarak sunucunun tam kontrolünü ele geçirmesine olanak tanıyan kötü amaçlı bir PHP dosyası (webshell gibi) yükleyebilir.
Yaygın hata: Birçok acemi kullanıcı, Permission denied hatasını hızlıca çözmek için tüm klasöre chmod 777 komutunu uygular. Bu, site güvenliğini ciddi şekilde azaltır. Her zaman mümkün olan en düşük izin düzeyini kullanmaya çalışın.
777 Ne Zaman Kabul Edilebilir?
777 yalnızca çok sınırlı ve geçici durumlarda kullanılabilir, örneğin:
- Dosya yüklendikten hemen sonra izin düzeyi değiştirilen geçici yükleme klasörleri.
- Uygulama tarafından yönetilen ve içeriği hassas olmayan önbellek (cache) klasörleri.
Her durumda, işlem tamamlandıktan sonra izin düzeyini mutlaka 755 veya 644'e geri döndürün.
Dosya İzinleri Nasıl Değiştirilir?
İzin düzeyini değiştirmek için chmod komutunu kullanırız. Pratik örnekler:
# Bir dosyanın izin düzeyini 644 olarak değiştir
chmod 644 index.php
# Bir klasörün izin düzeyini 755 olarak değiştir (tüm alt klasörler için yinelemeli)
chmod -R 755 public_html
# Klasör içindeki yalnızca dosyaların izin düzeyini değiştir (klasörleri değiştirmeden)
find public_html -type f -exec chmod 644 {} \;
# Yalnızca klasörlerin izin düzeyini değiştir
find public_html -type d -exec chmod 755 {} \;
Not: chmod -R 777 komutunu asla tüm web dizininde çalıştırmayın. Bu, telafisi mümkün olmayan bir güvenlik hatasıdır.
Mevcut İzin Düzeyini Kontrol Etme
ls -l komutuyla dosya izinlerini görebilirsiniz:
ls -l index.php
# Çıktı: -rw-r--r-- 1 user group 1234 Jan 1 12:00 index.php
Yukarıdaki çıktıda, -rw-r--r-- 644 izin düzeyini gösterir. İlk tire dosya türünü (normal dosya) belirtir ve kalan karakterler sırasıyla sahip (rw-), grup (r--) ve diğerleri (r--) izinlerini temsil eder.
Web Dosyaları ve Klasörleri İçin Önerilen İzin Düzeyleri
Paylaşımlı hosting veya sanal sunucuda genellikle şu değerler önerilir:
| Tür | İzin Düzeyi | Açıklama |
|---|---|---|
| PHP, HTML, CSS, JS dosyaları | 644 | Sahip yazar, diğerleri okur |
| Ana klasörler (public_html) | 755 | Sahip tam izin, diğerleri yalnızca okuma ve çalıştırma |
| Yapılandırma dosyaları (wp-config.php) | 600 veya 640 | Yalnızca sahibin erişimi olmalı |
| Yükleme klasörleri | 755 | Kullanıcıların dosya yüklemesi için |
| Günlük dosyaları | 644 | Sistem yöneticisi tarafından okunmak için |
Dikkat: WordPress gibi bir içerik yönetim sistemi kullanıyorsanız, bazı eklentiler belirli klasörler için 755 izin düzeyi gerektirebilir. Her zaman eklenti belgelerini kontrol edin.
Yaygın İzin Sorunlarını Giderme
500 Internal Server Error
PHP dosyaları 777 izin düzeyine sahipse, bazı sunucular güvenlik ayarları (suPHP gibi) nedeniyle 500 hatası verir. Çözüm: İzin düzeyini 644 olarak değiştirin.
403 Forbidden Hatası
Bu hata genellikle klasörde çalıştırma bitinin olmamasından kaynaklanır. Web klasörlerinin en az 755 izin düzeyine sahip olduğundan emin olun.
Görsellerin Görüntülenememesi
Görseller tarayıcıda görüntülenmiyorsa, izin düzeylerini kontrol edin. Web sunucusunun okuyabilmesi için en az 644 olmalıdır.
Sonuç
Doğru dosya izni yönetimi, hosting'te temel güvenlik ilkelerinden biridir. Her rakamın anlamını ve dosya ile klasör arasındaki farkı anlayarak güvenlik sorunlarını ve yaygın hataları önleyebilirsiniz. Her zaman mümkün olan en düşük izin düzeyini kullanın ve chmod 777 komutundan zorunlu ve geçici durumlar dışında kaçının. Bu konuda daha fazla rehberliğe ihtiyacınız varsa, ServerNet teknik destek ekibi size yardımcı olabilir.
Yorumlar 0
Henüz yorum yok — ilk siz olun!