Otorgando Permisos en Linux
- 2 Comentarios
CHMOD (”Change mode”) es un comando UNIX que permite cambiar los permisos de acceso de un archivo. Cada archivo tiene cuatro clases de acceso, que pueden ser permitidas o denegadas. Se pueden aplicar diferentes permisos al dueño del fichero, al grupo al que el fichero pertenece, a otros y todos los usuarios. Cada una de estas cuatro clases de usuarios (dueño, grupo, resto de usuarios y todos) puede tener permisos de lectura (r), escritura (w) y ejecución (x).
|
Clases de usuarios |
Los permisos de sistemas UNIX se dividen en cuatro clases, conocidas como usuario, grupo, otros y todos (con frecuencia abreviado UGOA por sus siglas en inglés).
Estos son:
u – (dueño/owner): dueño del archivo o directorio
g – (grupo/group): grupo al que pertenece el archivo
o – (otros/other): todos los demás usuarios que no son el dueño ni del grupo
a – (todos/all): incluye al dueño, al grupo y a otros
Los permisos efectivos aplicados a un determinado usuario en relación a un archivo se determinan en un orden lógico de precedencia. Por ejemplo, el usuario propietario del archivo tendrá los permisos efectivos dados a la clase de usuario, sin importar los asignados a la clase de grupo o a la clase de otros.
|
Tipos de permiso de acceso: |
read (lectura); r: Permiso para ver el archivo o directorio, sin hacer cambios.
write (escritura); w: Permiso de escritura: puede escribir el archivo, y por lo tanto, cambiarlo.
execute (ejecución); x: El archivo o directorio puede ser ejecutado. Se usa para directorios con scripts, formularios, etc.
Entonces tenemos cuatro categorías de usuarios (”user,” “group,” “other,” y “all”) y tres tipos de permisos: “r,” “w,” y “x”.
|
Fijando permisos |
La orden chmod puede usarse con letras o numeros. La forma mas corriente es expresar los permisos numéricamente. Para comprender el significado tienes que tener en cuenta que convencionalmente 4 significa permiso de lectura. 2 permiso de escritura y 1 permiso de ejecución. Sumando estos valores vemos que un archivo puede tener los siguientes permisos (por cada tipo de usuario):
Lectura = r = 4
Escritura = w = 2
Ejecución = X = 1
Para ver los permisos de una carpeta o de un archivo, abran la Consola y luego digiten la siguiente orden (se visualizarán los permisos del directorio donde se encuentran posicionados):
$ ls -l
Como ejemplo podemos observar la siguiente gráfica:
Veamos las combinaciones posibles de los diferentes permisos (deben cambiar la letra por su equivalencia en números):
7 = rwx = 4 + 2 + 1 = lectura, escritura y ejecución
6 = rw- = 4 + 2 + 0 = lectura y escritura
5= r-x = 4 + 0 + 1 = lectura y ejecución
4 = r– = 4 + 0 + 0 = lectura
3 = -wx = 0 + 2 + 1 = escritura y ejecución
2 = -w- = 0 +2 + 0 = escritura
1 = –x = 0 + 0 + 1 = ejecución
0 = — = 0 + 0 + 0 = sin acceso
|
Cambiando permisos |
Para cambiar los permisos, lo hacemos a través de la consola y con la orden chmod:
chmod [modificadores] permisos archivo/directorio
modificadores es opcional, y puede tomar los valores:
-f: no visualiza los posibles mensajes de error que puedan ocurrir debido a conflictos en la asignación de permisos.
-v: lista los archivos y directorios a los que se les va aplicando el comando a medida que el mismo se ejecuta
-R: aplica el comando chmod recursivamente a todos los archivos y subdirectorios.
Algunos ejemplos:

chmod 755 archivo
Dueño: permiso total (lectura, escritura y ejecución); Grupo: lectura y ejecución; Todos los demás: lectura y ejecución.
chmod 542 archivo
Dueño: lectura y ejecución; Grupo: lectura; Todos los demás: escritura.
chmod 744 archivo
Dueño: permiso total (lectura, escritura y ejecución); Grupo: lectura; Todos los demás: lectura.
Establecer permisos para un directorio y todos sus archivos:
chmod -R 755 /var/www/
Establece el permiso para toda el directorio www y sus subdirectorios y archivos que la conforman. Dueño: permiso total (lectura, escritura y ejecución); Grupo: lectura y ejecución; Todos los demás: lectura y ejecución.
La sintaxis para usar chmod con texto:
chmod [ugoa][+-=][rwx] [nombre_archivo]
Donde [u=user, g=group o=other y a=all]; [+/-/= agrega, quita o establece los atributos siguientes] [r=lectura, w=escritura, x=ejecución]
Por ejemplo:
chmod +r arch.txt
agrega permisos de lectura a todos los usuarios
chmod u+w arch.txt
agrega permisos de escritura al dueño
chmod –x arch.txt
elimina el permiso de ejecución a todos los usuarios
chmod u=rw, go= arch.txt
establece permisos al dueño de lectura y escritura; elimina todos los permisos a los demás usuarios
|
Cambiando propietarios y grupos: chown y chgrp |
Para cambiar el usuario y el grupo se usan chown (chamge owner) y chgrp (change group). Estas órdenes sólo la pueden ejecutar el usuario root:
chown [-R] usuario fichero(s)/diretorio(s)
chgrp [-R] grupo ficheros(s)/directorio(s)
La opción -R indica que se procese de manera recursiva los directorios que se le indiquen.
Ejemplos:
Cambiar el propietario del directorio y de todo el contenido /home/deploy al usuario jboss y al grupo users:
chown -R jboss /home/deploy
chgrp -R users /home/deploy
Cambiar al usuario root el fichero /bin/ls:
chown root /bin/ls
Esta entrada es una composición de los siguientes link: link1, link2.
Saludos.
