permisos-de-ficheros-y-carpetas-en-raspberry-pi

Permisos de ficheros y carpetas en Raspberry Pi

En esta entrada vamos a ver cómo funciona el sistema de permisos de ficheros y carpetas en un sistema operativo basado en Linux como Raspbian en Raspberry Pi.

Llevamos ya muchas entradas dentro de la sección de Raspberry Pi destinadas a ver el manejo fundamental del sistema operativo Linux, que nos permitirá abordar los tutoriales más avanzados.

Acostumbrarnos al sistema de permisos de ficheros y carpetas es otra de esas cosas con las que, tarde o temprano, nos va a tocar lidiar en Linux ya que es una de las características principales de este sistema operativo.

Como sabemos, una de las fortalezas de Linux es su seguridad. Una parte importante de la misma recae en su sencillo pero robusto sistema de permisos. Así que es importante entenderlos y manejarlos con soltura.

Mostrar permisos en Linux

Cada fichero y carpeta en Linux tiene un propietario, un grupo de propietarios, y una serie de permisos asociados a cada uno de estos roles. Podemos verificar los permisos simplemente listando los ficheros con este comando


#Mostrar permisos
ls -lh

raspberry-pi-listar-permisos

Por ejemplo, el fichero ‘hola.txt’ vemos que tiene:

-rw-r--r-- pi pi

Esto significa que el propietario del fichero es el usuario ‘pi’, y el grupo de usuarios es ‘pi’

raspberry-pi-permisos

Por su parte, el principio de la línea representa los permisos que tienen los distintos roles usuarios sobre el fichero o carpeta.

  • El primer caracter se reserva para permisos especiales
  • Tres siguientes, permisos del usuario propietario (u)
  • Tres siguientes, permisos del grupo propietarios (g)
  • Tres últimos, permisos del resto de usuarios (o)

Por otro lado, los caracteres de cada uno de los roles carácter significa un permiso, siendo,

  • r: lectura
  • w: escritura
  • x: ejecución

Por tanto, en el ejemplo, los permisos significan,

  • - : No hay permisos especiales
  • rw- : Usuario propietario puede leer y escribir
  • r-- : Grupo propietario puede leer
  • r-- : Otro usuarios pueden leer

Cambiar propietario

Para cambiar el usuario propietario de un fichero o carpeta usamos la orden ‘chown’ (change owner)


#cambiar usuario de archivo
chown usuario archivo

Podemos cambiar los permisos de todas las carpetas y subcarpetas de un directorio de forma recursiva con el parámetro ‘-R’


#cambiar usuario a todos los archivos de un directorio
chown -R usuario directorio

También podemos cambiar el grupo propietario de un fichero con el comando ‘chgrp’ (change group)


#cambiar grupo de archivo
chgrp grupo archivo

Finalmente, podemos cambiar de forma simultánea el usuario y grupo con el siguiente comando.


#cambiar usuario y grupo de archivo.
chown usuario:grupo archivo

Cambiar permisos

Para cambiar los permisos de un fichero empleamos el comando ‘chmod’. Este comando recibe los distintos parámetros

  • Rol, u (usuario) / g (grupo) /o (otros)
  • Acción, + (añadir permisos) / - (quitar permisos)
  • Permiso, r (lectura) / w (escritura) / x (ejecución)

Así, por ejemplo, para dar permisos completos para todos los roles usaríamos


## dar permisos completos a todos los roles
chmod ugo+rwx archivo/directorio

Si queremos aplicar los permisos a todos los ficheros de un directorio y subdirectorio, usamos el parámetro ‘-R’.

Por ejemplo, si quisiéramos quitarle permisos de escritura y ejecución a otros usuarios de forma recursiva haríamos,


## quitar permisos de escritura y ejecución a otros usuarios
chmod -R o-wx directorio

Representación octal de permisos

Finalmente, también resulta muy frecuente trabajar con la representación octal de permisos. En esta se muestra la misma información pero agrupada en 4 dígitos octales, donde cada octal agrupa los 3 permisos (r,w,x) de cada rol de usuarios.

  • Primer octal, permisos especiales
  • Segundo octal, permisos de usuario propietario
  • Tercer octal, permisos de grupo propietario
  • Cuarto octal, permisos de otros usuarios

La equivalencia entre el octal y el equivalente en r-w-x es la siguiente.

OCTALRWX
0000
1001
2010
3011
4100
5101
6110
7111

Con la representación octal el comando ‘chmod’ recibe directamente el permiso deseado, en lugar de añadirlos con ’+’ o ’-‘.

Por ejemplo, para dar permisos totales al propietario, y ningún permiso a los otros roles haríamos


#asignar permisos 0700
chmod 700 archivo/directorio

Por ejemplo, si queremos dar permisos totales al usuario propietario, de lectura al grupo propietario, y ninguno al resto de usuarios, haríamos


#asignar permisos 0740 a fichero
chmod 740 directorio

Hasta aquí el tema de gestión de permisos. Al principio puede parecer engorroso, pero en realidad es un sistema muy robusto y sencillo.

Con un poco de práctica, en seguida le pillaréis el truquillo. Nos vemos en la siguiente entrada ¡Hasta pronto!