Temel Yetki Yönetimi

Yetkiler

Tüm Linux işletim sisteminde, neredeyse hiçbir kısıtlaması olmadan tüm işlemleri gerçekleştirme yetkisine sahip olan root kullanıcısı bulunmaktadır. Bazı dağıtımlarda kurulum sırasında bu kullanıcı için parola oluşturulurken bazı dağıtımlarda oluşturulmaz.

id root

root dışında oluşturulan normal kullanıcıların yalnızca kendi ev dizinlerinde ve /tmp dizininde değişiklik yapma yetkisi bulunmaktadır. Bunun dışındaki sistem dosyalarında işlem yapılmak isteniyorsa yetki yükseltme işlemi gerekmektedir.

sudo

Son kullanıcı sudo komutu ile kendisinden sonra gelen komutların root kullanıcısı tarafından yapılmasını sağlar. Tabiki bu işlem eğer yetkisi varsa yapılır.

sudo <komut>

sudo Grubu

root kullanıcısı dışında sistemde neredeyse hiçbir kısıtlaması olmadan tüm işlemleri gerçekleştirme yetkisine sahip gruba sudo grubu denir. Son kullanıcı bu gruba dahil ise sudo komutu ile yetkili işlemler yapabilir.

groups kullanici
kullanici : kullanici adm cdrom sudo dip plugdev lpadmin lxd sambashare wireshar

sudoers

Peki root kullanıcısının ya da sudo grubunun hangi işlemleri yapabileceğini sistem nasıl anlar. Kullanıcı ve grup yetkileri /etc/sudoers dosyasında tanımlanır.

cat /etc/sudoers

root	ALL=(ALL:ALL) ALL
%sudo	ALL=(ALL:ALL) ALL
  • root ALL=(ALL:ALL) ALL İlk sütun hangi kullanıcı ya da grubu etkileyeceğini ifade eder

  • root ALL=(ALL:ALL) ALL İkinci sutün hangi makine ve terminaller üzerinde uygulanacağını ifade eder.

  • root ALL=(ALL:ALL) ALL Üçüncü sütun, komutların tüm kullanıcılar olarak çalıştırabileceğini gösterir.

  • root ALL=(ALL:ALL) ALL Dördüncü sütun, komutların tüm gruplar olarak çalıştırabileceğini gösterir.

  • root ALL=(ALL:ALL) ALL Son olarak son sütun hangi komutlara yetki verildiğini ifade eder

Dosyaların aynı anda bir kişi tarafından düzenlendiğinden emin olmak için sudoers dosyası visodu komutu ile düzenlenir

visudo

Dozya ve Dizin İzinleri

GNU/Linux sistemler, hızlı ve pratik olmasının yanında güvenlik açısından kale gibi olması sebebi ile de sunucularda sıklıkla kullanılırlar. Bunun sebebi de teker teker her dosyanın ve dizinin sahip olduğu yetki sistemidir.

Her dosya veya dizin 3 ayrı alan için yetkilendirmeye sahip olabilir. Bu yetkilendirmeler,

u: Mevcut kullanıcı (user)
g: Grup (group)
o: Diğerleri (other)
a: Herkes (all)

Aynı zamanda yukarıda belirtilenlerden her biri için ayrı ayrı okuma, yazma ve çalıştırma yetkisi bulunmaktadır.

r: Okuma izni
w: Yazma izni
x: Çalıştırma izni

Bu iki bilgiyi birbiri ile birleştirdiğimizde, sıklıkla ls -la komut çıktısında gördüğümüz her dosyanın başında yer alan izinleri anlamlandırabiliriz.

total 24
drwxr-xr-x 3 server server 4096 Aug 26 15:52 .
drwxr-xr-x 3 root   root   4096 Jun 26 18:39 ..
-rw-r--r-- 1 server server  220 Jun 26 18:39 .bash_logout
-rw-r--r-- 1 server server 3526 Jun 26 18:39 .bashrc
-rw-r--r-- 1 server server  807 Jun 26 18:39 .profile
-rw-r--r-- 1 root   root      0 Aug 26 15:52 testDosya
drwxr-xr-x 2 root   root   4096 Aug 26 15:52 yeniDizin

Sol tarafta yer alan 10 karakterden, ilki dosyanın türünü belirtir. Örneğin,

- : Dosya
d : Dizin
l : Link

anlamına gelmektedir.

Sonraki dokuz hane ise izinleri temsil eder. İlk 3 hane dosya sahibinin izinleri, sonraki 3 hane dosya grubunun izinleri, en son hane ise sistemdeki diğer kullanıcının izinlerini göstermektedir.

chmod ile Yetki Yönetimi

Dosyalar ve dizinlerin okuma yazma, ve çalıştırma için uygun gruplara uygun izinlere ihtiyacı olduğundan bahsettik. Şimdi bu izinlerin nasıl verildiğinden bahsedelim.

Eğer bir betiğe dosya sahibi için çalıştırma yetkisi vermek istiyorsak,

chmod u+x pythonScript.py
chmod +x bashScript.sh

komutlarını kullanabiliriz. Ya da dosyanın herkes için tüm izinlerini silip sadece okuma izni vermek istiyorsak,

chmod a=r /tmp/duyuruDosyasi.txt

komutunu kullanmamız gerekir. Dosyadan yetki silmek için ise,

chmod g-wx /tmp/izinler.txt

komutu kullanılmalıdır.

İkili Dosya İzinleri

Dosya izinleri yukarıdaki gibi kullanıcı, grup ve diğer kullanıcılar için ayrı ayrı verilebilse de bazı durumlarda tercih edilmemektedir. Bunun yerine Eğer bir dosyayı herkes tarafından okunabilir yapmak istiyorsak, Binary Dosya İzinleri diye de bilinen İkili Dosya İzinleri kullanılmaktadır.

Bu sistemde izinler 3erli olarak ayrılır. Ayrılan her bir grup için sağdan sola 2 üzeri 0, 2 üzeri 1 ve 2 üzeri 2 olarak numaralandılır. Eğer izinlerin hepsi açıksa, yani rwx durumunda ise tüm bu rakamlar toplanır ve o gruba 7 değeri atanır. Eğer bu izinlerden biri bile yoksa, onun yerine 0 yazılarak toplanır.

Örneğin izinleri,

rwxr---wx

olan bir dosya için,

rwx r-x -wx
 7   5   3

753 iznine sahip denilebilir. chmod ile binary izinleri de,

chmod 755 /tmp/izinler.txt

şeklinde kullanılabilir.

Last updated