Linux dünyasına yeni adım atanların en çok karşılaştığı ve kafa karıştırıcı görünen konuların başında “Dosya İzinleri” (File Permissions) gelir. chmod 755 veya ls -l komutunu çalıştırdığınızda gördüğünüz rwxrwxr-- gibi ifadeler aslında sistem güvenliğinin temel taşını oluşturur. Bu yazıda, bu gizemi çözecek, Linux dosya izinlerinin nasıl çalıştığını, ne işe yaradığını ve günlük kullanımda nasıl yöneteceğinizi Binary (İkili), Octal (Sekizli) ve Sembolik gösterimlerle birlikte adım adım öğreneceksiniz.
Linux’ta Dosya İzinleri Neden Bu Kadar Önemli?
Linux, çok kullanıcılı bir işletim sistemi olduğu için güvenlik ve düzen esastır. Dosya izinleri sayesinde:
- Bir dosyayı kimler okuyabilir?
- Bir dosyayı kimler değiştirebilir?
- Bir programı kimler çalıştırabilir?
sorularının cevabı kontrol altında tutulur. Bu, yanlışlıkla kritik bir sistem dosyasını silmenizi engeller, sunucunuzdaki kullanıcıların birbirinin özel dosyalarına erişmesine izin vermez ve genel sistem güvenliğini sağlar.
İzinleri Anlamanın 3 Yolu: Binary, Octal ve Sembolik Gösterim
Elinizdeki görsel, bu üç gösterimi mükemmel bir şekilde özetliyor. Şimdi bunları daha detaylı inceleyelim.
1. Sembolik (Harflerle) Gösterim: r, w, x
Bu, izinleri ls -l komutuyla listediğinizde gördüğünüz formattır. Toplam 3 grup izin vardır ve her grup 3 harften oluşur:
r(Read – Okuma): Dosyanın içeriğini okumaya veya dizinin içeriğini listelemeye izin verir.w(Write – Yazma): Dosyayı değiştirmeye, silmeye veya dizine yeni dosya eklemeye izin verir.x(Execute – Çalıştırma): Dosyayı bir program/script olarak çalıştırmaya izin verir.
Örnek: rwxr-xr--
- İlk 3 harf (rwx): Dosya Sahibi (User) için: Okuma, Yazma ve Çalıştırma izni var.
- Ortaki 3 harf (r-x): Grup (Group) için: Okuma ve Çalıştırma izni var, Yazma izni YOK.
- Son 3 harf (r–): Diğerleri (Others) için: Sadece Okuma izni var.
2. Binary (İkili) Gösterim: 0’lar ve 1’ler
Bilgisayarın anladığı dildir. Her bir izin için “Var” ise 1, “Yok” ise 0 kullanılır.
r= 1,-= 0 olarak düşünülebilir.- Örneğin,
rwx=111,r-x=101
3. Octal (Sekizlik) Gösterim: Rakamlarla (0-7)
En yaygın kullanılan ve chmod komutuyla en pratik şekilde değişiklik yapılan gösterimdir. Binary gösterimdeki 3 bit’lik grup, 0 ile 7 arasında bir sayıya dönüştürülür.
| İzinler | Binary | Hesaplama | Octal |
|---|---|---|---|
--- | 000 | (0x4)+(0x2)+(0x1) | 0 |
--x | 001 | (0x4)+(0x2)+(1×1) | 1 |
-w- | 010 | (0x4)+(1×2)+(0x1) | 2 |
-wx | 011 | (0x4)+(1×2)+(1×1) | 3 |
r-- | 100 | (1×4)+(0x2)+(0x1) | 4 |
r-x | 101 | (1×4)+(0x2)+(1×1) | 5 |
rw- | 110 | (1×4)+(1×2)+(0x1) | 6 |
rwx | 111 | (1×4)+(1×2)+(1×1) | 7 |
Pratikte İzinleri Nasıl Değiştiririz? (chmod Komutu)
İzinleri değiştirmek için chmod (change mode) komutunu kullanırız. Kullanımı iki şekildedir:
A) Octal (Rakamsal) Yöntem:
Bu, görseldeki tablonun doğrudan uygulamasıdır. Üç rakam kullanırız: User, Group, Others.
chmod 755 dosya_adi.sh
# 7 -> User için: rwx (4+2+1)
# 5 -> Group için: r-x (4+0+1)
# 5 -> Others için: r-x (4+0+1)
# Yani: rwxr-xr-x
chmod 644 resim.jpg
# 6 -> User için: rw- (4+2+0)
# 4 -> Group için: r-- (4+0+0)
# 4 -> Others için: r-- (4+0+0)
# Yani: rw-r--r--
B) Sembolik Yöntem:
Daha açıklayıcı bir yöntemdir. [kim][işlem][izin] formatında kullanılır.
- Kim:
u(user),g(group),o(others),a(all/hepsi) - İşlem:
+(ekle),-(kaldır),=(ayarla) - İzin:
r,w,x
Örnekler:
chmod u+x script.sh # Kullanıcıya çalıştırma izni ekler.
chmod go-w gizli_dosya.txt # Grup ve diğerlerinden yazma iznini kaldırır.
chmod a=rw ortak_dosya.txt # Herkes için izinleri "okuma ve yazma" olarak ayarlar.
Sık Kullanılan İzin Kombinasyonları ve Anlamları
755(rwxr-xr-x): Script’ler ve programlar için ideal. Sahibi her şeyi yapabilir, diğerleri sadece okuyup çalıştırabilir.644(rw-r--r--): Web sayfaları, resimler, belgeler gibi sıradan dosyalar için standart. Sahibi okuyup yazabilir, diğerleri sadece okuyabilir.777(rwxrwxrwx): HERKES HER ŞEYİ YAPABİLİR! Büyük bir güvenlik zaafiyetidir. Sadece geçici ve izole bir ortamda gerekmedikçe asla kullanılmamalıdır.600(rw-------): Özel dosyalar (örn. SSH anahtarları) için mükemmel. Sadece sahibi okuyup yazabilir, başka kimsenin erişimi yoktur.
Sonuç
Linux dosya izinleri, sistem yönetiminin ve güvenliğin olmazsa olmazıdır. Binary, Octal ve Sembolik gösterimler, aynı gerçeğin farklı ifadeleridir. Octal sayı sistemi (chmod 755), pratikte en hızlı ve yaygın kullanılan yöntemdir. Bu temel prensipleri anladığınızda, sunucunuzdaki dosya ve dizinlerin güvenliğini profesyonelce yönetebilir, olası birçok hatanın önüne geçebilirsiniz.
Bir sonraki ls -l çıktısına baktığınızda, artık sadece bir harf dizisi değil, sisteminizin güvenlik duvarının bir planını göreceksiniz.
Bu yazı, Linux dosya izinleri hakkında temel bir anlayış geliştirmeniz için hazırlanmıştır. Daha gelişmiş kavramlar için ACL’leri (Erişim Kontrol Listeleri) araştırabilirsiniz.