Comandos de permisos en Linux

Introducción

Antes de empezar a aprender los distintos comandos de Linux para asignar y modificar permisos, tenemos que saber que Linux divide los permisos de dos formas diferentes:

  • Por el tipo de permiso. En Linux existen los permisos de lectura, escritura y ejecución.
    • Lectura: Permite visualizar el contenido de un archivo. Se representa con la letra r (read).
    • Escritura: Permite modificar el contenido de un archivo. Se representa con la letra w (write).
    • Ejecución: Permite ejecutar un archivo. Se representa con la letra x (execute).
  • Por los usuarios a los que afecta. Los permisos se pueden asignar al usuario, a su grupo, o a otros.
    • Usuario: El usuario poseedor del archivo. Por defecto es el creador del archivo, aunque es posible cambiar el poseedor de un archivo con el comando chown.
    • Grupo: El grupo al que pertenece el usuario poseedor del archivo.
    • Otros: El resto de usuarios del sistema.

Visualizar permisos

Para visualizar los permisos de archivos o directorios podemos emplear el comando ls -l.

Vamos a analizar la salida del comando. Lo primero que vemos es que hay 3 elementos: carpeta1, fichero1.txt y fichero2.txt.

Lo siguiente es analizar qué tipo de elementos son. En Linux, los directorios estarán siempre marcados con una d delante (de directory), y los ficheros con un guion . Por tanto, carpeta1 es un directorio, y fichero1.txt y fichero2.txt son ficheros.

Después de eso tenemos una serie de letras o guiones intercalados. Para carpeta1, por ejemplo, tenemos lo siguiente: rwxrwxr-x.

Vamos a dividir esta cadena en 3 bloques de 3 caracteres cada uno. De manera que nos quedaría:

  • rwx
  • rwx
  • r-x

¿Alguna idea de lo que puede ser? Si tienes la mente avispada, quizás ya te hayas dado cuenta de que está relacionado con lo que hemos comentado en la introducción: los tipos de permisos y los usuarios sobre los que se aplican. vamos a desgranar lo que significa cada bloque:

  • rwx: El usuario tiene permisos de lectura, escritura y ejecución.
  • rwx: El grupo tiene permisos de lectura, escritura y ejecución.
  • r-x: El resto de usuarios tienen permisos de lectura y ejecución

Es decir, cada bloque de 3 caracteres indica los permisos con los que cuenta el usuario, su grupo y el resto de usuarios. Si la letra que corresponde al permiso aparece, quiere decir que se tiene el permiso, y si aparece un guion, no se tiene un permiso.

Por ejemplo, tres guiones significarían que no se tiene ningún permiso, y r– significaría que solo se tiene permiso de lectura. Es importante notar que los permisos van en orden: primero lectura, luego escritura y por último ejecución.

Asignar permisos

Para asignar permisos a un archivo utilizamos el comando chmod (change mode, o cambiar modo en español). Este comando va acompañado de manera obligatoria de dos parámetros: los permisos que vamos a asignar y el fichero o directorio al que se los vamos a asignar.

Llegados a este punto tenemos que introducir una nueva forma de representar los permisos: en formato binario. ¿El motivo? Pues que a la hora de sobrescribir los permisos, podemos usar el formato de caracteres que ya hemos visto (rwx) o el formato binario (ceros y unos).

Número octalNúmero binarioLecturaEscrituraEjecución
0000000
1001001
2010010
3011011
4100100
5101101
6110110
7111000

Sobrescribir permisos

Vamos a ver ahora dos formas diferentes de asignar todos los permisos (lectura, escritura y ejecución) a todo el mundo (al usuario, a su grupo y al resto).

chmod 777 fichero1.txt
chmod u,g,o=rwx fichero1.txt

Estos dos comandos son equivalentes, aunque el primero es visiblemente más sencillo si se maneja el formato octal con soltura.

Añadir permisos

chmod +rwx fichero1.txt

Quitar permisos

chmod -rwx fichero1.txt

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *