İşletim sistemlerinde dosyalar belli kişiler tarafından erişilebilir yada erişilemez dosyaların kendilerine ait izinleri yani yetkileri vardır.Dosya izinleri güvenlik açısından çok önemlidir , mesela önemli bilgilerin tutulduğu bir ayar dosyasının izinleri herkes tarafından okunabilir ve yazılabilir olursa herkes bilgilerimize erişebilir yada değiştirebilir.
Ben bu yazıda linux sistemlerde dosya izinlerinin nasıl belirlendiğinden bahsedeceğim. Eğer PHP ile uğraşıyorsanız dosya izinleri ile ilgili sorunlarla karşılaşmışsınızdır. Bilindiği gibi PHP, en iyi linux sistemlerde çalışır bunun için linux’taki dosya izinleri nedir, nasıl belirlenir bilmemiz gerekir.
Bu resimde bir dosyanın izin bilgilerini gösteriliş şekli gösterilmiştir. İlk baştaki “d” işareti bir dosya olduğunu gösterir , sonraki 3 karakter dosyanın sahibinin , sonraki 3 karakter dosyanın grubunun ve son 3 karakter de geriye kalan kullanıcıların izinlerini gösterir.Şimdi buradaki üçlü karakterleri inceleyelim,bu karakterler “rwx” harflerinden oluşuyor.
r => okuma yetkisini
w => yazma yetkisini
x => çalıştırma yektisni beliritr.
Linuxda bir dizindeki dosya ve klasöleri listelemek için “ls” komutu kullanılır. ls komutuna “-l” parametresi eklenirse dizindeki tüm dosya ve klasörleri izin bilgileri ile birlikte listeler.
sametatabasch@sametatabasch-Satellite-A350:~$ ls -l toplam 91060 -rw-rw-r-- 1 sametatabasch sametatabasch 1182 Tem 7 17:09 alfabe.ktouch.xml -rw-rw-r-- 1 sametatabasch sametatabasch 2422 Haz 23 15:35 alıntılar.ktouch.xml drwxr-xr-x 2 sametatabasch sametatabasch 4096 May 31 15:34 Belgeler drwxr-xr-x 2 sametatabasch sametatabasch 4096 Tem 16 04:36 Downloads -rw-rw-r-- 1 sametatabasch sametatabasch 916 Haz 8 15:24 Downloads.pem drwxr-xr-x 2 sametatabasch sametatabasch 4096 Tem 5 21:10 dwhelper -rwxr-xr-x 1 sametatabasch sametatabasch 316 Tem 11 13:38 Evernote.desktop -rw-rw-r-- 1 sametatabasch sametatabasch 854 Tem 11 13:38 Evernote.lnk drwxr-xr-x 2 sametatabasch sametatabasch 4096 May 31 15:34 Genel -rw-rw-r-- 1 sametatabasch sametatabasch 19233136 Nis 25 23:38 libflashplayer.so drwxr-xr-x 2 sametatabasch sametatabasch 4096 May 31 15:34 Masaüstü
Yukarıda ki örnek konsol çıktısında Belgeler dizinini inceleyelim;
drwxr-xr-x 2 sametatabasch sametatabasch 4096 May 31 15:34 Belgeler
en baştaki “d” harfi bir dizin olduğunu belirtiyor. Ondan sonraki üç karakter dizin sahibinin yetkilerini belirtiyor(Burada sametatabasch), rwx yani okuma yazma ve çalıştırma yetkisine sahip. Sonraki 3 harf dizinin ait olduğu grubun yetkilerini öğreniyoruz “r-x” yani okuma ve çalıştırma izni.Son 3 harf ise geri kalan herkesin sahip olduğu yetkileri belirtiyor.
Dosya İzinlerini Değiştirmek
Linux da konsol üzerinden doyya izinlerini değiştirmek için “chmod” komutu kullanılır.
veya: chmod [SEÇENEK]… SEKİZLİK-KİP DOSYA
veya: chmod [SEÇENEK]… –reference=REFDOSYA DOSYA…
Belgeler dizininin izinlerini değiştirmek için şu şekilde bir kod yazmamız gerekiyor :
chmod 700 Belgeler
Bu komuttan sonra ls -l komutunu vererek sonucu görebiliriz
sametatabasch@sametatabasch-Satellite-A350:~$ ls -l -rw-rw-r-- 1 sametatabasch sametatabasch 1182 Tem 7 17:09 alfabe.ktouch.xml -rw-rw-r-- 1 sametatabasch sametatabasch 2422 Haz 23 15:35 alıntılar.ktouch.xml drwx------ 2 sametatabasch sametatabasch 4096 May 31 15:34 Belgeler -rwxr-xr-x 1 sametatabasch sametatabasch 362 Ağu 14 23:28 Dll-Files Fixer.desktop drwxr-xr-x 2 sametatabasch sametatabasch 4096 Tem 16 04:36 Downloads -rw-rw-r-- 1 sametatabasch sametatabasch 916 Haz 8 15:24 Downloads.pem drwxr-xr-x 2 sametatabasch sametatabasch 4096 Tem 5 21:10 dwhelper -rwxr-xr-x 1 sametatabasch sametatabasch 316 Tem 11 13:38 Evernote.desktop -rw-rw-r-- 1 sametatabasch sametatabasch 854 Tem 11 13:38 Evernote.lnk drwxr-xr-x 2 sametatabasch sametatabasch 4096 May 31 15:34 Genel
Peki bu 700 ne anlama geliyor . 700 sayısındaki her basamak izinlerdeki üçlü gruplardan birine denk geliyor. Birinci basamak dosya sahibinin ,ikinci basamak dosya grubunun ,üçüncü basamak ise herkesin yetkileri belirtiyor.
Peki tek bir sayı ile 3 karakterlik bir izni nasıl belirliyoruz ? Şöyle ki r harfi 4 değerine w harfi 2 değerine x harfide 1 değerine sahip yani sadece okuma izni vereceksek(r–) 4, hem okuma hem çalıştırma izni vereceksek (r-x) 4+1 den 5 ,okuma ve yazma izni vereceksek (rw-) 4+2 den 6 değerini vermeliyiz. Bu durumda 700 dosya sahibine tüm yetkileri vermiş grup ve diğerlerine de hiç yetki vermemiş oluyoruz.
Filezilla İle Dosya İzinlerini Düzenleme
Ben konsol kullanamıyorum bana zor geliyor diyorsanız sitenizdeki dosyaların izinlerini filezilla programı ile düzenleyebilirsiniz. Bunun için filezilla programı ile hostunuza bağlandıktan sonra(Nasıl bağlanılır ?), sağ tarafta gözüken dosyalarınıza sağ tıklayıp Dosya izinleri seçeneğine basarak dosya izinlerini görebilir ve değiştirebilirsiniz.