Linux Yetki Tanımlama
Yetkiler isimli yazımda dosya üzerinde ki yetkileri ve diğer ifadelerin ne anlama geldiğinden bahsettim . Bu yazımda dizin üzerinde chmod komutu yardımı ile yetki verme ,alma gibi işlemlerin nasıl yapılacağından bahsedeceğim.
Chmod ile kullanılan bazı parametreleri açıklayalım.
u : Dosya -Dizin sahibi ile ilgili işlemler için kullanılır.
g : Dosya -Dizin sahibi ile aynı grupta bulunan kullanıcılar için yapılacak işlemlerde kullanılır.
o : Diğer kullanıcılar için yapılacak işlemlerde kullanılır.
a : Herkese açık yapılacak işlemler de kullanılır.
= : Yetki eşitleme işlemlerinde kullanılır.
+ : Yetki ekleme işlemlerinde kullanılır.
– : Yetki çıkarma işlemlerinde kullanılır.
Örnekler yaparak pekiştirelim.
İlk olarak dizinimiz içerisine giderek içerisinde bulunan dosyaların yetkilerine ls -l komutu ile bakalım.
Yukarıda ki dosyalarımızın yetkilerini okuma ve yetkisini aşağıdaki şekilde alalım fakat bundan önce ufak bir hatırlatma yapalım önceki yazılarımdan hatırlayacağınız üzere ,
W (write) : yazma
R (read) : okuma
X (execute ) : çalıştırma
anlamına gelmekteydi.
Ufak hatırlatma yaptıktan sonra aşağıdaki komut yardımı ile yukarıdaki gri olan text dökümanların yetkilerini alalım. Aşağıdaki komutun sonunda yer alan “*” ile o dizin altında bulunan bütün hepsi için yap anlamını taşımaktadır.
chmod -wr *
Yetkileri aldıktan sonra tekrar ls -l yaptığımız da görüldüğü gibi yetkilerinin olmadığını görmekteyiz fakat dizinimizin execute(x) yetkisi olduğunu görmekteyiz. Değiştirmek için aşağıdaki komutu yazarak değiştirebiliriz.
chmod -x postgresqlall
Yukarıda * yerine dosya ismini vererek sadece ilgili dosyanın execute yetkisini alabildiğimizi görmekteyiz.
Dosya ve dizinlerin yetkisini aldık şimdi ise nasıl verildiğinden bahsedelim.
chmod +r *
Yukarıda görüldüğü gibi bütün dosya ve dizinlere okuma yetkisi verdik. Bunu execute ve write yetkisi için de yapabilirsiniz.
Dosyanın sahibi olan frk kullanıcı için okuma ,yazma, execute yetkilerini tanımlamak için yukarıda belirtilen u parametresini kullanacağız.
chmod u+rwx *
Yukarıda görüldüğü gibi bütün dizin ve dosyalar için okuma, yazma ve execute yetkisi verilmiştir.
frk grubu içinde bulunan kullanıcılar için yazma vermek için aşağıdaki komutu kullanabilirsiniz.
Buraya kadar olanlarda wrx parametrelerini kullanarak yetki verdik aldık fakat bunları rakamlar yardımı ile de vermek mümkün.
Dosya_Sahibi | Grup Yetkisi | Diğer Kullanıcılar | |
Okuma ( r ) | 4 | 4 | 4 |
Yazma ( w ) | 2 | 2 | 2 |
Execute ( x ) | 1 | 1 | 1 |
Yukarıdaki komutları kullanarak verdiğimiz yetkileri alalım. Bunun için chmod -700 yazmamız gerekmektedir fakat bu ne demek? Açılımı şu şekilde açıklayabiliriz:
r (4)+ w (2)+ x (1)=700
Yukarıdaki gibi read karşılığı olan 4 ,write karşılığı olan 2 ve execute karşılığı olan 1 rakamlarını toplayarak 700 olarak tanımlanmaktadır .
Dosya_Sahibi | Grup Yetkisi | Diğer Kullanıcılar | |
Okuma ( r ) | 4 | 4 | 4 |
Yazma ( w ) | 2 | 2 | 2 |
Execute ( x ) | 1 | 1 | 1 |
TOPLAM | 7 | 0 | 0 |
Dosya sahibinin yetkilerini almak için 700 parametresini aşağıdaki gibi kullanacağız.
Yukarıda görüldüğü gibi yetkiler alınmıştır. Hepsinin yetkisi almak isteseydik yani Dosya_Sahibi,Grup Yetkisi ve Diğer Kullanıcıların yetkisini almak isteseydik aşağıdaki gibi hepsini toplamamız sonucunda 777 gibi sayı çıkmaktadır. Bu sayı ile bütün yetkileri aşağıdaki gibi alabiliriz.
Yukarıdaki görüldüğü gibi bütün yetkiler alınmıştır.
Dosya_sahibi , gruptaki kullanıcılar ve diğer kullanıcılar için okuma yetkisi verelim.
Yukarıda görüldüğü gibi 444 yazarak hepsi için okuma yetkisi tanımlamış olduk.