27 de abril de 2011

Permisos por Defecto de los Archivos en Linux (umask)


El comando umask, es la abreviatura en inglés de user file creation mode mask (modo de la mascara de creación de archivos), es decir, el formato de permisos que van a tener los archivos y los directorios que el usuario vaya creando, por lo tanto, este comando sirve para establecer los permisos que tiene por defecto los nuevos ficheros y directorios que vayamos creado.

Por ejemplo Linux tiene de valor umask por defecto es 022, para comprobarlo podemos lanzar este comando: umask -pS .

Y los permisos que establece este valor (022), cuando el usuario crea un directorio o un fichero son:

  • Para el usuario: rwx (lectura, escritura y ejecución).
  • Para el grupo: r-x (lectura y ejecución).
  • Para el otros: r-x (lectura y ejecución).

Para ver los el modo de mascara de creación que tiene un usuario, tenemos que abrir un terminal, entramos con el usuario que queremos cambiar o ver la modo de mascara y lanzamos el siguiente comando con los siguientes parámetros:


antonio@Pc-15:$ su aceitunero
Contraseña: *****
aceitunero@Pc-15:$ umask -pS
umask -S u=rwx, g=rx, o=rx


Para asignar una nueva mascaras, la forma más sencilla es restar el valor de los permisos que deseamos asignar, al valor de la mascara 777.

Por ejemplo para cambiar los permisos cuando creamos los ficheros o archivos:


421 421 421 = 730 (En octal se agrupa en 3 bits).
111 011 000 = Permisos que vamos a dar (1 da permiso y 0 deniegan).
rwx rwx rwx   = Permisos del archivo o fichero.
Prop. Grupo Otros


Restamos el resultado a 777:

777-
730
____

047

Para aplicar esta mascara lanzaríamos las siguiente línea de comandos:

aceitunero@Pc-15:/bin/archivo1$ umask 047

Comprobamos que se ha aplicado la mascara:

aceitunero@Pc-15:/bin/archivo1$ umask -pS

umask -S u=rwx, g=wx, o=

Creamos un archivo de texto y un directorio:

aceitunero@Pc-15:~$ nano texto.txt
aceitunero@Pc-15:~$ mkdir pruebas

Comprobamos los permisos:

aceitunero@Pc-15:~$ ls -l

drwx-wx--- 2 aceitunero aceitunero 4096 2011-04-27 19:27 pruebas
-rw--w---- 1 aceitunero aceitunero 15 2011-04-27 19:26 texto.txt

Espero que os sea de ayuda a todos un saludo:

Antonio

3 comentarios:

  1. yo utilizo chmod para cambiar permisos con numeros 0 u g a , no tengo ni idea de como volver a los permisos por defecto con un comando en el terminal

    ResponderEliminar
    Respuestas
    1. Permisos en formato numérico octal
      La combinación de valores de cada grupo de los usuarios forma un número octal, el bit x es 20 es decir 1, el bit w es 21 es decir 2, el bit r es 22 es decir 4, tenemos entonces:
      r = 4
      w = 2
      x = 1
      La combinación de bits encendidos o apagados en cada grupo da ocho posibles combinaciones de valores, es decir la suma de los bits encendidos:
      - - - = 0 no se tiene ningún permiso
      - - x = 1 solo permiso de ejecución
      - w - = 2 solo permiso de escritura
      - w x = 3 permisos de escritura y ejecución
      r - - = 4 solo permiso de lectura
      r - x = 5 permisos de lectura y ejecución
      r w - = 6 permisos de lectura y escritura
      r w x = 7 todos los permisos establecidos, lectura, escritura y ejecución

      Cuando se combinan los permisos del usuario, grupo y otros, se obtienen un número de tres cifras que conforman los permisos del archivo o del directorio.

      Más información: http://www.linuxtotal.com.mx/index.php?cont=info_admon_011

      Eliminar
  2. sabes alguna manera de poder ver el umask que tiene ese proceso lanzado por un usuario x?

    ResponderEliminar

No olvides dejar tu comentario y gracias por tu tiempo ;-)