CHMOD kelime olarak İngilizce ‘Change Mode’ kelimesinden gelmektedir. Türkçe’ye ‘Türünü Değiştirme’ olarak çevrilebilir.
CHMOD’da üç adet permission yani izin vardır :
* Bunlardan birincisi yazma iznini veren w (ingilizce yazma anlamına gelen write kelimesinin ilk harfinden esinlenilmiştir),
* İkincisi okuma iznini veren r (yine ingilizce’de okuma anlamına gelen read kelimesinin ilk harfinden esinlenilmiştir),
* Üçüncüsü ise uygulama anlamına gelen x’dir (yine ingilizce’de uygulama anlamına gelen execute kelimesinin ikinci harfinden esinlenilmiştir). Burada okuma ve yazma izinlerinin anlamları gayet açıktır. Execute ise bir dizinin içeriğinin erişilebilir olması için gerekli bir izindir.
CHMOD Ayarları
Bir diğer konu ise izinlerin verileceği gruplardır. Bu gruplar yine izinlerde olduğu gibi üç adettir :
* u : Dosya sahibi. (Owner)
* g : Dosyanın bulunduğu gruptaki kullanıcılar. (Group)
* o : Diğer tüm kullanıcılar. (Other)
CHMOD’daki türler operatörlerle işleme geçirilebilir. Bu operatörler ise yine üç adettir :
+ : Türün eklenmesini sağlar.
– : Tür ayarının kaldırılmasını sağlar.
= : Türün ayarlanmasını sağlar.
Bizi asıl ilgilendiren bölüm ise oktal sayılar denen sayılarla gerekli işlemlerimizi nasıl gerçekleştireceğimizdir. Oktal sayılar adı verilen bu sayılar sekiz adettir :
* 0 : Hepsini reddet.
* 1 : Sadece uygulama işlemini kabul et (Bu da yalnızca uygulama verilip okuma verilmediği anlamına gelir ki dizine erişimi imkansız hale sokabilir. Bu aslında bir ‘sözde’ erişimdir. Direkt dosya adresleri bilinmeden erişim gerçekleştirilmez.)
* 2 : Sadece yazma işlemini kabul et.
* 3 : Uygulama ve yazma işlemini kabul et.
* 4 : Sadece okuma işlemini kabul et.
* 5 : Okuma ve uygulama işlemini kabul et.
* 6 : Okuma ve yazma işlemini kabul et.
* 7 : Tüm erişimlere izin ver.
Yukarıda belirtilen tüm oktal sayılar gruplar, sahip ve diğer tüm kullanıcılar için ayrı ayrı uygulanmak zorundadır. Her dosya için belirtilen ayarlar tek tek ele alınır ve istenirse tüm dizine uygulanabilir.
Soru : rooteto.php isimli dosyamızın CHMOD’unu 777 yapmak istiyoruz. Bu ne anlama geliyor?
Cevap : Burada rooteto.php isimli dosyamınızın türünü oktal sayılarla belirtilen 777 yapmış oluyoruz. Burada :
777 : Koyu biçimde yazılmış 7 site sahibinin izinlerini temsil ediyor. Yani admini/yöneticiyi temsil ediyor ve tüm erişimlere izin verilmiş.
777 : Koyu biçimde yazılmış 7 burada dosyanın bulunduğu gruptaki kullanıcıların iznini temsil ediyor ve tüm erişimlere izin verilmiş.
777 : Koyu biçimde yazılmış 7 burada yönetici ve dosyanın bulunduğu gruptaki kullanıcılar dışındaki tüm kullanıcıların izinlerini temsil ediyor ve tüm erişimlere izin verilmiş.
Temsil edilen izinleri belirtmiş olduk böylece. Bu izinlerin ne anlama geldiğini ise yukarıda verdiğim oktal sayılar kısmından rahatlıkla öğrenebiliriz.
Şimdi de kodlara gerek kalmadan CHMOD’un FTP programları yardımıyla nasıl yapılacağını ele alalım :
* Öncelikle kullandığımız FTP programı ile (CuteFTP, WSFTP ya da SmartFTP olabilir) hostumuza bağlanalım. Buradan karşımızda beliren klasörlerden CHMOD yapmak istediğimiz klasörü faremizin sağ tuşuyla tıkladıktan sonra karşımıza gelen pencereden ‘CHMOD’ seçeneğini seçelim. Bunu seçtiğimiz takdirde karşımıza yeni bir pencere çıkacaktır.
rooteto -> chmod
CHMOD ile ilgili makale Alexis adında bir arkadaşımıza ait. Ben kendim ekstradan yazmak istemedim çünkü onun makalesi en açıklayıcı olandı. Ona teşekkürlerimi sunuyorum ve bende bir kaç şey eklemek istiyorum.
FTP’deki dosyalarınızın yazma izin ayarlarını şu şekilde düzenlerseniz daha güvende olucaksınız.
- Klasörlerin chmod ayarı: 644
- Dosyaların chmod ayarı: 755
Eğer dosyalarınızdan birisinin chmod ayarı 777 ise Alexis’in yukarıdaki dediği gibi “Tüm erişimlere izin vermiş oluyorsunuz” anlamına geliyor. Böyle bir dosya FTP’nizde bulunuyorsa bir Hacker mutlaka o dosyaya kilitlenip o dosya üzerinden sisteminize dosya yükleyebilir ve Sunucunuza girebilir.
find -perm -l -s gibi bir linux komutuyla tüm yazılabilir dosyaları listeleyebilir ve herşeyinizi silebilir 🙂
Kaynak: CHMOD nedir? Nasıl yapılır?