# Linux dosya izinleri: chmod, chown ve 755, 644 rakamlarının anlamı

https://kervanhosting.com/bilgi-bankasi/makale/linux-dosya-izinleri-chmod-chown-rakamlari-ve-sorunlari

Linux'ta her dosya ve klasörün bir **sahibi**, bir **grubu** ve üç tür kullanıcı için izinleri vardır. "Permission denied" hatasının, web sitesinde 403'ün ya da bir betiğin çalışmamasının çoğu zaman sebebi bu izinlerdir. Rakamlar ilk bakışta gizemli görünür ama mantığı basittir.

## İzinleri okumak

```
ls -l /var/www/ornek.com
-rw-r--r-- 1 www-data www-data  1234 Oct 20 12:00 index.php
drwxr-xr-x 2 www-data www-data  4096 Oct 20 12:00 resimler
```

İlk sütun 10 karakterdir. İlk karakter türü söyler (`-` dosya, `d` klasör). Sonraki üçlü gruplar sırasıyla **sahip**, **grup** ve **diğerleri** içindir. Her grupta `r` okuma, `w` yazma, `x` çalıştırma (klasörde: içine girme) hakkıdır; `-` hak yok demektir. Yani `rw-r--r--`: sahip okuyup yazar, grup ve diğerleri yalnızca okur. Sonraki iki sütun sahip ve grup adıdır (`www-data www-data`).

## Rakamlar

Her hak bir sayıdır: okuma 4, yazma 2, çalıştırma 1. Üçlüyü toplarsınız:

- `rwx` = 4+2+1 = **7**
- `rw-` = 4+2 = **6**
- `r-x` = 4+1 = **5**
- `r--` = **4**

Üç rakam sırasıyla sahip, grup, diğerleri için yazılır: `755` = `rwxr-xr-x` (sahip her şeyi yapar, diğerleri okur ve girer); `644` = `rw-r--r--`; `600` = yalnızca sahip okur/yazar; `777` herkese her hakkı verir ve güvensizdir.

## chmod: izni değiştirme

```
chmod 644 dosya.txt        # rakamla
chmod +x betik.sh          # çalıştırma hakkı ekle
chmod -R 755 klasor        # klasörü ve içindekileri
chmod u+w,go-w dosya       # sahibe yaz ekle, gruptan ve diğerlerinden yazmayı al
```

Web siteleri için standart: klasörler 755, dosyalar 644. Bir klasöre girmek için `x` hakkı gerekir; `chmod -R 644` klasörleri de 644 yaparsa içine kimse giremez. Doğru yöntem klasör ve dosyaları ayırmaktır:

```
find /var/www/ornek.com -type d -exec chmod 755 {} \;
find /var/www/ornek.com -type f -exec chmod 644 {} \;
```

## chown: sahibi değiştirme

```
sudo chown www-data:www-data dosya.php
sudo chown -R www-data:www-data /var/www/ornek.com
```

Sahip, "kullanıcı:grup" biçiminde yazılır. Web sunucusu (Nginx, PHP-FPM) çoğu dağıtımda `www-data` kullanıcısıyla çalışır; sitenin dosyalarını okuyabilmesi, yükleme ve önbellek klasörlerine yazabilmesi için sahiplik buna uygun olmalıdır. Çalışan kullanıcıyı `ps aux | grep -E "nginx|php-fpm"` ile öğrenin.

## Sık sorunlar

- **"Permission denied" betik çalıştırırken:** Dosyanın `x` hakkı yoktur: `chmod +x betik.sh`. Ya da dosya `noexec` bağlanmış bir diskte durur.
- **Nginx 403:** Yolun üzerindeki herhangi bir klasörün `x` hakkı eksiktir: `namei -l /tam/yol/dosya` komutu tüm yoldaki izinleri gösterir: [Nginx 403](https://kervanhosting.com/bilgi-bankasi/makale/nginx-403-forbidden-hatasi-nedenleri-ve-cozumu).
- **WordPress güncelleyemiyor:** Sahiplik yanlıştır: [WordPress dosya izinleri](https://kervanhosting.com/bilgi-bankasi/makale/wordpress-dosya-izinleri-ve-guncellemede-ftp-bilgisi-soruyor).
- **SSH anahtarı çalışmıyor:** `~/.ssh` 700, `authorized_keys` 600 olmalı: [publickey hatası](https://kervanhosting.com/bilgi-bankasi/makale/ssh-permission-denied-publickey-ve-too-many-authentication-failures).
- **Her şeyi 777 yapmak:** Çözmüş gibi görünür ama herkesin dosyalarınızı değiştirmesine izin verir. Doğru sahip ve izni ayarlayın.

Hosting paketinde dosya sahipliği ve izinler genellikle sorunsuzdur; sorun yaşarsanız Dosya Yöneticisi'nden izinleri düzeltebilirsiniz: [403, 404, 500 hataları](https://kervanhosting.com/bilgi-bankasi/makale/hosting-sitem-403-404-veya-500-hatasi-veriyor).

## Sık sorulanlar

### Sticky bit ve setuid nedir?

Üç rakamın başına eklenen dördüncü rakamlardır (`1755`, `4755`). Özel durumlar içindir (ortak klasörler, yetki yükselten programlar). Normal bir web sitesi için gerekmez.

### umask nedir?

Yeni oluşturulan dosyaların varsayılan izinlerini belirler. Genelde 022'dir; yani yeni dosya 644, yeni klasör 755 olur.

### Sahibi root olan bir dosyayı düzenleyemiyorum.

`sudo` ile düzenleyin ya da sahibini değiştirin. Sistem dosyalarının sahibini değiştirmeyin.

**İlgili makaleler**

- [Nginx 403 Forbidden hatası: nedenleri ve çözümü](https://kervanhosting.com/bilgi-bankasi/makale/nginx-403-forbidden-hatasi-nedenleri-ve-cozumu)
- [WordPress güncellerken FTP bilgisi soruyor ve "Could not create directory" hatası](https://kervanhosting.com/bilgi-bankasi/makale/wordpress-dosya-izinleri-ve-guncellemede-ftp-bilgisi-soruyor)
- [Yeni Linux sunucuda ilk yapılması gerekenler](https://kervanhosting.com/bilgi-bankasi/makale/yeni-linux-sunucuda-ilk-yapilmasi-gerekenler)

*Sorununuz çözülmediyse [destek talebi açın](https://kervanhosting.com/destek-taleplerim). Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.*
