NoktaKoydum
Yeni Üye
Belirtiler
- “Permission denied” hatasıyla çalışan bir script durur.
- Web sunucusu statik dosyayı (ör.
index.html) göstermez, 404 yerine 403 döner. - Şüpheli kullanıcı dosyaya erişmeye çalışır ve "Access denied" mesajı alır.
Olası Nedenler (Öncelik sırası)
- Yanlış dosya sahibi
- Kontrol:
ls -l /path/to/file - Çözüm:
sudo chown <user>:<group> /path/to/file
- Yanlış grup sahibi
- Kontrol:
ls -lçıktısının ikinci alanı (grup). - Çözüm:
sudo chown :<group> /path/to/fileveyasudo chgrp <group> /path/to/file
- İzin bitleri eksik
- Dosya (ör. PHP):
-rw-r--r--(644) yeterli. - İşletim sistemi dosyası:
-rwxr-xr-x(755) gerekir. - Çözüm:
Bash:# Dosya sudo chmod 644 /path/to/file # Dosya / dizin sudo chmod 755 /path/to/directory
- Umask ayarı
- Kontrol:
umaskkomutu. - Çözüm:
/etc/profileveya~/.bashrciçindeumask 022(varsayılan). Daha sıkı bir değer içinumask 027.
- Setgid / Setuid eksik
- Durum: Grup içinde paylaşılan dosya için grup yazma izni gerekiyorsa setgid gerekir.
- Çözüm:
sudo chmod g+s /path/to/directory
- Web sunucusu (Apache/Nginx) yanlış kullanıcı
- Kontrol:
ps aux | grep apacheveyaps aux | grep nginx - Çözüm:
/etc/apache2/envvarsveyanginx.confiçindeUserveGroupdeğerleri doğru kullanıcıya işaret etmeli. İzinleri uyumlu olarak ayarlayın.
Örnek Senaryo
- Bir PHP dosyasına 644 ve web sunucusunun
www-datagrubunda çalıştığını varsayalım.
Bash:sudo chown www-data:www-data /var/www/html/index.php sudo chmod 644 /var/www/html/index.php
Maliyet & Verimlilik Notu
- Gereksiz 777 izinleri, saldırı yüzeyini genişletir, dolayısıyla işletme maliyetini artırır.
- 644/755 kombinasyonu, sadece gerekli izinleri vererek kaynak kullanımını minimize eder.
Sorular
- Siz dosya izinlerinizi otomatik olarak (ör.
umaskile) nasıl ayarlıyorsunuz?