Linux Dosya Izinleri

Linux Dosya İzinleri

###Erişim hakları

  • Okuma izni: Dosyanın okuma izni varsa içeriği görüntülenebilir, dizinin okuma izni varsa içerdiği dosyaların listesi alınabilir.

  • Yazma izni: Dosyanın yazma izni varsa dosya değiştirebilir veya silinebilir. Dizine yazma izni verildiğinde dizin altındaki dosyalar yazılabilir veya silinebilir.

  • Çalıştırma izni: Dosyayı çalıştırma hakkını verir.

Erişim haklarının dışında bir dosyanın üç izin düzeyi daha vardır. Bunlar, dosyanın sahibi, dosyanın grubu ve diğer kullanıcılardır. Dosyanın sahibi, o dosyayı oluşturan kişidir. Her kullanıcının bir grubu da olduğu için, dosya oluşturulurken kullanıcı hangi grupta ise dosya da o gruba ait olacaktır. Dosyanın sahibi olmayan ve grubu da dosyanın grubuyla uyuşmayan sistemdeki kullanıcılar diğer sınıfına girerler.

###Dosya izinlerinin değiştirilmesi Dosya izin bilgilerini görebilmek için ls komutu, -l parametresiyle kullanılır. Yani ls -l komutu ile dosya izinlerini görebiliriz. Aşağıdaki dosyanın erişim haklarına bakacak olursak;

-rwxr-xr-x 1 may may 0 2011-08-06 21:09 test

Dosyanın en sol kısmında izin hakları yer alır. Bu dosyanın izin hakkı -rwxr-xr-x’ dır. En baştaki - işareti dosyanın düz dosya olduğunu belirtir. may bu dosyanın sahibidir. Ardından sırayla uzunluk, dosyanın son değiştirilme tarihi ve dosya ismi bilgileri görüntülenir.

İzinlerde r,w ve x karakterleri sırayla okuma, yazma ve çalıştırma haklarını belirtir. En soldaki - işaretini ayırdığımız zaman geri kalan harfleri üçlü grup haline getirirsek sırasıyla birinci harf kümesi dosya sahibinin izinlerini, ikinci harf kümesi grup izinleri ve son küme de diğer kullanıcıların izinlerini belirtir. Buna göre yukarıdaki dosyada:

  • rwx: kullanıcı okuyabilir, yazabilir, çalıştırabilir
  • r-x: grup okuyabilir, çalıştırabilir fakat yazamaz.
  • r-x: diğerleri okuyabilir, çalıştırabilir fakat yazamaz.

Sol baştaki karakter d olsaydı, bir dizin inceliyor olacaktık. Dosyanın izinlerini değiştirmek için chmod komutu kullanılır. Bu komutu kullanırken hangi izin düzeyine (kullanıcı, grup veya diğerleri) hangi izinlerin verileceği veya kaldırılacağı yazılır. Yukarıdaki dosyanın okuma iznini kaldıracak olursak;

$ chmod -r test

komutu kullanılabilir. - işareti, iznin kaldırılacağını belirtir. İzin vermek için ise + yazılır. Sadece grubun, sadece kullanıcının veya sadece diğerlerinin erişim hakkını değiştirebilmek için her izin düzeyi için bir harf tanımlanmıştır. Kullanıcı için u, grup için g ve diğerleri için o yazarak belirli bir izin düzeyi için erişim hakkını değiştirmek mümkün olur. Bu üç harf, izinden hemen önce yazılır.

$ chmod u+x test (dosyanin sahibi calistirabilir)

$ chmod o+r test (digerleri okuyabilir)

$ chmod g-w test (dosyanin grubu yazamaz)

Her izin için sayılar da tanımlanmıştır. Dosyanın erişim izinlerini değiştirmek için her izne ait sayıları kullanabilirsiniz. Aşağıdaki tabloda, her izin düzeyi için üçer tane olmak üzere toplam 9 sayıdan oluşan izin numaraları gösterilmiştir. Bir izni vermek için sırayla numaraları toplanır. Örneğin; sahibinin okuması (400), yazması (200), çalıştırması (100), grubun okuması (40), çalıştırması (10) ve diğerlerinin okuması (4) ve çalıştırması (1) için kullanılan rakamların toplamı 755’ tir.

1

$ chmod 755 test

komutu ile yukardaki izinleri test dosyasına uyarlamış olduk.

###Dosyanın sahibinin ve grubunun değiştirilmesi Bir dosyanın sahibini sadece sistemdeki root kullanıcı değiştirebilir. Dosya sahibinin değiştirilmesi için chown komutu kullanılır. Yukarıdaki dosyanın sahibini may1 isimli kullanıcı yapacak olursak;

$ chown may1 test

chown komutu bu şekilde kullanılır. chgrp komutu ile de dosyanın grubu değiştirilebilir. Yukarıdaki dosyanın grubunu www yapmak için;

$ chgrp www test

chgrp komutu bu şekilde kullanılır…