Genel

Nix Dosya ve Dizin Yetkileri ve Kullanıcılar

Aslında sistem yönetimi ile ilgilenmeyen, sunucu taraflı yazılım geliştiren/kullanan (php, perl, ruby vb diller ile) bir çok kişinin bildiği bir tanım var; chmod. Aynı zamanda Windows işletim sistemlerinden de bildiğimiz bir kullanıcı ve kullanıcının bağlı bulunduğu bir grup var. 
Unix’de her kullanıcı diğerlerinden farklı bir id ile tanımlanır. Kullanıcıları adduser komutu ile tanımlayabiliriz. “adduser” komutunu verdiğimizde os bize kullanıcı tanıtımı için ayrıntıları (grubu, id’si, ismi, şifresi vs) sunar. Bu bilgileri girerek kullanıcı oluşturabiliriz. Aynı şekilde pw komutu ile daha ayrıntılı ve tek bir satırda da kullanıcı oluşturabiliriz.

/usr/sbin/pw useradd username -g groupname -d /home/username -s /sbin/nologin

 Sırası ile, kullanıcı ekle ismi bu olsun, şu gruba üye olsun, ev dizini home/username şeklinde olsun kabuğu da nologin olsun dedik.

Freebsd özelinde, kullanıcılar /etc/passwd dosyasında, gruplar ise /etc/group dosyasında tutulur. 

“Chmod’u 777 yaparak dener misin?” cümlesini tüm webmaster forumlarında görüyoruz. Peki nedir bu?

Bir dosya ya da dizin ile ilişkili yetkiler üç tür dizinden oluşmaktadır. Sırası ile 777’ye bakalım.

Dosyanın sahibi yetkileri : Sahibinin dosyaları ve dizinleri üzerinde gerçekleştirebileceği işlemleri belirler.
Grup Yetkileri : Dosya ya da dizinin sahibi  ile aynı grupta bulunan herhangi bir kullanıcının gerçekleştirebileceği işlemleri belirler.
Tüm kullanıcı yetkileri : Diğer tüm kullanıcıların (dosya ve grup sahibi dışındaki tüm kullanıcılar) yapabilecekleri işlemleri belirler.

ll komutu ile deneme dosyasının özelliklerine bakalım.

-rw-r—-      username groupname 971 Aug 20 18:02 deneme

ll komutu bize dosyanın sadece sahibi tarafından değiştirilebileceğini(rw) sahibinin üye olduğu grupta bulunan kullanıcıların sadece dosyayı okuyabileceğini (r), diğer kullanıcıların ise, okuma veya yazma yetkilerinin olmadığını söylemektedir.

Peki dosyamızın chmod ayarı 777 olsaydı ne şekilde olacaktı ona bakalım.

-rwxrwxrwx username groupname 971 Aug 21 14:40 deneme

Bu da sahibi, sahibinin grubuna üye olan kullanıcılar ve diğer herkesin, hem okuyabileceği, hem yazabileceğini, hemde çalıştırabileceğini söylemektedir.

Chmod aynı şekilde yetki bitleri şeklinde geçip yine yukarıda yazdığım gibi, üç tanımda incelenir.

-Sahip Yetkisi
-Grup Yetkisi
-Diğer kullanıcı yetkileri


Yetki bitleri de aşağıdaki şekilde görülür.

Read (okuma)(r) Dosya okunabilir.
Write (yazma)(w) Dosya değiştirilebilir veya yeniden isimlendirilebilir.
Execute (yürütme)(x) Dosya çalıştırılabilir ve aynı zamanda bu dosya diğerleri tarafından aranabilir.

Yine ll ile veya ls -al parametresi ile örneklendireyim.

drwxrws— username group 921 Aug 21 15:05 deneme

Bu ibare (d ile başlayanlar klasördür) username kullanıcısının deneme klasörün altında bulunan, dosyaları okuyabileceği, değiştirilebileceğini ve yeniden isimlendirebileceğini belirtmektedir. Aynı zamanda group grubuna üye olan bir kullanıcı da dizine erişebilmektedir.

Nix sistemlerde yetkiler, sekizli sayı sisteminde saklanmaktadır. Bir sekizli sayı üç bit kullanarak saklanır ve böylece her sayı 0 ile 7 rakamı arasında değişir.

Bit 1, 0 ya da 1 değeri (okuma yetkisi)
Bit 2, 0 ya da 1 değeri (yazma yetkisi)
Bit 3, 0 ya da 1 değeri (çalıştırma yetkisi)

İlk bit (okuma) 4, ikinci bit (yazma) 2, ve üçüncü bit (yürütme) 1 ağırlığındadır. Örneğin 101 değerinin ağırlığı 5 rakamıdır. (101 ikili sayısının değeri (4*1) + (0*1) + (1+1) = 5)

Deneme dosyası için, “dosya sahibi okusun, yazsın, ve çalıştırsın, aynı gruptakiler okusun ve yürütsün, diğer kullanıcılar ise erişemesin” yetkisi verecek isek;

Sahip 111=7
Grup 101=5
Diğer 000=0

şeklinde olacak ve chmod değeri 750 değerini alacaktır. Özellikle web üzerindeki çalışmalarda, dosyaları 755 olarak saklarız. Ekseriyetle 777 yapmamız zaten kimi web modülleri tarafından (örn; suphp) güvenlik nedeni ile çalıştırılmaz.

Chmod komutunu rakamla kullandığımız gibi, simgesel olarak da kullanabiliyoruz. 

chmod u+rwx = Dosyanın sahibine okuma, yazma ve çalıştırması yetkisi verir.
chmod g+w = Dosyanın grubuna yazma yetkisi verir.
chmod o+rwx = Dosyanın diğerlerine okuma, yazma ve çalıştırma yetkisi verecektir.

Bu arada dosyanın yetkilerini chmod ile değiştirdiğimiz gibi, “chown” komutu ile de dosyanın veya dizinin kullanıcı ve grubunu değiştirebiliriz.

chown username group dosya

eğer dizin ise;

chown -R username group dizin  şeklinde değiştirebiliriz. 

Chown komutunu sadece sahibini değiştirmek için kullanabileceğimiz gibi, chgrp komutu ile de sadece dosyanın grubunu değiştirebiliriz. 



Bir cevap yazın

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