A la hora de crear un fichero o directorio en Linux, se nos genera el objeto con unos permisos por defecto, esos permisos se definen con el comando umask . Para ver que umask tenemos asignado en nuestro sistema operativo podemos ejecutar umask a secas.

[root@sercentos7 ~]# umask
0022

Si queremos ver que hace este 0022 podemos ejecutar umask -S

[root@sercentos7 ~]# umask -S
u=rwx,g=rx,o=rx

Podemos observar que con 0022 cuando creamos una carpeta / fichero tenemos los permisos de lectura y escritura para el usuario, u=rwx, tenemos los permisos de lectura y ejecución para el grupo, g=rx, y tenemos lectura y ejecución para otros, o=rx.

Por defecto cuando hablamos de ejecución no estamos indicando que el fichero sea ejecutable, la x es para hacer que el directorio sea ejecutable y podamos acceder a él con el comando cd.

Para calcular el umask tenemos la siguiente tabla:

PermisosFILEDIRECTORY
Máximo por defecto666777
umask00220022
Default644755
Permisos umask

Los ficheros como máximo tendrán 666 y los directorios 777, si tenemos 0022 simplemente hemos de restar.

666 – 0022 = 644

Por lo que los ficheros se crearán con los permisos u=rw,g=r,o=r y para los directorios

777 – 0022 = 755

Se crearán con los permisos u=rwx,g=rx,o=rx.

Para establecer nuestra configuración por defecto lo tenemos que añadir a /etc/bashrc (/etc/bash.bashrc) ó /etc/profile, en este ultimo fichero, profile, el cambio sería para todos los usuarios. Con cualquier editor de ficheros modificamos el fichero ~/.bashrc si queremos el cambio solo para un usuario o el fichero profile si queremos el cambio para todos los usuarios y añadimos la línia:

umask <permisos>.

Ejemplo:

umask 0022

Web para calcular que umask necesitas según los permisos que quieras dar.
https://wintelguy.com/umask-calc.pl

Y también por si hace falta aquí dejo un enlace hacía una calculadora binaria.
https://es.planetcalc.com/911/

2 comentario en “Permisos y uso del umask”
  1. En lugar de usar letras, también puedes utilizar números para representar los permisos:

    r: 4
    w: 2
    x: 1

    Para obtener un permiso, sumas los valores de las letras correspondientes. Por ejemplo:

    rwx: 4 (lectura) + 2 (escritura) + 1 (ejecución) = 7
    rw-: 4 (lectura) + 2 (escritura) + 0 (ninguna ejecución) = 6
    r-x: 4 (lectura) + 0 (ninguna escritura) + 1 (ejecución) = 5

    Así, la cadena rwxrwxrwx se puede representar como 777, y rw-rw-rw- como 666. Esto facilita la asignación de permisos a archivos y directorios mediante comandos como chmod.

Deja una respuesta