You are on page 1of 53

Universidad Tcnica Federico Santa Mar e a

Curso Linux Avanzado Departamento Informtica U.T.F.S.M. a


Mauricio Vergara Ereche mave@inf.utfsm.cl Carlos Molina Ramrez penny@inf.utfsm.cl

VALPARA , D ICIEMBRE 2004 ISO

Curso Linux Avanzado

ndice I
1. Introducci n o 1.1. Agradecimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. Instalaci n del Sistema o 2.1. Mtodos de instalacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e o 2.2. Tareas previas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1. Su Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2. Espacio en disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.3. Cuanto espacio es requerido? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Arrancar el Instalador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4. Denicin del esquema de particiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 2.4.1. Particionamiento Automatico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.2. Particionamiento Manual con Disk Druid . . . . . . . . . . . . . . . . . . . . . . . . 5 5 6 6 6 6 7 7 8 8 9 9

2.5. Precongurando el Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.5.1. Gestor de Arranque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.5.2. Conguracin de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 o 2.5.3. Conguracin del cortafuegos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 o 2.5.4. Seleccin del soporte del idioma . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 o 2.5.5. Conguracin del huso horario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 o 2.5.6. Conguracin de la contrase a de root . . . . . . . . . . . . . . . . . . . . . . . . . 13 o n 2.5.7. Conguracin de la autenticacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 o o 2.6. Seleccin de paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 o 2.6.1. Seleccin individual de paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 o 2.6.2. Dependencias no satisfechas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.7. Finalizando la instalacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 o 2.7.1. Tarjeta de Video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.7.2. Monitores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.7.3. Conguracion de X-Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.8. Tareas posteriores a la instalacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 o 3. Conguraci n de dispositivos o 15

3.1. Teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.2. Mouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3. Video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Escuela de Verano, Diciembre - 2004

Departamento de Informtica U.T.F.S.M. a 3.3.1. Instalando X.org . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.3.2. Congurando X.org . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.3.3. nVidia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.4. Sonido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.5. Adaptadores de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.6. Impresoras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.7. Tunning del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4. Trabajando como root 25

4.1. Precauciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.2. Trabajando con servicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.2.1. Niveles de ejecucin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 o 4.2.2. Utilidades de los niveles de ejecucin . . . . . . . . . . . . . . . . . . . . . . . . . . 27 o 4.3. Servicios bsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 a 4.3.1. Intervencin del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 o 4.3.2. Estableciendo los servicios necesarios . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.3.3. Apagando servicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5. El kernel en Linux 31

5.1. Comandos de manejo de mdulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 o 5.2. El sistema de archivos inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6. Procesos y Se ales n 33

6.1. Procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.1.1. Ejecutando procesos en segundo plano . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.1.2. Listando los procesos del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6.2. Se ales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 n 6.3. Creando y vericando el sistema de archivos ext3 . . . . . . . . . . . . . . . . . . . . . . . 35 6.3.1. Migrando los sistemas de archivos de ext2 a ext3 . . . . . . . . . . . . . . . . . . . 35 6.3.2. Reparar un sistema de archivos ext3 que est da ado . . . . . . . . . . . . . . . . . 36 a n 6.4. Sistemas de Volumenes Lgicos (LVM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 o 6.4.1. Ocupando LVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 7. Automatizando tareas de administraci n con BASH o 39

7.1. Principios de programacin con BASH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 o 7.1.1. Variables de entorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado

7.1.2. Uso de las comillas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 7.1.3. Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 7.1.4. Estructuras de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 7.1.5. Globbing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 7.2. Creacin de Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 o 7.2.1. Hola mundo! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 7.2.2. Un ejemplo ms complejo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 a 8. El sistema de paquetes Red Hat Package Manager (RPM) 45

8.1. Instalando y Desinstalando Paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 8.1.1. Consultas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 8.1.2. Vericacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 o 8.1.3. Instalar y Actualizar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 8.1.4. Desinstalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 8.2. Herramientas de adquisicin de alto nivel . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 o 8.2.1. APT - Advance Package Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 8.2.2. YUM - YellowDog Updater Modied . . . . . . . . . . . . . . . . . . . . . . . . . . 49

8.2.3. Construyendo Repositorios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 8.3. Construyendo un RPM simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 8.3.1. Construyendo a Partir de un SRC-RPM . . . . . . . . . . . . . . . . . . . . . . . . . 52 8.3.2. Construyendo a Partir de un tar.gz . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Escuela de Verano, Diciembre - 2004

Departamento de Informtica U.T.F.S.M. a

1.

Introducci n o

1.1. Agradecimientos
Este documento, es fruto del esfuerzo de varias personas que han colaborado en su desarrollo a lo largo de los ultimos 3 a os, durante los cuales se ha desarrollado estos cursos en el Departamento de n Informtica de la Universidad Tcnica Federico Santa Mar La mayor de ellos estudiantes, apoyados a e a. a por el incentivo constante del profesor Horst von Brand y el espacio de trabajo que les ha dado el Laboratorio de Computacin LabComp, han permitido que el movimiento Linux haya crecido de muy o buena manera, apoyando a mucha gente y llegando incluso tener una destacada presencia mundial, al ser sede de 2 de los Encuentros Nacionales de Linux, realizados en Octubre del 2003 y Octubre del 20041 . Se hacen especiales agradecimientos a todos aquellos que participaron de alguna u otra forma en la confeccin de este documento: o Carlos Massoglia Lillo. Carlos Molina Ram rez, Horst von Brand, Jos Miguel Herrera, e Luis Arvalo Reyes, e Marcelo Olgu Mena, n Mauricio Araya Lpez, o Mauricio Vergara Ereche, Nicols Troncoso Carr`re, a e Roberto Bonvallet Carrasco, Vernica Ram o rez Duarte, El Objetivo de este documento2 es profundizar los conocimientos de los usuarios bsicos de Linux. a Este documento trata principalmente sobre la distribucin Fedora core 3 Linux, en la cual se harn las o a sesiones prcticas de este curso. Se asume que el lector posee nociones bsicas del sitema operativo a a Linux, por lo cual ciertos detalles bsicos son pasados por alto en pro de una profundizacin de los a o temas vistos en los cursos bsicos de Linux. a

1 http://www.encuentrolinux.cl 2 Se le agradecer al atento lector el reportar cualquier error u omision en la confeccin de este documento a sus autores en; a o mave007@inf.utfsm.cl o penny@inf.utfsm.cl

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado

2.

Instalaci n del Sistema o

El instalador de Fedora core 3, ms conocido como Anaconda, es el programa que nos permitir instaa a lar el sistema operativo en nuestro disco duro, a la vez que congura los dispositivos que posea nuestro PC. Este instalador tiene dos interfaces de instalacin; una interfaz grca y una interfaz modo texto. o a La instalacin no depende del tipo de interfaz que se escoja, por lo que se pueden usar indistintamente. o Cabe decir que para computadoras ms peque as (poca ram, y procesadores lentos) es recomendable a n usar el instalador en modo texto. El instalador se cambiar automticamente de modo grco a modo texto si la computadora no es a a a capaz de ejecutar adecuadamente el instalador en modo grco. a

2.1. Mtodos de instalaci n e o


e o Fedora core Linux provee los siguientes mtodos de instalacin. CD-ROM Si posee un lector de CD-ROM y tiene el CD-ROM de Fedora core, puede utilizar este mtodo. e Necesitar una imagen booteable (com nmente conseguida en un CD-ROM o un pendrive) para a u arrancar. Tambin puede usar discos de arranque PCMCIA. e Disco duro Si ha copiado las imgenes ISO de Fedora core en el disco duro local, puede utilizar este mtodo. a e Necesitar un disquete de arranque. Tambin se pueden utilizar disquetes de controlador PCMCIA. a e Imagen NFS Si est realizando la instalacin desde un servidor NFS utilizando imgenes ISO o una imagen a o a rplica de Fedora core, puede utilizar este mtodo. Necesitar una imagen booteable de arranque e e a por red. Tambin se pueden utilizar disquetes de controlador PCMCIA. e FTP Si est realizando la instalacin directamente desde un servidor FTP utilice ste mtodo. Necesia o , e e tar una imagen booteable de arranque por red. Tambin se pueden utilizar disquetes de controlaa e dor PCMCIA. HTTP Si est realizando la instalacin directamente desde un servidor Web HTTP utilice este mtodo. a o , e Necesitar una imagen booteable de arranque por red. Tambin se pueden utilizar disquetes de a e controlador PCMCIA.

2.2. Tareas previas


En esta seccin detallaremos algunas tareas que es conveciente realizar antes de la intalacin de un o o sistema Linux. 2.2.1. Su Hardware

Si tiene otro sistema operativo es importante que anote el modelo de cada pieza de hardware, si bien los Kernel modernos tienen soporte para la mayoria del hardware existente, existen algunos con

Escuela de Verano, Diciembre - 2004

Departamento de Informtica U.T.F.S.M. a

especicaciones propietarias3 los cuales deberan ser congurados una vez terminada la instalacin. o Si no tiene un sitema operativo instalado, recurra a los manuales para tener nota del hardware que compone a su PC.

2.2.2.

Espacio en disco

Casi todos los sistemas operativos (SO; OS, operating system en ingls) modernos utilizan particiones e de discos, y Fedora core no es una excepcin. Cuando instale Fedora core, tendr que trabajar con o a particiones de disco. Si Fedora core va a compartir su sistema con otro SO, necesitar estar seguro de tener espacio dispoa nible suciente en su(s) disco(s) duro(s) para la instalacin. o El espacio de disco destinado a Fedora core debe estar separado del espacio utilizado por otros sistemas operativos que puedan estar instalados en su sistema, como por ejemplo Windows, OS/2, o incluso una versin diferente de Linux. Al menos dos particiones (/ y swap) deben estar dedicadas a o Fedora core. Antes de comenzar el proceso de instalacin, debern reunirse al menos una de las condiciones o a siguientes: Su ordenador deber tener espacio sin particionar para la instalacin de Red Hat Linux. a o Deber contar con una o ms particiones que pueda borrar para conseguir ms espacio libre para a a a instalar Fedora core.

2.2.3.

Cuanto espacio es requerido?

Fedora core ofrece distintos esquemas de instalacion, para acomodar mejor las necesidades de cada usuario. Los esquemas posibles son siguentes4 : Escritorio personal Una instalacin de tipo escritorio personal, habiendo elegido instalar GNOME o KDE, requiere al o menos 2.1GB de espacio libre. Si selecciona ambos entornos de escritorio, necesitar al menos a 1.8GB de espacio libre en disco. Estaci n de trabajo o Una instalacin de tipo estacin de trabajo, incluye un entorno de escritorio grco y herramientas o o a de desarrollo de software, requiere al menos 2.1 GB de espacio libre. Si escoge los dos entornos de escritorio GNOME y KDE necesitar al menos 2.4 GB de espacio libre. a Servidor Una instalacin de tipo servidor requiere 850 MB en una instalacin m o o nima sin X-Window (el entorno grco), al menos 1.5 GB de espacio libre en disco si todos los componentes que no a sean X-Window (grupos de paquetes) estn instalados y, al menos, 5.0 GB para instalar todos los a paquetes incluidos los entornos GNOME y KDE.
3 El fabricante no ha provisto al mundo linux de la especicacion de su hardware, por lo que hay que usar s lo el driver provisto o por el fabricante. 4 Los tama os son referenciales y pueden variar en una presicion de MB n

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado

Personalizada Una instalacin de tipo personalizada requiere 475MB para una instalacin m o o nima y al menos 5.0GB de espacio libre si se selecciona cada uno de los paquetes (TODO).

2.3. Arrancar el Instalador


Existen varios mtodos que pueden usarse para instalar Red Hat Linux. e Para poder instalar desde un CD-ROM debe disponer de un CD-ROM Fedora core Linux (cd 1) y poseer una unidad de CD-ROM. La mayor de las computadoras nuevas permitirn arrancar desde el a a CD-ROM. Si su sistema soporta el arrancar desde el CD-ROM, es fcil empezar una instalacin local del a o CD-ROM. Al momento de iniciar el sistema, el CD-ROM comenzar a leer la informacin necesaria para la a o instalacin del Sistema Operativo y aparecer una pantalla una serie de opciones que permitirn al o a a usuario elegir el mtodo de instalacin ms apropiado. Desde all se podrn acceder a niveles de ayuda e o a , a que puedan formar la idea de cmo comenzar la instalacin del sistema. o o

2.4. Denici n del esquema de particiones o


El particionamiento5 le permite dividir el disco duro en secciones aisladas, donde cada seccin se o comporta como su propio disco duro. El particionamiento es especialmente util si ejecuta ms de un a sistema operativo. Se puede elegir entre realizar un particionamiento automtico o un particionamiento manual con a Disk Druid. Tambien existe otro particionador llamado fdisk(8), el cual puede ser usado tanto en la instalacion como en un sitema funcionando. Linux utiliza un esquema de nombres que es mucho ms exible y contiene mucha ms informacin a a o que el que usan otros sistemas operativos. Este esquema de nombres est basado en los archivos y tiene a la forma: /dev/xxyN Mtodo para entender el esquema del nombre de la particin: e o /dev/ Esta cadena es el nombre de un directorio en la que estn todos los archivos de los dispositivos. Puesto a que las particiones residen en el disco y los discos duros son dispositivos, los archivos que representan todas las posibles particiones estn contenidos en /dev/. a xx Las dos primeras letras del nombre de la particin se reeren al tipo de perifrico en el que se o e encuentra la misma particin. En general, encontrar hd (para discos IDE) o sd (para discos SCSI). o a y Esta letra indica en qu dispositivo se encuentra la particin. Por ejemplo, /dev/hda (el primer e o disco duro IDE) o /dev/sdb (el segundo disco SCSI). N El n mero que aparece al nal indica la particin. Las cuatro primeras (primarias o ampliadas) se u o
5 Antes de empezar con este procedimiento se recomienda respaldar la informacion que se encuentra en el disco que ser partia cionado.

Escuela de Verano, Diciembre - 2004

Departamento de Informtica U.T.F.S.M. a enumeran a partir de 1 hasta 4. Las particiones lgicas comienzan en 5. Por ejemplo, /dev/hda3 es o la tercera particin primaria o extendida en el primer disco duro IDE, y /dev/sdb6 es la segunda o particin lgica en el segundo disco SCSI. o o

Cada una de las particiones creadas tiene atributos f sicos y lgicos, de los cuales los ms relevantes o a y de inters para el usuario son; tama o, tipo de particin, formato, punto de montaje, estos sern e n o a discutidos ms adelante. a

2.4.1.

Particionamiento Automatico

El particionamiento automtico le permite tener control de los datos que se han eliminado en su a sistema. Tiene las siguientes opciones: Eliminar todas las particiones Linux del sistema seleccione esta opcin para eliminar tan slo las paro o ticiones Linux (particiones creadas en una instalacin Linux previa). No borrar el resto de partio a ciones que tenga en el disco(s) duro(s) (tal como VFAT o particiones FAT32). Eliminar todas las particiones del sistema 6 : seleccione esta opcin para eliminar todas las particioo nes de su disco duro (esto incluye las particiones creadas por otros sistemas operativos tales como Windows 95/98/NT/2000). Mantener todas las particiones y usar el espacio libre existente : Seleccione esta opcin para cono servar los datos y las particiones actuales, presumiendo que tiene suciente espacio disponible en los discos duros. El particionamiento automtico crear 3 particiones: a a /boot : Particion donde se encuentra ubicado el kernel, necesario para el booteo del sistema. Se recomienda que su tama o no sea inferior a los 100MB. n swap : Particion de intercambio. Su tama o debe ser de al menos 32MB o el doble del tama o de la n n ram, el que sea mayor. / : En esta particin se encuentra la raiz del sistema, y su tama o debe ser apropiado para albergar la o n instalacin que se haya escojido. o Una vez terminada la operacin, el instalador preguntara si se desean editar las particiones o contio nuar. En el primer caso se abrir Disk Druid, cuyo funcionamiento es explicado en la siguiente subseccin. a o

2.4.2.

Particionamiento Manual con Disk Druid

Con Disk Druid se pueden crear las particiones de forma manual y de los tama os que se desee. Disk n Druid ofrece una representacin grca de su/s disco/s duro/s. La informacin que despliega Disk Druid o a o es la siguente: Dispositivo : Este campo muestra el nombre del dispositivo de la particin. o
6 Esta

opcin destruir toda informacin previa en su disco(s) duro(s) o a o

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado

10

Punto de montaje : Un punto de montaje es el lugar en la jerarqu de directorios a partir del cual a un volumen existe; el volumen se montaen este lugar. Este campo indica dnde se montar la o a particin. Si la particin existe pero no se ha denido un punto de montaje, necesitar denir uno. o o a Tipo : Este campo muestra el tipo de particin (por ejemplo, ext2, ext3, o vfat). o Formato : Este campo muestra si la particin que se est creando se formatear. o a a Tama o : Este campo muestra el tama o de la particin (en MB). n n o Comienzo : Este campo muestra el cilindro en su disco duro donde la particin comienza. o Final : Este campo muestra el cilindro en su disco duro donde la particin termina. o Disk Druid permite modicar los valores de las particiones existentes, tambien permite crear nuevas o eliminarlas. El esquema de particionamiento recomendado por Fedora core es el mismo que se crea la utilizar el particionador automtico. Sin embargo existen situaciones en las que se querra tener uns esquema a distinto. Cualquier esquema es valido mientras las particiones puedan albergar el sistema instalado. Un ejemplo de esquema seria el siguente: Tamao n 100M 30000M 6000M 800M 4000M 512M 400M 1000M 60000M Montaje /boot /mnt/xp /usr /var /home swap /tmp / /opt/mp3 Dispositivo /dev/hde1 /dev/hde3 /dev/hde5 /dev/hde6 /dev/hde7 /dev/hde8 /dev/hde9 /dev/hde10 /dev/hde11

Hacer las separaciones mostradas en el ejemplo anterior ayuda a prevenir prdidas de datos en caso e de falla de disco, ya que normalmente slo se da a una porcin de l, por lo que se ver afectadas slo o n o e an o algunas particiones y no todo el disco. Tambin ayudan a mantener control y orden sobre el sistema. e

2.5. Precongurando el Sistema


El instaladador Fedora core nos permite hacer conguraciones en el momento de la instalacin, para o asi poder tener un sistema funcional al momento del primer booteo.

2.5.1.

Gestor de Arranque

GRUB (GRand Unied Bootloader), que se instala por defecto, es un gestor de arranque muy potente ya que puede cargar una gran variedad de sistemas operativos gratu tos as como sistemas operativos de propietarios con el sistema de cargado en cadena (el mecanismo para cargar sistemas operativos no soportados mediante la carga de otro gestor de arranque, tal como DOS o Windows).

Escuela de Verano, Diciembre - 2004

11 2.5.1.1. Conguraci n Bsica o a

Departamento de Informtica U.T.F.S.M. a

Todas las particiones que se pueden arrancar aparecen en una lista, incluso las particiones que usan otros sistemas operativos. La particin que contiene el sistema de cheros root del sistema tiene la Etio queta de Fedora core para GRUB. Las otras particiones puede que tambin tengan etiquetas de arranque. e Si desea a adir o cambiar la etiqueta de arranque de las otras particiones que el programa de instalacin n o ya ha detectado, seleccinela y modique. o Seleccione Por defecto junto con la particin root preferida para escoger el sistema operativo que se o desee arrancar por defecto. No podr avanzar en la instalacin mientras no escoja la imagen de arranque a o por defecto. Las contrase as del gestor de arranque ofrecen un mecanismo de seguridad en un ambiente en el n que se tenga acceso f sico al servidor. Si est instalando un gestor de arranque, debe crear una contrase a para proteger el sistema. Sin a n dicha contrase a, los usuarios con acceso a su sistema pueden pasar opciones al kernel que pueden n poner en compromiso la seguridad de su sistema. Con la contrase a, se tiene que introducir para poder n seleccionar cualquier opcin de arranque que no sea estndar. o a Si selecciona colocar una contrase a para aumentar la seguridad del sistema, aseg rese de seleccion u nar la casilla Usar la contrase a del gestor de arranque. n Una vez seleccionada, introduzca la contrase a y conf n rmela.

2.5.1.2.

Conguraci n Avanzada o

Ahora que ha decidido c al gestor de arranque instalar, tiene que decidir dnde quiere instalarlo. u o Puede instalar el gestor de arranque en uno de los dos sitios siguiente: El master boot record (MBR) Este es el sitio recomendado para instalar un gestor de arranque, a no ser que el MBR est ocupado e por el gestor de arranque de otro sistema operativo, como System Commander. El MBR es un area especial del disco duro que la BIOS de su computadora carga automticamente y el punto ms a a prximo en el que el gestor de arranque puede tomar el control de la secuencia de arranque. Si lo o instala en el MBR, al arrancar su mquina, GRUB presentar un indicador de comandos de arranque. a a Podr entonces iniciar Fedora core o cualquier otro sistema operativo que le haya indicado al gestor a de arranque. El primer sector de la particin ra o z Se recomienda si est utilizando otro gestor de arranque en su sistema. En este caso, el otro gestor a de arranque tendr el control en un primer momento. Podr congurar ese gestor de arranque a a para que inicie GRUB, que iniciar a su vez Fedora core. a Si el sistema slo utilizar Fedora core, deber seleccionar el MBR. Para sistemas con Windows 95/98, o a a tambin deber instalar el gestor de arranque en el MBR para que se puedan iniciar los dos sistemas e a operativos. La opcin Forzar el uso de LBA32 (no requerida normalmente) le permite exceder el l o mite de cilindro 1024 para la particin /boot. Si posee un sistema que es compatible con la extensin LBA32 o o para arrancar los sistemas operativos por encima del l mite de cilindro 1024 y desea ubicar la particin o /boot ms all de este l a a mite, deber seleccionar esta opcin. a o

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado 2.5.2. Conguraci n de red o

12

Si tiene un dispositivo de red y no ha congurado todav su red (como por ejemplo proporcionar a un disco de arranque de red que haya creado y entrar en la informacin de red como se indica), tiene la o oportunidad de hacerlo. El programa de instalacin automticamente detecta los dispositivos de red que tiene y los muestra o a en la lista Dispositivos de red. Una vez que haya seleccionado el dispositivo de red, lo podra modicar. En la pantalla desplegable Modicar interfaz puede elegir la direccin IP o la mscara de red del dispositivo con el DHCP (o o a manualmente si no ha seleccionado DHCP ) y puede tambin activar el dispositivo en el intervalo de e arranque. Si selecciona Activar en arranque, el dispositivo de red arrancar cuando arranque el sistema. a Si no tiene el acceso al cliente DHCP o no est seguro contacte con el administrador de red. a

2.5.3.

Conguraci n del cortafuegos o

Fedora core Linux tambin le ofrece proteccin v cortafuegos (rewall) para una seguridad mejoe o a rada del sistema. Un cortafuegos se dispone entre su ordenador y la red y determina qu recursos de e su equipo estn accesibles para los usuarios remotos de la red. Un cortafuegos bien congurado puede a aumentar signicativamene la seguridad de su sistema. Seleccione el nivel de seguridad apropiado del sistema. Alto Si elige Alto, su sistema no aceptar ms que las conexiones (adems de las denidas por defecto) a a a que hayan sido expl citamente denidas por usted. Medio Si elige Medio, su cortafuegos no permitir a las mquinas remotas acceder a ciertos recursos de a a su sistema. Ning n cortafuegos La conguracin ning n cortafuegosproporciona un acceso completo al sistema y no realiza u o u ning n tipo de vericacin de seguridad. La comprobacin de seguridad es la desactivacin del u o o o acceso a determinados servicios. Tan slo se recomienda esta opcin si est usando una red certio o a cada y segura (no Internet), o si planea realizar una conguracin detallada del cortafuegos ms o a adelante.

2.5.4.

Selecci n del soporte del idioma o

Puede instalar y soportar m ltiples idiomas para usar en su sistema. u Debe instalar un idioma para usarlo como idioma por defecto. El idioma por defecto ser usado por el a sistema una vez que la instalacin se haya completado. Si escoge instalar otros idiomas, puede cambiar o su idioma por defecto tras la instalacin. o Si tan slo va a utilizar un idioma en su sistema, podr ganar bastante espacio en disco. El idioma o a por defecto es el idioma que haya seleccionado durante el proceso de instalacin. o

2.5.5.

Conguraci n del huso horario o

Puede elegir su huso horario o bien seleccionando la localizacin f o sica de su ordenador o bien especicando su huso horario en funcin del Universal Time Coordinated (UTC). o

Escuela de Verano, Diciembre - 2004

13 2.5.6. Conguraci n de la contrase a de root o n

Departamento de Informtica U.T.F.S.M. a

La conguracin de la cuenta y la contrase a root es uno de los pasos ms importantes durante la o n a instalacin. La cuenta root es usada para instalar paquetes, actualizar RPMs y realizar la mayor de las o a tareas de mantenimiento del sistema. Conectndose como root le d control completo sobre el sistema. a a El programa de instalacin le dar indicaciones para que congure una contrase a de root para su o a n sistema. Debe introducir una contrase a de root. El programa de instalacin no le permitir que pase a n o a la siguiente seccin sin introducir una contrase a de root. o n La contrase a de root debe de tener al menos seis caracteres y no aparecer en la pantalla cuando la n a teclee. Deber introducirla dos veces; si las dos contrase as no coinciden, el programa de instalacin le a n o pedir que las vuelva a introducir. a Deber escribir una contrase a de root fcil de recordar, pero que no sea obvia o fcil de adivinar. a n a a Su nombre, su n mero de telfono, qwerty, contrasea, root, 123456 y anteayer ser ejemplos de u e n an malas contrase as. Las contrase as mejores son aqullas que mezclan n meros con letras may sculas n n e u u y min sculas que no formen palabras contenidas en diccionarios, como por ejemplo : Aard387vark o u 420BMttNT. Recuerde que la contrase a es sensible a las may sculas y min sculas. Se recomienda que n u u nunca escriba su contrase a pero, si la escribe en un papel, gurdelo en un lugar seguro. n a

2.5.7.

Conguraci n de la autenticaci n o o

Puede saltarse esta seccin si no va a a congurar contrase as de red. Si no sabe por qu deber o n e a hacer esto, contacte con su administrador de sistemas. A no ser que est utilizando autenticacin NIS o LDAP, ver que slo las contrase as tipo MD5 y shae o a o n dow estn seleccionadas. Le recomendamos que utilice ambos tipos de contrase as para que su mquina a n a sea lo ms segura posible. a Habilitar contrase as MD5: le permite usar una contrase a larga (de hasta 256 caracteres), en vez n n de las ocho letras o menos estndar. a Habilitar contrase as shadow: proporciona un mtodo seguro para conservar contrase as. Las conn e n o trase as se almacenan en /etc/shadow, al que tan slo se puede acceder como root. n Existen ms opciones de autenticacin, pero su discucin va ms all de los alcances de este docua o o a a mento.

2.6. Selecci n de paquetes o


Anteriormente se discuti que existian distintos tipos de instalaciones. El instalador dar la opcin o a o de modicar el conjunto de paquetes que auto seleccion basandose en si quer una instalacin de o a o escritorio o un servidor. Se podrn seleccionar grupos de paquetes y paquetes individuales para hace a amoldar la instalacin a lo que uno necesita. o

2.6.1.

Selecci n individual de paquetes o

Tras haber seleccionado los paquetes que quiera instalar, podr seleccionar o anular la seleccin de a o los paquetes individualmente. Puede escoger visualizar los paquetes individuales en Vista de arbol o Vista plana.

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado La Vista de arbol le permite ver los paquetes agrupados seg n el tipo de aplicacin. u o

14

La Vista plana le permite ver todos los paquetes listados en orden alfabtico en la parte derecha de e la pantalla. 2.6.2. Dependencias no satisfechas

Una vez seleccionado y prosiguiendo con la instalacin, puede que el instalador abra un dilogo en el o a que pregunta que hacer con los paquetes cuyas dependencias no estan satisfechas. En este caso se podra instalar de todas maneras7 , obviar la instalacion de los paquetes conictivos o satisfacer sus dependecias instalando paquetes adicionales..

2.7. Finalizando la instalaci n o


El programa de instalacin a continuacin le proporcionar una lista de tarjetas de v o o a deo entre las que escoger. Si decide instalar los paquetes del Sistema X Window, tendr la oportunidad de congurar un servidor a X para su sistema. 2.7.1. Tarjeta de Video

Si su tarjeta de v deo no aparece en la lista, X puede que no la soporte. No obstante, si posee conocimiento tcnico sobre su tarjeta, puede escoger Tarjeta no listada e intentar congurarla al hacer e corresponder su chipset de tarjeta de v deo con uno de los servidores X disponibles. 2.7.2. Monitores

El programa de instalacin le presentar una lista de monitores de la que seleccionar. Desde esta o a lista, puede usar el monitor que se detecte de forma automtica o escoger otro monitor. a Si est instalando el sistema Fedora core en un porttil con una pantalla LCD, deber seleccionar el a a a modelo Genrico ms adecuado. e a Si su monitor no aparece en la lista, seleccione el modelo Genrico ms apropiado dentro de los e a modelos disponibles. Si selecciona un monitor Genrico, el programa de instalacin le sugerir valores e o a de sincronizacin horizontales y verticales. Estos valores suelen encontrarse en la documentacin que o o acompa a al monitor o los puede obtener a travs del vendedor o fabricante del monitor; compruebe la n e documentacin para asegurarse de que estos valores se han establecido correctamente. o 2.7.3. Conguracion de X-Window

Elija la densidad del color y la resolucin para su conguracin de X. o o Si est realizando una instalacin personalizada o de servidor, tambin puede escoger si desea arrana o e car su sistema en modo grco o texto una vez que la instalacin se termine. A menos que tenga necesia o dades especiales, se recomienda el arranque en ambiente grco (similar al entorno Windows). Si elige a arrancar en un ambiente de texto, se le presentar una l a nea de comandos (similar al entorno DOS).
7 Podr a

causar que algunos programas no funcionen correctamente

Escuela de Verano, Diciembre - 2004

15

Departamento de Informtica U.T.F.S.M. a

Las instalaciones de escritorio personal y de estacin de trabajo automticamente arrancarn en o a a ambiente grco. a

2.8. Tareas posteriores a la instalaci n o


Ya teniendo un sistema con una instalacin fresca, ser necesario hacer algunos ultimos ajustes para o a que la computadora pueda entrar en produccin. o Es de vital importancia el actualizar el sistema una vez instalado. Normalmente las actualizaciones existentes corrijen fallas de seguridad en las distintas aplicaciones del sistema. Ahora se pueden recongurar todos los dispositivos si es necesario. Para ello se pueden utilizar las herramientas system-config-ALGO. Estas herramientas permiten recongurar las opciones escogidas durante la instalacin. Tambin se pueden hacer las modicaciones de forma manual, como se ha visto o e en secciones anteriores.

3.

Conguraci n de dispositivos o

Uno de los temas por lo que ms gente le tiene miedo a Linux, es el hecho de tener que congurar a sus dispositivos de manera no tan automtica. Por ello, las ultimas versiones de las distribuciones Linux a traen incorporadas una serie de herramientas, que permiten al usuario instalar y congurar de manera mucho ms fcil y amigable sus dispositivos. a a Esto tiene tambin su salvedad, ya que necesitamos que el dispositivo sea soportado por cualquiera e de estas herramientas de conguracin, por lo tanto, necesitaremos estar bastante seguros de qu es lo o e que necesitamos instalar (no instalaremos cualquier cosa porque s y tambin tenemos que saber las ), e caracter sticas del dispositivo que queremos instalar; como su modelo, chipset y algunas caracter sticas que detallaremos ms adelante. a La gran ventaja que presenta Fedora core es que pueden congurarse los distintos dispositivos, con las herramientas que provee la distribucin system-cong-ALGO, donde ALGO puede ser mouse, network, o soundcard, display etc. Se debe tener en cuenta tambin, que en algunos casos como el Teclado o mouse, la instalacin de e o alg n dispositivo va a diferir si es para hacerlo funcionar en el entorno grco o en la consola, por lo u a que se deber congurar distintos archivos para tal efecto. a

3.1. Teclado
Algo que ocurre con mucha frecuencia entre los nuevos usuarios de Linux, es que debido a una distraccin durante el procesos de instalacin, encontrarse con un mapa de teclado en ingls. Hay mtodos o o e e muy sencillos que permitirn establecer el mapa de teclado correcto. a Una vez congurado el mapa del teclado, algunos usuarios pueden encontrarse atnitos al intentar, o desde el modo grco, encontrar como desplegar una simple @ en una direccin de correo electrnico, a o o as como otros carcteres. a Este procedimiento puede hacerse de dos mtodos: desde una terminal o consola y system-conge keyboard. El primero es el mtodo ms efectivo, y cierta forma el ms complicado, se logra editando e a a el archivo /etc/X11/xorg.conf, lo cual determinar el mapa del teclado para el entorno grco, y se a a obtiene modicando el valor de la variable XkbLayout en la seccin InputDevice o

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado XkbLayout "es"

16

Por otro lado, en el entorno consola, se debe editar /etc/sysconfig/i18n y cambiar las incidencias del idioma incorrecto por el que corresponda a su propio idioma y regin: o LANG="es_CL.ISO8859-1" SUPPORTED="es_CL.ISO8859-1:en_US:en:es_ES.UTF-8:es_ES:es" SYSFONT="latarcyrheb-sun16"

Finalmente se debe editar /etc/sysconfig/keyboard y cambiar las incidencias del mapa de teclado incorrecto, por el que corresponda a su idioma y regin: o KEYBOARDTYPE="pc" KEYTABLE="es" Otra forma de manejar esto, es utilizando la herramienta system-cong-keyboard, que har lo propio a para el modo terminal o consola, y espec cando el mapa de teclado deseado.

3.2. Mouse
De manera similar al teclado (y como casi todo en Linux), el mouse puede ser congurado a travs e de la edicin de alg n archivo o con la herramienta (system-cong-mouse) o u Al Editar el archivo /etc/syscong/mouse debemos asegurar de que contenga el tipo de mouse correcto: FULLNAME="Generic - 3 Button Mouse (PS/2)" MOUSETYPE="ps/2" XEMU3="no" XMOUSETYPE="PS/2 DEVICE=/dev/input/mice"

Nota: Si el mouse que est ocupando tiene la ruedita de scroll, utilice IMPS/2 en vez de PS/2. a A continuacin, se puede editar el archivo /etc/X11/xorg.conf y en la seccin InputDevice se puede o o tener lo siguiente: Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Device" "/dev/input/mice" Option "Protocol" "PS/2" Option "Emulate3Buttons" "off" Option "ZAxisMapping" "4 5" EndSection Donde nuevamente se puede reemplazar PS/2 por IMPS/2 para obtener el funcionamiento del scroll.

Escuela de Verano, Diciembre - 2004

17

Departamento de Informtica U.T.F.S.M. a

3.3. Video
El soporte para las tarjetas de Video lo provee el conjunto de paquetes X.org, el cual viene con la distribucin. o Primero que todo, debemos asegurarnos que disponemos del hardware apropiado para ejecutar el sistema X Window, la cantidad de memoria adecuada y el espacio de disco necesario. Son necesarios unos 150 a 200 MB de espacio en disco para instalar el sistema XFree86 junto con las aplicaciones suministradas. Necesita al menos de 16MB de memoria virtual para ejecutar X.org. La memoria virtual es la combinacin de la RAM f o sica en su sistema y de la cantidad de espacio sica para ejecutar bajo Linux, por swap que haya reservado a Linux. Debe tener al menos 4 MB de RAM f lo que requerir un archivo swap de 12MB. Cuanta ms RAM f a a sica tenga, mejor rendimiento obtendr su a sistema X.org. 3.3.1. Instalando X.org

X.org est dividido en un gran n mero de paquetes RPM. Algunos son obligatorios, pero otros opa u cionales. Si instal X.org en el proceso de instalacin del sistema, probablemente ya ejecut automticao o o a mente el proceso. Si no lo hizo, encontonces debemos hacerlo ahora. Los paquetes de X.org recomendados son: RPM xorg-x11 xorg-tools xorg-x11-xfs xorg-x11-font-utils fonts-xorg-base xorg-x11-libs xorg-x11-doc Descripci n o Sistema xorg base. Muchas aplicaciones X utiles Servidor de fuentes standard X Paquetes para instalar fuentes Fuentes standard X Bibliotecas compartidas para la mayor de las aplicaciones X a Documentacion X.org

Una vez que tenga los paquetes RPM, lo normal es que pueda instalarlos fcilmente usando rpm a > rpm -ivh *xorg*.rpm 3.3.2. Congurando X.org

Derivado de su predecesor XFree86, histricamente X.org ha sido una de las partes ms complejas o a bajo Linux, en lo que respecta a su conguracin. Este ya no es el caso para el hardware ms habitual. o a Sin embargo, a n hay dos casos en los que la instalacin puede ser dicultosa. u o En primer lugar, el Hardware de ms reciente aparicin puede estar soportado por X.org, o puede no a o estarlo en absoluto. Si X.org lo soporta, puede que tenga que usar versiones beta de X.org, o incluso ver siones parchadas del mismo. Estas no estarn soportadas por las nuevas herramientas de conguracin. a o En segundo lugar, algunos proveedores no publican las especicaciones para sus tarjetas. Para que X.org soporte estas tarjetas, los desarrolladores deben efectuar una ingenier inversa, lo que lleva mucho a tiempo y esfuerzos. A menos que la tarjeta sea de uso extendid simo, puede que no haya soporte de xorg durante mucho tiempo. Hacer que una tarjeta sin soporte funcione puede resultarle dif cil, aunque no imposible, si no es capaz de escribir usted mismo los controladores. Estos son slo los peores casos. Para Hardware ms extendido, le ser suciente usar system-congo a a

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado xfree86 y deber funcionar todo sin mayor problema. a

18

X.org tiene un archivo de conguracin en /etc/X11/xorg.conf. Este archivo est dispuesto en seccioo a nes con el siguiente formato: Section "Nombre de la seccion" Comando1 "Opcin" o Comando2 "Opcin" o Subsection "Nombre de la subseccin" o Comando3 "Opcin" o EndSubSection EndSection Las secciones que podemos encontrar son: Modules Files ServerFlags InputDevice Monitor Device Screen ServerLayout y cada una de estas secciones contendr opciones que podrn ser seteadas para describir qu es lo a a e que se quiere. La ms com n de congurar es la que tiene que ver con el monitor y con la tarjeta de video. a u o a En la seccin Screen se encuentra informacin referente al modo de pantalla que se ejecutar al o momento de iniciar un servicio de X. All se puede ver dentro de las subsecciones Display, los parmetros para congurar la resolucin (Modes) y profundidad de colores (Depth) que tendr el monia o a tor. Si tenemos ms de una subseccin Display, podremos cambiarla una vez iniciado nuestro servia o dor X con las teclas CTRL ALT y el signo + o - seg n corresponda. Por ejemplo, se puede tener algo como u esto: Section "Screen" Identifier "Screen0" Device "Videocard0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 16 Modes "800x600" EndSubSection

Escuela de Verano, Diciembre - 2004

19 SubSection "Display" Viewport 0 0 Depth 24 Modes "800x600" EndSubSection EndSection

Departamento de Informtica U.T.F.S.M. a

Por otro lado, la seccin Monitor corresponde a la denicin del monitor que se est ocupando: o o a Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Olidata MR 1502" HorizSync 30.0 - 50.0 VertRefresh 50.0 - 120.0 Option "dpms" EndSection

Donde generalmente la parte ms dicil de encontrar es la referente a las tasas de refresco horizontal a y vertical (HorizSync y VertRefresh), las cuales pueden ser encontradas en Internet a travs de Google8 , e o en la pgina web del proveedor del monitor. a Por ultimo, queda por congurar la seccin que hace referencia a la tarjeta de video que se est utio a lizando. Para ello, se debe hacer referencia a la seccin Device, la cual tiene una nomenclatura o similar a la siguiente: Section "Device" Identifier Driver VendorName BoardName EndSection

"Videocard0" "savage" "Videocard vendor" "S3 ProSavage KM133"

El driver (ubicado en /usr/X11R6/lib/modules/drivers/), es el encargado de traducir lo que dice la tarjeta de video al sistema y representarlo a travs del monitor. e

3.3.3.

nVidia

Para aquellas personas que posean tarjetas de video con aceleracin grca y ocupen el chipset o a nVidia, se sugiere instalar el driver que provee esta misma compa en vez del que provee Fedora core. na, Para hacer esto, uno puede ingresar a la pgina de nVidia en http://www.nvidia.com/linux y bajar el a ultimo driver que provean ellos (por ejemplo la versin 1.0-6629) y ejecutar el archivo bajado de la o a siguiente manera (se asume que el usuario que ejecuta esto es el root y las fuentes del kernel estn instaladas en la mquina): a
8 http://www.google.com/linux

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado sh NVIDIA-Linux-x86-1.0-6629-pkg1.run

20

Luego, se procede a comentar las secciones del archivo /etc/X11/xorg.conf que hagan relacin al o dri y al glcore. A continuacin se carga el modulo de nvidia o modprobe nvidia

y se copia el driver de nvidia a un nuevo directorio, para que pueda ser reconocido por udev, con due o y grupo perteneciente a root: n cp -a /dev/nvidia* /etc/udev/devices chown root.root /etc/udev/devices/nvidia*

Luego de reiniciar el sistema X, se podr ver que al momento de levantar la aplicacin, muestra una a o imagen (o splash) de nVidia Adicionalmente, si se quiere sacar un mayor provecho a las extensiones que provee la ultima versin o de X.org, se puede agregar lo siguiente a /etc/X11/xorg.conf Section "Extensions" Option "Composite" "Enable" EndSection

. . . aunque cabe destacar que esta opcin tambin funcionar sin el driver nVidia, pero much o e a simo ms a lento.

3.4. Sonido
La conguracin de este dispositivo depende mucho de la tarjeta de sonido que est instalada. Para o e ello, se necesitar cargar el mdulo apropiado, dependiendo del chip de la tarjeta. Supongamos que a o tenemos una tarjeta de sonido PCI, y queremos obtener informacin de sta. Con el comando lspci -v nos o e arrojar los nombres de todos los dispositivos PCI que estn conectados en nuestro computador. a e Luego, una vez conocido el nombre del dispositivo, podemos agregar el mdulo correspondiente a o /etc/modules.conf La manera simple de congurar la tarjeta de sonido, basta con escribir el comando system-congsoundcard en el intrprete del shell para lanzar la Herramienta de conguracin de la tarjeta de sonido. e o Si no es root, le pedir su contrase a de superusuario para continuar. a n

3.5. Adaptadores de red


Congurar los parmetros de red en una estacin de trabajo Linux o un servidor no es realmente a o complicado. Solamente requiere de algunos conocimientos bsicos sobre redes y cualquier editor de a texto plano.

Escuela de Verano, Diciembre - 2004

21

Departamento de Informtica U.T.F.S.M. a

La marca de la tarjeta, es lo que menos interesa, lo que es importante es que se determine con exactitud que chipset utiliza sta. Esto puede determinarse examinando f e sicamente la tarjeta de red o bien examinando a detalle la salida en pantalla que se obtiene al ejecutar el siguiente comando: lspci | grep Ethernet

Lo cual devuelve una salida similar a las siguiente (en el caso de una tarjeta 3Com 905 C) Ethernet controller: 3Com Corporation 3c905C-TX [Fast Etherlink] (rev 120). Debe entonces editarse /etc/modprobe.conf y vericar que el mdulo de la tarjeta de red, est espeo e cicado correctamente. Ejemplo: alias eth0 3c59x Si se realiz alguna edicin de este chero, deber de ejecutarse el siguiente comando, a n de o o a actualizar dependencias: /sbin/depmod -a Como Fedora core 3 utiliza kernel 2.6.x, la lista de mdulos existentes en el equipo que puede utilizar o para distintos chipsets, de diferentes tarjetas de red se puede obtener listando el contenido del directorio /lib/modules/[versin de su kernel]/kernel/drivers/net/. Ejemplo: o ls /lib/modules/2.6.9-1.681_FC3/kernel/drivers/net/ Debe editarse con un procesador de textos /etc/syscong/network y en este establece la puerta de enlace (Gateway) y su nombre de mquina. Ejemplo: a NETWORKING=yes HOSTNAME=nombre_maquina.nombre_dominio.cl GATEWAY=192.168.1.254 Luego editar /etc/syscong/network-scripts/ifcfg-eth0 y vericar que sus parmetros de red sean los a correctos. Ejemplo: DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.1.50 NETMASK=255.255.255.0 NETWORK=192.168.1.0 BROADCAST=192.168.1.255 ONBOOT=yes Los parmetros anteriores son proporcionados por el administrador de la red local en donde se localia ce la mquina que est siendo congurada. El adminstrados de la red deber proporcionar una direccin a a a o IP (IPADDR), una mscara de la subred (NETMASK), direccin IP de la red (NETWORK) y el Broadcast a o (BROADCAST). Si por otro lado, el administrador de la red, le dice que la conguracin se realizar de o a manera automtica mediante DHCP, entonces se debe dejar el archivo de la siguiente manera: a

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes

22

Debe editarse con un procesador de textos /etc/hosts, y debe vericarse que este diferenciado el loopback del nombre de la mquina. Ejemplo: a 192.168.1.50 su_maquina.su_dominio.com su_maquina 127.0.0.1 localhost.localdomain localhost Y nalmente, debe editar /etc/resolv.conf y establecerse los servidores de resolucin de nombres de o dominio (DNS). Ejemplo: nameserver 192.168.1.254 nameserver 192.168.1.1 Despus de hacer todo lo anterior, solo deber de ser reiniciado el servicio de red. Debe ejecutarse el e a siguiente comando: service network restart Basta solamente comprobar si hay realmente conectividad. Puede ejecutarse el comando ping hacia cualquier direccin de la red local para tal n. o ping 192.168.1.254

Obviamente, toda esta conguracin tambin se puede hacer mediante la herramienta system-congo e network

3.6. Impresoras
Desde la versin Red Hat 9, CUPS es el sistema de impresin predeterminado. Sin embargo, todav se o o a proporciona el sistema de impresin por defecto anterior, LPRng. Si el sistema fue actualizado desde una o versin anterior de Red Hat o Fedora core, que usaba LPRng, el proceso de actualizacin no reemplaza o o LPRng con CUPS; el sistema continuar usando LPRng. a Si un sistema fue actualizado desde una versin anterior de Red Hat o Fedora core que usaba CUPS, o el proceso de actualizacin mantiene las colas de impresin conguradas y el sistema continuar usando o o a CUPS. La forma ms simple de congurar la impresora, es utilizando la herramienta system-cong-printer, a y se puede forzar a la Herramienta de conguracin de impresoras a ejecutarse como una aplicacin o o basada en texto usando el comando system-cong-printer-tui desde el intrprete de comandos. e

3.7. Tunning del sistema


El comando hdparm de Linux nos permite optimizar al mxmimo nuestras unidades IDE/UDMA, a aunque con cierto riesgo. Las distribuciones de Linux suelen suponer que nuestro equipo es muy antiguo

Escuela de Verano, Diciembre - 2004

23

Departamento de Informtica U.T.F.S.M. a

y no tiene stas caracter e sticas tcnicas de las que tanto presumen los fabricantes de discos duros. Y lo e hacen por seguridad, para garantizar que el acceso a los datos funcione siempre bien, sin errores, ni corrupcin de datos. Si forzamos el uso de los modos PIO, o el UltraDMA, empezamos a correr ciertos o riesgos, aunque por otro lado, no reconoceremos nuestro propio sistema al lanzar las X, dado que se mostrarn en pantalla de inmediato. a Lo primero que haremos es averiguar los discos duros y particiones que tiene Linux en nuestro equipo. Veamos un ejemplo: # dmesg | grep hd hda: SAMSUNG VG36483A (6.48GB), ATA DISK drive hdb: ST340823A, ATA DISK drive hda: 12685680 sectors (6495 MB) w/494KiB Cache, CHS=789/255/63 hdb: 78165360 sectors (40021 MB) w/512KiB Cache, CHS=4865/255/63 hda: hda1 hda2 hdb: hdb1 Aqu vemos 2 discos: hda y hdb. Vamos a optimizar el primero, hda. Para ello, sin precipitarnos, ex traemos cierta informacin del disco, que puede ayudarnos a buscar la mejor conguracin para hdparm: o o # /sbin/hdparm -gi /dev/hda /dev/hda: geometry = 789/255/63, sectors = 12685680, start = 0 Model=SAMSUNG VG36483A (6.48GB), FwRev=FL100, SerialNo=TS840703352e3f Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs } RawCHS=13424/15/63, TrkSize=32256, SectSize=512, ECCbytes=21 BuffType=3(DualPortCache), BuffSize=494kB, MaxMultSect=16, MultSect=16 DblWordIO=no, OldPIO=2, DMA=yes, OldDMA=2 CurCHS=13424/15/63, CurSects=-1854930751, LBA=yes, LBAsects=12685680 tDMA={min:120,rec:120}, DMA modes: sword0 sword1 sword2 *mword0 mword1 mword2 IORDY=on/off, tPIO={min:120,w/IORDY:120}, PIO modes: mode3 mode4 UDMA modes: mode0 mode1 *mode2 Es conveniente tomar nota de la informacin extraida, para su uso posterior. Antes de optimizar, o vamos a realizar un test de velocidad, para luego poder comparar. # /sbin/hdparm -t -T /dev/hda /dev/hda: Timing buffer-cache reads: 128 MB in 2.18 seconds = 58.72 MB/sec Timing buffered disk reads: 64 MB in 11.89 seconds = 5.38 MB/sec La opcin -T realiza un test del sistema de cache (o sea, la memoria, la CPU, y el cache de buffer). o Por contra, la opcin -t mide el acceso al disco sin usar el cache. Estas dos medidas nos pueden dar una o idea del rendimiento de I/O del disco. El estado actual de conguracin de la unidad de disco nos lo muestra el siguiente comando: o # /sbin/hdparm /dev/hda /dev/hda:

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado multcount = 0 (off) I/O support = 0 (default 16-bit) unmaskirq = 0 (off) using_dma = 0 (off) keepsettings = 0 (off) nowerr = 0 (off) readonly = 0 (off) readahead = 8 (on) geometry = 789/255/63, sectors = 12685680, start = 0

24

Al parecer nuestro disco no est usando ninguna de las caracter a sticas potentes que dispone: modo 32 bits, UDMA, modos PIO, etc. Pasamos nuestro sistema Linux a modo monousuario y ejecutamos el siguiente comando: # /sbin/hdparm -X66 -u1 -m16 -c3 -W1 /dev/hda /dev/hda: setting 32-bit I/O support flag to 3 setting multcount to 16 setting unmaskirq to 1 (on) setting xfermode to 66 (UltraDMA mode2) setting drive write-caching to 1 (on) multcount = 16 (on) I/O support = 3 (32-bit w/sync) unmaskirq = 1 (on) Esto se ve mucho mejor, veamos cun rpido accede ahora a los datos el disco duro: a a # /sbin/hdparm -t -T /dev/hda /dev/hda: Timing buffer-cache reads: 128 MB in 2.31 seconds = 55.41 MB/sec Timing buffered disk reads: 64 MB in 7.48 seconds = 8.56 MB/sec Parece que el rendimiento de acceso directo se ha incrementado en ms de un 50 %. Dependiendo a del modelo de disco y conguracin hardware de nuetro equipo, podemos incrementar este valor hasta o en un 1.000 %, por lo que bien puede merecer la pena, en general. La conguracin que establecemos con el comando /sbin/hdparm se pierde al reiniciar Linux, por lo o que conviene denirla en los scripts de arranque, por ejemplo en /etc/rc.d/rc.sysinit: # Se optimiza al maximo el acceso al disco IDE: UDMA, PIO, etc /sbin/hdparm -X66 -u1 -m16 -c3 -W1 /dev/hda # Se fuerza un chequeo completo de disco al arrancar e2fsck /dev/hda1 -f -p -y if [ -f /fsckoptions ]; then fsckoptions=cat /fsckoptions else fsckoptions= fi

Escuela de Verano, Diciembre - 2004

25

Departamento de Informtica U.T.F.S.M. a

Quiz, en alg n caso, la distribucin que tenemos instalada se haya tomado la libertad de congurar a u o por nosotros esta opcin. Para averiguarlo, podemos intentar buscar una llamada a hdparm en los scripts o de arranque del siguiente modo: # grep hdparm /etc/* -r hdparm tiene muchas opciones, y los discos duros nuevos traen muchas caracter sticas tcincas intee resantes. Encontrar la conguracin ms optimizada no es fcil. Se recomienda por lo tanto, revisar con o a a sumo cuidado el manual de ste. e

4.

Trabajando como root

4.1. Precauciones
El usuario root es el due o y se or de la mquina en la cual uno est trabajando. Tener acceso a n n a a utilizar la cuenta del superusuario o root implica una gran responsabilidad, por lo que se sugieren las siguientes precauciones: No modique nada que no pueda volver a dejar como estaba. En otras palabras, siempre antes de hacer algo asegurarse la posibilidad de poder retroceder fcilmente a la situacin inicial. a o Maneje el password de root slo ud. y nadie ms que ud. Es una muy mala idea compartir cualo a quier tipo de claves. Adems la administracin de un sistema debe llevarla slo una persona para a o o mantener orden y evitar conictos. No entrar a X como root, genera vulnerabilidades tanto por el due o del usuario, como potenciales n ataques de agentes externos. No modicar parmetros si no conoce la funcin de qu es lo que realmente hace (No jugar a a o e conocer cosas como root). No correr servicios como root, ya que stos pueden estar expuestos a vulnerabilidades que pueden e ser explotadas para utilizar la mquina en contra de uno. a

4.2. Trabajando con servicios


El sistema de niveles de ejecucin SysV init provee de un proceso estndar para controlar cules o a a programas init lanza o detiene cuando se inicializa un nivel de ejecucin. SysV init fu escogido porque o e es ms fcil de usar y ms exible que el proceso tradicional init estilo BSD. a a a Los cheros de conguracin para SysV init estn en el directorio /etc/rc.d/. Dentro de este directoo a rio, se encuentran los scripts rc, rc.local, rc.sysinit, y, opcionalmente, los scripts rc.serial as como los siguientes directorios: init.d/ rc0.d/ rc1.d/ rc2.d/ rc3.d/

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado rc4.d/ rc5.d/ rc6.d/

26

El directorio init.d/ contiene los scripts usados por el comando /sbin/init cuando se controlan los servicios. Cada uno de los directorios numerados representa los seis niveles de ejecucin predeterminao dos congurados por defecto bajo Fedora core. 4.2.1. Niveles de ejecuci n o

Los niveles de ejecucin son un estado, o modo, denido por los servicios listados en el directorio o /etc/rc.d/rc<x>.d/, donde x es el n mero de nivel de ejecucin. u o La idea detrs de los niveles de ejecucin de SysV init gira alrededor del hecho que sistemas diferentes a o se pueden usar de formas diferentes. Por ejemplo, el servidor corre de forma ms eciente sin tener que a arrastrar recursos del sistema creados por el sistema X. Otras veces, el administrador del sistema puede necesitar operar el sistema en un nivel ms bajo de ejecucin para realizar tareas de diagnstico, como a o o reparar corrupcin del disco duro, cuando no es posible que ning n otro usuario est usando el sistema. o u e Las caracter sticas de un nivel de ejecucin dado, determinan qu servicios son detenidos o iniciados o e por init. Por ejemplo, el nivel de ejecucin 1 (modo unico usuario) detiene cualquier servicio de red, o mientras que el nivel 3 arranca estos servicios. Asignando servicios espec cos a ser detenidos o arrana a cados en un nivel dado, init puede fcilmente cambiar el modo de la mquina sin que el usuario tenga que manualmente arrancar o detener servicios. Los siguientes niveles de ejecucin estn denidos por defecto para Fedora core: o a 0 - Halt (detener) 1 - Modo mono-usuario 2 - Modo Multiusuario, sin NFS(network le system) 3 - Modo Full multiusuario 4 - Sin uso 5 - Nivel 3 + Ambiente Grco(X11) a 6 - Reboot (reiniciar) Generalmente, los usuarios utilizan Fedora core en el nivel de ejecucin 3 o nivel de ejecucin 5: o o ambos modos multiusuario. Ya que los niveles de ejecucin 2 y 4 no son usados, los usuarios a veces o personalizan estos niveles para cubrir necesidades espec cas. El nivel de ejecucin por defecto para el sistema est listado en /etc/inittab. Para saber el nivel de o a ejecucin por defecto de un sistema, busque por la l o nea similar a la que se muestra abajo cerca de la parte superior de /etc/inittab: id:5:initdefault: El nivel de ejecucin predeterminado en el ejemplo de arriba es cinco, como indica el n mero despus o u e del identicador id. Para cambiarlo, modique /etc/inittab como usuario root.

Escuela de Verano, Diciembre - 2004

27

Departamento de Informtica U.T.F.S.M. a

Tenga mucho cuidado cuando est modicando /etc/inittab. Errores simples de tipeo pueden hacer e que su sistema no arranque nuevamente. Si esto ocurre, use un disquete de arranque, entre a modo de usuario unico o entre en modo de rescate y repare el archivo. 4.2.2. Utilidades de los niveles de ejecuci n o

Una de las mejores formas de congurar los niveles de ejecucin es usando initscript utility. Estas heo rramientas estn dise adas para simplicar las tareas de mantener archivos en la jerarqu del directorio a n a SysV init y descargan a los administradores de sistemas de tener que directamente manipular numerosos enlaces simblicos en los subdirectorios de /etc/rc.d/. o Red HatLinux ofrece tres de tales utilidades: nea de comandos sencilla para /sbin/chkcong: La utilidad /sbin/chkconfig es una herramienta de l mantener la jerarqu del directorio /etc/rc.d/init.d. a /sbin/ntsysv: La utilidad basada en ncurses /sbin/ntsysv provee de una interfaz interactiva basada en texto, que muchos encuentran ms fcil de usar que chkcong. a a Herramienta de conguraci n de servicios: El programa de interfaz grca Herramienta de conguo a racin de servicios system-config-services es una utilidad exible basada en GTK2 para la cono guracin de niveles de ejecucin. o o

4.3. Servicios bsicos a


En esta seccin, se ver qu servicios estn funcionando en nuestro sistema, para decidir cules son o a e a a realmente necesarios y luego eliminar el resto. Para saber qu servicios se debe correr, primeramente, hay que conocer qu puertos ocupa cada sere e vicio. Los servicios ms comunes, utilizan puertos que estn documentados y pertenecen a un estndard a a a (Estos puertos corresponden a el rango de n meros entre el 1 y el 1024), los cuales pueden ser revisados u , en el archivo /etc/services. Por ejemplo, podemos ver de all que el puerto que ocupa el servicio SSH es el 22, el de una pgina web (protocolo http) es el 80 o el de rsync es el 873. a 4.3.1. Intervenci n del sistema o

Una utilidad que puede servir para ver qu puertos estn siendo utilizados dentro de nuestro sistema, e a es netstat. Por ejemplo: > netstat -vatp Active Internet connections (servers Proto Rec Send Local Address tcp 0 0 0.0.0.0:32768 tcp 0 0 127.0.0.1:32769 tcp 0 0 0.0.0.0:3306 tcp 0 0 0.0.0.0:111 tcp 0 0 0.0.0.0:6000 tcp 0 0 0.0.0.0:80 tcp 0 0 0.0.0.0:21

and established) Foreign Address 0.0.0.0:* 0.0.0.0:* 0.0.0.0:* 0.0.0.0:* 0.0.0.0:* 0.0.0.0:* 0.0.0.0:*

State LISTEN LISTEN LISTEN LISTEN LISTEN LISTEN LISTEN

PID/Program name 817/rpc.statd 983/xinetd 1065/mysqld 789/portmap 1532/X 1073/httpd 983/xinetd

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado tcp tcp tcp tcp 0 0 1 0 0 0 0 0 0.0.0.0:22 0.0.0.0:443 200.86.109.126:33693 200.86.109.126:32796 0.0.0.0:* 0.0.0.0:* 209.73.164.146:80 200.1.19.51:22 LISTEN LISTEN CLOSE_WAIT ESTABLISHED 949/sshd 1073/httpd 1887/opera 1639/ssh

28

Lo cual indica que esta mquina est ocupando servicios tales como xinetd, mysqld, httpd y sshd a a entre otros. Tomemos en cuenta la sexta l nea... la que dice tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1073/httpd

La direccin local es la 0.0.0.0, o sea, todas las interfaces estn disponibles. El puerto local es el 80, o a o puerto estndard para el servidor web. a El hecho de que est escuchando (LISTEN) en todos los interfaces es signicativo. En este caso, ser a a bajo (localhost), eth0, y eth1. Las conexiones del servidor web se pueden acceder de cualquiera de estas interfaces. Si un usuario en este sistema tuviera una conexin PPP, entonces el demonio del servidor web o estar escuchando en esa interfaz tambin (la ppp0). La direccin forneatambin es 0.0.0.0, lo que a e o a e signica que puede venir de dondequiera. 4.3.2. Estableciendo los servicios necesarios

Centremos la atencin ahora slo en los servicios que estn escuchando en este momento dentro de o o a nuestro sistema. # netstat -tap |grep LISTEN tcp tcp tcp tcp tcp tcp tcp tcp tcp 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 *:32768 localhost.localdo:32769 *:mysql *:sunrpc *:x11 *:http *:ftp *:ssh *:https *:* *:* *:* *:* *:* *:* *:* *:* *:* LISTEN LISTEN LISTEN LISTEN LISTEN LISTEN LISTEN LISTEN LISTEN 817/rpc.statd 983/xinetd 1065/mysqld 789/portmap 1532/X 1073/httpd 983/xinetd 949/sshd 1073/httpd

Note que esta conguracin, puede ser una de las miles posibles que puede tener en su sistema, por o lo que no se asuste si no tiene las mismas l neas. De stas l e neas, podemos destacar las que dicen que est corriendo el servicio x11 (Interfz grca del a a a sistema) y la de ssh (para aceptar conexiones a nuestra mquina de manera remota). Todos los dems a a servicios podemos por lo tanto deshecharlos, ya que no ser utiles. an 4.3.3. Apagando servicios

El paso siguiente, es encontrar dnde cada servidor de nuestra lista de matanza est encendiendo. Si o a no es obvio de la salida del netstat, utilicemos ps, find, grep o locate para encontrar ms informacin a o del programa conocido o PID Info en la columna pasada.

Escuela de Verano, Diciembre - 2004

29

Departamento de Informtica U.T.F.S.M. a

Si el nombre del servicio o el n mero de acceso no parece familiar a usted, usted puede ser que u consiga una breve explicacin verdadera en su archivo de /etc/services. o El comando chkconfig es muy util para controlar los servicios que es iniciado a travs de los scripts e del init (vase el ejemplo de ms abajo). Tambin, donde se utiliza el xinetd, puede controlar esos e a e servicios tambin. e chkconfig puede decirnos qu servicios estn congurados en el sistema para funcionar dependiendo e a del runlevel de ejecucin, pero no necesariamente todos los servicios que de hecho estn funcionando o a en este momento, son los que salen listados all ya que se pueden iniciar por otros medios, como por , ejemplo, desde el rc.local. chkconfig es una herramienta de conguracin, ms un sistema en tiempo o a real que revisa qu servicios estn funcionando e a Hay varios lugares y maneras de iniciar servicios de sistema. Veamos las maneras ms comunes para a realizar esto. Los servicios de sistema son comenzados t picamente por los scripts del init, o por el xinetd. 4.3.3.1. Deteniendo servicios del init

Los servicios de init son t picamente inicializados de manera automtica, durante el proceso de booa teo, o durante un cambio de runlevel. Hay un esquema de nombramiento que utiliza symlinks para determinarse qu servicios deben ser comenzados, o parado, en cualquier runlevel dado. Las escrituras e ellos mismos deben estar en /etc/init.d/ Usted puede conseguir un listado de estos scripts: # ls - l /etc/init.d/ | less Luego podemos detener el servicio (como root) # /etc/init.d/<$NOMRE_DEL_SERVICIO> stop Donde $NOMRE DEL SERVICIO es el nombre del script del init, que a menudo (pero no siempre) es igual al nombre del mismo servicio. Esto funciona ahora solamente, para este servicio en particular, pero una vez que se reinicie el sistema, o se cambie de runlevel, volver al estado por defecto. Para cambiar esto, es necesario hacer un a proceso de dos pasos para los servicios del tipo init. chkcong se puede utilizar para considerar qu servicios se comienzan en cada runlevel, y apagar e cualquier servicio innecesario. Para ver todos los servicios que estn bajo su control, basta con escribir a # chkconfig --list |less La primera columna es el nombre del servicio, y las columnas restantes son los distintos runlevels. Necesitamos generalmente solamente preocuparnos de los runlevels 3 (Modo Full multiusuario) y 5 (Nivel 3 + Ambiente Grco X11). Los servicios del xinetd no tendrn columnas, ese aspecto ser controlado a a a por el mismo xinetd. Luego podemos apagar algunos servicios de la siguiente manera: # chkconfig nfs off # chkconfig sendmail off

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado

30

Obviamente, Fedora core posee una herramienta que puede facilitarnos la vida para realizar estas operaciones system-cong-services 4.3.3.2. Xinetd

xinetd es un reemplazo del antiguo inetd. La conguracin puede estar en el archivo /etc/xinetd.conf, o o archivos individuales en el directorio /etc/xinetd.d/. La conguracin de servicios individuales eso tar en los archivos individuales debajo de /etc/xinetd.d/*. a Para apagar servicios del xinetd, se hace suprimiendo la seccin de conguracin correspondiente, o o o el mismo archivo. Otra opcin es usando un editor y simplemente jando disable = yes para el servicio o apropiado. O usando el chkcong. Entonces, el xinetd necesitar ser reiniciado. Vea man xinetd y man a xinetd.conf para vericar la sintaxis y las opciones de conguracin. Un ejemplo de de una conguracin o o xinetd, puede ser: # default: on # description: The wu-ftpd FTP server serves FTP connections. It uses \ # normal, unencrypted usernames and passwords for authentication. service ftp { disable = no socket_type = stream wait = no user = root server = /usr/sbin/in.ftpd server_args = -l -a log_on_success += DURATION USERID log_on_failure += USERID nice = 10 } Para ver de manera rpida qu servicios pueden estar habilitados, basta con utilizar: a e # grep disable /etc/xinetd.d/* |grep no /etc/xinetd.d/sgi_fam: disable = no /etc/xinetd.d/wu-ftpd: disable = no

Escuela de Verano, Diciembre - 2004

31

Departamento de Informtica U.T.F.S.M. a

5.

El kernel en Linux

El kernel (n cleo) del sistema es su parte medular, que interact a directamente con la mayor parte u u de los dispositivos y ofrece las abstracciones familiares como archivos y procesos. Como tal, es una parte cr tica del sistema, y tambin la que ms e a ntimamente depende del hardware instalado en la mquina. a El paquete del n cleo en esta mquina tiene 57 MiB de archivos a instalar, lo cual ser imposible de u a a acomodar en una mquina razonable. Y precisamente una de las ventajas de Linux es que es capaz de a correr en mquinas muy limitadas. a Como una forma de resolver el problema que signicar el tener que tener un n cleo capaz de manea u jar directamente la enorme variedad de conguraciones que Linux soporta, se invent la idea de manejar o mdulos, piezas del n cleo que se agregan al sistema en funcionamiento. N cleos modernos incluso son o u u capaces de cargar mdulos seg n demanda, basta hacer referencia a la funcionalidad requerida (un diso u positivo, un sistema de archivos, e incluso manejo de protocolos) para que los mdulos requeridos se o carguen automticamente. a

5.1. Comandos de manejo de m dulos o


Para manejar mdulos hay varios comandos, de los cuales trataremos slo los de ms alto nivel. Hay o o a comandos adicionales, pero son de inters slo de desarrolladores del n cleo mismo. e o u lsmod Muestra los mdulos actualmente cargados en el n cleo. Da el nombre de cada uno, su tama o, el o u n n mero de usuarios directos, si est o no en uso (o est sujeto a ser eliminado automticamente), y la u a a a lista de mdulos que dependen de l actualmente (esto es independiente de los usuarios directos). o e o modinfo mdulo... Muestra informacin general sobre el mdulo, como el nombre del archivo, una descripcin somera, o o o autor, licencia, y los parmetros que el mdulo acepta con sus tipos. a o o depmod [-ae] [versin] Los mdulos pueden depender unos de otros, este comando construye el archivo modules.dep que usa o modprobe(8) para cargarlos en el orden adecuado. La opcin -a especica ubicar mdulos en todos los o o directorios mencionados en el archivo /etc/modules.conf (modules.conf(5)). La opcin -e solicita se o muestren todos los s mbolos que causan errores en el proceso. De no darse versin del n cleo, procesa o u los mdulos para el n cleo que est corriendo. Fedora core corre este comando desde /etc/rc.sysinit, o u a cuando el sistema se inicia. modprobe mdulo... o Carga los mdulos indicados (y todos los mdulos que requieran, seg n indicado en modules.dep) y los o o u inicializa. rmmod [-ar] [mdulo...] o

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado

32

Descarga los mdulos indicados, si estn libres. Con -r descarga los mdulos de los que dependen o a o tambin, en caso que queden libres. La opcin -a especica eliminar todos los mdulos en desuso, e o o aunque esto no es completamente funcional. /etc/modules.conf El archivo central de conguracin del sistema de mdulos, El uso principal es asociar mdulos espec o o o o cos a funcionalidades requeridas. Por ejemplo, para asociar la interfaz de red eth0 al mdulo eepro100 se ingresa: alias eth0 eepro100 Se pueden asociar parmetros a un mdulo o a un alias, de forma que al cargarse el mdulo tome a o o esos argumentos. Para una tarjeta de red NE 2000 ISA podr ser: a alias eth1 ne options eth1 io=0x320 irq=11 Tambin se pueden especicar comandos a ejecutar antes o despus de cargar o descargar un mdulo e e o dado: pre-install modulo comando post-install modulo comando pre-remove modulo comando pre-install modulo comando

5.2. El sistema de archivos inicial


Es posible que el funcionamiento del sistema requiera mdulos que no son de uso corriente, como o es el caso de sistemas con discos SCSI. En tal caso se requiere cargar los mdulos requeridos incluso o antes de comenzar a usar archivos en el disco. Esto se resuelve mediante el mecanismo de un sistema de archivos m nimo (initrd) que se carga en memoria junto con el n cleo. Inicialmente el n cleo usa este u u sistema de archivos inicial, cargando los mdulos requeridos de all para luego liberarlo y montar los o , sistemas de archivos del disco. mkinitrd imagen versin o Crea el archivo que contiene la imagen comprimida del sistema de archivos inicial para el n cleo de la u versin dada. Fedora core coloca la imagen para el n cleo versin en /boot/initrd-versin.img. o u o o

Escuela de Verano, Diciembre - 2004

33

Departamento de Informtica U.T.F.S.M. a

6.

Procesos y Se ales n

Un sistema Linux t pico puede prestar muchos servicios simultneamente, puede ser servidor de web, a al tiempo que es servidor de correo electrnico, puede atender varios usuarios y cada usuario puede estar o realizando simultneamente diversas acciones. Por esto Linux es llamado un sistema multitarea. a A cada accin en un sistema Linux se le llama proceso. Un proceso abstrae una accin que el sistema o o debe realizar, independiente del momento en que debe ejecutarse. En esta seccin se explica como o puede controlar procesos y como puede aprovechar al mximo las capacidades multitarea de Linux, a por ejemplo realizando diversas labores simultneamente, o haciendo que la ejecucin de un programa a o contin e despus de que usted cierra su sesin (por ejemplo si se trata de un programa que debe correr u e o durante varias horas o d as), o incluso programando el inicio de procesos en momentos en los que usted no tiene una sesin abierta (por ejemplo durante la noche claro est mientras el computador o a est encendido a la hora que programe la tarea). e Abstraccin de una labor que el sistema debe realizar, un comando crear al menos uno de estos, o a pueden recibir se ales enviadas por el comando kill(1). n

6.1. Procesos
Cada proceso tiene asociado un n mero que lo identica, un estado que indica como est operando, u a un grupo que lo asocia con otros procesos, una prioridad que determina su importanciacon respecto a otros procesos y un due o que puede controlarlo (normalmente el due o es el usuario que inicia el n n proceso). Todos los procesos comparten el procesador su computador normalmente tendr un slo a o procesador, para lograrlo, cada proceso emplea el procesador durante un intervalo corto de tiempo y despus duerme o se bloquea para dar posibilidad a otro proceso de emplearlo (el orden en el que e se ejecutan depende de la prioridad de cada proceso). Normalmente junto con cada programa iniciado por el usuario se inicia un proceso , que a su vez puede iniciar otros procesos formando as un arbol; e puede examinar tal arbol con el programa pstree(1). Existen tambin procesos que no son iniciados expl citamente por un usuario, por ejemplo procesos iniciados durante el arranque del sistema o por X-Window, tales procesos generalmente pueden ser controlados slo por el administrador del sistema o quien tambin podr controlar los procesos de los usuarios. e a 6.1.1. Ejecutando procesos en segundo plano

Cada programa o tuber que inicie desde el intrprete de comando se ejecutar en un nuevo proceso a e a que por defecto estar en primer plano, es decir que bash suspender su ejecucin y la reanudar cuando a a o a el programa que inici termine. o Si desea iniciar un programa (o una secuencia de programas unidos por tuber en segundo plano, as) agregu al nal del comando un espacio y el carcter &. Esto es util cuando debe ejecutar un programa e a no interactivo que toma bastante tiempo en completarse, porque mientras la ejecucin del programa se o completa puede continuar trabajando en el intrprete de comandos el programa que inicie se ejecue tar en segundo plano mientras bash contin a ejecutndose en primer plano. a u a

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado

34

Por ejemplo la conversin de DVI a PostScript de un documento grande puede tomar bastante tiempo, o para realizar la labor en el fondo puede emplear: dvi2ps -o salida.ps entrada.dvi & Cuando inicia un programa (o una tuber en segundo plano, bash reanuda su ejecucin inmediataa) o mente, presenta el n mero de tarea que asign al comando y a continuacin el n mero del proceso. u o o u [2] 2116 6.1.2. Listando los procesos del sistema

Adems de pstree(1), un usuario puede ver sus procesos con el programa ps(1) (con la opcin -e, a o ps(1) muestra todos los procesos del sistema). Junto con cada proceso ps(1) presenta: identicacin del proceso o la terminal en la que presenta informacin, en caso de que funcione de forma interactiva (por o ejemplo una consola virtual como tty1 o una terminal de X-Window como pts/0) el estado del proceso el tiempo que ha usado el procesador el resto del tiempo que el proceso haya existido ha estado durmiendo o esperando alg n evento o recurso. u Para examinar interactivamente los procesos de un sistema pueden emplearse los programas top o gtop, los cuales adems de presentar los procesos y refrescar continuamente sus estad a sticas, permiten enviar se ales a cada proceso (entre otras diferencias top funciona en modo texto mientras que gtop es n una aplicacin Gnome). o

6.2. Se ales n
En ocasiones usted desear terminar alg n proceso, por ejemplo porque deja de responder o tarda a u demasiado en completarse; para hacerlo puede emplear el programa kill(1) para enviarle una se al n de terminacin. Una se al es como un llamado de atencinque se hace a un proceso en situaciones o n o excepcionales (por ejemplo errores), pueden ser producidas por otros procesos, por el usuario o por el sistema operativo y en la mayor de los casos conducen a la terminacin del proceso que recibe la a o se al. Hay diversos tipos de se ales, cada una tiene un n mero, un nombre que la identica y una accin n n u o predenida (que generalmente puede ser cambiada por el proceso). Un usuario puede enviar una se al n a un proceso con el programa kill(1) seguido de la se al que enviar y del proceso que la recibir: n a a kill -[seal] [proceso] n ejemplo: kill -SIGTERM 945

Escuela de Verano, Diciembre - 2004

35

Departamento de Informtica U.T.F.S.M. a

Este ejemplo env la se al SIGTERM al proceso con identicacin 945 (en vez de SIGTERM pudo haberse a n o usado 15 que es el n mero que corresponde a esa se al). Puede consultar un listado de todas las se ales u n n y sus n meros con kill -l. u A continuacin se presenta una breve descripcin de algunas se ales com nmente empleadas por o o n u usuarios: 15 SIGTERM Esta se al solicita la terminacin del proceso que la recibe. n o 9 SIGKILL Esta se al termina el proceso que la recibe de forma inmediata. Empleela slo para detener n o procesos que no terminan con la se al SIGTERM. n 2 SIGINT Es la misma se al que se produce cuando un usuario en un programa interactivo presiona, n Control-C para solicitar su terminacin. o a u 3 SIGQUIT La misma se al producida por Control- su efecto es anlogo al de SIGINT pero adems act a n a como si el programa hubiera provocado alg n error interno (volcando el contenido de memoria a u un archivo core). 20 SIGTSTP La misma se al producida por Control-z, su efecto es suspender la ejecucin de un proceso n o para reanudarla despus. e 18 SIGCONT Reanuda un proceso suspendido previamente por la se al SIGTSTP. n 1 SIGHUP Esta se al es enviada por bash a todas las tareas que se ejecutan en segundo plano, cuando n el usuario cierra la sesin (por ejemplo al cerrar una terminal en X-Window o cuando sale de su o sesin desde una consola virtual). o

6.3. Creando y vericando el sistema de archivos ext3


El sistema de archivos por defecto utilizado en Linux es ext3, el cual es un sistema de archivos ext2 con bitcora (o journaling). Un sistema de archivos con bitcora como es ext3 hace que el sistema sea mucho a a ms robusto ante cortes de luz y un apagado brusco del equipo. Cuando posteriormente arranquemos el a sistema de nuevo, est tardar menos en estar disponible porque no ejecutar el fsck. e a a 6.3.1. Migrando los sistemas de archivos de ext2 a ext3

Desmontamos la particin que queremos migrar. (Suponemos /dev/hda3) Para convertir la particin o o de ext2 a ext3 ejecutaremos... # tune2fs -j /dev/hda3 Ahora debemos editar /etc/fstab e indicar que el nuevo sistema de archivos para la particin o /dev/hda3 es ext3. El ultimo paso es montar la unidad. Para formatear una unidad con soporte para ext3, utilizaremos simplemente con el comando: # mke2fs -j /dev/hdaX Donde /dev/hdaX es la nueva particin o

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado 6.3.2. Reparar un sistema de archivos ext3 que est da ado a n

36

Para reparar un sistema de echivos ext3 da ado ejecutaremos... n # e2fsck -fy /dev/hdaX -f Para comprobar -y Asumir SI a todas las preguntas El comando e2fsck pertenece al paquete e2fsprogs. Al reparar el sistema de archivos ext3 ya podemos volver a montarlo como ext2. Tambin podemos ocupar para estas intervenciones el comando e fsck El sistama de archivos ext3 puede ser motando como ext2 siempre y cuando haya sido desmontado de manera correcta. Esto es una opcin muy interesante, sobre todo si se tiene en cuenta que RedHat ofrece o la opcin de arrancar como el modo rescate (recue mode) desde CD y este no soporta ext3. Resultar imo a posible montar como ext2 un sistema ext3 que ha sido mal desmontado, ya que ext2 detectar datos en a la bitcora y no sabe como manejarlos. a

6.4. Sistemas de Volumenes L gicos (LVM) o


LVM es un mdulo que se le agrega al n cleo Linux y genera una abstraccin entre los discos f o u o sicos y los dispositivos para accederlos. Con la ayuda de herramientas de administracin, el administrador o puede acceder a los benecios de utilizar LVM. Bsicamente lo que se logra es tener un nuevo dispositivo que apunta no a un disco o una particin, a o sino a un grupo de discos y particiones como un todo (manejar muchos espacios de disco como si fuera un unico disco). Entrando en detalle vamos a encontrarnos inicialmente con tres nuevos conceptos que utiliza el LVM: Vol menes Fsicos (VF) Son los discos o particiones de un disco u Vol menes L gicos (VL) Son dispositivos donde se pueden crear sistemas de archivos u o Grupo Volumen (GV) Es un area donde se juntan los VF y VL. Bueno, veamoslo de otra manera. . . el Volumen F sico es sencillo, es el pedazo de disco que puedo tocar, ver, sentir, tirarlo contra la pared, pisarlo, etc.. . . por otro lado, el Grupo Volumen es como si fuera una canasta de manzanas, siendo cada manzana un VF, por otro lado los Volmenes Lgicos son bolsas u o virtuales que contienen una cantidad modicable de manzanas de la canasta. Siguiendo con esta analog el Administrador va a poder sacar manzanas de la canasta (esto ser la a, a accin de achicar el VL), o cambiar alguna manzana utilizada (que ya esta viejita y empezando a mostrar o algunos hongos) por otra que no esta en uso, sacndola de la bolsa y reemplazndola por otra manzana a a (ms nueva y sin uso). Esta nueva manzana podr ser una manzana que ya estaba dentro de la canasta a a (un VF no utilizado) o una manzana que se acaba de meter dentro de la canasta (un nuevo VF que se agrego al GV). Esto ultimo es el proceso de agrandar el Volumen Lgico. Dentro de la canasta podrn o a existir ms de una bolsa para poner manzanas.9 a Las manzanas son los Volmenes F u sicos, la canasta es el Grupo Volumen y las bolsas son los Volmenes u Lgicos. En los Volmenes Lgicos es donde se pueden hacer los sistemas de archivos ya que, a diferencia o u o de los VF o GV, son accesibles desde un dispositivo.
9 Referencia:

http://www.xtech.com.ar/articulos/lvm/html

Escuela de Verano, Diciembre - 2004

37

Departamento de Informtica U.T.F.S.M. a

Los Volmenes Lgicos son los que contienen a los Volmenes F u o u sicos, y los Grupo Volumen son quienes contienen a los Volmenes Lgicos. u o 6.4.1. Ocupando LVM

Para poder ocupar LVM, debemos hacer lo siguiente: 1. 2. 3. 4. Preparar los discos r gidos o particiones como VF (Lavar las manzanas recin tra e das de la verduler a) Crear un GV asignando uno o varios VF (poner las manzanas limpias dentro de la canasta) Crear un VL asignado al GV (meter manzanas dentro de la bolsa y dejar la bolsa en la canasta para que no se arruine) Crear un sistema de archivos (lesystem) sobre el VL

6.4.1.1.

Vol menes Fsicos u

El proceso de crear un volumen f sico es simple y rpido, como ya se mencion, un volumen f a o sico puede ser un disco o una particin, y para ello se ocupar el comando pvcreate o a Por ejemplo: pvcreate /dev/hdb1 pvcreate /dev/hdc Se deber ejecutar este comando por cada uno de las particiones o discos que se quieran meter a dentro de un GV. Hay que tener en cuenta, que este proceso es destructivo, o sea, una vez que se , a a ejecut pvcreate sobre un dispositivo, los datos que estaban contenidos all nunca ms podrn ser o recuperados. Si el disco donde estas creando el volumen f sico tiene bloques da ados es muy posible que el n pvcreate no lo detecte, lo que hace el pvcreate es grabar cierta informacin en los primeros 512 kb. del o disco/particin, pero no revisa por si hay bloques da ados. En el caso de que el pvcreate s encuentre o n que esta da ada la primer seccin del disco, dar un mensaje de error y el VF no se crear con xito. n o a a e

6.4.1.2.

Grupo Volumen

Una vez preparados todos los discos disponibles hay que asignarlos a un Grupo Volumen, para crear un GV se necesita por lo menos tener un VF disponible. El comando que se utiliza para ello es vgcreate Por ejemplo: vgcreate gv1 /dev/hdb1 /dev/hdc Al crear un grupo volumen se genera en el directorio /dev un nuevo directorio con el nombre asignado al grupo volumen, por lo tanto es importante que el nombre de este grupo volumen sea algo que tambin e pueda ser el nombre de un directorio, igualmente se recomienda por el bien del administrador que sea algo corto y simple.

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado 6.4.1.3. Vol menes L gicos u o

38

Por ultimo ya estamos listos para asignar todo este espacio disponible a un Volumen Lgico y as poder o crear un sistema de archivos sobre l. Para realizar esto se deber utilizar el comando lvcreate e a Por ejemplo: lvcreate -L 40G -n vl1 gv1 El tama o que se le da al Volumen Lgico es un valor igual o menor al tama o total disponible en el n o n Grupo Volumen (o sea la sumatoria de bytes de los VF que estn asignados a GV). Se pueden utilizar las a letras M (Megabytes), G (Gigabytes) o T (Terabytes). El resultado de este comando es un nuevo dispositivo llamado /dev/gv1/vl1 el cual puede ser utilizado como argumento del mkfs Se recomienda utilizar sistemas de archivo con registro (Journaling File Systems), por ejemplo XFS, ext3, ReiserFS, JFS, ya que los sistemas de archivos creados sobre dispositivos de LVM tienden a ser grandes y una revisin de este tipo sistema de archivos puede ser extremadamente lenta y tediosa. o

Escuela de Verano, Diciembre - 2004

39

Departamento de Informtica U.T.F.S.M. a

7.

Automatizando tareas de administraci n con BASH o

Descendiente del Bourne Shell, bash es un producto GNU, el Bourne Again Shell. Es el interfaz estndar de l a nea de comandos en la mayor de las mquinas Linux. Potencia la interactividad, sopora a tando edicin en l o nea de comando, capacidad de completar o recordar automticamente un comando, a etc. La shell no slo es capaz de interpretar comandos, puede programarse usando archivos de texto o que sta interpretar, se llaman scripts y la shell ofrece construcciones y facilidades para facilitar su e a programacin. Los scripts de shell son muy utiles para ciertos tipos de tareas: o Tareas administrativas: algunas partes de los sistemas UNIX son scripts de shell, para poder entenderlos y modicarlos es necesario tener alguna nocin sobre la programacin de scripts. o o Tareas tediosas que slo se van a ejecutar una o dos veces, no importa el rendimiento del programa o resultante pero si conviene que su programacin sea rpida. o a Hacer que varios programas funcionen como un conjunto de una forma sencilla. Pueden ser un buen mtodo para desarrollar prototipos de aplicaciones ms complejas que postee a riormente se implementarn en leguajes ms potentes. a a Conocer a fondo la shell aumenta tremendamente la rapidez y productividad a la hora de usarla, incluso fuera de los scripts.

7.1. Principios de programaci n con BASH o


Para poder utilizar de la mejor manera posible nuestro entorno texto de Linux, utilizaremos la programacin en bash y asi se podrn automatizar distintas tareas. Para ello, se explicar a continuacin o a a o algunos principios bsicos de programacin con bash a o 7.1.1. Variables de entorno

Hay una serie de variables que afectan al comportamiento de la shell, tanto a la hora de trabajar de forma interactiva, como desde los scripts que sta interpreta. Estas variables pueden ser accedidas y e modicadas en la linea de comandos y tambin en los scripts. e Se puede ver el valor de todas las variables de entorno denidas en un momento dado invocando al comando set sin argumentos. Algunas variables especialmente utiles y su signicado: $HOME Directorio home del usuario. $PATH Rutas en las que la shell busca los ejecutables cuando se invoca un comando. $? Esta variable contiene el valor de salida del ultimo comando ejecutado, es util para saber si un comando ha nalizado con xito o ha tenido problemas. Un 0 indica que no ha habido errores, e otro valor indica que s ha habido errores. $UID Identicador del usuario que ejecuta el script. $! Identicador de proceso del ultimo comando ejecutado en segundo plano.

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado

40

No es necesario declarar las variables, basta con asignar un valor a una variable para crearla. Para acceder al valor que contiene una variable se usa el caracter $, de la siguiente forma: variable = date echo $variable \\ OJO con las comillas

otra forma de interpretar dentro de $variable la fecha de hoy, es mediante: variable = $(date) echo $variable Como cualquier programa, los scripts pueden recibir parmetros en la linea de comandos, los paa rametros recibidos se guardan en una serie de variables que el script puede consultar. Estas variables tienen los siguiente nombres: $1 $2 $3 .... $10 $11 .... La variable $0 contiene el nombre con el que se ha invocado al script. El comando shift mueve todos los parmetros una posicin a la izquierda, esto hace que el parametro a o que haya en $1 desaparezca, y sea reemplazado por el que hab en $2. a La variable $# contiene el n mero de parmetros que ha recibido el script. u a $* contiene todos los parmetros juntos en una sola cadena. a 7.1.2. Uso de las comillas

En general las comillas se usan para prevenir que la shell intrprete ciertos caracteres dentro de una e cadena y para que tome una cadena con espacios como una sola palabra. 7.1.2.1. Comillas dobles

En general los caracteres especiales no son interpretados cuando estn entre comillas dobles. Sin a embargo algunos de ellos s son interpretados: $ Est permitido referenciar variables dentro de las comillas dobles. a \ Se pueden escapar caracteres. ` Se puede realizar sustitucin de comandos, esto es, ejecutar un comando y sustituir la cadena por su o salida. 7.1.2.2. Comillas simples

Dentro de las comillas simples todos los caracteres son interpretados literalmente, ninguno de los caracteres especiales conserva sus signicado dentro de ellas. 7.1.2.3. Comillas invertidas

Poner una cadena entre comillas invertidas supone ejecutar su contenido como un comando y sustituir su salida.

Escuela de Verano, Diciembre - 2004

41 7.1.3. Tests

Departamento de Informtica U.T.F.S.M. a

Un test es una expresin que permite evaluar si una expresin es verdadera o falsa. Los tests no slo o o o operan sobre los valores de las variables, tambin permiten conocer, por ejemplo, las propiedades de un e archivo. Los tests se usan, principalmente, en la estructura if then else para determinar qu parte del script e se va a ejecutar. Un if puede evaluar, adems de un test, otras expresiones, como una lista de comandos a (usando su valor de retorno), una variable o una expresin aritmtica. Este es un ejemplo del uso de if: o e if grep snoopy archivo-lindo.txt > /dev/null then echo "archivo-lindo.txt contiene la palabra snoopy" else echo "archivo-lindo.txt no contiene la palabra snoopy" fi Hay dos formas distintas de escribir un test, [ ] y [[ ]]. No son equivalentes, (por ejemplo los opera dores && y slo funcionan en la ultima), pero de momento las diferencias son irrelevantes. o if [[ test ]] then comando else comando fi 7.1.4. Estructuras de control

Como en cualquier lenguaje de programacin, la shell ofrece estructuras que permiten controlar el o ujo de ejecucin de los scripts. o 7.1.4.1. Bucle for

Su sintaxis bsica es la que sigue: a for var in lista de valores do comandos done La variable $var toma el valor del siguiente valor de la lista en cada iteracin. Un ejemplo: o for i in $(ls *.sh) do if [ -x "$i" ] then echo "El archivo \"$i\" es ejecutable" fi done

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado 7.1.4.2. Bucle while

42

Su sintaxis es la siguiente: while [ condicion ] do comandos done La condicion puede ser, al igual que en un if, cualquier test, comando o expresin, el bucle se ejecuo tar mientras que la condicin devuelva verdadero, es decir, cero. a o En los bucles break y continue tienen el mismo funcionamiento que en otros lenguajes. break termina el bucle y continue salta a la siguiente iteracin. o

7.1.4.3.

Case

Como en otros lenguales case sirve para ejecutar una zona de cdigo u otra, en funcin del valor de o o una expresin o variable: o case $var in valor ) comandos ;; valor2 ) comandos ;; esac El funcionamiento de case puede verse en los scripts de inicio del sistema, lo usan para discernir si han sido llamados con los parmetros start restart stop o alg n otro. a u

7.1.5.

Globbing

El globbing, tambin conocido por lename expansion, es decir, expansin de nombres de archivos, e o es el tratamiento que hace la shell cuando encuentra un nombre de archivo. Cuando se le indica a la shell el nombre de un archivo, algunos caracteres tienen un signicado especial que la shell interpreta antes de hacer lo que tenga que hacer con ese nombre. Los caracteres son estos: * Corresponde con cualquier secuencia de cero o ms caracteres, con la excepcion de los archivos cuyo a nombre empieza con un punto. ? Corresponde con cualquier caracter, una sola vez. [ ] Corresponde con cualquiera de los caracteres o rangos de caracteres que contenga. Niega la expresin que le sigue. o Contiene varias expresiones separadadas por comas y corresponde a cualquiera de ellas.

Escuela de Verano, Diciembre - 2004

43

Departamento de Informtica U.T.F.S.M. a

7.2. Creaci n de Scripts o


Ahora que se tiene un poco ms claro cul es el concepto de programacin en bash, se pueden a a o empezar a crear rutinas que automaticen algunas tareas que hagamos constantemente. La primera linea de los scripts debe ser: #!/bin/bash o #!/bin/sh Si el archivo tiene permisos de ejecucin, la primera l o nea indica qu interprete se requiere para su e ejecucin (en este caso, bash), de otra manera, se deber llamar al interprete de comandos al ejecutar el o a script. Ejemplo # /bin/bash /mi/lindo/script.sh Todo lo que contenga el archivo script, ser interpretado l a nea a l nea de manera ordenada y secuencial por el intrprete. Las l e neas que contengan el signo #, a partir desde ese punto, se considerarn a comentarios y por lo tanto no se ejecutar nada de lo que est escrito a la derecha de ste. a e e

7.2.1.

Hola mundo!

Partamos con el ejemplo ms bsico de todos. . . el script que nos muestre un Hola mundo!. a a Con el editor de preferencia que ocupe, escribir un archivo llamado hola.sh que contenga lo siguiente: #!/bin/bash #Evitando la maldicin... o TEXTO="Hola mundo!" echo $TEXTO Luego le damos permiso de ejecucin a este archivo o # chmod 755 hola.sh y lo ejecutamos # ./hola.sh Hola mundo! Fcil, no? a Las posibilidades son inmensas y con las herramientas que ya se tienen, se puede hacer lo que uno quiera. Slo es necesario un poco de prctica y algo de imaginacin. o a o

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado 7.2.2. Un ejemplo ms complejo a

44

Con el siguiente ejemplo (respaldo automtico de una Base de Datos MySQL), se pretende demosa trar lo fcil que puede ser para uno automatizar tareas tediosas que puedan ser repetidas diariamente. a Adems se aprovecha de mostrar la utilizacin de crons. a o #!/bin/bash #MySQL Backup # echo "0 9 * * * backup.sh" > crontab -e #Declaracin de Variables o EMAIL = "mave007@NOSPAMinf.utfsm.cl" HOST = "localhost" DB = "testin" USER = "mave007" PASSWD= "LaClave" DIR = "/opt/Backup" FECHA = "$(date +%Y.%m.%d)" CONT = 10 FILE = "$DIR/testin-bak-$FECHA.sql" MAQ = $(uname -n) GZIP = "1" #0 no, 1 yes #Viendo si existe $DIR if [ ! -d $DIR ] ; then mkdir -p $DIR &>/dev/null chmod 700 $DIR &>/dev/null fi #Haciendo el Dump mysqldump -h$HOST -u$USER -p$PASSWD --opt $DB > $FILE 2> $DIR/error #Comprimimos?? if [ "$GZIP" = "1" ] ; then gzip -9 $FILE &>/dev/null fi #Cuntos backups hay?? a num=$(ls $DIR/*.sq* |wc -l)&>/dev/null #Dejando solo los $CONT archivos cd $DIR while ( [ $num -gt $CONT ] ); do rm -f $(ls -t |tail -n 1) num=$(ls $DIR/*.sq* |wc -l)&>/dev/null done #Enviando un email si hay error a $DIR tam_error= $(du $DIR/error|cut -d / -f 1) if ( [ $tam_error -ne 0 ] ); then

Escuela de Verano, Diciembre - 2004

45 echo -e "\nError (auto)" >> $DIR/error cat $DIR/error|mail -s"Backup :(" $EMAIL fi

Departamento de Informtica U.T.F.S.M. a

Luego, podemos agregar este script (backup.sh), para que se ejecute todos los d a las 9:00 de la as ma ana: n echo "0 9 * * * backup.sh" > crontab -e

8.

El sistema de paquetes Red Hat Package Manager (RPM)

La distribucin Red Hat introdujo un sistema de administracin de paquetes que hoy d es usado o o a casi universalmente en el mundo Linux. La idea es guardar en una base de datos informacin sobre los o archivos instalados en el sistema (a qu paquete pertenecen, tama os y permisos, dependencias entre e n o a paquetes, entre otros). El comando rpm(1) tiene varios modos de operacin, ac nos centraremos en la instalacin, desinstalacin, y algunas consultas. El nombre de un paquete tiene la forma siguiente: o o nombre-version-release.arch.rpm El nombre es el nombre del paquete, la versin es la versin base usada para construir el paquete, o o release se reere a la versin modicada para distribucin. La arquitectura arch identica la mquina o o a para la cual se cre el paquete, o noarch para paquetes que no dependen de la arquitectura (como o a documentacin). Si aparece src ac, se trata de un paquete con fuentes para crear el paquete binario. o Los paquetes fuente contienen los fuentes originales del paquete, adems de todas las modicaciones a locales que aplic la distribucin, y archivos de conguracin que controlan la construccin del paquete. o o o o Se pueden encontrar paquetes adicionales a la distribucin misma por ejemplo en http://www. o rpmfind.net. En tal caso, debe tenerse cuidado de slo instalar paquetes creados para la distribucin o o exacta que se est usando. Distintas distribuciones tienen diferencias sutiles, con lo que paquetes extrana jeros pueden producir problemas severos.

8.1. Instalando y Desinstalando Paquetes


8.1.1. Consultas

rpm -q opciones de consulta Las opciones de consulta incluyen -f (a qu paquete pertenece un archivo dado), -l (liste los are chivos que pertenecen a un paquete dado), -i (d informacin sobre el paquete), mientras -v solicita e o informacin adicional. El paquete puede darse como nombre de un paquete instalado, o con -p se da el o archivo que lo contiene. Las opciones pueden combinarse, as rpm -qfi /bin/bash solicita informacin o sobre el paquete que contiene el shell. Otras opciones importantes con --whatprovides (que paquete provee una funcionalidad particular, como un archivo dado) y --whatrequieres (que paquete requiere alguna funcionalidad particular o depende de un paquete espec co). Si est instalado el paquete con la a base de datos completa de los paquetes de Red Hat (rpmdb-redhat), pueden usarse --redhatprovides y --redhatrequires para consultar la coleccin de paquetes de la distribucin, no lo que est instalado. o o a

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado 8.1.2. Vericaci n o

46

rpm -V opciones de verificacin o Verica lo que hay instalado contra la base de datos. Reporta archivos faltantes o que se hayan modicado en el paquete. Con -Va verica todo (esto puede tomar largo tiempo). 8.1.3. Instalar y Actualizar

rpm -[iUF] opciones de instalacin o Se pueden instalar (-i) nuevos paquetes, o actualizarlos (-U). La diferencia est en que al instalar queda a la versin anterior, al actualizar sta se elimina. La opcin --force fuerza la instalacin o actualizacin o e o o o (para instalar una versin ms antigua que la actual, o forzar reinstalar sobre la misma versin). Para o a o o simplicar la actualizacin est la opcin de refrescar (-F), que actualiza slo aquellos paquetes que ya o a o estn instalados. Opciones generales con -v (muestra las versiones de lo que se instala) y -h (muestra el a avance del proceso). Los paquetes se pueden especicar como archivos locales, o como URLs a travs de e FTP o HTTP. 8.1.3.1. Dependencias no resueltas

Los paquetes RPM pueden dependerde otros paquetes, lo cual signica que requieren de la instalacin de otros paquetes para poder ejecutarse adecuadamente. Si intenta instalar un paquete que tiene o una dependencia no resuelta, ver lo siguiente: a Preparing... ########################################### [100%] error: Failed dependencies: bar.so.2 is needed by foo-1.0-1 Suggested resolutions: bar-2.0.20-3.i386.rpm Si est instalando un paquete ocial de Fedora core, se le sugerir resolver la dependencia de este a a paquete. Encuentre este paquete en los CD-ROMs de Fedora core Linux o en el sitio FTP (o mirror) y a adalo al comando: n rpm -ivh foo-1.0-1.i386.rpm bar-2.0.20-3.i386.rpm Si se realiza la instalacin correctamente, ver lo siguiente: o a Preparing... 1:foo 2:bar ########################################### [100%] ########################################### [ 50%] ########################################### [100%]

Si no se le sugiere resolver la dependencia, puede intentar usar la opcin redhatprovides para determio nar el paquete que contenga el archivo requerido. Necesita instalar el paquete rpmdb-redhat para usar esta opcin. o rpm -q --redhatprovides bar.so.2

Escuela de Verano, Diciembre - 2004

47

Departamento de Informtica U.T.F.S.M. a

Si el paquete que contiene el archivo bar.so.2 se encuentra en la base de datos instalada del paquete rpmdb-redhat aparecer el nombre del paquete: a bar-2.0.20-3.i386.rpm Si desea forzar la instalacin de todas maneras (no es una buena idea ya que el paquete no funcioo nar correctamente), use la opcin --nodeps. a o Otra forma de resolver estos problemas de dependencia es utilizar herramientas de adquisicin de o alto nivel discutidas mas adelante. 8.1.4. Desinstalar

rpm -e paquetes a desinstalar Se indican los paquetes a desinstalar, ya sea con el nombre del paquete unicamente o la versin completa o en caso que hayan varias versiones instaladas.

8.1.4.1.

Dependencias no resueltas

Podr encontrarse con un error de dependencia cuando est desinstalando un paquete si otro paquea e te instalado depende del que est tratando de eliminar. Por ejemplo: a Preparing... ########################################### [100%] error: removing these packages would break dependencies: foo is needed by bar-2.0.20-3.i386.rpm Para hacer que RPM ignore este error y desinstale el paquete de todos modos (que tampoco es buena idea ya que al hacerlo, el paquete que depende de l probablemente dejar de funcionar correctamente), e a use la opcin --nodeps. o

8.2. Herramientas de adquisici n de alto nivel o


8.2.1. APT - Advance Package Tool

Es un conjunto de herramientas que se utilizan para administrar paquetes de forma automatizada, de manera tal, que cuando el usuario solicita la instalacin de un paquete (aplicacin), el sistema tambin o o e instala (o actualiza) todos los paquetes necesarios para el funcionamiento de esa aplicacin (resolviendo o dependencias). Cabe se alar, que apt-get es un programa (paquete) que fue creado para la distribucin Debian y n o debido a sus m ltiples opciones y facilidad de uso se port a Red Hat, bajo el nombre de apt-rpm, pero u o por razones histricas, se mantuvo el nombre de la aplicacin en apt-get. o o Debido a que fue creado para Debian, el manejo de paquetes lo hac con el administrador de paa quetes DEB. Ahora que ha sido portado a Fedora core, trabaja sobre paquete RPM. . . Esto quiere decir, que apt-get es slo una API o cscara que trabaja sobre los paquetes RPM y no un manejador de paquetes o a distinto de l. e

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado 8.2.1.1. sources.list

48

Este archivo, ubicado en el directorio /etc/apt contiene la informacin de los servidores desde donde o se traern los paquetes. a Ejemplo: Archivo sources.list. Todas las l neas que comiencen con # son comentarios. # List of available apt repositories available from ayo.freshrpms.net. # This file should contain an uncommented default suitable for your system. # # See http://ayo.freshrpms.net/ for a list of other repositories and mirrors. # Fedora Linux 3 rpm http://ayo.freshrpms.net fedora/linux/3/i386 core updates freshrpms rpm http://ayo.freshrpms.net fedora/linux/3/i386 tupdates rpm-src http://ayo.freshrpms.net fedora/linux/3/i386 core updates freshrpms rpm-src http://ayo.freshrpms.net fedora/linux/3/i386 tupdates

8.2.1.2.

Comandos de apt-get

Los comandos de apt-get siguen la siguiente estructura: apt-get [opciones] comando apt-get [opciones] install paquete [paquete... ] La l nea de comando puede ser una variacin de los siguientes tipos bsicos: o a apt-get update Con este comando se actualizar la lista de paquetes que se encuentran en el servidor y a sern bajados al computador local. a apt-get check Herramienta de diagnstico, updatea el cach vericando integridad del sistema. Es reo e comendable ejecutarlo antes de empezar una actualizacin de la distribucin o o apt-get install algun paquete Instala alg n paquete nuevo, resolviendo dependencias automticamenu a te. Si el paquete algun paquete ya est instalado, intentar actualizarlo. a a apt-get upgrade Busca paquetes que estn desactualizados en el sistema y los actualiza automticae a mente. Para actualizar el paquete y sus dependencias se debe utilizar el comando: apt-get install paquete\_a\_actualizar apt-get dist-upgrade Instala todos los paquetes bsicos e intenta actualizar todo, instalando nuevos a paquetes si es necesario. Esta es una manera ms fcil de hacer una actualizacin de la distribucin a a o o apt-get remove algun paquete Elimina el paquete algun paquete y todos los dems paquetes que dea penden de l. e apt-get clean Elimina los archivos que se encuentran en /var/cache/apt y que han sido bajados del servidor

Escuela de Verano, Diciembre - 2004

49 8.2.2. YUM - YellowDog Updater Modied

Departamento de Informtica U.T.F.S.M. a

Anteriormente las distribuciones de Red Hatusaban RedHat Network para liberar sus actualizaciones, este servicio tiene un precio de uso, si quieres tener tu sistema actualizado y no tienes las posibilidades para comprar el servicio de RedHat Network, sigue leyendo. YUM (Yellow dog Updater, Modied) es una potente herramienta con la cual se puede instalar paquetes RPM sin preocuparse tanto, ya que calcula las dependencias faltantes y si estan dentro de alguno de los repositorios en el archivo de conguracin tambin las instala. Puede eliminar paquetes RPM sin o e preocuparse por dejar tu sistema inestable, ya que una de sus pol ticas es precisamente eso, no dejar tu sistema inestable por eliminar un paquete. Sirve para actualizar desde un paquete hasta el sistema completo, es rpido de usar y entender. a 8.2.2.1. yum.conf

De manera similar a apt, yum mantiene un archivo de conguracin que contiene las opciones por o defecto que utilizar al momento de ejecutar. a Ejemplo: Archivo yum.conf. Todas las l neas que comiencen con # son comentarios. [main] cachedir=/var/cache/yum debuglevel=2 logfile=/var/log/yum.log pkgpolicy=newest distroverpkg=redhat-release tolerant=1 exactarch=1 retries=20 obsoletes=1 gpgcheck=0 assumeyes=1 # PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d

8.2.2.2.

El directorio yum.repos.d

Tal como aparece en la ultima l nea de ejemplo del archivo yum.conf, se puede notar que los repositorios deber quedar en el directorio /etc/yum.repos.d, pese a que se pueden dejar en el mismo an yum.conf. Se sugiere de todas maneras, que cada repositorio quede en un archivo separado en el directorio aludido, con un nombre similar a NOMBRE.repo. . . Por ejemplo utfsm.repo o utfsm-updates.repo La sintaxis de estos archivos tienen bsicamente 4 parmetros, el nombre del repositorio, la direccin a a o de donde se bajan los paquetes y un campo que establece si este repositorio est habilitado o no para ser a tomado en cuenta por yum Ejemplo de utfsm.repo (El cual contiene los paquetes BASE de la distribucin para Fedora core 3): o [UTFSM-base]

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado name=UTFSM-base baseurl=ftp://ftp.inf.utfsm.cl/fc3 enabled=1

50

Ejemplo de utfsm-updates.repo (El cual contiene los paquetes con los parches de la distribucin o para Fedora core 3): [UTFSM-updates] name=UTFSM-updates baseurl=ftp://ftp.inf.utfsm.cl/updates/3 enabled=1

8.2.2.3.

Comandos de yum

Los comandos de yum, siguen la siguiente estructura: yum [opciones] [comando] [paquete ...] install Es usado para instalar la ultima versin de un paquete o grupo de paquetes, asegurando que o todas las dependencias sern satisfechas. Si ning n paquete calza con el nombre dado, se asume a u que intentar calzar un glob de shell y ser instalado. a a update Si se utiliza sin ning n otro parametro, update actualizar todos los paquetes que estn instalau a a dos. Si uno o ms paquetes son especicados, yum slo actualizar dichos paquetes. a o a check-update Chequea si hay nuevas actualizaciones, con un cdigo de retorno 100 en caso de tener o xito. e remove Tambin puede ser erase Es utilizado para remover los paquetes especicados del sistema y e todos aquellos que dependan de l. e search Utilizado para buscar cualquier paquete que calce con el string dado en la descripcin, sumario, o empaquetador y/o nombre del paquete RPM. Muy util para encontrar paquetes que no se conocen sus nombres, pero s alguna palabra relacionada a l. e clean Usado para limpiar varias cosas que se van acumulando en el cache de yum. Algunas de las opciones que pueden drsele, son: a headers packages cache metadata all 8.2.3. 8.2.3.1. Construyendo Repositorios yum-arch

a Para crear un repositorio yum, se debe crear un directorio headers, el cual contendr cabeceras .hdr por cada uno de los paquetes y un archivo header.info, que tiene informacin general sobre todo el o repositorio.

Escuela de Verano, Diciembre - 2004

51

Departamento de Informtica U.T.F.S.M. a Para crear un repositorio yum de estas caracter sticas, tan slo basta con escribir: o

yum-arch -v -s /DIRECTORIO/CON/RPMs

8.2.3.2.

createrepo

Desde la versin 3 de Fedora core, se introduce un nuevo standard ante la posibilidad de crear o e o repositorios que puedan anteder a clientes apt, como yum; los cuales a travs de informacin llamada METADATA10 , instruye a los clientes qu paquetes estn en el repositorio. e a Para utilizar esta herramienta, se puede utilizar con createrepo -p -v /DIRECTORIO/CON/RPMs

10 Ms a

info en http://linux.duke.edu/metadata/

Escuela de Verano, Diciembre - 2004

Curso Linux Avanzado

52

8.3. Construyendo un RPM simple


8.3.1. Construyendo a Partir de un SRC-RPM

Un Source RPM es un RPM que viene preparado y listo para ser compilado por nosotros y generar un RPM que podamos instalar. La herramienta a que debemos usar es rpmbuild(8), por ejemplo: rpmbuild --rebuild foo-2.4.5-12.src.rpm rpmbuild generara el paquete foo-2.4.5-12.rpm y lo dejara ubicado en el directorio /usr/src/redhat/RPMS{athlon,i386,i486,i586,i686,noarch} dependiendo de la arquitectura para la cual se compilo. 8.3.2. Construyendo a Partir de un tar.gz

Antes que todo, para poder construir un RPM debe existir la siguiente estructura de directorios: # ls -lF /usr/src/redhat total 5 drwxr-xr-x 3 root root drwxr-xr-x 3 root root drwxr-xr-x 4 root root drwxr-xr-x 2 root root drwxr-xr-x 2 root root

1024 1024 1024 1024 1024

Aug 5 13:12 BUILD/ Jul 17 17:51 RPMS/ Aug 4 22:31 SOURCES/ Aug 5 13:12 SPECS/ Aug 4 22:28 SRPMS/

Ahora se necesita el cdigo fuente del programa para el cual deseamos crear un RPM. En este caso o usaremos los cdigos fuentes foo bar.tar.gz y lo ubicaremos en el directorio SOURCES. o 8.3.2.1. SPEC le

El SPEC le es el archivo que contiene las instrucciones de como crear un rpm y los elementos que debe incluir en el. Un SPEC le esta dividido en: Preambulo En esta seccin se incluye toda la informacin concerniente al paquete. Un ejemplo es el o o siguiente: # # Ejemplo de spec file para foo_bar # Summary: Una aplicacin de sonido o Name: foo_bar Version: 1.0 Release: 1 Copyright: GPL Group: Applications/Sound Source: ftp://lugar.en.la.web/foo_bar.tar.gz URL: http://otro.lugar.en.la.web/foo_bar.html Packager: Alumnos Linux Avanzado <alumnos@inf.utfsm.cl>

Escuela de Verano, Diciembre - 2004

53

Departamento de Informtica U.T.F.S.M. a

%description Aqu ponemos una buena descripcin de lo que o nuestro software hace. %prep Mientras el prembulo en su mayor parte es informacin para consumo humano, en esta seccin a o o se prepara el cdigo para generar el rpm. o %prep rm -fr $RPM_BUILD_DIR/foo_bar tar zxvf $RPM_BUILD_DIR/foobar %build En esta seccin le indicamos como se debe construir el rpm. o %build make %install En esta seccin se indica como instalar el rpm. o %install make install %les Esta seccin contiene un listado de los archivos que sern incluidos en el paquete. Es importante o a recordar que si no esta en este listado, NO se incluir. La subseccin %doc marca los archivos a o ah puestos como documentacin. o %files %doc README /usr/local/bin/foo /usr/local/bin/bar /usr/local/man/man1/foo.1 Este archivo SPEC le debe ser guardado en /usr/src/redhat/SPECS. 8.3.2.2. Creando el RPM

Ahora se puede crear el RPM usando rpmbuild(8). Primero nos debemos ubicar en el directorio donde se encuentran los spec les, y luego ejecutar rpmbuild. rpmbuild -ba foo_bar.spec Si todo va bien en la consola se indicara con un exit 0, y el RPM quedara ubicado en RPMS bajo la arquitectura correcta.

A MAVE-PeNnY/LTEX 2

Escuela de Verano, Diciembre - 2004

You might also like