Published on

Linux Dosya ve Dizin İzinleri Nedir ? Chmod Nedir ? Yetkilendirme Nasıl Yapılır ?

Authors
  • avatar
    Name
    Alperen Önal
    Twitter

Linux'de izinler(permissions), dosyaların ve dizinlerin kimler tarafından okulabileceğini(read), yazılabileceğini(write), çalıştırılabileceğini(execute) belirler.

Yani Linux'de 3 izin türü vardır diyebiliriz :

  1. r(Read): Dosyanın içeriğini okuyabilir. Dizinde ise dosya ve dizinleri listeleyebilir.
  2. w(Write): Dosyaya veri yazabilir veya dosyayı düzenleyebilir. Dizinde ise dosya veya dizin oluşturabilir ve silebilir.
  3. x(Execute): Dosyayı çalıştırabilir. Dizinde ise dizine girebilir ve içeriği hakkında bilgi alabilir.

Bu izinler Linux kullanıcı türlerine göre ayarlanmaktadır.

Linux'de 3 tür kullanıcı vardır :

  1. User: Dosyanın veya dizinin sahibi olan belirli bir kullanıcıdır. Bir kullanıcı bir dosya veya dizin oluşturulduğu zaman varsayılan olarak bu ilgili nesnenin sahibi olur.
  2. Group: Birden fazla User'in bir arada oluşturduğu gruplardır.
  3. Others: Dosyanın sahibi olmayan ve dosyanın grubuna dahil olmayan tüm diğer kullanıcıları ifade eder.

Linux'de bash'e ls -l komutunu yazarak bulunduğunuz dizindeki dosyaların, dizinlerin izinlerini ve ne zaman kimin tarafından oluşturulduğu gibi detayları görebilirsiniz.

Linux'de dosya izin formatı şu şekilde olacaktır :

-(1)---(3)---(3)---(3)
İlk karakterdir dosya türünü belirlemektedir.[2, 4] aralığında olan hanelerdir.[5, 7] aralığında olan hanelerdir.[7, 9] aralığında olan hanelerdir.
_ -: Bu, düz (regular) bir dosya olduğunu gösterir._ d: Dizin (directory)_ l: Sembolik bağlantı (symbolic link)_ b: Blok cihaz (block device)_ c: Karakter cihaz (character device)_ p: Adlandırılmış boru (named pipe)* s: Soket (socket)User izinlerini belirtir.Group izinlerini belirtir.Others izinlerini belirtir.

Örnek olarak :

-r-xr-xr-xalperenalperen0Jul 6 05:48Dosya Adı
Bu, düz (regular) bir dosya olduğunu gösterir._ Kullanıcı izinleri: r-x (Okuma ve çalıştırma izni, yazma izni yok)_ Grup izinleri: r-x (Okuma ve çalıştırma izni, yazma izni yok)* Diğerleri izinleri: r-x (Okuma ve çalıştırma izni, yazma izni yok)Dosyanın sahibini gösterir. Bu durumda dosyanın sahibi alperen kullanıcısıdır.Dosyanın grubunu gösterir. Bu durumda dosyanın grubu alperen grubudur.Dosyanın boyutunu bayt cinsinden gösterir. Bu durumda dosya 0 bayt boyutundadır, yani dosya şu anda boş.Dosyanın son değiştirilme tarihini ve saatini gösterir. Bu durumda dosya 6 Temmuz tarihinde, 05:48 saatinde değiştirilmiştir.Dosyanın adını gösterir. Bu durumda dosyanın adı metin.txtdir.

Linux'de Dosya ve Dizinlere Yetki Atama

chmod [sayi] [dosya/dizin]

Sayı yerine her rwx dizisinin octal karşılıkları yazılır. Daha sonra dosya izinlerini nasıl manipüle etmek istiyorsak ona göre octal sayılar gireriz. Buradaki sayı kısmı 3 haneli bir sayı olacaktır. Bu sayının her bir octal hanesinin binary karşılıklarını yazarız. Veya buradan elimize geçen 3 binary'i sırasıyla rwx ile karşılaştırırız. 1 gelen izin verirken 0 gelen izin vermez. [dosya/dizin] kısmına, ilgili dosya veya dizin yazılır.

Örneğin : metin.txt isimli bir dosyamız olsun. Ben, kullanıcının okuyabilmesini ve çalıştırabilmesini ancak yazamamasını istiyorum. Grubun ise okuyabilmesini ancak yazamaması ve çalıştıramamasını istiyorum. Diğer kullanıcıların da okuyamamasını ancak yazabilmesini ve çalıştırabilmesini istiyorum. (ÖZETLE şunu istiyorum : -r-xr---wx )

Bunun için chmod sayi metin.txt komutunu yazmalıyım ancak buradaki sayi ne olmalı ?

sudo chmod 543 metin.txt yani 543 olması gerektiğini buluyoruz.

ls -l yazdığımızda karşılaştığımız :

Bu yazımız bu kadardı umarım faydalı olmuştur :)