Los fundamentos de los permisos en Linux

Los permisos de los archivos son una parte crucial del manejo de los sistemas basados en Linux y son uno de los aspectos esenciales que hay que comprender. En este tutorial te desvelo los fundamentos de los permisos en Linux.

fundamentos de los permisos de archivo en Linux

Como Linux es un sistema operativo que admite múltiples usuarios, tiene que recurrir a un sistema de permisos para proporcionar cierta seguridad y privacidad.

Si Linux no contuviera un sistema de permisos, entonces cualquier usuario podría acceder a los archivos de cualquier otro usuario, esto incluye los archivos del sistema raíz.

Al implementar los permisos, Linux puede controlar quién puede interactuar con un archivo en particular.

Para cada archivo, Linux mantiene un registro sobre qué usuario y grupo lo posee. Además de esto, también mantiene los bits de permiso.

Estos bits de permiso le dicen al sistema lo que los usuarios, grupos u otros (Todos los demás) pueden hacer a un archivo, ya sea escribir en el archivo, leer el contenido del archivo o ejecutar el archivo.

Los fundamentos de los permisos en Linux

Grupos de permisos

Antes de profundizar en el tema de los permisos, primero voy a explicar los diferentes grupos de permisos que existen en Linux.

En Linux, hay tres grupos de permisos distintos, Usuario, Grupo y Otros.

Grupo de permisos de usuario

Este grupo tiene permisos para el usuario que actualmente está marcado como propietario del archivo o directorio.

Normalmente es el usuario que creó el archivo, pero la propiedad puede cambiarse en Linux haciendo uso del comando chown.

Grupo Permiso Grupo

Este grupo de permisos se utiliza para definir los permisos que se aplican a todos los miembros del grupo que actualmente posee el archivo o directorio.

Por ejemplo, si el grupo al que pertenece el archivo o directorio se llama “tecnolitas”, todos los usuarios que pertenecen a ese grupo tienen asignados estos permisos.

Al igual que el grupo de permisos del usuario, este es por defecto el mismo grupo del usuario que creó el archivo/directorio.

Puedes cambiar el grupo de un archivo o directorio haciendo uso del comando chown o chgrp.

Otro grupo de permisos

Este grupo de permisos es para los usuarios que no son propietarios o miembros del grupo del archivo o directorio.

Normalmente se restringen mucho los permisos utilizados para este grupo, ya que cualquier usuario tiene asignados estos permisos.

Por ejemplo, es probable que no permita a nadie de este grupo escribir o ejecutar un archivo.

Permisos en Linux

En Linux, hay tres permisos diferentes que puedes especificar para cada uno de los tres grupos de permisos. Estos tres permisos son Lectura, Escritura y Ejecución.

Permiso de lectura

Cuando se establece para un archivo, el permiso de lectura permite al grupo de permisos abrir y ver su contenido.

Cuando se establece para un directorio, permite que el grupo liste el contenido del directorio.

Permiso de escritura

Cuando se ha establecido el permiso de escritura para un archivo, significa que el grupo de permisos podrá modificar ese archivo.

Cuando se haya asignado el permiso de escritura a un directorio, el grupo de permisos podrá añadir, eliminar y renombrar los archivos almacenados en ese directorio.

Hay algunas cosas más que hay que tener en cuenta cuando se trata de permisos de escritura.

Si permites que un grupo escriba en un archivo pero no en un directorio, el usuario sólo podrá modificar el contenido de ese archivo.

Sin el permiso de escritura en el directorio, el grupo de usuarios no podrá añadir, eliminar o renombrar ningún archivo dentro del mismo.

Permiso de ejecución

Con el permiso de ejecución establecido en un archivo, ese grupo de permisos podrá ejecutar el archivo.

Si el archivo no es un programa ejecutable, entonces es mejor no establecer ningún derecho de ejecución en el archivo.

Cuando se establece el permiso de ejecución en un directorio, significa que un grupo de permisos podrá entrar en el directorio y acceder a cualquiera de sus archivos.

Ver los permisos en Linux

En Linux, puedes ver tanto el propietario de un archivo como los permisos que tiene, utilizando el comando ls -l.

Por ejemplo, si utilizas este comando para obtener los detalles de un archivo como nuestro archivo de ejemplo llamado samplefile, verás detalles similares a los siguientes.

Verás que el comando ls -l devuelve varias columnas de información diferentes.

Para esta guía, sólo nos centraremos en la primera, tercera y cuarta columnas, ya que todas ellas están directamente relacionadas con los permisos.

Columna 1

El primer carácter de la columna anota el tipo de archivo. Si se trata de un archivo normal, como en nuestro ejemplo, será -, si se trata de un directorio, el carácter que se muestra es d.

También hay algunos otros personajes que pueden ser, pero lo dejaremos para otra guía.

Los siguientes nueve caracteres son los bits de permiso. Puedes separar estos nueve caracteres en 3 conjuntos de caracteres.

Primer conjunto de permisos

El primer conjunto son los permisos para el propietario del usuario. En nuestro ejemplo, esto significa que el propietario tiene los siguientes tres bits de permiso: rw-.

Segundo conjunto de permisos

El segundo conjunto son los permisos para el propietario del grupo. En el ejemplo, puedes ver que el grupo tiene los siguientes permisos: r–.

Tercer conjunto de permisos

El último y tercer conjunto contiene los permisos para otros. De nuevo, en nuestro ejemplo, puedes ver que el grupo otros tiene los mismos permisos que el propietario del grupo: r–.

Los personajes del permiso

Cada uno de estos conjuntos contiene tres posibles permisos que se pueden establecer.

Un grupo que tiene todos los permisos habilitados se vería como rwx, donde r significa Lectura, w significa Escritura y x significa Ejecución.

Si un permiso concreto está desactivado, su punto será sustituido por un guión ().

Por ejemplo, si el grupo no tiene el permiso de escritura, entonces sus bits de permiso serían r-x. Con la columna de escritura sustituida por un guión.

SímboloUsoDescripción
rPermiso de lecturaPermite al grupo de permisos leer el contenido del archivo o directorio
wPermiso de escrituraPermite al grupo de permisos escribir contenido en el archivo o directorio
xPermiso de ejecuciónPermitir que el grupo de permisos “ejecute” un archivo.
Permiso deshabilitadoBloquea un grupo de permisos para que se ejecute el permiso al que sustituye.

Columna 3

Esta columna especifica el nombre de usuario del propietario del archivo o directorio.

Cuando se establecen permisos para el grupo de permisos “Propietario”, este es el usuario al que afecta.

Por ejemplo, si el propietario del archivo es un usuario llamado pi y tiene los permisos rw- establecidos, entonces ese usuario sólo podrá leer y escribir en ese archivo o directorio.

Columna 4

La cuarta columna especifica el nombre del grupo al que pertenece el archivo o directorio.

Cuando se establecen permisos para el grupo de permisos “Grupo”, estos afectarán a todos los usuarios que sean miembros de ese grupo siempre que no sean el propietario del archivo/directorio.

Por ejemplo, supongamos que tenemos un grupo llamado frambuesa que tiene tres usuarios llamados “mi”, “vida” y “arriba”. Los permisos definidos para este grupo afectarán a los tres usuarios cuando interactúen con el archivo o directorio.

Cambiar los permisos en Linux

En Linux puedes modificar los permisos asignados a un archivo o directorio haciendo uso del comando chmod.

Para modificar los permisos necesitará un usuario que tenga privilegios de superusuario.

A continuación se muestra un ejemplo de uso del comando en Linux.

chmod u+w ficheroejemplo

Con este comando, estamos utilizando la notación simbólica para dar al grupo de permisos del propietario privilegios de escritura en un archivo llamado ficheroejemplo.

Espero que, a estas alturas, tenga una comprensión básica de cómo funcionan los permisos en Linux. Puedes practicar con la unidad USB montada en tu Raspberry Pi

Si necesitas ayuda para averiguar los permisos o tienes alguna opinión, no dudes en dejar un comentario a continuación.

!Que tengas un Ingenioso día!

¡que tengas un ingenioso día!

Contrata tu plan Ingenios@ de Sistemas por 5€ al mes y responderé a todas tus preguntas sobre tecnología en el menor tiempo posible. Pasa a formar parte de la comunidad Ingenios@s de Sistemas y disfruta de contenido exclusivo y aprende sobre sistemas Open Source, Blockchain, SmarContract, Web3, Inteligencia Artificial y Reaidad Virtual, súbete al tren de la Revolución 4.0

Si quieres estar al día y no perderte nada Suscribete al Podcast Ingenios@s de Sistemas, un episodio diario que te mantendrá informado y formado en esta vertiginosa carrera.

Deja un comentario

Share to...