Linux’a yeterince derin bir göz atarsanız, uzun zamanlardan kalma izlere, bugün hâlâ çalışmaya devam eden parçalara rastlamanız olası. Peki, 1971’de ortaya çıkan bir teknolojinin hem bugünkü Linux bilgisayarınızda hâlâ var olduğu hem de icat edildiği işi yapmaya devam ettiği konusunda farkınız var mı? Konumuz rwx; nasıl ortaya çıktığı ve kendi sisteminizde bunu nasıl deneyebileceğiniz.

Hikâye, daha basit bir yola olan ihtiyacın başlangıcıyla başlar
Her şey çok karmaşıktı
Nereye geldiğimizi görmek için nereden başladığımıza bakmamız gerekiyor. Bunu yapmak için saati tamamen 60’lara geri sarmamız gerekiyor. O dönemde Multics adında bir işletim sistemi vardı ve hangi dosyaya kimin erişebileceğine dair verdiği kararlar biraz karmaşıktı.
Multics sistemlerinde her dosya bir izin listesi içerirdi. Aslında bu, elinde bir tablet tutan bir kapıcıya benzerdi. Birisi dosyayla bir şey yapmaya çalıştığında, işletim sistemi izinleri denemek için listeyi baştan sona tara. Bu izinler her kullanıcıyı, üyesi olduğu proje grubunu ve izinlerini tanımlardı. Kapıcı, kullanıcının erişim düzeyini onayladığında, ona ancak o alanlara giriş izni verirdi.

Güvenliydi, ancak aynı zamanda oldukça bir yük de niteliğindeydi. Yönetim açısından bakıldığında, her dosyanın üzerinde çalışabileceği uygun bir “tablet”inin olduğundan emin olmak biraz kabustu. Üstelik, birisi her dosyayı kullanmak istediğinde bu listeyi baştan sona taramak bellek ve işlem gücü gerektiriyordu; 60’ların bilgisayarlarındaysa bu kaynaklar bolca yoktu!

İki araştırmacı, işleri yapmanın daha basit bir yolunu buldu
Dokuz bit, üç amaç
Ken Thompson ve Dennis Ritchie adlı iki araştırmacı, 1969’da Multics’ten ayrıldı. Üzerinde çalıştıkları, Unix adını verdikleri bu yeni işletim sistemi için izinleri yönetebilecek bir sisteme ihtiyaçları vardı. Ancak Multics’in kullandığı sistemi aynen kullanmak istemediler; belleği daha az yoran, daha anlaşılması çok daha kolay bir şey istiyorlardı.
Sonuç olarak, bir dosyanın panoya kopyalanması için her bir kişinin ve her bir grubun ayrı ayrı sahip olması gereken izinlerin ayrıntılı biçimde gerekmediğini keşfettiler. Aslında, yalnızca üç gruba bölünmüş dokuz sayıyla oldukça fazla şey yapılabileceğini anladılar.
İşleyiş şöyle işliyordu. 1971 tarihli Unix Programcı El Kitabı’nda Ken Thompson ve Dennis Ritchie, izin seviyelerini temsil etmek için 2’lik (ikili) sayı sistemini kullandı. 2’lik sayı sistemi, temel sayım sistemimiz olan 10’luk sistemden biraz farklıdır. 2’lik sistemde en sağdaki ilk basamak 1’i, ikinci basamak 2’i, en soldaki üçüncü basamak ise 4’ü temsil eder. Herhangi bir basamakta 1’den büyük bir sayı kullanamazsınız, bu yüzden 0’lar ve 1’lerle sıkışıp kalırsınız; işte bilgisayarların veriyi nasıl sakladığı tartışılırken bahsedilen ikili sistem de budur.
İnsanlar olarak ‘101’ sayısına baktığımızda onu yüz, sıfır on ve bir bir (yani yüz bir) olarak okuruz; ancak 2’lik sistem kullanan bir bilgisayar ise bir dört, sıfır iki ve bir bir görür. Bu değeri değerleri toplayarak 8’lik sisteme çevirebiliriz: bir dört ve bir bir beşe eşittir, dolayısıyla 8’lik sistemde ‘101’, ‘5’ anlamına gelir. Bu üç basamakla en küçük sayı 000’dır (8’lik sistemde 0), en büyük sayı ise 111’dir (bir dört, bir iki ve bir bir, 8’lik sistemde 7’ye eşittir).
İşte Ken Thompson ve Dennis Ritchie bu bilgiyi şöyle kullandı. O üç basamağı 2’lik sistemden alıp her birine bir işlev atadı. En soldaki basamak okuma iznini, ortadaki yazma iznini, en sağdaki ise çalıştırma iznini temsil eder. 1 iznin verildiğini, 0 ise verilmediğini gösterir. Dolayısıyla 101 görseydiniz, bunun biri dosyayı okuyup çalıştırabileceğini, ancak düzenleyemeyeceğini ifade ederdi. 2’lik sistemde olduğu için bunu 8’lik sisteme çevirip 5 sayısı elde edebilirsiniz. Yani birine ‘beşinci kural’ verirseniz, okuyup çalıştırabilir, ancak düzenleyemezdi. Sıfıncı kural hiç erişim izni vermezdi, yedinci kural ise her şeye izin verirdi.
Ken Thompson ve Dennis Ritchie ardından bu üçlü sayılardan üçünü birleştirdi. İlk üçlü, dosyayı sahibinin ne yapabileceğini; ikincisi, tanınmış bir gruptaki insanların ne yapabileceğini; sonuncusu ise diğer herkesin ne yapabileceğini temsil eder.
Bu nedenle, dosyanın sahibinin dosyaya tam erişimi olsun, tanınmış bir grubun üyelerinin dosyayı düzenlemeden okuyup çalıştırabilmesi için herkesin ise yalnızca dosyayı okuyabilmesi isteniyorsa, sahibine ‘111’, gruba ‘101’ ve diğer herkesin ‘100’ değeri verilebilir; bu da “111 101 100” şeklinde okunan bir dize oluşturur. Ve biz bu değeri daha insancıl bir şekilde taban-8’e dönüştürebiliriz: ‘754’. Yalnızca dokuz taban-2 sayısı ya da üç taban-8 sayısı ile iki araştırmacı, üç farklı kullanıcı türü için üç erişim düzeyini tanımlayabilir. Çok zekice.
Taban-2’deki üç sayı, kısa yolu ‘rwx’ olan Oku, Yaz ve Çalıştır olarak bilinmeye başladı. Ve o üç harf, neyin kim tarafından erişilebilir olduğunu tanımladı.
rwx sistemi Linux’a yerleşiyor
Çok başlangıçtan beri oradaydı
1991 yılına atlayalım ve genç Linus Torvalds Linux’u oluşturuyordu. POSIX uyumlu olmasını istiyordu, böylece mevcut Unix araçlarıyla çalışacaktı; bu da rwx sistemini benimsemek anlamına geliyordu. Yani, tam da bunu yaptı.
Linux güvenliği o zamandan beri açıkça çok yol kat ets de, bugün sisteminize rwx’in etkisini hâlâ görebilirsiniz. Terminalinize “ls -l” yazdığınızda, her satırın solundaki bit, sahne alan rwx sistemidir. Örneğin, çıktımın ilk satırı şunu okuyor:
drwxr-xr-x. 1 simon simon 76 Oct 5 19:26 AppImages
Tam başta rastgele bir harf yığını gibi görünen şey, ilk kez sahneye çıktığından beş onyıl sonra rwx’in işini yapıyor. Dört parçadan oluşuyor:
- Başındaki d harfi sisteme bunun bir dizin olduğunu belirtir.
- d’nin hemen ardından gelen rwx dosyanın sahibinin izinleridir: okuma, yazma ve çalıştırma.
- Sonrasında gelen r-x grubun izinleridir: okuma ve çalıştırma, ancak yazma yok. Yazma izninin olmamasının, w harfinin olması gereken yerde tire ile gösterildiğine dikkat edin.
- Son r-x ise diğer herkes için geçerlidir ve yine okuma ve çalıştırma, ancak yazma yok anlamına gelir.
Bu da 111 101 101, yani 8’lik sisteme göre 755 anlamına gelir. Panodaki o uzun diziden çok daha basit bir yöntem.
Linux, eski teknolojinin bir hazinesidir
Sonraki sefer bir Linux terminal çıktısında tuhaf bir şeyle karşılaştığınızda, ne anlama geldiğini ve nasıl ortaya çıktığını derinlemesine inceleyin. Aslında hiç bilmiyorsunuz; bugün hâlâ güçlü şekilde kullanılan ~50 yaşında bir izin sistemine rastlayabilirsiniz!
Bu Gelişmeyi Toplulukta Değerlendirin
Haber hakkındaki düşüncelerinizi, donanım deneyimlerinizi ve teknik sorularınızı topluluk üyeleriyle anlık olarak tartışın.
Bu gelişme hakkında düşüncelerinizi, donanım deneyimlerinizi veya sorularınızı Topluluk Forumumuzda paylaşın.
Foruma Katıl & Yanıtla ➔




Söz sizde.
Deneyiminizi, sorularınızı ve katkılarınızı paylaşın. E-posta adresiniz yayımlanmaz.