Guido Socher Yazar Hakkında: Linux'u seviyor çünkü Linux özgür bir sistem ayrıca bütün dünyadaki Linux kullanıcılarıyla çalışmak çok eğlenceli. Boş zamanlarını kız arkadaşıyla geçiriyor, BBC radyosunu dinliyor, kırlarda bisiklet sürüyor ve Lınux'la oynamaktan hoşlanıyor. |
Dosya Erişim İzinleriÇeviri: Azime Öztürk (Gözden geçirilmekte)
Özet:
Bu makale iki bolüme ayrılmıştır:
Temel dosya giriş izinleriLinuz kullanıcıların kendi dosyalarına farklı giriş izinleri verebilcekleri cok kullanıcılı bir sistem. Her kullanıcı kendisini tanımlayan tek bir kullanıcı-Id numarasına sahiptir. Aynı zamanda kullanıcılar bir yada daha fazla gruba dahildir. Gruplar çok sayıda insana girişi sınırlamak için de kullanılabilir. Çok sayıda insanla daha kolay takım çalışması yapmak için iyi bir özellik. Kullanıcı -Id'nizi kontrol etmek ve dahil olduğunuz grup veya grupları görmek için sadece id komutunu yazın:
Giriş izinleri her bir dosyaya dosya sahibi , grup vediğerleri için okuma (r), yazma(w) ve çalıştırma(x)izinleri ilkesiyle konulabilir. Bu izinleri görmek için ls -l komutunu kullanabilirsiniz.
/usr/bin/id dosyası sadece root kullanıcısı tarafından kullanılır ve root grubuna aittir. -rwxr-xr-x ifadesi dosya giriş izinlerini gösterir.Bu dosya sahibi tarafından okunabilir (r),yazılabilir(w) ve çalıştırılabilir(x), grup ve diğerleri tarafından okunabilir(r)ve çalıştırılabilir(x). İzinleri, her bir biti dosya sahibi, grup ve dıgerleri için tahsis edilmiş 3 bitlik bit vektör gibi düşünebilirsiniz. Şöyle ki r-x bit olarak 101 'e ondalık olarak 4+1=5'e karşılık gelir. r-bit ondalık 4'e, w-bit ondalık 2'ye ve an x-bit de ondalık 1'e karşılık gelir.
chmod komutu bu izinleri değiştirmek için kullanılabilir. Güvenlik için yalnızca root yada dosya sahibi izinleri değiştirebilir. Chmod ile izinlerin ondalık veya sembolik ifadelerin her ikisi de kullanılır. Sembolik ifade [ugoa][+-][rwx]. Şöyle ki u (kullanıcı=dosya sahibi), g (grup), o(diğerleri), a(herkes=u, g ve o) harflerini izinleri eklemek veya kaldırmak amacıyla + veya - daha sonra da izinlerin sembolik ifadeleri r(read) w(write) x(execute) takip eder. "file.txt" dosyasını herkes için all yazılabilir writable yapmak amacıyla şunu yazın:
chmod 644 file.txt izinleri "normal"hale yani dosya sahibi için okunabilir+yazılabilir ve diğerleri için sadece okunabilir şekline koyar. bir dizindeki değişiklik (cd komutuyla)dizini yürürlüğe koymakla denktir. "Normal"Buna göre bir dizin için "Normal" izinler644 değil 755 dir:
umask ihmal edilen izinlerinizi tanımlar. Bu izinler yeni dosyalar (ve dizinler, vs...) yaratıldığında uygulanır. Kanıt olarak senin koymak istemediğin ondalık ifade şeklindeki bitleri alır. umask 022 iyi bir e.g a seçimidir. 022 ile dosyalarını ve "cd" dizinlerinin içini herkes okuyabilir ancak yalnızca sen değişiklik yapabilirsin. Geçerli umask oturumlarını yazdırmak için sadece umask yazın. Burada umask ve chmod'un nasıl kullanıldığını gösteren bir örnek var:
Çalıştırılabilir olmasına ihtiyaç duyan normal derli binary'de çalıştırmak için dosyanın okunabilir ve çalıştırılabilir olmasına dikkat edin. Çünkü dosya çevirmen(kabuk) tarafından okunmalı. Dosyayı çalıştırmak şunu üretir: merhaba alice Bu dosya ( ./myscript )aşağıdaki izinlere sahip: -rwxr-xr-x T-bit, SUID and SGIDLinux'la bir dosya için çalıştıktan sonra büyük olasılıkla burada dosya izinleri için "rwx" bitlerinden çok daha fazlasının olduğunu keşfedersiniz.Dosya sisteminizin içini araştırdığınızda "s" ve"t" yi görürsünüz:
Nedir bu "s" ve "t" biti? İzin bitlerinin vektörü gerçekte 4 * 3 bit uzunluğundadır. chmod 755, chmod 0755 nin bir kısaltmasıdır. t bitit biti (bazen "sticky bit"e karşılık gelir)sadece dizin kombinasyonlarında kullanılabilir. Yukarda gördüğünüz gibi/tmp diziniyle kullanılır. Normalde (t-biti dizinlere yerleştirilmeden )dosyaların silinebilmesi için dizinin tuttuğu dosyalar silen kişi tarafından okunabilir olmalı .Böylece herkesin dosya koyabileceği bir dizininiz varsa burada herkes herkesin dosyasını silebilir . t-biti bu kuralı değiştirir. t-bitini koymakla yalnızca dosya sahibi yada dizin sahibi dosyaları silebilir. t-bit chmod a+tw veya chmod 1777 ile konabilir .Bir örnek:
S-bit set on the userLinux işlemleriyle bir kullanıcı-Idsi altında çalışın. Bu kullanıcıya girebileceği tüm kaynaklara(dosyalar vs...) giriş verir. Burada 2 tane kullanıcı Idsi mevcut. Gerçek kullanıcı-IDsi ve yürürlükteki kullanıcı-IDsi. Yürürlükteki kullanıcı-IDsi dosyaya girişi belirleyendir. Aşağıdaki programı idinfo adı altında kaydedin ve çalışır hale getirin(chmod 755 idinfo).
Notları yürürlüğe koyunca yürüyen işlemin aldığı kullanıcı-ID'nizi ve group-ID'nizi göreceksiniz: yürürlükteki kullanıcı-IDsi: alice gerçek kullanıcı-IDsi: alice grup IDsi: kullanıcılar Tux sizin idinfo programınızı yürütünce tux'un ID'sinde o anda yürütülen işlemleri gösteren benzer çıktılar alır.Programın çıktısı sadece o programı yöneten kullanıcıya bağlıdır dosya sahibine değil. Güvenlik nedenleri için s-biti sadece binarilerde (derlenmiş kod) çalışır programlarda(perl programları istisnadır) çalışmaz. Bu yüzden idinfo programımızı çağıracak bir C-programı yaratırız:
Programı "gcc -o suidtest -Wall suidtest.c"ile derle ve s-bitini program sahibi üzerine yerleştir:
Programı yürüt!Ne oluştu? Hiçbir şey mi ?Farklı bir kullanıcı üzerinden yürüt! suidtest dosyaları alice'e aittir ve normalde dosya sahibi için x'in yerleştirildiği yerde s-bitine sahiptir. Bu,dosyanın çalıştıran kullanıcınınkinden ziyade dosya sahibi olan kullanıcının yürürlükteki kullanıcı-Idsi altında çalıştırılmasına sebep olur. Tux programı yürüttüğünde aşağıdaki gibi görnür:
Bu, özellikle s-biti yerleştirilmiş dosyaya root sahipse çok güçlü bir özelliktir.O zaman hiçbir kullanıcı normalde sadece rootun yapabileceği şeyleri yapamaz.Güvenlik üzerine birkaç kelime. Bir SUID programı yazdıktan sonra bu programın sadece senin planladığın amaç için kullanılabileceğinden emin ol. Her zaman zor şifrelenen hard-coded değere bir yol yerleştir. Asla kullanıcı girdisine (ayar dosyaları, stır komut tartışmaları , vs...) güvenme.Kullanıcı girdisini bit bit kontrol et ve onları göz önüne aldığın geçerli değerlerle karşılaştır. Bir SUID programı root tarafındn özelleştirildikten sonra yürürlükteki kullanıcı ve gerçek kullanıcı-ID'leri (setreuid()işlemiyle) yerleştirilebilir. Set-UID programları genelde "root" tarafından sıradan kullanıcılara normalde sadece "root" yapabileceği şeylere erişimi vermek için kullanilir. Root gibi siz de diğer bir kullanıcının makinenizde ppp-on/ppp-off programlarını çalıştırması için suidtest.c 'de e.g değişiklik yapabilirsiniz. S-bit'in grupta kullanımıS-bitine sahip çalıştırılabilir programlar dosya sahibinin group-ID si altında çalışır. Bu alt paragraftaki kullanıcı s-biti ile çok benzerdir. S-bit gruba bir dizin için konduktan sonra grup da bu dizinde yaratılan her dosya için konur. Alice 2 gruba aittir:
Normalde alice için yaratılan dosyalar grupla kullanıcılara ayarlanır. Fakat grupla bir dizin yaratılmışsa diske yerleştirilir ve s-biti gruba yerleştirilir sonra alice'in yarattığı tüm dosyalar grup ID disk: ine sahip olur.
Çok sayıda insanla takım içinde çalışmak istiyorsanız bu iyi bir özelliktir. Bu özellik dosyaların grup ID'lerinin doğru gruba yazılmasını sağlar. Bu da takımın dizinleriyle özellikle kullanıcıların normalde 027 umask'a sahip oldukları bir çevrede çalışmak içindir ki 027 umask, dosyaları grup dışındaki insanlara girilmez kılar. |