İzinler (Permissions)
Tarih: 2026-06-15 | Kategori: Linux
Etiketler: Linux
Tıpkı diğer işletim sistemlerinde olduğu gibi, Linux'ta da birden fazla kullanıcı hesabı oluşturulabilir ve bu kullanıcılar aynı sistemi paylaşabilirler. Ancak, farklı kullanıcılar aynı sistemi paylaştığında, gizlilik sorunları kolayca ortaya çıkabilir. Örneğin, bir kullanıcı diğerlerinin kendi dosyalarını görüntülemesini, düzenlemesini veya silmesini istemeyebilir.
Bu sorunu, dosya ve dizin düzeyinde tanımlanabilen izinlerle çözebiliriz.
Bir dosya veya dizinin izinlerini görüntülemek için, önceki bölümlerde tartışıldığı gibi `ls` komutunun `-l` parametresini kullanabiliriz.
root@hackerbox:~$ ls -l notes.txt
-rwxr--r-- 2 john development 4096 Jul 29 12:34 notes.txt
`ls` komutunun `-l` parametresi ile elde edilen çıktıdaki sütunlar şöyledir:
İzinleri Anlamak (Understanding Permissions)
[Image of Linux file permissions structure rwxrwxrwx explained]
Yukarıdaki örnekte verilen dosya izinleri (`rwxr--r--`), toplamda 9 karakterden oluşan üç farklı izin kümesi olarak düşünülebilir. Üç karakterlik her küme; user (kullanıcı), group (grup) ve others (diğerleri) izin kümelerini temsil eder.
--- --- ---
rwx rwx rwx
user group others
`r`, `w`, `x` ve `-` Karakterleri
Kullanıcı, Grup ve Diğerleri
İzinleri Okuma (Reading Permissions)
Öncelikle verilen izinleri (`rwxr--r--`) üç ayrı gruba ayıralım.
rwx r-- r--
user group others
Sahip kullanıcı (user) için tüm izinlerin (okuma, yazma ve çalıştırma) verildiği görülmektedir (`rwx`). Başka bir deyişle, dosyanın sahibi (john adlı kullanıcı) bu dosyayı okuyabilir, değiştirebilir ve çalıştırabilir. Ancak, bu dosya adından da anlaşılacağı üzere bir metin dosyası olduğu için, çalıştırma izni olsa bile (bir script olmadığı sürece) çalışmayacaktır.
Grup (group) izinleri için, dosyaya atanan gruba yalnızca okuma izni verilmiştir (`r--`). `-` karakteri ile belirtildiği gibi yazma ve çalıştırma izinleri verilmemiştir. Dosyanın atandığı `development` grubunun üyeleri, bu dosya için yalnızca okuma iznine sahiptir.
Diğer (others) kullanıcıların ve grupların izinlerine gelince, yine sadece okuma izninin verildiği görülmektedir (`r--`). Yine, `-` karakteri ile gösterildiği gibi yazma ve çalıştırma izinleri verilmemiştir. Bu, sistemdeki diğer tüm kullanıcıların ve grupların bu dosya için yalnızca okuma iznine sahip olduğu anlamına gelir.
Dosya ve Dizin İzinlerini Değiştirme (Changing File and Directory Permissions)
Dosya ve dizin izinlerini değiştirmek için `chmod` komutunu kullanın. `chmod` komutuna verilen ilk argüman, hangi izin kümesini değiştirmek istediğinizi belirtir. İzin kümesini `u`, `g` veya `o` seçenekleriyle belirtebilirsiniz.
İlk argümanı belirttikten sonra, bir izin eklemek mi yoksa kaldırmak mı istediğinizi belirtmeniz gerekir. `+` veya `-` seçeneklerini kullanabilirsiniz.
Son olarak, hangi izni değiştirmek istediğinizi (`r`, `w` veya `x`) belirtmeniz gerekir.
Daha İyi Anlamak İçin Bir Örnek
Örneğin, `notes.txt` dosyası için diğerlerine (others) yazma izni vermek istiyorsak, komuta izin kümesini belirterek başlarız (diğerleri için `o`):
root@hackerbox:~$ chmod o
Ardından, izni eklemek mi yoksa kaldırmak mı istediğimizi belirtiriz. İzni eklemek istediğimiz için `+` karakterini kullanırız.
root@hackerbox:~$ chmod o+
Sonraki adımda, izni belirtiriz (yazma için `w`).
root@hackerbox:~$ chmod o+w
Son olarak, değiştirmek istediğimiz dosyayı, `notes.txt`'yi belirtir ve komutu çalıştırırız. Ardından değişiklikleri `ls -l` ile doğrularız.
root@hackerbox:~$ chmod o+w notes.txt
root@hackerbox:~$ ls -l notes.txt
-rwxr--rw- 2 john development 4096 Jul 29 12:34 notes.txt
Görebildiğimiz gibi, diğerleri (others) için izin seti `rw-` olarak değiştirilmiştir. Artık sistemdeki diğer kullanıcılar da dosyayı okuyabilir ve dosyaya yazabilirler.
Başka Bir Örnek (Toplu Atama)
Tek bir komutta birden fazla izni ve grubu da güncelleyebilirsiniz. Örneğin, `notes.txt` dosyası için tüm kümelere (user, group, others) tüm izinleri (`rwx`) vermek üzere aşağıdaki komutu çalıştırın:
root@hackerbox:~$ chmod ugo+rwx notes.txt
root@hackerbox:~$ ls -l notes.txt
-rwxrwxrwx 2 john development 4096 Jul 29 12:34 notes.txt