Permisos Linux

I: comprendiendo la información listada por terminal o consola.

Para poder explicar los permisos en un sistema Linux, vamos a ver un volcado del comando ls con el parámetro "-l", es decir, haremos un listado de un directorio de un ordenador común, mostrando la información "a lo largo" y con todo detalle, para interpretar todo eso que en la pantalla aparece y que en general ignoramos (no siempre por no saber, sino a veces por no prestarle atención a todo aquéllo).

Veámoslo.


Observemos el 3er renglón (especialmente lo que está debajo de "Total 123352"). ¿ Cómo se interpreta la primera cadena de información de cada línea, del tipo "-rw-r--r--" ?

Para desglosar esto, veamos más de cerca solamente esa columna en donde figura todo lo que estamos mencionando:

Hasta la línea verde, poseemos una información.
Entre la línea verde y la primera magenta, es otra, y así con todas.
Las denominaremos "columnas", siendo 4 de ellas en total.

 1.  La primera columna está compuesta por 1 solo caracter, y especifica qué tipo de elemento se está mostrando en ese renglón:

"-", para archivos,
"d", para directorios,
"l", para enlaces (links),
"s", "p", "b", para otros tipos de elementos no tan comunes.

En el resto de las columnas, se presenta la información con 3 caracteres, y la nomenclatura es la siguiente:

"r", para "lectura" (read),
"w", para "escritura" (write),
"x", para "ejecución" (execute).

 2.  La 2a. columna, muestra información relativa al propietario de los elementos listados.

 3.  La 3a. columna, muestra información para grupos.

 4.   La 4a. columna, muestra información para "otros" (el resto).

Entonces, ¿ qué significa "drwxr-xr-x" ?

Esto quiere decir que se trata de un directorio (la "d" lo está indicando), cuyo propietario posee derecho de lectura, escritura y ejecución sobre él ("rwx"), los grupos poseen derecho de lectura y ejecución pero no de escritura ("r-x"), y el resto, casualmente, posee los mismos derechos que el grupo ("r-x").

Habiéndose comprendido esto, podemos avanzar en el tema, para poder entender los parámetros numéricos del comando "chmod".

II: comprendiendo la asignación de permisos.

Observemos la siguiente tabla:


De este modo, podremos interpretar cómo chmod recibe parámetros numéricos en cuanto a permisos.
Mantengamos esto en mente: "propietario, grupo, otros", y miremos la columna "Valor decimal".

Si queremos que...

     el propietario pueda leer (4), escribir (2) y ejecutar (1),
     el grupo pueda únicamente leer (4),
     y el resto no pueda hacer nada (0),

entonces, el resultado será: "chmod 740". ¿Por qué?

En la tabla de arriba,

     "leer", vale 4,
     "escribir", vale 2,
     "ejecutar", vale 1.

¿Cómo hacemos para asignar a cada uno varios permisos, si disponemos de 1 sola cifra de 1 solo dígito para cada uno (propietario, grupo, otros)?
  • Como -en este caso- 7 es el resultado de 4+2+1, 7 indica "lectura, escritura y ejecución".
  • Como 4 es el resultado de 4+0+0 (lectura, pero no escritura ni ejecución), 4 indica únicamente "lectura".
  • Como 1 es el resultado de 0+0+1 (ni lectura ni escritura pero sí ejecución), 1 indica únicamente "ejecución".
Entre los permisos más utilizados, están los siguientes:

777PROPIETARIO: lect,escrit,ejec. GRUPO: lect,escrit,ejec. OTROS: lect,escrit,ejec.
755PROPIETARIO: lect,escrit,ejec. GRUPO: lect,ejec. OTROS: lect,ejec.


¿Qué resultado se obtendría, entonces, con chmod 111?
¿Y con 000?

Comentarios

  1. Anónimo4/5/23 16:46

    Muchas gracias Hugo por este artículo! Re interesante y además clarito!! Gracias!

    ResponderBorrar
    Respuestas
    1. ¡Muchas gracias por comentar!
      Hacía tiempo que no revisaba los comentarios del blog. Perdón por no haberlos visto antes.
      ¡Un abrazo!

      Borrar

Publicar un comentario

Entradas más populares de este blog

artixers: panel de control de usuarios para sistemas estilo UNIX.

Aplicaciones adicionales para Linux luego de una instalación nueva.