El umask actúa como un conjunto de permisos que las aplicaciones no pueden establecer en los archivos. Es una máscara de creación de modo de archivo para procesos y no se puede configurar para directorios en sí. La mayoría de las aplicaciones no crearían archivos con permisos de ejecución establecidos, por lo que tendrían un valor predeterminado de 666
, que luego es modificado por la umask.
Como ha configurado la umask para eliminar los bits de lectura / escritura para el propietario y los bits de lectura para otros, un valor predeterminado, como 777
en las aplicaciones, daría lugar a los permisos del archivo 133
. Esto significaría que usted (y otros) podrían ejecutar el archivo, y otros podrían escribir en él.
Si desea que los archivos no sean leídos / escritos / ejecutados por nadie más que el propietario, debe usar una máscara de usuario 077
para desactivar esos permisos para el grupo y otros.
Por el contrario, una máscara de u 000
hará que los directorios recién creados sean legibles, escribibles y descendibles para todos (los permisos serán 777
). Tal umask es altamente inseguro y nunca debes configurarlo 000
.
La umask predeterminada en Ubuntu era lo 022
que significa que los archivos recién creados son legibles por todos, pero solo el propietario puede escribirlos:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-r--r-- 1 user user 0 Apr 1 19:15 new-file-name
A partir de Ubuntu Oneiric (11.10), se relajó la umask predeterminada 002
, que amplía el acceso de escritura al grupo del propietario:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-rw-r-- 1 user user 0 Apr 1 19:15 new-file-name
Ver y modificar umask
Para ver su configuración actual de umask, abra una terminal y ejecute el comando:
umask
Para cambiar la configuración de umask del shell actual a otra cosa, digamos 077, ejecute:
umask 077
Para probar si esta configuración funciona o no, puede crear un nuevo archivo (los permisos de un archivo existente no se verán afectados) y mostrar información sobre el archivo, ejecute:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw------- 1 user user 0 Apr 1 19:14 new-file-name
La configuración de umask es heredada por los procesos iniciados desde el mismo shell. Por ejemplo, inicie el editor de texto GEdit ejecutándolo gedit
en la terminal y guarde un archivo usando gedit. Notará que el archivo recién creado se ve afectado por la misma configuración de umask que en el terminal.
Caso de uso: sistema multiusuario
Si está en un sistema compartido por varios usuarios, es deseable que otros no puedan leer archivos en su directorio de inicio. Para eso, un umask es muy útil. Edite ~/.profile
y agregue una nueva línea con:
umask 007
Debe volver a iniciar sesión para que este cambio de umask ~/.profile
surta efecto. A continuación, debe cambiar los permisos de archivos existentes de los archivos en su directorio de inicio eliminando el bit de lectura, escritura y ejecución del mundo. Abra una terminal y ejecute:
chmod -R o-rwx ~
Si desea que esta configuración de umask se aplique a todos los usuarios del sistema, puede editar el archivo de perfil de todo el sistema en /etc/profile
.
app_mode 666 rw- rw- rw-
umask 644 --0 -00 -00
file_mode 022 --- -w- -w-