Linux İzin Yapısı Nasıl Çalışır?
Linux terminalinde ls -l yazdığınızda dosyaların başında -rw-r--r-- veya drwxr-xr-x gibi 10 karakterlik bir dizi görürsünüz:
- İlk karakter: Dosya türünü belirtir (
-normal dosya,ddizin/klasör). - Sonraki 3 karakter: Dosya Sahibinin (Owner / User) yetkileri.
- Ortadaki 3 karakter: Dosyanın Grubunun (Group) yetkileri.
- Son 3 karakter: Diğer tüm Dünyanın (Others / Public) yetkileri.
Sayısal Yetki Değerleri (Oktal Sistem)
- Okuma (Read - r):
4 - Yazma (Write - w):
2 - Çalıştırma (Execute - x):
1 - Yetkisiz (-):
0
Toplama yapılarak izin kodları belirlenir:
7= 4 + 2 + 1 (Okuma + Yazma + Çalıştırma)6= 4 + 2 + 0 (Okuma + Yazma)5= 4 + 0 + 1 (Okuma + Çalıştırma)4= 4 + 0 + 0 (Yalnızca Okuma)
Web Siteleri İçin Altın Standart İzinler
Web sunucularında (WordPress vb.) güvenlik açığı yaratmamak için standart kural şudur:
- Tüm Dizinler/Klasörler:
755(drwxr-xr-x) - Tüm Standart Dosyalar:
644(-rw-r--r--) - Kritik Yapılandırma Dosyaları (wp-config.php):
600veya640 - ASLA YAPILMAMASI GEREKEN: Hiçbir dosyaya veya klasöre
chmod 777vermeyin! 777 izni sunucudaki herkese yazma hakkı tanıyarak sitenizi hacklenmeye açık hale getirir.
# Klasörlere topluca 755 verme:
find /var/www/html/ -type d -exec chmod 755 {} \;
# Dosyalara topluca 644 verme:
find /var/www/html/ -type f -exec chmod 644 {} \;
Dosya Sahipliğini Değiştirme (chown)
Web sunucusunun dosyaları okuyup güncelleyebilmesi için dosyaların sahibi web sunucusu kullanıcısı olmalıdır:
# Ubuntu/Debian (www-data):
chown -R www-data:www-data /var/www/html/
# AlmaLinux/CentOS (nginx veya apache):
chown -R nginx:nginx /var/www/html/