sábado, 11 de junio de 2016

Fundamentales. Atributos de los archivos




¿Qué es eso que sale cuando listo con detalle un directorio?

Esto es lo puedo ver cuando hago un listado de archivos en un directorio con el comando “ls -la”:



Vamos a ver con detalle que información aparece:

El primer dato que devuelve el comando es “total 32”. Esto nos indica el espacio en bloques de 1KB (1024 Bytes) que ocupan todos los archivos que están en este directorio.

El resto de líneas nos muestran la información detallada de los directorios o ficheros existentes.
Vamos a usar como ejemplo la tercera línea: el fichero filtrado.txt.
-rw-rw-r--  1 lubuntu lubuntu  6515 jun  4 11:26 filtrado.txt

La primera parte, que es ese montón de letras sin aparente sentido son los atributos o permisos del archivo. Lo veremos en detalle después, vamos primeramente a ver cosas más sencillas.
Seguidamente tenemos un número, en nuestro ejemplo el valor es 1, que indica el número de enlaces que existen a este fichero.

A continuación, tenemos el nombre del usuario y el nombre del grupo propietario del fichero, en este caso usuario lubuntu, grupo lubuntu. Pensar que un fichero puede ser propiedad de un grupo al que no pertenece el usuario, por ejemplo, usuario lubuntu, grupo root. Esto afecta a la gestión de seguridad de acceso del fichero en cuestión.

Después nos encontramos otro número: 6515. Es el tamaño en bytes del fichero. Os recomiendo usar el parámetro “-h” (Human readable) junto a nuestro “ls -la” para que la información de tamaño, sobre todo en el caso de archivos de gran tamaño, sea más fácilmente legible. Este es un ejemplo de como se ve una lista de directorio con y sin -h con archivos de cierto tamaño:



Como podéis observar, usar -h nos evita contar el número de dígitos para leer el tamaño correctamente.

Seguimos con nuestra línea. Ahora tenemos la fecha y la hora de última modificación del archivo: “jun  4 11:26”. Veréis que el año no aparece por que ha transcurrido menos de ese periodo de tiempo desde la última modificación. ¿Qué ocurrirá el 4 de junio de de 2017 a las 11:27 de la mañana?: pues que si no se ha modificado el fichero desde la fecha que vemos hoy, el comando nos mostrará “jun  4  2015”, es decir, tendremos precisión de hasta minutos en esta información durante un año, después se considera que con saber el día de la última modificación es más que suficiente J!

No es necesario explicar que el último dato que aparece es el nombre del fichero: filtrado.txt

Ahora los atributos

Pues vamos al meollo del post, ver que significan y que información nos aportan los atributos de seguridad de un archivo.

Vemos que es una lista de 10 caracteres que indican lo siguiente:
·         Primer carácter. En el ejemplo veréis valores diferentes (d, l, -). Puede tener otros valores, pero estos son los 3, llamémoslo, principales. ¿Que nos indica?: el tipo de objeto que es:
o   d: indica que es un directorio. Sí, eso del punto y los dos puntos también son “punteros” a directorios: el punto es un puntero al propio directorio que estáis mostrando y los dos puntos al directorio padre, es decir el directorio jerárquicamente anterior en el árbol de directorios.
o   l: nos dice que es un enlace (link) a otro archivo. En nuestro ejemplo veréis que hay un archivo readme.sll.txt que apunta al fichero /usr/share/doc/ssl-cert/README. Esto nos permite actuar sobre el fichero apuntado (el /usr/share/…/README) usando nuestro enlace (readme.sll.txt), para por ejemplo visualizar su contenido o editarlo. Cuando hacemos nano readme.sll.txt, realmente estoy editando el fichero README en /usr/share/. ¿Y qué pasa si borro con un rm el enlace?, pues eso, que borro el enlace, no el fichero enlazado.
o   -: un sencillo guion nos indica que lo que estamos viendo es ni más ni menos que un simple archivo.

Los 9 caracteres siguientes son 3 grupos de 3 atributos y vamos a verlos así.

  •     El primer grupo de 3 indica que permisos tiene el usuario, en este caso lubuntu, sobre el fichero. Cada carácter indica una cosa y siempre están en el mismo orden:

o   r: tenemos permiso de lectura (Read) sobre el fichero. Si aparece un guion indica que no tenemos ese permiso.
o   w: indica que tenemos permiso de escritura (Write) sobre el fichero. Como en el caso anterior si aparece un guion indica que no tenemos ese permiso.
o   x: tenemos permiso de ejecución (eXecution) sobre el fichero, y como anteriormente si aparece un guion indica que no tenemos ese permiso.
  •  El segundo grupo de 3 caracteres indica que permisos tiene el grupo, también en este caso el grupo se llama lubuntu sobre el fichero. Los valores que podremos ver son los mismos que en el caso anterior
  • Y por último, el tercer grupo nos indica que permisos tiene el resto de usuarios/grupos. Tambien puede tener los mismos valores.


Ahora vamos a analizar nuestro ejemplo: el archivo filtrado.txt tiene los atributos -rw-rw-r—

El primero, “-“, nos dice que es un archivo.

El grupo de permisos de usuario es “rw-“: el usuario lubuntu tiene permisos de lectura y escritura.

El grupo de permisos del grupo es también “rw-“, por tanto todos los usuarios que pertenezcan al grupo “lubuntu” también tendrán permisos de lectura y escritura sobre el archivo.

Por último, tenemos el grupo de permisos de otros, que en este caso es “r—“, lo que indica que cualquier usuario que no sea lubuntu o pertenezca al grupo lubuntu solo podrá leer el archivo.
Como veis no es posible ejecutar el archivo para ningún usuario ni grupo por no tener el atributo “x” de ejecución activo.

Y esto es todo por hoy, en próximos post veremos cómo actuar sobre los permisos de los archivos y muchas más cosas.


No hay comentarios:

Publicar un comentario