Comprender los permisos de Linux y el uso de Chmod

Comprender los permisos de Linux y el uso de Chmod

He estado 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, al cargar un archivo en mi servidor web una vez y recibir un error, mi host web me dijo que cambiara los permisos de archivo a 755.

No tenía idea de lo que eso significaba, a pesar de que 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 en un nivel de alto nivel y le mostraré cómo usar el comando chmod para cambiar los permisos para archivos y carpetas.

Tabla de contenido

    Permisos y niveles de Linux

    En Linux, básicamente hay tres permisos de los que normalmente tendrá que preocuparse: leer, escribir y ejecutar. Los tres se explican bastante por sí mismos. Ahora, cuando estos permisos se aplican a un archivo, se aplican en los niveles.

    Hay tres niveles de permisos en Linux: propietario, grupo y otros. El propietario es el usuario que posee el archivo/carpeta, el grupo incluye a otros usuarios en el grupo del archivo y otros solo representa a todos los demás usuarios que no son el propietario o en el grupo.

    Leer, escribir y ejecutar se representan como caracteres simbólicos o como números octales. Por ejemplo, si realiza un LS -L en un directorio con algunos archivos, verá la representación simbólica del carácter de los permisos.

    Si ve un tablero en lugar de una carta, 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 han leído escribir y ejecutar permisos.

    Si observa la salida 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 del número octal

    Así es como se muestran los permisos en Linux usando símbolos. La segunda forma de representar los mismos permisos es mediante el uso de números octales. Cuando usemos el comando chmod más adelante, verá que puede cambiar los permisos usando símbolos u 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, escribe por 2 y ejecuta por 1. Todo lo que tienes que hacer es agregarlos 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 agregaremos 4 + 2 + 1 para obtener un valor de 7. Hacemos lo mismo para el grupo y lo mismo para otros. 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 agregando 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 intentemos al otro lado. Digamos que queremos saber qué permisos 755 representa? Bueno, es bastante fácil averiguarlo si lo desglosas por números individuales. El primer número es 7, que solo podemos obtener agregando 4 + 2 + 1, lo que significa que el propietario tiene permiso de lectura/escritura/ejecución. Cinco solo se pueden obtener agregando 4 + 1, lo que significa que el grupo y otros usuarios han leído y ejecutan permisos.

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

    Uso de Chmod para modificar los 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 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 el propietario, el grupo y otros, podríamos hacerlo de dos maneras. Podríamos usar el método de símbolos o el método octal. Para el método de símbolos, haríamos lo siguiente, como se muestra a continuación:

    El comando exacto es

    chmod a+x nombre de archivo

    La sintaxis es la siguiente: la letra o las letras que representan al propietario (u), grupo (gramo), otro (O) o todos (a) seguido de un + para agregar permisos o un - para quitar los permisos y luego la carta para el permiso (riñonal para leer, w para escribir y X 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 un X para propietario, grupo y otro. Ahora digamos que quería eliminar los permisos de escritura y ejecutar solo para el grupo y otros usuarios.

    Como puede ver aquí, solía el siguiente comando para lograr esto:

    Chmod Go-WX FileName

    Como quiero cambiar los permisos para el grupo y el otro, uso la letra gramo y la carta O. Quiero eliminar los permisos, así que uso el - firmar. Finalmente, quiero eliminar los permisos de escritura y ejecución, así que uso w y X. Aquí hay una pequeña mesa útil para el uso de símbolos:

    Entonces eso es todo lo que hay para usar el método de símbolos. Ahora hablemos sobre el método octal, que me parece un poco más fácil. Octal es bueno porque puede agregar o eliminar permisos de una 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 nombre de archivo

    Esto básicamente dice que el propietario recibe permiso de lectura/escritura/ejecución y el grupo y otros solo reciben permiso de lectura. Como puede ver, es fácil de agregar o eliminar los permisos en un comando simple. Sigamos y digamos que quiero volver a cambiar los permisos.

    Ahora usé el siguiente comando, nuevamente muy simple:

    chmod 640 nombre de archivo

    Aquí le hemos dado permisos al propietario de lectura/escritura, el grupo solo lea el permiso y el otro grupo sin permisos. Usas un cero para no denotar permisos. Bastante simple, eh?

    En conclusión, esta es una descripción 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. Publicaré más artículos sobre permisos más avanzados en el futuro. Si tiene alguna pregunta, no dude en comentar. Disfrutar!