Linux’da, dosya ve klasörlere erişim kontrolü ve kimlik doğrulama, kullanıcılar arasında güvenliğin sağlanması ve verinin gizliliğini korumak adına oldukça önemlidir. Linux dosya izin sistemini üç ana başlıkta incelenebilir: dosya sahibi, grup ve diğerleri.

Bizim bu yazımızda ki ana amacımız Linux sistemlerindeki var olan izinleri öğrenmektir.

Linux, çoklu kullanıcı bir işletim sistemidir ve birden fazla kullanıcı, aynı anda sisteme erişebilmektedir. Linux’un bu esnekliği bazen istenmeyen durumlara veya tehlikelere yol açabilmektedir. Bu özellik üzerinden kötü niyetli kullanıcılar önemli verileri değiştirebilir veya silebilir.

Bu tip durumları önlemek için Linux işletim sistemi, yetkilendirme sistemini “Dosya sahipliği” ve “Yetkilendirme” olarak ikiye ayırmıştır. Dosya sahipliği ise kendi içerisinde üçe ayrılmıştır. Bunlar;

  • Kullanıcı Grupları (User Group),
  • Diğer Kullanıcılar (Other User)
  • Sahip (Owner)

Varsayılan olarak, bir dosya oluşturulduğunda, dosyayı oluşturan kullanıcı doğrudan “owner” yetkilerine sahip olmaktadır.

Kullanıcı grupları ise içerisinde birden fazla kullanıcı barındabilirler. İlgili gruba ait dahil olan tüm kullanıcılar, o grubun yetkili olduğu dosyalara eşit seviyede haklara sahiptir. Eğer bir grubun, bir dosyayı sadece okuma yetkisi varsa, o gruba dahil tüm kullanıcılarda o dosyanın okuma yetkisine sahiptir. Yine aynı şekilde eğer, o grubun ilgili dosyayı değiştirme yetkisi varsa, o gruba dahil tüm kullanıcılarda ilgili dosyayı değiştirme yetkisine sahiptir.

Eğer bir konumda ki dosya ve dizinleri detaylı bir şekilde görmek isterseniz aşağıda ki komutu kullanabilirsiniz;

ls -lsa

Komutu inceleyecek olursak;

  • ls: Dizin içeriğini listeler
  • -l: İzinler, sahiplik, boyut ve değiştirme zamanı gibi ayrıntılı bilgileri sunar.
  • -s: Dosyaların disk kullanımlarını gösterir.
  • -a: Gizli dosyaları listeler

Eğer bir yönetici hakkına sahipseniz, dosyanın sahipliğini aşağıdaki komut ile değiştirebilirsiniz;

sudo chown root deneme2.txt

Bu komut ile deneme.txt dosyasının sahipliğini root kullanıcısına devredersiniz.

Yukarıda ki komut ile sadece kullanıcı bazında yetki devrini gerçekleştirdik. Ayrıca ilgili dosyanın grup sahipliğini de değiştirmek isterseniz aşağıdaki komutu girmelisiniz:

sudo chown utku:it deneme1.txt

Bu komutu inceleyecek olursak;

  • sudo: komutu yönetici hakları ile çalıştırmanıza yarar.
  • chown: Dosya veya dizin sahipliğini değiştirmemize yarayan komut.
  • kali:it : Bu komut ile dosya sahipliğini “kali” kullanıcısına atarken, grubunu da it olarak değiştirmemizi sağlayacaktır.
  • deneme.txt: Sahipliğini değiştireceğimiz dosya.

Eğer dosyanın sadece grubunu değiştirmek istersek;

chgrp grupadi klasoradi/

Yetkilendirme

Bu kısımda ise dosya ve klasörler ile ilgili yetkilendirme kısmına değineceğiz. Yazımızın başında bahsettiğimiz ls -lsa komutunu sistemimizde uyguladığımızda aşağıda ki gibi bir çıktı verecektir:

ls -lsa
total 8
4 drwxr-xr-x 3 mutkus mutkus 4096 Jun 15 11:10 a
4 drwxr----- 3 mutkus mutkus 4096 Jun 15 11:10 x
0 -rw-r--r-- 3 utku   it 4096 Jun 15 11:10 deneme1.txt
0 -rw-r-xr-- 3 root   mutkus 4096 Jun 15 11:10 deneme2.txt
4 -rw-r--r-- 3 mutkus mutkus 4096 Jun 15 11:10 deneme3.txt

Linux dosya izinleri çıktısını 1-3-3-3 şeklinde okuyabiliriz. İlk kısımda nesnenin türünü, sonraki ilk üç çıktıda sahiplik izinlerini, sonraki üç çıktıda grup izinlerini, en sonki üç çıktıda ise “diğer” erişimlerin izinlerini görüyoruz. Peki bu “d, r, w, x” ne demek?

  • d: Bu çıktı ile ilgili nesnenin dizin olduğunu anlıyoruz. Eğer “d” çıktısı yerine “-” var ise, bunun bir klasör değil, bir dosya olduğunu anlıyoruz.
  • r: Read, yani okuma izni demek. Eğer ilk üç kısımda varsa, dosya sahibinin okuma izni olduğuna, sonraki üçlü veri çıktısında varsa grubun okuma izni olduğuna, son üçlü grupta varsa diğer erişimlerde okuma izni var demektir.
  • w: Write, yani yazma iznini belirtir. Aynı “r” maddesinde açıkladığımız gibi, hangi üçlü kısımda varsa, o kısmın yazma izninin olduğunu belirtir.
  • x: Execute, yani çalıştırma iznini belirtir. Yine aynı şekilde, “r” ve “w” kısımlarında da olduğu gibi, ilgili dosya/klasörün kimleri çalıştırabileceğini belirtir.

Peki izinleri nasıl veriyoruz?

Linux sistemlerde dosya izinleri nasıl değiştirilir? İlk olarak numerik yolu inceleyelim;

0
1–x
2-w-
3-wx
4r–
5r-x
6rw-
7rwx
chmod izinleri

O zaman deneme1.txt dosyasının izinlerini değiştirelim:

chmod 777 deneme2.txt

Bu izin ile deneme2.txt dosyasının izni şöyle gözükecektir;

0 -rwxrwxrwx 3 root   mutkus 4096 Jun 15 11:10 deneme2.txt

Bu çıktıya baktığımızda, deneme2.txt dosyasına herkesin okuyabileceğini, yazabileceğini ve çalıştırabileceğini görüyoruz.

Numerik yolu gördük. Şimdi ise semboller ile nasıl değiştirebiliriz bakalım;

Operatörler

+Yetki ekle
Yetkiyi sil
=İzni uygular ve daha önceki iznin üzerine yazar.
Sembollerle Linux’da izin vermek

İzin Tipleri

uUser
gGroup
oOther
aAll
İzin Tipleri

Şimdi deneme3.txt dosyasının izinlerini değiştirelim;

chmod ug+x deneme3.txt

Bu komut ile “User” ile “Group” kullanıcı ve gruba çalıştırma (execute) iznini vermiş olduk ve nesnenin izin çıktısı aşağıdaki gibi oldu;

4 -rwxr-xr-- 3 mutkus mutkus 4096 Jun 15 11:10 deneme3.txt

Böylece dosya sahibi, dosyada tam yetkilere sahip iken. Grup yetkisi olarak ise sadece okuma ve çalıştırma izni, diğer kısmında ise sadece okuma iznini vermiş olduk.

İlgili Yazılar

Bir Cevap Yazın

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.