« Önceki |

31/10/2007

Linux'ta Yetkiler (man chmod)

chmod - Dosya ve dizinlere erişim yetkilerini değiştirmek için kullanılır.İzin modlarını iki türlü ifade etme olanağı vardır. Bunlardan birincisi sekizlik sisteme (octal) göre tanımlama, ikincisi ise sembolik tanımlama şeklindedir. Sekizlik sisteme göre:


chmod [-R][-h][-f] izin kodu {dosya...|dizin...}


Yetki tanım grupları aşağıdaki gibi sayısal birer değerle eşleştirilir:


 r    :  4
 w   :  2
 x   :   1

Bu eşleştirmeler dosya/dizin sahibi (owner),grup ve diğerleri (others) için ayrı ayrı yapılır.



Sembolik Tanımlama:

chmod [-R][-f][-h][[u][g][o][a]]{{-|+|=}[r][w][x][s]} {dosya...|dizin...}


Bu formda chmod komutu sembolik harflerle kullanılır.Bunlar:



İzin değişiminin kiminle ilgili olduğu:

u: dosya/dizinin sahibi (user)

g: dosya/dizinin sahibiyle aynı grupta olanlar (group)

o: diğer kullanıcılar (others)

a: herkes (all)



İzinler üzerindeki işlemler için:

+: yetki ekleme

=: yetki eşitleme

-: yetki çıkarma


İzinlerin sembolleri:

r: okuma yetkisi (read)

w: yazma yetkisi (write)

x: çalıştırma yetkisi (execute)

s: programı çalıştıran kullanıcıların,progam çalıştığı

sürece ve sadece bu programla ilgili komutlar açısından,

program dosyasının sahibinin yetkilerine sahip olmalarını

sağlar.


Seçenekler


-f

Geçersiz izinler ve kullanım cümleleri dışında bütün hata

mesajlarını ihmal eder.




-h

Sembolik link tarafından gösterilen dosya veya dizinler

için mod değişimini ihmal eder.


-R

Tekrarlı olarak dizinlere iner.-R seçeneği her bir dizinin

ve belirlenmiş bir şablona uyan bütün dosyaların dosya modu

bitlerini değiştirir.



Örnekler



Örnek1:


“prog” isimli dosyanın erişim yetkilerinin rwxr-x—x olması isteniyor.Bu yetki kalıbı üçer üçer ayrılmış olarak düşünülüp (rwx r-x--x),yukardaki eşleştirmelere göre verilmek istenen yetkilere karşılık gelen sayılar üçer üçer toplanır ve elde edilen üç rakam yan yana

getirilip üç basamaklı bir sayı elde edilir.


Başka bir deyişle:


Dosya sahibi için: 4+2+1 =7

Grup için: 4+0+1 =5

Diğer kullanıcılar için: 0+0+1 =1


Elde edilen üç basamaklı sayı =751




Örnek2:

prog isimli dosyanın sahibine okuma,yazma ve çalıştırma; grubuna ve diğerlerine de yalnızca

çalıştırma yetkisi vermek için yazılması gereken kod.


$chmod 711 prog

veya

$chmod go-rw prog




Örnek3:

func.txt isimli dizinin altındaki f1.dat isimli dosyanın sahibine ve grubuna okuma,yazma,çalıştırma;

diğerlerine de okuma ve çalıştırma hakkı vermek için yazılması gereken komut satırı:


$chmod 775 func.txt/f1.dat

veya

$chmod o-w func.txt/f1.dat






Örnek4:

Birden çok dosyada değişiklik yapmak için; Örnek olarak pro1 ve pro2 isimli dosyaların gruplarına

okuma(read) izni verelim.

$chmod g+r pro1 pro2




Örnek5:

Bir defada birden çok izin değiştirmek için:



$chmod go-w+x deneme.htm


Bunu ayrı ayrı yazmak istersek:


$chmod g-w deneme.htm

$chmod g+x deneme.htm

$chmod o-w deneme.htm

$chmod o+x deneme.htm


kodlarını yazmamız gerekir.



kaynak : http://wiki.linux-sevenler.org/index.php/MAN_chmod

22/10/2007

SELinux Linux güvenlik modeli konusundaki tartışmalar

Security Enhanced Linux, Linux için ana güvenlik iskeleti olarak mı tayin edilmeli?

Çoğu güvenlik uzmanı SELinux'un yüksek kalitesi konusunda fikir birliğinde olsa da taraflar bu iskelet'in (framework) açık kaynak kodlu işletim sistemi kernel'i için tek gerekli olan framework olup olmadığını tartışıyorlar. Aslında SELinux, geliştiricilerin Linux için kendi güvenlik iskeletlerini inşa edebilmelerini sağlayan LSM (Linux Security Module) ihtiyacını ortadan kaldırabilir.

Ve bu fikir Linux Torwalds'ı kızdırmış görünüyor.
"Şu an "SELinux = herşey" olduğu için LSM'yi kaldırmak ile ilgili tartışmalar görüyorum" diyor ve memnuniyetsizliğini ifade edecek şekilde büyük harflerle "BU BİR PROBLEM" diyor.

İlk olarak amerikan Ulusal Güvenlik Ajansı tarafından geliştirilen SELinux, kullanıcıların atandıkları güvenlik seviyeleri için etiketlenen servisleri kullanmasını zorunlu kılan, zorunlu (mandatory) erişim kontrolünün bir şekli.

Tartışma bu ayın başlarında Red Hat SELinux geliştiricisi James Morris in Linux kernel eposta listesine bir teklif yazması ile oldu. Gönderdiği mesajda SELinux'un Linux için de facto güvenlik iskeleti olması gerektiğini yazan James Morris bunun LSM ihtiyacını kaldıracağını belirterek kernel ağacından kaldırılması için çağrı yaptı.

Morris'in şikayeti LSM'in Linux güvenliği için bir engel olduğu. Mesajında "kötü fikirler için bir mıknatıs" olduğunu da yazmış.

Novell'in AppArmor'u ve açık kaynak kodlu Smack gibi diğer Linux güvenlik iskeletleri LSM tabanlı.

Morris "Eğer LSM kalırsa, güvenlik hiçbir zaman kernel'in birinci sınıf vatandaşı olamayacak. Uygulama geliştiriciler birden fazla güvenlik şeması görecekler ve ya bunları desteklemek için büyük zorluklar çekecekler ya da daha yakın bir ihtimalle, gözardı edecekler".

Torvalds'ın da içinde olduğu diğerleri ise LSM'in kernel'den çıkarılması için bir ihtiyaç görmüyorlar.

Dün gece, bir başka geliştirici Thomac Fricaccia bu konuda aşağıdaki mesajı yazmış:
"özgür ve açık bir işletim sistemi son kullanıcıya mümkün olduğunda özgürlük sağlamalı. ... Bu özgürlüğe kendisi için kötü olabilecek şeyler yapmak da dahil, örneğin, güvenlik iskeletlerinde kötü seçim yapmak. Bu olası ve izin verilen sonuç kernel geliştiricilerin endişesi olmamalı".

Bazıları Morris'in bu çağrısını tüm Linux güvenlik geliştirme çabalarını SELinux'a odaklamak için bir taktik olduğunu düşünüyor.

Mesaj listesinde, Torvalds mantıklı bir argüman olacağından şüphe duysa da LSM'in neden kaldırılması gerektiği konusundaki tartışmalara açık olduğunu yazmış. SELinux taraftarlarını sadece teorik alanda tartışma yapmakla suçluyor. Ayrıca hala iyi bir iskeletin nasıl olması gerektiği konusunda çok sayıda tartışma gördüğünü belirtiyor:
"Güvenliğe gelindiğinde, pek çok kişinin İDİYOTİK argümanlar yarattığını görüyorum. Örneğin, hala 'inodes' 'pathnames' konusunda güvenlik tartışmaları sürüyor. Kimisi birinin olması gerektiğini söylerken diğeri aksini söylüyor."

Kaynak: http://www.gcn.com/online/vol1_no1/45236-1.html