---
title: 'İzin Bitleri'
source: 'https://academia.sh/tr/kurslar/linuxa-giris/izin-bitleri'
course: "Linux'a Giriş"
language: tr
updated: '2026-08-17T18:09:57+00:00'
license: 'CC BY-SA 4.0'
---

# İzin Bitleri

Dokuz izin bitinin üç sınıf ve üç erişim türüne bölünmesi, sekizlik gösterim, sınıf seçiminin dışlayıcılığı, dizinlerde bitlerin farklı anlamı ve varsayılan izinleri belirleyen maske.

Önceki ders kimliği tanımladı. Şimdi bu kimliğin bir dosyada ne yapabileceği sorulabilir.
Yanıt, listeleme çıktısının ilk sütununda en baştan beri duruyordu:

```
$ ls -l betik/ozet.sh
-rwxr-xr-x 1 ogrenci ogrenci 139 Jul 26 18:49 betik/ozet.sh
$ ls -l veri/ham/olcum-01.csv
-rw-r--r-- 1 ogrenci ogrenci 61 Jul 26 19:17 veri/ham/olcum-01.csv
```

İlk karakter dosya türüdür ve izinle ilgisizdir. Kalan dokuz karakter, çekirdeğin her erişim
isteğinde danıştığı tablodur.

## Üç Sınıf, Üç Erişim

Dokuz karakter üçerli üç gruba bölünür. Gruplar **kullanıcı sınıflarına** karşılık gelir:

- İlk üç: dosyanın **sahibi**
- Orta üç: dosyanın **grubu**
- Son üç: **diğerleri**

Her grup içinde üç erişim türü aynı sırada durur: okuma (`r`), yazma (`w`), çalıştırma
(`x`). İzin verilmemişse yerinde tire bulunur.

Buna göre `-rwxr-xr-x` şu anlama gelir: sahip okuyabilir, yazabilir, çalıştırabilir; grup
üyeleri okuyabilir ve çalıştırabilir, yazamaz; diğerleri de aynı.

## Sınıf Seçimi Dışlayıcıdır

En sık yapılan yanlış varsayım, izinlerin birikimli olduğudur. Değildir. Çekirdek sırayla
tek bir sınıf seçer ve **yalnızca onu** uygular:

1. İsteği yapan sürecin kullanıcı kimliği dosyanın sahibiyse: sahip bitleri uygulanır.
2. Değilse, kullanıcının gruplarından biri dosyanın grubuysa: grup bitleri uygulanır.
3. Hiçbiri değilse: diğer bitleri uygulanır.

Karar verildikten sonra diğer sınıflara bakılmaz. Bunun şaşırtıcı sonucu, sahibin kendi
dosyasına diğerlerinden daha az erişebilmesidir:

```
$ chmod 044 /tmp/sinif.csv
$ ls -l /tmp/sinif.csv
----r--r-- 1 ogrenci ogrenci 47 Jul 26 19:20 /tmp/sinif.csv
$ id -un
ogrenci
$ cat /tmp/sinif.csv
cat: /tmp/sinif.csv: Permission denied
```

Dosyanın sahibi `ogrenci`'dir ve okuma girişimi reddedilmiştir. Grup ve diğer sınıflarda
okuma izni vardır, ama sahip sınıfı seçildiği için onlara bakılmamıştır.

Sahibin bir üstünlüğü yine de vardır: izinleri değiştirme hakkı bitlerde tutulmaz,
sahiplikten gelir. Sahip kendini kilitleyebilir ama kilidi her zaman açabilir.

```
$ chmod 644 /tmp/sinif.csv
$ cat /tmp/sinif.csv
zaman,sicaklik,nem
08:00,19.8,61
12:00,23.1,52
```

## Sekizlik Gösterim

Dokuz bit, üçerli gruplar hâlinde okunduğunda üç sekizlik basamak verir. Bilgisayarlar Nasıl
Çalışır kursundaki sekizlik taban tam olarak bu iş için uygundur: her basamak tam olarak üç
biti kodlar.

Ağırlıklar erişim türlerine göre sabittir:

| Erişim | Harf | Değer |
|---|---|---|
| Okuma | `r` | 4 |
| Yazma | `w` | 2 |
| Çalıştırma | `x` | 1 |

Bir sınıfın basamağı, o sınıfta açık olan bitlerin toplamıdır:

| Sekizlik | Bitler | Anlamı |
|---|---|---|
| 7 | `rwx` | $4+2+1$ |
| 6 | `rw-` | $4+2$ |
| 5 | `r-x` | $4+1$ |
| 4 | `r--` | $4$ |
| 0 | `---` | $0$ |

Böylece `-rwxr-xr-x` dizesi `755`, `-rw-r--r--` dizesi `644` ve yukarıdaki `----r--r--`
dizesi `044` olur.

Sekizlik gösterimin üstünlüğü kesinliktir: `chmod 644` komutu dokuz biti de belirler, önceki
durumu ne olursa olsun. Harfli gösterim ise seçici değişiklik yapar.

## Simgesel Gösterim

`chmod` komutunun harfli biçimi üç parçadan oluşur: hangi sınıf (`u` sahip, `g` grup, `o`
diğerleri, `a` hepsi), hangi işlem (`+` ekle, `-` çıkar, `=` tam olarak ayarla) ve hangi
bitler.

```
$ chmod 644 /tmp/s.txt
$ ls -l /tmp/s.txt
-rw-r--r-- 1 ogrenci ogrenci 0 Jul 26 19:20 /tmp/s.txt
$ chmod u+x /tmp/s.txt
$ ls -l /tmp/s.txt
-rwxr--r-- 1 ogrenci ogrenci 0 Jul 26 19:20 /tmp/s.txt
$ chmod go-r /tmp/s.txt
$ ls -l /tmp/s.txt
-rwx------ 1 ogrenci ogrenci 0 Jul 26 19:20 /tmp/s.txt
$ chmod a=r /tmp/s.txt
$ ls -l /tmp/s.txt
-r--r--r-- 1 ogrenci ogrenci 0 Jul 26 19:20 /tmp/s.txt
```

`+` ve `-` yalnızca adı geçen bitlere dokunur; diğerleri korunur. `=` ise o sınıfın tüm
bitlerini verilen değere ayarlar, yani listelenmemiş bitleri kapatır.

Seçim ölçütü nettir: bilinen bir duruma getirmek için sekizlik, var olan duruma ekleme veya
çıkarma yapmak için simgesel biçim kullanılır. Komut yolu dersindeki `chmod +x` kullanımı
ikinci türdendi — dosyanın okuma izinleri korunarak yalnızca çalıştırma eklenmişti.

## Dizinlerde Bitlerin Anlamı Değişir

Aynı üç harf dizinlerde bambaşka şeyler ifade eder. Bu, izin modelinin en çok yanlış
anlaşılan yanıdır.

**Okuma (`r`)** dizindeki **adların listelenmesine** izin verir.

**Yazma (`w`)** dizine **girdi eklemeye ve girdi silmeye** izin verir.

**Çalıştırma (`x`)** dizinden **geçmeye**, yani içindeki bir ada erişmeye izin verir. Dizin
hiyerarşisi dersinde yolun bileşen bileşen çözümlendiği söylenmişti; her bileşende aranan
izin budur.

İki bit birbirinden bağımsızdır ve ayrı ayrı sınanabilir. Yalnızca geçiş izni olan bir
dizin, içeriği listelenemez ama adı bilinen dosyaya erişilebilir:

```
$ chmod 100 /tmp/dz
$ ls -ld /tmp/dz
d--x------ 3 ogrenci ogrenci 4096 Jul 26 19:20 /tmp/dz
$ ls /tmp/dz
ls: cannot open directory '/tmp/dz': Permission denied
$ cat /tmp/dz/veri.txt
icerik
```

Listeleme reddedilmiş, ama adı doğrudan verilen dosya okunabilmiştir. Bu yapılandırma
pratikte kullanılır: içeriği gizli tutulan ama belirli dosyalarına erişim verilen dizinler
böyle ayarlanır.

Tersi durum daha çarpıcıdır — okuma var, geçiş yok:

```
$ chmod 400 /tmp/dz
$ ls -ld /tmp/dz
dr-------- 3 ogrenci ogrenci 4096 Jul 26 19:20 /tmp/dz
$ ls /tmp/dz
alt  veri.txt
$ ls -l /tmp/dz
ls: cannot access '/tmp/dz/veri.txt': Permission denied
ls: cannot access '/tmp/dz/alt': Permission denied
total 0
d????????? ? ? ? ?            ? alt
-????????? ? ? ? ?            ? veri.txt
```

Adlar okunabilmiştir çünkü adlar dizinin **içeriğidir**. Ancak her adın üstverisini almak
için dizinden geçmek gerekir ve geçiş izni yoktur; bu yüzden tüm sütunlar soru işaretiyle
gösterilmiştir. Çıktı, adların dizinde, üstverinin düğümde durduğu ayrımını doğrudan
görünür kılar.

Yazma bitinin sonucu da beklenmediktir: bir dizinde yazma izni olan kullanıcı, **içindeki
dosyaları silebilir** — dosyanın kendisinde hiçbir izni olmasa bile. Silmek dosyayı değil
dizin girdisini değiştirdiği için, aranan izin dizinin iznidir. Bu boşluğun nasıl
kapatıldığı özel izin bitleri dersinin konusudur.

## Varsayılan İzinler

Yeni oluşturulan dosyaların izinleri komutla verilmez; **maskeden (umask)** çıkar. Maske,
kapatılacak bitleri gösterir: istenen izinlerden maskedeki bitler çıkarılır.

```
$ umask
0022
$ touch /tmp/u1.txt
$ mkdir -p /tmp/u1dir
$ ls -l /tmp/u1.txt
-rw-r--r-- 1 ogrenci ogrenci 0 Jul 26 19:20 /tmp/u1.txt
$ ls -ld /tmp/u1dir
drwxr-xr-x 2 ogrenci ogrenci 4096 Jul 26 19:20 /tmp/u1dir
```

Hesap şöyledir: dosyalar için başlangıç değeri `666`, dizinler için `777`'dir. Maske `022`
çıkarıldığında dosyalarda `644`, dizinlerde `755` kalır.

Dosyaların `777` yerine `666` ile başlaması bilinçlidir: çalıştırma izni istem dışı
verilmemelidir, çünkü bir veri dosyasının çalıştırılabilir olması hiçbir zaman gerekli
değildir. Dizinlerde ise geçiş izni olmadan dizin kullanılamaz.

Maske değiştirilebilir:

```
$ umask 077
$ touch /tmp/u2.txt
$ mkdir -p /tmp/u2dir
$ ls -l /tmp/u2.txt
-rw------- 1 ogrenci ogrenci 0 Jul 26 19:20 /tmp/u2.txt
$ ls -ld /tmp/u2dir
drwx------ 2 ogrenci ogrenci 4096 Jul 26 19:20 /tmp/u2dir
```

`077` maskesi grup ve diğer sınıfların tüm bitlerini kapatır; yeni dosyalar yalnızca sahibe
açık olur. Çok kullanıcılı sistemlerde bu, varsayılan olarak tercih edilen ayardır.

Maske süreç özelliğidir ve çocuk süreçlere miras kalır; kalıcı olması için oturum açılışında
okunan yapılandırma dosyasına yazılır — komut yolu dersindeki `PATH` ayarıyla aynı yere.

## Özet

- Dokuz izin biti üç sınıfa (sahip, grup, diğerleri) ve üç erişim türüne (okuma, yazma,
  çalıştırma) bölünür.
- Sınıf seçimi dışlayıcıdır: uyan ilk sınıf uygulanır ve diğerlerine bakılmaz; sahip kendi
  dosyasına diğerlerinden az erişebilir.
- Sekizlik gösterimde okuma 4, yazma 2, çalıştırma 1 değerindedir; `chmod` sekizlikle tam
  durum, simgesel biçimle seçici değişiklik yapar.
- Dizinlerde okuma adları listelemeye, yazma girdi eklemeye ve silmeye, çalıştırma dizinden
  geçmeye izin verir.
- Dizinde yazma izni olan kullanıcı, içindeki dosyalarda hiçbir izni olmasa da onları
  silebilir.
- Yeni dosyaların izinleri maskeyle belirlenir: dosyalarda `666`, dizinlerde `777`
  başlangıç değerinden maske bitleri çıkarılır.

## Sonraki Adım

İzinler bir dosyanın sahibine ve grubuna göre uygulanıyorsa, sahiplik ve grubun kendisi
nasıl değiştirilir? Sonraki ders sahiplik değiştirme komutlarını, kimin neyi
değiştirebileceğini ve bir ağacın tamamının sahipliğini değiştirirken sembolik bağların neden
sorun çıkardığını ele alır.
