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:
Permisos | FILE | DIRECTORY |
Máximo por defecto | 666 | 777 |
umask | 0022 | 0022 |
Default | 644 | 755 |
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/
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.
Los permisos en números:
1 –> ejecución, x
2 –> escritura, w
3 –> ejecución y escritura, xw
4 –> lectura, r
5 –> lectura y ejecución, rx
6 –> lectura y escritura, rw
7 –> lectura, escritura y ejecución, rwx