chmod izni nasıl hesaplanır?
İzinler üç sınıfa ayrılır: dosyanın sahibi (u), dosyanın grubu (g) ve diğer herkes (o). Her sınıfın üç biti vardır: okuma (r), yazma (w), çalıştırma (x).
Her bitin bir değeri vardır: r = 4, w = 2, x = 1. Bir sınıfın oktal hanesi açık bitlerin toplamıdır. rw- = 4 + 2 = 6, r-x = 4 + 1 = 5, r-- = 4.
Üç hane yan yana yazılır: sahip, grup, diğerleri. rw-r--r-- = 644 (sahip okur ve yazar, diğerleri yalnızca okur).
Dört haneli kipte baştaki hane özel bitleri taşır (POSIX): setuid = 4, setgid = 2, sticky = 1. ls -l bu bitleri x yerine s ya da t harfiyle gösterir. Büyük S ya da T, özel bitin açık ama çalıştırma izninin kapalı olduğunu belirtir.
Dizinlerde x izni dizine girmeyi (cd), r izni içeriği listelemeyi, w izni dosya ekleyip silmeyi sağlar. Bu yüzden dizinler genellikle 755, dosyalar 644 olur.
Formül
- Sınıf hanesi
r × 4 + w × 2 + x × 1- Üç haneli kip
sahip · grup · diğerleri (ör. 7 · 5 · 5 = 755)- Özel bit hanesi
setuid × 4 + setgid × 2 + sticky × 1
Örnek hesap
Aşağıdaki örnek, şu değerlerle (Elindeki gösterim: Oktal (755), Oktal izin: 755) hesaplayıcının kendisiyle hesaplanmıştır.
| Adım | Hesap | Değer |
|---|---|---|
| Hane değeri | her sınıf için r = 4, w = 2, x = 1 toplanır | 755 |
| Özel bitler | setuid = 4, setgid = 2, sticky = 1 (dört haneli kipte ilk hane) | 0 |
| Sembolik izin | rwxr-xr-x |
Örneğin tablosu (3 satır)
| Sınıf | Oktal hane | Okuma (r=4) | Yazma (w=2) | Çalıştırma (x=1) |
|---|---|---|---|---|
| Sahip (u) | 7 | evet | evet | evet |
| Grup (g) | 5 | evet | hayır | evet |
| Diğerleri (o) | 5 | evet | hayır | evet |
Kaynaklar
- The Open Group — POSIX.1-2017, chmod yardımcı programı (sembolik ve oktal kip) (erişim 31.10.2026)
- The Open Group — POSIX.1-2017, <sys/stat.h> izin bitleri (S_IRUSR ... S_ISVTX) (erişim 31.10.2026)
Son güncelleme: (içerik ya da kullanılan verinin son değiştiği ya da kontrol edildiği tarih).
Hesaba katılmayanlar
- ACL (setfacl) ile verilen ek izinler ve SELinux/AppArmor bağlamları hesaba katılmaz; ls -l çıktısının sonundaki + ya da . işareti bunlara işaret eder.
- umask hesabı yapılmaz: yeni oluşturulan dosyanın izni, programın istediği kipten umask bitlerinin çıkarılmasıyla belirlenir.
- Sembolik göreli komutlar (chmod g+w, o-x) mevcut izne bağlı olduğundan burada mutlak kip (u=rwx,g=rx,o=rx) olarak verilir.
Sıkça sorulan sorular
chmod 755 ne demek?
Sahip okuyabilir, yazabilir ve çalıştırabilir (7); grup ve diğer kullanıcılar okuyup çalıştırabilir ama değiştiremez (5). Betikler ve dizinler için yaygın izindir.
chmod 644 ile 755 farkı nedir?
644 (rw-r--r--) çalıştırma izni vermez; düz dosyalar, yapılandırma ve web sayfaları için uygundur. 755 (rwxr-xr-x) çalıştırma izni de verir; betikler, programlar ve dizinler için kullanılır.
chmod 777 kullanmak güvenli mi?
Genellikle hayır. 777 herkese yazma izni verir; sistemdeki her kullanıcı ya da ele geçirilmiş bir web süreci dosyayı değiştirebilir. Sorunu çözmek için doğru sahiplik (chown) ve 755/644 gibi dar izinler tercih edilir.
rwsr-xr-x içindeki s harfi nedir?
setuid bitidir. Program, onu çalıştıranın değil dosya sahibinin yetkisiyle çalışır (ör. passwd komutu). Oktal karşılığı 4755. Büyük S, setuid açık ama çalıştırma izninin kapalı olduğunu gösterir.
/tmp dizininin izni neden 1777?
Baştaki 1 sticky bitidir (ls -l'de sondaki t). Herkes dizine dosya yazabilir ama yalnızca kendi dosyasını silebilir ya da yeniden adlandırabilir.