Linux Dosya ve Dizin İzinleri

Linux türevi işletim sistemlerinde dosya ve dizin izinleri ile ilgili bilgiler yer almaktadır.

Linux’ta her şey bir dosya olduğundan dosya ve dizin izinleri önemlidir.

Linux sisteminde dosya ve dizinlerle işlem yaparken, dosyanın çalıştırılabilmesi, kopyalanabilmesi vb. işlemler dosya ve dizin izinlerinden anlaşılır.

Dosya ve dizin izinlerini öğrenme

Dosya ve dizin izinlerini öğrenmek için ls komutu ve l parametresi kullanılır.

ls -l

Diğer bir yöntemde stat komutunun kullanılmasıdır.

stat -c "%a %n" *

Dizin listeleme komutunun ilk birinci bölüm izinlerle ilgili bölümdür.

İzin bölümündeki ilk harf dosya tipini, diğerleri ise izinleri ifade eder.

Dosya tipi harfi d ise dizin, tire (-) ise dosya olduğunu belirtir.

İzinler dosya sahibi yetkileri, dosyanın sahibiyle aynı grupta bulunan kullanıcıların yetkileri ve diğer kullanıcıların yetkileri olmak üzere 3 bölümden oluştur.

İzinlerin harf karşılığı aşağıdaki gibidir.

r – okuma yetkisi (read)
w – yazma yetkisi (write)
x – çalıştırma yetkisi (execute)

Örneğin; Aşağıdaki dosya izinlerini inceleyelim.

-rw-r--r--

En baştaki tire (-) işaretinden dosya olduğu anlaşılır.

Daha sonra diğer ifadeler üçerli parçalara ayrılır.

rw- r-- r--

İzin değerlerini incelenirse

rw- – dosya sahibinin okuma ve yazma izni olduğunu,

r– – dosya sahibiyle aynı grubun sadece okuma izni olduğunu,

r– – diğer tüm kullanıcıların sadece okuma izni olduğunu ifade eder.

Dosya ve dizinlere izin verme

Dosya ve dizinlere izin vermek için chmod komutu çeşitli şekilde kullanılabilir.

chmod u/g/o/a +/=/- r/w/x

Komut parametresindeki değerler

  • u – dosya sahibini (user)
  • g – dosya sahibinin grubunu (group)
  • o – diğer kullanıcıları (others)
  • a – tüm hakları (a)
  • + – yetki ekleme
  • = – yetki eşitleme
  • – yetki çıkarma
  • r – okuma yetkisi (read)
  • w – yazma yetkisi (write)
  • x – çalıştırma yetkisi (execute)

ifade eder.

Diğer kullanıcılara yazma izni verir.

chmod o+r <dosya>

veya

chmod o=r <dosya>

Dosya sahibine, dosya sahibinin grubuna ve diğer kullanıcılara yazma ve okuma izni verir.

chmod ugo+rw <dosya>

Herhangi bir kullanıcı bölümü belirtilmediğinde ifade tüm bölüm için çalışır.

chmod +rw <dosya>

Diğer bir kullanımda stat komutunun çıktısında olduğu gibi sayıların kullanılmasıdır.

stat -c "%a %n" *

Komut çıktısındaki sayısal ifadeler aşağıdaki şekilde oluşur.

4 – okuma (read)
2 – yazma (write)
1 – çalıştırma (execute)
0 – yetki alma

Birden fazla izin verileceği zaman verilecek olan izinler toplanır.

İlk rakam dosyanın sahibinin izinlerini, ikinci rakam dosyanın sahibiyle aynı grupta bulunan kullanıcıların yetkilerini, üçüncü rakam diğer kullanıcıların yetkilerini ifade eder.

chmod 644 <dosya>

Dosya sahibi 4 + 2 = 6 okuma ve yazma iznine sahiptir.

Dosya sahibiyle aynı grup 4 = 4 sadece okuma iznine sahiptir.

Diğer kullanıcılar 4 = 4 sadece okuma iznine sahiptir.

chmod 755 <dosya>

Dosya sahibi 4 + 2 + 1 = 7 okuma, yazma ve çalıştırma iznine sahiptir.

Dosya sahibiyle aynı grup 4 + 1 = 5 okuma ve yazma iznine sahiptir.

Diğer kullanıcılar 4 + 1 = 5 okuma ve yazma iznine sahiptir.

Dosya ve dizin sahibini değiştirmek

Dosya sahibini değiştirmek için chown komutu kullanılır.

chown <kullanici> <dosya_dizin>

Değişikliği tüm dizin ve dosyalarda yapmak için R parametresi kullanılır.

chown -R <kullanici> <dosya_dizin>

Komut linux tabanlı sunucu sistemlerinde sıklıkla kullanılır.

Dosya sahibini ve grubunu değiştirmek için kullanici:grup biçiminde kullanılır.

chown -R <kullanici>:<grup> <dosya_dizin>

Dosya ve dizin gurubunu değiştirmek

Dosya grubunu değiştirmek için chgrp komutu kullanılır.

chgrp <grup> <dosya_dizin>

Temel dosya ve dizin komutları bunlar olmakla birlikte chroot, chattr gibi komutlarda mevcuttur.

Linux Derslerine buradan ulaşabilirsiniz…

Hayırlı günler dilerim.

Yusuf SEZER

Yusuf SEZER

Computer Engineer who interested about web technologies, algorithms, artificial intelligence and embedded systems; constantly exploring new technologies.


Bunlara'da bakmalısın!