Linux'ta her dosya ve dizinin kimin ne yapabileceğini belirleyen bir izin yapısı vardır. Bu yapıyı anlamak; web sunucusunun dosyalara erişebilmesi, güvenlik açıklarının önlenmesi ve "permission denied" hatalarının çözülmesi için kritiktir. Bu rehberde Linux dosya izinlerini, chmod ve chown komutlarıyla birlikte açıklıyoruz.
İlgili içerikler: Linux sunucu komutları · SSH ile sunucuya bağlanma · VPS güvenlik sertleştirme
Linux İzin Yapısı Nasıl Çalışır?
Her dosyanın izinleri üç kişi sınıfı için ayrı ayrı tanımlanır: sahip (owner), grup (group) ve diğerleri (others). Her sınıf için üç izin türü vardır: okuma (r), yazma (w) ve çalıştırma (x).
ls -l komutu izinleri -rwxr-xr-x biçiminde gösterir. İlk karakter dosya türüdür (- dosya, d dizin). Sonraki üçerli gruplar sırasıyla sahip, grup ve diğerlerinin izinlerini belirtir.
Sayısal (Oktal) İzin Gösterimi
İzinler sıklıkla sayılarla ifade edilir. Her izin türünün bir değeri vardır: okuma 4, yazma 2, çalıştırma 1. Bir sınıfın izni bu değerlerin toplamıdır.
| Sayı | İzinler | Anlamı |
|---|---|---|
| 7 | rwx | Okuma + yazma + çalıştırma |
| 6 | rw- | Okuma + yazma |
| 5 | r-x | Okuma + çalıştırma |
| 4 | r-- | Yalnızca okuma |
| 0 | --- | İzin yok |
Örneğin 755 izni: sahip için tam yetki (7), grup ve diğerleri için okuma+çalıştırma (5). 644 ise: sahip okuma+yazma (6), diğerleri yalnızca okuma (4).
chmod ile İzin Değiştirme
chmod komutu izinleri değiştirir. Hem sayısal hem sembolik kullanım mümkündür:
# Sayısal: dizinlere 755, dosyalara 644 standart bir tercihtir
chmod 755 betik.sh
chmod 644 index.html
# Sembolik: sahibe çalıştırma izni ekle
chmod u+x betik.sh
# Bir dizin ağacının tamamına uygula (-R)
chmod -R 644 /var/www/site
chown ile Sahiplik Değiştirme
chown bir dosyanın sahibini ve grubunu değiştirir. Web sunucularında dosyaların doğru kullanıcıya ait olması, sitenin çalışması için şarttır:
# Sahip ve grubu aynı anda değiştir
chown www-data:www-data /var/www/site
# Bir dizin ağacının tamamına uygula
chown -R www-data:www-data /var/www/site
Web Sunucusu İçin Doğru İzinler
Bir web sitesinde izinlerin hem güvenli hem işlevsel olması gerekir. Genel kabul gören yaklaşım şudur: dizinler 755, dosyalar 644, dosyaların sahibi web sunucusu kullanıcısı (www-data veya benzeri).
chmod 777 kullanmayın. 777, dosyaya sistemdeki herkesin yazmasına izin verir ve ciddi bir güvenlik açığıdır. Bir "permission denied" hatasını 777 ile çözmek yerine, doğru sahipliği (chown) ayarlayın.Sıkça Sorulan Sorular
755 ve 644 arasındaki fark nedir?
755 genelde dizinler ve çalıştırılabilir betikler içindir (çalıştırma izni gerekir). 644 ise normal dosyalar içindir — okunur ama çalıştırılmaz. Bu ayrım hem güvenli hem işlevseldir.
"Permission denied" hatasını nasıl çözerim?
Önce dosyanın sahibini ve iznini ls -l ile kontrol edin. Çoğu zaman sorun yanlış sahipliktir; chown ile doğru kullanıcıya atayın. İzin gerçekten eksikse chmod ile minimum gerekli izni verin.
Çalıştırma (x) izni dizinler için ne anlama gelir?
Dizinlerde x izni, o dizine "girebilme" (içeriğine erişebilme) anlamına gelir. Bu yüzden dizinler genelde 755 alır — içine girilebilmesi gerekir.
KEYDAL hosting çözümleriyle dosya izinleri ve güvenlik en baştan doğru kurulur. KEYDAL hosting çözümleri