LANGUAGE TRANSLATE

English French German Spain Italian Dutch Russian Portuguese Japanese Korean Arabic Chinese Simplified

11 Şubat 2012 Cumartesi

DOSYA VE DİZİN İŞLEMLERİ-3


Dosya ve Dizinlerin İzinlerini Ayarlamak
Dizin ve dosyalar erişim haklarının belirlenmesi için izinler kullanılmaktadır. Linux işletim sisteminde izinler 3 farklı grup olarak verilebilmektedir :
  • Dosyanın sahibinin izinleri
  • Dosyanın grubunun izinleri
  • Diğer kullanıcıların izinleri
    Dosyaların ve dizinlerin sahip olduğu izinleri görmek için ls komutu kullanılmaktadır. 
    [root@atlas /root]# ls -ld Projects/
    drwxr-xr-x 3 root root 4096 Aug 25 2000 Projects/
    [root@atlas /root]# ls -l smb.conf
    -rw-r--r-- 1 root users 10852 Jun 30 2000 smb.conf
     İzinler ls çıktısında ilk kısımda belirtilirmekte ve 4 ayrı kısımdan oluşmaktadırlar. Bu kısımlar :
  • Dosyanın tipini belirten kısım :
İzin kısmının başında bulunan kısımmdır. Bu bilgi kullanılarak dosyanın sade bir dosya , dizin , aygıt sürücüsü , veya link öğrenilebilmektedir.
    • Normal dosyalarda – işareti gözükmektedir.
    • Dizinler için d işareti gözükmektedir.
    • Başka bir dosyayı işaret eden link’ler için l işareti gösterilmektedir.
  • Dosyanın Sahibinin haklarını belirten kısım : Bu kısımda dosyanın sahibinin dosya üzerindeki hakları tanımlanır.
  • Dosyanın grubunun Haklarını belirten kısmı : Bu kısımda dosyanın dahil olduğu grubun dosya üzerindeki hakları tanımlanır.
  • Diğer kullanıcıların hakları : Sistemde bulunan tüm kullanıcıların dosya üzerindeki hakları tanımlanır.
Erişim hakları, Linux dosya sistemi güvenliğinin belkemiğini oluşturur. Her dosyaya ayrı verilebilen erişim izinleri sayesinde çok daha rahat bir sistem yönetimi gerçekleştirilebilir. Bu, konuya sadece sistem görevlisi tarafından yaklaşıldığı zaman çıkartılabilecek bir sonuçtur. Kullanıcı bazında erişim hakları bazen daha da anlamlı olabilir. Yanlış kullanıldığında hoş olmayan süprizlere yol açabilir. Linux altında üç çeşit erişim hakkı vardır :
  • (r) Okuma izni : Dosyanın okuma izni varsa içeriği görülebilir, dizinin okuma izni varsa içerdiği dosyaların listesi alınabilir.
  • (w) Yazma izni : Dosyanın yazma izni varsa dosyayı değiştirebilir veya silebilirsiniz. Dizine yazma izni verildiğinde dizin altındaki dosyalar yazılabilir veya silinebilir.
  • (x) Çalıştırma izni : Dosyayı çalıştırma hakkını verir.


Her üçlü aynı kalıptadır. Her üçlünün ilk pozisyonunda bir r harfinin varlığı, ilgili kullanıcının dosyayı okuma yetkisinin bulunduğunu gösterir. Bu pozisyonda bir eksi işareti varsa, söz konusu kullanıcı tipi için okuma yetkisi olmadığı anlaşılır.

Bu mantıkla,

r : Okuma yetkisi, ( read access )
w : Yazma yetkisi, ( write access)
x : Dosya bir program dosyası ise, programı çalıştırma yetkisini gösterir. ( execute access )



Kullanıcıların hakları bu işlemlerden hangilerini yapmaya yetkili olduklarına göre değişmektedir. Yukarıda gösterdiğimiz ls çıktısını göz önüne alalım :


 

İzinlerin başında bulunan – işaretinden dosyanın sıradan bir dosya olduğu anlaşılmaktadır. Kullanıcılar dosyalar üzerinde 3 farklı işlem yapabildiklerinden dosya üzerindeki hakları 3’lü gruplar olarak gösterilir. Dosyanın sahibi olan “root” kullanıcısının dosya üzerinde okuma ve yazma hakkı bulunmaktadır. Çalışma izni olmadığı için bu izinin belirtildiği kısımda – karakteri gözükmektedir. Dosyanın dahil olduğu grup olan “users” grubuna dahil kullanıcıların dosya üzerinde sadece okuma izni bulunmaktadır. Sistemdeki tüm kullanıcılar da dosya üzerinde okuma hakkına sahiptirler.
Dizinler için çalıştırabilme hakkı , dizine geçip geçememek anlamına gelmektedir. Dizin için çalıştırma hakkına sahip olan bir kullanıcı o dizine geçebilmektedir.
Dosya ve dizinlerin izinleri sahipleri tarafından değiştirilebilmektedir. İzinlerin değiştirilmesi amacıyla chmod komutu kullanılmaktadır. 
Chmod komutu 2 farklı şekilde çalıştırılabilmektedir :
  • Yeni izinin sayısal değerinin verilmesi ile
  • Yapılacak değişiklik sembolik olarak verilmesi ile
İzinler 3 farklı grubun dosya üzerinde 3 farklı işlevden hangilerini yapabileceklerini belirtir. Her grup tek başına ele alınıp izinlerin değerleri toplanarak sayısal değerler elde edilir.
rw-r--r-- iznini ele alalım :
·        Dosyanın sahibinin hakları :
o       Verilen haklar için 1 verilmeyen haklar için 0 konularak izinin 2’li düzendeki görüntüsü elde edilir.
o       2’li tabandaki sayı 10’luk tabana çevirilerek izinin sayısal değeri elde edilir.
Bir dosyanın kullanıcısına tüm hakları , grubuna okuma diğer kişilere ise hiç bir hak vermemek için chmod komutu aşağıdaki şekilde kullanılır. 
Kullanıcıya Tüm İzinler
rwx
111
7
Gruba Okuma
r--
100
4
Diğer kullanıcılara hiç hak verilemesi
---
000
0
NOT:BİR DOSYA VEYA DİZİNİN ERİŞİM YETKİLERİNİ SADECE DOSYANIN    
         SAHİBİ VE ROOT KULLANICISI DEĞİŞTİREBİLİR.
       
chmod 740 dosya_ismi
İzinlerin ayarlanması için chmod komutuna verilecek parametreler sembolik olarak da verilebilmektedir. Sembolik gösterimde izinler üzerinde yapılacak değişiklikler semboller vasıtasıyla gösterilmektedir.
Kullanıcı grublarının sembolleri aşağıdaki gibidir :
  • Dosyanın sahibi : u (user)
  • Dosyanın Grubu : g (group)
  • Diğer Kullanıcılar : o (others)
İzinlerin sembolleri aşağıdaki gibidir :
  • Okuma izini : r (read)
  • Yazma izini : w (write)
  • Çalıştırma izini : x (execute)
Dosya üzerinde izinleri vermek için + , izinleri çıkarmak için – sembolleri kullanılmaktadır.


Örnekler :
Herkese okuma izni vermek
chmod +r dosya_ismi
Dosyanın sahibine tüm hakları vermek
chmod u+rwx dosya_ismi
Diğer kullanıcıların tüm yazma ve çalıştırma hakkını kaldırmak
chmod o-wx dosya_ismi
Dosya sahibine tüm haklar , gruba okuma , diğer kullanıcılara okuma haklarını vermek
chmod u+rwx,g+r,o+r dosya_ismi

Dosyanın sahibini değiştirmek için kullanılan chown komutunun temel yapısı aşağıdaki gibidir :

#chown kullanıcı_ismi dosya_ismi
Bir dosyanın sahibini sadece sistemdeki root kullanıcı değiştirebilme yetkisine sahiptir. Dosya sahibinin değiştirilmesi için chown komutu kullanılabilir. deneme dosyasının sahibini ozgur isimli kullanıcı yapalım.

# chown ozgur deneme

Dosyanın yeni hali şöyle olur :

-rwxr-xr-x 2 ozgur users 182 Feb 12 03:58 deneme

chgrp komutu yardımıyla da dosyanın grubunu değiştirilebilir. Yukarıdaki dosyanın grubunu www yapmak için,

# chgrp www deneme

komutu kullanılabilir. chown komutu, dosyanın hem kullanıcısını, hem de grubunu değiştirme özelliğine sahiptir. chown komutundan sonra kullanıcı ve grup isimlerini aralarında bir nokta kalacak şekilde yazın.

$ chown ozgur.www deneme
$ ls -l deneme
-rwxr-xr-x 2 ozgur www 182 Feb 12 03:58 deneme

Dosyanın grubunu değiştirmek için chgrp komutu kullanılmaktadır. İkinci kullanım şeklinde dosyanın sahibi ile birlikte grubu da değiştirilmektedir. Dosyanın sadece grubu değiştirilmek istendiğinde chgrp komutu kullanılmaktadır. Bu komutun temel yapısı aşağıdaki gibidir :

chgrp grup_ismi dosya_ismi
ALINTIDIR.
KAYNAK:www.belgeler.org