Cómo controlar los permisos de carpetas y archivos en Linux de forma sencilla

Escrito por Adrián Crespo

Controlar el acceso y la modificación de archivos y carpetas es algo fundamental. Los sistemas operativos son multiusuario, implicando una revisión periódica de los permisos existentes. Muchas veces queremos evitar que otros usuarios del equipo modifiquen los archivos, pero no sabemos cómo conseguirlo. En esta ocasión, os vamos a enseñar o cómo asignar permisos a carpetas y archivos en Linux.

Para que todo sea mucho más claro vamos a dividir este artículo en varios apartados que permitirán entender mejor en todo momento de qué se está hablando. Hay que aclarar que de todo lo que se va a hablar a partir de ahora está relacionado con una terminal. Si no estás familiarizado con este componente de Linux tal vez este sea el mejor momento, ya que el nivel de dificultad de lo que vamos a hablar es bajo.

Preparando nuestro sistema para la prueba

No queremos que los cambios que realicéis en este artículo modifiquen partes vitales de este sistema operativo. Por lo tanto, en cada carpeta personal cada usuario creará una carpeta:

mkdir CarpetaRedesZone

Posteriormente, nos moveremos dentro de esta carpeta y crearemos un archivo:

cd CarpetaRedesZone

touch archivoDePrueba

Para finalizar escribiremos el siguiente comando para subir de nivel y salir de la carpeta que hemos creado:

cd ..

Con esto ya tenemos nuestro sistema preparado.

Obtener información de ficheros y carpetas

Si queremos listar los archivos existentes en una carpeta solo tendremos que escribir el siguiente comando:

ls

Con esto solo obtenemos el nombre de los archivos o carpetas del lugar del path en el que nos encontramos.

Para obtener mucho más detalle tendremos que escribir lo siguiente:

ls -l

Este comando ofrece la siguiente información (en orden de izquierda a derecha):

  • Permisos
  • Usuario propietario
  • Grupo propietario del archivo
  • Tamaño última fecha de modificación
  • Nombre

Interpretar los permisos que tiene un fichero o carpeta

En esta ristra ofrecida veremos que para cada archivo o carpeta hay una serie de letras en primer lugar. Estos son los permisos que posee el archivo y se leen de la siguiente forma:

otorgar-permisos-fichero-o-carpeta-linux

Para que se entienda mejor, si queremos que solo el usuario propietario pueda leer y escribir en el archivo, el resultado sería:

–  r w – – – – – – –

Es decir, podremos otorgar permisos a los siguientes roles:

  • Usuario propietario
  • Grupo al que pertenece el propietario
  • Resto de usuarios del equipo

Formas de cambiar los permisos

Partimos del comando chmod. Este será el que nos permitirá añadir o restar permisos a una carpeta o un archivo existente en el sistema de ficheros.

Letras

Existen tres roles:

  • u: usuario
  • g: grupo
  • o: otros

Dos símbolos:

  • +: añadir permisos
  • -: quitar permisos

Tres tipos de permisos:

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

A continuación, os ofrecemos una serie de ejemplos para que veáis de qué estamos hablando:

Dar permisos completos a todos los roles:

chmod ugo+rwx archivoDePrueba

Quitar permisos de escritura y ejecución a otros usuarios:

chmod o-rwx archivoDePrueba

Al final, todo radica en combinar los roles, símbolos y permisos en función de la necesidad que tengamos.

Basado en binario

El comando chmod también es compatible con otra nomenclatura que os vamos a enseñar y que está basada en binario.

Imaginad que los permisos del propietario (r w x) están identificados por 0 y 1. Es decir, si por ejemplo queremos dar permisos de lectura y escritura, la ristra obtenida sería:

1 1 0

Si queremos solo el permiso de lectura sería:

1 0 0

Por lo tanto, teniendo en cuenta todas las posibilidades existentes obtenemos los siguientes valores:

  • 0 0 0: 0
  • 0 0 1: 1
  • 0 1 0: 2
  • 0 1 1: 3
  • 1 0 0: 4
  • 1 0 1: 5
  • 1 1 0: 6
  • 1 1 1: 7

Es decir, esto es algo extrapolable tanto al grupo como a los otros usuarios.

El formato del comando sería el siguiente:

chmod xxx archivoDePrueba

Donde las x se cambiarán por un número en función de los permisos que se asigne.

Por ejemplo, si queremos dar permisos totales al propietario y dejar sin ningún permiso a los otros dos roles, el comando sería:

chmod 700 archivoDePrueba

Si queremos dar permisos de lectura y escritura a todos los roles entonces será:

chmod 666 archivoDePrueba

Con estas dos formas tan sencillas podremos fijar los permisos de archivos y carpetas en nuestro equipo Linux. Además, tendremos al alcance de nuestra mano el comando ls -l para obtener la información en tiempo real de los ficheros y carpetas del sistema.

Últimos análisis

Valoración RZ
7
Valoración RZ
9
Valoración RZ
8
Valoración RZ
8
Valoración RZ
8
Valoración RZ
8
Valoración RZ
10