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.

Anuncio:

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

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

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

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)

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

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

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

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

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,

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

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

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!

Si te ha gustado esta entrada y quieres leer más sobre Raspberry Pi puedes consultar la sección
tutoriales de Raspberry Pi/Linux

Anuncio:

Previous Protocolos de comunicación para IoT
Next MVVM Light, un framework ligero para MVVM en .NET
1000