Chmod Hesaplayıcısı

Sınıf Oku (r) Yaz (w) Çalıştır (x)
Sahip
Grup
Diğerleri
Sonraki

Unix dosya izinleri üç üçlü hâlinde sunulur: kullanıcı, grup ve diğerleri için okuma, yazma ve çalıştırma izinleri; bu izinler düzenli bir şekilde üç haneli sekizlik bir sayıya dönüştürülebilir. Örneğin chmod 755 script.sh aslında rwxr-xr-x’tir: sahibe tüm izinler verilir; gruba ve diğer kişilere ise yalnızca okuma ve çalıştırma izni verilir. Bu hesaplayıcı, her kontrol kutusunu açıp kapatarak sekizlik değerin nasıl değiştiğini gerçek zamanlı olarak görmenize ya da bir sekizlik sayı yapıştırıp ilgili izin dağılımını (rwx) görüntülemenize olanak tanır; aynı zamanda kopyalamaya hazır tam chmod komutunu da sunar.

chmod izinleri nasıl çalışır?

  1. 1

    9 izin bitini açıp kapatın

    Üç grup (kullanıcı, grup, diğer) × üç izin (okuma, yazma, çalıştırma) = toplam 9 kontrol kutusu.

  2. 2

    Her grup bir oktal rakam haline gelir.

    Okuma = 4, Yazma = 2, Çalıştırma = 1. Etkinleştirmek istediğiniz bitleri toplayın.

  3. 3

    Elde edilen sekizlik ve sembolik formu okuyun.

    örn. 755 → rwxr-xr-x; 644 → rw-r--r--; 600 → rw-------.

  4. 4

    chmod komutunu kopyalayın

    Araç, geçerli izinlere uygun chmod komutunu kopyalamaya hazır şekilde gösterir. Örnekler: chmod 755 dosya_adı, chmod u+x dosya_adı, chmod -R 755 dizin.

İzin biti değerleri

Bit Değer Dosyalar için anlamı Dizinler için anlamı
Okuma 4 İçeriği görüntüleyebilir Girişleri listeleyebilir
Yazma 2 Değiştirebilir Giriş oluşturabilir, silebilir veya yeniden adlandırabilir
Çalıştırma 1 Program olarak çalıştırılabilir İçinde gezinebilir (cd ile girip içeriğe erişebilir)

Yaygın chmod değerleri

Sekizlik Sembolik Tipik kullanım
777 rwxrwxrwx Herkes tarafından yazılabilir, tehlikeli; nadiren doğru
755 rwxr-xr-x Betikler, ikili dosyalar, dizinler
750 rwxr-x--- Size ve grubunuza özel betikler
700 rwx------ Yalnızca size özel betikler (SSH, ~/.ssh)
644 rw-r--r-- Genel belgeler, görseller, HTML
640 rw-r----- Grup tarafından okunabilir yapılandırmalar
600 rw------- Özel yapılandırmalar, SSH özel anahtarları, ~/.netrc
444 r--r--r-- Yalnızca okunabilir yayımlanmış dosyalar
400 r-------- Özel, yalnızca okunabilir (genelde yanlıştır; 600 kullanın)

Özel izinler (az rastlanır ancak önemlidir)

  • setuid (4xxx): Dosyayı sahibi olarak çalıştırır; kim tarafından çalıştırılırsa çalıştırılsın. /usr/bin/passwd bu özellikten yararlanır.
  • setgid (2xxx): Dosyalar için grup adıyla çalışır; klasörler için yeni dosyalar klasörün grubunu devralır.
  • Yapışkan bit (1xxx): Kataloglarda yalnızca dosyanın sahibi dosyayı silip veya adını değiştirebilir. /tmp bu özellikten yararlanır.

Dört haneli oktal değerler şunları içerir: chmod 4755 setuid-binary, 755 ile birlikte setuid’i açar.

Sembolik chmod

Birçok yönetici, kademeli değişiklikler için sembolik biçimleri tercih eder:

  • chmod u+x script, yalnızca sahibi için “yürütme” komutunu ekleyin.
  • chmod go-w file, grubun ve diğerlerinin yazma yetkisini kaldırın.
  • chmod a+r file, tüm kullanıcılara, gruplara ve diğer kişilere okuma yetkisi verir.
  • chmod u=rw,go=r file, tam olarak bu bitleri ayarlayın.
  • chmod -R 755 directory – rekürsif.

Yaygın Hatalar

  • Yükleme klasörlerinde 777: izinleri düzeltiyor gibi görünse de aslında sunucuyu saldırganlara açar. Daha dar bir kombinasyon kullanın (örneğin doğru grup sahipliğiyle 755).
  • Dizinlerde chmod -R 644: dizinlerdeki çalıştırma iznini kaldırır; bu yüzden cd ile içlerine giremezsiniz. Dizinler için 755, normal dosyalar için ise 644 değerini kullanın.
  • 0600 vs 600: Baştaki sıfır, C ve Shell dillerinde oktal sistemi gösterir; çoğu chmod uygulaması her ikisini de kabul eder.
  • Umask: Yeni dosyalar, umask değerinden 666 çıkarılarak elde edilen değerini miras alır. Standart umask 022, 644 dosya ve 755 kataloga karşılık gelir.

Sık Sorulan Sorular

Genellikle sahibin verileri değiştirebilmesini, diğer tüm kullanıcıların ise verileri listelemesine ve gezmesine izin vermek istersiniz. 755 = sahipte rwx, grup ve diğer kullanıcılar için ise r-x – tam olarak bu kombinasyon.

Neredeyse hiç değildir. 777, sistemin herkesine dosyayı değiştirmeye izin verir. Çok kullanıcılı sistemlerde bu bir güvenlik açığıdır; tek kullanıcılı sistemlerde ise gereksizdir (sahibi zaten 755 yetkisiyle rwx yetkisine sahiptir). Bir web uygulamasının 777 yetkisine ihtiyaç duyduğu görülüyorsa, asıl çözüm doğru sahiplik ayarlaması (chown) veya grup üyeliğidir.

~/.ssh dizini: 700. Özel anahtarlar (id_rsa, id_ed25519): 600. Genel anahtarlar (.pub): 644. authorized_keys: 600. Güvenlik önlemi olarak SSH, daha geniş izinlere sahip anahtarları reddeder.

chown: Sahibi için; chgrp: Grup için, ayrı komutlardır. chmod yalnızca bit değerlerini değiştirir, dosyayı sahip olan kullanıcıyı veya grubu değiştirmez.

İlgili Araçlar