Comprensión de los permisos de Linux y el uso de Chmod - 3 - noviembre 27, 2022

Comprensión de los permisos de Linux y el uso de Chmod

Estuve tomando un curso sobre Linux durante los últimos meses y un aspecto de Linux que siempre me confundió fue cómo funcionaban los permisos. Por ejemplo, cuando subí un archivo a mi servidor web una vez y obtuve un error, mi proveedor de alojamiento web me dijo que cambiara los permisos del archivo a 755.

Comprensión de los permisos de Linux y el uso de Chmod - 5 - noviembre 27, 2022

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, existen básicamente tres permisos de los que normalmente tendrá que preocuparse: leer, escribir y ejecutar. Los tres son bastante autoexplicativos. 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 a otros usuarios en el grupo de archivos y otro solo representa 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 como números octales. Por ejemplo, si hace ls -l en un directorio con algunos archivos, verá la representación de caracteres simbólicos de los permisos.

Comprensión de los permisos de Linux y el uso de Chmod - 7 - noviembre 27, 2022

Los permisos se escriben de la siguiente manera: el primer bit es un guión o la letra d. Dash significa que es un archivo y d significa directorio. Tenga en cuenta que el primer bit también puede ser una l si el nombre del archivo es un enlace. A continuación, hay tres grupos de tres bits. El primer bit de cada grupo es para lectura, el segundo bit para escritura y el tercero para ejecución. Los primeros tres bits son para el propietario, los segundos tres bits son para el grupo y los terceros tres bits son para otros. Aquí hay una explicación más visual.

Comprensión de los permisos de Linux y el uso de Chmod - 9 - noviembre 27, 2022

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 permisos de lectura/escritura para 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 muestran los permisos en Linux usando símbolos. La segunda forma de representar los mismos permisos es usando números octales. Cuando usemos el comando chmod más adelante, verá que puede cambiar los permisos usando símbolos o números octales.

Entonces, ¿cómo representa Linux la lectura, escritura y ejecución usando números octales? Básicamente, solo asigna un número a cada permiso como se muestra a continuación.

Comprensión de los permisos de Linux y el uso de Chmod - 11 - noviembre 27, 2022

El permiso de lectura está representado por 4, escribir por 2 y ejecutar por 1. Todo lo que tienes que hacer es sumarlos para obtener el permiso octal. Por ejemplo, tomemos el ejemplo anterior donde todos tienen todos los permisos:

 -rwxrwxrwx

El propietario tiene rwx, por lo que sumaremos 4 + 2 + 1 para obtener un valor de 7. Hacemos lo mismo para el grupo y lo mismo para el otro. El valor octal final es 777. Echemos un vistazo al ejemplo en el que solo dimos permisos de lectura/escritura:

 -rw-rw-rw-

El primer número octal será 4 + 2 ya que estamos sumando lectura y escritura. El segundo será el mismo que el 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 representa 755. Bueno, es bastante fácil de averiguar si lo desglosas por números individuales. El primer número es 7, que solo podemos obtener sumando 4 + 2 + 1, lo que significa que el propietario tiene permiso de lectura/escritura/ejecución. Cinco solo se pueden obtener sumando 4 + 1, lo que significa que el grupo y otros usuarios tienen permisos de lectura y ejecución.

Comprensión de los permisos de Linux y el uso de Chmod - 13 - noviembre 27, 2022

Con suerte, esa es una buena explicación de cómo representar los permisos en Linux usando números octales. Es bastante sencillo en general.

Usando chmod para modificar permisos

Ahora que entendemos cómo leer los permisos, hablemos sobre 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 pasar por un ejemplo.

Comencemos con los permisos de los que hablamos anteriormente, a saber:

 -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:

Comprensión de los permisos de Linux y el uso de Chmod - 15 - noviembre 27, 2022

El comando exacto es:

 Chmod a+x nombre de archivo

La sintaxis es la siguiente: la letra o letras que representan al propietario (u), grupo (g), otro (o) o todos (a) seguido de un + para agregar permisos o una para quitar permisos y luego la letra para el permiso (r para leer, w para escribir yx para ejecutar).

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 una x para propietario, grupo y otros. Ahora digamos que quería eliminar los permisos de escritura y ejecución solo para el grupo y otros usuarios.

Comprensión de los permisos de Linux y el uso de Chmod - 17 - noviembre 27, 2022

Como puede ver aquí, utilicé el siguiente comando para lograr esto:

 Nombre de archivo chmod go-wx

Como quiero cambiar los permisos para grupo y otros, uso la letra g y la letra o. Quiero quitar permisos, así que uso el signo. 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:

Comprensión de los permisos de Linux y el uso de Chmod - 19 - noviembre 27, 2022

Así que eso es todo lo que hay que hacer para usar el método del símbolo. Ahora hablemos del método octal, que me parece 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-
Comprensión de los permisos de Linux y el uso de Chmod - 21 - noviembre 27, 2022

Arriba, puedes ver que usé el siguiente comando:

 Chmod 744 nombre de archivo

Básicamente, esto dice que el propietario obtiene permiso de lectura/escritura/ejecución y el grupo y otros solo obtienen permiso de lectura. Como puede ver, es fácil agregar o quitar permisos con un simple comando. Continuemos y digamos que quiero cambiar los permisos nuevamente.

Comprensión de los permisos de Linux y el uso de Chmod - 23 - noviembre 27, 2022

Ahora usé el siguiente comando, nuevamente uno muy simple:

 Nombre de archivo chmod 640

Aquí le hemos dado al propietario permisos de lectura/escritura, al grupo solo permiso de lectura y al otro grupo ningún permiso. Utiliza un cero para indicar que no tiene permisos. 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 complicado que esto, pero para los principiantes, es un buen lugar para comenzar. Estaré publicando más artículos sobre permisos más avanzados en el futuro. Si tiene alguna pregunta, no dude en comentar.