Alinos - Notas

Asignar permisos a ficheros y directorios en Linux y otros Unix

Configurar permisos de ficheros y directorios en Linux y otros Unix con el comando "chmod"


Para asignar permisos se puede ejecutar un orden tipo: chmod -R 777 *

Esta orden utiliza el comando "chmod" (que en algunos casos necesitará llevar el "sudo" delante) junto con un número de tres dígitos y luego el fichero o ficheros/directorios a los que hay que aplicar los permisos. El parámetro "-R" hace que el comando se aplique recursivamente en todos los ficheros/directorios existentes bajo el directorio actual.

En el ejemplo anterior se asignaban permisos de "Lectura", "Escritura" y "Ejecución" al Usuario, al Grupo y a Otros usuarios.

El primer "7" de los tres indica los permisos del Usuario actual.

El segundo "7" indica los permisos asignados al Grupo del usuario actual.

El tercer "7" establece los permisos asignados a Otros usuarios.

Estos números "7" son el número decimal equivalente al número binario que representan los permisos de "Lectura", "Escritura" y "Ejecución" según los valores de la siguiente tabla:

Decimal Binario Lectura (r) Escritura (w) Ejecución (x)
0 000 NO NO NO
1 001 NO NO SI
2 010 NO SI NO
3 011 NO SI SI
4 100 SI NO NO
5 101 SI NO SI
6 110 SI SI NO
7 111 SI SI SI

La asignación de permisos con "chmod" se puede realizar utilizando valores numéricos decimales del "0" al "7" como se indicaban en la tabla anterior pero también se pueden utilizar "letras" para realizar la misma configuración de permisos como se indica a continuación...

Las letras que identifican los tipos de Usuario son las siguientes:

Los permisos se establecen usando las siguientes letras:

Delante de las letras indicadas anteriormente se pueden usar alguno de los siguientes modificadores:

Desde consola podemos usar un "ls -la" para ver los ficheros y sus permisos...

drwxr-xr-x  4 usuario1 grupo1 4096 sep 15 00:33 .
drwxr-xr-x 36 usuario1 grupo1 4096 sep 15 00:13 ..
drwxr-xr-x  2 usuario1 grupo1 4096 sep 15 00:17 directorio2
drwxr-xr-x  2 usuario1 grupo1 4096 sep 15 00:32 directorio_publico
-rw-r--r--  1 usuario1 grupo1   78 sep 15 00:33 fich_publico.txt
-rw-r--r--  1 usuario1 grupo1   22 sep 15 00:14 notas.txt
-rw-r--r--  1 usuario1 grupo1   64 sep 15 00:31 prueba.c
-rw-r--r--  1 usuario1 grupo1   20 sep 15 00:14 prueba.o

En el anterior ejemplo vemos que los "directorios" tienen una letra "d" al principio de la línea mientras que los restantes "ficheros" no tienen esa letra "d". En este ejemplo todos los ficheros y directorios están creados por el Usuario "usuario1" que pertenece al Grupo "grupo1" y que tienen los permisos asignados por defecto.

Después vienen 3 bloques de 3 letras cada uno con letras tipo "rwx". El primer bloque de tres letras corresponde a los permisos del "Usuario", el segundo bloque son los permisos del "Grupo" al que pertenece el usuario actual y el tercer bloque son los permisos de "Otros usuarios".

Las letras pueden ser la "r" si hay permisos de "lectura", la "w" si el fichero tiene permisos de "escritura", la "x" si hay permisos de "ejecución" o un guión "-" si no están asignados permisos.

Ejemplos de este tipo de asignación de permisos:

chmod +x prueba.o Asigna permisos de "Ejecución" al "Usuario" y "Grupo" actual y a "Otros usuarios" sobre el fichero "prueba.o" (anteriormente el "Grupo" y "Otros usuarios" sólo tenían permisos de lectura sobre ese fichero). Si ejecutamos esa orden y volvemos a sacar un "ls -la" saldría de la siguiente forma...

drwxr-xr-x  4 usuario1 grupo1 4096 sep 15 00:33 .
drwxr-xr-x 36 usuario1 grupo1 4096 sep 15 00:13 ..
drwxr-xr-x  2 usuario1 grupo1 4096 sep 15 00:17 directorio2
drwxr-xr-x  2 usuario1 grupo1 4096 sep 15 00:32 directorio_publico
-rw-r--r--  1 usuario1 grupo1   78 sep 15 00:33 fich_publico.txt
-rw-r--r--  1 usuario1 grupo1   22 sep 15 00:14 notas.txt
-rw-r--r--  1 usuario1 grupo1   64 sep 15 00:31 prueba.c
-rwxr-xr-x  1 usuario1 grupo1   20 sep 15 00:14 prueba.o

chmod u+x prueba.o    Esta orden es similar a la anterior pero sólo asigna permisos de ejecución (x) al "Usuario" (u).

chmod go+x *    Esta orden añade permisos de ejecución a los usuarios "g" (grupo) y "o" (otros usuarios) sobre todos los ficheros existentes en el directorio actual.

chmod ugo-x prueba.o    Esta orden elimina el permiso de ejecución a todos los tipos de usuarios (u=usuario, g=grupo y o=otros usuarios) sobre el fichero "prueba.o".

chmod go= *    Esta orden elimina cualquier permiso (lectura, escritura, ejecución) que pudiesen tener los usuarios "g" (grupo) y "o" (otros usuarios) sobre todos los ficheros (*).

chmod -R ugo+rw *    Esta orden añade permisos de lectura (r) y escritura (w) al usuario actual (u), a los demás usuarios del grupo (g) y a otros usuarios (o) sobre todos los ficheros existentes en el directorio actual y, recursivamente, a todos los ficheros/directorios existentes bajo el directorio indicado.


Categoría: Linux

Alinos - Notas Volver al Inicio de las Notas

Alinos - Notas Editar Notas


http://alinos.sytes.net

Contactar por e-mail

Aviso a navegantes: Las anotaciones recopiladas en esta base de datos son sólo una ayuda para mi memoria. No pretenden ser un tutorial ni un diccionario así que es posible que no sean de utilidad en otros casos o equipos diferentes a los que yo he usado y seguramente contienen múltiples errores e imprecisiones.