Her dizin için umask ayarlayamazsınız, bu işlem düzeyinde bir değerdir. Başkalarının bir dizindeki dosyaları okumasını engellemeniz gerekiyorsa, karşılık gelen izin bitlerini iptal edin.
Örneğin, /home/user/directory
dizinine sahip bir dosya ve dizinler içeren bir dosyadan 777 gibi izinleri alabilirseniz, /home/user/directory
'nin izin bitlerini 700 gibi bir değere ayarlayın. Bu, diğer kullanıcılar için imkansız hale getirecektir. kullanıcılar (süper kullanıcı kökü hariç) /home/user/directory
'de inmek için.
Paranoyak ve izinleri /home/user
'den 750' ye ayarlıyorum, bu yüzden sadece ev dizinimde okuyabilir, yazabilir ve inebilirim. Bunun sonucu olarak /home/user/Public
gibi klasörlerin başkaları tarafından erişilememesi, ancak bununla yaşayabiliyorum.
Sorunuzun güncellenmesi için: yine de, dosya sistemindeki (güçlü bir şekilde diske dönüştürülmüş FAT gibi farklı bir dosya sistemi türünü kullanmanın dışında) bunu kontrol edemezsiniz, bunu web sunucunuzda yapmanız gerekir. Web sunucunuz PHP'de kodlanmışsa, umaskayı umask
işlevini kullanarak anında değiştirebilirsiniz:
<?php
umask(0022);
// other code
?>
Bunu, veritabanı bağlantı şifresini içeren dosya gibi bir yapılandırma dosyasına koyabilirsiniz (Wordpress gibi uygulamalarda düşünmek).
Bir işlem değeri olduğunu unutmayın, bazı web sunucuları yapılandırma dosyalarında ayarlamanıza izin verir, aksi takdirde istenen umask değerini ayarlamak için başlangıç komut dosyalarını değiştirebilirsiniz. Kodun duyarlı olması durumunda 755
ve 644
gibi izinlerin webapps için oldukça tehlikeli olduğunu unutmayın. Herkes okuyabilir.