No puede establecer umask por directorio, es un valor de nivel de proceso. Si necesita evitar que otros lean archivos en un directorio, revoque los bits de permisos correspondientes.
Por ejemplo, si tiene un directorio /home/user/directory
con algunos archivos y directorios que pueden obtener permisos como 777 de un proceso, establezca los bits de permiso /home/user/directory
en algo así como 700. Eso hará imposible que otros usuarios (excluyendo la raíz del superusuario) desciendan en /home/user/directory
.
Soy paranoico y establezco los permisos en /home/user
750, por lo que solo yo puedo leer, escribir y descender en mi directorio de inicio. Esto tiene como consecuencia que /home/user/Public
otras personas no puedan acceder a carpetas como , pero puedo vivir con eso.
Por actualización de su pregunta: aún así, no puede controlar eso en el sistema de archivos (aparte de usar un tipo de sistema de archivos diferente como FAT, que se desaconseja), debe hacerlo en su aplicación web. Si su aplicación web está codificada en PHP, puede cambiar la umask sobre la marcha utilizando la umask
función:
<?php
umask(0022);
// other code
?>
Puede poner esto en un archivo de configuración, como el archivo que contiene la contraseña de conexión de la base de datos (pensando en aplicaciones como Wordpress).
Recuerde que es un valor de proceso, algunos servidores web le permiten configurarlo en sus archivos de configuración, de lo contrario, podría modificar los scripts de inicio para establecer la máscara de usuario deseada. Recuerde que los permisos les gustan 755
y 644
son bastante peligrosos para las aplicaciones web, si el código es sensible, todos pueden leerlo.