itsrda

chmod İzin Hesaplayıcı (Sayısal ve Sembolik)

Linux'ta her dosyanın üç sınıf için (sahibi, grubu, diğerleri) okuma, yazma ve çalıştırma izni vardır. chmod 640 dosya gibi bir komutun ne yaptığını anlamak ya da doğru sayıyı bulmak için aşağıdaki tabloyu kullanın. Kutuları işaretleyin ya da sayıyı yazın; ikisi de birbirini günceller.

Okuma (r=4)Yazma (w=2)Çalıştırma (x=1)
Sahibi
Grup
Diğerleri

Rakamlar nasıl oluşuyor?

Her izin bir sayıya karşılık gelir: okuma 4, yazma 2, çalıştırma 1. Bir sınıfın izni bunların toplamıdır; örneğin okuma+yazma = 6, okuma+çalıştırma = 5, hepsi = 7. Üç sınıf yan yana yazılınca üç haneli bir sayı çıkar: 644 sahibi okur-yazar (6), grup ve diğerleri yalnızca okur (4) demektir.

En sık kullanılan değerler

Değer Sembolik Ne için?
600 rw------- Gizli anahtarlar, parola dosyaları, ortam dosyaları
640 rw-r----- Yalnızca grubun da okuyabileceği yapılandırma dosyaları
644 rw-r--r-- Normal dosyalar, web içeriği
700 rwx------ Yalnızca sahibine ait betikler ve dizinler (örn. ~/.ssh)
755 rwxr-xr-x Çalıştırılabilir betikler, herkesin gezebileceği dizinler
400 r-------- Salt okunur özel anahtar (SSH bunu şart koşar)

Güvenlik açısından kurallar

  • Gizli bilgiler 600 olmalı. Veritabanı parolası ya da API anahtarı tutan bir ortam dosyasını herkes okuyabiliyorsa, sunucudaki her kullanıcı ya da ele geçirilmiş her servis onu görür. Servisin kendi kullanıcısı dışında kimse okuyamamalı (systemd servis örneği).
  • 777 çözüm değildir. "Permission denied" hatasını 777 ile geçmek sorunu gizler ve sistemi savunmasız bırakır. Doğru çözüm, dosyanın sahibini ya da grubunu doğru kullanıcıya vermektir (chown).
  • Dizinlerde x farklıdır. Bir dizin için "çalıştırma", içine girebilme ve içindeki dosyalara erişebilme anlamına gelir; x olmadan dizin gezilemez.
  • SSH katıdır. ~/.ssh 700, özel anahtar 600 olmazsa SSH anahtarı reddeder (SSH güvenliği).
  • Varsayılanı umask belirler. Yeni dosyaların izinleri umask değerinden türetilir; 022 ile dosyalar 644, dizinler 755 olur.