Ви не можете встановити umask на каталог, це значення на рівні процесу. Якщо вам потрібно не дозволити іншим читати файли в каталозі, скасуйте відповідні біти дозволів.
Наприклад, якщо у вас є каталог /home/user/directory
з деякими файлами та каталогами, які можуть отримати дозволи, як 777, під час процесу, встановіть біти дозволу /home/user/directory
на щось на зразок 700. Це дозволить іншим користувачам (за винятком кореня суперпоширення) не спускатися в /home/user/directory
.
Я параноїк і встановлюю дозволи на /home/user
750, тому лише я можу читати, писати та спускатись у свій домашній каталог. Це призводить до того, що подібні папки /home/user/Public
не можуть бути доступні іншими, але я можу з цим жити.
За оновлення вашого запитання: все-таки ви не можете контролювати, що у файловій системі (крім використання іншого типу файлової системи, наприклад FAT, який сильно не перешкоджає), вам потрібно це зробити у своєму веб-сервері. Якщо ваш web-код закодований в PHP, ви можете змінити umask на ходу за допомогою umask
функції:
<?php
umask(0022);
// other code
?>
Ви можете помістити це у файл конфігурації, як у файл, що містить пароль підключення до бази даних (мислення в таких програмах як Wordpress).
Пам'ятайте, що це значення процесу, деякі веб-сервери дозволяють встановити його у своїх конфігураційних файлах, інакше ви можете змінити сценарії запуску, щоб встановити потрібний umask. Пам'ятайте, що дозволи до вподобань 755
і 644
є досить небезпечними для веб-сайтів, якщо код є чутливим, кожен може прочитати його.