(→Permisos) |
(Ver también...) |
||
| (No se muestran 18 ediciones intermedias realizadas por 2 usuarios) | |||
| Línea 1: | Línea 1: | ||
| − | |||
| − | |||
| − | |||
==El Sistema de Archivos== | ==El Sistema de Archivos== | ||
| Línea 8: | Línea 5: | ||
Para conocer las propiedades de un Sistema de Archivos, comencemos por definir que es un archivo: | Para conocer las propiedades de un Sistema de Archivos, comencemos por definir que es un archivo: | ||
| − | + | :''Con frecuencia, se define a un archivo informático, como una entidad lógica formada por un conjunto de bytes, ubicados sobre un sistema de almacenamiento (temporal o permanente), que responde a las características de unicidad,ubicación y reglas de manipulación''. | |
| − | * La propiedad de unicidad de un archivo, radica en que éste es en si mismo una entidad, con una asignación de espacio finito, susceptible de ser modificado internamente en tamaño y contenido | + | * La '''propiedad de unicidad''' de un archivo, radica en que éste es en si mismo una entidad, con una asignación de espacio finito, susceptible de ser modificado internamente en tamaño y contenido |
| − | * Su localización exacta, determina la existencia del mismo, incluso vacío de contenido, pero con límites de propiedad inherente al espacio físico asignado por las variables ortogonales en cuanto a su asentamiento en el soporte que lo contiene.Un fichero no puede existir sin esta cualidad. | + | * Su '''localización exacta''', determina la existencia del mismo, incluso vacío de contenido, pero con límites de propiedad inherente al espacio físico asignado por las variables ortogonales en cuanto a su asentamiento en el soporte que lo contiene. Un fichero no puede existir sin esta cualidad. |
| − | * Y unas reglas de manipulación. Es decir, tendrá un propietario, asignación de lecto_escritura y ejecución, compartibles/no compartibles, variables/ no variables, aspectos que podrán modificarse, de acuerdo con las reglas que puedan establecerse en la vida útil del archivo. | + | * Y unas '''reglas de manipulación'''. Es decir, tendrá un propietario, asignación de lecto_escritura y ejecución, compartibles/no compartibles, variables/ no variables, aspectos que podrán modificarse, de acuerdo con las reglas que puedan establecerse en la vida útil del archivo. |
La función "vital" de un archivo es poder ser leído, y como tal debe de ser localizado lo mas fácilmente posible dentro de la unidad de soporte que lo contiene. | La función "vital" de un archivo es poder ser leído, y como tal debe de ser localizado lo mas fácilmente posible dentro de la unidad de soporte que lo contiene. | ||
| − | Esta unidad, que puede ser un disco duro, una cinta, un CD o cualquier unidad susceptible de almacenar información, necesita un Sistema de Ficheros,para organizar la información y tener acceso a ella de forma eficiente y rápida. | + | Esta unidad, que puede ser un disco duro, una cinta, un CD o cualquier unidad susceptible de almacenar información, necesita un '''Sistema de Ficheros''', para organizar la información y tener acceso a ella de forma eficiente y rápida. |
| + | |||
| + | No entraremos aquí en los detalles de almacenamiento volátil, o sea en memoria de semiconductores como la memoria RAM, que mantiene la información mientras dure el flujo eléctrico. Dedicaremos un apartado para esta información. | ||
| − | |||
Nos centraremos en el mas común, es decir el disco duro | Nos centraremos en el mas común, es decir el disco duro | ||
| − | La denominación archivo es equivalente a fichero. | + | La denominación '''archivo es equivalente a fichero'''. |
| + | |||
| + | Existen ''archivos especiales'' que representan a los dispositivos físicos, existen archivos ''directorios'', para organizar otros archivos y los ''archivos simples'', encargados de almacenar toda la información, incluso programas. El fácil hacerse a la idea de que existen infinidad de archivos simples. | ||
| + | |||
| + | Como definimos que toda la información que se escribe en el disco se considera un archivo, existen diferencias importantes en cuanto al contenido de los ficheros. Principalmente la que define a archivos de "texto" y los archivos binarios. | ||
| + | |||
| + | '''Los archivos de "texto"''' pueden contener documentos, memorandums, scripts, cartas, etc. y estarán escritos en código ASCII. (El código ASCII es el encargado de representar todos los caracteres del texto). | ||
| + | Estos archivos podrán editarse y modificarse con un editor de texto tipo, vi, emacs, gedit, ..etc. | ||
| + | |||
| + | '''Los archivos binarios''', por el contrario contienen datos no de texto, por ej: imágenes. No pueden verse con un editor. Estos archivos sólo tienen sentido para los programas que lo ejecutan. Por ej: Se escribe un programa en C, por lo tanto lo que se edita está en modo texto, pero, la máquina no puede entender este lenguaje, así que debe de traducirse a un lenguaje que la máquina pueda leer. | ||
| + | |||
| + | Es necesario un '''Compilador''', o sea, un programa que convierta el modo texto a lenguaje máquina. El archivo resultante, (aquel que la máquina puede leer) se llama '''binario'''. | ||
| + | |||
| + | :''El programa que se queda en C, se llama Archivo fuente, o simplemente, fuente.'' | ||
| + | :''El programa que guarda los datos del programa en código máquina ( o sea binario), se llama ejecutable''. | ||
| + | |||
| + | Mas técnicamente. Los archivos de cualquier índole se almacenan en la máquina en series de bits, o sea, en código binario ( valores 0 y 1 ó activado desactivado). Estos bits se agrupan en grupos de 8 para formar 1 byte. Así, el código ASCII contiene los datos para la representación de los caracteres. Por ej: | ||
| + | |||
| + | :Para la letra " A " el byte formado por 0 1 0 0 0 0 0 0 , indica que para este carácter sólo está activado el bit 7 en el byte. | ||
| + | :Para la letra " a ", que es un carácter diferente en Unix, los bits activados son otros ---> 0 1 1 0 0 0 0 1. | ||
| + | |||
| + | El código ASCII utiliza sólo 7 bits de los 8 del byte. El octavo, localizado en el extremo izquierdo siempre se configura en 0. | ||
| + | |||
| + | Los archivos binarios también almacenan datos en bytes, pero a diferencia de los de texto, utilizan los 8 bits. | ||
| + | |||
| + | ==Tipos de Archivos== | ||
| + | La letra que precede a la descripción es el indicador, o sea identifica el tipo de archivo cuando hacemos un listado de ellos con el comando <code>ls</code> | ||
| + | |||
| + | {| border="0" style="background:LightBlue;" cellpadding="2" cellspacing= "6" align="center" | ||
| + | !Identificador!!align="left"|Tipo de Archivo | ||
| + | |- | ||
| + | |align="center"|_ | ||
| + | |Archivos sencillos | ||
| + | |- | ||
| + | |align="center"|d | ||
| + | |Directorios | ||
| + | |- | ||
| + | |align="center"|l | ||
| + | |Vínculos simbólicos(flexible, blandos) | ||
| + | |- | ||
| + | |align="center"|c | ||
| + | |Dispositivos de caracteres | ||
| + | |- | ||
| + | |align="center"|b | ||
| + | |Dispositivos de bloques | ||
| + | |- | ||
| + | |align="center"|p | ||
| + | |Tuberías (pipe) con nombre (FIFO) | ||
| + | |- | ||
| + | |align="center"|s | ||
| + | |Socket (conector para comunicaciones (TCP/IP) | ||
| + | |} | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
A modo de ejemplo: | A modo de ejemplo: | ||
| Línea 46: | Línea 85: | ||
7899188 -rw-r--r-- 1 root root 226 2006-05-22 16:25 udev.conf</pre> | 7899188 -rw-r--r-- 1 root root 226 2006-05-22 16:25 udev.conf</pre> | ||
| − | + | ===Los archivos sencillos=== | |
:Se emplean para almacenar información y datos en dispositivos de almacenamiento secundario, que por regla general es el disco duro. (obviamente, también pueden ser almacenado en cintas, memorias..etc). | :Se emplean para almacenar información y datos en dispositivos de almacenamiento secundario, que por regla general es el disco duro. (obviamente, también pueden ser almacenado en cintas, memorias..etc). | ||
| − | :Un archivo sencillo puede contener desde un programa (Java, C++, C, Perl), como imágenes, textos, sonido, gráficos, etc. En Unix/Linux no existe diferencia a la hora de clasificar estos archivos por su contenido, para el núcleo, todos son iguales, sólo es un flujo de | + | :Un archivo sencillo puede contener desde un programa (Java, C++, C, Perl), como imágenes, textos, sonido, gráficos, etc. En Unix/Linux no existe diferencia a la hora de clasificar estos archivos por su contenido, para el núcleo, todos son iguales, sólo es un flujo de bytes. Otra cosa es el tratamiento que hacen de los mismos las aplicaciones. Estas sí se encargan de verificar la naturaleza de los archivos, a procesar y obrar en consecuencia al contenido de los mismos.Los nombres de los archivos pueden asignarse de manera arbitraria. El nombre asociado a un archivo sólo representa una función lógica, no de dependencia física. Sólo existen unas pequeñas restricciones: |
::* nombre no mayor de 255 caracteres | ::* nombre no mayor de 255 caracteres | ||
| Línea 55: | Línea 94: | ||
::* tener en cuenta que un nombre comenzado con un punto, significa un archivo oculto. | ::* tener en cuenta que un nombre comenzado con un punto, significa un archivo oculto. | ||
| − | :Los archivos en Unix/Linux no necesitan extensión, al ser ser tratados en principio sin formato predeterminado, aunque puede hacerse como recurso referencial, con una o mas extensiones que indiquen la naturaleza del contenido. Por ej: | + | :Los archivos en Unix/Linux no necesitan extensión, al ser ser tratados en principio sin formato predeterminado, aunque puede hacerse como recurso referencial, con una o mas extensiones que indiquen la naturaleza del contenido. Por ej: Las imágenes: .gif ; textos: .txt..etc. Aunque algunas aplicaciones necesiten de extensiones en los archivos, como algunos compiladores de C ( nombre_archivo.c), html -- para algunos navegadores web. |
| − | + | ===Los directorios=== | |
| − | :son archivos que contienen a su vez otros archivos que a veces también pueden ser otros directorios. En Unix/Linux, los directorios tienen una forma determinada | + | :son archivos que contienen a su vez otros archivos que a veces también pueden ser otros directorios comunmente llamados subdirectorios. En Unix/Linux, los directorios tienen una forma determinada |
::::'''número de i-nodo + nombre del directorio''' | ::::'''número de i-nodo + nombre del directorio''' | ||
| − | :El número i-nodo tiene 2 Bytes, siendo siempre un número entero. | + | :El número i-nodo tiene 2 Bytes, siendo siempre un número entero.Representa el valor de un índice que opera dentro de una lista en el disco.Su propósito es facilitar la búsqueda de los archivos, ya que en la lista que forma, se almacenan características de los archivos representados, como tamaño, fecha de creación, bloque asignado, permisos, enlaces, pero no el nombre. |
| − | + | :Físicamente, un archivo no se almacena de forma contínua en el dispositivo de almacenamiento, es decir, puede estar repartido en varios bloques, (fragmentación). A diferencia de Windows, Linux tiende a la continuidad del espacio físico en el reparto de los bloques de asignación. Debido a esto, es necesario la existencia de una estructura adicional que "reúna" los distintos fragmentos del archivo para ser leído. | |
| + | |||
| + | :Ésta es la función principal de la lista de i-nodos. En todos los directorios aparecen dos ficheros ocultos representados por " . " y " .. " El primero " . " se refiere al directorio actual y el segundo " .. " al directorio padre, es decir al directorio al que cuelga en orden de jerarquía del Sistema de Ficheros. Obviamente el directorio / (root) principal, carece de este fichero oculto. | ||
| + | |||
| + | ===Enlaces=== | ||
:Es un fichero cuya función es permitir enlaces a elementos del sistema de archivos desde cualquier punto de la jerarquía del mismo.Un enlace no es mas que un nombre que apunta a un determinado recurso del sistema de ficheros, físico o lógico.Dependiendo de su función los clasificamos en, | :Es un fichero cuya función es permitir enlaces a elementos del sistema de archivos desde cualquier punto de la jerarquía del mismo.Un enlace no es mas que un nombre que apunta a un determinado recurso del sistema de ficheros, físico o lógico.Dependiendo de su función los clasificamos en, | ||
| − | ::*''Fuertes o duros.''Son aquellos enlaces que no se diferencian en nada del archivo original. Debemos de entender que un fichero, es un conjunto de Bytes que ocupa una zona en algún dispositivo, y su nombre no es mas que un enlace fuerte a él. Es decir, un enlace fuerte es otro nombre para un mismo fichero, ya que apunta a un inodo específico. Todos los enlaces fuertes que apuntan a un mismo archivo, mantienen su estructura de permisos, propiedad, etc. Si creamos varios enlaces fuertes sobre un fichero, tendríamos varias copias lógicas del mismo, pero sólo existiría una copia física del mismo, ya que todos apuntan a zona "física" que es el espacio que ocupa el fichero original.Esto da como resultado que un fichero no desaparece hasta que no se borran todos los enlaces que apuntan a él. Los enlaces fuertes a un fichero se almacenan en la estructura del inodo que lo representa.No se pueden crear enlaces fuertes a directorios ni a ficheros que estén en una partición diferente. A diferencia de los enlaces simbólicos, los enlaces fuertes no se rompen cuando se mueve uno de los archivos a otra ubicación.Con los enlaces fuertes, se mantiene un contador de enlaces en el inodo de cada archivo, de forma que, cuando el contador cae a " 0 ", se borra el inodo y los bloques de datos son liberados para su nuevo uso.De esta forma, una vez que un archivo posee un enlace fuerte, cualquier "copia" que se borre, no afecta a las demás que quedarán intactas. Por regla general, los archivos tienen un único enlace. Los directorios tendrán tantos enlaces como subdirectorios tenga. | + | ::*''Fuertes o duros.''Son aquellos enlaces que no se diferencian en nada del archivo original. |
| + | ::Debemos de entender que un fichero, es un conjunto de Bytes que ocupa una zona en algún dispositivo, y su nombre no es mas que un enlace fuerte a él. Es decir, un enlace fuerte es otro nombre para un mismo fichero, ya que apunta a un inodo específico. | ||
| + | |||
| + | ::Todos los enlaces fuertes que apuntan a un mismo archivo, mantienen su estructura de permisos, propiedad, etc. Si creamos varios enlaces fuertes sobre un fichero, tendríamos varias copias lógicas del mismo, pero sólo existiría una copia física del mismo, ya que todos apuntan a zona "física" que es el espacio que ocupa el fichero original.Esto da como resultado que un fichero no desaparece hasta que no se borran todos los enlaces que apuntan a él. Los enlaces fuertes a un fichero se almacenan en la estructura del inodo que lo representa. | ||
| + | |||
| + | ::No se pueden crear enlaces fuertes a directorios ni a ficheros que estén en una partición diferente. A diferencia de los enlaces simbólicos, los enlaces fuertes no se rompen cuando se mueve uno de los archivos a otra ubicación.Con los enlaces fuertes, se mantiene un contador de enlaces en el inodo de cada archivo, de forma que, cuando el contador cae a " 0 ", se borra el inodo y los bloques de datos son liberados para su nuevo uso.De esta forma, una vez que un archivo posee un enlace fuerte, cualquier "copia" que se borre, no afecta a las demás que quedarán intactas. Por regla general, los archivos tienen un único enlace. Los directorios tendrán tantos enlaces como subdirectorios tenga. | ||
| + | |||
| + | ::*''Débiles o simbólicos.''Son enlaces que apuntan al nombre del fichero, no a su contenido. | ||
| + | ::En el caso de borrado de un fichero original ( y lógicamente todos los enlaces fuertes asociados a él), los enlaces simbólicos quedan inconsistentes o perdidos. | ||
| + | |||
| + | ::Estos enlaces son articulados en Linux como ficheros independientes, conteniendo una referencia, el inodo, la cual apunta a la ubicación real del archivo. Estos enlaces usan un path_name (ruta) que puede ser absoluta, cuando comienza en " / " o relativa de acuerdo con la ubicación del enlace. Un enlace simbólico, no puede moverse una vez creado porque se romperá, a diferencia de los enlaces fuertes.Otra carcterística es que carecen de permisos o estado por su cuenta. En su defecto usan los permisos del fichero al que apuntan. | ||
| − | :: | + | ::En si mismo, se considera que el enlace propiamente dicho tiene todos los permisos activados.Los cantidad bytes ocupados por el enlace es igual a la longitud de la ruta que contiene, mas el carácter nulo del final. |
| − | + | ===Dispositivos de caracteres y bloques=== | |
:Son archivos especiales cuya principal función es la comunicación con un dispositivo de hardware. De acuerdo con la naturaleza del hardware, se denominan de caracteres, (consola, puertos de serie etc) o de bloques, (discos, memorias, ..etc).Estos archivos pueden entenderse como puntos de unión entre el núcleo y los controladores (drivers) de dispositivos como pueden ser /dev/tty0, /dev/null, /dev/hda | :Son archivos especiales cuya principal función es la comunicación con un dispositivo de hardware. De acuerdo con la naturaleza del hardware, se denominan de caracteres, (consola, puertos de serie etc) o de bloques, (discos, memorias, ..etc).Estos archivos pueden entenderse como puntos de unión entre el núcleo y los controladores (drivers) de dispositivos como pueden ser /dev/tty0, /dev/null, /dev/hda | ||
| − | + | ===Tuberías con nombre=== | |
| − | :Archivos localizados para la comunicación entre procesos, son una via de intercambio de datos. Se gestionan mediante el método FIFO (First In-First Out), el primer byte introducido por el emisor será el primero en ser extraído por el receptor. Su comunicación es unidireccional.Este tipo de fichero es localizado mediante una ruta, como cualquier fichero normal. Puede ser borrado como cualquier archivo. Por supuesto puede verse con el comando ls.Otra de sus características es que pueden intercomunicar procesos de especies diferentes, es decir, pueden comunicar y sincronizar procesos de la misma máquina, sin necesidad de que lo hereden por medio de la llamada fork. | + | :Archivos localizados para la comunicación entre procesos, son una via de intercambio de datos. Se gestionan mediante el método FIFO (First In-First Out), el primer byte introducido por el emisor será el primero en ser extraído por el receptor. Su comunicación es unidireccional.Este tipo de fichero es localizado mediante una ruta, como cualquier fichero normal. Puede ser borrado como cualquier archivo. |
| + | :Por supuesto puede verse con el comando ls.Otra de sus características es que pueden intercomunicar procesos de especies diferentes, es decir, pueden comunicar y sincronizar procesos de la misma máquina, sin necesidad de que lo hereden por medio de la llamada fork. | ||
| − | + | ===Socket=== | |
:son archivos para comunicación entre procesos locales. Se pueden ver como archivos, pero no pueden ser leídos y escritos salvo por los procesos directamente relacionados con la comunicación de la que son objeto. | :son archivos para comunicación entre procesos locales. Se pueden ver como archivos, pero no pueden ser leídos y escritos salvo por los procesos directamente relacionados con la comunicación de la que son objeto. | ||
| − | + | ==Atributos de los archivos== | |
:La necesidad de establecer atributos a los archivos para su operativa, es particularmente intensa en Unix/Linux. De esto deriva la seguridad del Sistema y la posibilidad del trabajo multiusuario debidamente compartimentado. Es decir, cada usuario está "protegido" en su espacio asignado dentro del Sistema. Por extensión esto también deriva en la seguridad en general, lo que hace que en Unix/Linux,sea menos fácil la propagación de virus y demás código malicioso. Para ver algunos atributos del archivo vnc.conf hacemos: | :La necesidad de establecer atributos a los archivos para su operativa, es particularmente intensa en Unix/Linux. De esto deriva la seguridad del Sistema y la posibilidad del trabajo multiusuario debidamente compartimentado. Es decir, cada usuario está "protegido" en su espacio asignado dentro del Sistema. Por extensión esto también deriva en la seguridad en general, lo que hace que en Unix/Linux,sea menos fácil la propagación de virus y demás código malicioso. Para ver algunos atributos del archivo vnc.conf hacemos: | ||
| Línea 95: | Línea 149: | ||
:Por último, el nombre del archivo, en este caso, '''vnc.conf'''. | :Por último, el nombre del archivo, en este caso, '''vnc.conf'''. | ||
| − | + | ===Otros atributos especiales=== | |
:el siguiente listado representa otro tipo de atributo de ficheros,aplicables en condiciones especiales, principalmnte a la hora de compartir permisos con usuarios de sistemas "muy poblados" en el que los privilegios de cada usuario o de cada grupo, necesitan especificaciones especiales. | :el siguiente listado representa otro tipo de atributo de ficheros,aplicables en condiciones especiales, principalmnte a la hora de compartir permisos con usuarios de sistemas "muy poblados" en el que los privilegios de cada usuario o de cada grupo, necesitan especificaciones especiales. | ||
| Línea 134: | Línea 188: | ||
Z El archivo está sucio</pre> | Z El archivo está sucio</pre> | ||
| − | + | ==Permisos== | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
:El acceso a los diferentes archivos en un sistema Unix/Linux, plantea un nivel de estructura avanzado, en el sentido que, la funcionalidad y principalmente la seguridad, a todos los niveles, es el principal objetivo del Sistema. | :El acceso a los diferentes archivos en un sistema Unix/Linux, plantea un nivel de estructura avanzado, en el sentido que, la funcionalidad y principalmente la seguridad, a todos los niveles, es el principal objetivo del Sistema. | ||
| Línea 159: | Línea 207: | ||
'''Nota'''. Siempre que se liste un fichero, la asignación de permisos aparecerá en este orden ( u g o ). | '''Nota'''. Siempre que se liste un fichero, la asignación de permisos aparecerá en este orden ( u g o ). | ||
| − | :El Sistema de ficheros asigna tres bits para cada elemento de esta representación, lo que en total tendremos nueve (9) bits | + | :El Sistema de ficheros asigna tres bits para cada elemento de esta representación, por lo que en total tendremos nueve (9) bits. |
| + | :Así: | ||
::'''u - - -''' | ::'''u - - -''' | ||
| Línea 202: | Línea 251: | ||
este fichero tendría activados los permisos de '''lectura escritura''' para el usuario, sólo '''lectura''' para el grupo y sólo '''lectura''' para otros. | este fichero tendría activados los permisos de '''lectura escritura''' para el usuario, sólo '''lectura''' para el grupo y sólo '''lectura''' para otros. | ||
| + | ====Nomenclatura Octal==== | ||
:Existe otra forma para nombrar los permisos de manera mas sencilla, pero no por ello menos eficaz. Conocido como sistema OCTAL, se trata de convertir la representación binaria en octal, es decir, representación numérica en base 8. | :Existe otra forma para nombrar los permisos de manera mas sencilla, pero no por ello menos eficaz. Conocido como sistema OCTAL, se trata de convertir la representación binaria en octal, es decir, representación numérica en base 8. | ||
:Mas claramente: | :Mas claramente: | ||
| − | {| | + | {|style="background:CornSilk;" border="0" cellspacing="6" cellpadding="2" align="center" |
| − | |+''''' | + | |+'''''CONVERSION''''' |
!Binario!!Octal | !Binario!!Octal | ||
| − | | | + | |- |
| − | |000||0 | + | |align="center" |000 |
| − | | | + | |align="center" |0 |
| − | |001||1 | + | |- |
| − | | | + | |align="center" |001 |
| − | |010||2 | + | |align="center" |1 |
| − | | | + | |- |
| − | |011||3 | + | |align="center" |010 |
| − | | | + | |align="center" |2 |
| − | |100||4 | + | |- |
| − | | | + | |align="center" |011 |
| − | |101||5 | + | |align="center" |3 |
| − | | | + | |- |
| − | |110||6 | + | |align="center" |100 |
| − | | | + | |align="center" |4 |
| − | |111||7 | + | |- |
| + | |align="center" |101 | ||
| + | |align="center" |5 | ||
| + | |- | ||
| + | |align="center" |110 | ||
| + | |align="center" |6 | ||
| + | |- | ||
| + | |align="center" |111 | ||
| + | |align="center" |7 | ||
|} | |} | ||
| + | |||
:Como puede apreciarse en la tabla anterior, la nomenclatura octal, nos permite representar con sólo una cifra, la disposición de los permisos activados por medio de los bits correspondientes para cada grupo de tres bits, es decir usuario, grupo y otros. | :Como puede apreciarse en la tabla anterior, la nomenclatura octal, nos permite representar con sólo una cifra, la disposición de los permisos activados por medio de los bits correspondientes para cada grupo de tres bits, es decir usuario, grupo y otros. | ||
:De esta forma el número 777 delante de un archivo, supone permisos totales para todos los grupos,.( u g o ) | :De esta forma el número 777 delante de un archivo, supone permisos totales para todos los grupos,.( u g o ) | ||
| − | {| Style="background:Lavender;" Border="0" | + | :En la tabla siguiente, podemos ver la conversión completa entre los distintos tipos de nomenclaturas para la asignación de permisos. |
| − | |+ | + | :La manipulación efectiva de los ficheros, requiere un conocimiento previo de estas caracteristicas, además de la posibilidad de asignar "permisos especiales" que veremos a continuación |
| + | |||
| + | |||
| + | |||
| + | |||
| + | {| Style="background:Lavender;" Border="0" cellspacing="6" cellpadding="2" align="center" | ||
| + | |+ '''''COMBINATORIA DE PERMISOS''''' | ||
|- | |- | ||
!NEMOTECNICO!!BINARIO!!OCTAL!!DESCRIPCION | !NEMOTECNICO!!BINARIO!!OCTAL!!DESCRIPCION | ||
|- | |- | ||
|align="center" |_ _ _ | |align="center" |_ _ _ | ||
| − | |000 | + | |align="center" |000 |
| − | |0 | + | |align="center" |0 |
|align="left" |Todos los permisos desactivados | |align="left" |Todos los permisos desactivados | ||
|- | |- | ||
|align="center" |_ _ x | |align="center" |_ _ x | ||
| − | |001 | + | |align="center" |001 |
| − | |1 | + | |align="center" |1 |
|Permiso de ejecución activado | |Permiso de ejecución activado | ||
|- | |- | ||
|align="center" |_ w _ | |align="center" |_ w _ | ||
| − | |010 | + | |align="center" |010 |
| − | |2 | + | |align="center" |2 |
|Permiso de escritura | |Permiso de escritura | ||
|- | |- | ||
|align="center" |_ w x | |align="center" |_ w x | ||
| − | |011 | + | |align="center" |011 |
| − | |3 | + | |align="center" |3 |
|Permisos de escritura y ejecución | |Permisos de escritura y ejecución | ||
|- | |- | ||
|align="center" |r _ _ | |align="center" |r _ _ | ||
| − | |100 | + | |align="center" |100 |
| − | |4 | + | |align="center"|4 |
|Permiso sólo de lectura | |Permiso sólo de lectura | ||
|- | |- | ||
|align="center" |r _ x | |align="center" |r _ x | ||
| − | |101 | + | |align="center" |101 |
| − | |5 | + | |align="center" |5 |
|Lectura y ejecución | |Lectura y ejecución | ||
|- | |- | ||
|align="center" |r w _ | |align="center" |r w _ | ||
| − | |110 | + | |align="center" |110 |
| − | |6 | + | |align="center" |6 |
|Lectura y escritura | |Lectura y escritura | ||
|- | |- | ||
|align="center" |r w x | |align="center" |r w x | ||
| − | |111 | + | |align="center" |111 |
| − | |7 | + | |align="center" |7 |
|Todos los permisos activados | |Todos los permisos activados | ||
|} | |} | ||
| − | + | == Ver también == | |
| − | + | *[[Sistema de archivos]] | |
| − | + | *[[Usuarios y grupos]] | |
| − | + | *[[Formatos de paquetes]] | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
Contenido |
Para conocer las propiedades de un Sistema de Archivos, comencemos por definir que es un archivo:
La función "vital" de un archivo es poder ser leído, y como tal debe de ser localizado lo mas fácilmente posible dentro de la unidad de soporte que lo contiene.
Esta unidad, que puede ser un disco duro, una cinta, un CD o cualquier unidad susceptible de almacenar información, necesita un Sistema de Ficheros, para organizar la información y tener acceso a ella de forma eficiente y rápida.
No entraremos aquí en los detalles de almacenamiento volátil, o sea en memoria de semiconductores como la memoria RAM, que mantiene la información mientras dure el flujo eléctrico. Dedicaremos un apartado para esta información.
Nos centraremos en el mas común, es decir el disco duro
La denominación archivo es equivalente a fichero.
Existen archivos especiales que representan a los dispositivos físicos, existen archivos directorios, para organizar otros archivos y los archivos simples, encargados de almacenar toda la información, incluso programas. El fácil hacerse a la idea de que existen infinidad de archivos simples.
Como definimos que toda la información que se escribe en el disco se considera un archivo, existen diferencias importantes en cuanto al contenido de los ficheros. Principalmente la que define a archivos de "texto" y los archivos binarios.
Los archivos de "texto" pueden contener documentos, memorandums, scripts, cartas, etc. y estarán escritos en código ASCII. (El código ASCII es el encargado de representar todos los caracteres del texto). Estos archivos podrán editarse y modificarse con un editor de texto tipo, vi, emacs, gedit, ..etc.
Los archivos binarios, por el contrario contienen datos no de texto, por ej: imágenes. No pueden verse con un editor. Estos archivos sólo tienen sentido para los programas que lo ejecutan. Por ej: Se escribe un programa en C, por lo tanto lo que se edita está en modo texto, pero, la máquina no puede entender este lenguaje, así que debe de traducirse a un lenguaje que la máquina pueda leer.
Es necesario un Compilador, o sea, un programa que convierta el modo texto a lenguaje máquina. El archivo resultante, (aquel que la máquina puede leer) se llama binario.
Mas técnicamente. Los archivos de cualquier índole se almacenan en la máquina en series de bits, o sea, en código binario ( valores 0 y 1 ó activado desactivado). Estos bits se agrupan en grupos de 8 para formar 1 byte. Así, el código ASCII contiene los datos para la representación de los caracteres. Por ej:
El código ASCII utiliza sólo 7 bits de los 8 del byte. El octavo, localizado en el extremo izquierdo siempre se configura en 0.
Los archivos binarios también almacenan datos en bytes, pero a diferencia de los de texto, utilizan los 8 bits.
La letra que precede a la descripción es el indicador, o sea identifica el tipo de archivo cuando hacemos un listado de ellos con el comando ls
| Identificador | Tipo de Archivo |
|---|---|
| _ | Archivos sencillos |
| d | Directorios |
| l | Vínculos simbólicos(flexible, blandos) |
| c | Dispositivos de caracteres |
| b | Dispositivos de bloques |
| p | Tuberías (pipe) con nombre (FIFO) |
| s | Socket (conector para comunicaciones (TCP/IP) |
A modo de ejemplo:
$ ls -ila udev total 20 7897186 drwxr-xr-x 3 root root 4096 2006-08-06 01:20 . 7897089 drwxr-xr-x 128 root root 8192 2007-04-21 03:04 .. 7899187 drwxr-xr-x 2 root root 4096 2006-11-28 22:30 rules.d 7899188 -rw-r--r-- 1 root root 226 2006-05-22 16:25 udev.conf
$ ls -ila vnc.conf 7897276 -rw-r--r-- 1 root root 4622 2006-02-20 13:05 vnc.conf
A Cuando se accede al archivo, la fecha del mismo no se modifica a Sólo se puede agregar contenido al archivo D Se aplica al Directorio, los cambios efectuados en él, se aplican sincrónicamente. d La herramienta dump para backup omitirá el archivo. E Muestra que un archivo comprimido, tiene un error de compresión I Se usa en directorios para indicar que estos están indexados con en árbol de hash. i El archivo queda sin modificarse j Los datos se escriben primero al journal del sistema ext3 antes de escribirse en el propio archivo s Cuando se borre el archivo, se llenará con ceros S Igual que D pero para archivos simples T Sirve para considerar a un directorio como si estuviera en el primer nivel de directorios. t Hace que el archivo no posea un fragmento al final combinado con otro archivo. u Cuando se elimina un archivo se guarda el contenido del mismo X El contenido crudo se un archivo comprimido se puede acceder directamente. Z El archivo está sucio
Esto se representa para su identificación con la convención
Se utiliza " a " de (all) para designar todos los usuarios.
Nota. Siempre que se liste un fichero, la asignación de permisos aparecerá en este orden ( u g o ).
r --> read (lectura) Si un usuario tiene otorgado este permiso podrá, - si se trata de un directorio, listar su contenido
- en el caso de un archivo simple, leer su contenido
w --> write (escritura) Este permiso activado permite modificar el archivo que lo posee,
en caso de ser un directorio,se podrán modificar y borrar ficheros contenidos en su interior
x --> eXecute (ejecución) Teniendo este permiso activado, podrá ejectuar los ficheros desde la línea de comandos.
En caso de ser un directorio, el usuario que lo posea
tendrá acceso a las funciones de lectura- escritura
$ ls -l pares.py -rw-r--r-- 1 gustavo gustavo 130 2007-02-17 00:53 pares.py
vemos que, de acuerdo con lo establecido anteriormente, este archivo tiene permiso de lectura-escritura (rw) para el propietario ( u ), sólo permiso de lectura (r) para el grupo ( g ) y sólo lectura (r) para el resto ( o ).
Nota: no confundir el primer guión que aparece en el listado, éste no pertenece a los bits asignados a los permisos sino al atributo del fichero que lo define como archivo simple.
u ---> 1 0 0 g ---> 0 0 0 o ---> 0 0 0
sólo está activado el bit correspondiente a lectura, por lo tanto este fichero tendría asignado solamente para este usuario el permiso de lectura. Ningún permiso para el resto de los usuarios
Si fuese,
u ---> 1 1 0 g ---> 1 0 0 o ---> 1 0 0
este fichero tendría activados los permisos de lectura escritura para el usuario, sólo lectura para el grupo y sólo lectura para otros.
| Binario | Octal |
|---|---|
| 000 | 0 |
| 001 | 1 |
| 010 | 2 |
| 011 | 3 |
| 100 | 4 |
| 101 | 5 |
| 110 | 6 |
| 111 | 7 |
| NEMOTECNICO | BINARIO | OCTAL | DESCRIPCION |
|---|---|---|---|
| _ _ _ | 000 | 0 | Todos los permisos desactivados |
| _ _ x | 001 | 1 | Permiso de ejecución activado |
| _ w _ | 010 | 2 | Permiso de escritura |
| _ w x | 011 | 3 | Permisos de escritura y ejecución |
| r _ _ | 100 | 4 | Permiso sólo de lectura |
| r _ x | 101 | 5 | Lectura y ejecución |
| r w _ | 110 | 6 | Lectura y escritura |
| r w x | 111 | 7 | Todos los permisos activados |