Comment on page
Temel Yetki Yönetimi
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.

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>
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
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
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.
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.
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.