1.-introducción a linux

27
INTRODUCCIÓN A LINUX 1. UN POCO DE HISTORIA Linux es un kernel (un núcleo de un sistema operativo) creado por Linus Torwalds. Nació en Finlandia el 28 de Dic 1969 y estudió en la universidad de Helsinki. Desarrolló Linux porque deseaba disponer de un SO Unix en su PC. Linus T. quiso compartir su código para que cualquiera pudiera usarlo y contribuir a su desarrollo. Dado que en GNU ya habían desarrollado bastantes herramientas para Unix con la misma filosofía de software libre pronto se consiguió un SO Linux/GNU totalmente libre. Dos de las herramientas más importantes aportadas por GNU fueron el intérprete de comandos, y el compilador de C. Linux es un SO libre, tipo Unix y por lo tanto sus conceptos más básicos son comunes a los que incorpora cualquier sistema tipo Unix y resultan bastante distintos de otros conceptos que forman parte de la cultura microinformática fundamentalmente de Microsoft. Se trata de un sistema operativo multi-usuario, multi-tarea y multiplataforma. Existen escritorios gráficos que permiten hacer bastantes cosas de forma intuitiva. En Linux tenemos por ejemplo KDE o GNOME que permiten usar los programas de forma mucho más amistosa e intuitiva. Sin embargo la amistosidad tiene un precio. Los entornos intuitivos no permiten hacer cualquier cosa y consumen muchos recursos de CPU y memoria. En Linux estos entornos son una opción no una obligación. 1

Upload: salvador-reyes

Post on 24-Nov-2015

11 views

Category:

Documents


1 download

TRANSCRIPT

INTRODUCCIN A LINUX

1. UN POCO DE HISTORIA

Linux es un kernel (un ncleo de un sistema operativo) creado por Linus Torwalds. Naci en Finlandia el 28 de Dic 1969 y estudi en la universidad de Helsinki. Desarroll Linux porque deseaba disponer de un SO Unix en su PC.

Linus T. quiso compartir su cdigo para que cualquiera pudiera usarlo y contribuir a su desarrollo. Dado que en GNU ya haban desarrollado bastantes herramientas para Unix con la misma filosofa de software libre pronto se consigui un SO Linux/GNU totalmente libre. Dos de las herramientas ms importantes aportadas por GNU fueron el intrprete de comandos, y el compilador de C.

Linux es un SO libre, tipo Unix y por lo tanto sus conceptos ms bsicos son comunes a los que incorpora cualquier sistema tipo Unix y resultan bastante distintos de otros conceptos que forman parte de la cultura microinformtica fundamentalmente de Microsoft.

Se trata de un sistema operativo multi-usuario, multi-tarea y multiplataforma.

Existen escritorios grficos que permiten hacer bastantes cosas de forma intuitiva. En Linux tenemos por ejemplo KDE o GNOME que permiten usar los programas de forma mucho ms amistosa e intuitiva. Sin embargo la amistosidad tiene un precio. Los entornos intuitivos no permiten hacer cualquier cosa y consumen muchos recursos de CPU y memoria. En Linux estos entornos son una opcin no una obligacin.

Linux no fue concebido como sistema monousuario. Solo una recomendacin muy bsica. Tener en el ordenador como mnimo dos usuarios. Uno sera el superusuario 'root' con capacidad ilimitada para lo bueno y para lo malo y Otro, su usuario de trabajo normal.

La razn es que una equivocacin cometida desde un usuario normal solo puede tener malas consecuencias para el rea de trabajo de ese usuario. Por el contrario una equivocacin desde 'root' puede destruir toda la informacin de su sistema.

2. SISTEMAS DE ARCHIVOS EN LINUXIntroduccin

Si vienes del mundo de Windows lo primero que te sorprender es que no est la unidad C:. La distribucin de los discos y particiones en Linux es diferente. Ya en la instalacin te puedes dar cuenta cmo se nombran los discos en Linux: El primer disco duro es /dev/hda (HardDisk ideA) El segundo disco duro es /dev/hdb (HardDisk ideB) El disco tendr una o varias particiones, as las del primer disco duro (/dev/hda) sern /dev/hda1, /dev/hda2, ... stas tiene el equivalente a lo que en Windows se llama C:, D:, ...etc. En Linux todo es un archivo, y cuando digo todo es todo. Desde los archivos de datos hasta las particiones de los discos pasando por el ratn y la tarjeta de sonido. Los directorios tambin son archivos. Existe un directorio raiz (/) del que cuelga todo. Los dispositivos cuelgan del directorio /dev. Algunos de los directorios ms interesantes: /: Raz. /usr: Aqu se encuentra la gran mayora de los archivos existentes en un sistema Linux, tales como documentacin, casi la totalidad de los comandos de usuario, juegos, libreras, etc. /bin: Aqu estn los comandos que pueden usar todos los usuarios (incluido el administrador o root). /sbin: Aqu estn los comandos que slo puede usar el administrador o root. /dev: Ah estn todos los dispositivos de nuestra mquina. /home: Lugar donde se almacenan las cuentas de usuarios. /lib: Enlaces a las libreras que se necesitan para el sistema. /var: Contiene informacin variable, como por ejemplo los logs del sistema (/var/log), correo local, etc. /tmp: Directorio temporal. /etc: Configuracin global de los programas. /root: Cuenta del administrador. /boot: Aqu est todo lo necesario para arrancar el sistema. /media: Punto de montaje para sistemas de archivos montados localmente. /mnt: Antiguo punto de montaje para sistemas de archivos montados localmente. Hoy en da est en desuso y se conserva por razones histricas. /proc: Sistema de archivos virtual de informacin de procesos y del kernel.

Sistemas de archivos en linux

Particionar un disco duro es realizar una divisin en l de modo que, a efectos prcticos, el sistema operativo crea que tienes varios discos duros, cuando en realidad slo hay un nico disco fsico dividido en varias partes. De este modo, se pueden modificar o borrar particiones sin afectar a los dems datos del disco. Las particiones bsicas se llaman primarias y puede haber a lo sumo 4. Esto puede ser suficiente para nuestros intereses. Como a veces no es as, se crearon las particiones extendidas que pueden albergar otras particiones dentro, llamadas lgicas. Los sistemas de archivos indican el modo en que se gestionan los archivos dentro de las particiones. Segn su complejidad tienen caractersticas como previsin de apagones, posibilidad de recuperar datos, indexacin para bsquedas rpidas, reduccin de la fragmentacin para agilizar la lectura de los datos, etc. Hay varios tipos, normalmente ligados a sistemas operativos concretos. A continuacin se listan los ms representativos: fat32 o vfat: Es el sistema de archivos tradicional de MS-DOS y las primeras versiones de Windows. Por esta razn, es considerado como un sistema universal, aunque padece de una gran fragmentacin y es un poco inestable. ntfs: Es el nuevo sistema de Windows, usado a partir del 2000 y el XP. Es muy estable. El problema es que es privativo, con lo cual otros sistemas operativos no pueden acceder a l de manera transparente. Desde Linux slo se recomienda la lectura, siendo la escritura en estas particiones un poco arriesgada. ext2: Hasta hace poco era el sistema estndar de Linux. Tiene una fragmentacin bajsima, aunque es un poco lento manejando archivos de gran tamao.

ext3: Es la versin mejorada de ext2, con previsin de prdida de datos por fallos del disco o apagones. En contraprestacin, es totalmente imposible recuperar datos borrados. Es compatible con el sistema de archivos ext2. La migracin de ext2 a ext3 es muy sencilla y se pueden aprovechar las ventajas de un slido sistema de archivos con JOURNALING sin tener que volver a dar formato al sistema. Actualmente es el ms difundido dentro de la comunidad GNU/Linux y considerado el estndar de facto. Permite escribir datos ms de una vez y su velocidad es mayor, ya que los journals de ext3 optimizan el movimiento de los cabezales de los discos duros. ext4: Es un sistema de archivos con registro por diario (en ingls Journaling), anunciado el 10 de octubre de 2006, como una mejora compatible de ext3. La principal novedad en Ext4 es Extent, o la capacidad de reservar un rea contigua para un archivo; esto puede reducir y hasta eliminar completamente la fragmentacin de archivos. ReiserFS: Es el sistema de archivos de ltima generacin para Linux. Organiza los archivos de tal modo que se agilizan mucho las operaciones con stos. El problema de ser tan actual es que muchas herramientas (por ejemplo, para recuperar datos) no lo soportan. swap: Es el sistema de archivos para la particin de intercambio de Linux. Todos los sistemas Linux necesitan una particin de este tipo para cargar los programas y no saturar la memoria RAM cuando se excede su capacidad. Es usado cuando la cantidad de memoria fsica (RAM) no es suficiente. Si el sistema necesita ms memoria y la memoria fsica est llena, las pginas inactivas de la memoria se mueven al espacio swap. Mientras que el espacio swap puede ser de ayuda para los ordenadores.

Journaling en linuxCon la ampliacin de la capacidad de los discos, la recuperacin de la consistencia del sistema de fichero se ha convertido en una tarea que requiere mucho tiempo, por lo que crea problemas serios de disponibilidad de las mquinas afectadas. Esta es la razon principal de que los sistemas de ficheros hayan importado de las bases de datos las tecnicas de transacciones y recuperacion, y as hayan aparecido los sistemas de ficheros con JOURNALING.Un sistema con journaling es un sistema de ficheros tolerante a fallos en el cual la integridad de los datos esta asegurada porque las modificaciones de la meta-informacion (datos que describen otros datos. El concepto de metadatos es anlogo al uso de ndices para localizar objetos en vez de datos. Por ejemplo, en una biblioteca se usan fichas que especifican autores, ttulos, casas editoriales y lugares para buscar libros. As, los metadatos ayudan a ubicar datos)de los ficheros son primero grabadas en un registro cronologico (log o journal, que simplemente es una lista de transacciones) antes que los bloques originales sean modificados. En el caso de un fallo del sistema, un sistema con journaling asegura que la consistencia del sistema de ficheros es recuperada. El metodo mas comun es el de grabar previamente cualquier modificacion de la meta-informacion en un rea especial del disco, el sistema realmente grabara los datos una vez que la actualizacin de los registros haya sido completada.A la hora de recuperar la consistencia despues de un fallo, el modulo de recuperacion analizara el registro y solo repetira las operaciones incompletas en aquellos ficheros inconsistentes, es decir que la operacion registrada no se haya llevado a cabo finalmente, con lo que se recuperara la consistencia del sistema de ficheros casi al instante, ya que en vez de examinar todos los meta- datos (como hace el "fsck"), solo se inspeccionan aquellas porciones de los meta-datos que han sido cambiadas recientemente.Ejemplo: Por ejemplo, cuando se apaga mal nuestra pc, antes, los archivos podan quedar "corruptos", pero ahora con estos "nuevos" sistemas, no se si es 100% seguro, pero esto no sucede ya que, cuando se apaga mal nuestro pc, las transacciones al disco que no fueron completadas, fueron registradas anteriormente en el "journal", y al reiniciar la mquina estas son realizadas, por lo tanto el sistema de archivos se "sincroniza" de vuelta sin perder datos. En otros sistemas de archivos, si sucediera esto, se podan perder muchos datos.

Nombre de las particiones y dispositivos en linux Vamos a ver los nombres que tienen asignados las diferentes particiones en Linux :Disqueteras Primera disquetera: /dev/fd0 Segunda disquetera: /dev/fd1Discos duros (en general: /dev/hdx#, donde x es el disco y # es la particin)1. Primer disco duro: (todo el disco) /dev/hda1.1. Particiones primarias* Primera particin primaria: /dev/hda1* Segunda particin primaria: /dev/hda2* Tercera particin primaria: /dev/hda3* Cuarta particin primaria: /dev/hda41.2. Particiones lgicas* Primera particin lgica: /dev/hda5* Segunda particin lgica: /dev/hda6* Sucesivamente: /dev/hda#2. Segundo disco duro: (todo el disco) /dev/hdb2.1. Particiones primarias* Primera particin primaria: /dev/hdb1* Segunda particin primaria: /dev/hdb2* Tercera particin primaria: /dev/hdb3* Cuarta particin primaria: /dev/hdb42.2. Particiones lgicas* Primera particin lgica: /dev/hdb5* Segunda particin lgica: /dev/hdb6* Sucesivamente: /dev/hdb#PROCESO DE ARRANQUE EN LINUX

El proceso de arranque en Linux es la forma en la cual los sistemas operativos basados en Linux se inicializan.

Todo el proceso de arranque, se lleva a cabo en cuatro etapascaracterizadas por la entidad que en ese momento tiene el controlsobre la CPU:

1. al inicio solo la BIOS tiene control,

2. despus se le pasar el control al cargador de arranque,

3. ms adelante el control pasa al propio kernel Linux, y

4. en la ltima etapa ser cuando tengamos en memoria los programas de usuario conviviendo junto con el propio sistema operativo, y sern ellos quienes tengan el control del CPU.

La etapa del cargador de arranque no es totalmente necesaria, ya queuna determinada BIOS puede cargar y pasar el control a Linux sin haceruso del cargador de arranque, aunque es cierto que usar un cargadorde arranque facilita al usuario la forma en que el kernel ser cargado.

2.1 La BIOS

Al encender la computadora las primeras operaciones las realiza la BIOS. En esta etapa se realizan operaciones bsicas de hardware. El proceso de arranque ser diferente dependiendo de la arquitectura del procesador y la BIOS.

Una vez que el hardware se reconoce y se deja listo, la BIOS carga enmemoria el cdigo ejecutable del cargador de arranque y le pasa el control. Hay variedad de BIOS que permiten al usuario definir en qu dispositivo/particin se encuentra dicho cargador de arranque.

2.2. Cargador de arranque

Un cargador de arranque, o en ingls bootloader, es un programa diseado exclusivamente para cargar un sistema operativo en memoria.

Debido a que el sector de arranque tan slo consta de 512 bytes, y en la mayora de arquitecturas no es espacio suficiente para ubicar el sistema operativo al completo, se suele utilizar un cargador de arranque que realiza varias etapas antes de ceder el control al sistema operativo.

Los cargadores de arranque modernos tpicamente preguntan alusuario que sistema operativo, o tipo de sesin, desea inicializar.

Los cargadores de arranque ms usuales bajo Linux son: GRUB, LILO, yLoadlin.

2.3 Kernel

El kernel Linux se encarga de las principales funciones del sistema operativo, como el manejo de memoria, planificacin de tareas, entradas y salidas, comunicacin entre procesos, y dems sistemas de control.El proceso del kernel se lleva en dos etapas; la etapa de carga y laetapa de ejecucin.

El kernel generalmente se almacena en un archivo comprimido con zlib.Este archivo comprimido se carga y se descomprime en memoria.Tambin se cargan los drivers necesarios por medio de un disco RAM(initrd, o recientemente initramfs). El disco RAM es un sistema de archivostemporal usado en la fase de ejecucin del kernel.

Una vez que el kernel se ha cargado en memoria y est listo, se lleva a cabo su ejecucin. Esto se realiza llamando la funcin startup del kernel. Esta funcin establece el manejo de memoria, como tablas de paginacin y paginacin de memoria y detecta el tipo del CPU. Despus cambia a funcionalidades que nodependen del hardware por medio de la llamada a la funcin start_kernel().

3. SISTEMA DE FICHEROS

El sistema de archivos de Linux est basado en el Filesystem Hierarchy Standard o FHS, que en espaol se traduce como Estndar de jerarqua del sistema de archivos. ste es un estndar que con mayor o menor rigor siguen la mayora de las distribuciones GNU/Linux y algunos otros sistemas operativos basados en UNIX.

Algunas de sus principales caractersticas son: Todo est organizado en una nica estructura de directorios. Siendo ms concretos, todo est dentro del directorio raz, que se representada mediante el smbolo '/'. Todo es un archivo. Dentro de / est representado todo el sistema:los directorios y archivos presentes en los discos duros y dems dispositivos de almacenamiento montados, todo el hardware de la computadora, todos los procesos en ejecucin, etc... Cada cosa en su sitio y un sitio para cada cosa. Todos los directorios tienen una finalidad concreta, todos los contenidos tienen una ubicacin predeterminada segn su naturaleza y funcin.

3.1. Archivos

Para conocer las propiedades de un Sistema de Archivos, comencemospor definir que es un archivo, tambin conocido como fichero:

Con frecuencia, se define a un archivo informtico, como una entidad lgica formada por un conjunto de bytes, ubicados sobre un sistema de almacenamiento (temporal o permanente), que responde a las caractersticas de unicidad, ubicacin y reglas de manipulacin.

La funcin "vital" de un archivo es poder ser utilizado, y como tal debe ser localizado lo ms fcilmente 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 informacin, necesita un Sistema de Ficheros, para organizar la informacin y tener acceso a ella de forma eficiente y rpida.

Existen archivos especiales que representan a los dispositivos fsicos,existen archivos directorios, para organizar otros archivos y los archivossimples, encargados de almacenar toda la informacin, incluso programas. Es fcil hacerse a la idea de que existen infinidad de archivos simples.

Como definimos que toda la informacin 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 de todo tipo, como memorndums, scripts, o cartas, y estarn escritos mediante una tabla de caracteres reconocida, como pueden ser ASCII o UNICODE.Estos archivos podrn editarse y modificarse con un editor de texto, como son vi, emacs, gedit o nano.

Los archivos binarios contienen datos no textuales, como por ejemplo imgenes, ejecutables u otros archivos de datos que slo son capaces de interpretarlos aplicaciones especficas, como por ejemplo los ficheros mdb que contienen bases de datos creadas por Microsoft Access, y, por tanto, no pueden visualizarse con simples editores de texto. Estos archivos slo tienen sentido para los programas que lo ejecutan. 3.1.1.Tipos de Archivos

Como se ha indicado anteriormente, existen diversos tipos de archivos en Linux. El comando ms habitual para consultar archivos es ls,

El tipo de archivo queda representado por el primer carcter de cada lnea, cuyo significado se muestra en la siguiente tabla:

Identificador Descripcin

-Archivos sencillos

dDirectorios

|Vnculos simblicos

cDispositivos de caracteres

bDispositivos de bloques

pTuberas (pipe) con nombre (FIFO)

sSocket (conector para comunicaciones TCP/IP)

1) Archivos sencillos

Se emplean para almacenar informacin y datos en algn dispositivo de almacenamiento secundario, que por regla general suele ser el disco duro.Un archivo sencillo puede contener desde un programa ejecutable generado con Java, C++, C o Perl, como imgenes, textos, sonido, o grficos.

En Unix/Linux no existe diferencia a la hora de clasificar estos archivos por su contenido, para el ncleo, todos son iguales, slo es un flujo de bytes, y es cada aplicacin en concreto la encargada del tratamiento de los ficheros que vaya a manipular. Por tanto, las aplicaciones estn encargadas 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.

Suelen tener algunas pequeas restricciones asociadas:

nombre no mayor de 255 caracteres, no usar meta-caracteres del SHELL, evitar comenzar con un nmero, y tener en cuenta que un nombre comenzado con un punto, significa un archivo oculto.

Los archivos en Unix/Linux no necesitan extensin, al ser tratados en principio sin formato predeterminado, aunque puede hacerse como recurso referencial, con una o ms extensiones que indiquen la naturaleza del contenido.

2) Directorios

Son archivos que contienen a su vez otros archivos. Cuando estos ltimos contienen a su vez archivos se suelen denominar subdirectorios.

En Unix/Linux, los directorios tienen una forma determinada:

Nmero de i-nodo + nombre del directorio

El nmero i-nodo tiene 2 Bytes, siendo siempre un nmero entero.Representa el valor de un ndice que opera dentro de una lista en el disco. Su propsito es facilitar la bsqueda de los archivos, ya que en la lista que forma, se almacenan caractersticas de los archivos representados, como son: tamao, fecha de creacin, bloque asignado, permisos, enlaces, pero nunca el nombre.

Fsicamente, un archivo no se almacena de forma continua en el dispositivo de almacenamiento, por lo que puede estar repartido en varios bloques. A este hecho se le denomina fragmentacin.

A diferencia de Windows, Linux tiende a la continuidad del espacio fsico en el reparto de los bloques de asignacin. Debido a esto, es necesaria la existencia de una estructura adicional que "rena" los distintos fragmentos del archivo para ser ledo.

sta es la funcin principal de la lista de i-nodos. En todos los directorios aparecen dos ficheros ocultos representados por "." y ".." El primero "." serefiere al directorio actual, mientras que el segundo referencia al directorio padre, o lo que es lo mismo, al directorio desde el que cuelga en orden de jerarqua del Sistema de Ficheros. Por convencin, el directorio padre de la raz es la propia raz.

3) Enlaces

Es un fichero cuya funcin es permitir enlaces a elementos del sistema de archivos desde cualquier punto de la jerarqua del mismo. Un enlace no es ms que un nombre que apunta a un determinado recurso del sistema de ficheros, fsico o lgico. Dependiendo de su funcin los clasificamos en,

Fuertes o duros: Son aquellos enlaces que no se diferencian en nada del archivo original. Dbiles o simblicos: Son enlaces que apuntan al nombre del fichero, no a su contenido.

Los enlaces le permiten dar a un nico archivo mltiples nombres. Los archivos son identificados en el sistema por su nmero de inodo, el cual es el nico identificador del archivo para el sistema de archivos. Un directorio es una lista de nmeros de inodo con sus correspondientes nombres de archivo. Cada nombre de archivo en un directorio es un enlace a un inodo particular.

1) Enlaces fuertes o duros

Debemos de entender que un fichero, es un conjunto de bytes que ocupa una zona en algn dispositivo, y su nombre no es ms que un enlace fuerte a l. Es decir, un enlace fuerte es otro nombre para un mismo fichero.

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, tendramos varias copias lgicas del mismo, pero slo existira una copia fsica del mismo, ya que todos apuntan a la misma zona "fsica", 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 estn en una particin diferente.

En el caso de borrado de un fichero original, se borran todos los enlaces fuertes asociados a l.

La orden ln es usada para crear enlaces para un fichero.

Usando ls -i, veremos el nmero de inodo para el fichero.ln fichero fhichero2 crear un enlace llamado fichero2 que corresponder al mismo fichero.

Utilizando ls -i veremos que los dos ficheros tienen el mismo inodo.ls -i fichero fichero2

Estos enlaces se denominan enlaces duros (hard links) porque directamente crean el enlace al inodo. Tambin hay que tener en cuenta que solamente podremos crear enlaces duros entre ficheros del mismo sistema de ficheros; los enlaces simblicos no tendrn este tipo de restricciones.

Cuando eliminamos un fichero con rm, en realidad, solamente estamos eliminando un enlace a un fichero. Si utilizamos la orden rm fichero Solamente el nombre fichero es eliminado, , fichero2 seguir existiendo.Un fichero estar definitivamente eliminado del sistema cuando no queden enlaces a el. En realidad, la norma es que los ficheros tengan solamente un enlace duro.Un modo de saber cuantos enlaces tiene un fichero es con la orden ls -l .Fjate en la salida estndar por pantalla, la primera columna indica los permisos, como vimos en lecciones pasadas, y una segunda columna con un nmero te indicar el nmero de enlaces del fichero, o, si es un directorio, el nmero de directorios que contiene, en nuestro ejemplo te mostrara lo siguiente:ls -l fichero fichero2-rw-r-r- 2 root root 12 Aug 5 16:51 fichero-rw-r-r- 2 root root 12 Aug 5 16:50 fichero2La segunda columna en el listado, "2", especifica el nmero de enlaces al archivo.

Cada directorio tiene al menos dos enlaces duros en l: "." (un enlace apuntando a s mismo) y ".." (un enlace apuntando al directorio padre). En el directorio raz (/), el enlace ".." simplemente apunta a /.

2) Enlaces dbiles o simblicos.

Cuando creamos un enlace simblico significa que creamos un puntero a dicho fichero o directorio. Si borrases dicho fichero o directorio el enlace quedara apuntando a la nada. Esto podra parecerse bastante a lo que Windows nos tiene acostumbrados.

Estos enlaces son articulados en Linux como ficheros independientes, conteniendo una referencia, el inodo, que apunta a la ubicacin real del archivo. Estos enlaces usan un pathname, o ruta, que puede ser absoluta cuando comienza con "/", o relativa de acuerdo con la ubicacin del enlace.

Un enlace simblico, no puede moverse una vez creado porque se romper, a diferencia de los enlaces fuertes. Otra caracterstica es que carecen de permisos o estado por su cuenta. En su defecto usan los permisos del fichero al que apuntan. Pueden crearse enlaces simblicos a un fichero que no est en el mismo dispositivo de almacenamiento. Los enlaces simblicos son procesados por el ncleo de forma diferente a los duros, lo cual es solo una diferencia tcnica, pero a veces importante. Los enlaces simblicos son de ayuda puesto que identifican al fichero al que apuntan; con enlaces duros no es tan fcil saber que fichero esta enlazado al mismo inodo. La operacin 'rm' sobre un fichero simblico no actua sobre el fichero apuntado sino sobre el propio enlace simblico destruyndolo.

Con la orden ln -s creamos un enlace simblico a un fichero. Por ejemplo:ln -s archivo archivo2Hay que tener en cuenta que el nombre del enlace simblico no soporta rutas completas, por lo que para crearlo, ser imprescindible situarse dentro del directorio en el que queramos que quede colocado dicho enlace.Si lo verificamos de nuevo con la orden ls -l vemos que el fichero fichero es un enlace simblico apuntando a fichero2ls -l fichero fichero2Los bits de permisos en un enlace simblico no se usan (siempre aparecen como (rwxrwxrwx). En su lugar, los permisos del enlace simblico son determinados por los permisos del fichero apuntado. Asimismo, si el fichero apuntado es eliminado, los enlaces simblicos permanecen, pero ya no sern vlidos y carecern de sentido.

4) - Dispositivos de caracteres y bloques.

Son archivos especiales cuya principal funcin es la comunicacin con un dispositivo de hardware. De acuerdo con la naturaleza del hardware, se denominan de caracteres: consola, puertos de serie, bloques: discos, memorias, etc

Estos archivos pueden entenderse como puntos de unin entre el ncleo y los controladores o drivers de dispositivos, como pueden ser /dev/tty0, /dev/null o /dev/hda.

6) Tuberas con nombre.

Archivos localizados para la comunicacin entre procesos. Son una va de intercambio de datos. Se gestionan mediante el mtodo FIFO, o First In-First Out, que se basa en que el primer byte introducido por el emisor ser el primero en ser extrado por el receptor. Su comunicacin es unidireccional. Este tipo de fichero es localizado mediante una ruta, como cualquier fichero normal, y puede ser borrado como cualquier otro archivo. Por supuesto puede verse con el comando ls.

7) Socket

Son archivos para comunicacin entre procesos locales. Se pueden ver como archivos, pero no pueden ser ledos y escritos salvo por los procesos directamente relacionados con la comunicacin de la que son objeto.

3.1.2. Atributos Bsicos

Analicemos los atributos bsicos de un archivo basndonos en lasiguiente invocacin al comando ls:

# ls ila vnc.conf7897276 -rw-r--r-- 1 root root 4622 2011-02-20 13:05 vnc.conf

El primer nmero corresponde al i-nodo. Se muestra en el listado porque hemos usado especficamente la opcin "i".

El primer carcter del siguiente bloque corresponde al tipo de archivo.En este caso se trata de un archivo simple ya que, como vimos en la tabla de tipos de archivos, su smbolo es el guin (-). Esta asignacin evita tener que asignarle una extensin para su clasificacin, por lo menos, para la mquina. Otra cosa es que, el creador del archivo quiera ponerle una extensin para su comodidad, pero no ser ms que parte del nombre del archivo y nada tendr que ver con su clasificacin.

La secuencia que sigue, rw-r--r--, es la asignacin de permisos. El siguiente bloque, "1", hace referencia al nmero de enlaces fuertesdel archivo.

Le siguen el nombre del propietario y grupo propietario del archivo encuestin. En este caso ambos se llaman root.

El siguiente bloque, en el que pone 4622, es el tamao del fichero enbytes, y va seguido de la fecha y la hora de creacin del archivo.

Por ltimo tenemos el nombre del archivo, que en este caso es vnc.conf.

4. PERMISOS

Chmod con letrasPara brindar algo de privacidad y proteccin cada archivo o directorio tiene asociados permisos diferentes para el propietario, para el grupo y para los dems usuarios. Desde un administrador de archivos, puede ver los permisos de un archivo con el botn derecho del ratn cuando el puntero est sobre el archivo, escogiendo la opcin apropiada del men que aparece. Desde un intrprete de comandos puede emplear el comando ls con la opcin -l. Un ejemplo del resultado de este comando se presenta a continuacin:drwxr-xr-x 5 juan users 4096 Feb 21 06:31 textos La lnea presenta un directorio (la d al principio de la lnea lo indica). El nombre del directorio es textos tiene 5 archivos, fue modificado por ltima vez el 21 de Febrero del ao en curso a las 6:31AM, el propietario es juan, el grupo es users y el tamao es 4096 bytes. Los tres caracteres rwx que siguen a la d inicial indican los permisos para el propietario, los tres siguientes r-x indican los permisos para el grupo y los tres siguientes r-x indican los permisos para el resto de usuarios.-rw-r----- 1 juan users 62561 May 13 18:13 ev.tar.gz

La lnea presenta un archivo (el guin inicial lo indica). Como el orden de estos permisos es siempre el mismo, resulta que el archivo ev.tar.gz no es ejecutable, que puede ser ledo por el propietario y el grupo pero no por los dems usuarios, adems puede ser escrito slo por juan.lrwxrwxrwx 1 juan users 12 Nov 12 2010 a -> /etc/hosts La lnea representa un enlace. Del enlace podemos destacar que se llama a, que enlaza al archivo /etc/hosts y que su tamao y permisos reales los heredar de /etc/hosts.Los permisos de un archivo pueden ser modificados por el propietario o por el administrador del sistema con el comando chmod que espera dos parmetros: cambio por realizar al permiso y nombre del archivo por cambiar. Los permisos se pueden especificar en octal o con una o ms letras para identificar al usuario (u para el usuario, g para el grupo, o para los dems usuarios y a para todos), un +, un - o un = y despus letras para identificar los permisos (r, w o x). Por ejemplo: chmod og+x sube.shDa a los dems usuarios y al grupo permiso de ejecucin del archivo sube.sh que debe estar en el directorio desde el cual se da el comando. chmod a-w deu.txtQuita el permiso de escritura en el archivo deu.txt tanto al propietario, como al grupo, como a los dems usuarios. Este mismo resultado puede obtenerse con el comando chmod -w deu.txt. Cuando no se especifican usuarios chmod toma por defecto todos los usuarios. chmod u=rxw,g=rx,o= textosCambia permisos del archivo (o directorio) textos, el usuario puede leer, ejecutar y escribir, el grupo puede leer y ejecutar mientras que los dems usuarios no tienen permisos.El propietario de un archivo puede ser modificado slo por el administrador del sistema con el programa chown. Un usuario que pertenezca a varios grupos puede cambiar el grupo de uno de sus archivos a alguno de los grupos a los que perteneza con el program chgrp, por ejemplo chgrp estudiantes tarea1.txtCambiar el grupo del archivo tarea1.txt a estudiantes. Los grupos a los cuales un usuario pertenece son mostrados por el programa groups.

Chmod con Nmeros Uso: chmod {opciones} {nombre de archivo}OpcionesDefinicin

#--Propietario

-#-Grupo

--#Otros

1ejecutar

2escribir

4leer

Propietario, Grupo y Otros est representado por tres nmeros. Para obtener el valor de las opciones para determinar el tipo de acceso necesarios para el archivo hay que agregarlos a continuacin.Por ejemplo si deseas que un archivo tenga estos permisos -rw-rw-rwx debes hacer lo siguiente:

PropietarioGrupoOtros

Leer y escribirleer y escribirleer, escribir y ejecutar

4 +2 = 64 +2 = 64 +2 +1 = 7

chmod 667 archivo

Otro ejemplo, si quieres que un archivo tenga estos permisos: --w-r-x--x debes utilizar lo siguiente:PropietarioGrupoOtros

Escribirleer y ejecutarejecutar

24 +1 = 51

chmod 251 archivo

20