~/sibercrew
Temel Linux

Dosya İzinleri ve Sahiplik: chmod ve chown

Linux'ta "kim, neyi yapabilir" sorusunun cevabı olan izin sistemi.

Linux, çok kullanıcılı bir sistem olarak tasarlandığı için (aynı bilgisayarda birden fazla kullanıcının güvenli şekilde çalışabilmesi için), her dosya ve klasörün "kimin ne yapabileceğini" belirleyen bir izin sistemi vardır. Bu makalede bu sistemi basitçe ele alıyoruz.

Üç Temel İzin Türü

Linux'ta bir dosya için üç temel izin türü vardır:

  • r (read - okuma): Dosyanın içeriğini görüntüleyebilme.
  • w (write - yazma): Dosyanın içeriğini değiştirebilme.
  • x (execute - çalıştırma): Dosyayı bir program olarak çalıştırabilme (veya bir klasör için: o klasörün içine girebilme).

Üç Kullanıcı Grubu

Bu izinler, üç farklı kullanıcı grubu için AYRI AYRI tanımlanır:

  • Sahip (owner/user): Dosyayı oluşturan veya dosyanın şu anki sahibi olan kullanıcı.
  • Grup (group): Belirli bir kullanıcı grubuna ait olanlar.
  • Diğerleri (others): Sistemdeki geri kalan herkes.

İzinleri Görüntüleme: ls -l

bash
ls -l dosya.txt
-rw-r--r-- 1 ahmet kullanicilar 1024 Oca 15 10:30 dosya.txt

Baştaki -rw-r--r-- kısmı izinleri gösterir. Bunu üçlü gruplar hâlinde okuyabiliriz:

  • rw- → Sahip (ahmet): okuma ve yazma yapabilir, çalıştıramaz.
  • r-- → Grup: sadece okuyabilir.
  • r-- → Diğerleri: sadece okuyabilir.

En baştaki tek karakter (-) dosyanın türünü belirtir — - normal dosya, d ise klasör (directory) anlamına gelir.

İzinleri Değiştirme: chmod

chmod (change mode) komutuyla izinleri değiştirebilirsin. En yaygın kullanım, izinleri sayısal (octal) bir kodla belirtmektir:

SayıAnlamı
4okuma (r)
2yazma (w)
1çalıştırma (x)

Bu sayılar toplanarak kombinasyonlar oluşturulur (örneğin okuma+yazma = 4+2 = 6). Yaygın bir örnek:

bash
chmod 755 script.sh

Bu, sırasıyla sahip-grup-diğerleri için izinleri belirler: 7 (sahip: 4+2+1 = okuma+yazma+çalıştırma), 5 (grup: 4+1 = okuma+çalıştırma), 5 (diğerleri: 4+1 = okuma+çalıştırma). Yani sahip her şeyi yapabilir, geri kalanlar sadece okuyup çalıştırabilir ama değiştiremez.

Sahipliği Değiştirme: chown

chown (change owner) komutuyla bir dosyanın sahibini değiştirebilirsin (genelde bu işlem için yönetici/root yetkisi gerekir):

bash
sudo chown ayse dosya.txt          # dosyanın sahibini "ayse" yap
sudo chown ayse:muhasebe dosya.txt # hem sahibini hem grubunu değiştir

Neden Bu Sistem Güvenlik Açısından Önemli?

Dosya izinleri, Linux'un temel güvenlik katmanlarından biridir. Örneğin:

  • Şifre bilgilerinin tutulduğu bazı sistem dosyaları, sadece "root" (yönetici) tarafından okunabilecek şekilde ayarlanır — normal bir kullanıcı bu dosyayı görüntüleyemez bile.
  • Yanlış yapılandırılmış izinler (örneğin bir dosyanın yanlışlıkla "herkes yazabilir" şeklinde ayarlanması) ciddi bir güvenlik açığına dönüşebilir — bu tür bir hata, kötü niyetli bir kullanıcının önemli bir sistem dosyasını değiştirmesine bile izin verebilir.

Bu yüzden, Web Güvenliği kütüphanemizdeki "Güvenlik Yanlış Yapılandırması" makalesinde bahsettiğimiz gibi, dosya izinlerinin doğru ayarlanması, temel ama kritik bir güvenlik pratiğidir.

Bu makale, Linux dosya izinlerine giriş niteliğinde, başlangıç seviyeli bir özetidir; SiberCrew ekibi tarafından hazırlanmış özgün içeriktir.