Comprender los permisos de Linux y usar chmod

Estuve haciendo un curso de Linux durante los últimos meses y un aspecto de Linux que siempre me confundió fue cómo funcionaban los permisos. Por ejemplo, una vez, al cargar un archivo en mi servidor web y obtener un error, mi proveedor de alojamiento web me dijo que cambiara los permisos del archivo a 755.
No tenía idea de lo que eso significaba, aunque cambiar los permisos solucionó el problema. Ahora me he dado cuenta de que los permisos de Linux no son tan complicados, solo tienes que entender el sistema. En este artículo, hablaré sobre los permisos de Linux a un alto nivel y le mostraré cómo usar el comando chmod para cambiar los permisos de archivos y carpetas.
Permisos y niveles de Linux
En Linux, hay básicamente tres permisos de los que debe preocuparse: leer, escribir y ejecutar. Estos tres se explican por sí mismos. Ahora, cuando estos permisos se aplican a un archivo, se aplican en niveles.
Hay tres niveles de permisos en Linux: propietario, grupo y otros. El propietario es el usuario propietario del archivo/carpeta, el grupo incluye otros usuarios en el grupo del archivo y otros que representan directamente a todos los demás usuarios que no son el propietario ni están en el grupo.
Leer, escribir y ejecutar se representan como caracteres simbólicos o números octales. Por ejemplo, si hace ls -li un directorio con algunos archivos, verá la representación de caracteres simbólicos de los permisos.
Los permisos se escriben de la siguiente manera: es un guión o la letra d. Estrellarse significa que es un archivo y d representa su directorio. Tenga en cuenta que el primer bit puede ser un yo si el nombre del archivo es un enlace. Entonces hay tres grupos de tres bits. El primer bit de cada grupo debe leerse, el segundo bit debe escribirse y el tercero debe ejecutarse. Los primeros tres bits se relacionan con el propietario, los segundos tres bits se relacionan con el grupo y los terceros tres bits se relacionan con los demás. Aquí hay una explicación más visual.
Si ve un guión en lugar de una letra, significa que el propietario, el grupo o todos los demás usuarios no tienen ese permiso. En el ejemplo anterior, el propietario, el grupo y todos los demás tienen permisos de lectura, escritura y ejecución.
Si observa el resultado del comando ls -l, notará que mi archivo de texto de práctica tiene los siguientes permisos:
-rw-rw-rw-
Esto significa que todos solo tienen permiso de lectura/escritura en el archivo. Aquí hay otro ejemplo:
drwxr--r--
Mirando el primer bit, podemos ver que los permisos son para un directorio. El propietario tiene permisos de lectura/escritura/ejecución, pero el grupo y otros usuarios solo tienen permiso de lectura.
Representación de números octales
Así es como se representan los permisos en Linux usando símbolos. Una segunda forma de expresar los mismos permisos es usando números octales. Cuando usemos el comando chmod más tarde, verá que puede cambiar los permisos usando símbolos o números octales.
Entonces, ¿cómo representa Linux leer, escribir y ejecutar usando números octales? Básicamente, solo asigna un número a cada permiso como se muestra a continuación.
El permiso de lectura está representado por 4, escribir por 2 y ejecutar por 1. Simplemente agréguelos para obtener el permiso octal. Por ejemplo, tomemos el ejemplo anterior donde todos tienen todos los permisos:
-rwxrwxrwx
El dueño tiene rwx, entonces sumamos 4 + 2 + 1 para obtener el valor de 7. Hacemos lo mismo para un grupo y lo mismo para otro. El valor octal final es 777. Veamos el ejemplo en el que solo dimos permisos de lectura/escritura:
-rw-rw-rw-
El primer número octal es 4 + 2 ya que estamos sumando lecturas y escrituras. El segundo será igual al tercer número octal. Aquí tenemos un valor octal final de 666.
Así que ahora vamos a intentarlo de otra manera. Digamos que queremos saber qué permisos 755 ¿igual? Bueno, es bastante fácil averiguarlo si lo desglosas por números individuales. El primer número es 7, que podemos obtener solo sumando 4 + 2 + 1, lo que significa que el propietario tiene permiso de lectura/escritura/ejecución. Solo se puede obtener cinco sumando 4 + 1, lo que significa que el grupo y otros usuarios tienen permisos de lectura y ejecución.
Espero que sea una buena explicación de cómo representar permisos en Linux usando números octales. Es bastante simple en general.
Usando chmod para cambiar permisos
Ahora que entendemos cómo leer los permisos, hablemos de cómo podemos cambiarlos. La utilidad más fácil de usar para este propósito es el comando chmod. Así es como funciona. La mejor manera de explicar el comando es a través de un ejemplo.
Comencemos con los permisos de los que hablamos anteriormente, que son:
-rw-rw-rw-
Si quisiéramos agregar el permiso de ejecución para propietario, grupo y otros, podríamos hacerlo de dos maneras. Podríamos usar el método del símbolo o el método octal. Para el método del símbolo, haríamos lo siguiente, como se muestra a continuación:
el orden es exacto
chmod a+x filename
La sintaxis es la siguiente: la letra o letras que representan al propietario (tu), grupo (gramo), más (o) o todo (a) seguido de un + para agregar permisos o un – para quitar permisos y luego la carta de permiso (r leer, w para escribir y X aplicación).
En el ejemplo anterior, agregué el permiso de ejecución para todos los usuarios. El resultado, como puede ver en la captura de pantalla anterior, es X para el propietario, el grupo y otros. Ahora, digamos que quiero eliminar los permisos de escritura y ejecución solo para el grupo y otros usuarios.
Como puede ver aquí, utilicé el siguiente comando para lograr esto:
chmod go-wx filename
Como quiero cambiar los permisos de un grupo y de otros, utilizo la letra gramo y la carta o. Quiero quitar permisos, así que uso el – señal. Finalmente, quiero eliminar los permisos de escritura y ejecución, así que uso w y X. Aquí hay una pequeña tabla útil para el uso de símbolos:
Entonces, eso es todo lo que hay que hacer para usar el método del símbolo. Ahora, hablemos del método octal, que creo que es un poco más fácil. Octal es bueno porque puede agregar o eliminar permisos de una sola vez.
Si comenzamos con los siguientes permisos en un archivo, veamos cómo podemos cambiarlos usando el método octal:
-rw-rw-rw-
Arriba, puedes ver que usé el siguiente comando:
chmod 744 filename
Esto básicamente dice que el propietario obtiene permiso de lectura/escritura/ejecución y el grupo y otros no obtienen permiso de solo lectura. Como puede ver, es fácil agregar o quitar permisos con un simple comando. Sigamos adelante y digamos que quiero cambiar los permisos nuevamente.
Ahora usé el siguiente comando, nuevamente uno muy simple:
chmod 640 filename
Aquí le hemos dado permiso de lectura/escritura al propietario, un permiso de lectura al grupo y el otro grupo no tiene permiso. Usas cero para indicar que no tienes permiso. Bastante simple, ¿eh?
En conclusión, esta es una descripción general muy simple de los permisos de Linux y puede ser mucho más complicada que esto, pero para los principiantes, es un buen lugar para comenzar. Publicaré más artículos sobre permisos más avanzados en el futuro. Si tiene alguna pregunta, no dude en comentar. ¡Disfrutar!