Non puoi impostare umask per directory, è un valore a livello di processo. Se è necessario impedire ad altri di leggere i file in una directory, revocare i bit delle autorizzazioni corrispondenti.
Ad esempio, se hai una directory /home/user/directory
con alcuni file e directory che possono ottenere autorizzazioni come 777 da un processo, imposta i bit di autorizzazione su /home/user/directory
qualcosa come 700. Ciò renderà impossibile per gli altri utenti (escluso il superutente root) scendere in /home/user/directory
.
Sono paranoico e imposto le autorizzazioni su /home/user
750, quindi solo io posso leggere, scrivere e scendere nella mia directory home. Ciò ha come conseguenza che cartelle simili /home/user/Public
non sono accessibili ad altri, ma posso conviverci.
Per ogni aggiornamento della tua domanda: tuttavia, non puoi controllarlo nel filesystem (oltre all'utilizzo di un diverso tipo di filesystem come FAT che è fortemente scartato), devi farlo nella tua webapp. Se la tua webapp è codificata in PHP, puoi cambiare l'umask al volo usando la umask
funzione:
<?php
umask(0022);
// other code
?>
Potresti metterlo in un file di configurazione, come il file contenente la password di connessione al database (pensando in app come Wordpress).
Ricorda che è un valore di processo, alcuni server web ti permettono di impostarlo nei loro file di configurazione, altrimenti potresti modificare gli script di avvio per impostare l'umask desiderato. Ricorda che le autorizzazioni piacciono 755
e 644
sono piuttosto pericolose per le webapp, se il codice è sensibile, tutti possono leggerlo.