4.7.4.- Definir el modo y el grupo por defecto

umask_titulo

Cuando creamos un fichero, dicho fichero tiene un propietario y unos permisos por defecto. El propietario por defecto es el usuario que creó el fichero. El grupo por defecto es el grupo primario del usuario. Los permisos se pueden configurar por defecto. Estos vienen definidos por la máscara (umask) del usuario, que se define con el comando umask.

umask_ejemplo1

El siguiente paso consiste en crear el directorio y/o ficheros al que asignará ahora los permisos que hemos definido anteriormente:

umask_ejemplo_2

Podemos comprobar si los permisos son los que deseamos:

umask_ejemplo_3

Podemos crear un archivo con la orden touch (lo veremos más adelante).

umask_ejemplo_4

Finalmente comprobamos el resultado:

umask_ejemplo_5

Este comando recibe como entrada un valor octal o simbólico que representa los bits a eliminar de los permisos 777 de los directorios, o de los permisos 666 de los ficheros, cuando se crea un nuevo fichero o directorio. Para saber que permisos se deben asignar, partamos de los permisos que se requieren.

Teniendo en cuenta lo mencionado, cualquier bits definido en umask se eliminará del permiso final en los nuevos ficheros; en cambio, si no está definido (como en el caso de los bits de ejecución), su especificación en la umask no será perjudicial.

tabla_umask

Por ejemplo, consideremos los valores 7 de algunas de las entradas de la columna umask de la tabla de arriba. Estos se corresponden con el valor binario 111. Un fichero ordinario podría tener permisos rw- (110); pero aplicando el valor 7 (111) a umask se elimina los valores 1 sin tocar los valores 0, lo que produce un valor 000 (binario), es decir, permisos (---) expresados simbólicamente.

umask_tabla2

Los usuarios normales pueden introducir el comando umask para cambiar los permisos de los nuevos ficheros que creen. El superusuario también puede modificar la configuración por defecto para todos los usuarios modificando un fichero de configuración del sistema. Por normalidad, /etc/profile contiene uno o más comandos de umask. La definición de la umask de /etc/profile puede tener efecto o no, puesto que puede ser invalidada en otros puntos , como en los ficheros de configuración propios del usuario. Aún así, definir la umask de /etc/profile o de otros ficheros del sistema puede resultar útil si desea cambiar la política del sistema que tiene por defecto. La mayoría de las distribuciones de Linux utilizan una umask por defecto de 002 0 022.

umask_tabla_3

Para saber la umask actual escribimos:

Escribiendo umask sin parámetros, este nos informa del la umask actual.

Escribiendo umask sin parámetros, este nos informa del la umask actual.

Si queremos que nos muestre la umask simbólicamente escribimos:

S a umask nos muestra

Añadiendo la opción -S a umask, nos mostrará el resultado en notación simbólica.

Añadiendo la opción -S a umask, nos mostrará el resultado en notación simbólica.

Si partimos de que los permisos por defecto para archivos son 666 y necesitamos que nuestros archivos se creen con 660, entonces: 666 – 660 = 006.

Además de definir la máscara con umask, los usuarios pueden cambiar el grupo por defecto con newgrp como, por ejemplo, en newgrp sacalm, para crear nuevos ficheros estableciendo sacalm como grupo. Para utilizar este comando, el usuario debe ser miembro de este grupo especificado. El comando newgrp también acepta el parámetro -l, como en newgrp -l sacalm, que reinicializa el entorno si el usuario acaba de acceder.