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
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.