Permisos predeterminados en Linux

,
Permisos predeterminados en Linux

En artículos anteriores hemos hablado sobre cómo Linux maneja los permisos de archivos y directorios, así como los permisos especiales los cuales nos permiten solucionar de cierta forma los inconvenientes propios del diseño del sistema de archivos de Linux. En este artículo hablaremos cómo el sistema operativo Linux asigna lo permisos predeterminados a los nuevos archivos y directorios creados por los usuarios.

Permisos Predeterminados

Veamos el siguiente escenario: creamos un nuevo archivo y al analizar sus permismos vemos permite la lectura y escritura (rw-rw-rw- ó en formato octal: 666) a todos los usuarios; esto de cierta forma es demasiado «abierto», por lo que ejecutamos el siguiente comando para reajustar los permisos y solo permitir acceso de escritura al propietario:

Pasado un rato necesitamos crear otro archivo y al comprobar los permisos vemos que sucede los mismo, entonces volvemos a ejecutar el comando chmod para asignarle al nuevo archivo acceso de escritura solo al propietario.

Afortunadamente existe una forma de cambiar los permisos predeterminados al crear un nuevo archivo o directorio. En los sistemas RHEL y derivados este valor puede ser configurado tanto en el archivo «/etc/bashrc» o «~/.bashrc«. Mientras que en sistemas Debian y derivados el valor puede ser configurado en el archivo «/etc/bash.bashrc» o «~/.bashrc«.

Este valor que permite determinar los permisos por defecto para los nuevos archivos y directorios creados es conocido como umask. El valor máximo para archivos y directorios es diferente, lo cual implica que el valor de umask resulta en permisos predeterminados diferentes si se trata de un archivo o directorio.

Los permisos predeterminados sin un valor de umask establecido son:

  • Archivos: rw-rw-rw- (666)
  • Directorios: rwxrwxrwx (777)

El valor de umask de forma simbólica para el shell actual puede verse ejecutando:

El valor anterior enmascara las cuatro posiciones (permisos especiales, permisos del propietario del usuario, permisos del propietario del grupo y otros permisos) e indica a través de los «2» que el permiso de escritura está enmascarado o no se usa.

Nota: El primer puesto nunca tiene ningún efecto, ya que los permisos especiales nunca se configuran de manera predeterminada. Como resultado, el valor de umask de 0022 es realmente el mismo que 022.

Calculando los Nuevos Permisos Predeterminados

Si creamos un nuevo archivo con un valor de umask establecido a 022, se obtendrá:

Mientras que para un nuevo directorio sería:

Esta asignación de nuevos permisos predeterminados es establecida a través de la siguiente fórmula:

Valor máximo predeterminado (archivo/directorio) – valor de umask = valor de creación

Podemos cambiar el valor de umask del shell actual a 027 para obtener permisos predetermiandos más rectrictivos al crear nuevos archivos y directorios:

En el ejemplo anterior podemos notar que el valor de umask (027) tiene un valor mayor que el permitido para los archivos (666) por lo que en este caso 6 – 7 = 0, lo cual resulta en 640 (666 – 027 = 640) para los nuevos archivos creados, mientras que para los directorios sería 750 (777 – 027 = 750). Por tanto los valores de umask van desde 000 a 777 debido a que los directorios tiene como valor máximo predetermiando 777, mientras que los archivos tienen 666. 

Punto Final

Finalmente, es importante tener en cuenta que, si bien cada una de tus shell tiene inicialmente el mismo valor de umask, puedes cambiar el valor de umask en un shell y no es afectado en otros.

Si deseas puedes ver el valor de umask de forma simbólica:

Existen otras formas de calcular el valor de umask así como los permisos predeterminados, pero hemos optado por el método más simple.

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *