Anda tidak dapat menetapkan umask per direktori, ini adalah nilai tingkat proses. Jika Anda perlu mencegah orang lain membaca file di direktori, cabut bit izin yang sesuai.
Misalnya, jika Anda memiliki direktori /home/user/directory
dengan beberapa file dan direktori yang bisa mendapatkan izin seperti 777 dari suatu proses, atur bit izin /home/user/directory
menjadi sekitar 700. Itu akan membuat mustahil bagi pengguna lain (tidak termasuk root superuser) untuk turun di /home/user/directory
.
Saya paranoid dan mengatur izin /home/user
ke 750, jadi hanya saya yang bisa membaca, menulis, dan turun di direktori home saya. Ini memiliki konsekuensi bahwa folder seperti /home/user/Public
tidak dapat diakses oleh orang lain, tetapi saya bisa hidup dengan itu.
Per pembaruan pertanyaan Anda: masih, Anda tidak dapat mengontrolnya di sistem file (selain menggunakan jenis sistem file yang berbeda seperti FAT yang sangat tidak jelas), Anda perlu melakukannya di aplikasi web Anda. Jika aplikasi web Anda dikodekan dalam PHP, Anda dapat mengubah umask on the fly menggunakan umask
fungsi:
<?php
umask(0022);
// other code
?>
Anda bisa meletakkan ini di file konfigurasi, seperti file yang berisi kata sandi koneksi database (berpikir di aplikasi seperti Wordpress).
Ingat bahwa ini adalah nilai proses, beberapa server web memungkinkan Anda untuk mengaturnya dalam file konfigurasi mereka, jika tidak, Anda dapat memodifikasi skrip startup untuk mengatur umask yang diinginkan. Ingatlah bahwa izin suka 755
dan 644
cukup berbahaya untuk webapps, jika kodenya sensitif, semua orang bisa membacanya.