Linux Dosya İzinleri: 644, 755 ve Sahiplik Mantığı (Ubuntu/Debian)

NoktaKoydum

Yeni Üye
Katılım
Eyl 2026
Konular
1
Mesajlar
1
Tepki puanı
0
Görüntülenme
0

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ı)​

  1. Yanlış dosya sahibi
  • Kontrol: ls -l /path/to/file
  • Çözüm: sudo chown <user>:<group> /path/to/file
  1. Yanlış grup sahibi
  • Kontrol: ls -l çıktısının ikinci alanı (grup).
  • Çözüm: sudo chown :<group> /path/to/file veya sudo chgrp <group> /path/to/file
  1. İ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
  1. Umask ayarı
  • Kontrol: umask komutu.
  • Çözüm: /etc/profile veya ~/.bashrc içinde umask 022 (varsayılan). Daha sıkı bir değer için umask 027.
  1. 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
  1. Web sunucusu (Apache/Nginx) yanlış kullanıcı
  • Kontrol: ps aux | grep apache veya ps aux | grep nginx
  • Çözüm: /etc/apache2/envvars veya nginx.conf içinde User ve Group değ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-data grubunda ç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. umask ile) nasıl ayarlıyorsunuz?
 
Geri
En Üst