Blog

Linux Dosya ve Dizin Yetkileri


Bu yazım Linux sistemlerde dosya ve dizin erişimlerindeki yetkiler ve bu yetkilerin değiştirilmesi, düzenlenmesi hakkında olacaktır.

ERİŞİM HAKLARI

Bildiğimiz üzere Linux dosya yapısı MS-DOS ‘ta olduğu gibi hiyerarşik bir yapıya sahiptir.Bu yapının güvenliğini sağlamak için belli başlı dosya izinleri yapısı kullanılmıştır.

Her dosyaya erişim izinlerinin ayrı ayrı verilebilmesi sayesinde daha kolay bir sistem yönetimi gerçekleştirilir.Bu kısım daha çok sistem yöneticileri için bir avantajır.

Kullanıcı bazında düşündüğümüzde kullanıcı izinleri bazen çok daha faydalı ve anlamlı olabilmektedir.Örneğin bir sistem birden fazla son kullanıcının erişimine açık ise burada sistem yönetiminde dosya ve dizin izinleri düzenlenerek sistemcel bir facia engellenebilir yada basit olarak sistem kötü etkilere karşı koruma altına alınmış olur.Bu bir güvenlik önlemidir.

Linux sistemlerde üç çeşit erişim hakkı mevcuttur;

  1. Okuma İzni : Dosya okuma iznine sahipsek dosyanın içeriğini görebiliriz,dizin okuma yetkisine sahipsek dizinin içerisinde barındırılan dosyaların listesine erişebiliriz.
  2. Yazma İzni : Dosya yazma iznine sahipsek dosyayı değiştirebilir yada silebiliriz, Dizin yazma isnine sahipsek dizin içerisindeki dosyalar yazılabilir ve silinebilir.
  3. Çalıştırma İzni : Dosyayı çalıştırtırabiliriz demektir

Bir dosya veya dizin ilk oluşturulduğunda Linux Sistem tarafından varsayılan olarak bazı izinlere sahip olabir.Bu izinler genellikle okuma ve çalıştırma izinleridir.

Dosyayı oluşrurken bu varsayılan izinleri kullanmadan umask sayesinde kendi istediğiniz erişim yetki kalıbınızı oluşturabilirsiniz.

Komut hakkında detaylı bilgiye ulaşmak için aşağıdaki komutu kullanabilirsiniz.

man umask

Dosya erişim haklarının dışında bir dosyanınüç izin düzeyi vardır.Bunlar;

  1. Dosyanın Sahibi
  2. Dosyanın Grubu
  3. Diğer Kullanıcılar

şeklinde ayrılmaktadır.

 

-rwxrwxrwx

En baştaki “-” dosya olduğunu belirtir.

drwxrwxrwx

En baştaki “d” dizin olduğunu belirtmektedir.

  • r (read) okuma yetkisi
  • w (write) yazma yetkisi
  • x (executable)

 

  • Dosya/Dizin değişkeninden sonraki üçlü Kullanıcı Yetkileri bloğu, ortadaki üçlü Grup Yetkileri bloğu, son üçlü ise Diğer Kullanıcı yetkileri bloğudur.
DOSYA/DİZİN YETKİLERİNİN DEĞİŞTİRİLMESİ

chmod [ugoa] [+-] [rwxst] [dosya/dizin_adı]

  • u     dosya/dizin sahibi
  • g     dosya/dizin sahibiyle aynı grupta yer alan kullanıcılar
  • o     diğer kullanıcılar
  • a     herkes
  • +     yetki ekleme
  • –     yetki çıkarma
  • r     okuma yetkisi   ( Sayısal karşılığı = 4 )
  • w     yazma yetkisi   ( Sayısal karşılığı = 2 )
  • x      çalıştırma yetkisi  ( Sayısal karşılığı = 1 )
  • s     suid biti
  • t     sticky biti

Not: rwx = 7   (tüm izinlerin aktif olmasının sayısal karşılığı = 7)

 

  • Rekürsif olarak alt dizin ve dosyalarında yetkilerini değiştirmek

chmod -R [yetki] [dosya/dizin_adı]

 

  • Bir dosyayı değiştirilemez yapmak.(Kilitlemek)

chattr +i [dosya/dizin_adı]

 

  • Dosyaları Kontrol Etmek

lsattr

 

Suid Biti Nedir ?

Suid biti sistem var olan normal kullanıcıların ancak ROOT yetkisiyle erişilebilen dosyalara erişebilmesini sağlamak amacıyla dosyalara verilen yetkiye verilen addır.

 

  • Sistemde suid bitine sahip olan dosyaları arama

find /[hedef_dizin] -perm -4000

 

  • Dosya izinlerinin gösterilerek dosyaların listelenmesi

ls -l

 

Aşağıdaki örnek üzerinden dosya erişim izinlerini inceleyelim

-rw-r–r– 1 hasan users 85 Sep 4 17:37 agent.php

Dosya bilgisinin en sol kısmında erişim izinleri kısmı yer alır.En baştaki “-” karakteri düz dosya olduğunu belirtir.
“hasan” dosyanın sahibi, “users” ise dosyanın grubudur.Sonrasında ise sırasıyla uzunluk,son değiştirilme tarihi ve dosya ismi gibi bilgiler yer almaktadır.
En baştaki “-” işaretini ayırıp geri kalan harfleri üç adet üçlü gruplar haline getirelim ve inceleyelim.

rw-      r–      r–

ırayla 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. Bu bilgiler dahilinde yukarıda dosyada

  •  r w –  :  Dosya sahibi okuyabilir,yazabilir fakat çalıştıramaz
  •  r – –    :  Grup okuyabilir fakat yazamaz ve çalıştıramaz
  •  – – –    :  Diğer kullanıclar okuyamaz,yazamaz ve çalıştıramaz

 

Yurıdaki dosyanın okuma iznini kaldırmak istersek

chmod -r agent.php

komutuyla bu işlemi gerçekleştirebiliriz.

 

  • Dosya/Dizin erişim izinlerinin sayısal değer örnekleri

400 dosyanın sahibi okur

200 dosyanın sahibi yazar

100 dosyanın sahibin çalıştırır

 

040 dosyanın grubu okur

020 dosyanın grubu  yazar

010 dosyanın grubu çalıştırır

 

004 diğerleri okur

002 diğerleri yazar

001 diğerleri çalıştırır.

 


 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir