Unix İzinleri (chmod) Hesaplama

chmod 755 ne demek?

Nasıl hesaplanır?

3 veya 4 basamaklı sekizlik (octal) bir izin girin; her basamak 0 ile 7 arasındadır. Son üç basamak sırasıyla sahip, grup ve diğerlerini gösterir. Bir basamak 4 = okuma (r), 2 = yazma (w) ve 1 = çalıştırma (x) değerlerinin toplamıdır; yani 7 = rwx, 6 = rw-, 5 = r-x, 4 = r--, 0 = ---. Araç, ls -l çıktısındaki dokuz karakterli gösterimi ve her sınıfı rakamıyla birlikte yazar.

Öndeki dördüncü basamak özel bitleri taşır: 4 = setuid (sahibin x'i s olur, x kapalıysa S), 2 = setgid (grubun x'i s veya S), 1 = sticky (diğerlerinin x'i t veya T). Başta 0 olması (0644 gibi) özel bit olmadığı anlamına gelir. 899 ya da 75 gibi 3 veya 4 octal basamak olmayan girdiler sonuç yerine 'geçersiz' uyarısı verir.

Örnek hesaplama

754 iznini ele alalım. Sahip basamağı 7 = 4 + 2 + 1, yani rwx (7). Grup basamağı 5 = 4 + 1, yani r-x (5). Diğerleri basamağı 4 = yalnızca okuma, yani r-- (4). Sembolik gösterim rwxr-xr-- olur. Sahip dosyayı okuyabilir, yazabilir ve çalıştırabilir; grup okuyup çalıştırabilir; diğer herkes yalnızca okuyabilir. Yalnızca ekibin çalıştırması gereken bir betik için tipik bir ayardır.

Bu örneği dene →

Sık yapılan hatalar

  • Ondalık sayı veya 8, 9 gibi rakamlar girmek (ör. 899); yalnızca 0-7 geçerlidir ve araç geçersiz izin bildirir.
  • 'Permission denied' hatasında 777'yi güvenli çözüm sanmak. Bu, sistemdeki herkese yazma ve çalıştırma izni verir.
  • Basamak sırasını ters okumak. Sıra sahip, grup, diğerleri şeklindedir.
  • Dizinlerin içine girmek için x bitinin gerektiğini unutmak: dosya için uygun olan 644, dizinde genellikle kullanılamaz hale getirir.
  • 4 basamaklı iznin ilk basamağını atmak. 4755 ile 755 aynı değildir: sahip konumundaki s, setuid'i gösterir.

Kaynaklar

Bu hesaplama hakkında

Bu araç, 755 gibi 3 haneli ya da baştaki hanesi setuid, setgid ve sticky bitlerini taşıyan 4755 gibi 4 haneli sekizli (octal) bir sayıyla yazılan Unix/Linux dosya izin modunu, sahibin, grubun ve diğer herkesin (others) dosyayla tam olarak ne yapabileceğini gösteren okunabilir rwx (okuma, yazma, çalıştırma) biçimine çevirir; çünkü her sekizli hane bu üç izin bitinin bir kombinasyonunu kodlar.

Sistem yöneticileri, bir web sunucusuna dağıtım yapan geliştiriciler ve Linux veya macOS terminalinde chmod çalıştıran herkes, bir izin numarasının gerçekte neye izin verdiğini tahmin etmek zorunda kalmamak için bunu kullanır — bir dosyayı 777 yapmak, sistemdeki herkesin dosyaya yazıp onu çalıştırabilmesi anlamına gelir ki bu neredeyse hiçbir zaman istenen sonuç değildir; sıradan bir dosya için güvenli varsayılan 644, bir betik veya dizin için ise 755'tir. Komutlarda kullanılan sekizli kısayol ile ls -l çıktısında görünen rwxrwxrwx gösterimi arasında hızlı bir çeviri sağlar.

Bu faydalı oldu mu?

En fazla 3 tepki seçebilirsiniz.

Yorumlar (1)

  • Editör ekibi

    Araç yalnızca elinizdeki bir kipi çevirir; doğru kipin hangisi olduğunu söyleyemez, çünkü bu kimin erişmesi gerektiğine bağlıdır. Genel kural: yazma ve çalıştırma iznine gerçekten kimin ihtiyacı olduğunu sorun ve yalnızca onu verin. Son rakamı 2, 3, 6 ya da 7 olan bir mod, makinedeki tüm kullanıcılara yazma izni verir. Kabuk betiklerinde setuid kullanmaktan kaçınmak iyi olur. Hangi izin bilmecesini çözmeye çalışıyorsunuz: web yükleme klasörü mü, dağıtım betiği mi?

Popüler hesaplayıcılar

Tüm Hesaplayıcılar