Sekizlikten İkiliye Dönüştürme
Sekizlik sayıları üçer bitlik ikili basamak gruplarına dönüştür.
Bir betik için chmod 755 komutunu çalıştırırsın ve dosya çalışır hale gelir. Başka bir dosyada chmod 644 tanımlarsın ve farklı erişim kuralları geçerli olur. Buradaki sayılar sekizlik tabandadır ve bu sistemin bilişim dünyasında varlığını sürdürmesinin temel nedeni, her bir rakamın tam olarak üç ikili anahtara karşılık gelmesidir.
Dosya izinlerinde sekizlik tabanın tercih edilme nedeni
Bir Unix dosyasında üç temel izin bayrağı bulunur: okuma, yazma ve çalıştırma. Bunların her biri açık ya da kapalı olabilen tek bir ikili anahtardır. Üç ikili anahtar bir araya geldiğinde tam olarak sekiz farklı kombinasyon oluşturur; bu da 0 ile 7 arasındaki tek bir sekizlik basamağın ifade edebildiği değer kümesidir.
İzin komutlarında sekizlik tabanın seçilmesi rastlantı değildir. Bir basamak doğrudan üç bite ve üç izne denk gelir. Onaltılık taban dört biti kapsayacağı için bir biti boşa harcar; onluk taban ise ikili bit gruplarına doğrudan oturmaz.
Sekizlik basamakların izin karşılıkları tablosu
| Sekizlik basamak | İkili | İzinler |
|---|---|---|
| 0 | 000 | no read, no write, no execute |
| 1 | 001 | execute only |
| 2 | 010 | write only |
| 4 | 100 | read only |
| 5 | 101 | read and execute |
| 6 | 110 | read and write |
| 7 | 111 | read, write and execute |
Sekizlik 755 ve 644 değerlerini ikili olarak okuma
chmod 755 ifadesinde üç ayrı basamak bulunur; bunlar sırasıyla dosya sahibi, kullanıcı grubu ve diğer herkes içindir. 7 değeri ikili sistemde 111 demektir; yani sahip için okuma, yazma ve çalıştırma izinleri açıktır. Her bir 5 değeri ise 101 bitlerine karşılık gelir; grup ve diğer kullanıcılar okuma ile çalıştırma yetkisi alırken yazma yetkisi alamaz.
chmod 644 değeri 6, 4, 4 olarak ayrılır. 6 rakamı ikili düzende (4 + 2) = 110 olur; dosya sahibine okuma ve yazma izni verir. Her bir 4 rakamı ise 100 ikili değeridir; grup ve diğerleri için yalnızca okuma iznidir. Tek bir basamağın üç bite eşlenmesi kuralı, dosya izinlerinin ardındaki mantığı oluşturur.
Sekizlik sayıları ikiliye çevirme adımları
- Sekizlik sayıyı soldan sağa doğru basamaklarına ayır.
- Her basamağı üç haneli ikili bir gruba dönüştür; gerekirse başına sıfır ekle, örneğin 2 değeri 10 yerine 010 olarak yazılmalıdır.
- Dönüştürülen üç bitlik grupları sırasını bozmadan yan yana diz.
- Sayıyı arayüzdeki alana girdikten sonra butona tıkla ve çıkan tam ikili sonucu al.
Sekizlik ve ikili dönüşümü hakkında sorular
Her sekizlik basamak neden tam olarak üç bit eder?
Üç ikili bit, 0 ile 7 arasında sekiz ayrı değer üretebilir. Bu durum sekizlik tabandaki tek bir basamağın sınırlarıyla birebir örtüşür; böylece uzun bölme işlemlerine gerek kalmadan doğrudan eşleme yapılır.
chmod 777 izni ikili sistemde ne anlama gelir?
Her 7 basamağı ikili sistemde 111 anlamına gelir; yani 777 değeri sahibe, gruba ve diğer kullanıcılara okuma, yazma ve çalıştırma haklarının tamamını tanır. Bu en serbest yapılandırmadır ve geçici denemeler dışında nadiren tercih edilir.
İzinleri doğrudan ikili sayılarla girmek neden kullanılmaz?
Dokuz biti tek tek okumak ve hatasız yazmak, üç sekizlik basamağı yazmaktan çok daha zordur. Sekizlik biçim, aynı bilgiyi daha kısa ve daha az hata payıyla sunduğu için standart haline gelmiştir.
Dört basamaklı sekizlik izinlerin farkı nedir?
Standart üç basamağın önünde yer alan dördüncü bir basamak; setuid, setgid ve sticky bit gibi özel bayrakları devreye sokar. Bu ek bayraklar da standart izinlerin ötesindeki tekil bitlerle denetlenir.
Dönüştürücü dosya izinleri dışındaki sekizlik sayıları da çevirir mi?
Evet. Sayının neyi temsil ettiğinden bağımsız olarak dönüşüm mantığı aynıdır; izinler sadece bu yöntemin günümüzde en sık karşılaşılan kullanım alanıdır.