Cuando creamos un archivo en nuestro sistema por defecto se le asignan permisos de lectura y escritura tanto para el propietario como para todos los demás, los permisos pueden ser modificados para que se asignen otros permisos distintos a los que vienen por defecto en la distribución, ésto lo logramos mediante el comando umask.

Hay dos formas de cambiar el valor de los permisos por defecto, una temporal que es ejecutando el comando desde la consola, y que durará mientras nos encontremos activos en esa consola y la otra es hacerla de manera permanente modificando el archivo .bashrc que se encuentra en nuestra carpeta home y que afectará solo a nuestro usuario y la otra es modificando el archivo /etc/profile que afectará a todos los usuarios del sistema, para poder modificar el segundo debemos tener permisos de root.

Generalmente el valor por defecto es 022 en casi todas las distribuciones linux, puedes comprobarlo con el siguiente comando:

huevas@Ubuntu:~$ more /etc/profile | grep umask

Si ejecutas ese comando sustituyendo /etc/profile por .bashrc probablemente no aparezca nada dado que esta configurado directamente en profile, pero es no es impedimento para agregar el umask en .bashrc y afectar únicamente nuestro usuario.

Aquí empezamos a jugar un poco con los números para poder entender un poco más lo que viene debes de saber como se manejan los permisos de lectura, escritura y ejecución de los archivos, si no sabes que onda, aqui puedes aprender un poco al respecto, existen permisos base para la creación de archivos y la de directorios, los permisos base de los archivos es 666 y los de los directorios es 777 partiendo de ésta base de permisos la operación para determinar los permisos de creación de archivos y de directorios es que restemos el valor que le hemos dado a umask a los permisos base, si creamos un archivo se lo restamos a los permisos base de los archivos que son 666 y en caso de ser un directorio lo que se hace es restárselo a los permisos base de los directorios que son 777, a continuación veremos un ejemplo para que sea más claro.

DIRECTORIOS

Permisos base para directorios: 777

Permisos definidos en umask: 022

Operación: Restarle el umask a los permisos base de la siguiente manera:

777 – 022 = 755

Recordando que los valores de los permisos son 1 : Ejecución, 2 :  Escritura y 4 : Lectura tenemos que los directorios se crearán con permisos de lectura, escritura y ejecución para el propietario y solo de lectura y ejecución para todos los demás.

ARCHIVOS

Permisos base para archivos: 666

Permisos definidos en umask: 022

Operación: Restarle el umask a los permisos base de la siguiente manera:

666 – 022 = 644

Recordando que los valores de los permisos son 1 : Ejecución, 2 :  Escritura y 4 : Lectura tenemos que los archivos se crearán con permisos de lectura y escritura para el propietario y solo de lectura para todos los demás.

¿Cómo modifico el umask?

Bien, como ya se había mencionado arriba, hay dos formas de modificar el valor de umask, una es ejecutando en la consola el comando umask seguido del valor que queremos que obtenga que será sólo temporal es decir en el momento en que cerremos la consola se perderá ese valor y se volverá al que se encuentra almacenado en /etc/profile y la otra hacerlo de forma permanente modificando el archivo .bashrc que solo afectará a nuestro usuario o modificando el archivo /etc/profile que afectará a todos los usuarios del sistema, bien, a continuación veremos un ejemplo de la modificación temporal.

huevas@Ubuntu:~/Pruebas$ umask 022 ; touch archivo ; mkdir directorio
huevas@Ubuntu:~/Pruebas$ ls -l
total 4
-rw-r–r– 1 huevas huevas    0 2008-01-05 12:31 archivo
drwxr-xr-x 2 huevas huevas 4096 2008-01-05 12:31 directorio
huevas@Ubuntu:~/Pruebas$ rm archivo ; rmdir directorio/
huevas@Ubuntu:~/Pruebas$ umask 044 ; touch archivo ; mkdir directorio
huevas@Ubuntu:~/Pruebas$ ls -l
total 4
-rw–w–w- 1 huevas huevas    0 2008-01-05 12:33 archivo
drwx-wx-wx 2 huevas huevas 4096 2008-01-05 12:33 directorio
huevas@Ubuntu:~/Pruebas$

En el ejemplo de arriba podemos ver que umask tendrá los permisos por defecto 022, posteriormente creamos un archivo y un directorio, si hacen las cuentas verán que los permisos son correctos acorde a la resta entre umask y los permisos base, después eliminamos el archivo y directorio y modificamos el umask para que tenga un valor de 044, volvemos a crear el archivo y el directorio y mostramos los permisos, hagan las cuentas!!!, que tal???. Ahora, ésto es temporal cuando cerremos la consola umask volverá a tener 022.

Para hacerlo permanente editamos el archivo .bashrc que se encuentra en nuestro home, si están en la consola pueden ejecutar el siguiente comando “gedit .bashrc” y agregar al final del archivo la linea “umask 022″ el 022 pueden modificarlo como ustedes gusten, es el valor que queremos sea restado para obtener los permisos deseados, guardamos el archivo cerramos la consola y la volvemos a abrir, de ahora en adelante umask tendrá el valor que especificamos en .bashrc, si queremos todo como antes pueden eliminar la linea que agregaron al archivo o darle el valor 022.

Espero les sea útil. Saludos!

8 Responses to “Permisos De Archivo Por Defecto En Linux (umask)”

  1. Ricard Says:

    Muchas gracias,

    me ha quedado clarísimo!

    Ricard – Barcelona

  2. Salomón Rincón Says:

    Que pasa si pongo umask igual a 007 y despues creo un archivo? con que permisos queda el archivo?
    El problema que veo es para los archivos 666 – 007 = 659.
    Lo que no entiendo es como se traduce ese 9, es decir, que permisos tendrán el resto de los usuarios sobre el archivo?

  3. Tavix Says:

    Me parece que te salteaste parte de la historia… como es que llegas a ese 9?
    No hay chance de llegar a un nueve ahi haciendo AND de bits

  4. ho Says:

    HOYGA NO HAY CHANCE

  5. fer Says:

    aún estoy confundida
    -rw -r– r– 1 huevas huevas 0 2008-01-05 12:31 archivo
    aqui no hace falta algo
    debe ser 9 solo hay 8

    rwx r-x r-x 2 huevas huevas 4096 2008-01-05 12:31 directorio

  6. PAPITO25 Says:

    HOYGAA, NO HENTIENDO SU TEOREMA, PUDIERA EXPONERLO MEHOR?

  7. PAPITO25 Says:

    HOYIGAAN MADRESITAS SI KIEREN SESO LLAMENME 688652922


Leave a Reply