You are on page 1of 346

ndice

0.

Prlogo ...................................................................................................................................... 0.1. Introduccin a Linux ................................................................................................. 0.1.1. El proyecto GNU ......................................................................................... 0.2. Libre como en libertad .............................................................................................. 0.2.1. Administradores de ventanas .................................................................... 0.2.2. Multimedia ................................................................................................... 0.2.3. Edicin ........................................................................................................... 0.2.4. Servidores ..................................................................................................... 0.2.5. Seguridad ...................................................................................................... 0.2.6. Sistemas de gestin de bases de datos (SGBD) ....................................... 0.2.7. Herramientas administrativas ................................................................... 0.2.8. Desarrollo ...................................................................................................... Introducin ............................................................................................................................... 1.1. Requisitos del sistema ............................................................................................... 1.2. Requisitos de placa base y CPU .............................................................................. 1.2.1. Requisitos de memoria ............................................................................... 1.2.2. Requisitos de la controladora de disco duro ........................................... 1.2.3. Requisitos de espacio en disco .................................................................. 1.2.4. Requisitos de monitor y adaptador de video .......................................... 1.2.5. Hardware diverso ........................................................................................ 1.2.5.1. Ratones y otros dispositivos apuntadores ............................... 1.2.5.2. Unidades de cinta ........................................................................ 1.2.5.3. Impresoras .................................................................................... 1.2.5.4. Modems ......................................................................................... 1.2.5.5. Tarjetas Ethernet .......................................................................... 1.2.6. Documentacin on-line ............................................................................... 1.2.7. Cmo obtener ayuda ................................................................................... 1.3. Informacin sobre Linux ........................................................................................... 1.4. Anecdotario ................................................................................................................ Instalacin ................................................................................................................................ 2.1. Antes de instalar ........................................................................................................

11 11 12 12 13 14 14 15 15 16 16 16 19 19 19 20 20 20 21 21 21 21 21 22 22 22 23 22 23 25 25

1.

2.

Esware Linux

2.2. 2.3. 2.4. 2.5. 2.6. 2.7. 2.8. 2.9.

Conceptos sobre particiones ..................................................................................... 2.2.1. Necesidades de reparticionado en Linux ................................................ Dispositivos y particiones en Linux ........................................................................ Creacin de las particiones en Linux ...................................................................... Creacin del espacio de intercambio (swap) .......................................................... Creacin de los sistemas de archivos ...................................................................... Reparticin no destructiva. Uso de fips ................................................................. Instalacin del sistema operativo ............................................................................ 2.8.1. Instalacin en modo grfico ....................................................................... 2.8.2. Novedades de la instalacin grfica ......................................................... Proceso de instalacin detallado ............................................................................. 2.9.1. Consolas virtuales de texto y consola grfica de instalacin ................ 2.9.2. Seleccin de teclado .................................................................................... 2.9.3. Seleccin del ratn ....................................................................................... 2.9.4. Tipo de instalacin ...................................................................................... 2.9.5. Particionado automtico ............................................................................. 2.9.6. Particionado del sistema ............................................................................. 2.9.7. Formateado de los discos ........................................................................... 2.9.8. Instalacin de LILO ..................................................................................... 2.9.9. Configuracin de la red .............................................................................. 2.9.10. Configuracin de la zona horaria ............................................................. 2.9.11. Contrasea de root y configuracin de cuentas de usuario ................. 2.9.12. Configuracin de autentificacin .............................................................. 2.9.13. Seleccin de los grupos de paquetes ........................................................ 2.9.14. Seleccin de paquetes individuales .......................................................... 2.9.15. Dependencias sin resolver .......................................................................... 2.9.16. Configuracin personalizada del sistema X Window ............................ 2.9.17. Creacin del disco de arranque ................................................................. 2.9.18. Instalacin terminada .................................................................................

25 26 27 28 32 33 34 35 35 35 35 35 37 38 39 41 41 42 43 44 45 46 47 48 50 50 51 52 52 53 53 54 54 55 55 56 56 57 57 58 59 60

3.

El sistema operativo ............................................................................................................... 3.1. Conceptos bsicos de Linux ..................................................................................... 3.2. Creacin de una cuenta ............................................................................................. 3.3. Presentacin en el sistema (loggin in) ...................................................................... 3.4. Consolas virtuales ...................................................................................................... 3.5. Intrpretes de comandos y comandos .................................................................... 3.6. Sintaxis de una orden ................................................................................................ 3.7. Qu ocurre cuando tecleamos una orden? ........................................................... 3.8. Salida del sistema ....................................................................................................... 3.9. Cmo cambiar la contrasea .................................................................................... 3.10. Ficheros y directorios ................................................................................................ 3.11. El rbol de directorios ............................................................................................... 3.12. Explorando el sistema de ficheros ...........................................................................

ndice

3.13. 3.14. 3.15.

/bin ................................................................................................................ /dev ............................................................................................................... /etc ................................................................................................................. /sbin .............................................................................................................. /home ............................................................................................................ /lib ................................................................................................................. /proc .............................................................................................................. /tmp .............................................................................................................. /usr ................................................................................................................ /usr/X11R6 .................................................................................................. /usr/bin ........................................................................................................ /usr/etc ......................................................................................................... /usr/include ................................................................................................ /usr/g++-include ........................................................................................ /usr/lib ......................................................................................................... /usr/local ..................................................................................................... /usr/man ...................................................................................................... /usr/src ......................................................................................................... /var ................................................................................................................ 3.12.19.1. /var/adm ................................................................................. 3.12.19.2. /var/spool ................................................................................ Directorio de trabajo actual ...................................................................................... Refirindose al directorio home ............................................................................... Cosas que podemos hacer... (comandos bsicos) .................................................. 3.15.1. Moverse por el entorno .............................................................................. 3.15.2. Consultar el contenido de los directorios ................................................ 3.15.3. Crear directorios nuevos ............................................................................ 3.15.4. Copiar ficheros ............................................................................................. 3.15.5. Mover ficheros ............................................................................................. 3.15.6. Borrar ficheros y directorios ...................................................................... 3.15.7. Mirar el contenido de los ficheros ............................................................. 3.15.8. Ayuda! .......................................................................................................... 3.15.9. Sumario de rdenes bsicas .......................................................................

3.12.1. 3.12.2. 3.12.3. 3.12.4. 3.12.5. 3.12.6. 3.12.7. 3.12.8. 3.12.9. 3.12.10. 3.12.11. 3.12.12. 3.12.13. 3.12.14. 3.12.15. 3.12.16. 3.12.17. 3.12.18. 3.12.19.

60 60 61 61 61 61 62 62 62 62 62 63 63 63 63 63 64 64 64 64 64 64 65 66 66 67 69 69 69 70 70 71 71 75 75 76 76 80 81 81 81 82

4.

Conceptos Avanzados ............................................................................................................ 4.1. Ms sobre el intrprete de comandos ..................................................................... 4.1.1. Funciones avanzadas del intrprete de comandos ................................. 4.1.2. Metacaracteres .............................................................................................. 4.1.3. Agrupamiento de rdenes ......................................................................... 4.1.4. Funciones and y or .............................................................................. 4.1.5. Funcin and .............................................................................................. 4.1.6. Funcin or ................................................................................................. 4.1.7. Eliminacin de significados especiales ....................................................

Esware Linux

4.2.

4.3.

4.4.

Entrada y salida estndard ....................................................................................... 4.2.1. Redireccionando la entrada y salida ......................................................... 4.2.2. Redireccin no destructiva ......................................................................... 4.2.3. Uso de tuberas (pipes) ............................................................................... Control de tareas ........................................................................................................ 4.3.1. Tareas y procesos ......................................................................................... 4.3.2. Primer plano y segundo plano .................................................................. 4.3.3. Envo a segundo plano y eleminacin de procesos ............................... 4.3.4. Parada y relanzamiento de tareas ............................................................. Variables ...................................................................................................................... 4.4.1. Definir variables .......................................................................................... 4.4.2. Exportar al entorno .....................................................................................

82 83 85 85 87 87 88 88 90 92 93 94

5. 5.1.

5.2.

Conceptos sobre ficheros .......................................................................................... 95 Permisos de ficheros .................................................................................................. 95 5.1.1. Conceptos de permisos sobre ficheros ..................................................... 95 5.1.2. Interpretando los permisos sobre ficheros ............................................... 96 5.1.3. Dependencias ............................................................................................... 97 5.1.4. Cambiando permisos .................................................................................. 98 Enlaces de ficheros ..................................................................................................... 99 5.2.1. Enlaces duros (hard links) .......................................................................... 99 5.2.2. Enlaces simblicos ....................................................................................... 100 103 103 103 105 106 106 107 109 110 111 112 113 113 113 114 114 114 115 115 116

6.

Scripts de shell ......................................................................................................................... 6.1. Introduccin al editor vi ........................................................................................... 6.1.1. Los conocimientos mnimos de vi ............................................................. 6.1.2. Cmo cambiar entre modos de funcionamiento .................................... 6.1.3. Como salir sin guardar los cambios ......................................................... 6.1.4. rdenes de movimiento ............................................................................. 6.1.5. Modificacin del texto ................................................................................ 6.1.6. Copiar, cortar y pegar bloques de texto ................................................... 6.1.7. Bsqueda y cambio de texto ...................................................................... 6.2. Creacin de un script ................................................................................................ 6.2.1. Sentencias de repeticin ............................................................................. 6.2.2. La orden test ................................................................................................. 6.2.3. Comparacin de cadenas ........................................................................... 6.2.3.1. Comparacin de Operadores Lgicos ...................................... 6.2.3.2. Comparacin de archivos ........................................................... 6.2.3.3. Comparacin numrica .............................................................. 6.2.4. La orden expr ............................................................................................... 6.2.5. La orden read ............................................................................................... 6.2.6. La sentencia for ............................................................................................ 6.2.7. La sentencia while .......................................................................................

ndice

6.2.8. 6.2.9.

La sentencia until ......................................................................................... Sentencias condicionales ............................................................................ 6.2.9.1. La sentencia if ............................................................................... 6.2.9.2. La sentencia case .......................................................................... 6.2.10. Otras sentencias ........................................................................................... 6.2.10.1. Sentencia break ............................................................................ 6.2.10.2. Sentencia exit ................................................................................ 6.2.11. Funciones ..................................................................................................... 7. Administracin del Sistema .................................................................................................. 7.1. La cuenta root ........................................................................................................... 7.2. Programacin de tareas ............................................................................................. 7.2.1. at ...................................................................................................................... 7.2.2. batch ............................................................................................................... 7.2.3. nice ................................................................................................................. 7.2.4. nohup ............................................................................................................ 7.2.5. cron y crontab ............................................................................................... 7.2.6. X-facilidades para crontab .......................................................................... 7.3. Administracin de usuarios ..................................................................................... 7.3.1. Usuarios ........................................................................................................ 7.3.2. Grupos ........................................................................................................... 7.3.3. Alta y baja de usuarios ............................................................................... 7.4. Ficheros de personalizacin ..................................................................................... 7.5. Fichero .bash_profile ................................................................................................. 7.6. Fichero .bashrc ........................................................................................................... 7.7. Otros dot files ......................................................................................................... Gestin del sistema de archivos ........................................................................................... 8.1. Sistemas de archivos .................................................................................................. 8.2. Una nota sobre dispositivos ..................................................................................... 8.3. Organizacin! ........................................................................................................... 8.4. El comando mount .................................................................................................... 8.5. Montaje automtico de sistemas de archivos ........................................................ 8.6. /etc/fstab .................................................................................................................... 8.7. Comprobar sistemas de archivos ............................................................................ Gestin de software ................................................................................................................ 9.1. El empaquetador universal: tar ............................................................................... 9.2. Comprimiendo: gzip ................................................................................................. 9.3. tar, gzip y unos disquetes ......................................................................................... 9.4. rpm ............................................................................................................................... 9.4.1. Trabajar con rpm .......................................................................................... 9.4.2. Instalacin .....................................................................................................

117 118 118 119 119 120 120 120 123 123 124 125 126 127 127 127 129 130 131 133 134 141 141 142 143 145 145 145 145 146 148 148 151 153 153 155 157 157 158 158

8.

9.

Esware Linux

9.4.3. 9.4.4. 9.4.5. 9.4.6. 9.4.7.

Desinstalacin .............................................................................................. Actualizando ................................................................................................ Consulta ........................................................................................................ Verificacin ................................................................................................... Para finalizar con rpm ................................................................................

159 160 160 163 164 167 167 170 170 172 172 173 173 174 174 175 179 179 180 180 181 182 184 194 196 199 199 200 201 201 202 202 202 203 203 204 205 206 206 209

10. Arranque del sistema ............................................................................................................. 10.1. El proceso init ............................................................................................................. 10.2. Fichero /etc/inittab ................................................................................................... 10.3. Directorios directamente implicados ...................................................................... 10.4. El comando init .......................................................................................................... 10.5. Formas de arrancar .................................................................................................... 10.6. Encendiendo el ordenador ....................................................................................... 10.7. Linux Loader: LILO ................................................................................................... 10.6.1. Configuracin de LILO ............................................................................... 10.6.2. Fichero de configuracin de lilo, /etc/lilo. conf .................................... 10.6.2.1. Opciones de lilo.conf .................................................................... 11. Compilar el kernel .................................................................................................................. 11.1. Las versiones .............................................................................................................. 11.2. El cdigo fuente ......................................................................................................... 11.3. Preparndose para compilar .................................................................................... 11.3.1. Primer paso: configurar el ncleo ............................................................. 11.3.1.1. Recorrer los mens .................................................................... 11.3.1.2. Algo de orientacin ................................................................... 11.3.2. rdenes de compilacin ............................................................................. 11.3.3. Compilar los mdulos ................................................................................ 12. Linux en red ............................................................................................................................. 12.1. Introduccin a TCP/IP .............................................................................................. 12.1.1. Nivel de aplicacin ...................................................................................... 12.1.2. Nivel de transporte ..................................................................................... 12.1.3. Nivel Internet ............................................................................................... 12.1.4. Nivel fsico .................................................................................................... 12.2. Arquitectura cliente-servidor ................................................................................... 12.2.1. Direcciones IP ............................................................................................... 12.2.2. Clases de direcciones IP .............................................................................. 12.2.3. Direcciones reservadas ................................................................................ 12.2.4. Subredes ........................................................................................................ 12.3. Configuracin del hardware de red ........................................................................ 12.3.1. Herraminetas de configuracin ................................................................. 12.3.2. Primero: ifconfig .......................................................................................... 12.3.3. Segundo: route .............................................................................................

ndice

12.4.

12.5.

12.6.

12.3.4. Tercero: netstat ............................................................................................. Herramientas grficas de configuracin ................................................................ 12.4.1. netcfg ............................................................................................................. 12.4.1.1. Aadir un dispositivo ............................................................... 12.4.1.2. Modificar un dispositivo ya existente .................................... 12.4.1.3. Configuracin de rutas ............................................................. 12.4.2. netconf ........................................................................................................... 12.4.2.1. Configuracin de rutas ............................................................. 12.4.2.2. Alias para dispositivos ............................................................. 12.4.2.3. Salir de netconf .......................................................................... Ficheros de configuracin ......................................................................................... 12.5.1. /etc/hosts ..................................................................................................... 12.5.2. /etc/sysconfig/network ............................................................................ 12.5.3. /etc/services ................................................................................................ 12.5.4. /etc/protocols .............................................................................................. 12.5.5. /etc/host.conf .............................................................................................. Comportamiento de los servicios de red ...............................................................

211 216 217 219 221 222 223 224 226 227 228 228 229 229 231 233 234 237 237 238 239 239 239 241 242 243 245 246 248 249 250 251 252 254 255 257 259 260 261 262 263

13. Compartir recursos en red: Samba ....................................................................................... 13.1. Instalacin de Samba ................................................................................................. 13.2. Componentes de Samba ........................................................................................... 13.3. Configuracin de Samba ........................................................................................... 13.3.1. Secciones de smb.conf ................................................................................. 13.3.1.1. La seccin [global] ..................................................................... 13.3.1.2. La seccin [homes] .................................................................... 13.4. Compartir una unidad Linux con mquinas Windows ....................................... 13.5. Compartiendo una unidad Windows con mquinas Linux ............................... 13.6. Compartiendo una impresora Linux con mquiinas Windows ......................... 13.7. Compartiendo una impresora Windows con mquinas Linux ............................ 13.8. Configurar Samba con Swat ..................................................................................... 13.8.1. Global ............................................................................................................ 13.8.2. Shares ............................................................................................................. 13.8.3. Printers .......................................................................................................... 13.8.4. Status ............................................................................................................. 13.8.5. View ............................................................................................................... 13.8.6. Password ....................................................................................................... 14. Webmin. El configurador web del sistema ......................................................................... 14.1. Instalacin de Webmin .............................................................................................. 14.2. Acceso al Webmin ...................................................................................................... 14.3. Configuracin general de Webmin. Carpeta Webmin ......................................... 14.3.1. Ayuda de Webmin ....................................................................................... 14.3.2. Configuracin de Webmin .........................................................................

Esware Linux

14.4.

14.5.

14.6.

14.7.

14.3.3. Usuarios de Webmin ................................................................................... Configuracin bsica del sistema Linux ................................................................ 14.4.1. Arranque y parada de procesos ................................................................ 14.4.2. Configuracin de servicios de arranque .................................................. 14.4.3. Exportacin NFS .......................................................................................... 14.4.4. Historiales o ficheros de LOG del sistema .............................................. 14.4.5. Instalacin de aplicaciones en formato RPM .......................................... 14.4.6. Procesos en curso ......................................................................................... 14.4.7. Pginas de manual ...................................................................................... 14.4.8. Sistemas de archivos de disco y red ......................................................... 14.4.9. Programacin de tareas mediante Cron ................................................... 14.4.10. Usuarios y grupos ....................................................................................... Configuracin de servidores .................................................................................... 14.5.1. Samba ........................................................................................................... 14.5.2. Sendmail ....................................................................................................... 14.5.3. FTP annimo y autentificado ..................................................................... 14.5.4. Servidor Web Apache .................................................................................. 14.5.5. Servidor de bases de datos MySQL .......................................................... Configuracin de hardware ..................................................................................... 14.6.1. Configuracin de impresoras .................................................................... 14.6.2. Configuracin de red .................................................................................. 14.6.3. Configuracin del cargador de arranque (LILO) ................................... 14.6.4. Fecha y hora del sistema ............................................................................ 14.6.5. Particiones de disco locales ........................................................................ Otras utilidades ..........................................................................................................

265 266 267 268 269 269 270 271 272 273 274 276 279 280 281 293 302 308 313 314 316 321 323 324 325 329 329 329 330 332 334 335 336 337 338 339 339 340 341 342 344 344

15. Introduccin a KDE ................................................................................................................ 15.1. Un vistazo a KDE ....................................................................................................... 15.1.1. Introduccin ................................................................................................. 15.1.2. Descripcin general del entorno ............................................................... 15.2. Comenzando a trabajar ............................................................................................. 15.2.1. Cmo sacar ms provecho a kfm .............................................................. 15.2.2. Qu habis hecho con mi lnea de comandos? ...................................... 15.3. Escritorios virtuales ................................................................................................... 15.4. Cmo lanzar otras aplicaciones ............................................................................... 15.5. Configuracin de su escritorio ................................................................................. 15.5.1. Temas de escritorio ...................................................................................... 15.6. Acceso a las unidades de disquete y CD-ROM ..................................................... 15.7. Cmo imprimir desde KDE ..................................................................................... 15.8. Adicin de tipos MIME: cmo asociar tipos de fichero a aplicaciones ............. 15.9. Configuracin del acceso a Internet mediante mdem ....................................... 15.10. Cmo terminar una sesin con KDE ...................................................................... 15.11. Otros consejos generales de utilizacin de KDE ...................................................

10

ndice

Prlogo

Qu es eso de Linux? Quiero probar Linux, pero el autntico! stas y otras parecidas son las cuestiones que cualquier usuario se plantea cuando se acerca por primera vez a este sistema operativo. Linux en s es nicamente el kernel, el ncleo del sistema. Esware Linux es una distribucin de Linux, lo que significa que usted tendr un kernel (ajustado por Esware) y una coleccin de software que le permite tanto configurar un servidor web como un equipo domstico, pasando por variantes de productividad en diferentes campos de la informtica.

Introduccin a Linux
El sistema operativo Linux se inici como el proyecto universitario de un individuo, Linus Torvalds (http://www.cs.Helsinki.FI/linux/). Pero actualmente es el fruto del trabajo de miles de voluntarios de todo el mundo, que han contribuido a mejorar y aadir nuevas caractersticas al sistema. Paralelamente a este proyecto se origin un movimiento enfocado a crear un sistema operativo libre (sin restricciones de uso y licencias), es el proyecto GNU (http://www.gnu.org), bajo el cual se desarrollan miles de aplicaciones y utilidades. El sistema Linux fue incluido en dicho proyecto y, por tanto, actualmente se habla del sistema GNU/Linux al referirnos al sistema completo (sistema y aplicaciones que lo acompaan).

Esware Linux

11

El Proyecto GNU por Richard Stallman (extracto, recogido del sitio web del proyecto GNU, http://www.gnu.org/gnu/thegnuproject.es.html) publicado originalmente en el libro Open Sources.

Libre como en libertad


El trmino free software [N. del T.: en ingls free = libre o gratis] se malinterpreta a veces; no tiene nada que ver con el precio. El tema es la libertad. Aqu, por tanto, est la definicin de software libre: un programa es software libre, para usted, un usuario en particular, si: Tiene libertad para ejecutar el programa, con cualquier propsito. Tiene la libertad para modificar el programa para adaptarlo a sus necesidades. (Para que esta libertad sea efectiva en la prctica, debe tener acceso al cdigo fuente, porque modificar un programa sin disponer del cdigo fuente es extraordinariamente dificultoso.) Tiene la libertad para redistribuir copias, tanto gratis como por un cnon. Tiene la libertad para distribuir versiones modificadas del programa, de tal manera que la comunidad pueda beneficiarse con sus mejoras. Como free (libre) se refiere a libertad y no a precio, no existe contradiccin entre la venta de copias y el software libre. De hecho, la libertad para vender copias es crucial: las colecciones de software libre que se venden en CD-ROM son importantes para la comunidad, y la venta de las mismas es una manera importante de obtener fondos para el desarrollo de software libre. Por tanto, si la gente no puede incluir un programa en dichas colecciones, dicho programa no es software libre.

12

Prlogo

Linux es un sistema operativo muy poderoso. Es rpido y aprovecha las ventajas de las capacidades multitarea y multiusuario de las mquinas actuales. Es frecuente denominarlo clon del sistema UNIX, pues la base de su cdigo fue este sistema; se puede considerar entonces como un dialecto no comercial del robusto sistema operativo UNIX. Linux aporta al, posiblemente complejo sistema tipo UNIX, la comodidad de usar escritorios grficos de alta productividad y vistosidad. Es posible elegir entre una gran variedad de ellos. Actualmente, los entornos KDE (http://www.kde.org) y GNOME (http://www.gnome.org) son los ms avanzados en su campo. No es necesario comprar software comercial para hacer trabajo productivo; existen miles de aplicaciones bajo el proyecto GNU que satisfacen plenamente las necesidades de todo usuario. Todas ellas disponibles en Internet o publicaciones del sector. No obstante, grandes empresas desarrolladoras de software estn migrando sus aplicaciones al mundo Linux, pero con las restricciones impuestas por sus particulares licencias. Actualmente, Linux es usado tanto en sistemas servidores de gama alta como en los PC de escritorio de cualquier tipo de usuario. Es un sistema operativo fuertemente orientado a redes y funciona perfectamente en entornos ofimticos (con excelentes aplicaciones). Puesto que es un sistema relativamente joven, existen sectores de inters todava no cubiertos, como la gestin comercial y contabilidad, pero gracias a la rpida evolucin de este sistema no se tardar en encontrar buenas aplicaciones prximamente (existen grupos bien coordinados en nuestro pas trabajando en ello). Esware Linux consigue con un sencillo y vistoso proceso de instalacin, junto con una cuidada seleccin de software satisfacer desde el usuario nefito al usuario ms exigente vido de herramientas productivas. Esware Linux es, por tanto, un producto genrico desde el punto del vista del usuario final, pues se integra perfectamente en ambientes ofimticos con aplicaciones de edicin de texto, hojas de clculo, presentaciones, manipulacin de imgenes, etc, o toma el control como servidor en la red corporativa ms exigente, realizando tareas de servidor de impresin, servidor de ficheros, web, ftp, correo, funciones de router, etc. Las aplicaciones del CD del sistema vienen empaquetadas en ficheros especiales (denominados ficheros RPM). Cada uno de estos ficheros puede contener una o varias utilidades. Concretamente desde este primer CD (en el proceso de instalacin) podremos instalar unas 720 aplicaciones, la mayora de ellas necesarias para la estructura del sistema y herramientas que podremos encontrar en todo sistema tipo UNIX de importancia. Entre las aplicaciones de mayor vistosidad y producitividad destacamos las siguientes: Administradores de ventanas AfterStep. AnotherLevel. WindowMaker.

Esware Linux

13

Enlightenment. Fvwm2. GNOME. KDE. KDE2. Sawmill.

Multimedia ImageMagic. Editor de imgenes, genera GIF animados, etc. Aumix. Aplicacin para controlar el mezclador de la tarjeta de sonido. Awesfx. Aplicacin para utilizar la tarjeta de sonido AWE32. Cdda2wav. Captura pistas de audio de un CD y las guarda en disco en formato .wav o.sun. Cdp. Reproductor de CD en modo texto. Cdparanoia. Herramienta de extraccin de audio de CD. Soporta los formatos WAV, AIFC y RAW. Extrace. Reproductor de audio con representacin grfica. GifTrans. Conversor de GIF. GIMP. Retoque fotogrfico de alto nivel, similar a Photoshop. Mikmod. Reproductor de ficheros MOD. Mpg123. Reproductor de ficheros MP3. Playmidi. Reproductor de ficheros MIDI. Xfig. Generador de grficos vectoriales. Xmms. Reproductor MP3 similar a Winamp. Xpaint. Editor de imgenes.

Edicin Emacs. Potente editor de texto orientado a la programacin. Gedit. Editor integrado en el entorno GNOME. Permite la edicin de mtiples documentos. Gnotepad. Editor de texto ligero. Jed. Editor para modo texto orientado a programacin. Joe. Popular y sencillo editor de texto de consola. Vim. Implementacin del editor vi, estndar de edicin del mundo Unix.

14

Prlogo

Servidores Una caracterstica importante a destacar es la separacin en distintos paquetes de los programas servidores y sus clientes, de manera que es posible instalar slo el servidor o slo los clientes en las mquinas que dispongamos. Anonftp. Servidor FTP annimo ligero, de slo lectura. Apache. Servidor HTTP de alto rendimiento. Apmd. Demonio controlador de Administracin Avanzada de Energa. Bind. Implementacin de alto rendimiento del servicio DNS. Bootparam. Servidor encargado de proporcionar informacin necesaria para inicializar clientes de red sin disco. CleanFeed. Filtro anti-SPAM para servidores de noticias y routers. Dhcp. Servidor DHCP. Finger. Servidor de informacin finger. Imap. Servidor de correo entrante IMAP y POP. Inn. Servidor de noticias (news). Mars-nwe. Servidor de ficheros e impresoras para clientes Novell Netware. Mcserv. Servidor para clientes MC (Midnight Commander). Permite usar dicho cliente para acceder a mquinas remotas. NFS-utils. Servidor NFS y utilidades relacionadas. OpenLDAP. Servidor y utilidades del protocolo LDAP. Intimed. Servidor de tiempo que mantiene sincronizados los relojes de la red. Samba. Servidor SMB que permite la interconexin de servicios entre mquinas Linux y Windows. Sendmail. Servidor de correo ampliamente usado. Squid. Servidor proxy de alta disponibilidad. TFTP. Servidor del protocolo ligero Trivial FTP. UCD-snmp. Conjunto de herramientas para explotar el protocolo SNMP de administracin. Ypserv. Servidor del protocolo NIS. Piranha. Herramienta para administrar y configurar Linux Virtual Server, sistema de balanceo de carga de servidores web y ftp, mediante la caracterstica de ruteo del kernel. PVM. Librera y demonio que permite el procesamiento en entornos distribuidos compuestos por mquinas heterogneas y de distintas arquitecturas.

Seguridad Apache-SSL. Extensin del servidor Apache para soporte SSL. Kerberos. Servidor de seguridad Kerberos 5.

Esware Linux

15

Portmap. Demonio que proporciona seguridad en conexiones RPC como NFS o NIS+. RSH-server. Conjunto de programas que permite a los usuarios la ejecucin de comandos en mquinas remotas de manera segura. TCP-wrappers. Programa para monitorizacin y filtro de peticiones entrantes para distintos servicios. Cracklib. Programa para la deteccin de claves de usuario dbiles. Gpgp. Frontal para GNOME del programa de privacidad GNU Privacy Guard. Nmap. Escaneador de redes. PAM. Herramienta para proporcionar servicios de autentificacin para las aplicaciones. Saint. Herramienta para realizar auditoras de seguridad en nuestra red. Utempter. Utilidad que permite dar privilegios de root a programas sin comprometer la seguridad. Sistemas de gestin de bases de datos (SGBD) PostgreSQL. MySQL. Interbase. Herramientas administrativas Webmin. Potente herramienta administrativa de red en formato HTML. Ipvsadm. Herramienta de administracin de servidores virtuales. Quota. Controla el espacio de disco por usuarios y grupos. SetupTool. Frntal en modo texto que centraliza diversas herramientas de configuracin del sistema. Lothar. Herramienta de configuracin de dispositivos que aprovecha las caractersticas P&P de los nuevos kernel. Linuxconf. Herramienta de centralizacin de diversas configuraciones del sistema, usuarios, red, etc. Desarrollo Mesa. Conjunto de herramientas y libreras para realizar grficos 3D de alto rendimiento (segn estndar OpenGL). Dev86. Ensamblador de instrucciones x86 en modo real. Egcs. Coleccin de compiladores y enlazadores de C. Egcs-c++. Compilador de C++.

16

Prlogo

Egcs-g77. Compilador de FORTRAN 77. Egcs-objc. Compilador de Objective C. Gdb. Depurador de cdigo C/C++ y FORTRAN. Glade. Interfaz grfica de programacin en GTK y aplicaciones para GNOME. Kdevelop. Interfaz integrada de programacin en C/C++ especialmente orientada al desarrollo de aplicaciones para KDE. Perl, Python,Tcl/tk. Los tres lenguajes de scripting ms ampliamente usados.

El contenido del CD de fuentes est indicado para aquellos aventureros que quieran indagar en el cdigo fuente de los programas disponibles en el CD del sistema. El cdigo fuente de los programas viene empaquetado en ficheros con formato RPM, para facilitar la instalacin de los mismos. Encontraremos en el CD de aplicaciones programas adicionales junto con abundante documentacin. En l podemos encontrar la popular y potente suite de ofimtica StarOffice y el avanzado editor de texto Corel WordPerfect, ambos en perfecto castellano. El apartado de documentacin est compuesto por los manuales y preguntas de uso frecuente en castellano del proyecto LUCAS y el Manual de instalacin y manejo de Esware Linux en distintos formatos listos para imprimir. Disponemos tambin de un apartado denominado RemozaTools que contiene una variada seleccin de software en formato RPM organizado en las siguientes secciones: CPAN. Internet. Kernel. Seguridad. Utilidades X. Xfree 4.0. Bases de datos. Desarrollo. Editores. Grficos. Ingeniera. Juegos. Libreras. Multimedia. Productividad. Redes y comunicaciones. Sistema. Utilidades para archivos. Backup. Accesibilidad.

Esware Linux

17

Captulo 1. Introduccin

Requisitos del sistema


Antes de instalar Esware Linux, tiene que conocer los requisitos y limitaciones de hardware que existen. Un inconveniente en el soporte de hardware bajo Linux es que algunas compaas mantienen las especificaciones de su hardware como propietario. Por tanto, no se puede desarrollar controladores para estos dispositivos. Exceptuando estos casos, segn va apareciendo, va siendo soportado la mayor parte del hardware y los perifricos populares. Las empresas desarrolladoras de hardware suministran controladores para sistemas operativos como MS-DOS y Microsoft Windows por razones comerciales, pero no para una filosofa de cdigo abierto como es Linux. Es probable que un dispositivo muy novedoso no est (de momento) en la lista de controladores de Linux, pero probablemente en poco tiempo aparezca en Internet el controlador adecuado, que rpidamente ser incorporado a todas las distribuciones. Por suerte esto est cambiando y cada vez ms fabricantes ven el potencial de Linux y abren el cdigo de sus productos facilitando as el desarrollo de los controladores.

Requisitos de placa base y de CPU


Actualmente, Linux soporta sistemas con una CPU Intel 80386, 80486, o Pentium. Los clnicos no Intel, como AMD y Cyrix, tambin funcionan con Linux. Si tiene la suerte de tener una placa para doble microprocesador, Linux la detectar y har funcionar los dos micros sin ningn problema Si conserva un antiguo 386 486, puede que lo quiera aprovechar con Linux. No va a alcanzar velocidades de vrtigo, pero tendr una pequea estacin de trabajo conectada en red junto a su flamante Pentium III, incluso ejecutar aplicaciones en el pequen usando los recursos del PIII. El coprocesador matemtico puede ser emulado por el kernel si la mquina no cuenta con uno.

ESware Linux

19

Los buses de la placa base soportados son: PCI, ISA o EISA, VESA Local Bus, AGP y USB desde los ltimos ncleos. Requisitos de memoria Linux utilizar toda la memoria RAM de forma automtica, y se apaar sin problemas con tan slo 4 megabytes de RAM, incluyendo un entorno de ventanas sencillo. Sin embargo, dadas las configuraciones actuales es fcil contar con 16 32 Megas, con lo que tendramos suficiente para un uso personal; para servidores depender de la carga que esperemos. Disponer de ms memoria es tan importante como tener un procesador ms rpido. ESware Linux reserva una parte del disco duro para espacio de intercambio (swap) que se usa como RAM virtual, incluso si dispone de bastante memoria RAM fsica en su maquina. El rea de swap no puede compararse en trminos de velocidad a una memoria RAM, pero permite a su sistema ejecutar aplicaciones ms grandes guardando en disco duro partes de cdigo que estn inactivas. La cantidad de espacio de intercambio a reservar depende de diversos factores; se puede hacer un clculo en funcin de la RAM fsica, pero depende del sistema. Normalmente 16 Mb de swap deberan ser suficientes y 64 Mb estarn francamente bien. Lo que no le aconsejamos que haga nunca es dejar al sistema sin espacio de intercambio! Requisitos de la controladora de disco duro El ncleo soporta controladoras XTestndar, las controladoras MFM, RLL, IDE, EIDE y SCSI. La regla general para controladoras que no sean SCSI, es que si puede acceder a las unidades (disco y/o disquete) desde MS-DOS u otro sistema operativo, debera poder hacerlo desde Linux. Requisitos de espacio en disco Para instalar Linux, necesitar preparar algo de espacio en su disco duro. Tambin puede disponer de espacio para Linux en mltiples unidades. La cantidad de espacio depende en gran medida de sus necesidades y de la cantidad de software que quiera instalar. Las distribuciones Linux incluyen gran cantidad de software que quiz no necesite utilizar. Un sistema bsico funcionar con menos de 100 Megabytes. Si quiere disponer de espacio para expansiones, y para paquetes mas grandes como X Window, necesitar ms espacio. Si adems planea permitir a mltiples usuarios utilizar la maquina, tendr que dejar espacio para sus ficheros. Una instalacin media, con X y un nmero de aplicaciones respetable, van bien con 500 Megas; una distribucin completa ocupa alrededor de 1,2

20

Captulo 1. Introduccin

Gigas. Con el tamao actual de discos, estas cantidades no deberan suponer gran problema. Requisitos de monitor y adaptador de vdeo Para trabajar en modo texto, Linux soporta todas las tarjetas de vdeo estndar Hercules, CGA, EGA, VGA, IBM monocromo y Super VGA. Los entornos grficos como el Sistema X Window tienen requisitos propios de hardware para la tarjeta de vdeo. Se soportan prcticamente todas la tarjetas actuales, varias aceleradoras 3D (las ms populares, Wodoo, etc) y tarjetas AGP. Hardware diverso Es posible que tenga cierto nmero de dispositivos opcionales, como almacenamiento en cintas y CD-ROM, tarjetas de sonido y dems, y quieras hacerlos funcionar bajo Linux. He aqu algunos: Ratones y otros dispositivos apuntadores Normalmente slo usar un ratn bajo un entorno grfico como el Sistema X Window. Sin embargo, algunas aplicaciones Linux no asociadas con un entorno grfico, hacen uso del ratn. Linux soporta todos los ratones serie estndar, incluyendo Logitech, MM series, Mouseman, Microsoft (2 botones) y Mouse Systems (3 botones). Linux tambin soporta los ratones de bus Microsoft, Logitech y ATIXL. La interfaz de ratn de PS/2 tambin es soportada. Todos los dems dispositivos apuntadores, como los trackball que emulen a los dispositivos anteriormente citados, tambin deberan funcionar. Unidades de cinta Hay varios tipos de unidades de cinta disponibles en el mercado. La mayora usan la interfaz SCSI, por lo que estaran soportadas por Linux. Otras unidades QIC-02 tambin estn soportadas. Impresoras Linux soporta prcticamente todas las impresoras paralelo. El software de impresin de Linux se basa en el estndar de UNIX lp y lpr. Este software tambin le permite imprimir remotamente a travs de la red, si es que tiene una disponible.

ESware Linux

21

Modems Linux soporta toda la gama de modems serie externos. Ojo con los actuales modems internos PCI. Si son Win-modem (y prcticamente todos lo son) no funcionarn bajo Linux!. Estos dispositivos, de bajo precio, requieren que se emulen por software ciertos componentes de hardware, que por s no incorporan. Esto fuerza a la CPU a dedicarle tanto tiempo durante su uso, que prcticamente inhibe la multitarea, lo que va en contra de uno de los principales pilares del entorno Linux.

Tarjetas Ethernet Linux soporta un buen nmero de tarjetas Ethernet y adaptadores para LAN. La lista es demasiado larga para esta introduccin. Se ver con ms detalle ms adelante, cuando se configure la parte de red.

Informacin sobre Linux


Hay muchas fuentes de informacin sobre Linux, principalmente de forma electrnica. Esto es, con un acceso a Internet, podr pasear por infinidad de pginas de documentacin. Si no tiene acceso a la Red, puede encontrar copias para imprimir en los CD-ROM de Esware Linux. Documentacin On-Line La pagina inicial de la Documentacin de Linux en la Web se encuentra en la direccin http://www.linuxdoc.org Desde esta pgina puede acceder a las secciones Cmo (HOWTO) y otros documentos en formato HTML. Tambin encontrar enlaces a otros servidores de inters. El sitio web de Esware Linux le proporciona tambin enlaces a documentacin en castellano: http://www.esware.com

22

Captulo 1. Introduccin

Como obtener ayuda Existen frmulas para obtener ayuda sobre problemas concretos. La forma ms inmediata es mediante las listas de correo y grupos de noticias que se mantienen en Internet. Prcticamente todo el software incluye documentacin sobre su manejo; entonces lo primero que debemos hacer cuando algo no funciona, es localizar esta documentacin y leerla. Incluso nos atreveramos a sugerir que estara bien leer la documentacin antes incluso de instalar o ejecutar el software. Frecuentemente, y por extrao que parezca, se encuentran respuestas a muchos problemas. Si a pesar de esto necesita preguntar en un grupo de noticias sobre ese problema, procure leer antes las noticias ya publicadas. Los problemas se repiten y es posible que la solucin ya est disponible. De esta manera evita que la gente que lea su mensaje, generalmente dispuesta a ayudarle, se harte de ver la misma pregunta una y otra vez. En la mayora de los casos se recomienda investigar por cuenta propia antes de pedir ayuda al exterior. Y si escribe su pregunta en las noticias, haga que merezca la pena. La Red no es un servicio postventa. As pues, hay que redactar el artculo de la forma mas completa posible, incluyendo toda la informacin acerca de su sistema y el problema que crea relevante; suele ser interesante aadir informacin mas general, como qu versin del sistema utiliza (del ncleo y de la distribucin), as como un pequeo resumen de su hardware. La idea es hacer todo lo que pueda por s mismo y slo entonces pedir ayuda si finalmente la necesita.

Anecdotario
El da 5 de octubre de 1991, Linus Torvalds anuncia la primera versin de Linux, llamada 0.02. Ejecutaba bash (el shell de GNU) y gcc (el compilador de C de GNU), y no mucho ms. Linus public lo siguiente en comp.os.minix: Suspiris al recordar aquellos das de Minix-1.1, cuando los hombres eran hombres y escriban sus propios controladores? Os sents sin ningn proyecto interesante y os gustara tener un verdadero S.O. que pudirais modificar a placer? Os resulta frustrante el tener slo a Minix? Entonces, este artculo es para vosotros. Como dije hace un mes, estoy trabajando en una versin gratuita de algo parecido a Minix para ordenadores AT-386. He alcanzado la etapa en la que puede ser utilizable y voy a poner los cdigos fuente para su distribucin. Es slo la versin 0.02 pero he conseguido ejecutar en el bash, gcc, gnu-make, gnused, compress, etc. El desarrollo se aceler por la colaboracin espontnea de gente a travs de Internet. En diciembre de 1993, el ncleo estaba en la revisin 0.99.pl14, aproximndose al nmero

ESware Linux

23

de versin 1.0. Generalmente se reserva el nmero 1.0 para indicar la primera versin tericamente completa y sin errores. En el momento de escribir estas lneas, la versin ms reciente es la 2.4.test4.

24

Captulo 1. Introduccin

Captulo 2 Instalacin

Antes de Instalar
En realidad, la instalacin de ESware Linux no es un proceso complicado, y con la nueva instalacin en modo grfico, completar con xito el proceso es relativamente fcil, incluso con pocos conocimientos del sistema. En este captulo veremos un par de puntos importantes sobre las necesidades de particionamiento de Linux, el potente gestor de particiones fdisk y el posterior uso de las particiones.

Conceptos sobre particiones


En general, los discos duros se encuentran divididos en particiones, donde cada particin corresponde a un sistema operativo. Por ejemplo, en un disco duro se pueden tener varias particiones; una dedicada a, digamos, MS-Windows, otra a OS/2 y otra a Linux. Si usted tiene ya otro software instalado en su equipo, puede necesitar cambiar el tamao de sus particiones con el fin de reservar espacio para Linux. En el espacio reservado se crearn una o ms particiones para almacenar el software de Linux y el espacio de intercambio. A este proceso lo llamamos reparticionar. La mayora de los equipos con Windows instalado utilizan una nica particin que ocupa todo el disco. Para Windows, esta particin es conocida como C:. Si tiene mas de una particin, Windows las llamara D:, E:, y as sucesivamente, de modo que cada particin acta como si fuera un disco duro independiente. La informacin sobre las particiones del disco duro se guarda en el primer sector del disco, conocido como registro de arranque maestro (a partir de ahora mbr) junto a la tabla de particiones. El registro de arranque (como su nombre indica) se usa para arrancar el sistema. La tabla de particiones contiene informacin acerca del lugar, el tamao y los atributos de cada particin. Hay tres clases de particiones: primarias, extendidas y lgicas. De stas, las ms usadas son las primarias. Una particin primaria es aqulla en la que el primer sector es el sector

ESware Linux

25

de arranque (boot sector), lo que quiere decir que esta particin podr tener informacin para lanzar un sitema operativo. Debido al lmite de espacio en la tabla de particiones, slo pueden definirse cuatro particiones primarias en un disco. La forma de superar este lmite de cuatro particiones es usar particiones lgicas dentro de particiones extendidas. Una particin extendida no tiene datos ella misma; en su lugar, acta como soporte de particiones lgicas (es como un contenedor de particiones). Por lo tanto, se puede crear una particin extendida, y dentro crear cualquier nmero de particiones lgicas. Slo se puede definir una particin extendida por disco.

Necesidades de reparticionado en Linux En Linux, los ficheros se almacenan en un sistema de archivos, que es esencialmente una zona del disco duro (u otro dispositivo, como un CD-ROM o un diskette) formateado para almacenar ficheros. Cada sistema de archivos se encuentra asociado con una parte especfica del rbol de directorios, (veremos el rbol de directorios ms adelante). El sistema de archivos raz corresponde al directorio / (esto en muy importante). Bajo Linux, cada sistema de archivos ocupa una particin del disco duro. Por ejemplo, si tenemos un sistema de archivos para / y otro para /usr, necesitaremos dos particiones para almacenar ambos sistemas. (Encontrars ms informacin en el Captulo Gestin del Sistema de Archivos). Antes de instalar Linux, necesitar preparar sistemas de archivos para almacenar el software de Linux. Por lo menos tiene que tener un sistema de archivos (el sistema de archivos raz), es decir, una particin reservada a Linux. Para un uso domstico se puede optar por almacenar todos los ficheros en el sistema de ficheros raz, pues es mas fcil de gestionar que tener diferentes sistemas de archivos y particiones. Sin embargo, para servidores es ms recomendable crear varios sistemas de archivos; por ejemplo, puede que quiera usar sistemas separados para /usr y /home. Aquellos lectores con experiencia en administracin de sistemas UNIX sabrn cmo usar diferentes sistemas de archivos adecuadamente. Tomen nota de esto, pues se ver tambin ms adelante. Por qu usar ms de un sistema de archivos? Lo ms habitual es por seguridad; si, por alguna razn, uno de sus sistemas de archivos resulta daado, los otros normalmente no resultaran afectados. Por otro lado, si almacena todos sus ficheros en el sistema de archivos raz, y por alguna razn resulta daado, puede perder todos los ficheros de una vez. Sin embargo, esto no es lo habitual; si se hacen copias de seguridad regularmente, no hay de qu preocuparse. Esto no es broma. Haga copias de seguridad! (backups). Otra razn para utilizar varios sistemas de archivos es repartir el almacenamiento entre varios discos duros.

26

Captulo 2. Instalacin

En resumen, Linux requiere por lo menos una particin, para el sistema de archivos raz. Si desea crear varios sistemas de archivos, necesitar una particin por cada sistema de archivos. La otra cuestin a considerar es el espacio de intercambio (swap). Se debe crear una particin de intercambio, una particin reservada exclusivamente como espacio de intercambio. Por lo general, se crearn, al menos, dos particiones para Linux: una para ser usada como sistema de archivos raz, y la otra como espacio de intercambio. Por supuesto, hay otras opciones, pero sta es la opcin mnima. Tambin necesita conocer el espacio requerido para cada particin. El tamao de los sistemas de arachivos de su sistema Linux depende en gran parte de qu software quiera instalar en l. El tamao de sus particiones de intercambio (debe elegir una para esto) depende de la RAM virtual que necesite.

Nota importante. Debido a las limitaciones de la BIOS, habitualmente no es posible arrancar desde particiones que empiecen ms all del cilindro 1024. (Esto ha cambiado con las ltimas versiones de LILO, el gestor de arranque de Linux.) An as, procure no usar una particin que sobrepase ese cilindro para el sistema de archivos raz. Linux puede usar perfectamente particiones con cilindros ms all del 1024, pero mejor no usar dichas particiones para arrancar. Decir esto aqu puede parecer prematuro, pero es importante a la hora de planificar el uso del disco en Linux.

Si usa una particin para el sistema de archivos raz mas all del cilindro 1024, siempre podr arrancar Linux con un disco boot. Esto no es un inconveniente; slo tarda un poco ms que si se arrancara desde el disco duro.

Dispositivos y particiones en Linux


Muchas distribuciones necesitan que se creen a mano las particiones de Linux utilizando el programa fdisk. Otras pueden crearlas durante el mismo proceso de instalacin. En cualquier caso, debemos conocer lo siguiente acerca de los nombres para los dispositivos y las particiones en Linux. Bajo Linux, los dispositivos y las particiones tienen nombres muy distintos a los utilizados en otros sistemas operativos. En MS-DOS / Windows, las disqueteras se identifican como A: y B:, mientras que las particiones del disco duro se identifican como C:, D:, etc. Con Linux, la denominacin es algo diferente (vase tabla 2.1).

ESware Linux

27

Tabla 2.1. Lista de los nombres de diversos dispositivos Dispositivo Primera disquetera (A:) Segunda disquetera (B:) Primer disco duro (todo el disco) Primer disco duro, particin primaria 1 Primer disco duro, particin primaria 2 Primer disco duro, particin primaria 3 Primer disco duro, particin primaria 4 Primer disco duro, particin lgica 1 Primer disco duro, particin lgica 2 Segundo disco duro (todo el disco) Segundo disco duro, particin primaria 1 Primer disco duro SCSI (todo el disco) Primer disco duro SCSI, particin primaria 1 Segundo disco duro SCSI (todo el disco) Segundo disco duro SCSI, particin primaria 1 en Linux /dev/fd0 /dev/fd1 /dev/hda /dev/hda1 /dev/hda2 /dev/hda3 /dev/hda4 /dev/hda5 /dev/hda6 /dev/hdb /dev/hdb1 /dev/sda /dev/sda1 /dev/sdb /dev/sdb1

Algunas notas acerca de esta tabla. Observe que /dev/fd0 corresponde a la primera disquetera (A: bajo Windows) y que /dev/fd1 corresponde a la segunda (B:). Adems, los discos duros SCSI se nombran de manera diferente a otros discos. Los IDE, EIDE y CD-ROM (que no sean SCSI) se acceden a travs de los dispositivos /dev/hda, /dev/hdb, etc. Las particiones de /dev/hda son /dev/hda1, /dev/hda2, etc. Sin embargo, los dispositivos SCSI se nombran con /dev/sda, /dev/sdb, etc., y las particiones con /dev/sda1, /dev/sda2, etc. Las particiones lgicas se nombran de forma consecutiva partiendo de /dev/hda5.

Creacin de las particiones en Linux


Ahora ya est preparado para crear las particiones de Linux con el comando fdisk. Como se explic anteriormente, va a tener que crear, en general, una particin para el software de Linux propiamente dicho y otra para el rea de intercambio. Recuerde que puede hacer este proceso durante la instalacin.

28

Captulo 2. Instalacin

La sintaxis del comando fdisk es la siguiente: fdisk <unidad> donde <unidad> es el nombre de dispositivo con el que Linux identifica el disco duro donde quiere realizar las particiones. Por ejemplo, si desea ejecutar fdisk sobre el primer disco SCSI de su sistema, utilice el comando: fdisk /dev/sda Por defecto, fdisk acta sobre /dev/hda (el primer disco IDE). Para crear particiones de Linux en ms de un disco, ejecute fdisk una vez por disco. fdisk tiene su propia lnea de comandos con sus propias rdenes para la gestin de particiones. Veamos cmo funciona: # fdisk /dev/hda Command (m for help): En este punto, fdisk esta esperando un comando; puede teclear m para obtener una lista de opciones. Command (m for help): m Command action a toggle a bootable flag d delete a partition l list known partition types m print this menu n add a new partition p print the partition table q quit without saving changes t change a partitions system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) Command (m for help): El comando n se usa para crear una particin nueva. Casi todas las dems opciones no nos van a preocupar ahora mismo.

ESware Linux

29

Nota importante. Para salir de fdisk sin guardar los cambios, utilice el comando q. Para salir guardando los cambios en la tabla de particiones, utilice el comando w. Lo primero que debe hacer es mostrar su tabla de particiones actual y anotar sus datos, para referencias posteriores. Use el comando p para esto. Command (m for help): p Disk /dev/hda: 16 heads, 38 sectors, 683 cylinders Units = cylinders of 608 * 512 bytes Device Boot Begin Start End Blocks Id System /dev/hda1 * 1 1 203 61693 Command (m for help): En este ejemplo, tenemos una particin nica en /dev/hda1, con 61693 bloques (unos 60 MB). Esta particin comienza en el cilindro 1 y finaliza en el 203. En total el disco tiene 683 cilindros, de los cuales 480 estn libres para crear particiones de Linux. Para crear una particin nueva, utilice el comando n. En este ejemplo crearemos dos particiones primarias (/dev/hda2 y /dev/hda3) para Linux. Command (m for help): n Command action e extended p primary partition (1-4) p Aqu, fdisk pide el tipo de particin a crear: extendida o primaria. En nuestro ejemplo elegimos p pues slo vamos a crear particiones primarias. Partition number (1-4): fdisk preguntar entonces por el nmero de la particin a crear; puesto que la 1 est en uso, nuestra primera particin para Linux debe ser la 2. Partition number (1-4): 2 First cylinder (204-683): Ahora debe introducir el cilindro de comienzo de la particin. Dado que actualmente no estn en uso los cilindros 204 a 683, escogeremos el primero disponible (204), ya que no hay razn para dejar huecos entre particiones.

DOS 16-bit >=32M

30

Captulo 2. Instalacin

First cylinder (204-683): 204 Last cylinder or +size or +sizeM or +sizeK (204-683): Ahora fdisk nos est preguntando acerca del tamao de la particin a crear. Podemos hacerlo especificando el cilindro de terminacin de la particin o indicando directamente el tamao requerido, en bytes, kilobytes, o megabytes. Como queremos que la particin ocupe 80 megabytes, especificaremos +80M. Cuando se indica el tamao de esta forma, fdisk lo redondea a un nmero de cilindros. Last cylinder or +size or +sizeM or +sizeK (204-683): +80M Ahora podemos pasar a crear la segunda particin. Como ejemplo, vamos a crearla de 10 megabytes. Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First cylinder (474-683): 474 Last cylinder or +size or +sizeM or +sizeK (474-683): +10M Finalmente, vamos a ver la tabla de particiones. Una vez ms, anote la informacin que se le presente sobre todos los tamaos en bloques de las nuevas particiones. Necesitar conocerlos cuando tenga que crear, ms tarde, los sistemas de archivos. Adems, debe verificar que las particiones no se solapen. Command (m for help): p Disk /dev/hda: 16 heads, 38 sectors, 683 cylinders Units = cylinders of 608 * 512 bytes Device Boot Begin Start End Blocks Id System /dev/hda1 * 1 1 203 61693 6 DOS 16-bit >=32M /dev/hda2 204 204 473 82080 81 Linux native /dev/hda3 474 474 507 10336 81 Linux native Como puede ver, ahora en /dev/hda2 tenemos una particin de 82080 bloques (aproximadamente 80 megabytes) y en /dev/hda3 tenemos 10336 bloques (unos 10 megabytes). Para establecer una particin de un tipo de archivos distinto a Linux native (ext2fs), utilice la opcin t en fdisk para cambiar el tipo de la particin elegida para el intercambio a

ESware Linux

31

Linux swap. Se puede usar la opcin L para ver una lista de tipos de particiones conocidas, y luego t para establecer el tipo de la particin de intercambio a Linux swap. De esta forma, el software de instalacin podr encontrar automticamente sus particiones de intercambio en funcin del tipo. Si el software de instalacin no pudiera reconocer su particin de intercambio, deber repetir la ejecucin de fdisk y utilizar el comando t sobre la particin en cuestin. En el ejemplo anterior, los cilindros sobrantes (508 a 683) se quedan sin usar. Puede que se desee hacerlo as, para ms adelante crear ms particiones. Finalmente, utilizaremos el comando w para escribir los cambios en el disco y salir. Command (m for help): w # Recuerde que ningn cambio hecho durante la ejecucin de fdisk tendr efecto hasta que se teclee el comando w, por lo que se puede jugar con diferentes configuraciones y guardarlas slo cuando est seguro de que los cambios son correctos. Adems, puede usar el comando q para abandonar fdisk sin hacer ningn cambio. Recuerde tambin que las particiones de otros sistemas operativos no deben tocarse desde el programa fdisk de Linux. Asimismo, recuerde que no debe arrancar Linux desde una particin que comience mas all del cilindro 1023. Por tanto, puede crear la particin raz en el rango inferior a este cilindro o, si esto es imposible, arrancar siempre desde un disquete. En algunas ocasiones es necesario reiniciar el sistema tras ejecutar fdisk. Esto permite que los cambios en la tabla de particiones tengan efecto. Las nuevas versiones de fdisk cambian de forma automtica esta informacin en el ncleo, con lo que no es necesario reiniciar. Aunque la forma ms segura de que se vuelva a leer el mbr es volver a arrancar tras crear las particiones.

Creacin del espacio de intercambio (swap)


La informacin que viene a continuacin no es necesaria durante el proceso de instalacin, ya que se hace todo automticamente. Si despus de tener instalado el sistema queremos (o necesitamos) cambiar la particin de intercambio, aqu tenemos los pasos que debemos dar. El comando utilizado para preparar una particin de intercambio es mkswap, cuya sintaxis es: mkswap -c <particin> <tamao>

32

Captulo 2. Instalacin

donde <particin> es el nombre de la particin de intercambio y <tamao> es el tamao de la particin, en bloques. Si el tamao se omite, mkswap lo asigna automticamente; es decir, que si al hacer la particin ya definimos el tamao correctamente, ser ms cmodo omitir el tamao. Por ejemplo, si su particin de intercambio es la /dev/hda3 y tiene 10336 bloques, teclee el comando: # mkswap -c /dev/hda3 10336 o la versin ms sencilla: # mkswap -c /dev/hda3 La opcin -c indica a mkswap que compruebe si hay bloques errneos en la particin mientras la crea. Si se usan varias particiones de intercambio, se necesitar ejecutar el comando mkswap apropiado para cada particin. Despus de preparar el rea de intercambio, hay que decirle al sistema que la use. Normalmente, el sistema comienza a usarla automticamente durante el arranque. El comando para hacerlo es swapon, y tiene el siguiente formato: swapon <partition> En el ejemplo anterior, para activar el espacio de intercambio en /dev/hda3, usaremos el comando: # swapon /dev/hda3

Creacin de los sistemas de archivos


Antes de que se puedan usar las particiones de Linux para almacenar ficheros, hay que crear los sistemas de archivos en ellas. La creacin de un sistema de archivos es anloga a formatear una particin en Windows u otros sistemas operativos. Hay varios tipos de sistemas de archivos disponibles en Linux. Cada tipo de sistema de archivos tiene su propio formato y caractersticas (como longitud del nombre de los ficheros, tamao mximo, etc). Adems, Linux soporta sistemas de archivos de terceros, como el de Windows. El tipo de sistema de archivos ms usado es el Sistema de Ficheros Extendido 2, o ext2fs. El ext2fs es uno de los sistemas ms eficientes y flexibles; permite hasta 256 caracteres en los nombres de los ficheros y tamaos de estos de hasta 4 Terabytes.

ESware Linux

33

El propio proceso de instalacin crea los sistemas de archivos de forma automtica. Si desea crear sus propios sistemas a mano, siga el mtodo que a continuacin describimos. Para crear un sistema de tipo ext2fs utilice el comando: mke2fs -c <particion> <tamao> donde <particion> es el nombre de la particin, y <tamao> es el tamao de la particin en bloques. Aqu, la opcin <tamao> acta igual que con mkswap;, si se omite el tamao, se obtiene automticamente. Por ejemplo, para crear un sistema de 82080 bloques en /dev/hda2, use el comando: # mke2fs -c /dev/hda2 82080 o la versin ms sencilla: # mke2fs -c /dev/hda2 Si quiere usar varios sistemas de archivos en Linux, necesitar repetir el comando mke2fs por cada sistema de archivos. Esto funciona exactamente igual para los disquetes y nuevos discos duros que se aadan posteriormente al sistema.

Reparticin no destructiva. Uso de fips


Bien, hasta aqu hemos utilizado con xito nuestra herramienta de particionado fdisk. La pega es que borrar particiones implica la prdida de los datos que anteriormente existieran en dichas particiones. El caso ms comn es que tengamos algn sistema previamente instalado y una nica particin. Y hasta es probable que queramos mantener los datos que tenemos. Cuando nos enfrentemos a esta situacin, debemos usar un software que sea capaz de redimensionar la particin existente sin destruccin de datos y programas. Las distribuciones Linux aportan una que funciona bastante bien para realizar esta tarea. Se llama fips y normalmente se encuentra en un directorio llamado /dosutils. Este programa es capaz de reducir el tamao de una particin primaria (no trabaja con particiones lgicas) y tampoco sirve para ampliar el tamao de una particin existente. Otro requisito es que los datos no estn fragmentados. Es decir, probablemente habr que defragmentar. Es necesario ejecutarlo desde una sesin de MS-DOS pura; no funciona desde una ventana de Windows. Lo primero que hace es comprobar la tabla de particiones y realiza algunos chequeos del sector de arranque; cuando comprueba que todo est bien, da la posibilidad de hacer una copia de seguridad del mbr por si algo sale mal. (Recomendable hacerlo.)

34

Captulo 2. Instalacin

El resto del proceso es fcil; nos presenta el tamao de la nueva particin junto al tamao que tendr la particin antigua. Con las flechas del cursor se pueden modificar hasta el resultado que deseemos. Se finaliza pulsando Intro. Fips nos muestra la nueva tabla de particiones y pide confirmacin o reedicin. Al confirmarlo con la tecla c, tendremos dos particiones en nuestro disco duro. En realidad tendremos la particin primaria que ya exista (reducida de tamao) y un nuevo espacio disponible para crear las particiones que necesitemos para Linux. (Consulte el uso de fdisk anteriormente en este captulo.) Lo siguiente es instalar el sistema operativo.

Instalacin del sistema operativo


Instalacin en modo grfico ESware Linux presenta un sencillo proceso de instalacin en modo grfico. Con la simple ayuda del ratn lograremos instalar completamente nuestro sistema Linux de una manera fcil y rpida. Novedades de la instalacin grfica El proceso de arranque de ESware Linux comienza con la deteccin del ratn y del sistema de vdeo de nuestra computadora. Si nuestra tarjeta grfica es detectada y el sistema puede mostrar una pantalla de al menos 256 colores, entraremos en una interfaz grfica de fcil uso. Como ventaja de este nuevo modo grfico respecto al modo tradicional tenemos un completo sistema de pantallas de ayuda ms cuidado y de fcil acceso. Cada seccin de la instalacin contiene una pgina de ayuda de cmoda lectura que nos gua en los pasos a dar, adems de aconsejarnos con sugerencias. En todo momento veremos en qu parte de la instalacin nos encontramos y qu partes quedan por completar, mediante una columna de pasos de instalacin en la parte izquierda de la pantalla. De esta manera tendremos una visin global de toda la instalacin. Para los usuarios ms avanzados, est presente en todo el proceso de instalacin un terminal grfico que lanzar un pequeo shell, dando la oportunidad de observar los procesos y determinados aspectos del estado del sistema (memoria, disco, particiones,).

Proceso de instalacin detallado


Consolas virtuales de texto y consola grfica de instalacin Una vez iniciado el modo grfico, dispondremos de siete consolas virtuales entre las que podremos alternar; cada una de ellas muestra informacin del proceso de instalacin. En

ESware Linux

35

la Tabla 2.2 mostramos las cinco consolas de texto (F1 a F5) y la consola grfica (F7) con el proceso de instalacin. Tabla 2.2. Teclas Ctrl+Alt+F1 Ctrl+Alt+F2 Ctrl+Alt+F3 Ctrl+Alt+F4 Ctrl+Alt+F5 Crtl+Alt+F7 Consolas disponibles durante el proceso de instalacin. Contenido Mensajes del programa de instalacin. Shell bash reducido. Log del programa de instalacin. Mensajes internos del kernel y mdulos. Salida de algunos programas. Entorno grfico con la GUI de instalacin.

36

Captulo 2. Instalacin

Seleccin de teclado En esta pantalla puede seleccionar el tipo de teclado que usar habitualmente en su sistema (vase la Figura 2.1). Por defecto se selecciona el ms extendido en nuestro pas.

Figura 2-1. Configuracin del teclado

ESware Linux

37

Seleccin del ratn El ratn es detectado en el inicio de la instalacin; por tanto, la seleccin predeterminada ser la ms adecuada a su sistema. No obstante, dispone de una amplia lista de ratones entre los que podr elegir si la deteccin no fue correcta (vase la Figura 2.2.).

Figura 2-2. Configuracin del ratn

38

Captulo 2. Instalacin

Tipo de instalacin En este punto puede elegir entre la actualizacin de un sistema ESware, ya sea una versin anterior o una reparacin de la versin actual, o instalar un sistema nuevo. La actualizacin realizar una comprobacin de los paquetes instalados y los sustituir con nuevas versiones; esto incluye todo el sistema X Window, kernel y dems partes base del sistema. Los archivos de configuracin sern salvaguardados en la medida de lo posible, creando copias de seguridad de los mismos con extensin .rpm. Tenemos cuatro alternativas en la instalacin de un nuevo sistema (vase la Figura 2.3): una instalacin personalizada, que nos da el mximo control (recomendada), y tres instalaciones ms automatizadas (estacin de trabajo, servidor y porttiles). Instalacin personalizada: configuraremos las particiones manualmente y decidiremos qu paquetes sern instalados y cules no.

Figura 2-3. Tipo de instalacin

ESware Linux

39

Instalacin para estacin de trabajo: este tipo de instalacin est indicado en sistemas con particiones Linux ya creadas (de un sistema anterior). Aprovechar las particiones ya creadas para instalar un nuevo sistema, con la consecuente prdida de datos de las mismas. Una seleccin concreta de paquetes ser instalada automticamente, ocupando un espacio aproximado de 500 MB. Instalacin para servidor: es la instalacin ms automatizada. Borrar toda la informacin de nuestro disco (o discos) y realizar un particionado del mismo a su conveniencia, realizando una instalacin de paquetes, tambin automatizada, con herramientas habituales en todo servidor de red. Instalacin para porttiles: es similar a la instalacin para una estacin de trabajo, cambiando la seleccin de paquetes, en favor de un sistema porttil.

40

Captulo 2. Instalacin

Particionado automtico El particionado automtico ocasionar la prdida de los datos existentes en el disco duro; una pantalla de aviso nos indicar de esta circunstancia. No obstante, las instalaciones para estacin de trabajo, servidor y porttil tambin permiten la configuracin manual del disco. Particionado del sistema La eleccin de las particiones de nuestro sistema es un paso importante en el proceso de instalacin. El nmero mnimo de particiones a realizar es dos (vase la Figura 2.4): una particin para el sistema Linux (particin Linux Native) y una particin de intercambio (Linux Swap). Es necesario indicar en qu particin se instalar el sistema estableciendo el punto de montaje como /. Para el resto de las particiones (salvo la swap) indicaremos los puntos de montaje que deseemos. Por ejemplo, si tenemos una particin msdos y queremos acceder a ella desde ESware Linux; la podemos montar en /dos.

Figura 2-4. Diskdruid

ESware Linux

41

Formateado de los discos El formateo de particiones implica la prdida de los datos de las mismas (vase la Figura 2.5). Esto es necesario en el caso de particiones recin creadas y puede ser interesante para instalaciones nuevas.

Figura 2-5. Dando formato a las particiones

42

Captulo 2. Instalacin

Instalacin de LILO Lilo (Linux Loader) es un excelente gestor de arranque que nos permite seleccionar el sistema operativo con el que iniciar cada vez la mquina (vase la Figura 2.6). El lugar habitual para instalarlo es el MBR (Master Boot Record); si utiliza otro gestor, lo puede instalar en el primer sector de la particin de arranque. Debe indicar los sistemas que desea incluir en el arranque poniendo las correspondientes etiquetas a cada uno de ellos.

Figura 2-6. Instalacin de Lilo

ESware Linux

43

Configuracin de la red Si tiene una red de rea local, debe configurar los parmetros IP de su puesto (vase la Figura 2.7). El rango de direcciones reservadas para LAN es de 192.168.0.0 a 192.168.255.255, usar una direccin de este rango le garantiza que no tendr conflictos si se conecta a Internet desde esta red. Si no conoce las direcciones que se usan en su red deber ponerse en contacto con el administrador del sistema. Para poder usar DHCP (asignacin dinmica de direcciones IP) necesita una mquina en su red que est configurada como servidor DHCP.

Figura 2-7. Configuracin de red

44

Captulo 2. Instalacin

Configuracin de la zona horaria Por defecto, la configuracin horaria est preparada para Europa/Madrid (vase la Figura 2.8). Si coincide con su zona, puede pasar a la pantalla siguiente. O entretenerse un rato pasando el ratn por el mapa mirando las flechitas

Figura 2-8. Configuracin de la zona horaria

ESware Linux

45

Contrasea de root y configuracin de cuentas de usuario La contrasea de root es la ms importante del sistema (vase la Figura 2.9). Es obligado introducir ms de seis caracteres y procure no usar palabras que estn en diccionarios para dificultar cualquier posible ataque. Desde esta pantalla puede, adems, agregar cuentas de otros usuarios.

Figura 2-9. Estableciendo la contrasea del usuario root (administrador del sistema)

Nota importante. Recuerde que no debe usar la cuenta de root habitualmente. Aada una cuenta de usuario y slo entre como root cuando realice tareas administrativas.

46

Captulo 2. Instalacin

Configuracin de autentificacin El sistema MD5 emplea una encriptacin ms fuerte para almacenar las contraseas (recomendado). Si decide utilizar Shadow password (tambin recomendado) tendr una medida de seguridad aadida en su sistema (vase la figura 2.10). nicamente deber activar NIS (Network Infomation Service) si est trabajando en una red en la que los puestos de trabajo se autentifican ante un servidor NIS.

Figura 2-10. Tipos de autentificacin

ESware Linux

47

Seleccin de los grupos de paquetes Tiene opcin de seleccionar los paquetes que se van a instalar (vase la Figura 2.11). Las novedades ms destacables son: * KDE 2 en su versin de desarrollo. Se puede instalar junto a KDE 1.1.2 sin que interfieran entre s. Se instala en /opt/kde2. * Paquete extra de seguridad. * Herramienta de configuracin PnP Lothar. Permite configurar sus dispositivos Plug and Play con un simple clic de ratn. * Herramientas especiales para porttiles. * Servidor WWW seguro! Apache SSL. * Servidores de bases de datos: PostGres, InterBase y MySQL.

Figura 2-11. Seleccin de paquetes

48

Captulo 2. Instalacin

* Administrador de servidores Webmin. (Va pginas web). * Herramientas para alta disponibilidad (Clustering). * Edicin avanzada para Latex.

ESware Linux

49

Seleccin de paquetes individuales Una vez seleccionados los paquetes, podr decidir qu software especfico se instalar (vase la Figura 2.12). (Slo si se activ la opcin Selecciona paquetes individualmente.) Dependencias sin resolver Se presentar una pantalla de dependencias no resueltas si ha seleccionado algn paquete que requiere tener otro instalado para su correcto funcionamiento. Confe en su consejo y pulse Aceptar.

Figura 2-12. Seleccin individual de paquetes

50

Captulo 2. Instalacin

Configuracin personalizada del sistema X Window Aqu puede probar la configuracin del servidor de ventanas y decidir si quiere entrar al sistema en modo grfico directamente (vase la Figura 2.13). Si la configuracin automtica no es de su agrado, puede retocarla hasta dejarla a su gusto. Lea la parte del manual dedicada a la configuracin de X Window si no tiene mucha experiencia.

Figura 2-13. Pantalla de configuracin de X

ESware Linux

51

Creacin del disco de arranque Altamente recomendable ! Quiz no llege a usarlo, pero si llegase a tener algn problema en su sistema, es posible que le permita recuperarlo (vase la Figura 2.14).

Figura 2-14. Creacin de un disquette de arranque

Instalacin terminada Puede reiniciar el sistema y empezar a trabajar/disfrutar de su nuevo y flamente ESware Linux.

52

Captulo 2. Instalacin

Captulo 3. El sistema operativo

Los nuevos usuarios de Linux pueden estar un poco perdidos ante la aparente complejidad del sistema que tienen ante s. Este captulo est dedicado a ellos. Veremos comandos para empezar a hacer cosas sencillas (y algunas no tan sencillas), conoceremos ntimamente al intrprete de comandos, el sistema de archivos dejar de ser un arcano ; en definitiva, lo necesario para dejar de ser nuevo usuario. Aunque este captulo seguir siendo un buen sitio donde volver a consultar cualquier duda. Adelante.

Conceptos bsicos de Linux


Linux es un sistema operativo multitarea y multiusuario. Esto significa que puede haber m de una persona usando un ordenador a la vez, cada uno de ellos ejecutando a su vez diferentes aplicaciones. Para que los usuarios puedan identificarse en el sistema, deben presentarse (login), proceso que consta de dos pasos: introducir el nombre de usuario (login) (el nombre con que ser identificado por el sistema), y una contrasea (password), la cual es su llave personal secreta para entrar en la cuenta. Como slo usted conoce su contrasea, nadie ms podr presentarse en el sistema con su nombre de usuario. En Linux, el administrador del sistema asignara el nombre de usuario y una contrasea inicial en el momento de crear la cuenta de usuario. Como usted es el administrador del sistema, debe configurar su propia cuenta antes de poder presentarse. Para el resto de las discusiones, usaremos el nombre de usuario Crispin. Adems, cada sistema Linux tiene un nombre del sistema (hostname) asignado. Este hostname le da nombre a la mquina, adems de ser una forma de personalizarla. El nombre del sistema es usado para identificar mquinas en una red, pero incluso aunque la mquina no est en red, debera tener su nombre. En nuestros ejemplos, el nombre del sistema ser Globus. Despus de acceder al sistema con nuestra cuenta, lo que vemos es el prompt o inductor de rdenes. En ESware Linux, el prompt est formado por: nombre del usuario @ el nombre de la maquina + el directorio actual +smbolo $ (# para el superusuario). Su apariencia es similar a:

ESware Linux

53

[Crispin@Globus /Crispin]$ (para el usuario Crispin) o bien [root@Globus /root]# (para el root) El prompt indica la disposicin para recibir instrucciones. Mientras no est presente en pantalla no se pueden introducir nuevas rdenes.

Creacin de una cuenta


Antes de poder usar el sistema, debe configurar una cuenta de usuario. Esto es necesario, porque no es buena idea usar la cuenta de root para los usos normales. La cuenta de root debera reservarse para el uso de comandos privilegiados y para el mantenimiento del sistema. Para crear su propia cuenta, necesita entrar en la cuenta de root y usar las denes useradd o adduser.

Presentacin en el sistema (loggin in)


En el momento de presentarse en el sistema, ver la siguiente lea de comandos en la pantalla: Globus login: Ahora, introduzca su nombre de usuario y pulse Introstro amigo Crispin, tecleara lo siguiente: Globus login: Crispin Password: Ahora introduzca la contrasea. sta no ser mostrada en la pantalla conforme se va tecleando, por lo que debe teclear cuidadosamente. Si introduce una contrasea incorrecta, se mostrar el siguiente mensaje: Login incorrect y deber intentarlo de nuevo.

54

Captulo 1. Introduccin

Una vez que ha introducido correctamente el nombre de usuario y la contrasea, est oficialmente presentado en el sistema y libre para comenzar a trabajar.

Consolas virtuales
La consola del sistema es el monitor y teclado conectado directamente al sistema. (Como Linux es un sistema operativo multiusuario, puede tener otros terminales conectados a puertos serie del sistema, pero stos no sern la consola.) Linux proporciona acceso a consolas virtuales (o VC), las cuales le permitirn tener ms de una sesin de trabajo activa desde la consola a la vez. Para demostrar esto, entre en su sistema (como hemos visto antes). Ahora pulse Alt+F2. Debera ver login: de nuevo. Est viendo la segunda consola virtual; ha entrado en el sistema por la primera. Para volver a la primera VC, pulse Alt+F1 Voila! ha vuelto a la primera sesin. Un sistema ESware Linux recin instalado le permite acceder a las primeras seis VC, usando Alt+F1 a Alt+F6. A partir de la nmero 7 se reservan para el entorno grfico. Como puede ver, el uso de VC es muy potente ya que puede estar trabajando en diferentes VC a la vez. Aunque el uso de VC es algo limitado (despus de todo, slo puede mirar una VC cada vez), esto debera darle una idea de las capacidades multiusuario del sistema. Mientras est trabajando en la VC1, puede conmutar a la VC2 y comenzar a trabajar en otra cosa.

Intrpretes de comandos y comandos


En la mayora de las exploraciones en el mundo de Linux, estar hablando con el sistema a travs del uso de un intrprete de comandos. Un intrprete de comandos es simplemente un programa que lee las entradas del usuario (por ejemplo las rdenes que teclea) y las traduce a instrucciones que el sistema es capaz de entender y utilizar. El intrprete de comandos es slo una de las interfaces con Linux. Hay muchas interfaces posibles, como el sistema X Windows, el cual le permite ejecutar comandos usando el ratn y el teclado. Tan pronto como entra en el sistema, ste arranca un interprete de comandos, momento a partir del cual ya puede teclear rdenes al sistema. Veamos un ejemplo rpido. Aqu, Crispin entra en el sistema y es situado en el intrprete de comandos Globus login: Crispin Password: contrasea_de_Crispin Welcome to Globus! [Crispin@Globus /Crispin]$

ESware Linux

55

[Crispin@Globus /Crispin]$ es el prompt del intrprete de comandos, indicando que est listo para recibir rdenes.

Sintaxis de una orden


orden -opciones argumentos La orden va en minsculas, las opciones suelen ir precedidas por un guin (-) y pueden ser ms de una; los argumentos pueden ser varios separados por espacios. Algunas rdenes no admiten opciones, otras precisan dos tipos de argumentos (origen y destino), otras no admiten ni opciones ni argumentos. Tambin nos referiremos a las rdenes a menudo como comandos. Por ejemplo: [Crispin@Globus /Crispin]$ ls -nl datos facturas muestra informacin en formato largo de los archivos de datos, usando el nmero de usuario-propietario (esto se explicar ms adelante). La orden es ls, las opciones son n y l, y los argumentos son datos y facturas. Otro ejemplo es el siguiente: [Crispin@Globus /Crispin]$ cp datos facturas Crea una copia del archivo datos con el nombre facturas. la orden es cp, no tiene opciones, y los argumentos son datos (origen) y facturas (destino). Otro ejemplo ms: [Crispin@Globus /Crispin]$ clear la orden es clear, no tiene opciones y tampoco argumentos.

Qu ocurre cuando tecleamos una orden?


Cuando teclea una orden, el intrprete de comandos hace varias cosas. Primero de todo, busca el nombre de la orden y comprueba si es una orden interna. (Es decir, una rden que el propio intrprete de comandos sabe ejecutar por s mismo. Hay bastantes rdenes de este tipo que veremos mas adelante.) El intrprete de comandos tambin comprueba si la orden es un alias o nombre sustituto de otra orden. Si no se cum-

56

Captulo 3. El sistema operativo

ple ninguno de estos casos, el intrprete de comandos busca el programa en el PATH y lo ejecuta pasndole los argumentos especificados en la lnea de comandos. Qu ocurre si tecleamos una orden y el intrprete de comandos no puede encontrar el programa de ese nombre? Bien, probmoslo: [Crispin@Globus /Crispin]$ saluda Crispin saluda: command not found [Crispin@Globus /Crispin]$ Bastante simple; si no se puede encontrar el programa con el nombre dado en la orden (aqu saluda), se muestra un mensaje de error que debera de ser autoexplicativo. A menudo ver este mensaje de error si se equivoca al teclear una orden o si el directorio donde est el programa a ejecutar no est declarado en el PATH. Esto nos lleva a otra pregunta: PATH? Es una variable del sistema. En el PATH se indican las rutas, es decir, los directorios donde el interprete de comandos debe buscar las rdenes del sistema. En otro momento del curso se ver ms sobre las variables del sistema.

Salida del sistema


Antes de profundizar ms, deberamos ver cmo salir del sistema. Desde la lnea de rdenes usaremos la orden exit para salir. Hay otras formas, pero sta es la ms fcil. [Crispin@Globus /Crispin]$ exit Con exit se sale del sistema, o lo que es lo mismo, se cierra la sesin abierta por esa cuenta. Habr observado que estamos de nuevo ante el login. Los comandos ms habituales para apagar el sistema son halt y shutdown. Slo los puede ejecutar el administrador (root).

Cmo cambiar la contrasea


Tambin debe asegurarse de la forma de cambiar su contrasea. La orden passwd le pedir su contrasea vieja y la nueva. Volver a pedir una segunda vez la nueva para validarla. Tenga cuidado de no olvidar su contrasea (si eso ocurre, slo podr cambiarla el administrador del sistema, es decir accediendo con la cuenta root).

ESware Linux

57

Ficheros y directorios
Bajo la mayora de los sistemas operativos (Linux incluido), existe el concepto de fichero, el cual es un conjunto de informacin al que se le ha asignado un nombre (llamado nombre del fichero). Ejemplos de fichero son un mensaje de correo, o un programa que puede ser ejecutado. Esencialmente, cualquier cosa salvada en el disco es guardada como un fichero individual. Los ficheros son identificados por sus nombres. Por ejemplo, el fichero que contiene su historial podra ser salvado con el nombre historia-imprimir. Estos nombres usualmente identifican el fichero y su contenido de alguna forma significativa para usted. No hay un formato estndar para los nombres de los ficheros como lo hay en MS-DOS y en otros sistemas operativos; en general, estos nombres pueden contener cualquier carcter (excepto /), y estn limitados a 256 caracteres de longitud. Con el concepto de fichero aparece el concepto de directorio. Un directorio es simplemente una coleccin de ficheros. Puede ser considerado como una carpeta que contiene muchos ficheros diferentes. Los directorios tambin tienen nombre con el que los podemos identificar. Adems, los directorios mantienen una estructura de rbol; es decir, los directorios pueden contener otros directorios. Un fichero puede ser referenciado por su nombre y una ruta de acceso, conjunto constituido por su nombre, antecedido por el nombre del directorio que lo contiene. Por ejemplo, supongamos que Crispin tiene un directorio de nombre para_imprimir que contiene tres ficheros: historia-final, captulo-1 y tesis. (Cada uno de los tres ficheros contiene informacin sobre tres de los proyectos en los que Crispin esta trabajando). Para referirse al fichero captulo-1, Crispin puede especificar su ruta de acceso: para_imprimir/captulo-1 Como puede ver, el directorio y el nombre del fichero van separados por un carcter /. Por esta razn, los nombres de fichero no pueden contener este carcter. Como hemos mencionado, los directorios pueden anidarse uno dentro de otro. Por ejemplo, supongamos que Crispin tiene otro directorio dentro de para_imprimir llamado borradores. La ruta de acceso de este fichero sera: para_imprimir/notas/borradores Por tanto, la ruta de acceso realmente es el camino que se debe tomar para localizar a un fichero. El directorio sobre un subdirectorio dado es conocido como el directorio padre. Aqu, el directorio para_imprimir es el padre del directorio notas.

58

Captulo 3. El sistema operativo

El rbol de directorios
Los sistemas Linux tienen una distribucin de ficheros estndar, de forma que recursos y ficheros puedan ser fcilmente localizados. Esta distribucin forma el rbol de directorios (vase la Figura 3.1), el cual comienza en el directorio /, tambin conocido como directorio raz. Directamente por debajo de / hay algunos subdirectorios importantes: /bin, /etc, /dev y /usr, entre otros. stos a su vez contienen otros directorios con ficheros de configuracin del sistema, programas, etc. En particular, cada usuario tiene un directorio home. ste es el directorio en el que el usuario guardar sus ficheros. En los ejemplos anteriores, todos los ficheros de Crispin (como captulo-1 e historia-final) estaban contenidos en el directorio home de Crispin. Usualmente, los directorios home de los usuarios cuelgan de /home y son nombrados con el nombre del usuario al que pertenecen. Por tanto, el directorio home de Crispin es /home/Crispin.

Figura 3-1. rbol de directorios

ESware Linux

59

En la figura se muestra un rbol de directorios de ejemplo. ste debera darle una idea de cmo est organizado en su sistema el rbol de directorios.

Explorando el sistema de ficheros


El sistema de ficheros es la coleccin de ficheros y la jerarqua de directorios de su sistema. Echemos un vistazo a cada uno de estos directorios.

/bin /bin es la abreviacin de binaries, o ejecutables. Es donde residen la mayora de los programas esenciales del sistema. Use la orden ls -F /bin para listar los ficheros. Podr ver algunas rdenes que reconocer, como cp, ls y mv. stos son los programas para estas rdenes. Cuando usa la orden cp esta ejecutando el programa /bin/cp. Usando ls -F ver que la mayora (si no todos) los ficheros de /bin tienen un asterisco (*) aadido al final de sus nombres. Esto indica que son ficheros ejecutables.

/dev El siguiente es /dev. Echmosle un vistazo de nuevo con ls -F. Los ficheros en /dev son conocidos como controladores de dispositivo (device drivers) y se utilizan para acceder a los dispositivos del sistema y recursos, como discos duros, modems, memoria, etc. Por ejemplo, de la misma forma que puede leer datos de un fichero, puede leerlos desde la entrada del ratn leyendo /dev/mouse. Los ficheros que comienzan su nombre con fd son controladores de disqueteras. fd0 es la primera disquetera, fd1 la segunda. Ahora, alguien astuto se dar cuenta de que hay ms controladores de dispositivo para disqueteras de los que hemos mencionado. stos representan tipos especficos de discos. Por ejemplo, fd1H1440 acceder a discos de 3.5 de alta densidad en la disquetera 1. Aqu tenemos una lista de algunos de los controladores de dispositivo ms usados. Ntese que incluso aunque puede que no tenga alguno de los dispositivos listados, tendr entradas en dev de cualquier forma. /dev/console hace referencia a la consola del sistema, es decir, al monitor conectado directamente a su sistema. Los dispositivos /dev/ttyS y /dev/cua son usados para acceder a los puertos serie. Por ejemplo, /dev/ttyS0 hace referencia a COM1 bajo MS-DOS. Los dispositivos /dev/cua son callout, los cuales son usados en conjuncin con un modem.

60

Captulo 3. El sistema operativo

Los nombres de dispositivo que comienzan por hd acceden a discos duros. /dev/hda hace referencia a la totalidad del primer disco duro, mientras que /dev/hda1 hace referencia a la primera particin en /dev/hda. Los nombres de dispositivo que comienzan con sd son dispositivos SCSI. Si tiene un disco duro SCSI, en lugar de acceder a l mediante /dev/hda, deber acceder a /dev/sda. Las cintas SCSI son accedidas va dispositivos st y los CD-ROM SCSI va sr. Los nombres que comienzan por lp acceden a los puertos paralelo. /dev/lp0 hace referencia a LPT1 en el mundo MS-DOS. /dev/null es usado como agujero negro. Cualquier dato enviado a este dispositivo desaparece. Para qu puede ser til esto? Bien, si desea suprimir la salida por pantalla de una orden, podra enviar la salida a /dev/null. Veremos ejemplos sobre esto despus. Los nombres que comienzan por /dev/tty hacen referencia a consolas virtuales de su sistema (accesibles mediante las teclas <Alt+F1>,<Alt+F2>, etc). /dev/tty1 hace referencia a la primera VC, /dev/tty2 a la segunda, etc. Los nombres de dispositivo que comienzan con /dev/pty son pseudo-terminales. stos son usados para proporcionar un terminal a sesiones remotas. Por ejemplo, si su mquina est en una red, telnet de entrada usara uno de los dispositivos /dev/pty. /etc /etc contiene una serie de ficheros de configuracin del sistema. stos incluyen /etc/passwd (la base de datos de usuarios), /etc/rc (guiones de inicializacin del sistema), etc. /sbin /sbin se usa para almacenar programas esenciales del sistema, que usar el administrador del mismo. /home /home contiene los directorios home de los usuarios. Por ejemplo, /home/Crispin es el directorio del usuario Crispin. En un sistema recin instalado, no habr ningn usuario en este directorio. /lib /lib contiene las imgenes de las libreras compartidas. Estos ficheros contienen cdigo que compartirn muchos programas. En lugar de que cada programa contenga una copia

ESware Linux

61

propia de las rutinas compartidas, stas son guardadas en un lugar comn, en /lib. Esto hace que los programas ejecutables sean menores y reduce el espacio usado en disco. /proc /proc es un sistema de ficheros virtual. Los ficheros que contiene realmente residen en memoria, no en disco. Hacen referencia a varios procesos que corren en el sistema, y le permiten obtener informacin acerca de qu programas y procesos estn ejecutndose en un momento dado. /tmp Muchos programas tienen la necesidad de generar cierta informacin temporal y guardarla en un fichero temporal. El lugar habitual para esos ficheros es /tmp. /usr /usr es un directorio muy importante. Contiene una serie de subdirectorios que contienen a su vez algunos de los ms importantes y tiles programas y ficheros de configuracin usados en el sistema. Los directorios descritos arriba son esenciales para que el sistema est operativo, pero la mayora de las cosas que se encuentran en /usr son opcionales para el sistema. De cualquier forma, son estas cosas opcionales las que hacen que el sistema sea til e interesante. Sin /usr, tendra un sistema aburrido, slo con programas como cp y ls. /usr contiene la mayora de los paquetes grandes de programas y sus ficheros de configuracin. /usr/X11R6 /usr/X11R6 contiene el sistema X Window si lo instala. El sistema X Window es un entorno grfico grande y potente, el cual proporciona un gran nmero de utilidades y programas grficos, mostrados en ventanas en su pantalla. Si est familiarizado con los entornos Microsoft Windows o Macintosh, X Window le ser muy familiar. El directorio /usr/X11R6 contiene todos los ejecutables de X Window, ficheros de configuracin y de soporte. /usr/bin /usr/bin es el almacn real de programas del sistema Linux. Contiene la mayora de los programas que no se encuentran en otras partes como /bin.

62

Captulo 3. El sistema operativo

/usr/etc Como /etc contiene diferentes ficheros de configuracin y programas del sistema, /usr/etc contiene incluso ms que el anterior. En general, los ficheros que se encuentran en /usr/etc/ no son esenciales para el sistema, a diferencia de los que se encuentran en /etc, que s lo son.

/usr/include /usr/include contiene los ficheros de cabecera para el compilador de C. Estos ficheros (la mayora de los cuales terminan en .h, de header) declaran estructuras de datos, subrutinas y constantes usadas en la escritura de programas en C. Los ficheros que se encuentran en /usr/include/sys son generalmente usados en la programacin de Linux a nivel de sistema. Si est familiarizado con el lenguaje de programacin C, aqu encontrar los ficheros de cabecera como stdio.h, el cual declara funciones como printf().

/usr/g++-include /usr/g++-include contiene ficheros de cabecera para el compilador de C++ (muy parecido a /usr/include).

/usr/lib /usr/lib contiene las libreras stub y static equivalentes a las encontradas en /lib. Al compilar un programa, ste es enlazado con las libreras que se encuentran en /usr/lib, las cuales dirigen al programa a buscar en /lib cuando necesita el cdigo de la librera. Adems, varios programas guardan ficheros de configuracin en /usr/lib.

/usr/local /usr/local es muy parecido a /usr: contiene programas y ficheros no esenciales para el sistema, pero que hacen el sistema ms divertido y excitante. En general, los programas que se encuentran en /usr/local son especficos de su sistema, esto es, el directorio /usr/local difiere bastante entre sistemas Linux. Aqu encontrar programas grandes como TEX (sistema de formateo de documentos) y Emacs (gran y potente editor), si los instala.

ESware Linux

63

/usr/man Este directorio contiene las pginas de manual. Hay un directorio para cada seccin de las paginas (use la orden man man para ms detalles). Por ejemplo, /usr/man/man1, /usr/man/man2, etc. /usr/src /usr/src contiene el cdigo fuente (programas por compilar) de varios programas de su sistema. El ms importante es /usr/src/Linux, el cual contiene el cdigo fuente del ncleo de Linux. /var /var contiene directorios que a menudo cambian su tamao o tienden a crecer. Muchos de estos directorios solan residir en /usr, pero desde que estamos tratando de dejarlo relativamente inalterable, los directorios que cambian a menudo han sido llevados a /var. Algunos de estos directorios son: /var/adm /var/adm contiene varios ficheros de inters para el administrador del sistema, especficamente histricos del sistema, los cuales recogen errores o problemas con el sistema. Otros ficheros guardan las sesiones de presentacin en el sistema, as como los intentos fallidos. /var/spool /var/spool contiene ficheros que van a ser pasados a otro programa. Por ejemplo, si su mquina est conectada a una red, el correo de llegada ser almacenado en /var/spool/Correo hasta que lo lea o lo borre. Artculos nuevos de las noticias tanto salientes como entrantes, pueden encontrarse en /var/spool/news, etc.

Directorio de trabajo actual


En cualquier momento, las rdenes que teclee al intrprete de comandos son dadas en trminos de su directorio de trabajo actual. Puede pensar en su directorio actual de tra-

64

Captulo 3. El sistema operativo

bajo como en el directorio en el que actualmente est situado. Cuando entra en el sistema, su directorio de trabajo se inicializa a su directorio home: /home/Crispin en nuestro caso. En cualquier momento que se refiera a un fichero, puede hacerlo en relacin a su directorio de trabajo actual, en lugar de especificar la ruta de acceso completa del fichero. Vemos un ejemplo. Crispin tiene el directorio para_imprimir, y para_imprimir contiene el fichero historia-final. Si Crispin quiere echar un vistazo a ese fichero, puede usar la orden: [Crispin@Globus /Crispin]$ more /home/Crispin/para_imprimir/historia-final La orden more simplemente muestra el fichero, pantalla a pantalla. Pero, como el directorio de trabajo actual de Crispin es /home/Crispin, podra haberse referido al fichero de forma relativa a su directorio de trabajo actual. La orden sera: [Crispin@Globus /Crispin]$ more para_imprimir/historia-final Por tanto, si comienza el nombre de un fichero (como para_imprimir/final) con un carcter distinto a /, el sistema supone que se est refiriendo al fichero con su posicin relativa a su directorio de trabajo. Esto es conocido como ruta de acceso relativa. Por otra parte, si comienza el nombre del fichero con /, el sistema interpreta esto como una ruta de acceso completa es decir, la ruta de acceso al fichero completa desde el directorio raz, /. Esto es conocido como ruta de acceso absoluta.

Refirindose al directorio home


Podemos referirnos al directorio home usando el carcter de la tilde (~). Por ejemplo, la orden: [Crispin@Globus /Crispin]$ more ~/para_imprimir/historia-final es equivalente a: [Crispin@Globus /Crispin]$ more /home/Crispin/para_imprimir/historia-final El carcter ~ es simplemente sustituido por el intrprete de comandos con el nombre del directorio home. Adems, tambin puede especificar otros directorios home de usuarios con la tilde. La ruta ~Goliat/facturas es traducida por el intrprete de rdenes a /home/Goliat/facturas (si /home/Goliat es el directorio home de Goliat). El uso de la

ESware Linux

65

tilde es simplemente un atajo; no existe ningn directorio llamado ~: es simplemente una ayuda sintctica proporcionada por el intrprete de comandos.

Cosas que podemos hacer (comandos bsicos)


Antes de comenzar es importante destacar que todos los nombres de ficheros y comandos son case-sensitive (que hacen distincin entre maysculas y minsculas, a diferencia de otros sistemas operativos). Por ejemplo, el comando make es diferente a Make o MAKE. Lo mismo ocurre en el caso de nombres de ficheros o directorios. Moverse por el entorno Ahora que ya podemos presentarnos al sistema como usuarios y sabemos cmo indicar ficheros con su ruta completa, cmo podemos cambiar nuestro directorio de trabajo? La orden para movernos por la estructura de directorios es cd, abreviacin de cambio de directorio. Hay que destacar que la mayora de las rdenes Linux ms usadas son de dos o tres letras. La forma de uso de la orden cd es: cd <directorio> donde <directorio> es el nombre del directorio al que queremos ir. Como dijimos, al entrar al sistema comenzamos en el directorio home. Si Crispin quiere ir al subdirectorio para_imprimir, debera usar la orden: [Crispin@Globus /Crispin]$ cd para_imprimir [Crispin@Globus /para_imprimir]$ Como puede ver, la lnea de comandos de Crispin cambia para mostrar su directorio actual de trabajo. Ahora que ya est en el directorio para_imprimir puede echarle un vistazo a su fichero historia-final con el comando: [Crispin@Globus /para_imprimir]$ more historia-final Ahora Crispin est en el subdirectorio para_imprimir. Para volver al directorio padre de ste, usar la orden: [Crispin@Globus /para_imprimir]$ cd.. [Crispin@Globus /Crispin]$

66

Captulo 3. El sistema operativo

(Dese cuenta del espacio entre cd y ..). Cada directorio tiene una entrada de nombre .., la cual se refiere al directorio padre. De igual forma, existe en cada directorio la entrada ., la cual se refiere a s mismo. As que el comando siguiente nos deja donde estamos: [Crispin@Globus /para_imprimir]$ cd. [Crispin@Globus /Crispin]$ Entonces, para qu sirve? Enseguida lo veremos, un poco de paciencia. Tambin pueden usarse nombres con la ruta de acceso absoluta en la orden cd. Para ir al directorio de Goliat con cd, introduciremos la siguiente orden: [Crispin@Globus /para_imprimir]$ cd /home/Goliat [Crispin@Globus /Goliat]$ Tambin, el uso de cd sin argumentos nos llevar a nuestro directorio de origen. [Crispin@Globus /Goliat]$ cd [Crispin@Globus /Crispin]$ Consultar el contenido de los directorios Ahora que ya sabe cmo moverse por los directorios, probablemente pensar: Y bien? El simple movimiento por el rbol de directorios es poco til; necesitamos un nuevo comando, ls. ls muestra por el terminal la lista de ficheros y directorios; por defecto, los del directorio activo. Por ejemplo: [Crispin@Globus /Crispin]$ ls Correo facturas para_imprimir [Crispin@Globus /Crispin]$ Aqu podemos ver que Crispin tiene tres entradas en su directorio actual: Correo, facturas y para_imprimir. Esto no nos dice demasiado; son ficheros o directorios? Podemos usar la opcin -F de la orden ls para obtener ms informacin. [Crispin@Globus /Crispin]$ ls -F Correo/

ESware Linux

67

facturas/ para_imprimir/ [Crispin@Globus /Crispin]$ Por el carcter / aadido a cada nombre sabemos que las tres entradas son subdirectorios. La orden ls -F puede tambin aadir al final un asterisco; esto indica que es un fichero ejecutable. Si ls -F no aade nada, entonces es un fichero normal, es decir, no es ni un directorio ni un ejecutable. Por lo general, cada orden Linux puede tomar una serie de opciones definidas en forma de argumentos. stos usualmente comienzan con el carcter -, como vimos antes con ls -F. La opcin -F le dice a ls que d ms informacin sobre el tipo de ficheros, en este caso aadiendo un carcter / detrs de cada nombre de directorio. Si a ls le pasamos un nombre de directorio, mostrar el contenido de ese directorio. [Crispin@Globus /Crispin]$ ls -F para_imprimir captulo-1 historia-final tesis notas/ [Crispin@Globus /Crispin]$ Para ver un listado ms interesante, veamos el contenido del directorio del sistema /etc. [Crispin@Globus /Crispin]$ ls /bin Vayamos al directorio raz con cd.. y desde all vayamos al directorio /usr/bin. [Crispin@Globus [Crispin@Globus [Crispin@Globus [Crispin@Globus [Crispin@Globus /Crispin]$ cd.. /home$ cd.. /$ cd usr /usr$ cd bin /usr/bin$

Tambin podemos movernos dentro de directorios en mltiples pasos, como en cd /usr/bin. Trate de moverse por varios directorios usando ls y cd. En algunos casos podr encontrarse el desagradable mensaje de error Permission denied. Esto simplemente es debido a cuestiones de seguridad de Linux. Para poder moverse o listar un directorio debe de tener permisos para poder hacerlo. Hablaremos sobre ello ms adelante.

68

Captulo 3. El sistema operativo

Crear directorios nuevos Es el momento de aprender a crear directorios. Para ello se usa la orden mkdir. Pruebe lo siguiente: [Crispin@Globus [Crispin@Globus Correo/ cursos/ facturas/ para_imprimir/ [Crispin@Globus [Crispin@Globus [Crispin@Globus /Crispin]$ mkdir cursos /Crispin]$ ls -F

/Crispin]$ cd cursos /cursos]$ ls /cursos]$

Enhorabuena! Acaba de crear un directorio nuevo y moverse a el. Como no hay ningn fichero en el directorio nuevo, veamos como copiar ficheros desde un lugar a otro. Copiar ficheros La copia de ficheros es efectuada por la orden cp: [Crispin@Globus /cursos]$ [Crispin@Globus /cursos]$ [Crispin@Globus /cursos]$ shells termcap [Crispin@Globus /cursos]$ [Crispin@Globus /cursos]$ bells shells termcap [Crispin@Globus /cursos]$ cp /etc/termcap. cp /etc/shells. ls -F cp shells bells ls -F

La orden cp copia los ficheros listados en la linea de comandos al fichero o directorio pasado como ultimo argumento. Ntese como se usa el directorio . para referirnos al directorio actual. Mover ficheros La orden mv mueve ficheros en lugar de copiarlos. La sintaxis es muy sencilla. [Crispin@Globus /cursos]$ mv termcap sells [Crispin@Globus /cursos]$ ls -F

ESware Linux

69

bells sells shells [Crispin@Globus /cursos]$ Ntese como termcap ya no existe, en su lugar esta el fichero sells. Esta orden puede usarse para renombrar ficheros, como acabamos de hacer, pero tambin para mover ficheros a directorios diferentes. Nota: mv y cp sobreescribirn los ficheros destino (si ya existen) sin consultar. Sea cuidadoso cuando mueva un fichero a otro directorio: puede haber ya un fichero con el mismo nombre que ser sobrescrito.

Borrar ficheros y directorios Para borrar un fichero, use la orden rm (rm viene de remove). [Crispin@Globus /cursos]$ rm bells sells [Crispin@Globus /cursos]$ ls -F shells [Crispin@Globus /cursos]$ Nos hemos quedado solo con el fichero shells, pero no nos quejaremos. Ntese que rm por defecto no preguntara antes de borrar un fichero luego, sea cuidadoso. Una orden relacionada con rm es rmdir. Esta orden borra un directorio, pero solo si esta vaco. Si el directorio contiene ficheros o subdirectorios, rmdir se quejara. Esto es una forma de evitar borrar accientalmente el contenido de los directorios y subdirectorios. Mirar el contenido de los ficheros Las ordenes more y cat son usadas para ver el contenido de ficheros. More muestra el fichero pantalla a pantalla mientras que cat lo muestra entero de una vez. Para ver el contenido del fichero shells podemos usar la orden [Crispin@Globus /cursos]$ more shells Por si esta interesado en el contenido de shells, es una lista de interpretes de comandos validos disponibles en el sistema. En la mayora de los sistemas incluye /bin/sh, /bin/bash y /bin/csh. Hablaremos sobre los diferentes interpretes de comandos mas adelante.

70

Captulo 3. El sistema operativo

Durante la ejecucin de more pulse <Space> para avanzar a la pagina siguiente y <b> para_volver a la pagina anterior. Hay otros comandos disponibles, los citados son solo los mas bsicos. <q> finalizara la ejecucin de more. Salga de more y pruebe cat /etc/termcap. El texto probablemente pasara demasiado rpido como para poder leerlo. El nombre cat viene de concatenate, que es para lo que realmente sirve el programa. La orden cat puede ser usada para concatenar el contenido de varios ficheros y guardar el resultado en otro fichero. Esto se discutir mas adelante. Ayuda! Linux proporciona una utilidad conocida como paginas de manual. Estas paginas contienen documentacin en linea para todas las ordenes del sistema, recursos, ficheros de configuracin, etc. La orden usada para acceder a las paginas de manual es man. Por ejemplo, si esta interesado en conocer otras opciones de la orden ls, puede escribir: [Crispin@Globus /Crispin]$ man ls y le ser mostrada la pagina de manual para ls. Desafortunadamente la mayora de las paginas de manual han sido escritas por gente que ya conoca lo que la orden o recurso hacia, por esto, las paginas de manual usualmente solo contienen detalles tcnicos de la orden sin ningn tipo de tutoral de uso. Pese a esto, estas paginas son una gran fuente de informacin que permiten refrescar la memoria si olvidamos la sintaxis de un comando. Igualmente, estas paginas le darn mucha informacin sobre rdenes que no trataremos en este libro. Le sugiero que pruebe man con los comandos que ya hemos tratado y con los que vayamos introduciendo. Notara que alguno de los comandos no tiene pagina de manual. Esto puede ser debido a diferentes motivos. En primer lugar, las paginas no han sido escritas aun (el Proyecto de Documentacin de Linux es tambin el responsable de las paginas de manual). En segundo lugar, la orden puede ser interna del interprete de comandos, o un alias, en cuyo caso no tendrn una pagina propia. Un ejemplo es la orden cd la cual es interna del interprete de comandos. El propio interprete de comandos es quien procesa cd no hay un programa que se llame cd. Sumario de Ordenes Bsicas Esta seccin introduce algunas de las ordenes bsicas mas tiles de un sistema Linux, incluidas las ya cubiertas en las secciones anteriores. Recuerde que las opciones usualmente comienzan con - y en la mayora de los casos se pueden aadir mltiples opciones de una letra con un nico -. Por ejemplo, en lugar de usar ls -l -F es posible usar ls -lF.

ESware Linux

71

En lugar de listar todas las opciones disponibles para cada uno de los comandos solo hablaremos de aquellas mas tiles o importantes. De hecho, la mayora de las ordenes tienen un gran numero de opciones (muchas de las cuales nunca usar). Puede utilizar man para ver las paginas de manual de cada orden, la cual mostrara la lista completa de opciones disponibles. Ntese tambin, que la mayora de las ordenes toman una lista de ficheros o directorios como argumentos, denotados como <fichero1> <ficheroN>. Por ejemplo, la orden cp toma como argumentos la lista de ficheros a copiar, seguidos del fichero o directorio destino. Cuando se copia mas de un fichero, el destino debe de ser un directorio. cd Cambia el directorio de trabajo actual. Sintaxis: cd <directorio> <directorio> es el directorio al que cambiamos. (. se refiere al directorio actual, .. al directorio padre.) Ejemplo: cd../cursos pone../cursos como directorio actual. ls Muestra informacin sobre los ficheros o directorios indicados. Sintaxis: ls <fichero1> <fichero2><ficheroN> Donde <fichero1> a <ficheroN> son los ficheros o directorios a listar. Opciones: Hay mas opciones de las que podra suponer. Las mas usadas comnmente son: -F (usada para mostrar informacin sobre el tipo de fichero), y -l (da un listado largo incluyendo tamao, propietario, permisos, etc. Trataremos esto en detalle mas adelante.) Ejemplo: ls -lF /home/Crispin mostrara el contenido del directorio /home/Crispin. cp Copia fichero(s) en otro fichero o directorio. Sintaxis: cp <fichero1> <fichero2><ficheroN> <destino> Donde <fichero1> a <ficheroN> son los ficheros a copiar, y <destino> es el fichero o directorio destino. Ejemplo: cp../precios presupuestos copia el fichero../precios al fichero o directorio presupuestos. mv Mueve fichero(s) a otro fichero o directorio. Es equivalente a una copia seguida del borrado del original. Puede ser usado para renombrar ficheros. Sintaxis: mv <fichero1> <fichero2><ficheroN> <destino> Donde <fichero1> a <ficheroN> son los ficheros a mover y <destino> es el fichero o directorio destino. Ejemplo: mv../precios presupuestos mueve el fichero../precios al fichero o directorio presupuestos.

72

Captulo 3. El sistema operativo

rm Borra ficheros. Sintaxis: rm <fichero1> <fichero2><ficheroN> Donde <fichero1> a <ficheroN> son los nombres de los ficheros a borrar. Opciones: -i pedir confirmacin antes de borrar un fichero. Ejemplo: rm -i /home/Crispin/presupuestos /home/Crispin/precios borra los ficheros presupuestos y precios en /home/Crispin. mkdir Crea directorios nuevos. Sintaxis: mkdir <dir1> <dir2><dirN> Donde <dir1> a <dirN> son los directorios a crear. Ejemplo: mkdir /home/Crispin/test crea el directorio test colgando de /home/Crispin. rmdir Borra directorios (vacos). Al usar rmdir, el directorio de trabajo actual no debe de estar dentro del directorio a borrar. Sintaxis: rmdir <dir1> <dir2><dirN> Donde <dir1> a <dirN> son los directorios a borrar. borra el directorio Ejemplo: rmdir /home/Crispin/para_imprimir /home/Crispin/para_imprimir si esta vaco. man Muestra la pagina de manual del comando o recurso (cualquier utilidad del sistema que no es un comando, como funciones de librera) dado. Sintaxis: man <command> Donde <command> es el nombre del comando o recurso sobre el que queremos obtener la ayuda Ejemplo: man ls muestra ayuda sobre la orden ls. Opciones: -a mostrar todas las pginas del manual relacionadas con ese comando. more Muestra el contenido de los ficheros indicados, (una pantalla cada vez). Sintaxis: more <fichero1> <fichero2><ficheroN> Donde <fichero1> a <ficheroN> son los ficheros a mostrar. Ejemplo: more para_imprimir/historia-final muestra por el terminal el contenido del fichero para_imprimir/historia-final. cat Concatena ficheros, cat tambin es usado para mostrar el contenido completo de un fichero. Sintaxis: cat <fichero1> <fichero2><ficheroN> Donde <fichero1> a <ficheroN> son los ficheros a mostrar. Ejemplo: cat facturas_de_HFL muestra por el terminal el contenido del fichero facturas_de_HFL.

ESware Linux

73

echo Enva al terminal los argumentos pasados. Sintaxis: echo <arg1> <arg2><argN> Donde <arg1> a <argN> son los argumentos a mostrar. Ejemplo: echo Hola mundo muestra la cadena Hola mundo. grep Muestra todas las lneas de un fichero que coinciden con un patrn. Sintaxis: grep <patrn> <fichero1> <fichero2><ficheroN> Donde <patrn> es una expresin regular y <fichero1> a <ficheroN> son los ficheros donde buscar. Ejemplo: grep globus /etc/hosts mostrara todas las lneas en el fichero /etc/hosts que contienen la cadena globus

74

Captulo 3. El sistema operativo

Captulo 4. Conceptos Avanzados

Ms sobre el intrprete de comandos


Como hemos mencionado anteriormente, Linux es un sistema operativo multitarea y multiusuario. La multitarea es muy til, y una vez la haya probado, la usara continuamente. En poco tiempo podr ejecutar programas de fondo, conmutar entre mltiples tareas y canalizar programas unos entre otros para conseguir resultados complejos con un nico comando. Muchas de las caractersticas que trataremos en esta seccin son proporcionadas por el interprete de comandos. Hay que tener cuidado en no confundir Linux (el sistema operativo) con el interprete de comandos este ultimo, es un interface con el sistema que hay debajo. El interprete de comandos proporciona la funcionalidad sobre el Linux. El interprete de comandos no es solo un interprete interactivo de los comandos que tecleamos, es tambin un potente lenguaje de programacin, el cual permite escribir guiones, que permiten juntar varias ordenes en un fichero. El uso de los guiones del interprete de comandos es una herramienta muy potente que le permitir automatizar e incrementar el uso de Linux. Hay varios tipos de interpretes de comandos en el mundo Unix. Los dos ms importantes son el Bourne shell y el C shell. El interprete de comandos Bourne, usa una sintaxis de comandos como la usada en los primeros sistemas Linux, como el System III. El nombre del interprete Bourne en la mayora de los Unix es /bin/sh (donde sh viene de shell, interprete de comandos en ingles). El interprete C usa una sintaxis diferente, a veces parecida a la del lenguaje de programacin C, y en la mayora de los sistemas Unix se encuentra como /bin/csh. Bajo Linux hay algunas diferencias en los interpretes de comandos disponibles. Dos de los ms usados son el Bourne Again Shell o Bash (/bin/bash) y Tcsh (/bin/tcsh). Bash es un equivalente al Bourne con muchas caractersticas avanzadas de la C shell. Como Bash es un super-conjunto de la sintaxis del Bourne, cualquier guin escrito para el interprete de comandos Bourne estandard funcionara en Bash. Para los que prefieren el uso del interprete de comandos C, Linux tiene el Tcsh, que es una versin extendida del C original.

ESware Linux

75

El tipo de interprete de comandos que decida usar es puramente una cuestin de gustos. Algunas personas prefieren la sintaxis del Bourne con las caractersticas avanzadas que proporciona Bash, y otros prefieren el ms estructurado interprete de comandos C. En lo que respecta a los comandos usuales como cp, ls, etc, es indiferente el tipo de interprete de comandos usado, la sintaxis es la misma. Solo, cuando se escriben guiones para el interprete de comandos, o se usan caractersticas avanzadas aparecen las diferencias entre los diferentes interpretes de comandos. Para cada usuario se inicia una copia del shell en cada sesin. Dos consolas virtuales significan dos copias del shell independientes entre s, aunque sean del mismo usuario. Adems para cada orden que se ejecute el shell genera un sub-shell que muere al finalizar la ejecucin de la orden. Tambin se pueden lanzar nuevos shells (o sub-shells) dentro de una shell con la orden sh (o con el nombre de la shell en cuestin que queramos lanzar).

Funciones avanzadas del interprete de comandos Metacaracteres Una caracterstica importante de la mayora de los interpretes de comandos en Linux es la capacidad para referirse a ms de un fichero usando caracteres especiales. Estos, llamados comodines, le permiten referirse a, por ejemplo, grupos de ficheros que tienen algn tipo de coincidencia. * El comodn * hace referencia cualquier carcter o cadena de caracteres. Por ejemplo, cuando usa el carcter * en el nombre de un fichero, el interprete de comandos lo sustituye por todas las combinaciones posibles provenientes de los ficheros en el directorio al cual nos estamos refiriendo. Veamos un ejemplo rpido. Supongamos que Crispin tiene los ficheros precios, presupuestos y notas en el directorio actual. [Crispin@Globus /Crispin]$ ls precios presupuestos notas [Crispin@Globus /Crispin]$ Para acceder a todos los ficheros con la letra o en su nombre, hemos de usar la orden [Crispin@Globus /Crispin]$ ls *o* precios presupuestos [Crispin@Globus /Crispin]$

76

Captulo 4. Conceptos Avanzados

Como puede ver, el comodn * ha sido sustituido con todas las combinaciones posibles que coincidan de entre los ficheros del directorio actual. El uso de * solo, simplemente se refiere a todos los ficheros, puesto que todos los caracteres coinciden con el comodn. [Crispin@Globus /Crispin]$ ls * precios presupuestos notas [Crispin@Globus /Crispin]$ Veamos unos pocos ejemplos ms. [Crispin@Globus /Crispin]$ notas [Crispin@Globus /Crispin]$ precios presupuestos [Crispin@Globus /Crispin]$ presupuestos notas [Crispin@Globus /Crispin]$ notas [Crispin@Globus /Crispin]$ ls n* ls *os ls *t* ls n*s

El proceso de la sustitucin de * en nombres de ficheros es llamado expansin de comodines y es efectuado por el interprete de comandos. Esto es importante: las ordenes individuales, como ls, nunca ven el * en su lista de parmetros. Es el interprete quien expande los comodines para incluir todos los nombres de ficheros que se adaptan. Luego la orden: [Crispin@Globus /Crispin]$ ls *t* es expandida para obtener [Crispin@Globus /Crispin]$ ls notas presupuestos Otra nota importante acerca del carcter comodn *. El uso de este comodn NO cuadrara con nombres de ficheros que comiencen con un punto (.). Estos ficheros son tratados como ocultos aunque no estn realmente ocultos, simplemente no son mostrados en un listado normal de ls y no son afectados por el uso del comodn *. He aqu un ejemplo. Ya hemos mencionado que cada directorio tiene dos entradas especiales: . que hace referencia al directorio actual y .. que se refiere al directorio padre. De cualquier forma, cuando use ls esas dos entradas no se mostraran.

ESware Linux

77

[Crispin@Globus /Crispin]$ ls precios presupuestos notas [Crispin@Globus /Crispin]$ Si usa el parmetro -a con ls podr ver nombres de ficheros que comienzan por .. Observe: [Crispin@Globus /Crispin]$ ls -a . .. .bash_profile .bashrc precios [Crispin@Globus /Crispin]$

presupuestos

notas

Ahora podemos ver las dos entradas especiales, . y .., as como otros dos ficheros ocultos. bash_profile y.bashrc. Estos dos ficheros son usados en el arranque por bash cuando Crispin se presenta al sistema. Note que cuando usamos el comodn *, no se muestra ninguno de los nombres de fichero que comienzan por .. [Crispin@Globus /Crispin]$ ls * precios presupuestos notas [Crispin@Globus /Crispin]$ Esto es una caracterstica de seguridad: si * coincidiera con ficheros que comienzan por . actuara sobre . y ... Esto puede ser peligroso con ciertas ordenes, (como por ejemplo: rm *). ? Otro carcter comodn es ?. Este carcter comodn solo expande un nico carcter. Luego ls ? mostrara todos los nombres de ficheros con un carcter de longitud, y ls termca? mostrara termcap pero no termcap.backup. Aqu tenemos otro ejemplo: [Crispin@Globus presupuestos [Crispin@Globus precios [Crispin@Globus notas [Crispin@Globus /Crispin]$ ls ?resupuestos /Crispin]$ ls p??cios /Crispin]$ ls ????as /Crispin]$

Como puede ver, los caracteres comodn le permiten referirse a ms de un fichero a la vez. En el resumen de ordenes dijimos que cp y mv pueden copiar o mover mltiples ficheros de una vez. Por ejemplo,

78

Captulo 4. Conceptos Avanzados

[Crispin@Globus /Crispin]$ cp /etc/s* /home/Crispin copiara todos los ficheros de /etc que comiencen por s al directorio /home/Crispin. Por lo tanto, el formato de la orden cp es realmente cp <fichero1> <fichero2> <fichero3>...<ficheroN> <destino> donde <fichero1> a <ficheroN> es la lista de los ficheros a copiar, y <destino> es el fichero o directorio destino donde copiarlos. mv tiene idntica sintaxis. Ntese que si esta copiando o moviendo ms de un fichero, <destino> debe ser un directorio. Solo puede copiar o mover un nico fichero a otro fichero. [..] Sustituye cualquier valor incluido entre los corchetes. Supongamos que en el directorio actual hay varios archivos que se llaman nota y Crispin los numera para distinguirlos. Ahora para realizar operaciones con grupos de ellos escribira: [Crispin@Globus /Crispin]$ls nota[123] nota1 nota2 nota3 [Crispin@Globus /Crispin]$ en este caso nota[123] Representa: nota1, nota2, nota3. Potente, verdad? Otro ejemplo: [Crispin@Globus /Crispin]$ls not[ae]3 nota3 note3 [Crispin@Globus /Crispin]$ Aqu not[ae]3 representa: nota3 y note3 Adems admite rangos especificando los extremos separados por un guin. [Crispin@Globus /Crispin]$ls nota[1-5] nota1 nota2 nota3 nota4 nota5 [Crispin@Globus /Crispin]$ Ahora nota[1-5] representa a nota1, nota2, nota3, nota4, nota5. La secuencia [A-z] representa todos los caracteres comprendidos entre A mayscula y z minscula. Ello incluye signos de puntuacin, asteriscos, etc. Hay que tener en cuenta que utiliza el orden lexicogrfico de la tabla ASCII de manera que no es igual nota[0-A] que nota[A-0].

ESware Linux

79

Tambien es muy importante saber que los extremos del rango deben ser un solo carcter. La expresin [10-25] slo incluye 1, 5 y los caracteres comprendidos entre O y 2, es decir: O, 1, 2, 5. El uso del signo ! tras el corchete de apertura significa inversin en la seleccin. Veamos: [Crispin@Globus /Crispin]$ls nota[!345] nota1 nota2 nota6 note7 [Crispin@Globus /Crispin]$ lo que hace nota[!345] es agrupar todos los ficheros de nombres constituidos por nota y otro carcter distinto de 3, 4 o 5.

Agrupamiento de rdenes Ms potencia para tu Linux: podemos pedirle al interprete de comandos que lance la ejecucin de varias rdenes consecutivamente. Observa: orden1;orden2:orden3 Esto provoca la ejecucin sucesiva e independiente de las rdenes indicadas. por ejemplo: [Crispin@Globus /Crispin]$date;cal;who emite una salida as: mi jun 21 10:57:55 CEST 2000 junio 2000 do lu ma mi ju vi s 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 root tty1 Jun 21 09:10 [Crispin@Globus /Crispin]$ El shell ha ejecutado las tres rdenes y cuando acaba nos devuelve el prompt.

80

Captulo 4. Conceptos Avanzados

(orden1;orden2;orden3) Tiene el mismo efecto que el caso anterior pero para ciertas actuaciones, todo lo que est entre parntesis se considera como un conjunto. [Crispin@Globus /Crispin]$(date;cal;who) > archivo1 [Crispin@Globus /Crispin]$ (date;cal;who) > archivo1, re direcciona la salida de las tres ordenes a archivo1 en lugar de a la salida estndar. [Crispin@Globus /Crispin]$(date;cal;who) & [Crispin@Globus /Crispin]$ (date;cal;who) & ejecuta las tres rdenes en segundo plano liberando el terminal para otras tareas. {orden1;orden2;orden3} Ejecuta las tres rdenes en el shell actual sin generar otros nuevos. Los cambios en el entorno permanecen.

Funciones and y or Otra caracterstica avanzada del interprete de comandos es lanzar la ejecucin de una orden en funcin de lo que suceda con otra. Funcin and: orden1 && orden2 Solo ejecuta la orden2 si la ejecucin de orden1 ha tenido xito. [Crispin@Globus /Crispin]$ls /etc/printcap && cat /etc/printcap Si la orden1 falla por algn motivo, la orden2 no se llega a ejecutar. En el ejemplo, ls mira en /etc el fichero llamado printcap, s ls da una respuesta correcta, osea s el fichero est ah, la siguiente orden, cat, abrir el fichero y lo mostrar en pantalla. Funcin or: orden1 || orden2 Ejecuta la orden2 solo si la ejecucin de orden1 no ha tenido xito. [Crispin@Globus /Crispin]$ ls /etc/printcap || cp /etc/printcap_backup/etc/printcap

ESware Linux

81

En este caso, si la orden1 funciona, osea si el fichero que busca ls est en /etc, la ejecucin se detiene ah. En caso contrario la orden2 se ejecuta: se copiar un fichero de copia de seguridad, printcap_backup, como printcap en /etc. Eliminacin de significados especiales Ya hemos visto que existen caracteres, como *, &, $, etc, que tienen una interpretacin especial para el interprete de comandos. Si se quiere evitar esta interpretacin y utilizarlos como caracteres ordinarios, se deben emplear los siguientes mtodos: \ Barra inclinada invertida. Inhibe la interpretacin del carcter siguiente (slo uno). .. Comillas simples. Impide que el shell interprete todo lo incluido entre las comillas. .. Comillas dobles. Evita la interpretacin de los caracteres incluidos salvo $,\,, (comillas simples y dobles). .. Acentos graves. Provoca la ejecucin de la orden incluida.

Entrada y salida estandard


Muchos comandos Linux toman su entrada de algo conocido como entrada estndar y envan su salida a la salida estndar (a menudo abreviado como stdin y stdout). El interprete de comandos configura el sistema de forma que la entrada estndar es el teclado y la salida la pantalla. Veamos un ejemplo con el comando cat. Normalmente cat lee datos de los ficheros cuyos nombres se pasan como argumentos en la linea de comandos y enva estos datos directamente a la salida estndar. Luego, usando el comando [Crispin@Globus /para_imprimir]$ cat historia-final tesis mostrara por pantalla el contenido del fichero historia-final seguido por tesis. Si no se le pasan nombres de ficheros a cat como parmetros, leer datos de stdin y los enviara a stdout. Veamos un ejemplo. [Crispin@Globus /para_imprimir]$ cat Hola caracol. Hola caracol. Adis. Adis. <ctrl-D> [Crispin@Globus /para_imprimir]$

82

Captulo 4. Conceptos Avanzados

Como se puede ver, cada linea que el usuario teclea, es inmediatamente reenviada al monitor por cat (impresa en itlica.) Cuando se esta leyendo de la entrada estndar, los comandos reconocen el fin de la entrada de datos cuando reciben el carcter EOT (end-of-text, fin de texto). Normalmente es generado con la combinacin <ctrl-D>. Veamos otro ejemplo. El comando sort toma como entrada lneas de texto (de nuevo leer desde stdin si no se le proporcionan nombres de ficheros en la linea de comandos), y devuelve la salida ordenada a stdout. Pruebe lo siguiente: [Crispin@Globus /para_imprimir]$ sort berenjenas castaas aceitunas <ctrl-D> aceitunas berenjenas castaas [Crispin@Globus /para_imprimir]$ Podemos ordenar alfabticamente la lista de la compra. Redireccionando la entrada y salida Ahora, supongamos que queremos que la salida de sort vaya a un fichero para poder salvar la lista ordenada de salida. El interprete de comandos nos permite redireccionar la salida estndar a un fichero usando el smbolo >. Veamos como funciona. [Crispin@Globus /para_imprimir]$ sort > lista-compra berenjenas castaas aceitunas <ctrl-D> [Crispin@Globus /para_imprimir]$ Como puede ver, el resultado de sort no se muestra por pantalla, en su lugar es salvado en el fichero lista-compra. Echemos un vistazo al fichero. [Crispin@Globus /para_imprimir]$ cat lista-compra aceitunas

ESware Linux

83

berenjenas castaas [Crispin@Globus /para_imprimir]$ Ya podemos ordenar la lista de la compra y adems guardarla. Supongamos ahora que tenamos guardada nuestra lista de compra desordenada original en el fichero cosas. Una forma de ordenar la informaciny salvarla en un fichero podra ser darle a sort el nombre del fichero a leer en lugar de la entrada estndar y redireccionar la salida estndar como hicimos arriba. [Crispin@Globus /para_imprimir]$ sort cosas > lista-compra [Crispin@Globus /para_imprimir]$ cat lista-compra aceitunas berenjenas castaas [Crispin@Globus /para_imprimir]$ Hay otra forma de hacer esto. No solo puede ser re-direccionada la salida estndar, tambin puede ser re-direccionada la entrada estndar usando el smbolo <. [Crispin@Globus /para_imprimir]$ sort < cosas aceitunas berenjenas castaas [Crispin@Globus /para_imprimir]$ Tcnicamente, sort < cosas es equivalente a sort cosas, pero nos permite demostrar que sort < cosas se comporta como si los datos del fichero fueran tecleados por la entrada estndar. El interprete de comandos es quien maneja las re-direcciones. sort no recibe el nombre del fichero (cosas) a leer, desde el punto de vista de sort, esta leyendo datos de la entrada estndar como si fueran tecleados desde el teclado. Esto introduce el concepto de filtro. Un filtro es un programa que lee datos de la entrada estndar, los procesa de alguna forma, y devuelve los datos procesados por la salida estndar. Usando la redireccin la entrada estndar y/o salida estndar pueden ser referenciadas desde ficheros. sort es un filtro simple: ordena los datos de entrada y enva el resultado a la salida estndar. cat es incluso ms simple, no hace nada con los datos de entrada, simplemente enva a la salida cualquier cosa que le llega.

84

Captulo 4. Conceptos Avanzados

Redireccin no destructiva Es necesario saber que el uso de > para redireccionar la salida a un fichero que ya exista, es destructivo: en otras palabras, el comando [Crispin@Globus /para_imprimir]$ ls > lista_de_archivos sobreescribe el contenido del fichero lista_de_archivos. Si en su lugar, usamos el smbolo >>, la salida ser aadida al final del fichero nombrado, en lugar de ser sobrescrito. [Crispin@Globus /para_imprimir]$ ls >> lista_de_archivos aadir la salida de ls al final de lista_de_archivos. Uso de tuberas (pipes) Demos un paso ms adelante, hemos visto como usar sort como un filtro. Pero estos ejemplos suponen que tenemos los datos en un fichero en alguna parte o vamos a introducir los datos manualmente por la entrada estndar. Que pasa si los datos que queremos ordenar provienen de la salida de otro comando, como ls? Por ejemplo, usando la opcin -r con sort ordenaremos los datos en orden inverso. Si queremos listar los ficheros en el directorio actual en orden inverso, una forma podra ser. [Crispin@Globus captulo-1 historia-final tesis notas [Crispin@Globus [Crispin@Globus notas tesis historia-final captulo-1 [Crispin@Globus /para_imprimir]$ ls

/para_imprimir]$ ls > lista_de_archivos /para_imprimir]$ sort -r lista_de_archivos

/para_imprimir]$

Aqu, salvamos la salida de ls en un fichero, y entonces ejecutamos sort -r sobre ese fichero. Pero esta forma necesita crear un fichero temporal en el que salvar los datos generados por ls.

ESware Linux

85

La solucin es usar las pipes. El uso de pipes es otra caracterstica del interprete de comandos, que nos permite conectar una cadena de comandos en una pipe, donde la stdout del primero es enviada directamente a la stdin del segundo y as sucesivamente. Queremos conectar la salida de ls con la entrada de sort. Para crear un pipe se usa el smbolo l: [Crispin@Globus /para_imprimir]$ ls | sort -r notas tesis historia-final captulo-1 [Crispin@Globus /para_imprimir]$ Esta forma es ms corta y obviamente ms fcil de escribir. Otro ejemplo til usando el comando [Crispin@Globus /para_imprimir]$ ls /usr/bin mostrara una lista larga de los ficheros, la mayora de los cuales pasara rpidamente ante nuestros ojos sin que podamos leerla. En lugar de esto, usemos more para mostrar la lista de ficheros en /usr/bin. [Crispin@Globus /para_imprimir]$ ls /usr/bin | more Ahora podemos ir avanzando pagina a pagina cmodamente. Pero el asunto no termina aqu!. Podemos entubar ms de dos comandos a la vez. El comando head es un filtro que muestra la primeras lneas del canal de entrada (aqu la entrada desde una pipe). Si queremos ver el ultimo fichero del directorio actual en orden alfabtico, usaremos: [Crispin@Globus /para_imprimir]$ ls | sort -r | head -1 notas [Crispin@Globus /para_imprimir]$ Donde head -1 simplemente muestra la primera linea de la entrada que recibe en este caso, el flujo de datos ordenados inversamente provenientes de ls.

86

Captulo 4. Conceptos Avanzados

Control de Tareas
Tareas y procesos Control de Tareas es una utilidad incluida en muchos shells (incluidas Bash y Tcsh), que permite el control de multitud de comandos o tareas al momento. Antes de seguir, deberemos hablar un poco sobre los procesos. Cada vez que usted ejecuta un programa, usted lanza lo que se conoce como proceso, que es simplemente el nombre que se le da a un programa cuando se esta ejecutando. El comando ps visualiza la lista de procesos que se estn ejecutando actualmente, por ejemplo: [Crispin@Globus /Crispin]$ ps

PID 24 161

TTY 3 3

STAT S R

TIME 0:03 0:00

COMMAND (bash) ps

[Crispin@Globus /Crispin]$ La columna PID representa el identificador de proceso. La ultima columna COMMAND, es el nombre del proceso que se esta ejecutando. Ahora soloestamos viendo los procesos que esta ejecutando Crispin. Vemos que hay dos procesos, bash (que es el shell o interprete de comandos que usa Crispin), y el propio comando ps. Como puede observar, bash se ejecuta concurrentemente con el comando ps. bash ejecuta ps cuando Crispin tecleo el comando. Cuando ps termina de ejecutarse (despus de mostrar la tabla de procesos), el control retorna al proceso bash, que muestra el prompt, indicando que esta listo para recibir otro comando. Un proceso que esta corriendo se denomina tarea para el shell. Los trminos proceso y tarea, son intercambiables. Sin embargo, se suele denominar tarea a un proceso, cuando es usado en conjuncin con control de tareas, que es un rasgo del shell que permite cambiar entre distintas tareas. En muchos casos, los usuarios solo ejecutan un trabajo cada vez, que es el ultimo comando que ellos teclearon desde el shell. Sin embargo, usando el control de tareas, usted podr ejecutar diferentes tareas al mismo tiempo, cambiando entre cada uno de ellos conforme lo necesite. Cuan beneficioso puede llegar a ser esto?. Supongamos que esta usted con su procesador de textos, y de repente necesita parar y realizar otra tarea, con el control de tareas, usted podr suspender temporalmente el editor, y volver al shell para realizar cualquier

ESware Linux

87

otra tarea, y luego regresar al editor como si no lo hubiese dejado nunca. Lo siguiente solo es un ejemplo, hay montones de usos prcticos del control de tareas. Primer plano y Segundo plano Un proceso puede estar en Primer plano o en Segundo plano. Solo puede haber un proceso en primer plano al mismo tiempo, el proceso que esta en primer plano, es el que interacta con usted recibe entradas de teclado, y enva las salidas al monitor. (Salvo, por supuesto, que haya re-dirigido la entrada o la salida). El proceso en segundo plano, no recibe ninguna seal desde el teclado por lo general, se ejecutan en silencio sin necesidad de interaccin. Algunos programas necesitan mucho tiempo para terminar, y no hacen nada interesante mientras tanto. Compilar programas es una de estas tareas, as como comprimir un fichero grande. No tiene sentido que se siente y se aburra mientras estos procesos terminan. En estos casos es mejor lanzarlos en segundo plano, para dejar el ordenador en condiciones de ejecutar otro programa. Los procesos pueden ser suspendidos. Un proceso suspendido es aquel que no se esta ejecutando actualmente, sino que esta temporalmente parado. Despus de suspender una tarea, puede indicar a la misma que contine, en primer plano o en segundo, segn necesite. Retomar una tarea suspendida no cambia en nada el estado de la misma la tarea continuara ejecutndose justo donde se dejo. Tenga en cuenta que suspender un trabajo no es lo mismo que interrumpirlo. Cuando usted interrumpe un proceso (generalmente con la pulsacin de <ctrl-C>), el proceso muere, y deja de estar en memoria y utilizar recursos del ordenador. Una vez eliminado, el proceso no puede continuar ejecutndose, y deber ser lanzado otra vez para volver a realizar sus tareas. Tambin se puede dar el caso de que algunos programas capturan la interrupcin, de modo que pulsando <ctrl-C>no se para inmediatamente. Esto se hace para permitir al programa realizar operaciones necesarias de limpieza antes de terminar. De hecho, algunos programas simplemente no se dejan matar por ninguna interrupcin. Envo a segundo plano y eliminacin de procesos Empecemos con un ejemplo sencillo. El comando yes es un comando aparentemente intil que enva una serie interminable de y-es a la salida estndar. (Realmente es muy til. Si se utiliza una tubera (o pipe) para unir la salida de yes con otro comando que haga preguntas del tipo si/no, la serie de y-es confirmara todas las preguntas.) Pruebe con esto. [Crispin@Globus /Crispin]$ yes y y

88

Captulo 4. Conceptos Avanzados

y y y La serie de y continuara hasta el infinito, a no ser que usted la elimine, pulsando la tecla de interrupcin, generalmente <ctrl-C>. Tambin puede deshacerse de esta serie de y redirigiendo la salida estndar de yes hacia /dev/null, que como recordara es una especie de agujero negro o papelera para los datos. Todo lo que usted envi all, desaparecer. [Crispin@Globus /Crispin]$ yes > /dev/null Ahora va mucho mejor, el terminal no se ensucia, pero el prompt de la shell no retorna. Esto es porque yes sigue ejecutndose y enviando esos intiles y a /dev/null. Para recuperarlo, pulse la tecla de interrupcin. Supongamos ahora que queremos dejar que el comando yes siga ejecutndose, y volver al mismo tiempo a la shell para trabajar en otras cosas. Para ello nos enviaremos a yes a segundo plano, lo que nos permitir ejecutarlo, pero sin necesidad de interaccin. Una forma de mandar procesos a segundo plano es aadiendo un carcter & al final de cada comando. [Crispin@Globus /Crispin]$ yes > /dev/null & [1] 164 [Crispin@Globus /Crispin]$ Como podr ver, ha regresado a la shell. Pero que es eso de [1] 164?, se esta ejecutando realmente el comando yes? [1] representa el numero de tarea del proceso yes. La shell asigna un numero a cada tarea que se este ejecutando. Como yes es el nico comando que se esta ejecutando, se le asigna el numero de tarea 1. El numero 164 es el numero de identificacin del proceso, o PID, que es el numero que el sistema le asigna al proceso. Ambos nmeros pueden usarse para referirse a la tarea como veremos despus. Ahora usted tiene el proceso yes corriendo en segundo plano, y enviando constantemente la seal y hacia el dispositivo /dev/null. Para chequear el estado del proceso, utilice el comando interno de la shell jobs: [Crispin@Globus /Crispin]$ jobs [1]+ Running yes >/dev/null & [Crispin@Globus /Crispin]$

ESware Linux

89

Ah esta!. Tambin puede usar el comando ps, como mostramos antes, para comprobar el estado de la tarea. Para eliminar una tarea, utilice el comando kill. Este comando toma como argumento un numero de tarea o un numero de ID de un proceso. Esta era la tarea 1, as que usando el comando [Crispin@Globus /Crispin]$ kill %1 matar la tarea. Cuando se identifica la tarea con el numero de tarea, se debe preceder el numero con el carcter de porcentaje (`%). Ahora que ya hemos matado la tarea, podemos usar el comando jobs de nuevo para comprobarlo: [Crispin@Globus /Crispin]$ jobs [1]+ Terminated yes >/dev/null [Crispin@Globus /Crispin]$ La tarea est, en efecto, muerta, y si usa el comando jobs de nuevo, no mostrara nada. Tambin podr matar la tarea usando el numero de ID de proceso (PID), el cual se muestra conjuntamente con el ID de tarea cuando arranca la misma. En nuestro ejemplo el ID de proceso es 164, as que el comando [Crispin@Globus /Crispin]$ kill 164 es equivalente a [Crispin@Globus /Crispin]$ kill %1 No es necesario usar el % cuando nos referimos a una tarea a travs de su ID de proceso. Parada y relanzamiento de tareas Hay otra manera de poner una tarea en segundo plano. Usted puede lanzarlo como un proceso normal (en primer plano), pararlo, y despus relanzarlo en segundo plano. Primero, lance el proceso yes en primer plano como lo hara normalmente: [Crispin@Globus /Crispin]$ yes > /dev/null

90

Captulo 4. Conceptos Avanzados

De nuevo, dado que yes corre en primer plano, no debe retornar el prompt de la shell. Ahora, en vez de interrumpir la tarea con <ctrl-C>, suspenderemos la tarea. El suspender una tarea no la mata: solamente la detiene temporalmente hasta que Ud. la retoma. Para hacer esto usted debe pulsar la tecla de suspender, que suele ser <ctrl-Z>. [Crispin@Globus /Crispin]$ yes > /dev/null <ctrl-Z> [1]+ Stopped yes >/dev/null [Crispin@Globus /Crispin]$ Mientras el proceso esta suspendido, simplemente no se esta ejecutando. No gasta tiempo de CPU en la tarea. Sin embargo, usted puede retomar el proceso de nuevo como si nada hubiera pasado. Continuara ejecutndose donde se dejo. Para relanzar la tarea en primer plano, use el comando fg (del ingles foreground). [Crispin@Globus /Crispin]$ fg yes >/dev/null La shell muestra el nombre del comando de nuevo, de forma que tenga conocimiento de que tarea es la que ha puesto en primer plano. Pare la tarea de nuevo, con <ctrl-Z>. Esta vez utilice el comando bg para poner la tarea en segundo plano. Esto har que el comando siga ejecutndose igual que si lo hubiese hecho desde el principio con & como en la seccin anterior. [Crispin@Globus /Crispin]$ bg [1]+ yes >/dev/null & [Crispin@Globus /Crispin]$ Y tenemos de nuevo el prompt. El comando jobs debera decirnos que yes se esta ejecutando, y podemos matar la tarea con kill tal y como lo hicimos antes. Como podemos parar la tarea de nuevo? Si pulsa <ctrl-Z> no funcionara, ya que el proceso esta en segundo plano. La respuesta es poner el proceso en primer plano de nuevo, con el comando fg, y entonces pararlo. Como puede observar podr usar fg tanto con tareas detenidas, como con las que estn segundo plano. Hay una gran diferencia entre una tarea que se encuentra en segundo plano y una que se encuentra detenida. Una tarea detenida es una tarea que no se esta ejecutando, es decir, que no usa tiempo de CPU, y que no esta haciendo ningn trabajo (la tarea aun ocupa un lugar en memoria, aunque puede ser volcada a disco). Una tarea en segundo plano, se esta ejecutando, y usando memoria, a la vez que completando alguna accin mientras usted hace otro trabajo. Sin embargo, una tarea en segundo plano puede intentar mostrar texto

ESware Linux

91

en su terminal, lo que puede resultar molesto si esta intentando hacer otra cosa. Por ejemplo, si usted uso el comando [Crispin@Globus /Crispin]$ yes & sin redirigir stdout a /dev/null, una cadena de y-es se mostraran en su monitor, sin modo alguno de interrumpirlo (no puede hacer uso de <ctrl-C>para interrumpir tareas en segundo plano). Para poder parar esas interminables y-es, tendra que usar el comando fg para pasar la tarea a primer plano, y entonces usar <ctrl-C>para matarla. Otra observacin. Normalmente, los comandos fg y bg actan sobre el ultimo proceso parado (indicado por un + junto al numero de tarea cuando usa el comando jobs). Si usted tiene varios procesos corriendo a la vez, podr mandar a primer o segundo plano una tarea especifica indicando el ID de tarea como argumento de fg o bg, como en: [Crispin@Globus /Crispin]$ fg %2 (para la tarea de primer plano numero 2), o [Crispin@Globus /Crispin]$ bg %3 (para la tarea de segundo plano numero 3). No se pueden usar los ID de proceso con fg o bg. Adems de esto, si usa el numero de tarea por si solo, como [Crispin@Globus /Crispin]$ %2 es equivalente a [Crispin@Globus /Crispin]$ fg %2 Recuerde que el uso de control de tareas es una utilidad de la shell. Los comandos fg, bg y jobs son internos de la shell. Si por algn motivo usted utiliza una shell que no soporta control de tareas, no espere disponer de estos comandos.

Variables
Dijimos antes que la shell es algo ms que un interprete interactivo, es un lenguaje de programacin en toda regla, y como tal, hace uso de variables. Una variable es una pequea porcin de memoria a la que se le asigna un valor (puede ser un nmero, una ruta de directorios..., etc.) que se puede leer o consultar e incluso modificar.

92

Captulo 4. Conceptos Avanzados

Hay tres tipos de variables: de entorno, que forman parte del entrono del sistema, las variables incorporadas, que las proporciona el sistema y no pueden ser modificadas con un programa shell y las variables de usuario, modificables con la shell. Un ejemplo de variable es PATH, define las rutas que deben ser miradas por la shell para buscar comandos o ejecutables. Veamos el contenido de PATH: [Crispin@Globus /Crispin]$ echo $PATH /bin:/usr/bin:/usr/X11R6/bin:/home/Crispin/bin [Crispin@Globus /Crispin]$ Observe el uso del carcter $; Indica el principio del nombre de una variable shell, sin l, la orden echo de volvera nicamente la cadena de texto pasada a continuacin. De manera que siempre que queramos ver el contenido de una variable debemos usar $. En concreto PATH se define en un fichero de texto que se lee en el inicio del sistema, por lo que ya est establecida. Definir variables Vamos a definir una variable sencilla: [Crispin@Globus /Crispin]$ a=playa [Crispin@Globus /Crispin]$ ya est. La variable tiene un nombre: a, y un valor: playa. Note que no debe dejar espacios entre el nombre, el igual y el valor. Ahora podemos usar el valor de esta variable refirindonos a ella por su nombre. Lo importante aqu es: donde?, pues en la ejecucin de ordenes desde el prompt, por ejemplo, o en el uso de scripts de shell, (se vern en otro momento del curso). Pero, ojo, las variables de usuario creadas de esta manera solo funcionan en el shell (o subshell) en que se han definido. Se entiende mejor con un ejemplo: [Crispin@Globus playa [Crispin@Globus [Crispin@Globus [Crispin@Globus /Crispin]$ echo $a /Crispin]$ bash /Crispin]$ echo $a /Crispin]$

Qu ha pasado? Ha desaparecido nuestra variable? mmm....... si y no. Primero comprobamos su valor y est correcto, pero despus hemos lanzado otro shell y aqu no apa-

ESware Linux

93

rece. La variable a solo es visible desde la shell donde se fue definida; Es una variable local. Esto nos lleva a otra pregunta: Qu variables tenemos en cada shell?, fcil: con la orden env veremos una lista de variables iniciales del entorno o globales y con la orden set veremos una lista de variables locales. Resumiendo, en cada shell se tendr acceso nicamente a las variables locales que tenga definidas. Esto es importante de cara a la ejecucin de scripts que, por algn motivo, requieran el uso de una variable determinada, o al revs: que pasa si queremos que nuestra variable sea accesible por programas ejecutados en otros shells? Exportar al entorno La solucin a este pequeo problema es lo que se conoce como exportar variables. El comando export es capaz de hacer dos cosas: 1. Sin argumentos muestra una lista con las variables exportadas 2. Convierte las variables consignadas (locales) en globales, para que sus valores sean accesibles por cada shell que se genere. [Crispin@Globus playa [Crispin@Globus [Crispin@Globus [Crispin@Globus playa [Crispin@Globus /Crispin]$ echo $a /Crispin]$ export a /Crispin]$ bash /Crispin]$ echo $a /Crispin]$

Ahora el valor de la variable a puede ser ledo desde otro shell o sub-shell y tambin por programas que se ejecuten en ellos.

94

Captulo 4. Conceptos Avanzados

Captulo 5. Conceptos sobre ficheros

Permisos de Ficheros
Conceptos de permisos de ficheros Linux es un sistema multiusuario, por lo tanto es necesario establecer un mecanismo que proteja los ficheros de los usuarios y a la vez el sistema debe tambin protegerse a si mismo de la manipulacin por parte de otros. Esto lo consigue mediante el uso de permisos de ficheros. Este mecanismo permite que ficheros y directorios pertenezcan a un usuario en particular. Por ejemplo, como Crispin creo ficheros en su directorio home, Crispin es el propietario de esos ficheros y tiene acceso a ellos. Linux tambin permite que los ficheros sean compartidos entre usuarios y grupos de usuarios. Si Crispin lo desea, podra restringir el acceso a sus ficheros de forma que ningn otro usuario tenga acceso. De cualquier modo, en la mayora de los sistemas por defecto se permite que otros usuarios puedan leer sus ficheros pero no modificarlos o borrarlos. Como hemos explicado arriba, cada fichero pertenece a un usuario en particular. Por otra parte, los ficheros tambin pertenecen a un grupo en particular, que es un conjunto de usuarios definido por el sistema. Cada usuario pertenece al menos a un grupo cuando es creado. El administrador del sistema puede hacer que un usuario tenga acceso a ms de un grupo. Los grupos usualmente son definidos por el tipo de usuarios que acceden a la maquina. Por ejemplo, en un sistema Linux de una empresa, los usuarios pueden ser divididos en los grupos marketing, direccin, contabilidad e invitados. Hay tambin unos pocos grupos definidos por el sistema (como bin y admin) los cuales son usados por el propio sistema para controlar el acceso a los recursos, y muy raramente los usuarios normales pertenecen a estos grupos. Los permisos estn divididos en tres tipos: lectura, escritura y ejecucin. Estos permisos pueden ser fijados para tres clases de usuarios: el propietario del fichero, el grupo al que pertenece el fichero y para todos los usuarios independientemente del grupo.

ESware Linux

95

El permiso de lectura (r) permite a un usuario leer el contenido del fichero o en el caso de un directorio, listar el contenido del mismo (usando ls). El permiso de escritura (w) permite a un usuario escribir y modificar el fichero. Para directorios, el permiso de escritura permite crear nuevos ficheros o borrar ficheros ya existentes en dicho directorio. Por ultimo, el permiso de ejecucin (x) permite a un usuario ejecutar el fichero si es un programa o guin del interprete de comandos. Para directorios, el permiso de ejecucin permite al usuario cambiar al directorio en cuestin con cd. Interpretando los permisos de ficheros Veamos un ejemplo del uso de permisos de ficheros. Usando el comando ls con la opcin -l se mostrara un listado largo de los ficheros, el cual incluye los permisos de ficheros. [Crispin@Globus /cursos]$ ls -l nominas -rw-rr 1 Crispin contabilidad 505 Mar 13 19:05 nominas [Crispin@Globus /cursos]$ El primer campo impreso en el listado representa los permisos de ficheros. El tercer campo es el propietario del fichero (Crispin), y el cuarto es el grupo al cual pertenece el fichero (contabilidad). Obviamente, el ultimo campo es el nombre del fichero (nominas), y los dems campos los trataremos ms adelante. Este fichero pertenece a Crispin y al grupo contabilidad. Echemos un vistazo a los permisos. La cadena: -rw-rr nos informa, por orden, de los permisos para el propietario, el grupo del fichero y cualquier otro usuario. El primer carcter de la cadena de permisos (-) representa el tipo de fichero. El - significa que es un fichero regular. Si aparece una d, se trata de un directorio. Las siguientes tres letras (rw-) representan los permisos para el propietario del fichero, Crispin. La r para lectura y w para escritura. Luego Crispin tiene permisos de lectura y escritura para el fichero nominas. Como ya mencionamos, aparte de los permisos de lectura y escritura esta el permiso de ejecucin, representado por una x. Como hay un - en lugar del x, significa que Crispin no tiene permiso para ejecutar ese fichero. Esto es correcto, puesto que nominas no es un programa de ningn tipo. Por supuesto, como el fichero es de Crispin, puede darse a si mismo permiso de ejecucin si lo desea. Este tema ser cubierto en breve.

96

Captulo 5. Conceptos sobre ficheros

Los siguientes tres caracteres, r representan los permisos para los miembros del grupo. El grupo al que pertenece el fichero es contabilidad. Como solo aparece un r cualquier usuario que pertenezca al grupo contabilidad puede leer este fichero. Los ltimos tres caracteres, tambin r, representan los permisos para cualquier otro usuario del sistema (diferentes del propietario o de los pertenecientes al grupo contabilidad). De nuevo, como solo esta presente el r, los dems usuarios pueden leer el fichero, pero no escribir en el o ejecutarlo. Aqu tenemos otros ejemplos de permisos de grupo. -rwxr-xr-x El propietario del fichero puede leer, escribir y ejecutar el fichero. Los usuarios pertenecientes al grupo del fichero, y todos los dems usuarios pueden leer y ejecutar el fichero. -rw El propietario del fichero puede leer y escribir. Nadie ms puede acceder al fichero. -rwxrwxrwx Todos los usuarios pueden leer, escribir y ejecutar el fichero. Dependencias Es muy importante darse cuenta de que los permisos de un fichero tambin dependen de los permisos del directorio en el que residen. Por ejemplo, aunque un fichero tenga los permisos -rwxrwxrwx, otros usuarios no podrn acceder a el a menos que tambin tengan permiso de lectura y ejecucin para el directorio en el cual se encuentra el fichero. Si Crispin quiere restringir el acceso a todos sus ficheros, podra simplemente poner los permisos de su directorio home /home/Crispin a -rwx. De esta forma ningn usuario podr acceder a su directorio ni a ninguno de sus ficheros o subdirectorios. Crispin no necesita preocuparse de los permisos individuales de cada uno de sus ficheros. En otras palabras, para acceder a un fichero, debes de tener permiso de ejecucin de todos los directorios a lo largo del camino de acceso al fichero, adems de permiso de lectura (o ejecucin) del fichero en particular. Los directorios, usualmente tienen los permisos -rwxr-xr-x, lo que permite que los dems usuarios puedan moverse y ver los directorios, pero sin poder crear o borrar nuevos ficheros en ellos. Muchos usuarios pueden querer limitar el acceso de otros usuarios a sus ficheros. Poniendo los permisos de un fichero a -rw- no se permitir a ningn otro usuario acceder al fichero.

ESware Linux

97

Igualmente, poniendo los permisos del directorio a -rwx no se permitir a los dems usuarios acceder al directorio en cuestin. Cambiando permisos El comando chmod se usa para establecer los permisos de un fichero. Solo el propietario puede cambiar los permisos del fichero. La sintaxis de chmod es: chmod {a,u,g,o}{+,-}{r,w,x} <filenames> Con las opciones {a,u,g,o}, indicamos a que usuarios afecta: all, user, group o other. Entonces se especifica si se estn aadiendo permisos (+) o quitndolos (-). Finalmente se especifica que tipo de permiso read, write o execute, ({r,w,x}). Algunos ejemplos: chmod a+r nominas Da a todos (all) los usuarios acceso de lectura al fichero. chmod +r nominas Como arriba. Si no se indica a, u, g u o por defecto se toma a. chmod og-x nominas Quita permisos de ejecucin a todos los usuarios excepto al propietario. chmod u+rwx nominas Permite al propietario leer, escribir y ejecutar el fichero. chmod o-rwx nominas Quita permisos de lectura, escritura y ejecucin a todos los usuarios menos al propietario y a los usuarios del grupo del fichero. Esta forma de manipular los permisos es conocida como en modo absoluto, existe otra forma que consiste en codificar numericamente los permisos de acuerdo con su valor en binario. A este metodo se le conoce como modo octal. Los valores en binario son: Lectura: Escritura: Ejecucin: 4 2 1

Bsicamente el proceso es el mismo, la diferencia es que se usa un valor numrico para cada conjunto de permisos (usuario, grupo y otros), que es la suma de los valores en binario que tengan los permisos que se van a asignar. Alguien lo ha entendido?....... [Crispin@Globus /cursos]$ ls -l nominas -rw-rr 1 Crispin contabilidad 505 Mar 13 19:05 nominas [Crispin@Globus /cursos]$

98

Captulo 5. Conceptos sobre ficheros

Este fichero tiene en modo octal: 644. De donde sale este nmero? Podemos ver el detalle de los permisos: para el usuario rw, lectura y escritura, osea 4 + 2 = 6, para el grupo r, lectura, osea 4, para el resto r, lectura, osea 4, Juntandolo todo, en el mismo orden, 644. De acuerdo? El cambio de permisos usando este mtodo se hace de la siguiente manera: chmod 444 nominas chmod 777 nominas chmod 700 nominas Da a todos los usuarios acceso de lectura al fichero. Todos los permisos a todo el mundo. El usuario tiene todos los permisos y nadie ms puede hacer nada. chmod 555 nominas Todos, lectura y ejecucin.

Enlaces de ficheros
Los enlaces le permiten dar a un nico fichero mltiples nombres. Los ficheros son identificados por el sistema por su numero de inodo, el cual es el nico identificador del fichero para el sistema de ficheros. Un directorio es una lista de nmeros de inodo con sus correspondientes nombres de fichero. Cada nombre de fichero en un directorio es un enlace a un inodo particular. Enlaces duros (hard links) La orden ln es usada para crear enlaces para un fichero. Por ejemplo, supongamos que tiene un fichero dietas en un directorio. Usando ls -i, veremos el numero de inodo para el fichero. # ls -i dietas 22192 dietas # Aqu, el fichero dietas tiene el numero de inodo 22192 en el sistema de ficheros. Podemos crear otro enlace a dietas, llamado restaurantes: # ln dietas restaurantes Con ls -i veremos que los dos ficheros tienen el mismo inodo.

ESware Linux

99

# ls -i dietas restaurantes 22192 restaurantes 22192 dietas # Ahora, accediendo a dietas o a restaurantes accederemos al mismo fichero. Si hace cambios en dietas, estos cambios tambin sern efectuados en restaurantes. Para todos los efectos, dietas y restaurantes son el mismo fichero. Estos enlaces son conocidos como enlaces duros (hard links) porque directamente crean el enlace al inodo. Ntese que solo podemos crear enlaces duros entre ficheros del mismo sistema de ficheros; los enlaces simblicos (ver ms adelante) no tienen esta restriccin. Cuando borra un fichero con rm, esta solamente borrando un enlace a un fichero. Si usa el comando: # rm dietas solo el enlace de nombre dietas es borrado; restaurantes todava existir. Un fichero es solo definitivamente borrado del sistema cuando no quedan enlaces a el. Usualmente, los ficheros tienen un nico enlace, por lo que el uso de rm los borra. Pero si el fichero tiene mltiples enlaces, el uso de rm solo borrara un nico enlace; para borrar el fichero, deber borrar todos los enlaces del fichero. La orden ls -l muestra el numero de enlaces a un fichero (entre otra informacin). # ls -l dietas restaurantes -rw-rr 2 root root -rw-rr 2 root root #

12 Aug 5 16:51 restaurantes 12 Aug 5 16:50 dietas

La segunda columna en el listado, 2, especifica el numero de enlaces al fichero. As resulta que un directorio no es ms que un fichero que contiene informacin sobre la direccin del enlace al inodo. Tambin, cada directorio tiene al menos dos enlaces duros en el: . (un enlace apuntando a si mismo) y .. (un enlace apuntando al directorio padre). En el directorio raz (/), el enlace .. simplemente apunta a /. Enlaces simblicos Los enlaces simblicos son otro tipo de enlace, que es diferente al enlace duro. Un enlace simblico permite dar a un fichero el nombre de otro, pero no enlaza el fichero con un inodo.

100

Captulo 5. Conceptos sobre ficheros

La orden ln -s crea un enlace simblico a un fichero. Por ejemplo, si usamos la orden # ln -s dietas restaurantes crearemos un enlace simblico restaurantes apuntando al fichero dietas. Si usamos ls -i, veremos que los dos ficheros tienen inodos diferentes, en efecto. # ls -i dietas restaurantes 22195 restaurantes 22192 dietas # De cualquier modo, usando ls -l vemos que el fichero restaurantes es un enlace simblico apuntando a dietas. # ls -l dietas restaurantes lrwxrwxrwx 1 root root -rw-rr 1 root root #

3 Aug 5 16:51 restaurantes -> dietas 12 Aug 5 16:50 dietas

Los bits de permisos en un enlace simblico no se usan (siempre aparecen como rwxrwxrwx). En su lugar, los permisos del enlace simblico son determinados por los permisos del fichero apuntado por el enlace (en nuestro ejemplo, el fichero dietas). Funcionalmente, los enlaces duros y simblicos son similares, pero hay algunas diferencias. Por una parte, puede crear un enlace simblico a un fichero que no est en el mismo dispositivo de almacenamiento; lo mismo no es cierto para enlaces duros. Los enlaces simblicos son procesados por el ncleo de forma diferente a los duros, lo cual es solo una diferencia tcnica, pero a veces importante. Los enlaces simblicos son de ayuda puesto que identifican al fichero al que apuntan; con enlaces duros no es tan fcil saber que fichero esta enlazado al mismo inodo. Los enlaces se usan en muchas partes del sistema Linux. Los enlaces simblicos son especialmente importantes para las imgenes de las libreras compartidas en /lib.

ESware Linux

101

Captulo 6. Scripts de Shell

Ya conocemos en profundidad el interprete de comandos y la flexibilidad y potencia que tiene. En este apartado estudiaremos los scripts de shell o guiones del interprete de comandos. Son ficheros que contienen una serie de comandos para su ejecucin. Al lanzar el script cada una de esas ordenes es leda y ejecutada una tras otra por el interprete de comandos. La ventaja de esto es que se pueden ejecutar igual que cualquier otra orden o comando, pero los creamos nosotros mismos con un simple editor de textos. Adems, podemos hacer uso del propio lenguaje de programacin del interprete de comandos y de las variables definidas como se vio anteriormente. Para la creacin de un script usaremos cualquiera de los mltiples editores de textos que aporta Linux, los hay con maravillosos entornos grficos en modo Lo Que Ves Es Lo Que Tienes o integrados en estupendas Suites de Ofimtica y tambin feos editores en modo consola que apenas ofrecen ayuda al usuario sentado frente a la pantalla. Desafortunadamente el editor elegido por el autor para estudiar aqu es de estos ltimos: el clsico de Unix vi. Motivos?, varios; Primero: se encuentra prcticamente en cualquier mquina del mundo que tenga Linux o Unix, segundo: tiene un tamao reducido y podra estar en un disquete de arranque y salvarnos la vida en alguna ocasin y tercero: no es tan difcil de manejar.

Introduccin al editor vi
Es muy posible que vi no sea su editor habitual, lo entiendo. Sin embargo el conocimiento de su manejo siempre ser una ventaja. Personalmente siempre edito los ficheros de configuracin con vi. No lo uso para escribir, pero no lo utilizo continuamente para solucionar problemas o configurar equipos y conozco multitud de personas que hacen lo mismo. Los conocimientos mnimos de vi La forma de lanzar vi para editar un fichero es la siguiente: vi < nombre de fichero >

ESware Linux

103

por ejemplo para que Crispin edite el fichero llamado carta, escribir en lnea de comandos: [Crispin@Globus /Crispin]$ vi carta y obtendr una pantalla similar a la Figura 6.1:

Figura 6-1. El editor vi

La orden vi carta abrir el fichero carta si este existe, si el fichero no existe, crear uno con ese nombre. Lo primero que hay que saber es que el editor tiene tres modos de funcionamiento: Modo Ordenes Modo Insercin Modo ltima Lnea y lo mnimo que necesitamos saber para editar / crear un ficheros es: 1. Como cambiar entre modos de funcionamiento. 2. Como guardar los cambios y 3. Como salir sin guardar los cambios. (por si nos equivocamos) Nota importante: todas las ordenes se indican entre comillas para distinguirlas, pero en el editor, las comillas no hay que teclearlas!

104

Captulo 6. Scripts de Shells

Como cambiar entre modos de funcionamiento Por defecto se entra en modo Ordenes, que sirve para ejecutar los comandos propios del editor. Los comandos (u ordenes) son normalmente de uno o dos caracteres de longitud y nos permiten editar el fichero o cambiar a otros modos. El modo Insercin se usa para escribir en el fichero, es la forma habitual de trabajo del editor. Para entrar en el modo Insercin se pulsar (desde el modo Ordenes): i para insertar texto a la izquierda del cursor a para aadir texto a la derecha del cursor o para empezar a escribir en la lnea debajo del cursor Si el fichero est vaco, no hay diferencia entre las tres ordenes. Para volver al modo ordenes pulsaremos la tecla Esc. El movimiento entre lneas ms sencillo es mediante las flechas del cursor y las teclas de avance y retroceso de pgina. (Hay comandos especficos que veremos enseguida.) El modo ltima Lnea es un modo especial usado para proporcionar ciertas ordenes extendidas a vi. Al usar esos comandos, aparecen en la ultima linea de la pantalla (de ah el nombre). Para entrar en el modo ltima Lnea debe pulsar (desde el modo Ordenes): : El modo de ultima linea es habitualmente usado por ordenes de vi con ms de un carcter. En el modo de ultima linea, introduce una orden de una sola linea y pulsa <enter> para ejecutarla. Para volver al modo ordenes pulsaremos la tecla Esc. Como guardar los cambios Una vez escrito o modificado el fichero y si estamos satisfechos con los cambios realizados, podemos guardar el fichero con la orden (desde el modo Ordenes): Si ademas queremos salir del editor: :q Se pueden combinar las dos ordenes:

ESware Linux

105

:wq esto salva el fichero y sale del editor. Un atajo para: wq es ZZ (desde el modo Ordenes). El resultado es el mismo.

Como salir sin guardar los cambios Si los cambios realizados no son de su agrado, cambiamos al modo ordenes y pulsamos: q! Si omite !, el editor se pondr bastante pesado y no le permitir salir sin guardar. Estas nociones bsicas son suficientes para un trabajo sencillo de correccin o edicin de ficheros. Quiz no necesite ms (o no quiera saber ms) en ese caso salte directamente a la seccin siguiente. Lo que viene a continuacin son ordenes avanzadas para el manejo del editor vi. La ventaja y la potencia de vi est en la habilidad de usarlo con xito con slo saber unos pocos comandos. No expondremos todos los ordenes de vi, aunque se cubren los ms comnmente usados y an otros adicionales.

rdenes de movimiento (Siempre desde el modo rdenes) La funcin ms bsica de un editor es el mover el cursor por el texto. w e E b mueve al principio de la siguiente palabra. mueve al final de la siguiente palabra. mueve al final de la siguiente palabra antes de un espacio. mueve al principio de la palabra anterior.

mueve al principio de la lnea actual. 0 mueve a la primera palabra de la lnea actual. ^ mueve al final de la lnea. $ Intro mueve al principio de la siguiente lnea. mueve al principio de la lnea anterior. G mueve al final del fichero. 1G mueve al principio del fichero.

106

Captulo 6. Scripts de Shells

nG mueve a la lnea n. <Ctrl> G muestra el nmero de lnea actual. % va al parntesis correspondiente. H mueve a la lnea superior en pantalla. M mueve a la lnea de en medio de la pantalla. L mueve al final de la pantalla. El texto se desplaza automticamente cuando el cursor alcanza la parte superior o inferior de la pantalla. Tambin hay ordenes que permiten controlar el desplazamiento del texto. <Ctrl> f desplaza una pantalla hacia delante. <Ctrl> b desplaza una pantalla hacia atrs. <Ctrl> d desplaza media pantalla hacia abajo. <Ctrl> u desplaza media pantalla hacia arriba Las ordenes anteriores controlan el movimiento del cursor. Algunas de las ordenes usan un modificador en forma de un nmero que precede al comando. Esta caracterstica normalmente repite la orden ese nmero de veces. ni inserta algn texto y lo repite n veces. Los ordenes que tratan con lneas usan el modificador para referirse al nmero de lnea. La orden G es un buen ejemplo. Modificacin del texto El propsito es cambiar el contenido del fichero y vi ofrece un amplio conjunto de ordenes para ayudarnos en este proceso. Vamos a ver como aadir texto, cambiar el texto existente y borrar texto. Cuando usted teclea nuevo texto puede introducir varias lneas usando < Enter> Si hay que corregir un error mientras escribe, puede usar la tecla < Retroceso > para mover el cursor sobre el texto. a Aadir texto a partir de la posicin actual del cursor. A Aadir al final de la lnea. i Insertar texto a la izquierda del cursor. I Insertar texto a la izquierda del primer caracter que no sea espacio en la lnea actual. o Abrir una nueva lnea y aade texto debajo de la lnea actual. O Abrir una nueva lnea y aade texto encima de la lnea actual.

ESware Linux

107

vi tiene un pequeo grupo de ordenes para borrar texto que se pueden mejorar con el uso de modificadores. x Borrar el carcter que est debajo del cursor. dw Borrar desde la posicin actual al final de la palabra. dd Borrar la lnea actual. D Borrar desde la posicin actual al final de la lnea. Los modificadores se pueden usar para aumentar la potencia de los ordenes. Los siguientes ejemplos son un subgrupo de las posibilidades. nx Borrar n caracteres desde el que est bajo el cursor. ndd Borrar n lneas. dnw Borrar n palabras (igual que ndw). dG Borrar desde la posicin actual hasta el final del fichero. d1G Borrar desde la posicin actual hasta el principio del fichero. d$ Borrar desde la posicin actual al final de la lnea. (Esto es igual que D.) dn$ Borrar desde la lnea actual al final de la ensima lnea. En ocasiones puede que sea necesario deshacer los cambios que hemos realizado. Las siguientes ordenes recuperan el texto que haba antes de hacer cambios. u Deshacer el ltimo comando. U Deshacer todos los cambios ocurridos en la lnea actual. :e! Editar otra vez. Recupera el estado del fichero desde la ltima vez que se salv. Tambin puede dar la vuelta al comando deshacer. Usando la orden u podemos deshacer y rehacer mas de una vez. vi ofrece ordenes que permiten que se hagan cambios al texto sin tener que borrar y volver a escribir: rp Reemplaza el carcter con la letra p R Sobreescribe el texto con el nuevo texto.. cw Cambia el texto de la palabra actual. c$ Cambia el texto desde la posicin actual al final de la lnea. cnw Cambia las siguientes n palabras. Las series de ordenes de cambio que permiten que se introduzca un grupo de caracteres se terminan con la tecla Esc.

108

Captulo 6. Scripts de Shells

Copiar, cortar y pegar bloques de texto La copia de texto se realiza en tres pasos principales: 1. Copia del texto a un buffer de memoria. 2. Movimiento del cursor al lugar de destino. 3. Pegar (poner) el texto en el buffer de edicin. Un buffer de memoria es un rea de intercambio en la RAM, (como el portapapeles), donde almacenaremos una informacin temporalmente. En este caso se usan buffers para almacenar una copia temporal del texto que usted desea copiar o mover. Podemos tener ms de un buffer con distintas informaciones (datos) en ellos. Esto se consigue poniendo nombre al buffer, para poder distinguirlos entre si. Se pueden tener hasta 26 buffers con nombre. Un buffer sin nombre perder la informacin al guardar nuevos datos en el. El buffer de edicin no es sino el propio fichero en el que usted est trabajando. Para Copiar texto al buffer sin nombre use la orden y. yy Mueve una copia de la lnea actual al buffer sin nombre. nyy Mueve las siguientes n lineas al buffer sin nombre. yw Mueve una palabra al buffer sin nombre. ynw Mueve n palabras al buffer sin nombre. y$ Mueve el texto desde la posicin actual al final de la lnea al buffer sin nombre. Los buffers usan las letras del alfabeto como el nombre de identificacin. Para distinguir un comando de un buffer con nombre, vi usa el carcter < >. Cuando use un buffer con nombre de letra minscula los contenidos se sobreescriben, mientras que el uso del nombre en letra mayscula aade el nuevo texto al contenido actual. ayy Mueve la lnea actual al buffer con nombre a. byw Mueve la palabra actual al buffer con nombre b. Byw Aade la palabra actual al contenido del buffer b. by3w Mueve las siguientes 3 palabras al buffer b. Use la orden p para pegar el contenido del buffer al buffer de edicin. p Pegar del buffer sin nombre a la DERECHA del cursor. P Pegar del buffer sin nombre a la IZQUIERDA del cursor. nP Pegar n copias del buffer sin nombre a la IZQUIERDA del cursor. aP Pegar del buffer con nombre a a la DERECHA del cursor. b3P Pegar 3 copias del buffer con nombre b a la IZQUIERDA del cursor.

ESware Linux

109

Para mover un bloque de texto son necesarios tres pasos. 1. Borrar el texto para ponerlo en un buffer con o sin nombre. 2. Mover el cursor a la posicin de destino. 3. Pegar el buffer. El proceso es idntico al de copia, con un solo cambio: borrar. Cuando se usa la orden dd, la lnea se borra y se coloca en el buffer sin nombre. Luego puede poner el contenido del mismo modo que lo hizo cuando copi el texto en la posicin deseada. add Borrar la lnea y ponerla en el buffer con nombre a. a4dd Borrar cuatro lneas y ponerlas en el buffer con nombre a. dw Borrar una palabra y ponerla en el buffer sin nombre. Repase las ordenes sobre el modificado de texto para ver ms ejemplos de borrado de texto. Bsqueda y cambio de texto vi dispone de varios ordenes para bsqueda. Podemos buscar desde un solo carcter hasta expresiones completas. Las dos ordenes principales de bsqueda basados en caracteres son f y t. ; Repite el ltimo comando f,t. Si el carcter que usted buscaba no se encuentra, vi emitir un pitido o le dar otro tipo de seal (tal vez un parpadeo de toda la pantalla). vi le permite buscar una cadena de texto en el buffer de edicin. /texto Busca hacia la derecha y abajo la siguiente instancia de texto. ?texto Busca hacia la izquierda y arriba la siguiente instancia de texto. n Repite el ltimo comando / o ?. Cuando use las ordenes / o ?, la ltima lnea de la pantalla se borrar para que escriba la cadena de texto que busca. Con estos conocimientos (y un poco de prctica) usted ser capaz de deslumbrar a sus amistades con sus rpidos movimientos por cualquier fichero de texto. Lo mejor de todo es que podr editar cualquier fichero de configuracin de su sistema Linux. Y crear sus propios scripts!

110

Captulo 6. Scripts de Shells

Creacin de un script
Conociendo el uso de un editor de texto, la realizacin de un script de shell es una tarea trivial. Generalmente crearemos scripts para uso personal, como automatizacin de tareas o ejecucin de sentencias largas de ordenes. Tambin es posible que usemos scripts de terceros e incluso que otros leguen a utilizar un script nuestro. Existe un carcter especial del cual haremos bastante uso: la almohadilla (#). Toda lnea que comience por almohadilla ser ignorada por el interprete de comandos. Es lo que se conoce como comentario. Normalmente se usa para documentar los scripts o para omitir la ejecucin de una lnea determinada. (Recuerde que la shell leer lnea a lnea el contenido del script, cada lnea una orden.) Ademas la usaremos para otra cosa ms, la primera lnea del script se suele empezar as: #!/bin/sh Es la forma de indicar al interprete de comandos que lo que viene a continuacin es un script y como debe usarlo. Se suele indicar sh por ser un interprete que se encuentra en todas las maquinas Linux y Unix A partir de aqu el script sigue segn nuestras necesidades. Puede que necesite usar variables o simplemente ejecutar dos docenas de comandos. Recuerde lo que aprendi del uso avanzado del shell, como el uso de caracteres especiales ya que le ser til en la creacin de potentes scripts. Aqu unos ejemplos sencillos: #!/bin/sh /usr/bin/netscape rm -f $HOME/.netscape/history.list Este script lo nico que hace es lanzar el navegador Netscape y borrar el histrico de los sitios visitados al cerrarlo. Si se abalanz sobre el teclado para probar enseguida estos y otros scripts que se le han ocurrido, se habr dado cuenta de que algo no va del todo bien, pues a pesar de haber dominado correctamente el editor vi y escrito el texto con soltura y estilo, el script no funciona. Recuerda el captulo de los permisos de los ficheros? Efectivamente. Todava quedan un par de pasos para que los scripts sean del todo operativos: 1. Dar al script permiso de ejecucin. 2. Poner el script en un directorio que est incluido en el PATH.

ESware Linux

111

Haciendo esto, no debera haber mayor problema, aunque hay algunas variantes del mismo tema. Por ejemplo, un script se puede lanzar como argumento de una shell: [Crispin@Globus /Crispin]$ sh navegador S el script anterior se llamase navegador, la sentencia anterior lo lanzara. Esto es igual que: [Crispin@Globus /Crispin]$. navegador Fijese en el punto! Otro ejemplo, asignamos permiso de ejecucin, pero el directorio donde se encuentra no est en el PATH: [Crispin@Globus /Crispin]$./navegador El./ (punto - barra)indica al shell que el script se encuentra en el directorio actual y lo ejecuta. Este mtodo es perfecto para probar el script o la ejecucin espordica. Lo ms correcto para un script de uso habitual es colocar el script en un directorio que est incluido en el PATH. Recuerde que los scripts que realicen tareas administrativas pueden ir al directorio /sbin, los generales para todos los usuarios a /bin, los personales se deberan guardar en /home/user/bin (sustituyendo user por el nombre del usuario en cuestin) y que hay que vigilar bien la asignacin de permisos. S an con esto no tiene suficientes recursos para realizar determinadas tareas, no le queda ms remedio que continuar leyendo, por que a continuacin explicamos el uso de sentencias de repeticin y sentencias condicionales.

Sentencias de repeticin Ya podemos realizar increbles tareas de forma profesional mediante la ejecucin de scripts, pero todava falta algo, un poco de dinamismo quiz. Las sentencias de repeticin se usan para realizar un determinado nmero de veces una serie de rdenes que aparecen entre dichas sentencias. Los que han estudiado programacin pueden saltarse esta seccin ya que se vern conceptos bsicos que tendrn superados. Los que no tengan el ms mnimo inters por saber ms de programacin de scripts de shell, tambin pueden dar un salto adelante, siempre pueden volver a consultar esta parte. El resto, que encienda el ordenador y practique sobre la marcha. Ser ms divertido.

112

Captulo 6. Scripts de Shells

Primero veamos las herramientas que tenemos a nuestra disposicin para evaluar expresiones o comandos. Un comando completado con xito devuelve un valor cero (verdad). Si la orden finalizo anormalmente devolver un valor distinto de cero. Recuerde esto pues puede utilizarlo en la ejecucin de sus scripts. Otro dato a tener en cuenta es el uso de parmetros en la ejecucin del script, puesto que podemos refereciarlos de la siguiente manera: $1 $2 $# $* $? $0 primer parmetro segundo parmetro (as se numerarn cada uno de los parametros) nmero de parmetros pasados al programa todos los parmetros cdigo de la ltima orden o programa ejecutado desde el script nombre del programa

La orden test Tambien podemos evaluar variables u operadores (numricos o cadenas). La orden que se usa para realizar comparacion de expresiones es test. test evalua la expresin y si esta es verdad devuelve como salida cero. Si la expresion no se cumple devuelve un valor distinto de cero. Nos permite comparar: Cadenas Operaderes lgicos Archivos Comparacin nmerica

Comparacin de cadenas = != -n -z para ver si son iguales para ver si son no iguales para evaluar si la longitud de la cadena es mayor que cero para evaluar si la longitud de la cadena es cero

Comparacin de Operadores Lgicos Se utilizan para comparar expresiones usando las reglas lgicas. !: para negar una expresin lgica

ESware Linux

113

-a -o

para utilizar un AND con dos expresiones lgicas para utilizar un OR con dos expresiones lgicas

Comparacin de archivos -d -f -r -w -x -s -e -b comprueba si es un directorio comprueba si es un archivo comprueba si tiene permiso de lectura comprueba si tiene permiso de escritura comprueba si tiene permiso de ejecucin comprueba si tiene tamao mayor que cero comprueba si existe comprueba si es un dispositivo de bloques

Comparacin de numrica - eq - ge - le - ne - gt - lt comprueba si son iguales comprueba si un nmero es mayor o igual que otro comprueba si un nmero es menor o igual que otro comprueba si son diferentes comprueba si un nmero es mayor que otro comprueba si un nmero es menor que otro

La orden expr Si necesitamos realizar operaciones usaremos expr. Es una utilidad de clculo aritmetico entero. Admite las siguientes operaciones bsicas: + * / % suma sustraccin producto divisin entera resto

Ojo!, el carcter * es especial por lo que debe ir precedido de \ para evitar su interpretacin por el interprete de comandos. Solo admite valores enteros naturales y los decimales se eliminan.

114

Captulo 6. Scripts de Shells

La orden read Para tomar un valor de forma interactiva y usarlo en nuestro script usaremos read. Normalmente el valor se almacena en una variable para su posterior uso. Este conjunto de herramientas lo usaremos a la hora de tomar decisiones respecto al trabajo que realizar nuestro script en funcin de los resultados que obtenga. Ahora veamos las sentencias:

La sentencia for Se puede usar de varias maneras: for contador in lista do sentencias done Se ejecutaran las sentencias una vez por cada valor de lista, en cada repeticin (o bucle) se asigna el valor de la lista a contador. Lista puede ser una variable que contenga un nmero de elementos o una lista de valores separados por espacios. Un ejemplo sencillo: for contador in 1 2 3 do echo hola $c done Lo nico que hace es saludarnos por cada valor de la lista y mostrar el valor de contador, en este caso dir hola tres veces. Un ejemplo ms complejo: for valor in ls do cat $valor | more done Este script ejecuta ls, cada archivo es pasado a valor y hasta que se lea todo el directorio muestra el contenido de cada archivo. Otra forma de usar for:

ESware Linux

115

for contador do sentencias done En este caso sentencias se ejecuta una vez por cada uno de los parmetros pasados al script. Un ejemplo sencillo: for valor do echo hola done Al ejecutarlo saludara tantas veces como parmetros le pasemos si el script se llama saluda y escribimos: [Crispin@Globus /Crispin]$ saluda 1 2 3 hola hola hola [Crispin@Globus /Crispin]$ Se puede obtener una lista de los parmetros con $@. La sentencia while While significa mientras, de manera que ejecutar las sentencias mientras suceda algo que hemos especificado, cuando deje de cumplirse, el bucle finalizar. La sintaxis es: while expresin do sentencias done Fcil, verdad?; Un ejemplo:

116

Captulo 6. Scripts de Shells

#!/bin/sh n=10 while [ $n -ge 0 ] do echo Restando 1 $n n=`expr $n - 1` done Se inicializa una variable a un valor (10) y se ejecutan las ordenes (echo y expr) mientras no tenga otro valor (0). Notese que expr se ejecuta por que est entre acentos graves.

La sentencia until Ejecutar las ordenes hasta que se cumpla una condicin dada. Cuando deje de ser cierto finalizar el bucle. La sintaxis es: until expresin do sentencias done El formato es similar al de la sentencia while. while ejecuta el bucle mientras la comprobacin sea verdadera, until ejecuta el bucle hasta que la comprobacin sea verdadera. Ejemplo: #!/bin/sh n=0 until [ $n -ge 10 ] do echo Sumando 1 $n n=`expr $n + 1` done Se inicializa una variable a un valor (0) y se ejecutan las ordenes (echo y expr) hasta que tenga otro valor (10).

ESware Linux

117

Sentencias condicionales Se utilizan en los scripts para tomar una decisin. Normalmente se realizar algn tipo de evaluacin y dependiendo del resultado se opta por ejecutar una parte del programa u otra determinada. La sentencia if Evala una expresin para tomar una decisin. La sintaxis es: if [ then elif then else fi Un intento de traducir esto a nuestra manera de pensar es el s condicional: s pasa_tal_cosa entonces haz_lo_que_sea o_s tal_otra_cosa entonces haces_esto_otro s_no pues_haces_lo_de_mas_all se_acab Las condiciones if se pueden anidar. Puede haber un if dentro de otro if. Las partes elif y else no son necesarias. La parte else solo se ejecuta si no se cumple ningunas de las expresiones de la parte if o elif. La palabra fi se utiliza para indicar el final de las sentencias if. Debe existir un fi para cada if. Es util sobre todo cuando se anidan condiciones if. Ejemplo: #!/bin/sh echo read if [ then elif expresin ] sentencias [ expresin ] sentencias sentencias

Me quiere o no me quiere ? var $var = Si ] echo $var te quiere [ $var = No ]

118

Captulo 6. Scripts de Shells

then else fi

echo $var te quiere echo $var no parece una respuesta vlida

Aqu hemos introducido un elemento nuevo: read, que espera una entrada del usuario y la asigna a la variable (var) que luego es evaluada. En funcin de la respuesta se escribe un mensaje en pantalla que adems hace uso de la misma variable. La sentencia case Se utiliza para ejecutar diferentes sentencias dependiendo de un valor o rango de valores que coincida con la variable especificada. El formato de uso es: case cadena in lista_de_patrones1) sentencias ;; lista_de_patrones2) sentencias;; esac Un par de aclaraciones: Para cada una de las condiciones especificadas se ejecutan todas las sentencias asociadas hasta encontrar el doble punto y coma (;;). Notese que las condiciones acaban con un cierre de parentesis. ). S la ltima condicin es asterisco (*), las sentencias asociadas se ejecutan s no se cumple ninguna de las otras. ( que lio!). Vamos con el ejemplo: #!/bin/sh case $# in 0) echo No has puesto parametros ;; 1) echo Has puesto un parametro ;; *) echo Has puesto ms de un parametro ;; esac

Otras sentencias Estas otras sentencias puede que sean utiles si es necesario una salida rapida del script.

ESware Linux

119

Sentencia break Se usa para salir de un bucle. Sentencia exit Est se utiliza para salir del programa.

Funciones Una funcin es una parte del programa que realiza un proceso concreto y que se puede utilizar cada vez que sea necesario repetir el proceso, sin necesidad de repetir el cdigo. Suponga que tiene que calcular el I.V.A. de ciertas cantidades que lee de una lista, el clculo siempre es el mismo, solo cambia el dato sobre el que opera, pues escriba una funcin y le pasa el dato cada vez que sea necesario. La sintaxis de la funcin es: func () { sentencias } La llamada a una funcin se hace as: func parametro1 parametro2 parametro3 Una funcin puede analizar los parametros como si se tratase de los parametros posicionales pasados a un script de shell. El cdigo de retorno de la funcin ser el cdigo de retorno del ltimo de los comandos del cuerpo. Para cambiar la salida de la funcin se usa return valor en cuyo caso se devuelve el valor. A ver si un ejemplo nos ayuda. Esta funcin recibe dos numeros, los compara y devuelve el mayor de ellos. #!/bin/sh max () { if [ $1 -gt $2 ] then return $1 else return $2 fi }

120

Captulo 6. Scripts de Shells

max $1 $2 MAX=$? echo El mayor es $MAX Lo primero es declarar la funcin. Siempre antes de llamarla desde el programa. Y la funcin es invocada desde el programa simplemente con su nombre. En este caso el clculo se realiza sobre los parametros posicionales pasados al programa, osea que la ejecucin de este script en concreto debe ir con dos parametros, que son los nmeros que deseamos evaluar. Estamos usando $1 y $2 dentro y fuera de la funcin, y funciona. Pero podriamos dar nombre propio a las variables dentro de la funcin, son tratadas como variables locales: max () { local A=$1 local B=$2 if [ $A -gt $B ] then return $A else return $B fi } Con este rpido repaso a las funciones daremos por terminada la seccin de scripts de shell. Espero que haya sido til, prctica e indolora.

ESware Linux

121

Captulo 7. Administracin del Sistema

A primera instancia, el asunto suena interesante: administrar un red con cientos de ordenadores y multitud de usuarios es lo que quiero hacer cuando sea mayor. Empezaremos de una forma ms modesta, afinando nuestro sistema, estudiando los servicios que tenemos disponibles y el control que tenemos sobre ellos. Nuestra meta es hacer que las cosas vayan exactamente como habiamos pensado. (Que no es poco). Un sistema Linux es grande y complicado. Y la principal tarea del administrador es que todo funcione. El administrador gestionar los recursos del sistema para que estn disponibles a los usuarios. Ser necesario identificar dichos recursos y asignarlos correctamente definiendo correctamente las formas de acceso, los propietarios de los mismos y la autoridad relacionada con cada uno de ellos. No est en los escritos todas las funciones de un administrador, pero por si alguien necesita una lista por la cual guiarse, o para ese trabajo de la facultad, aqu va una a titulo orientativo: Gestin de cuentas. Copias de seguridad y restauraciones. Control del rendimiento. Ayudar y documentar a usuarios. Control de los sistemas. Seleccin e instalacin de software. Gestin de seguridad. Configuracin y ajuste de los sistemas

Pero empecemos por el principio, la figura del administrador del sistema en Linux tiene nombre propio: root.

La cuenta root
Anteriormente vimos todo lo relacionado con los permisos de usuario y de como el sistema protege a los usuarios y a si mismo de errores y malas intenciones. Pues el sistema se

ESware Linux

123

olvida completamente de esto cuando reconoce al usuario root. Es la cuenta del administrador y no hay limitaciones para este usuario. Esto es lo primero y ms veces repetido: No use la cuenta root habitualmente!. Solo se debe emplear para realizar tareas administrativas. Si se comete un error siendo root, el sistema no le detendr. La formula habitual, si se requieren los poderes del root, es utilizar el comando su. Este comando ejecuta una shell con identificadores de usuario y grupo distintos. Lo que quiere decir que permite a un usuario convertirse temporalmente en otro usuario. Si no se especifica ningn nombre de usuario, por defecto se usa root. shell a ejecutar se toma de la entrada correspondiente al usuario en el fichero de contraseas, o /bin/sh si no est especificada en dicho fichero. La ejecucin de su solicitar el contrasea del usuario, menos que se ejecute por el root. El administrador ser tambien el encargado de la realizacin de cambios en el sistema. Cualquier cambio deber ser cuidadosamente planificado y probado en un entorno controlado antes de implantarlo en produccin. S que es imposible evaluar todas las posibles variables y condiciones que se generarn al llegar los usuarios al da siguiente de realizar ese cambio tan importante. Pero intentel, la responsabilidad es suya. El administrador debe ser el que provee las soluciones, si su actividad genera problemas, tenga previsto como restaurar una condicin estable en el minimo lapso de tiempo. A eso me referia al decir cuidadosamente planificado, no solo debe pensar como implementar el nuevo cambio, adems tenga previsto un plan de recuperacin de emergencia, por si algo sale mal. Tambien es buena idea plantear gradualmente las mejoras, es ms facil volver atrs si los cambios son menores que cuando se cambian de golpe gran nmero de cosas. No sabr que fall ni porque si hizo todos los cambios a la vez. Y no digamos si afectan a gran parte del equipo. Podr diagnosticar un problema si slo toc un par de cosas y comprob el funcionamiento antes de seguir adelante. Cada cambio (aparte del xito con que se realice) debe ser anunciado con suficiente antelacin cuando afecte a los usuarios, de manera que sepan como comportarse ante la novedad. El mejor sistema, funcionando correctamente puede ocasionar una pequea revuelta si los usuarios ven afectado su trabajo, aunque solo hablemos de pequeos cambios de forma. Informeles con antelacin de lo que va a ocurrir y documente, si es necesario, las nociones sobre el manejo (o lo que sea) que necesiten.

Programacin de tareas
Es bastante comn que necesite ejecutar un script (o un comando) periodicamente para algn tipo de tarea rutinaria. ESware Linux le permite planificar la ejecucin de tareas.

124

Captulo 7. Administracin del Sistema

Para ello se utilizan servicios que emplean el reloj del sistema para lanzar unos procesos, determinados previamente, a la hora indicada, aunque no est presente el usuario. Estos servicios se lanzan en el arranque del sistema y permanecen vivos durante toda la sesin para atender esa programacin de tareas. Tambien disponemos de otro tipo de planificacin. El mtodo descrito anteriormente nos permite planificar en el tiempo, lo que sin duda resulta til, pero otra manera de aprovechar recursos es programar la ejecicin de tareas dependiendo de la carga del sistema. Linux es multitarea, de manera que el uso de la CPU se reparte entre los procesos que estn en ejecucin. Esto se consigue repartiendo el tiempo de procesamiento entre cada uno de ellos. Si el nmero de procesos simultaneos es elevado, el tiempo dedicado a cada uno de ellos disminuye. El efecto que percibe el usuario es una ralentizacin en la ejecucin de las tareas. Para estas situaciones disponemos de mecanismos que permiten programar la ejecucin de procesos para cuando la carga del sistema sea baja. O modificar la prioridad que tendrn durante su ejecucin. at El comando at permite la ejecucin de una serie de ordenes en un momento especificado. La sintaxis de at es: at hora fecha + incremento ordenes [ctrl+d] at permite especificaciones de hora con bastante prcisin. Acepta horas con formato HH:MM para ejecutar un trabajo a una determinada hora del da. (Claro est que si esa hora ya ha pasado, se ejecutar el da siguiente). Tambin se puede especificar la hora con usando AM o PM para indicar por la maana o por la tarde. Podemos indicar el da de ejecucin, proporcionando la fecha con el formato MMDDYY o MM/DD/YY o DD.MM.YY. La especificacin de una fecha debe seguir a la de la hora del da. Se pueden dar horas como now + count unidades_de_tiempo, donde unidades_de_tiempo puede ser minutes, hours, days, o weeks y se puede indicar a at que ejecute el trabajo hoy poniendo como sufijo de la hora la palabra today y para ejecutarlo maana, se pondra como sufijo la palabra tomorrow. Por ejemplo, para ejecutar un trabajo el 12 de septiembre a las siete de la tarde: [Crispin@Globus Cripin]$ at 19:00 Sep 12 at> comandos at> <EOT> # aqu puls <ctrl-d> warning: commands will be executed using /bin/sh

ESware Linux

125

job 2 at 2000-09-12 19:00 [Crispin@Globus Cripin]$ Si quiero lanzar un programa dentro de tres horas: [Crispin@Globus Cripin]$ at now + 3 hours at> comandos at> <EOT> # aqu puls <ctrl-d> warning: commands will be executed using /bin/sh job 3 at 2000-06-20 12:25 [Crispin@Globus Cripin]$ Para ver un listado con todos los trabajos lanzados en diferido ejecute at con la opcin -l y para eliminar un trabajo de la cola usaremos la opcin -d seguida del nmero identificativo del trabajo. batch El comando batch ejecuta comandos en modo diferido cuando lo permite el nivel de carga del sistema; osea, cuando la carga media cae por debajo de 0.8, o del valor especificado en la invocacin de atrun. La sintaxis de batch es: batch ordenes [ctrl+d] Para ambos at y batch, los comandos a los que se aplicarn son ledos de la entrada estndar o de un fichero indicado si usamos la opcin -f y ejecutados. El directorio de trabajo, el entorno son tomados del momento de invocacin, y no el de ejecucin. El usuario recibir un correo con la salida de error y la salida estndar de sus comandos, si hay alguna. El correo se enviar utilizando el comando /usr/lib/sendmail. Correo que podr leer con la orden mail. El usuario root, por supuesto, siempre puede utilizar estos comandos. Para otros usuarios, los permisos para utilizarlos se pueden limitar mediante el uso de los ficheros /etc/at.allow y /etc/at.deny. Si el fichero /etc/at.allow existe, slo los usuarios cuyos nombres estn mencionados aqu tienen permiso para utilizar at. Si /etc/at.allow no existe, se chequea /etc/at.deny y entonces todos los usuarios cuyos nombres no estn mencionados all tienen permiso para utilizar at.

126

Captulo 7. Administracin del Sistema

Si ninguno de los ficheros existe, slo podr utilizar at el administrador del sistema. Un /etc/at.deny vaco significa que todo el mundo puede utilizar estos comandos, esta es habitualmente la configuracin por defecto. nice El comando nice modifica el nivel de prioridad de ejecucin de rdenes o programas asignando ms o menos tiempo de CPU a la tarea dada. La prioridad puede ser ajustada por nice en el rango entre -20 (la prioridad ms alta) a 19 (la ms baja). nicamente el root puede asignar valores negativos. La sitaxis de nice es: nice -n orden donde n es el nmero que indica la prioridad. nohup El comando nohup inhibe la terminacin de un proceso aunque el usuario salga del sistema. Esto tiene sentido para procesos largos que no requieran asistencia del usuario que los lanz, normalmente se ejecutarn en segundo plano y nohup impedir que finalicen al salir el usuario del sistema. La sitaxis de nohup es: nohup orden & cron y crontab Para establecer la ejecucin periodica de rdenes a intervalos prefijados se usa cron, que es lanzado durante el arranque del sistema, y permanece activo para dar servicio a las entradas que los usuarios le indiquen mediante la ejecucin de crontab. El comando crontab necesita leer la informacin de las especificaciones de un archivo externo. La sitaxis de crontab es: crontab archivo_especificaciones El archivo de especificaciones constar de una lnea para cada tarea, con seis campos separados por espacios.

ESware Linux

127

Los campos son, por este orden: Minutos Horas Da (del mes) Mes Da (de la semana) Orden Los minutos se indican de 0 a 59, las horas de 0 a 23, el da del mes de 1 a 31, el mes de 1 a 12 y el da de la semana de 0 a 6, siendo el domingo el nmero cero. El asterisco (*) significa todos osea cualquier valor del rango. Al final se indica la orden a ejecutar. Veamos algunos ejemplos de como pueden ser estos archivos: 30 9 * * * orden (ejecuta orden todos los das a las nueve y media) 0 12 * * 5 orden (ejecuta orden los viernes a las doce en punto) * 8 12 9 * orden (ejecuta orden todos los minutos desde las 8 horas a las 9 horas cada 12 de septiembre) * 0 19 1 * 1 orden (ejecuta orden todos los lunes y todos los dias 1 de cada mes a las siete de la tarde) De manera que si creamos un archivo de esta manera, sencillamente con ejecutar crontab seguido del nombre del archivo, cron se encargar de la ejecucin de las rdenes con la frecuencia indicada. Tambien estn admitidos rangos, como por ejemplo, para indicar la repeticin de una orden de lunes a viernes, en el campo del da de la semana ponemos: 1-5. Cada usuario solo puede tener un fichero de especificacin de crontab (se le conoce como archivo crontab). Cada ejecucin de crontab archivo_de especificaciones establece ese archivo como el vlido para que cron lo interprete y ejecute. En realidad podr tener varios archivos definidos, pero solo ser utilizado el ltimo que se ejecut con crontab. De nuevo se puede limitar el uso de crontab mediante la inclusin de usuarios en los ficheros /etc/cron.allow y /etc/cron.deny. Si el fichero cron.allow existe, slo los usuarios cuyos nombres estn mencionados aqu tienen permiso para utilizarlo. Si cron.allow no existe, se chequea cron.deny y entonces todos los usuarios cuyos nombres estn mencionados se les denegar el uso. Si ninguno de los ficheros existe, slo podr utilizar crontab el administrador del sistema. Si cron.allow no existe y cron.deny vaco significa que todo el mundo puede utilizar crontab. Por ltimo decir que una vez editado el fichero de especificacines y ejecutado crontab con l, no es conveniente modificarlo con un editor de texto. La forma de introducir algn cambio en el fichero es utilizar crontab con la opcin -e. Para eliminar el fichero utilice la opcin -r. Y si quiere ver una lista del contenido del fichero pruebe la opcin -l.

128

Captulo 7. Administracin del Sistema

X-facilidades para crontab Si se ha entendido, y practicado un poco, el uso de crontab no supondr ningn problema y podremos realizar tareas rutinarias de forma desatendida. Para terminar de facilitarnos el trabajo, existen aplicaciones en entrono grfico que ayudan a definir nuestro fichero crontab. Desde XWindow ejecute kcrontab, ver la siguiente pantalla:

Figura 7-1. Pantalla principal de kcrontab.

De un vistazo ya vemos los campos del fichero crontab. Podemos, desde el men file (archivo), abrir nuestro fichero (read), crear uno nuevo (new) o escribir en l (write). Al crear un fichero crontab o aadir una entrada al existente veremos la siguiente pantalla:

ESware Linux

129

Figura 7-2. Pantalla de edicn de entradas de kcrontab.

Administracin de Usuarios
Un sistema Linux se puede usar como equipo domestico personal con una nica cuenta de usuario o como servidor corporativo con cientos de usuarios a los que hay que permitir el acceso. No importa cual sea su caso. La gestin de usuarios es uno de los aspectos que es importante comprender. An en el primer caso, usted debera crear una cuenta para las tareas habituales y usar la cuenta de root solo para la realizacin de tareas de administracin. (No se canse de leer esto, se repetir frecuentemente.)

130

Captulo 7. Administracin del Sistema

Usuarios Cada usuario debe tener su propia cuenta, y el sistema identificar a cada usuario permitiendole acceder (o no) y controlar las tareas que pueda realizar. Esta es la informacin que el sistema mantiene acerca de cada usuario: Nombre de usuario El nombre de usuario es el identificador nico dado a cada usuario del sistema. Crispin y Goliat son nombres de usuarios, existe una serie de usuarios que vienen con el sistema o asociados a un programa determinado y suele ser buena idea dejarlos como estn, seguramente hay software que los usar para lanzar aplicaciones. Se pueden utilizar letras y dgitos junto a los caracteres _ (subrayado) y . (punto). Los nombres de usuario se limitan normalmente a 8 caracteres de longitud. Identificacin de usuario El user ID, o UID, es un numero nico dado a cada usuario del sistema. El sistema reconoce a los usuarios por su UID, no por el nombre de usuario. Identificacin de grupo El group ID, o GID, es la identificacin del grupo del usuario por defecto. Cada usuario pertenece a uno o mas grupos definidos por el administrador del sistema. Por defecto se crea un grupo, de igual nombre que el usuario, al utilizar la orden adduser. Contrasea El sistema almacena la clave encriptada del usuario. El comando passwd se utiliza para poner y cambiar las claves de los usuarios. Nombre completo El nombre real o nombre completo del usuario es una informacin opcional que usaremos para identificar a los usuarios del sistema por sus nombres reales. Por ejemplo, el usuario Crispin puede tener el nombre Javier Roman en la vida real. Directorio Personal Es el directorio en el que se coloca al usuario acceder a el sistema. Cada usuario debe tener su propio directorio personal, normalmente situado bajo /home. Interprete de comandos Es el interprete de comandos que es arrancado para el usuario al acceder a el sistema. Ejemplos pueden ser /bin/bash y /bin/tcsh. Esta informacin se guarda en el fichero /etc/passwd.

ESware Linux

131

Cada linea del fichero contiene informacin acerca de un nico usuario; el formato de cada linea es nombre:clave encriptada:UID:GID:nombre completo:dir-personal:interprete Cada campo est separado por dos puntos. Un ejemplo puede ser: Crispin:TBe1jvLU$QWNBxcwdVM:506:506:Javi Roman:/home/Crispin:/bin/bash El primer campo, Crispin, es el nombre de usuario. El siguiente campo, TBe1jvLU$QWNBxcwdVM, es la clave encriptada. Las claves no se almacenan en un formato legible, son encriptadas utilizndose a si mismas como clave. En otras palabras, solo si se conoce la clave, esta puede ser desencriptada. Es una forma de Encriptacin conocida como de un solo sentido. El mecanismo es bastante seguro, en realidad la contrasea nunca se desencripta, lo que sucede al hacer un login (acceder a el sistema identificandose mediante el nombre de usuario y la contrasea) es que la contrasea se vuelve a encriptar y se compara con la que tenemos almacenada. Si las dos coinciden, se reconoce al usuario y se le permite entrar. Una forma ms segura de almacenar las contraseas es el sistema shadow password (claves en sombra) en la que la informacin de las claves se relega al fichero /etc/shadow. Este es el mtodo empleado por Esware Linux. (salvo si se opt por desactivarlo en el proceso de instalacin) En este caso en el campo de la contrasea de /etc/passwd se sustituye por una x, de esta manera: Crispin:x:506:506:Javi Roman:/home/Crispin:/bin/bash El problema de /etc/passwd es que es legible por todo el mundo, mientras que /etc/shadow no lo es, por lo que suministra un grado extra de seguridad. Las claves shadow suministran otras funciones como la expiracin de claves. Veremos con ms detalle las shadow password en el captulo dedicado a seguridad. Si necesitamos deshabilitar una cuenta temporalmente, basta con colocar un asterisco (*) delante de la clave encriptada: Crispin:*TBe1jvLU$QWNBxcwdVM:506:506:Javi Roman:/home/Crispin:/bin/bash El asterisco (*) no es un carcter vlido para un campo encriptado. Si despus necesitamos usar esta cuenta de nuevo, solamente tendremos que retirar el asterisco.

132

Captulo 7. Administracin del Sistema

El tercer campo 506, es el UID (Nmero de Identificacin de Usuario). Este debe ser nico para cada usuario. El cuarto campo, 506, es el GID (Nmero de Identificacin de Grupo). Este usuario pertenece al grupo numerado 506. La informacin de grupos, se almacena en el fichero /etc/group. Lo repasaremos enseguida. El quinto campo es el nombre completo del usuario. Javi Roman. Este campo es opcional rellenarlo. Es til en sitios donde tengamos muchos usuarios para la identificacin de los mismos. El sexto campo es el directorio personal del usuario (/home/Crispin). No es necesario que el directorio inicial de un usuario tenga el mismo nombre que el del nombre de usuario. Sin embargo, ayuda a identificar el directorio. Y el ltimo es interprete de comandos que usar para esa sesin (/bin/bash). Grupos Cada usuario pertenece a uno o mas grupos. La nica importancia real de las relaciones de grupo es la perteneciente a los permisos de ficheros, cada fichero tiene un grupo propietario y un conjunto de permisos de grupo que define de que forma pueden acceder al fichero los usuarios del grupo. Hay varios grupos definidos en el sistema, como pueden ser bin, Mail, y sys. Los usuarios no deben pertenecer a ninguno de estos grupos; se utilizan para permisos de ficheros del sistema. En su lugar, los usuarios deben pertenecer a un grupo individual, como users. Si se quiere ser detallista, se pueden mantener varios grupos de usuarios como por ejemplo estudiantes, soporte y facultad. El fichero /etc/group contiene informacin acerca de los grupos. El formato de cada linea es nombre de grupo:clave:GID:otros miembros Algunos ejemplos de grupos pueden ser: root:*:0: usuarios:*:100:mdw,larry invitados:*:200: otros:*:250:kiwi El primer grupo, root, es un grupo especial del sistema reservado para la cuenta root. El siguiente grupo, usuarios, es para usuarios normales. Tiene un GID de 100. Los usuarios mdw y larry tienen acceso a este grupo. Recurdese que en /etc/passwd cada usuario tiene un GID por defecto. Sin embargo, los usuarios pueden pertenecer a mas de un

ESware Linux

133

grupo, aadiendo sus nombres de usuario a otras lneas de grupo en /etc/group. El comando groups lista a que grupos se tiene acceso. El tercer grupo, invitados, es para usuarios invitados, y otros es para otros usuarios. El usuario kiwi tiene acceso a este grupo. Como se puede ver, el campo clave de /etc/group raramente se utiliza. A veces se utiliza para dar una clave para acceder a un grupo. Esto es raras veces necesario. Para evitar el que los usuarios cambien a grupos privilegiados (con el comando newgroup), se pone el campo de la clave a *. Se pueden usar los comandos addgroup o groupadd para aadir grupos a su sistema. Normalmente es mas sencillo aadir lneas a /etc/group uno mismo, puesto que no se necesitan mas configuraciones para aadir un grupo. Para borrar un grupo, solo hay que borrar su entrada de /etc/group. Alta y baja de usuarios El proceso es agregar una entrada al fichero /etc/passwd con los datos antes descritos, para el nuevo usuario, crear su directorio personal y asignarle una contrasea de acceso al sistema. Realizar esto manualmente, sea editar el fichero, crear el directorio (con el contenido necesario), no es algo complicado, pero es posible que olvidemos algn paso, por lo que es mucho ms habitual utilizar alguna herramienta que tenga automatizado el procedimiento. Si desea hacer esto a mano (por experimentar nuevas sensaciones, por verificar como funciona o por alguna otra razn) no olvide realizar todos estos pasos: Agregar la entrada correspondiente al nuevo usuario en el fichero /etc/passwd, rellenado todos los campos necesarios. Tenga en cuenta lo siguiente: los campos van separados por dos puntos (:) sea que un campo en blanco ser dos puntos seguido de otros dos puntos. El campo debe existir, aunque est vaco. Vea un ejemplo: Goliat::508:508::/home/Goliat:/bin/bash Se ha dejado en blanco el campo de la contrasea y el nombre completo (que es opcional). El campo de la contrasea en blanco significa que este usuario puede entrar al sistema sin introducir password. Evidentemente esto es un agujero de seguridad. Recuerde que la generacin de la clave encriptada no se realiza hasta ejecutar el comando passwd. No puede poner la clave encriptada a mano!, el proceso correcto es rellenar el campo de la contrasea de la siguiente manera:

134

Captulo 7. Administracin del Sistema

Goliat:!!:508:508::/home/Goliat:/bin/bash As no se podr usar la cuenta de ninguna manera hasta que se establezca la contrasea. Y queda otra cuestin importante, est usando shadow password?, entonces aplique esto pero al fichero /etc/shadow y lea en cuanto pueda la parte de seguridad referente a shadow password. Ojo tambien al UID y GID, deben ser nicos en el sistema, asegurese de no asignar uno que ya est en uso. Agregar la entrada correspondiente al grupo al que pertenece el nuevo usuario en el fichero /etc/group, rellenado todos los campos necesarios. Cree el directorio de trabajo personal del usuario. Hay una plantilla de los ficheros de configuracin por defecto en el directorio /etc/skel, es recomendable copiar el contenido de este directorio al directorio personal del usuario recin creado. Tenga en cuenta los ficheros que empiezan por punto. Y asegurese de dar la propiedad del directorio y el fichero al usuario, con el comando chown. Establezca la contrasea del usuario usando passwd nombre_de_usuario. Si opta por la opcin ms cmoda de usar alguna de las herramientas diseadas para aadir usuarios el proceso es significativamente ms sencillo, ya que las tareas anteriores se pueden realizar de manera automtica, dependiendo de la herramienta que usemos. Vamos a verlas: Comando adduser Sintaxis: adduser nombre_de_usuario Esto actualiza el fichero /etc/passwd aadiendo la entrada para el usuario nuevo, crea el directorio personal (con los ficheros de configuracin), y aade la entrada al fichero de los grupos, /etc/groups. Lo nico que falta es asignarle una contrasea y la cuente estar operativa. Opciones interesantes: b directorio personal Normalmente se usa el nombre de usuario dentro del directorio /home, pero podemos especificar el que deseemos con esta opcin. e fecha de expiracin La fecha en que la cuenta del usuario dejar de estr activa.

ESware Linux

135

g grupo inicial El grupo principal del usuario, si deseamos que sea distinto al que se crea por defecto. s shell por defecto El shell que usar el usuario. despus de ejecutar adduser, asigne la contrasea con passwd para completar el proceso. El comando adduser es equivalente, en algunos sistemas a useradd. Comando userdel Sintaxis: userdel nombre_de_usuario Igual que adduser, modifica los ficheros /etc/passwd, /etc/group y si se est usando, /etc/shadow, eliminando las entradas del usuario en cuestin. Comando userconf userconf es una herramienta que nos permite gestionar desde un nico interfaz, tanto usuarios como grupos e incluso aspectos avanzados como politica de cuentas (nmero minimo de caracteres del password, duracin de las cuentas y cuentas especiales; Se tratar con ms profundidad la politica de cuentas en el apartado de seguridad.) La comodidad de userconf es que funciona igual desde una consola de texto, (en formato mens) como desde una interfaz grfica; con comodos clics de ratn. En la figura 7.3 puede apreciar la pantalla principal de userconf.

Figura 7-3. Pantalla de entrada de userconf.

136

Captulo 7. Administracin del Sistema

Conociendo la base de datos de usuarios y grupos, (como estamos seguros ya ocurre), la utilizacin de esta herramienta es completamente intuitiva. Pulse en Cuentas de usuario para ver los usuarios existentes o para agregar, borrar o modificar un usuario. Primero veremos todas las cuentas del sistema (vase la Figura 7.4).

Figura 7-4. Pantalla de cuentas de usuario

ESware Linux

137

Desde esta pantalla podemos editar una cuenta ya existente, haciendo doble clic en ella o si pulsa en Agregar tendremos un men para rellenar los campos que ya conoce:

Figura 7-5. Pantalla para agregar usuarios

138

Captulo 7. Administracin del Sistema

Comando kuser Si utilizamos el gestor de ventanas KDE, tenemos en el men Sistema una opcin llamada Administrador de Usuarios, que es una forma de llamar a el programa kuser, la herramienta que KDE pone a nuestra disposicin para la tarea que estamos tratando.

Figura 7-6. Pantalla de entrada de kuser

ESware Linux

139

Resulta ser igual de intuitivo que el anterior (vase la Figura 7.7). Desde el men Usuario editaremos, borraremos o aadiremos cuentas al sistema, rellenando los campos correspondientes. Igual sucede con el men Grupo. Adems, unos comodos iconos atajan los clics de ratn (especial para perezosos).

Figura 7-7. Pantalla de edicin de una cuenta

140

Captulo 7. Administracin del Sistema

La eleccin de una u otra herramienta es un aspecto de preferencias personales y quiz de entorno de trabajo. (S no trabaja con XWindow, dificilmente usar kuser). Lo que siempre es recomendable es comprobar el resultado de las operaciones realizadas, idependientemente del mtodo empleado.

Ficheros de personalizacin
En Linux las posibilidades de configuracin, ajuste y modificacin se limitan a la cantidad de software que tenga instalado. Se puede decir que todo es modificable. Una de las cosas que normalmente suelen hacer los usuarios del sistema es personalizar su entorno de trabajo. Veamos que ficheros afectan directamente a cada usuario. El shell de cada usuario y el directorio de trabajo se indican, como ya se ha visto en /etc/passwd. Dentro del directorio de trabajo de cada usuario se encuentran sus propios ficheros de configuracin. Como es lgico, la modificacin que haga en stos, nicamente le afectar al propio usuario. Los ficheros de configuracin suelen empezar por un punto, (se les conoce por su nombre en ingles: dot files) De manera que para verlos use la opcin -a de ls. Para el bash (el que usa ESware) los ficheros son: .bash_profile y .bashrc. Cada lnea incluida en estos ficheros se lee durante el inicio de sessin y se ejecuta, definiendo de esta manera el entorno del usuario. Veamos un ejemplo de los dos ficheros:

Fichero.bash_profile
#.bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi mesg n Este fichero se lee al entrar en el sistema (ingreso interactivo). Practicamente est forzando la lectura de.bashrc cada vez que se lea este fichero. La ltima lnea inibe la escritura en consola por parte de otros usuarios. (El comando mesg se ver en la seccion de comunicaciones).

ESware Linux

141

Fichero.bashrc
#.bashrc # User specific aliases and functions alias alias alias alias alias alias alias alias rm=rm -i cp=cp -i mv=mv -i d=ls s=cd.. p=cd - cdd=mount /mnt/cdrom cdu=umount /mnt/cdrom

echo $PATH|grep -q /sbin || export PATH=$PATH:/sbin:/usr/sbin [ -z $DISPLAY ] ||. /etc/profile.d/color_ls.sh # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin ENV=$HOME/.bashrc USERNAME=root export USERNAME ENV PATH Los alias definidos aqu sirven para la ejecucin de rdenes escribiendo en modo abreviado (como cdd, al ejecutar cdd en realidad el interprete de comandos ejecuta mount /mnt/cdrom), o bien con opciones que consideremos interesantes (como rm, mv y cp, que son rdenes peligrosas y forzamos su ejecucin interactiva, osea pidiendo confirmacin.) Como este fichero pertenece al root, incluye opcoines especiales que los usuarios no deben tener, como la inclusin en el PATH de los directorios /sbin y /usr/sbin, que contienen comando para uso administrativo. Las definiciones globales se leen del fichero /etc/bashrc. La configuracin que se incluya en /etc/bashrc afectan a todos los usuarios.

142

Captulo 7. Administracin del Sistema

Otros dot files


Una facilidad que ofrece Linux a la hora de trabajar en modo consola es la repeticin de los comandos tecleados simplemente pulsando las flechas del cursor. Esta informacin se guarda en un fichero llamado.bash_history y est directamente relacionado con el comando history. La orden interna del interprete de comandos history se puede utilizar para mostrar o modificar la lista de historia y manipular el fichero de historia.

ESware Linux

143

Captulo 8. Gestin del Sistema de Archivos

Sistemas de Archivos
Una de las caractersticas que ms llama la atencin y cuesta entender al comenzar a trabajar con un sistema Linux es la gestin que hace de los sistemas de archivos: todo aparece como un archivo. Una particin del disco duro, una impresora, un directorio compartido en red, todo aparece con un interfaz de archivo. Este diseo simple y elegante, facilita al usuario el acceso a cualquier dispositivo del sistema, permitiendole el usarlos con las mismas ordenes de manejo de ficheros.

Una nota sobre dispositivos


Los archivos especiales que representan a los dispositivos de hardware se mantienen en el directorio /dev (dev, abreviatura de devices, dispositivos en castellano). Los podemos dividir en dispositivos de bloque y de carcter. Los dispositivos de carcter son aquellos que pueden leer una secuencia de caracteres. Un ejemplo seria la secuencia de teclas pulsadas por el teclado, un modem conectado a una lnea serie, enviando una secuencia de bytes. Las aplicaciones usan llamadas estndar del sistema para abrirlos, leer de ellos, escribir en ellos y cerrarlos exactamente como si el dispositivo fuera un archivo. Un dispositivo de bloques es el que almacena informacin y permite acceso a s mismo. Tambin soportan que se acceda a ellos como archivos. Un ejemplo de esto son los discos duros y los disquetes.

Organizacin!
El mtodo de acceder a la informacin de forma organizada en el dispositivo de almacenamiento en Linux recibe el nombre de sistema de archivos.

ESware Linux

145

Cada sistema de archivos debe ser previamente montado en un directorio. Esto significa que para acceder al contenido de un disquete se le debe asignar un directorio, desde el que podamos leerlo y escribir en el. Tras montar el sistema de archivos, todos los ficheros (directorios, subdirectorios, etc.) aparecen en ese directorio. El directorio donde se monta un sistema de archivos es llamado, punto de montaje, (o punto de anclaje). Desde el momento en que un dispositivo est montado, pasa a formar parte del rbol de directorios del sistema. Es la comodidad que ofrece esta formula de trabajo. Ya sea una particin, otro disco duro, un directorio compartido en una mquina remota (de red) o un sencillo disquete, el usuario lo ver y acceder como a un directorio ms. No hay letras de unidades ni rutas de red, solo directorios con el contenido del dispositivo en cuestin. El precio a pagar por ello: nicamente montarlo.

El comando mount
El sistema monta automticamente algunos sistemas de archivos durante el arranque. El ms importante es el llamado sistema de archivos raz y se monta en el directorio /. Podemos tener todo nuestro sistema en un nico dispositivo o utilizar varios dispositivos para conformar el rbol de directorios de una forma que se ajuste a nuestras necesidades. Por ejemplo es habitual tener un dispositivo dedicado al directorio de los usuarios /home y tambin otro para /usr. Pueden ser particiones o discos duros diferentes al del Sistema de archivos raz, no importa. Desde el punto de vista del usuario, no habr diferencia alguna. El rbol ser el mismo. El comando mount se utiliza para montar los sistemas de archivos. Veamos su manejo. Sintaxis: mount < opciones > < dispositivo > < punto_de_montaje > donde <dispositivo> debe ser un dispositivo de bloques y <punto_de_montaje> debe ser un directorio que debe existir! Si intenta montar un dispositivo en un directorio que no existe, mount fallar estrepitosamente. Las opciones de mount aparecen en un listado ms adelante. De momento nos interesa la que le dice a mount el tipo del sistema de archivos que debe montar: -t tipo_sistema_archivos. Un ejemplo: mount -t msdos /dev/fd0 /mnt/floppy

146

Captulo 8. Gestin del Sistema de Archivos

Esto montar un disquete (que debe estar en la disquetera!) de formato MSdos en el directorio /mnt/floppy. Este directorio existe por defecto en el sistema para facilitarnos la tarea, pero podemos usar el que deseemos, siempre que exista y est vaco. Si el directorio contiene archivos, estos no sern accesibles mientras otro sistema de archivos est montado, pero reaparecern al desmontarlo. Otra consideracin importante: no extraiga un disco de la disquetera mientras esta montado! Siempre hay que desmontarlo antes. La orden para desmontar un sistema de archivos es umount. El sistema gestiona la lectura y escritura de forma asncrona, bsicamente eso quiere decir que los datos no se escribirn al disco de forma inmediata, sino que el ncleo mantendr la informacin en buffers de memoria hasta que considere que la carga del sistema es suficientemente baja como para no estorbar las tareas del usuario. Por lo que sacar el disco sin desmontarlo antes, podra implicar perdida de datos y probablemente un molesto error de mount. Uso de umount: umount < punto_de_montaje > en nuestro ejemplo anterior: umount /mnt/floppy observe que es suficiente con indicar el punto de montaje. El parmetro de tipo de archivo es importante para mount ya que lo utiliza para la forma en que interpreta los datos. Linux soporta muchos tipos de archivos, los siguientes pueden ser algunos de los ms utilizados. Ojo al tipo iso9660, es el estndar de los CD-Rom. Montar un CD-Rom es algo as: mount -t iso9660 /dev/cdrom /mnt/cdrom En este ejemplo el dispositivo (/dev/cdrom es en realidad un enlace simblico al dispositivo real, que puede ser /dev/hdb o /dev/hdc...). Si tiene problemas al montar el CD, compruebe este punto. El CD-Rom tiene ligeras diferencias con los disquetes, cuando montamos un CDRom el botn de expulsin se bloquea y no permite sacar el CD-Rom hasta que se desmonte. As se evita el problema que comentbamos antes, no podremos sacar el disco por error. Otra operacin no permitida es la de desmontar un dispositivo que est en uso. sea si estamos ejecutando un programa de un disquete montado, o leyendo un fichero, el comando umount dar un error y no desmontar el sistema de archivos. Una cosa as:

ESware Linux

147

[root@Globus floppy]# umount /mnt/floppy/ umount: /mnt/floppy: device is busy [root@Globus floppy]# Observen que simplemente estando en el directorio se genera el error, nos indica: device is busy (dispositivo ocupado). Es necesario salir a otro directorio para poder desmontarlo. Un comando que es cmodo para usar con las unidades de CD, es eject. Siempre que no se tenga el dispositivo ocupado, el comando eject, lo desmonta y lo expulsa (abre la bandeja). Una observacin ms: por defecto montar unidades es tarea del administrador, un usuario normal no podr montar o desmontar disquetes o CD-Rom, salvo que se modifique esta condicin. (Ahora trataremos este asunto.)

Montaje automtico de Sistemas de Archivos


Durante el arranque del sistema se ejecuta la orden mount -a para realizar el montaje de los sistemas de archivos necesarios para el normal funcionamiento. La informacin necesaria sobre los dispositivos y los puntos de anclaje se toma de una tabla de sistemas de archivos que se almacena en un fichero llamado fstab que se encuentra en el directorio /etc.

/etc/fstab
La tabla de sistemas de archivo /etc/fstab es un fichero de texto que contiene una relacin de los dispositivos y las opciones necesarias para que mount las gestione. El formato del fichero es el siguiente: <dispositivo> <punto de anclaje> < sistema de archivos> <opciones> <dump> <fsckorder> Aqu tenemos un ejemplo de un fichero /etc/fstab: #/etc/fstab

148

Captulo 8. Gestin del Sistema de Archivos

/dev/hda8 /dev/hda1 /dev/hda7 /dev/hda5 /dev/hda6 /dev/cdrom /dev/fd0 none

/ /boot /home /usr swap /mnt/cdrom /mnt/floppy /proc

ext2 ext2 ext2 ext2 swap iso9660 auto proc

defaults defaults defaults defaults defaults noauto,user,ro noauto,user defaults

1 1 1 1 0 0 0 0

1 2 2 2 0 0 0 0

Cada lnea del fichero se refiere a un sistema de archivos. Las cuatro primeras entradas son sistemas de archivos ext2fs que componen el sistema Linux de la mquina donde trabajo, los directorios /boot, /usr, /home y / se encuentran en particiones diferentes. Despus se indica qu particin se usar como memoria de intercambio o virtual, esto no es un sistema de de archivos como tal ya que el usuario no accede directamente al espacio swap, es el sistema el que lo usa. Las dos siguientes lneas son las unidades extraibles, (disquetera y CD-Rom), tienen la opcin noauto para que no se monten automticamente en el arranque, (seria necesario tener siempre un disquete y un cd en las unidades). El ltimo sistema indicado es /proc, que es un sistema de archivos virtual, no existe realmente en disco. Lo genera el kernel para suministrar informacin sobre el sistema a los programas de usuario. La tres primeras columnas de /etc/fstab representan, el dispositivo, el punto de montaje y el tipo de sistema de archivos respectivamente. La cuarta columna especifica qu opciones de mount se usarn para este dispositivo. La opcin defaults es en realidad un conjunto de opciones. Al indicar defaults se estn agrupando las siguientes opciones: rw: Montar el sistema de archivos de lectura y escritura. suid: Permitir el uso de identificadores de los bits SUID y SGID. dev: Interpretar dispositivos especiales de caracteres o bloques en el sistema de archivos. exec: Permite la ejecucin de binarios. auto: Puede montarse con la opcin -a. nouser: Prohibe a un usuario ordinario (esto es, distinto de root) montar el sistema de archivos. Async: Toda la E/S al sistema de archivos deber hacerse asncronamente. Las opciones (si son ms de una) van separadas por comas. En el ejemplo el CD-Rom y la disquetera indican la opcin user, permitiendo as que usuarios que no son root monten el dispositivo.

ESware Linux

149

Otras opciones de mount son: ro: Montar el sistema de archivos en modo de solo lectura. nosuid: Opuesto a suid. nodev: Opuesto a dev. noexec: Opuesto a exec. sync: Toda la E/S al sistema de archivos se producir de inmediato y el programa que las produjo esperar a que terminen. Este modo de trabajo ms lento que usando async.

La columna quinta lo utiliza el comando dump para determinar qu sistemas de archivos necesitan ser volcados (dumped). Si el quinto campo est a cero, dump asume que el sistema de archivos no necesita ser volcado. De esta forma el administrador puede estar informado de cuando se necesita hacer copias de seguridad. La sexta (y ltima) lo usa el programa fsck (chequeador del estado de la particin, ver ms abajo) para determinar el orden en el cual se van a chequear los sistemas de archivos cuando el sistema arranca. El sistema de archivos raz debera llevar fsck pass igual a 1, y otros sistemas de archivos deberan llevarlo igual a 2. sistemas de archivos en un mismo disco sern comprobados secuencialmente, pero sistemas de archivos en diferentes discos sern comprobados al mismo tiempo para utilizar el paralelismo disponible en el equipo. Si el sexto campo tiene un valor de 0, fsck asumir que los sistemas de archivos no necesitan ser chequeados. (como disquetes y CD-Rom) La inclusin de un sistema de archivos en /etc/fstab aporta una facilidad a la hora de montar dispositivos extraibles, nicamente pasando a mount el directorio de montaje como argumento, mount lee el fichero /etc/fstab y usa las opciones y el dispositivo que correspondan. Usando el fichero /etc/fstab del ejemplo, para montar un disquete basta con escribir: [root@Globus floppy]# mount /mnt/floppy/

Y se montar el disquete. El fichero /etc/fstab puede modificarse a mano con cualquier editor de texto. Tenga siempre en cuenta que un error en este fichero puede hacer que falle el arranque del sistema. Si no domina algn aspecto de el fichero, antes de modificarlo, haga una copia de seguridad, relea el captulo dedicado a los nombres de dispositivos y asegurese de lo que hace. Una ayuda extra para el entorno grfico es la herramienta usermount (vase Figura 8.1). Bsicamente es un interfaz para el comando mount. Facilita el montaje o desmontaje, especialmente de las unidades extraibles.

150

Captulo 8. Gestin del Sistema de Archivos

Figura 8-1. usermount. Entorno grfica

Comprobar sistemas de archivos


Si se han desmontado inadecuadamente, por ejemplo por un corte de fluido elctrico, el sistema comprobar, en el arranque, los sistemas de archivos en busca de ficheros daados o corrompidos. Esta comprobacin se realiza tambin de forma automtica cada cierto nmero de encendidos del sistema. Y por supuesto podemos realizar revisiones peridicas. El comando utilizado para comprobar un sistema de archivos depende del tipo de sistema de archivos en cuestin. Para sistemas de archivos ext2fs (el que usaremos en Linux normalmente), el comando es e2fsck. Por ejemplo: # e2fsck -av /dev/hda2 comprobar el sistema de archivos de /dev/hda2 y corregir automticamente cualquier error. Normalmente deber desmontar el sistema de archivos antes de chequearlo. La nica excepcin es el sistema de archivos raz, que no se puede desmontar, ya que est en uso.

ESware Linux

151

Otros tipos de sistemas de archivos utilizan formas diferentes del comando e2fsck, como pueda ser efsck y xfsck. El comando fsck, es un front-end para un conjunto de herramientas que determinan el tipo de sistema de archivos y ejecuta el comando apropiado. (fsck, fsck.ext2, fsck.minix y fsck.msdos) Despus de comprobar un sistema de archivos es importante que se reinicialice el sistema inmediatamente, si se hizo alguna correccin al sistema de archivos. Si fsck informa que ha corregido algn error en el sistema de archivos, se debe apagar el sistema con shutdown -r o reboot para rearrancarlo. Esto permite al sistema sincronizar su informacin acerca del sistema de archivos cuando fsck lo modifica. El sistema de archivos /proc no necesita nunca ser comprobado. /proc es un sistema de archivos virtual, gestionado directamente por el ncleo. En la tabla 8.1 de sistemas de archivos y las abreviaturas usadas por mount.

Tabla 8.1. Abreviaturas utilizadas por mount Second Extended Filesystem Extended Filesystem MS-DOS Filesystem MS-Windows UMSDOS Filesystem MS-DOS. ISO 9660 Filesystem /proc Filesystem Network File System Xenix Filesystem System V Filesystem Coherent Filesystem HPFS Filesystem Minix Filesystem ext2 ext msdos vfat umsdos iso9660 proc NFS xenix sysv coherent hpfs Minix sistema de archivos mas comn en Linux Reemplazado por ext2. Utilizado para acceder a ficheros MS-DOS. Como MS-DOS, con soporte para nombres largos Utilizado para instalar Linux en una particin Formato utilizado por muchos CD-ROMs. Suministra informacin de proceso para ps, etc. sistema de archivos en Red. sistema de archivos de Xenix. Variantes del System V para el x86 Acceso a ficheros de Coherent. Acceso en lectura a particiones HPFS (DoubleSpace). sistema de archivos Minix original; no utilizado.

152

Captulo 8. Gestin del Sistema de Archivos

Captulo 9. Gestin de software

Una tarea de importancia que realiza el administrador del sistema es instalar nuevo software y actualizar el ya instalado. Los formatos tradicionales en los que nos vamos a encontrar prcticamente todo el software disponible para Linux son: a) Empaquetados con tar y posiblemente comprimidos con gzip. b) En el que usa la distribucin Esware: rpm, que se est convirtiendo en standard por su potencia y facilidad de uso. Por razones de respeto histrico veremos en primer lugar la pareja formada por tar y gzip.

El empaquetador universal: tar


El comando tar es utilizado normalmente para archivar ficheros. El concepto de archivar ficheros o empaquetar no es otro que guardar en un nico fichero una lista de varios ficheros, o el contenido de todo un directorio (o varios directorios). El formato del comando tar es tar <opciones> <fichero1> <fichero2>...<ficheroN> Donde <opciones> es la lista de opciones y <fichero1> hasta <ficheroN> es la lista de ficheros a aadir o extraer del archivo. Se puede usar para directorios completos. Por ejemplo, el comando: [Crispin@Globus /Crispin]$ tar cvf archivo.tar /etc empaquetar todos los ficheros de /etc en el fichero tar archivo.tar. Veamos con detalle esto: c le dice a tar que cree un nuevo fichero de archivo. La opcin v fuerza a tar en el modo verbose, (osea mostrando en pantalla el progreso de la tarea que realiza, en este caso los nombres de los ficheros segn se archivan.)

ESware Linux

153

La opcin f le dice a tar que el siguiente argumento archivo.tar es el nombre del archivo a crear. El resto de los argumentos de tar son los nombres de ficheros y directorios a aadir al archivo. El comando: [Crispin@Globus /Crispin]$ tar xvf archivo.tar extraer el fichero archivo.tar en el directorio actual. Una de las ventajas que nos ofrece tar es que respeta la estructura de directorio existente en el momento de empaquetar, de forma que al desempaquetar se reproducir como estaba originalmente. Por supuesto esto nos obliga a tener cierto cuidado a la hora de desempaquetar. Primero por que los ficheros antiguos se sobreescriben, aunque puede que sea esto precisamente lo que queramos hacer. Segundo porque la estructura de directorios se mantiene, pero en relacin al directorio desde donde desempaquete el archivo.tar (esto ltimo es importante) Por ejemplo, digamos que se archivaron los siguientes ficheros: /etc/fstab, /etc/inittab y /etc/passwd. Si se uso el comando [Crispin@Globus /Crispin]$ tar cvf archivo.tar /etc/fstab /etc/inittab /etc/passwd el nombre de directorio /etc se aadi al principio de cada nombre de fichero. Para poder extraer los ficheros en la localizacin inicial, se necesitara utilizar los siguientes comandos: [Crispin@Globus /Crispin]$ cd / [Crispin@Globus /Crispin]$ tar xvf archivo.tar Puesto que los ficheros se extraen con el nombre de camino almacenado en el fichero de archivo. Sin embargo, si se archivaron los ficheros con los comandos: [Crispin@Globus /Crispin]$ cd /etc [Crispin@Globus /Crispin]$ tar cvf fstab inittab passwd Los nombres de directorio no se salvaron en el fichero de archivo. Por esto se necesitara hacer cd /etc antes de extraer los ficheros. Como se puede ver, el como haya sido creado un fichero tar marca una gran diferencia en como se extrae.

154

Captulo 9. Gestin de Software

Se puede usar el comando [Crispin@Globus /Crispin]$ tar tvf archivo.tar La t le indica a tar que deseas un test del contenido del fichero antes de desempaquetarlo. De esta forma se puede ver que directorio se utilizo como origen de los nombres de los ficheros, y se puede extraer el archivo desde la localizacin que necesitemos.

Comprimiendo: gzip
Ya podemos empaquetar y hacer copias de seguridad con tar. Desgraciadamente uno de los problemas de prcticamente todos los sistemas informticos es el espacio de almacenamiento. No importa lo grandes que sean nuestros discos duros: siempre acaban llenandose. Una de las soluciones es la compresin por software de los datos almacenados. Y tar, por defecto, no comprime. La herramienta clsica para comprimir es compress, pero por motivos de eficiencia ha sido desplazada en los ltimos tiempos por gzip. Ademas gzip entiende perfectamente el formato de compress. El programa gzip reduce el tamao de los ficheros dados mediante el algoritmo de compresin de Lempel-Ziv (LZ77). Normalmente, el fichero a comprimir se reemplaza por otro con la extensin.gz, mantenindose los mismos permisos, propietarios y tiempos de modificacin. Si no se da ningn fichero, o si un nombre de fichero es -, se lee de la entrada estndar, que se comprime y se manda el resultado a la salida estndar. La cantidad de compresin obtenida depende del tamao de la entrada y de la distribucin de subcadenas de caracteres comunes. Tpicamente, texto o cdigo fuente se reduce en un porcentaje del 60 al 70%. Un fichero ya comprimido, como la mayora de archivos grficos (gif, jpg), difcilmente reducirn su tamao. Podemos decirle a gzip el nivel de compresin que esperamos que use, en una escala de 1 a 9, siendo el 9 la mxima compresin que puede aplicar el programa. Tenga en cuenta que ms compresin tambin significa mayor tiempo de procesamiento. El comando: [Crispin@Globus /Crispin]$ gzip -9 archivo.tar comprimir archivo.tar y le cambiar el nombre: archivo.tar.gz, que es la versin comprimida del fichero. La opcin -9 le dice a gzip que utilice el mayor factor de compresin. Para descomprimir usaremos:

ESware Linux

155

[Crispin@Globus /Crispin]$ gzip -d archivo.tar.gz En esta ocasin archivo.tar.gz ser reemplazado por archivo.tar. El comando gunzip puede ser utilizado tambin para descomprimir un fichero comprimido con gzip. Es equivalentemente a gzip -d. Los ficheros comprimidos con compress terminan en la extensin.Z. Por ejemplo, archivo.tar.Z es la aversin comprimida con compress de archivo.tar, mientras que archivo.tar.gz es la versin comprimida con gzip. La ventaja es que gunzip sabe tambin como tratar los ficheros comprimidos con compress. Manejando el conjunto formado por tar y gzip podremos instalar el software que venga empaquetado de esta manera y ademas realizar de forma sencilla nuestras copias de seguridad Por ejemplo, para archivar un grupo de ficheros y comprimir el resultado, se pueden utilizar los comandos: [Crispin@Globus /Crispin]$ tar cvf archivo.tar /etc [Crispin@Globus /Crispin]$ gzip -9 archivo.tar El resultado ser archivo.tar.gz. Para desempaquetar este fichero, se usan los comandos contrarios: [Crispin@Globus /Crispin]$ gunzip archivo.tar.gz [Crispin@Globus /Crispin]$ tar xvf archivo.tar Recuerde asegurarse siempre de que esta en el directorio correcto antes de desempaquetar un fichero tar. El comando tar tambin incluye la opcin z para comprimir/descomprimir automticamente los ficheros al vuelo, utilizando el algoritmo de compresin de gzip. En este caso, el comando [Crispin@Globus /Crispin]$ tar cvfz archivo.tar.gz /etc es equivalente a [Crispin@Globus /Crispin]$ tar cvf archivo.tar /etc [Crispin@Globus /Crispin]$ gzip archivo.tar Igual que el comando [Crispin@Globus /Crispin]$ tar xvfz archivo.tar.Z

156

Captulo 9. Gestin de Software

se puede utilizar en vez de [Crispin@Globus /Crispin]$ uncompress archivo.tar.Z [Crispin@Globus /Crispin]$ tar xvf archivo.tar

tar, gzip y unos disquetes


tar es perfectamente utilizable para la realizacin de copias de seguridad y una opcin potente de tar es la posibilidad de trabajar con mltiple volmenes. Lo que quiere decir que si optamos por guardar los datos en simples disquetes, en el momento que el primer disco est lleno, tar se para y pide el siguiente volumen (disquete). El comando: [Crispin@Globus /Crispin]$ tar cvfzM /dev/fd0 /etc har una copia de seguridad de /etc utilizando el disquete /dev/fd0. La opcin M de tar es la que permite que la copia de seguridad sea copia multi-volumen. Para recuperar el contenido del disquete usaremos el comando: [Crispin@Globus /Crispin]$ tar xvfzM /dev/fd0 Este mtodo puede ser utilizado tambin si se tiene una unidad de cinta (/dev/rmt0) conectada al sistema. El otro formato habitual en que encontraremos paquetes de software es el desarrollado por la empresa Red Hat: rpm. Seoras, seores quitense el sombrero, pues vamos a ver el manejo y uso de Red Hat Package Manager.

rpm
Rpm es un sistema es empaquetamiento que se est convirtiendo en un estndar de hecho en el mundo Linux por las ventajas que supone sobre otros modelos de empaquetamiento y gestin de las instalaciones. Adems se distribuye bajo los trminos de la GPL (General Public License). Proporciona al usuario final una serie de facilidades que hacen el mantenimiento del sistema mas sencillo de gestionar ya que mantiene una base de datos de los paquetes instalados y de sus archivos, lo que permite realizar consultas y verificaciones del sistema. Otra ventaja es que al actualizar software, los archivos de configuracin se respetan de manera que no sea necesario volver a realizar los ajustes especficos que ya tuviera definidos, o si no fuera posible, realiza una copia de seguridad de los mismos.

ESware Linux

157

Trabajar con rpm rpm tiene cinco modos de trabajo: instalacin desinstalacin actualizacin consulta verificacin

Instalacin Esto es un tpico paquete rpm: remoza-1.0-1.i386.rpm Normalmente se nombran normalmente utilizando el nombre del paquete (remoza), versin (1.0), desarrollo (1), y arquitectura (i386). Asegurese de elegir la arquitectura adecuada para su sistema ! Para instalar un paquete: [Crispin@Globus /Crispin]$ rpm -ivh remoza-1.0-1.i386.rpm remoza #################################### El parmetro i es el utilizado para la instalacin. Los otros dos son opcionales, pero tiles. El modo verbose, con v aporta informacin extra y la h (hash) imprime esas marcas de progreso (#) que nos dicen que algo est ocurriendo. Siempre podemos hacer una prueba de lo que ocurrir, sin llegar a instalar, usando la opcin: test. La instalacin de paquetes es sencilla, pero pueden ocurrir algunos errores: Si intentas instalar un paquete que ya est instalado: [Crispin@Globus /Crispin]$ rpm -ivh remoza-1.0-1.i386.rpm remoza package remoza-1.0-1 is already installed error: remoza-1.0-1.i386.rpm cannot be installed Para forzar la instalacin usaremos: replacepkgs Si intenta instalar un paquete que contiene un archivo que ha sido ya instalado por algn otro paquete:

158

Captulo 9. Gestin de Software

# rpm -ivh remoza-1.0-1.i386.rpm remoza /usr/bin/remoza conflicts with file from mim-1.0-1 error: remoza-1.0-1.i386.rpm cannot be installed Para hacer que rpm ignore el error, use replacefiles Si intenta instalar un paquete para el cual existe una dependencia no satisfecha Los paquetes rpm pueden depender de otros paquetes, lo cual significa que requieren que otros paquetes estn instalados en el sistema para que funcionen. En este caso el error ser: [Crispin@Globus /Crispin]$ rpm -ivh mim-1.0-1.i386.rpm failed dependencies: remoza is needed by mim-1.0-1 La mejor forma de arreglar este error es instalar los paquetes requeridos. Se puede forzar la instalacin usando nodeps, pero sea consciente que si un paquete necesita a otro para funcionar, debe satisfacer las dependencias. Desinstalacin Desinstalar un paquete es tan sencillo como instalarlo, rpm garantiza la limpieza del procedimiento y que se desintalarn todos los ficheros, no importa donde estn instalados: [Crispin@Globus /Crispin]$ rpm -e remoza En la desinstalacin se usa el nombre remoza para el paquete, no el nombre del paquete original remoza-1.0-1.i386.rpm. Un error habitual es el de romper las dependencias al desinstalar un paquete si algn otro paquete instalado depende del que est intentando borrar. Por ejemplo: [Crispin@Globus /Crispin]$ rpm -e remoza removing these packages would break dependencies: remoza is needed by mim-1.0-1 Para hacer que rpm no realice la comprobacin de dependencias y desinstale el paquete de todas maneras: nodeps. De nuevo recuerde que las dependencias no resueltas, generan un error en la ejecucin del programa en cuestin.

ESware Linux

159

Actualizacin Actualizar un paquete como instalar un paquete con la salvedad de que rpm desinstala automticamente cualquier versin antigua del paquete. [Crispin@Globus /Crispin]$ rpm -Uvh remoza-2.0-1.i386.rpm remoza #################################### Comentamos anteriormente que en la actualizacin se mantienen los ficheros de configuracin. Esto es cierto siempre que sea posible para rpm. Si el formato del archivo ha sufrido tantos cambios que no es compatible con el antiguo, rpm hace una copia de seguridad del fichero antiguo. Veremos un mensaje como: saving /etc/remoza.conf as /etc/remoza.conf.rpmsave En este caso ser necesario resolver las diferencias entre los dos archivos a mano para asegurarse de que su sistema contina funcionando de acuerdo con sus necesidades. Los errores del modo instalacin se pueden replicar aqu: dependencias no resueltas o paquetes ya instalados. Ademas s intenta actualizar un paquete con una versin ms antigua que la instalada, tambin se genera un error: [Crispin@Globus /Crispin]$ rpm -Uvh remoza-1.0-1.i386.rpm remoza package remoza-2.0-1 (which is newer) is already installed error: remoza-1.0-1.i386.rpm cannot be installed Si necesita actualizar de cualquier manera: oldpackage Consulta Otra de las grandes caracterstica s del sistema rpm es el mantenimiento de una base de datos de todo lo instalado, lo que permite interrogar al sistema para obtener determinada informacin sobre los paquetes que tenemos instalados, qu ficheros contenan estos paquetes, donde se encuentran ubicados, que tipo de documentacin aportaban o cuales son los ficheros de configuracin. Cualquiera que lea esto y se haya pegado alguna vez con instalaciones de software ver rpidamente las posibilidades de este mecanismo. Consultar la base de datos de paquetes instalados tampoco es complicado: lo conseguimos con la opcin rpm -q. La forma ms sencilla de usarlo es: rpm -q remoza lo que imprimir el nombre, versin y nmero de desarrollo del paquete instalado remoza:

160

Captulo 9. Gestin de Software

[Crispin@Globus /Crispin]$ rpm -q remoza remoza-2.0-1 No parece mucho verdad?. Combinando -q con otros parmetros, extraeremos ms informacin. Para consultar todos los paquetes instalados utilice -a [Crispin@Globus /Crispin]$ rpm -qa Mostrar en pantalla una (larga) lista con los nombres de los paquetes. Para consultar el paquete al que pertenece un fichero concreto: -f [Crispin@Globus /Crispin]$ rpm -qf /bin/ls fileutils-4.0-21 [Crispin@Globus /Crispin]$ Suponga que tiene un paquete y quiere tener una descripcin de su contenido: utilice entonces -i. [Crispin@Globus /Crispin]$ rpm -qi fileutils Name: fileutils Relocations: (not relocateable) Version: 4.0 Vendor: Red Hat, Inc. Release: 21 Build Date: mi 08 mar 2000 02:42:54 CET Install date: mar 18 abr 2000 18:32:12 CEST Build Host: porky.devel.redhat.com Group: Aplicaciones/Ficheros Source RPM: fileutils-4.0-21.src.rpm Size: 1608922 License: GPL Packager: Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla> Summary: Utilidades de gestin de los ficheros realizados por GNU Description: El paquete fileutils contiene varias utilidades de gestin de los ficheros realizados por la GNU. En este paquete encontrar: chgrp (cambia el grupo de un fichero), chown (cambia el propietario del grupo) chmod (cambia los permisos de un fichero), cp (copia los ficheros), dd (copia y convierte los ficheros), df (visualiza el uso del disco), dir (proporciona una lista de los ficheros), dircolors (proporciona la coloracin de los ficheros al comando ls), du (visualiza el uso del disco), install (copia ficheros y inicializa los permisos), ln (crea los link), ls (enumera el contenido de un directorio), mkdir (crea directorios), mkfifo (crea FIFOs, que son pipe), mknod (crea ficheros especiales), mv (renombra los ficheros), rm (cancela los ficheros), rmdir (cancela los directorios vacios), sync (descarga los buffers

ESware Linux

161

en el disco), touch (cambia el tiempo de impresin de los ficheros), y vdir (visualializacin en si del contenido de un directorio). Ah!, que interesante. Ahora veamos un listado de los ficheros que contiene: -l [Crispin@Globus /Crispin]$ rpm -ql fileutils /bin/chgrp /bin/chmod /bin/chown /bin/cp /bin/dd /bin/df /bin/ln /bin/ls /bin/mkdir /bin/mknod /bin/mv /bin/rm /bin/rmdir /bin/sync /bin/touch ...... El listado continua, esto es solo una muestra. Si los archivos que buscamos son los de documentacin, utilice -d [Crispin@Globus /Crispin]$ rpm -qd fileutils /usr/doc/fileutils-4.0/README /usr/doc/fileutils-4.0/THANKS /usr/doc/fileutils-4.0/TODO /usr/info/fileutils.info.gz /usr/man/man1/chgrp.1.gz /usr/man/man1/chmod.1.gz /usr/man/man1/chown.1.gz /usr/man/man1/cp.1.gz /usr/man/man1/dd.1.gz /usr/man/man1/df.1.gz .... de nuevo el listado continua....... Y si queremos saber cuales son de configuracin, utilice -c.

162

Captulo 9. Gestin de Software

[Crispin@Globus /Crispin]$ rpm -qc fileutils /etc/DIR_COLORS /etc/profile.d/colorls.csh /etc/profile.d/colorls.sh Todas las opciones que presenten listas de archivos, admiten el uso de -v para obtener la salida en el mismo formato que ls -l.

Verificacin Verificar un paquete es comprobar la integridad del mismo, osea si tenemos en el sistema actualmente lo mismo que se instal en su da y si est como se supone que debera estar. Entre otras cosas, se compara el tamao, chequeo MD5, permisos, tipo, usuario y grupo de cada archivo. Para verificar un paquete: rpm -V remoza Si el paquete est correcto, la salida es: nada. No hay cambios, osea que no hay nada que mostrar. En el caso de encontrar diferencias muestra en pantalla una palabra de ocho caracteres, uno por cada prueba que realiza. Un punto equivale a que la comparacin es correcta. Una letra indica un cambio en esa comparacin concreta. Los chequeos que hace son: Tamao del archivo: S Enlace simblico: L Fecha del archivo: T Dispositivo distinto: D Usuario distinto: U Grupo distinto: G Modo (permisos) distinto: M MD5 modificado: 5 Por ejemplo: [Crispin@Globus /Crispin]$ rpm -Va S.5....T c /etc/exports S.5....T c /etc/hosts.allow S.5....T c /etc/hosts.deny S.5....T c /etc/printcap S.5....T c /etc/profile missing /etc/securetty

ESware Linux

163

S.5....T ......G. S.5....T .......T S.5....T

c /etc/services /usr/X11R6/lib/X11 c /etc/localtime c /etc/nsswitch.conf c /etc/info-dir

y sigue.... Esto indica los ficheros que han sufrido algn cambio, como se puede apreciar, la mayora son ficheros de configuracin, que es lgico modificar, un fichero missing (desaparecido), etc. Es una buena manera de localizar errores del sistema, o motivos de comportamientos errticos de algunos programas. Dependiendo de estos datos se proceder a reinstalar o eliminar el paquete daado. La opcin verificar admite las mismas combinaciones que la opcin comparar Para comprobar el estado de un archivo en particular: [Crispin@Globus /Crispin]$ rpm -Vf /bin/ls Para verificar un paquete instalado con su correspondiente paquete rpm: [Crispin@Globus /Crispin]$ rpm -Vp remoza-1.0-1.i386.rpm Esto puede ser til si sospecha que su base de datos de paquetes rpm esta corrupta. rpm es una herramienta muy til tanto para manejar el sistema como para diagnosticar y solucionar problemas. Por supuesto existen las correspondientes aplicaciones desarrolladas para trabajar con rpm desde el entorno grfico X11. Un ejemplo es kpackage, desarrollado por KDE. Las funciones que implementa son prcticamente las mismas, con la ventaja aadida de la facilidad de manejo, (aunque ya se ha visto que desde lnea de comandos no existe ninguna dificultad) y las desventajas de ser ms lento al ocupar ms recursos del sistema y no se tiene tanta potencia a la hora de realizar consultas complejas a la base de datos de rpm. Como siempre, la decisin del modo de trabajo: a gusto del consumidor.

Para finalizar con rpm Para localizar ficheros que afectan a la gestin de las base de datos de rpm tendremos que mirar en /ovar/lib/rpm y en /usr/lib/rpm. Listado de /ovar/lib/rpm:

164

Captulo 9. Gestin de Software

Figura 9-1. kpackage en funcionamiento

conflictsindex.rpm groupindex.rpm packages.rpm requiredby.rpm fileindex.rpm nameindex.rpm providesindex.rpm triggerindex.rpm packages.rpm es el que contiene la base de datos de los programas que tenemos instalados en el sistema. La integridad de este fichero es importante para el correcto funcionamiento de rpm. De el contenido de /usr/lib/rpm, cabe destacar dos ficheros de configuracin, rpmopt y rpmrc. La configuracin actual se puede ver ejecutando: [Crispin@Globus /Crispin]$ rpm showrc

ESware Linux

165

Captulo 10. Arranque del sistema

Otra tarea que de la que se hace cargo el administrador es arrancar y detener el sistema, controlando los servicios que se inician. ESware Linux utiliza el proceso de arranque init de Sys V; init es el primer proceso que se ejecuta en el sistema, es el ms importante, del que dependen el resto de procesos del sistema.

El proceso init
El ncleo ejecuta init al arrancar; Este programa, ahora como proceso, cargar los sub-procesos necesarios para la puesta en marcha del sistema. Esto incluye un concepto importante: el nivel de ejecucin (runlevel) de los procesos. Los niveles de ejecucin determinan los servicios que tendremos disponibles en cada uno de ellos. Es una forma de tener diferentes modos de trabajo, cada uno de ellos con caractersticas bien definidas, en funcin del tipo de tarea a que estn orientados. Existen ocho niveles de ejecucin, que estn numerados del cero al seis, ms otro denominado con la letra S (tiene un alias con la letra s, que realmente es igual a el n 1). Los niveles de ejecucin de ejecucin que manejaremos y una descripcin de para qu estn definidos se puede ver en la siguiente tabla:

Tabla 10.1. Niveles de ejecucin

Nivel de ejecucin 0 Nivel de ejecucin 1 Nivel de ejecucin 2 Nivel de ejecucin 3 Nivel de ejecucin 4 Nivel de ejecucin 5 Nivel de ejecucin 6

Detener el sistema. Modo mono usuario, sin soporte de red. Modo multiusuario, sin soporte de red. Modo multiusuario completo Sin uso. Recomendado para pruebas. Modo multiusuario completo en entorno grfico. Reiniciar el sistema.

ESware Linux

167

Init necesita un fichero de configuracin para saber exactamente lo que tiene que hacer. Este fichero es /etc/inittab y contiene informacin sobre el nivel a ejecutar por defecto, previsin sobre lo que hacer ante determinadas situaciones, describe qu procesos se inician en la carga y durante la operacin normal. Las entradas del fichero /etc/inittab tienen el siguiente formato: (Como es habitual lneas que comienzan con `# se ignoran.) id:niveles_ejecucin:accin:proceso id: Una secuencia nica de 1 a 4 caracteres que identifican la entrada de inittab niveles_ejecucin: Lista de niveles de ejecucin para los que se llevarn a cabo las acciones definidas a continuacin en la lnea. accin: La accin se llevar a cabo. proceso: El proceso a ejecutar. Para que una lnea sirva para varios niveles de ejecucin, el campo niveles_ejecucin tiene incluirlos. Por ejemplo, 135 indica que el proceso se iniciar en los niveles 1, 3 y 5. Cuando se cambia de un nivel de ejecucin a otro, los procesos en ejecucin que no estn definidos en el nuevo nivel se matan. Las acciones que podemos definir, ms habitualmente, en el campo accin son: initdefault: Especifica el nivel de ejecucin por defecto al arrancar el sistema. El campo proceso se ignora. Respawn: El proceso se reiniciar cuando termine. once: El proceso se ejecutar una sola vez cuando se entre en el nivel de ejecucin especificado. wait: El proceso se iniciar una vez cuando se entre en el nivel de ejecucin e init esperar a su terminacin. boot: El proceso se ejecutar durante el arranque del sistema. El campo niveles_ejecucin se ignora. bootwait: El proceso se ejecutar durante el arranque del sistema, mientras init espera su terminacin. El campo niveles_ejeccin se ignora. sysinit: El proceso se ejecutar durante el arranque del sistema, antes que cualquier entrada boot o bootwait. El campo niveles_ejecucin se ignora. powerwait: El proceso se ejecutar si init recibe una seal SIGPWR, que indica algn problema con la alimentacin elctrica. Init esperar que el proceso termine. powerfail: Como powerwait, excepto que init no espera a que trmine el proceso. powerokwait: El proceso se ejecutar si init recibe la seal SIGPWR, con la condicin de que haya un fichero llamado /etc/powerstatus que contenga la palabra OK. Esto significa que se ha restablecido la alimentacin elctrica. ctrlaltdel: Especifica qu proceso se ejecutar al pulsar la combinacin de teclas [Ctrl+Alt+Supr]. Normalmente, reiniciar la mquina.

168

Captulo 10. Arranque del sistema

El fichero /etc/inittab de mi mquina es el siguiente: # # inittab Este fichero describe como arrancar el sistema el proceso INIT # en cada nivel de ejecucin. # # Autor: Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org> # # Nivel de ejecucin por defecto. Los niveles que usa Esware Linux son: # 0 - Detener. (NO ponga initdefault a 0 !) # 1 - Mono Usuario # 2 - Multiusuario, sin NFS (Es igual que 3, si no dispone de red.) # 3 - Multiusuario, con soporte de red. # 4 - Sin uso. # 5 - X11, entorno grfico. # 6 - Reiniciar. (NO ponga initdefault a 6 !) # # id:3:initdefault: # System initialization. si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc l1:1:wait:/etc/rc.d/rc l2:2:wait:/etc/rc.d/rc l3:3:wait:/etc/rc.d/rc l4:4:wait:/etc/rc.d/rc l5:5:wait:/etc/rc.d/rc l6:6:wait:/etc/rc.d/rc 0 1 2 3 4 5 6

# Cosas a hacer en cada Run-Level ud::once:/sbin/update # Al pulsar [Ctrl+Alt+Supr] ca::ctrlaltdel:/sbin/shutdown -t3 -r now # Cuando la SAI informe de una cada de tensin, dispone de varios minutos antes # de que el sistema se apague. Se han programado 2 minutos. # Esto solo funcionar, si tiene una SAI conectada y funcionando correctamente.

ESware Linux

169

pf::powerfail:/sbin/shutdown -f -h +2 Fallo Elctrico; El sistema se apagar en 2 minutos # Si vuelve la alimentacin elctrica antes de que el sistema se apague, se cancelar. pr:12345:powerokwait:/sbin/shutdown -c Alimentacin correcta; Sigan trabajando # Ejecuta getty en run-levels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6 # Ejecuta xdm en run-level 5 x:5:respawn:/etc/X11/prefdm -nodaemon

Fichero /etc/inittab
Uno de los scripts ms importantes en el arranque del sistema es /etc/rc.d/rc.sysinit. Es el primer script que init encuentra y ejecuta. En l estn definidas funciones como: Inicio y activacin del espacio de intercambio. (swap) Configuracin de la red. Especificacin de variables del sistema. Comprobacin y montaje de los sistemas de archivos. Inicializacin de puertos serie. Carga los mdulos del kernel. Establecimiento de cuotas de usuarios. Ajuste del reloj del sistema. El ltimo script en ejecutarse es /etc/rc.d/rc.local. En este fichero podremos poner inicializaciones especificas del sistema, aunque su propsito inicial es controlar los servicios de red.

Directorios directamente implicados


El directorio rc.d es de vital importancia para el arranque del sistema. Tiene una estructura bien definida ya que existe un directorio para cada nivel de ejecucin, identificado con

170

Captulo 10. Arranque del sistema

el mismo nmero que el nivel, y en cada uno de estos directorios se indican qu servicios se iniciarn o detendrn al entrar en ese nivel de ejecucin. En la figura se ve el rbol del directorio /etc/rc.d.

Figura 10 -1. Directorio /etc/rc.d

El directorio init.d contiene los scripts que lanzarn o detendrn los servicios que tengamos disponibles en nuestro equipo. La normalmente es suficiente invocar al servicio por su nombre y pasarle uno de los siguientes argumentos: start, stop, status, restart o reload. Los directorios numerados para cada run-level contienen enlaces simblicos que apuntan a los scripts del directorio init.d. Veamos un muestra, esto es parte del directorio rc3.d: lrwxrwxrwx lrwxrwxrwx lrwxrwxrwx lrwxrwxrwx lrwxrwxrwx lrwxrwxrwx lrwxrwxrwx lrwxrwxrwx lrwxrwxrwx lrwxrwxrwx lrwxrwxrwx lrwxrwxrwx lrwxrwxrwx lrwxrwxrwx 1 1 1 1 1 1 1 1 1 1 1 1 1 1 root root root root root root root root root root root root root root root root root root root root root root root root root root root root 17 18 18 14 16 15 23 17 16 16 13 15 14 13 jun jun jun jun jun abr abr jun jun jun jun jun jun jun 20 17:47 20 17:47 20 17:47 20 17:47 20 17:47 18 18:42 26 13:41 20 17:47 20 17:47 20 17:47 20 17:47 20 17:47 20 17:47 20 17:47 K92anacron ->../init.d/anacron K92ipchains ->../init.d/ipchains K95reconfig ->../init.d/reconfig K96irda ->../init.d/irda K96pcmcia ->../init.d/pcmcia K98mysql ->../init.d/mysql K99webmin_1->/etc/rc.d/init.d/webmin S10network ->../init.d/network S20random ->../init.d/random S30syslog ->../init.d/syslog S40atd ->../init.d/atd S40crond ->../init.d/crond S50inet ->../init.d/inet S60lpd ->../init.d/lpd

Observemos con atencin como se llaman los enlaces, cada uno de ellos tiene el nombre del script al que estn asociados. Curiosamente unos empiezan con una K y otros con

ESware Linux

171

una S. Precisamente este detalle es el que define si el servicio se inicia, (S de start) o si se detiene (K de kill). El nmero que lucen es simplemente una facilidad para ordenar y que no tiene mayor relevancia. Lo realmente ventajoso de este sistema es que, en primer lugar, no se repiten los scripts en cada directorio de run-level, si no que permanecen en un nico lugar bien definido, el directorio init.d, y en segundo lugar, la modificacin a realizar si lanzamos un servicio o no, en un run-level determinado, es tan sencilla como cambiar el nombre del enlace a el servicio en cuestin. Si queremos que se inicie bastar con asegurarse de que su nombre empieza por una S y en caso contrario, osea que en ese nivel de ejecucin no se ofrezca el servicio, pondremos el nombre empezando por una K. As de sencillo. Vuelva a mirar el fichero /etc/inittab de ms arriba. Hay una lnea para cada nivel de ejecucin que tiene como proceso rc con los nmeros de los run-levels como parmetro. El script rc se encarga de reinicializar el sistema en un nivel de ejecucin distinto. Otra ventaja es el control que tenemos sobre los servicios del sistema. Independiente del estado en el que estn, los podemos lanzar, detener, reiniciar, etc. sobre la marcha, sin necesidad de reiniciar la mquina, ni nada parecido.

El comando init
Podemos ejecutar init desde lnea de comandos con alguno de los siguientes argumentos: 0, 1, 2, 3, 4, 5, 6: Para cambiar al nivel de ejecucin especificado. Q, q: Si queremos que init relea el fichero /etc/inittab. S, s: Entra en modo monousuario. U, u: Reejecuta init respetando el estado actual. No se relee el fichero /etc/inittab.

Formas de arrancar
El kernel finaliza su carga lanzando el proceso init, pero antes de eso alguien tiene que decirle a su mquina cosas como donde est ese kernel o, si tiene ms de un sistema operativo, cual debe arrancar en cada momento. Esta tarea es la que realiza normalmente un gestor de arranque. El gestor de arranque que proporciona Esware Linux es LILO (Linux Loader). El ms utilizado en el mundo Linux. Lilo es verdaderamente flexible y potente, permitiendonos configurar el arranque de nuestro PC a medida, con gran cantidad de opciones y, lo que es mejor, gran facilidad de manejo. Pero, ojo!, es un software que interviene directamente en un proceso importante: el

172

Captulo 10. Arranque del sistema

inicio del ordenador, por lo que un mal uso puede dejarnos en la primera pantalla. Lo que viene a continuacin nos ayudar a entender como funciona y como manejarlo de forma que no tengamos un inmenso dolor de cabeza despus de una manipulacin inadecuada.

Encendiendo el ordenador
Cuando se pulsa el botn de encendido del ordenador, se pone en funcionamiento la BIOS (acrnimo de Basic Input-Output System) del sistema, que ejecuta una serie de rutinas preestablecidas, unos chequeos de hardware y termina leyendo el primer sector del disco duro. Este sector se llama Master Boot Record (MBR) y es de especial importancia, ya que contiene informacin sobre el disco, como la tabla de particiones y un pequeo programa que la BIOS ejecuta en el arranque. Este programa lee la tabla de particiones y sus atributos para saber cual est activa, lee el primer sector de dicha particin (Boot Sector, o sector de arranque) y ejecuta cualquier cdigo que se encuentre en l. Este cdigo normalmente ser el encargado de lanzar el ncleo del sistema operativo que se encuentra en esa particin. Resumamos el proceso: La BIOS hace unas cuantas cosas bsicas con el hardware, lee el MBR y le pasa el control, ste a su vez se lo pasa al Boot Sector iniciando el ncleo del S.O. que hace el resto hasta la presentacin del prompt (o el entorno grfico), esperando las rdenes del usuario. Un gestor de arranque va a interferir en esta encantadora relacin permitiendonos direccionar el control del sistema hacia diferentes ncleos de distintos sistema operativos que tengamos en el sistema. Aunque nicamente tengamos Linux en nuestra mquina, esto es una operacin interesante ya que, como veremos en breve, es posible tener ms de un ncleo utilizable con caractersticas diferentes y necesitaremos un mtodo para seleccionar con cual de ellos arrancamos.

Linux Loader: LILO


Si instal Esware Linux debera tener ya Lilo en alguna parte de su disco duro. Hay una pantalla del proceso de instalacin donde se configura bsicamente el gestor de arranque. Lilo se puede instalar en dos sitios, en el MBR, con lo que tendr un arranque controlado por Lilo, o en el Boot Sector de la particin Linux, lo que supone que depende de otro gestor de arranque que le permita acceder all. Lo ms normal, y lo que le recomiendo, es la primera opcin, el MBR. Lilo pondr algo de cdigo ejecutable en el MBR y como resultado cuando encienda el ordenador ver el prompt de Lilo esperando a que le diga qu sistema quiere lanzar. Para ver la lista de sistemas que estn configurados en Lilo pulse el tabulador ([Tab]).

ESware Linux

173

Si no escribe nada en el prompt de Lilo, ste esperar un tiempo y arrancar el sistema por defecto. Configuracin de LILO Linux Loader tiene un fichero binario (ejecutable) que es el encargado de escribir en el MBR la informacin de la configuracin que deseemos. Este fichero es /sbin/lilo y la informacin que debe grabar en el MBR la lee del fichero de configuracin /etc/lilo.conf. Un ejemplo de /etc/lilo.conf es el siguiente: boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 image=/boot/vmlinuz-2.2.14-5.0 label=linux root=/dev/hda8 read-only other=/dev/hda1 label=dos table=/dev/hda

Fichero de configuracin de lilo, /etc/lilo.conf Se distinguen dos secciones en el fichero /etc/lilo.conf, una es para esfecificaciones globales (las seis primeras lneas) y en la otra se definen las imgenes. Las imgenes son configuraciones especificas para cada uno de los sistemas que podemos arrancar. Desde luego, las opciones que se pongan en la seccin global afectarn a todas las imgenes. El fichero lilo.conf puede tener hasta 16 imgenes. La forma de modificar la configuracin de LILO es la siguiente: 1. Realizar los cambios en el fichero /etc/lilo.conf 2. Ejecutar /sbin/lilo para que estos cambios se escriban en el MBR. Sin este paso los cambios que haya realizado no tendrn ningn efecto!

174

Captulo 10. Arranque del sistema

Opciones de lilo.conf Opciones Globales Veamos las opciones ms interesantes que podemos utilizar en el fichero /etc/lilo.conf: boot=dispositivo-de-arranque Indica el nombre del dispositivo que contiene el sector de arranque. compact Intenta agrupar operaciones de lectura en sectores adyacentes en una sola operacin. Esto reduce drsticamente el tiempo de carga y hace que el mapa sea mas pequeo. Se recomienda usar `compact cuando se arranca de un disco flexible. default=nombre Indicaremos aqu la imagen especificada para que arranque por omisin. Si se omite esta entrada, se utilizar la imagen que aparezca en primer lugar en el fichero /etc/lilo.conf. delay=dcimas-seg Tiempo (en dcimas de segundo) que Lilo esperar antes de lanzar la imagen por defecto. Si se omite o si se pone a 0 no habr tiempo de espera. timeout=dcimas-seg Si no se aprieta ninguna tecla en el tiempo (en dcimas de segundo) especificado, se lanza automticamente la primera imagen. Es un lmite de tiempo para entradas por teclado. map=fichero-mapa Especifica la ubicacin del fichero mapa. message=fichero-mensajes Puede hacer que aparezca un mensaje antes del prompt de Lilo. Aqu especificaria un fichero con el texto del mensaje. No puede exceder de 65536 bytes.

Opciones para la Imgenes Cada imagen empieza con la lnea: image=nombre-de-ruta en el caso de que la imagen de arranque pertenezca a un ncleo Linux, o con la lnea:

ESware Linux

175

other=nombre-de-ruta para lanzar cualquier otro sistema. En este caso se debe indicar una de estas opciones: table=dispositivo Indica el dispositivo que contiene la tabla de particiones. Lilo no va a enviar informacin de particin al sistema operativo si se omite esta variable. loader=cargador-cadena Indica que debe emplearse un cargador en cadena. unsafe Indica que lilo no debe acceder al sector de arranque cuando cree el mapa. `unsafe y `table son incompatibles. Las opciones comunes para imgenes Linux y de otros sistemas son: label=nombre Nombre para identificar la imagen. Es el que deberemos indicar en el prompt de Lilo. alias=nombre Define un segundo nombre (o alias) para la misma imagen. password=contrasea Pide contrasea al intentar lanzar la imagen. restricted Al poner esta opcin, slo pedir contrasea si se especifican parmetros en el prompt de Lilo.

Opciones del ncleo Para imgenes de ncleos Linux, disponemos adems de otras opciones. read-only Monta el sistema de ficheros raz en modo solo lectura, hasta despues de hacer la comprobacin que realiza en el arranque. Pasado este punto se re-monta ya en modo lectura escritura root=dispositivo-raz Especifica el dispositivo que debe ser montado como sistema de ficheros raz.

176

Captulo 10. Arranque del sistema

vga=modo Esta opcin especifica el modo de texto VGA que se usar al arrancar el sistema. Son vlidos los siguientes valores: normal: modo de texto 80_25. extended: modo de texto 80_50. ask: pregunta al usuario <nmero>: modo de texto correspondiente al nmero.

Para obtener una lista de modos disponibles, arranque con vga=ask y pulse [Intro]. El ejecutable /sbin/lilo, tiene ademas numerosas opciones: v Muestra ms informacin durante la ejecucin. q Da una lista de los ficheros en el fichero mapa (/boot/map), que contiene el nombre y lugar del (de los) ncleo(s) a arrancar. Esta opcin muestra los nombres en dicho fichero. m fichero-mapa Emplea el mapa especificado, en lugar del predeterminado. C fichero-configuracin Se usa para especificar otro fichero de configuracin distinto de /etc/lilo.conf. t Test. Realiza una prueba sin escribir realmente un nuevo MBR ni el fichero-mapa. Puede usarse en combinacin con -v para ver lo que Lilo est a punto de hacer. s backup_boot_sector Al escribir el sector de arranque, lilo guarda el contenido previo en unfichero, por omisin /boot/boot.XXXX (donde XXXX depende del dispositivo. Esta opcin especifica un fichero aternativo para guardar el sector de arranque. (Usado con la opcin -u, especifica desde dnde restaurar el sector de arranque.) u nombre-dispositivo Desinstala lilo, simplemente copiando el sector de arranque que previamente salv. Si usted est planeando hacer que Linux coexista con otro sistema operativo, ver las ventajas que aporta el uso de Lilo, pero tenga en cuenta que algunos sistemas operativos escriben directamente (y sin preguntar) en el MBR para controlar el arranque. Si va a usar uno de estos, (por ejemplo Windows 95/98), recuerde que instalarlo despues de tener instalado Linux, le har perder el control del arranque con Lilo ya que ser sobreescrito por esta instalacin tan amable. Esto lo evita instalando Linux en ltimo lugar ya que es mucho ms respetuoso y coexiste sin ningn tipo de problema con otros, o en el caso de haber perdido ya el contenido del MBR, sencillamente arranque con el disco de inicio (lo hizo durante la instalacin, verdad?), y cuando entre en el sistema como root, vuelva a ejecutar /sbin/lilo. Asunto resuelto.

ESware Linux

177

Captulo 11. Compilar el kernel

El ncleo (o kernel, se usarn los dos trminos indistintamente) es en realidad lo ms importante del sistema; Es el encargado de interactuar con el hardware de nuestro equipo. Cuando un usuario ejecuta programas, es el kernel el responsable de manejar la informacin para que el hardware se ponga a trabajar, ya sea comunicarse con la tarjeta de red o modem, gestionar el tiempo de uso de la CPU por cada programa (multitarea), la administracin de memoria, etc. Todas estas funciones definen el funcionamiento de la mquina y es muy interesante conocer la posibilidades que nos permiten afinar la manera en que se va a comportar.

Las versiones
El ncleo est en continuo desarrollo y se actualiza con bastante frecuencia, aproximadamente cada dos meses, por lo que es imprescindible saber que versin tenemos en nuestro equipo, que hardware soporta, y si realmente necesitaremos actualizarlo o simplemente re-compilar el que ya tenemos para optimizar sus prestaciones. El comando uname -a muestra informacin de nuestro equipo, entre la cual se encuentra el nmero de la versin que estamos utilizando. Los nmeros de versin del ncleo se representa siguiendo un patrn que aporta bastante informacin, es ms o menos as: 2.2.16. El primer nmero indica la versin, una nueva versin solo se realiza cuando el kernel ha experimentado grandes cambios. El segundo nmero indica la actualizacin, a mayor valor, ms reciente es el ncleo, ademas si este nmero es par, indica que esa versin es estable, (y estable en el ncleo quiere decir exactamente eso, estable.) Sin embargo un nmero impar indica que es una versin de desarrollo y puede ser inestable. No quiere decir que vaya a ir mal necesariamente, pero se recomienda nicamente si se quiere experimentar o s se necesita soporte urgente para algn tipo de dispositivo que se incluya en esta versin. El ltimo nmero es el de la revisin, indica el nivel de actualizacin que ha alcanzado esa versin.

ESware Linux

179

Desde la llegada de la versin 2.x.x se trabaja con dos partes del ncleo diferentes, en primer lugar tenemos el ncleo en s, (lo podemos llamar parte monoltica del ncleo) y en segundo lugar estn los mdulos. La parte monoltica del ncleo es la que se carga en cada arranque y est activa en todo momento, sin embargo los mdulos nicamente se activan cuando se requiere utilizar ese dispositivo en concreto. Esto significa que podemos tener una serie de dispositivos soportados, pero que no estn cargados en memoria durante todo el tiempo, si no que se incorporan cuando se hace una llamada a ese hardware. Por ejemplo, suponga que tiene en su equipo una tarjeta de sonido, pero no la utiliza demasiadas veces, si compila el ncleo con el soporte para su tarjeta de sonido como mdulo, el ncleo resultante ser ms pequeo, ocupar menos espacio en memoria, pero cuando lance una aplicacin que necesite usar la tarjeta de sonido, el mdulo se incorporar y realizar su tarea correctamente. Despus de un tiempo de inactividad, el mdulo ser descargado automticamente. Tenga en cuenta el uso de mdulos en todas las opciones crea que pueden ayudarle a optimizar el ncleo, y por consiguiente el rendimiento del sistema. Pero preste tambin atencin a determinadas opciones que obligatoriamente debern ir en la parte monoltica, como puede ser el soporte del sistema de archivos ext2fs, que se requiere desde al momento de arrancar.

El cdigo fuente
Para compilar el ncleo necesariamente debe tener en el sistema el cdigo fuente. En el caso de no haberlo instalado, hagalo desde el CD-Rom del sistema o descargelo del sitio oficial del ncleo: http://www.kernel.org Normalmente las fuentes se instalan en el directorio /usr/scr/linux. Si va a actualizar y quiere mantener el cdigo anterior, mantenga cada versin en directorios diferentes (por ejemplo: /usr/src/2.2.16 para la versin anterior y /usr/src/2.4.0 para la nueva) y simplemente haga un enlace simblico del directorio que tenga el cdigo que desee compilar al directorio /usr/src/linux. Una vez instalado podemos ver un conjunto de directorios con todo el cdigo necesario para hacer un nuevo ncleo a medida, incluye abundante informacin en el directorio /usr/scr/linux/Documentation, no es mala idea dar un repaso a su contenido. Por ejemplo encontraremos en el fichero Changes una lista del software mnimo necesario para la correcta ejecucin de ese kernel (esto es importante), adems de pequeas instrucciones concretas referentes a cualquier problema que pueda aparecer.

180

Captulo 11. Compilar el Kernel

Preparndose para compilar


El proceso en s es bastante sencillo, hay una serie de comandos que se repetirn cada vez que compilemos. Esta parte es puramente mecnica y la nica complicacin es elegir correctamente entre la gran cantidad de opciones de hardware disponibles. Si es la primera vez que compila, la recomendacin es: NO SE ASUSTE. Tenga este libro a mano, papel y lpiz, puede ser interesante anotar las opciones que le parecieron conflictivas para repasarlas posteriormente, (recuerde que sern muchos mens, con muchas opciones) y tiempo, hgalo cuando tenga tiempo, las primeras veces debera leer cada men e incluso las ayudas, despus los recorrer ms rpidamente, aparte del tiempo que lleva la compilacin en s.

Primer paso: configurar el ncleo Esta es la parte complicada: elegir que va a componer nuestro nuevo ncleo. Aqu seleccionaremos que se cargar como mdulo y que en la parte monoltica. Existen tres modos de hacer esta tarea, la primera, ms peliaguda y tediosa es en modo texto, la segunda es en formato mens, por los que iremos seleccionando nuestra configuracin y la tercera, en modo grfico, ms agradable pero requiere el conjunto TCL/TK (es un lenguaje de programacin en entorno grfico.) Cualquiera de estas tres opciones son equivalentes en lo que referente al resultado, la diferencia est en el interface de usuario. Siempre nos deberemos situar en el directorio /usr/src/linux para lanzar el programa de configuracin que elija. La orden: make config lanzar el programa en modo texto. No es recomendable, por lo menos las primeras veces que intente la compilacin, ms que nada por el formato que usa. Le ir preguntando una a una por todas las opciones de la compilacin y como ya se ha comentado son bastantes. La cosa acaba agotando. Ms cmoda es la orden make menuconfig. Veremos un men mucho ms manejable que el anterior. La opcin grfica la veremos ejecutando (desde una sesin X) la orden make xconfig El resultado ser algo parecido a lo mostrado en la Figura 11.1.

ESware Linux

181

Figura 11-1. Men grfico de opciones de compilacin.

Recuerde que estas ordenes deben ejecutarse desde el directorio /usr/src/linux y si se decide por la configuracin en modo grfico, lo ms practico es abrir un terminal (p.ej.: xterm, konsole, etc.) desde tu escritorio, cambiar al directorio de las fuentes (cd /usr/src/linux) y ejecutar la orden make xconfig. Recorrer los mens Como se puede ver en la figura, la primera pantalla es el men principal, desde este recorreremos todas las opciones de cada submen, decidiendo si se incluyen o no en el ncleo y en que modo lo hacen. Se accede a cada submen haciendo click con el botn izquierdo del ratn sobre la opcin deseada y desde cada submen podemos pasar al siguiente o volver al principal. Es buena idea recorrerlos todos ordenadamente (empezando por el principio), as nos aseguramos de no dejar una opcin sin revisar. Cuando tengamos ms experiencia, lo usual es ir directamente a las partes que deseamos modificar. Dentro de cada submen marcaremos No para no incluir esa opcin, Si para incluirla en la parte monoltica o M para que se cargue como mdulo. Si la opcin M aparece apagada significa que ese dispositivo no admite ser cargado como mdulo, hay que optar por incluirlo o no.

182

Captulo 11. Compilar el Kernel

Se encontrar en alguna (o en muchas...) ocasin un dispositivo u opciones que no sabe exactamente para que sirven. Recuerde la primera premisa: NO SE ASUSTE. En la parte derecha hay un botn al que podremos recurrir. Pone: Ayuda e incluye una pequea descripcin y recomendaciones generales del tipo: ...si no est seguro, marque Si en esta opcin..., cosa que se agradece.

Figura 11-2. Ayuda en men de opcin de mdulos.

Cada opcin que seleccione para ser compilada en la parte monoltica har un ncleo un poco ms grande, exigiendo as ms memoria, de manera que sea cuidadoso. Al acabar la configuracin vemos cuatro botones de opcin ms. Nos permiten guardar la configuracin seleccionada, cosa que tendremos que hacer para compilar, no guardar y salir del programa de configuracin, podremos tambin guardar la informacin de esta configuracin en un fichero y cargar una configuracin desde un fichero. Esto ltimo es interesante ya que si por algn motivo cometemos un error en la compilacin y es necesario rectificar un paso, no ser necesario pasar por todas las opciones, si no que, cargando el fichero guardado, podremos realizar cambios nicamente en la zona afectada. Observar tambin que hay opciones que dependen de que otras estn seleccionadas, por ejemplo, no seleccionar Soporte SCSI implica desactivar automticamente todas las opciones de ese men y del siguiente: Controladores SCSI de bajo nivel, tngalo tambin en cuenta.

ESware Linux

183

Algo de orientacin No vamos a ver aqu todas las opciones de todos los mens, la velocidad de cambio del ncleo deja unas opciones obsoletas de una versin a otra y aparecen opciones nuevas, por lo tanto, no tiene sentido empearse en conocer en profundidad absolutamente todas las opciones, salvo si el desarrollo del sistema es su actividad, claro. Aqu prima ms el conocimiento del sistema, la experiencia con los ordenadores y la capacidad de investigacin, ya que todo, lo nuevo y lo viejo, viene correctamente documentado. Sin embargo daremos un repaso inicial a los mens ms importantes o interesantes. Veamos el primero de los mens: Opciones de nivel de madurez del cdigo. En la parte superior aparece el ttulo del men y debajo de l la lista de opciones. Este men slo tiene una opcin, Preguntar por controladores/cdigo incompleto o en desarrollo. Como puede ver en la Figura 11.3, la opcin Mdulo est desactivada. Esta opcin concreta no aade o elimina nada del kernel, sino que sirve para decidir si quiere que le aparezcan opciones que estn an en desarrollo. Si activa N, las secciones experimentales del kernel estarn desactivadas automticamente.

Figura 11-3. Primer men: Quiere ver las opciones en desarrollo?

Tipo de Procesador y caractersticas Puede seleccionar el tipo de procesador que utiliza su mquina. Esto mejora el rendimiento al optimizar el ncleo para un tipo especifico de procesador. Un kernel compilado para 386 funcionar con todos los tipos de CPU basados en la arquitectura intel386, pero no conseguir la rapidez de proceso optima. Tambin podr indicar si su mquina usa multiprocesador. (Multiproceso simtrico)

184

Captulo 11. Compilar el Kernel

Soporte para mdulos cargables Los mdulos son partes del kernel que se cargan cuando son necesarios (vase Figura 11.4). Esto le permite disponer de caractersticas que no se utilizan habitualmente, sin necesidad de consumir memoria durante los periodos en los que no son utilizados. Tendr que seleccionar esta opcin, si quiere ser capaz de crear mdulos.

Figura 11-4. Haga mdulos de lo que pueda.

La siguiente opcin, Establecer informacin de versiones, le permite utilizar mdulos que originalmente fueron compilados con versiones diferentes del kernel, si son compatibles. Debera seleccionar esta opcin como Si. La ltima opcin, Cargador de mdulos en el ncleo, le permite olvidarse de la carga manual de los mdulos, el ncleo har todo el trabajo automticamente. Ajustes Generales Este submen le permite configurar varios elementos cruciales para el kernel (vase Figura 11.5). Repase cuidadosamente las opciones (y las ayudas)

ESware Linux

185

Figura 11-5. Opciones de Ajustes Generales.

186

Captulo 11. Compilar el Kernel

Si piensa conectar su ordenador a algn tipo de red, ya sea mediante LAN o mdem, necesitar seleccionar Si en la opcin Soporte para trabajo en redes. Esta opcin determina si se le presentarn otras opciones ms adelante y no es una caracterstica por s misma, no se puede seleccionar como mdulo. IPC System V o Comunicacin entre procesos de System V, es un mtodo por el que dos programas que se ejecutan al mismo tiempo en un mismo sistema pueden comunicarse entre ellos, algunos programas no funcionarn si esta opcin est desactivada. En Linux los ficheros ejecutables se conocen como binarios, aqu podemos elegir los diferentes formatos soportados. El utilizado actualmente es ELF, que est dejando rpidamente obsoleto al antiguo formato a.out. Soporte para Plug and Play Le permite al ncleo configurar automticamente algunos dispositivos perifricos. Dispositivos de Bloques Este men presenta las opciones disponibles para el soporte bsico de dispositivos IDE, disqueteras y algunos otros tipos ms antiguos (como MFM y RLL). Tambin incluye Raid (mltiples dispositivos) Debera seleccionar Si en la opcin Soporte de disquetera normal, ya que no podr acceder a su disquetera si no lo hace as. Si quiere impedir que los usuarios accedan a los disquetes, cambie los permisos de /dev/fd0 a 0600, o use las opciones de mount para tal efecto en el fichero /etc/fstab. Si tiene discos duros IDE, seleccione la opcin Soporte para disco/cdrom/cinta IDE/MFM/RLL avanzado. Si selecciona No, desactivar todas las opciones del resto del submen. El resto de las opciones IDE definen conjuntos de chip especficos. Est claro que la seleccin vara en cada ordenador. Seleccionar S, no har ningn dao, aunque su kernel ser de mayor tamao. Cada controlador comprobar el sistema automticamente en el momento del arranque para determinar si debera activarse o no. El soporte de dispositivo en bucle es til para montar un archivo como un sistema de archivos (por ejemplo, para probar una imagen IS09660 antes de grabarla en un CD). Este dispositivo en bucle no tiene nada que ver con el dispositivo bucle de red, siendo ste ltimo utilizado para conexiones en red de una mquina a ella misma. La opcin Soporte para disco RAM le permitirle crear sistemas de archivos virtuales en la memoria de su sistema.

ESware Linux

187

Opciones de trabajo en Red Este submen le ofrece gran variedad de posibilidades, desde decidir si habilita el soporte para dispositivos de red hasta activar opciones de cortafuegos o enrutado (vase la Figura 11.6). Lo primero es tener una idea clara de las caractersticas de red que necesita que soporte su ordenador. Un ordenador personal de usuario, no requiere grandes complicaciones. Sin embargo para configurar la mquina como pasarela o proxy, deber prestar bastante atencin a todas las opciones.

Figura 11-6. Configuracin para Cortafuegos o para Encaminador?

188

Captulo 11. Compilar el Kernel

Una opcin que deber marcar si pretende a conectarse a Internet es la indicada como Proteccin frente a ataques SYN, un tipo de ataque de denegacin de servicio. No activarlo supone que la mquina es vulnerable a este ataque. Otras posibilidades como realizar enmascaramiento de las direcciones IP de las maquinas de su red, lo que significa que las direcciones IP de todos los puestos quedaran ocultas por la mquina que tenga la conexin a Internet. Tambin se incluyen opciones para trabajar con protocolos IPX/SPX y AppleTalk, que deber activar si en su red hay ordenadores Macintosh y PC basados en Novell. Soporte SCSI Para poder utilizar discos o cualquier otro dispositivo SCSI en su sistema, deber repasar esta seccin y la siguiente: Controladores SCSI de bajo nivel. La opcin Informe Detallado de Errores SCSI har que los mensajes de error concernientes al hardware SCSI sern ms fciles de comprender si se activa. Soporte para dispositivos de red Presenta una lista de los controladores disponibles para conectarse a otros ordenadores, ya sea por modem o por tarjetas de red (vase Figura 11.7). Soporta tarjetas Ethernet, dispositivos inalmbricos, fibra ptica conexiones PPP, SLIP, Token Ring, etctera. Asignar alias al dispositivo de red para disponer de hosts o dominios virtuales se habilitan tambin desde aqu.

ESware Linux

189

Figura 11-7. Configure su dispositivo de red

190

Captulo 11. Compilar el Kernel

Soporte para Emisoras de Radioaficionado Puede conectar su mquina Linux a una emisora de radio. La respuesta a esta pregunta no afectar directamente al ncleo: responder N nicamente har que no se le hagan ms preguntas acerca de emisoras de radioaficionado. Soporte para subsistema IRDA Configure aqu la transmisin sin hilos a travs de infrarrojos, muy til para ordenadores porttiles y de PDAs. Soporte para RDSI RDSI (Red Digital de Servicios Integrados) es un servicio telefnico completamente digital. La principal ventaja es la mayor velocidad de transmisin comparado con las conexiones analgicas y que puede transmitir simultneamente conversaciones de voz y de datos. Slo podr habilitar est opcin si posee una tarjeta RDSI y si ha contratado una lnea RDSI con su compaa telefnica. Soporte para CD-ROM no SCSI, IDE o ATAPI Seleccione esta opcin para soportar unidades de CD-ROM que no sean SCSI, IDE o ATAPI. Dispositivos tipo Carcter Una serie de opciones como habilitar el puerto paralelo para impresoras, uso de terminales virtuales, configuracin de puertos serie, soporte para ratones que usan puerto PS/2 o bus. Algunas de las opciones marcadas aqu nicamente sirven para que posteriormente aparezcan o no otros mens. Vdeo para Linux Soporte para captura de audio/vdeo, dispositivos digitalizadores y tarjetas de radio FM. Hay una serie de herramientas para Vdeo For Linux que estn disponibles en: ftp://ftp.uk.linux.org/pub/linux/video4linux. Ftape, controlador de cinta Si tiene una unidad de cinta que est conectada a su controladora de disquetes, deber configurarla Algunas unidades de cinta vienen con una controladora de alta velocidad propia, tambin dar soporte a estas unidades activando esta opcin.

ESware Linux

191

Sistemas de ficheros Linux soporta gran cantidad de sistemas de archivos, facilitando el uso discos de otros sistemas sin necesidad de un proceso de conversin. Deber activar los que va a utilizar, como pueden ser el sistema de archivos para CD-Rom, iso9660, sin el cual no podr leer el contenido de sus CDs o el sistema de archivos de MS-Dos, por ejemplo. Recuerde que no puede cargar el sistema Ext2fs como mdulo ya que el kernel debe montar el sistema de archivos raz durante el arranque.

Figura 11-8. Soporte para diferentes sistemas de ficheros

192

Captulo 11. Compilar el Kernel

Sistema de ficheros en Red Si quiere compartir directorios a travs de su red puede activar el soporte para NFS (Network File System), o usar SMB y NCP para compartir ficheros con mquinas que utilicen Windows o volmenes NetWare, respectivamente. Tipos de particin Algunos sistemas operativos utilizan sus propios esquemas de tabla de particiones, si desea que su sistema Linux pueda leer tablas de particin de discos duros estos sistemas, y por lo tanto, utilizar particiones en esas unidades, deber activar las opciones correspondientes a este men. Soporte para idiomas nativos Seleccione aqu el juego de caracteres que desea utilizar con su mquina. Controladores para consola Este men le ofrece diferentes opciones para trabajo en modo texto, como pueden ser seleccin del modo de vdeo, para sacar mayor partido a su tarjeta grfica cuando trabaja en consola o frame buffer. Sonido Al activar el soporte para las tarjetas de sonido, podr seleccionar la tarjeta que tenga instalada en su sistema. Deber conocer el modelo de su tarjeta y quiz informacin sobre la IRQ, DMA y direccin E/S Base. La informacin necesaria vara de una tarjeta a otra, consulte el manual que le suministr el fabricante. Control avanzado del ncleo Esta opcin est reservada para usuarios con conocimientos avanzados del funcionamiento del ncleo, tendr mayor control sobre el sistema, incluso ante errores durante la depuracin del ncleo (usted podr vaciar el cach del buffer en disco, reiniciar el sistema inmediatamente o recoger informacin de estado).

ESware Linux

193

Al activar esta opcin algunas funciones son llamadas con la intencin de provocar su fallo. La idea es poder comprobar todas las variantes de ejecucin posibles para garantizar la estabilidad del ncleo. El resultado es un kernel menos estable. No active esta opcin a menos que pretenda trabajar en el desarrollo del ncleo. ltimos consejos Como ya se ha comentado, las primeras veces que se compila, puede obtener resultados no esperados, tenga en cuenta que hay opciones que dependen de otras y quiz requiera varios intentos antes de tener su propio kernel. Creo que esto es lo normal, de manera que no se desanime. Recuerde guardar su configuracin al terminar y si adems lo hace en un fichero aparte, podr recuperarla en ocasiones posteriores, ahorrando tiempo en la siguiente compilacin. Ordenes de compilacin Una vez seleccionadas las opciones de configuracin del nuevo kernel, el proceso de compilacin es significativamente ms sencillo. Dependiendo del sistema que tenga, el tiempo que tarde en compilar puede variar desde 10 15 minutos en un Pentium II, hasta un poco ms de media hora en un 486. En primer lugar debe ejecutar (desde el directorio /usr/src/linux): make dep esta orden lee el archivo de configuracin y genera el rbol de dependencias correspondiente, seleccionando los elementos que sern compilados y los que no. A continuacin debe teclear la orden: make clean para eliminar residuos de anteriores compilaciones, para evitar errores entre versiones. Lo siguiente es el proceso de compilacin en si: make zImage Tambin se puede emplear, alternativamente, la orden: make bzImage, que crear una imagen del ncleo ms comprimida. El tamao de la imagen es importante ya que no debe superar los 500 600 kb. Esto es debido a la naturaleza de la arquitectura Intel, el kernel debe ser capaz de descomprimirse dentro del primer MB de memoria o dar un fallo en el arranque.

194

Captulo 11. Compilar el Kernel

La ejecucin de estas tres ordenes generan una imagen nueva del ncleo en el directorio: /usr/src/linux/arch/i386/boot/ El nombre de la imagen ser: zImage o bzImage dependiendo de la orden utilizada. Lo siguiente es copiar la imagen al directorio /boot: cp /usr/src/linux/arch/i386/boot/bzImage /boot Normalmente las imgenes usan un nombre que comienza con la cadena vmlinuz. Si quiere seguir este patrn, agregue un identificador propio que le permita distinguir las diferentes imagenes. Por ejemplo: cp /usr/src/linux/arch/i386/boot/ bzImage /boot/vmlinuz.2.2.16-test No elimine imagenes anteriores antes de haber comprobado el funcionamiento correcto del nuevo ncleo, mantenerlas no tiene efectos secundarios y le permitir seguir entrando en el sistema en caso de errores graves. Para tener opcin en el arranque de utilizar la nueva imagen es necesario modificar la informacin que lilo tiene guardada en el mbr, (repase la parte del arranque del sistema y lilo, si tiene alguna duda.) Modifique el contenido del fichero /etc/lilo.conf, agregando una nueva entrada para la nueva imagen. (lo ms practico es copiar integra la entrada de la imagen existente y modificar los campos label e image, con los nombres correspondientes. No elimine la entrada original o no podr entrar en el sistema en caso de algn fallo!. Ejemplo de fichero /etc/lilo.conf con la imagen original. boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=10 compact image=/boot/vmlinuz-2.2.16-5.0 #Esta es la imagen original label=linux read-only root=/dev/hda8 Ejemplo de fichero /etc/lilo.conf con las dos imagenes. boot=/dev/hda map=/boot/map install=/boot/boot.b

ESware Linux

195

prompt timeout=10 compact image=/boot/vmlinuz-2.2.16-5.0 label=linux read-only root=/dev/hda8 image=/boot/vmlinuz-2.2.16-test label=test read-only root=/dev/hda8 #Esta es la imagen original

#Esta es la imagen nueva

Despues de esto es necesario ejecutar /sbin/lilo. No olvide este paso o no se agregar su imagen al men de arranque. Compilar los mdulos Antes de que poder arrancar con el nuevo kernel, necesitar compilar las opciones que configur como mdulo. Sencillamente ejecute la siguiente orden: make modules ya solo queda una cosa por hacer, instalar los mdulos. Un ncleo nuevo crear sus propios mdulos, mientras que recompilar un kernel modificar los ya existentes, mi consejo es que haga copia de seguridad previamente. Si la compilacin falla y los mdulos han sido sustituidos, es posible que pierda funcionalidad. Los mdulos se almacenan en /lib/modules/X.X.X, siendo las X el nmero de versin del ncleo, en el ejemplo: 2.2.16. Para asegurarse de que mantiene los mdulos originales ejecute: mv /lib/modules/2.2.16 /lib/modules/2.2.16-originales As en caso de necesitar recuperarlos, simplemente volviendo a renombralos volver a dejarlo todo como estaba. Despues de haber hecho la copia de seguridad de los mdulos puede ejecutar la orden para instalar los mdulos: make modules_install En este momento puede reiniciar el ordenador y en el prompt de Lilo seleccionar el ncleo nuevo. En caso de error, y si siguio las indicaciones de copias de seguridad, podr arrancar con el antiguo y realizar las modificaciones necesarias.

196

Captulo 11. Compilar el Kernel

Si arranca con el kernel recien compilado, d un repaso por el sistema para comprobar que todo funciona como debera, disquetera, lector de CD-Rom, soporte de red, sistemas de archivos, puertos serie y paralelo, etc. En caso afirmativo, enhorabuena. Lo ha conseguido, tiene un ncleo a medida, corriendo sin problemas en su mquina.

ESware Linux

197

Captulo 12. Linux en Red

Linux incorpora soporte para trabajo en red desde en propio ncleo del sistema. Esta caracterstica le coloca entre los sistemas operativos ms estables, rpidos y seguros en lo tocante a comunicacin entre ordenadores y redes de rea local. Tanto si planea implantar una intranet en un entorno corporativo o simplemente desea crear una pequea red domestica, Linux le proporciona un conjunto de herramientas y posibilidades ms que suficientes para llevar a cabo, practicamente todas las soluciones habituales y muchas otras no tan habituales. Tambien hemos visto que, dependiendo de la configuracin definida en el kernel, Linux podr interpretar protocolos propietarios de diversos fabricantes, como puedan ser Apple, Novell y otros. Sin embargo los mayores esfuerzos de Linux los desarrolla con el protocolo que se ha convertido en un estandar de facto en todo el mundo: TCP/IP.

Introduccin a TCP/IP
TCP/IP es el nombre de una familia (conjunto) de protocolos que en los ltimos aos ha conseguido convertirse en el ms utilizado para realizar comunicaciones entre ordenadores. De la historia del nacimiento paralelo de TCP/IP e Internet se han escrito innumerables documentos, por lo que aqu nos limitaremos a describir los fundamentos bsicos necesarios para dominar la configuracin de una red basada en TCP/IP. Los protocolos definen una serie de normas que se establecen para lograr la comunicacin entre los ordenadores participantes. El objetivo final de la definicin ( y el seguimiento ) de estas normas es que cada uno de los interlocutores sepa interpretar lo que el otro le remite. Es algo as como definir el lenguaje que se va a usar en esa comunicacin. Un ejemplo simple para entender esta idea es comparar la comunicacin entre los ordenadores con una conversacin telefnica. El protocolo sera el idioma utilizado en la conversacin. La condicin es que para una conversacin determinada, los dos interlocutores empleen el mismo idioma.

ESware Linux

199

El conjunto de protocolos TCP/IP le debe su nombre a dos de los protocolos ms importantes que contiene: TCP (Transmision Control Protocol o Protocolo de Control de Transmisiones) e IP (Internet Protocol, Protocolo de Internet), sin embargo hay algunos ms, distribuidos en los diferentes niveles en los que operan. En una primera aproximacin se puede estructurar la torre de protocolos TCP/IP en cuatro niveles funcionales, como se muestra en la siguiente tabla: Aplicacion Transporte Internet Fsico Cada nivel est definido para realizar una serie de tareas especificas y suministrar el resultado de su trabajo al nivel adyacente. Existe cierta analogia con el Modelo de Referencia de la OSI (Open System Interconnection), pero al ser TCP/IP anterior en el tiempo no se ajusta exactamente con los siete niveles definidos por la OSI. Nivel de aplicacin En el nivel de aplicacin se encuentran las aplicaciones disponibles para los usuarios. Es el nivel superior, controla y coordina las funciones que realizan por los programas (aplicaciones) de usuario. Dentro del este nivel podemos encontrar aplicaciones como: FTP (File Transfer Protocol, Protocolo de transferencia de ficheros.) El mtodo ms rapido a la hora de mover ficheros de una mquina a otra. NFS (Network File System, Sistema de ficheros en red.) Se utiliza para tener acceso a directorios de mquinas remotas, utilizando un sistema de archivo distribuido. Telnet (Registro y ejecucin remota.) Permite a un usuario acceder a una mquina remota y actuar exactamente igual que si estuviera sentado frente al segundo ordenador, que puede estar realmente separado varios kilometros. SMTP (Simple Mail Transfer Protocol, Protocolo de transferencia de correo.) Utilizado para enviar correo electrnico. DNS (Domain Name Service, Servicio de nombres de dominio.) Permite que los usuarios se refieran a las mquinas por un nombre en lugar de un nmero (direccin IP.) Kerberos. Protocolo de seguridad, utilizado para validar contraseas y ciertos esquemas de encriptacin.

200

Captulo 12. Linux en Red

RPC (Remote Procedure Call, Llamadas de procedimiento remoto.) Permite a ciertas aplicaciones comunicarse con otra mquina. POP (Post Office Protocol, Protocolo de oficina de correos.) Encargado de recibir y distribuir posteriomente el correo electrnico a los usuarios. HTTP (Hiper Text Transfer Protocol, Protocolo de transferencia de hipertexto). El utilizado para leer pginas Web. Por supuesto existen ms aplicaciones que operan en este nivel, pero estas deben ser las ms utilizadas. Todas operan siguiendo el esquema cliente-servidor, de manera que en la comunicacin entre dos ordenadores intervienen, por una parte la mquina que ofrece el servicio, por ejemplo HTTP, que tendr activo un servidor Web y por la otra parte la mquina que solicita el servicio a traves de una aplicacin cliente, por ejemplo un navegador como pueda ser Netscape. Nivel de transporte El nivel de transporte suministra a las aplicaciones servicios de comunicacin entre las mquinas que van a comunicacarse. Para ello se utilizan dos protocolos: TCP ( Transmision Control Protocol,Protocolo de Control de Transmisiones), que es un protocolo fiable, ya que permite la recuperacin ante datos perdidos, erroneos o duplicados, garantizando la secuencia de entrega. Adems esta orientado a conexin, permite multiplexacin, o lo que es igual, que multiples usuarios puedan utilizar una conexin TCP simultaneamente, empleando el uso de puertos y sockets. Un puerto es un nmero que identifica hacia qu aplicacin o proceso deben dirigirse los datos, mientras que un socket contiene un par de nmeros, uno es el puerto a travs del cual la aplicain se comunica con TCP y el otro identifica la mquina en la que la aplicacin est corriendo. UDP (User Datagram Protocol, Protocolo de Datagrama de Usuario), que ofrece un servicio basado en envio de datagramas, no es orientado a conexin, por lo que cada datagrama debe contener la informacin de direccionamiento necesaria, y no es fiable ya que no se recibe confirmacin de los datagramas recibidos, ni se garantiza el orden de entrega, debiendo ser la aplicacin la encargada del control de estas tareas. Igual que TCP, permite multiplexacin. Nivel Internet Este nivel es responsable de asegurar que la informacin se transmita correctamente a travs de la red. Libera al nivel de transporte de la necesidad de conocer los mecanismos de transmisin de datos. No es fiable ni orientado a conexin. Los protocolos ms importantes del nivel Internet son: IP (Internet Protocol, Protocolo de Internet.) Trabaja con entrega de datagramas que, al no ser un protocolo fiable, pueden perderse o llegar desordenados o duplicados, debiendo ser TCP quien se encarge de estas cuestiones.

ESware Linux

201

Este protocolo selecciona la trayectoria que deben seguir los datagramas, realizando si es necesario fragmentacin y reensamblado de la informacin. ICMP (Internet Control Message Protocol, Protocolo de Mensajes de Control de Internet.) El objetivo principal es proporcionar informacin sobre errores o de control entre nodos. Normalmente son generados por el software TCP/IP y no por el usuario. ARP (Address Resolution Protocol, Protocolo de Resolucin de Direcciones.) Los adaptadores de red tienen un nmero nico que les identifica en la red. Se le conoce como direccin fsica del adaptador, y es puesto por el fabricante del hardware, de manera que no se repite en ningn otro adaptador del mundo. De esta manera se identifica a nivel fisico cada puesto en la red. El protocolo ARP se encarga de convertir las direcciones IP en direcciones fsicas. Nivel Fisico Es el responsable de la definicin de caractersticas mecnicas, electricas y funcionales de la transmisin y recepcin de informacin. Este nivel coincide con el homologo del Modelo de Referencia de la Osi. Se refiere al interfaz de red utilizado, de hecho TCP/IP no define ningn protocolo en este nivel, lo que pone de manifiesto la flexibilidad de TCP/IP.

Arquitectura cliente - servidor


El diseo de los servicios TCP/IP se implementan en dos partes diferenciadas, por un lado tendremos la mquina que proporciona el servicio, a la que llamaremos servidor, que atender las peticiones de otras mquinas que soliciten este servicio y en el otro extremo de la conexin estarn precisamente estas mquinas que llamaremos clientes . Ejemplos de este mdelo pueden ser ordenador que ofrezca ficheros a el resto de ordenadores de su red mediante ftp. Este ordenador sera el servidor y el resto los clientes. Sencillamente tendr activado el servicio ftp y los dems podrn conectarse para utilizar sus ficheros. Por supuesto una mquina puede ser servidor y cliente a la vez, suponga la red del ejemplo anterior con una variante: todos los puestos tienen activado el servicio ftp. Todos los puestos sern servidores en el momento en que un ordenador solicite sus servicios y clientes al hacer lo mismo con otros puestos. Direcciones IP El mtodo utilizado por TCP/IP para localizar e identificar cada uno de los puestos que estn conectados a una red es mediante la asignacin de una direccin IP , que debe ser nica en esa red, y que define tanto el puesto (host) y la red a que pertenece.

202

Captulo 12. Linux en Red

La direccin IP es un nmero de 32 bits de longitud, representado habitualmente en formato decimal,por cuatro grupos de nmeros separados por puntos. Por ejemplo: 192.168.112.125 Consta de dos direcciones lgicas: < Direccin de red > < Direccin de host > Tambin puede identificarse en la direcci IP la subred a la que pertenece el puesto: < Direccin de red > < Direccin de subred > < Direccin de host > Esta segunda formula surge debido a la limitacin en cuanto a nmeros de host que puede identificar una determinada clase de direcciones IP. Para agregar ms puestos que los soportados por la clase lo se divide la red en redes lgicas ms pequeas: esto es lo se denomina subred. Clases de direcciones IP Existen 5 tipos de formato diferentes para las direcciones IP que las dividen en las siguientes clases: Clase A. Dedica 7 bits para direcciones de red, lo que supone un mximo de 27= 128 redes, cada una de las cuales puede tener un mximo de 224= 16.777.216 ordenadores, ya que hay 24 bits para las direcciones de host. Esta clase se utiliza cuando se un nmero muy elevado de ordenadores; por ejemplo, redes gubernamentales. Rango: de 1.0.0.0 a 127.0.0.0 Clase B. Emplea 14 bits para direcciones de red y 16 bits para direcciones de host. Esto nos permite un nmero de 214= 16.536 redes, de un mximo 216= 65.536 hosts por red. Rango: de 128.0.0.0 a 191.255.0.0 Clase C. Tiene 21 bits para direcciones de red y 8 bits para direcciones de host. Esto nos permite un mximo de 221= 2.097.142 redes de 28= 256 hosts por red. Rango: de 192.0.0.0 a 223.255.255.0 Clase D. Se reservan todas las direcciones para multidestino (multicasting), esto es, cada mensaje se transmite para todo un grupo especifico de ordenadores. Clase E. Esta clase se utiliza con fines experimentales. Direccines reservadas Las redes de rea local tienen un rango de direcciones reservadas que podremos usar siem-

ESware Linux

203

pre en ordenadores que no tengan conexin directa a Internet o a redes que utilicen las mismas direcciones IP, no se puede tener dos ordenadores con la misma direccin IP conectados a la misma red. Las direcciones reservadas para LAN en cada clase son: Clase A, de la 10.0.0.0 a la 10.255.255.255, la mscara a utilizar es 255.0.0.0 Clase B, de la 172.16.0.0 a la 172.31.255.255, la mscara a utilizar es 255.255.0.0 Clase C, de la 192.168.0.0 a la 192.168.255.255, la mscara a utilizar es 255.255.255.0 A su vez estn reservadas las direcciones acabadas en cero (el timo octeto en binario todo ceros), que define la direccin de red, por ejemplo: 213.220.25.0 Las que acaban en 255 (el timo octeto en binario todo unos) son direccines de difusin, que alcanzan a todos los puestos, como: 213.220.25.255 y por ltimo la direccin de bucle o lazo (loopback) que se refiere siempre a si misma: 127.0.0.1 Subredes Si su red supera el nmero de puestos mximo deber utilizar diferentes mscaras de subred para implementar las subredes que necesite. La mscara es un mecanismo compuesto de ceros y de unos mediante el cual los unos indican la parte de direccin de red y subred y los ceros se corresponden con las direcciones de host. Por ejemplo: Un rango de direcciones de Clase C para LAN, podr contener hasta 254 hosts, (recuerde que no puede utilizar ni la que el ltimo octeto es todo ceros, 192.168.0.0 por ser la direccin de red, ni la que el ltimo octeto es todo unos, 192.168.0.255, por ser la direccin de difusin), usar un mscara de sub red con el siguiente formato: 255 11111111 . 255 11111111 . 255 11111111 . 0 00000000

204

Captulo 12. Linux en Red

esta mscara emplea 8 bits a las direcciones de host: 28= 256 hosts .( restando 2 reservadas = 254) Si en nuestra red tenemos 400 hosts necesitariamos emplear una mscara con al menos 9 bits para poder direccionar todos: 29 = 512 host, quedara de la siguiente manera: 255 11111111 . 255 11111111 . 255 01111111 . 0 00000000

Otro ejemplo: Suponga que desea dividir una Clase C en 4 redes de 64 puestos. Se necesitarn 6 bits para representar los 64 hosts (26 = 64 ), entonces la mscara para cada uno de los puestos sera: 255 11111111 . 255 11111111 . 254 11111111 . 192 11000000

Configuracin del Hardware de Red


Antes de poder utilizar un dispositivo de red, son necesarias una serie de funciones especiales definidas por el ncleo, de manera que si este ha sido recompilado, es necesario asegurarse de que proporciona los controladores necesarios para comunicarse correctamente con el dispositivo. El ncleo que proporciona Esware Linux por defecto est compilado con soporte para la mayoria de dispositivos ms comunes, por lo que si mantiene el ncleo original de la distribucin, no deberia tener muchos problemas para que su dispositivo sea correctamente detectado. El proceso de instalacin realiza un chequeo de hardware y en caso de encontrar algn dispositivo de red, le presenta un pantalla de configuracin donde se le pide los datos relativos a direccin IP del host, mscara de subred y las direcciones del servidor DNS y de la puerta de enlace. Si complet los datos de esta pantalla, probablemente tenga su dispositivo de red configurado. En caso contrario o si agreg el dispositivo despues de la instalacin, deber hacer la configuracin usted mismo. Veremos los programas y archivos de configuracin de red, trabajando con una tarjeta

ESware Linux

205

Ethernet como ejemplo, por ser las ms utilizadas actualmente. Los dispositivos de red se crean de forma dinmica por el controlador de dispositivos mientras se inicia y localiza el hardware. Hay nombres estndares para los dispositivos de red en Linux, sustituya n por el nmero de dispositivo en el sistema, empezando a contar siempre desde cero, son los siguientes: ethn pppn Es el usado para tarjetas de red Ethernet . Intefaz para dispositivos ppp (point to point protocol, protocolo punto a punto), son interfaces que se asocian a un lnea serie que se ha convertivo a ppp. Intefaz para dispositivos de lnea serie. Intefaz para dispositivos Token Ring.

sln trn

Un dispositivo que merece especial atencin es el dispositivo loopback, o de bucle. Funciona como un circuito cerrado donde cada datagrama enviado es automticamente devuelto al mismo sistema. El nombre de este dispositivo es lo. Es un dispositivo un tanto especial, necesario para algunos programas por lo que no se debe inhabilitar en ningn caso. Herramientas de configuracin. Disponemos de una serie de comandos y herramientas grficas para la configuracin de los dispositivos de red, direccines IP y tablas de encaminamiento. Primero: ifconfig El comando bsico es ifconfig, que se utiliza tanto para chequear el estado, configurar la interfaz, incluyendo la direccin IP, direccin de difusin, mascara de red y si la interfaz es o no operativa. Se utiliza durante el arranque para configurar aquellos interfaces que se necesiten. Tras esto, normalmente slo se necesita para la puesta a punto del sistema. La sintaxis de ifconfig es la siguiente: ifconfig interfaz direccin-IP [mascara] opciones direccin-difusin si se usa sin argumentos, ifconfig mostrar el estado actual de los interfaces activos. Ejemplo:

206

Captulo 12. Linux en Red

[root@jcv /root]# ifconfig eth0 Link encap:Ethernet HWaddr 00:C0:DF:E0:39:6B inet addr:192.168.13.47 Bcast:192.168.13.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4485 errors:0 dropped:0 overruns:0 frame:0 TX packets:401 errors:0 dropped:0 overruns:0 carrier:0 collisions:19 txqueuelen:100 Interrupt:10 Base address:0xe400 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:3924 Metric:1 RX packets:603 errors:0 dropped:0 overruns:0 frame:0 TX packets:603 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0

[root@jcv /root]# aqu se pueden ver dos dispositivos: eth0, que el la tarjeta ethernet y lo, el dispositivo de bucle o lazo, cuya direccin IP es 127.0.0.1. Esta es la forma ms sencilla de realizar una comprobacin del estado de los dispositivos. Si se pasa un slo argumento de interfaz, muestra slamente el estado de ese interfaz; si se da un solo argumento -a, muestra el estado de todos los interfaces, incluso de aquellos que no estn activos. De otro modo, configura un interfaz. Los argumentos ms comunes de ifconfig son los siguientes: up down arp interfaz. [-] arp promisc Esta opcin hace que el interfaz se active. Esta opcin hace que el interfaz se desactive. Activa el uso del Protocolo de Resolucin de Direcciones (ARP) para este

Desactiva el uso del protocolo ARP para este interfaz. Activa promiscuo del interfaz. Seleccionar esto, har que el interfaz recib todos los paquetes de la red. [-] promisc Desactiva el modo promiscuo del interfaz. metric N Esta opcin establece la mtrica de la interfaz. Es una medida de enrutamiento, a mayor metrica, menos favorable es la ruta. mtu N Este parmetro establece la Unidad de Transferencia Mxima (MTU) de un interfaz. netmask [addr] Establece la mscara de red IP para un interfaz. Este valor es por defecto el

ESware Linux

207

de la mscara de red normal de clase A, B o C , pero puede configurarse para cualquier valor. irq [addr] Establece la lnea de interrupcin usada por el dispositivo. io_addr [addr] Establece la direccin inicial en el espacio de E/S para este dispositivo. broadcast [addr] Establece la direccin de emisin del protocolo del interfaz. [-] pointopoint [addr] Esta opcin activa el modo point-to-point (punto a punto) del interfaz, lo cual significa que se trata de una unin directa entre dos mquinas, sin nadie ms a la escucha. El uso de ifconfig para configurar una tajeta de red est restringido al administrador del sistema (root), un usuario sin privilegios , nicamente puede usarlo para comprobar el estado. Por ejemplo, desactivar un dispositivo de red con ifconfig es tan sencillo como ejecutar la siguiente orden: [root@jcv /root]# ifconfig eth0 down y para volvera activar el dispositivo: [root@jcv /root]# ifconfig eth0 up Una opcin muy particular que nos ofrece Linux es la posibilidad de asignar a un dispositivo un alias de red. Esto consiste simplemente en proporcionar al mismo dispositivo fisico una configuracin virtual, que le asignar una nueva identidad en la red, de manera que nos permite, por ejemplo disponer diferentes direcciones IP, en e mismo dispositivo, para diferentes servicios.. Para asignar un alias de red a un dispositivo tambien usaremos el comando ifconfig: [root@jcv /root]# ifconfig eth0:0 192.168.100.1 netmask 255.255.255.0 fijese que despues del nombre de dispositivo aadimos dos puntos y un nmero, en este caso el cero. Este es el nmero de alias con que ser conocido el dispositivo. De manera que se ha creado el alias eth0:0 para la tarjeta Ethernet eth0. Al ejecutar ahora ifconfig para comprobar el estado, obtenemos la siguiente salida: [root@jcv /root]# ifconfig eth0 Link encap:Ethernet HWaddr 00:C0:DF:E0:39:6B inet addr:192.168.13.47 Bcast:192.168.13.255 Mask:255.255.255.0

208

Captulo 12. Linux en Red

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 Interrupt:5 Base address:0xd800 eth0:0 Link encap:Ethernet HWaddr 00:C0:DF:E0:39:6B inet addr:192.168.100.2 Bcast:192.168.100.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:5 Base address:0xd800 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:3924 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0

[root@jcv /root]# dispondremos de dos direcciones IP con un nica terjeta de red, las dos perfectamente operativas. Para que la creacin de alias de red se realice automticamente debe aadir el comando que us para activar el alias al script /etc/init.d/network. Segundo: route El comando route nos permite consultar y manejar la tabla de encaminamiento (tambien leer enrutamiento). El objetivo de esta tabla ( piense en tabla como equivalente a una lista) es informar al ncleo que hacer con cada paquete que deba salir del equipo, que dispositivo deber usar y si utiliza una puerta de enlace (gateway) o lo envia directamente a su destino. La sintaxis de route es la siguiente: route [opciones] [comando [parametros]] ejecutardo sin argumentos, route muestra la configuracin actual de la tabla de rutas: [root@jcv /root]# route Kernel IP routing table Destination Gateway Genmask Flags 192.168.100.0 * 255.255.255.0 U

Metric 0

Ref 0

Use 0

Iface eth0

ESware Linux

209

192.168.0.0 * 255.255.255.0 U 0 0 0 eth0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo [root@jcv /root] # al haber declarado un alias de red, obtenemos dos lneas asignadas al mismo dispositivo, eth0, una para cada diraccin de red. La salida de route presenta siete columnas: 1. Destino, indica hacia donde se van a enviar los paquetes. El nombre especial default indica la puerta de enlace por defecto. 2. Gateway, indica la direccin o el nombre de la puerta de enlace a traves de la cual se envian los paquetes. Un asterisco (*) indica que los paquetes se envian directamente a su destino. 3. Genmask, es la mscara que se aplica al valor Destino a travs de esa ruta. 4. Flags, puede contener varios valores: U (up), ruta disponible H (host), el destino es un puesto no de trafico. Supone una ruta esttica a ese equipo. G (gateway), el paquete se envia a un puesto controlador de trafico, no al destino directamente 5. Metric, indica la distancia al destinatario, la emplean algunos demonios de enrutamiento. No se usa con los ltimos ncleos. 6. Ref, nmero de referencias a este ruta. (No se usa en el ncleo de Linux) 7. Use, cuenta el nmero de bsquedas para esta ruta. 8. Iface, indica el dispositivo a travs del cual se enviarn los paquetes para esta ruta. Para modificar las rutas de la tabla de encaminamiento se emplean los comandos add y del. La sintaxis en este caso es: route add|del [-net|-host] <destinatario> [gw <puerta>] [netmask <mscara>] [dev]<dispositivo> Los comandos add y del se usan respectivamente para aadir o borrar una entrada en la tabla. Las opciones -net y -host no son imprescindibles, pero eliminan cualquier posible ambigedad. Indican si el objetivo es una red (-net) o si el objetivo es un ordenador (-host). La opcin gw indica que cualquier paquete IP para la red u ordenador objetivo se encaminar a travs del gateway especificado La opcin netmask indica la mscara de red de la ruta que se va a aadir. La opcin dev asocia la ruta con el dispositivo que se especifica, de otro modo, el ncleo

210

Captulo 12. Linux en Red

tratar de determinar el dispositivo por s mismo (mediante la comprobacin de las rutas y especificaciones de dispositivo existentes). En la mayora de los casos esta opcin no ser necesaria. Ejemplos: route add -net 127.0.0.0 Aade la tpica entrada de tipo loopback, usando una mscara de red 255.0.0.0 (red clase A, determinada por la direccin de destino) asociada con el dispositivo lo (dicho dispositivo se debe configurar previamente con ifconfig). route add -net 192.168.13.0 netmask 255.255.255.0 dev eth0 aade una ruta a la red 192.168.13.x va eth0. El modificador de mscara de red de clase C no resulta realmente necesario en este caso dado que 192.* es una direccin de clase C. Tambien se podria omitir la opcin dev. route add default gw 192.168.1.25 Aade una ruta por defecto (que ser usada en caso de no poder usar ninguna otra). Todos los paquetes que sigan esta ruta sern encaminados por medio de 192.168.1.25. El dispositivo utilizado para esta ruta depender de cmo pueda alcanzarse 192.168.1.25 route add -net 213.220.15.0 netmask 255.255.255.0 gw 192.168.1.25 Este comando aade la red 213.220.15.x que ha de ser encaminada va gateway a travs de la direccin 192.168.1.25. route add 10.0.0.0 netmask 255.0.0.0 reject Instala una ruta de rechazo para la red privada 10.x.x.x. Tercero: netstat Una herramienta util donde las haya: netstat. En realidad es un conjunto de herramientas que nos facilta informacin sobre la configuracin y la actividad de la red. Por ejemplo, veamos el resultado de la ejecucin de netstat -r: [root@jcv /root]#netstat -r Kernel IP routing table Destination Gateway Genmask Flags 192.168.100.0 * 255.255.255.0 U

Metric 0

Ref 0

Use 0

Iface eth0

ESware Linux

211

192.168.0.0 * 255.255.255.0 U 0 0 0 eth0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo [root@jcv /root]# es en realidad una llamada al comando route que acabamos de ver. Ejecutado sin argumentos muestra el estado de las conexiones de red. Presenta una lista de los conectores (sockets) que estn abiertos. Esta es la operacin por defecto: si no se especifica ninguna familia de direcciones, se mostrarn los conectores activos para todas las familias de direcciones configuradas. Con la opcin -e se puede obtener informacin adicional (userid, identificador de usuario). Con el modificador -v se consigue que netstat muestre familias de direcciones conocidas no soportadas por el ncleo. La opcin -o muestra informacin adicional sobre los temporizadores de red. La opcin -a muestra todos los conectores, incluyendo los que se encuentran a la escucha de recibir peticiones en el servidor. Este es el resultado de ejecutar netstat-a: [root@jvc /root]# netstat -a Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 jcv.linux:ftp globus.linux:1040 ESTABLISHED tcp 0 0 globus.linux:1040 jcv.linux:ftp ESTABLISHED tcp 0 0 jcv.linux:telnet globus.linux:1039 ESTABLISHED tcp 0 0 globus.linux:1039 jcv.linux:telnet ESTABLISHED tcp 26112 0 jcv.linux:16001 globus.linux:1038 ESTABLISHED tcp 0 34848 globus.linux:1038 jcv.linux:16001 ESTABLISHED tcp 0 0 jcv.linux:16001 *:* LISTEN tcp 0 0 *:6000 *:* LISTEN tcp 0 0 *:10000 *:* LISTEN tcp 0 0 *:printer *:* LISTEN tcp 0 0 *:nntp *:* LISTEN tcp 0 0 *:auth *:* LISTEN tcp 0 0 *:pop3 *:* LISTEN tcp 0 0 *:telnet *:* LISTEN tcp 0 0 *:ftp *:* LISTEN tcp 0 0 *:sunrpc *:* LISTEN udp 0 0 *:10000 *:* udp 0 0 *:sunrpc *:* raw 0 0 *:icmp *:* 7 raw 0 0 *:tcp *:* 7 Active UNIX domain sockets (servers and established)

212

Captulo 12. Linux en Red

Proto RefCnt Flags Type State I-Node Path unix 1 [ ] STREAM unix 1 [ ] STREAM unix 1 [ ] STREAM unix 1 [ N ] STREAM unix 0 [ ] STREAM unix 0 [ ACC ] STREAM unix 1 [ ] STREAM unix 0 [ ACC ] STREAM unix 1 [ ] STREAM unix 1 [ ] STREAM unix 0 [ ] DGRAM

CONNECTED CONNECTED CONNECTED CONNECTED CONNECTED LISTENING CONNECTED LISTENING CONNECTED CONNECTED

617 @0000002e 620 @0000002f 1802 @0000004a 1216 @00000039 192 @00000018 470 /dev/printer 626 @00000030 521 /dev/gpmctl 293559 @00000053 293692 @00000054 294069 [root@jcv /root]#

El significado de la informacin presentada en pantalla es el siguiente: Conexiones a Internet activas (TCP, UDP, RAW) Proto El protocolo (tcp, udp, raw) usado por el conector. Recv-Q La cantidad de bytes no copiados por el programa del usuario conectado a este conector. Send-Q La cantidad de bytes no reconocidos por el ordenador remoto. Local Address La direccin local (nombre del ordenador local) y nmero de puerto del conector. A no ser que se d la opcin -n, se resolver la direccin del conector segn su nombre cannico, y el nmero de puerto se traduce a su nmero de servicio correspondiente. Foreign Address La direccin remota (nombre del ordenador remoto) y el nmero de puerto del conector. Al igual que ocurre con la direccin local:puerto, la opcin -n desactiva la resolucin de nombres de servicio y de ordenador. State El estado del conector. Dado que no existen estados para el tipo RAW y normalmente no se usan para el UDP, esta columna puede dejarse en blanco. Normalmente puede ser uno de los siguientes valores:

ESware Linux

213

ESTABLISHED El conector tiene una conexin establecida. SYN_SENT El conector est tratando de establecer una conexin activamente. SYN_RECV Se ha recibido una peticin de conexin de la red. FIN_WAIT1 El conector est cerrado y la conexin se est cerrando. FIN_WAIT2 La conexin est cerrada y el conector est esperando que el remoto haga lo mismo. TIME_WAIT El conector, tras el cierre de la misma, se encuentra todava esperando para manejar paquetes en la red. CLOSED El conector no est en uso. CLOSE_WAIT Habindose cerrado el punto remoto, se est esperando a que el conector local se cierre. LAST_ACK El extremo remoto se ha cerrado y se cierra el conector local. Esperando confirmacin. LISTEN El conector est a la escucha de conexiones entrantes. Estos conectores se muestran solamente si la opcin -a,listening est presente. CLOSING Ambos conectores se estn cerrando pero an no han sido enviados todos los datos. User El nombre o el identificador de usuario (UID) del propietario del conector. Conectores de dominio Unix activos. Proto El protocolo (normalmente Unix) que usa el conector.

214

Captulo 12. Linux en Red

RefCnt El cmputo de referencia (es decir, procesos relacionados con el uso de este conector) Flags Se muestran SO_ACCEPTON (mostrada como ACC), SO_WAITDATA (W) o SO_NOSPACE (N). SO_ACCECPTON se usa en conectores que no se encuentran en uso si sus procesos correspondientes estn a la espera de una peticin de conexin. El resto de flags normalmente carecen de inters. Type Existen varios tipos de acceso a conectores: SOCK_DGRAM El conector se usa en modo Datagrama (sin conexin) SOCK_STREAM Este es un conector stream (con conexin). SOCK_RAW El conector se usa como un conector RAW. SOCK_RDM Este otro es capaz de distribuir mensajes de forma fiable. SOCK_SEQPACKET Este es un conector para paquetes secuenciales. SOCK_PACKET Conector para un interfaz de tipo RAW. State Este campo deber contener una de las palabras siguientes: FREE El conector no ha sido asignado. LISTENING El conector se encuentra a la espera de una peticin de conexin. Estos conectores normalmente slo se muestran si se usa a opcin -a,listening. CONNECTING El conector est a punto de establecer una conexin.

ESware Linux

215

CONNECTED El conector est conectado. DISCONNECTING El conector est desconectado. (empty) El conector no est conectado a otro. Path Muestra la ruta completa (path) de los procesos asociados al conector. Desde la aparicin de la versin 2.2 del ncleo netstat -i ya no muestra las estadsticas de los interfaces alias de red.

Herramientas grficas de configuracin


A las herramientas bsicas que hemos visto hay que aadir un par ms que podemos usar en los ordenadores que dispongan de entorno grfico. Como es habitual, aaden una comodidad de manejo que no poseen las ordenes ejecutadas desde lnea de comandos, pero no hay que olvidar que a cambio suelen sacrificar algo de la potencia y flexibilidad que proporcionan las diversas opciones y argumentos que soportan las ordenes lanzadas desde el prompt.

216

Captulo 12. Linux en Red

netcfg Al ejecutar la orden netcfg, se presenta una primera pantalla como la siguente:

Figura 12-1. Pantalla inicial de netcfg

en este apartado se indican los nombre de la mquina y el dominio a que pertenece, adems de informacin sobre dominios adicionales y los servidores de nombres que se debern usar.

ESware Linux

217

Figura 12-2. Fichero /etc/hosts, desde netcfg

Pulsando con el ratn el boton sealado como Hosts, accedemos al fichero /etc/hosts, pudiendo aadir entradas, borrar o modificar las existentes.

218

Captulo 12. Linux en Red

Figura 12-3. Dispositivos de red

La figura 12-3 muestra infirmacin del estado de los didpositivos de red. Se puede aadir o editar la propiedades de cada uno de los dispositivos disponibles. Aadir un dispositivo. Al pulsar sobre el botn aadir se muestra la siguiente pantalla:

ESware Linux

219

Figura 12-4. Seleccin del tipo de dispositivo

Donde se debe indicar el tipo de dispositivo que deseamos configurar. Se continua la operacin pulsando el botn Ok.

Figura 12-5. Parmetros del dispositivo

Se indica a continuacin los detalles especificos del dispositivo que estamos aadiendo. Note que los parmetros sern diferentes dependiendo del tipo de dispositivo de que se trate.

220

Captulo 12. Linux en Red

Modificar un dispositivo ya existente. Si se pulsa la opcin Edit veremos una pantalla como la siguiente:

Figura 12-6. Modificar los parmetros de eth0

Una vez realizados los ajustes necesarios se finaliza la operacin pulsando Done.

ESware Linux

221

Configuracin de rutas

Figura 12-7. Definicin de rutas

Las opciones que nos ofrece el comando route, las podemos utilizar desde esta pantalla.

222

Captulo 12. Linux en Red

netconf Al ejecutar el comando netconf, accedemos a otro interface grfico que agrupa un buen nmero de herramientas de configuracin de todo lo relacionado con la parte de red:

Figura 12-8. Pantalla principal de netconf

La primera opcin es INFORMACIN BSICA DEL EQUIPO. Donde podemos ver una pantalla de configuracin, con parmetros ya habituales , a estas alturas.

ESware Linux

223

Figura 12-9. Parmetros del dispositivo.

Se puede apreciar un mayor nivel de detalle en la configuracin, como es la seleccin del mdulo del kernel y las interrupcines que deseamos que emplee. Configuracin de rutas Otra de las utilidades incluidas en netconf es la definicin de rutas para acceder a otras redes.

224

Captulo 12. Linux en Red

Figura 12-10. Configuracin de rutas

Por supuesto se puede definir la direccin IP de la pasarela por defecto:

Figura 12-11. direccin IP de la pasarela por defecto

nicamente necesitar este paso en mquinas que usen este servicio para conectarse a otras redes.

ESware Linux

225

Figura 12-12. Orden de bsqueda de resolucin de nombres

En este apartado se define el orden de bsqueda de los diferentes servicios de resolucin de nombres. Tenga en cuenta que para indicar Nis o DNS , estos deben estar disponibles en la red y necesariamente se debe indicar a la mquina cual es la ubicacin de dichos servicios. Para que las consultas al fichero /etc/hosts sean correctas, este debe estar configurado correctamente. Lea el apartad Ficheros de configuracin, un poco ms adelante , para saber la forma correcta de trabajar con este fichero. Alias para dispositivos Se vio anteriomente la posibilidad de asignar a un dispositivo un alias de red, que consiste en dotar al mismo dispositivo fisico una configuracin virtual,proporcionando diferentes direcciones IP para diferentes servicios.

226

Captulo 12. Linux en Red

Figura 12-13. Definicin de alias

Salir de netconf Por ltimo, la facilidad que nos ofrece netconf, si se han realizado cambios en la configuracin es que permite hacerlos cambios activos, reiniciando los servicios pertinentes. Es equivalente a la ejecucin de ordenes como: /etc/rc.d/init.d/network restart o /etc/rc.d/init.d/inet restart

ESware Linux

227

Figura 12-14. Salida de netconf

Ficheros de configuracin
A continuacin detallaremos una serie de ficheros que afectan de alguna manera al comportamiento de nuestra mquina Linux al trabajar en una red. /etc/hosts Es una simple base de datos que se utiliza como un sencillo resolvedor de nombres. Relaciona direcciones IP con nombres de mquinas , de manera que las referencias se puedan realizar indistintamente de una u otra manera. El formato de este fichero es: <direccin IP> <nombre de host> <alias>

Ejemplo de un fichero /etc/hosts de una mquina que pertenece a una pequea red de rea local: 127.0.0.1 192.168.0.10 192.168.0.11 192.168.0.12 192.168.0.13 localhost.localdomain maquina.linux.edu miguelin.linux.edu fran.linux.edu puesto13.linux.edu localhost maquina miguelin fran puesto13

228

Captulo 12. Linux en Red

192.168.0.14 192.168.0.15 192.168.0.17 192.168.0.18

jc.linux.edu trinijuan.linux.edu r2d2.linux.edu ruben.linux.edu

jc trinijuan adrian ruben

De esta manera, nos podemos referir a una mquina por su nombre (o su alias) y funcionar igual que si lo hacemos por la direccin IP. Por ejemplo, con este fichero, ser igual el comando: ping 192.168.0.11 que el comando ping miguelin, siendo este ltimo, quizs ms facil de recordar y utlizar. Normalmente, siempre mantendremos en este fichero la entrada para localhost, la direccin de lazo, el resto de mquinas que incluyamos aqu, depender de diversos factores, como, por ejemplo, de si en nuestra red disponemos de un Servicio de Nombres de Dominio (DNS), en cuyo caso es DNS el encargado de resolver los nombres a sus correctas direcciones IP /etc/sysconfig/network Este fichero sirve de informacin a otros ficheros y servicios relacionados con la red. Un ejemplo de /etc/sysconfig/network: NETWORKING=yes FORWARD_IPV4=false HOSTNAME=jcv.linux.edu DOMAINNAME=linux.edu GATEWAY=230.213.45.40 GATEWAYDEV=eth0 /etc/services Este fichero proporciona una correspondencia entre los nombres de los servicios de red y sus correspondientes nmeros de puerto y tipos de protocolo asociados. Las aplicaciones de red deberan mirar este fichero para obtener el nmero de puerto (y protocolo) para su servicio. La presencia de una entrada para un servicio en el fichero no significa, necesariamente, que el servicio se est ejecutando actualmente en la mquina. El formato es bastante simple. Es un fichero de texto en el que cada lnea representa una entrada a la base de datos. Cada entrada comprende tres campos: nombre puerto/protocolo alias # comentario

ESware Linux

229

El significado de los campos es el siguiente: nombre Es el nombre el que el servicio es conocido y buscado. Una sola palabra que representa el servicio descrito. puerto/protocolo Este campo est dividido en dos subcampos. Puerto es es el nmero de puerto (en decimal) usado por este servicio y protocolo es el tipo de protocolo usado. Los valores habituales son tcp y udp. alias Otros nombres que pueden usarse para referirse a esta entrada de servicio. Cualquier texto que aparezca en una lnea despus de un caracter # ser ignorado y se trata como un comentario. Un ejemplo del fichero /etc/services (incompleto, ya que es bastante largo y no tiene sentido reproducirlo integramente aqu): tcpmux echo echo discard discard systat daytime daytime netstat qotd msp msp chargen chargen ftp-data ftp fsp ssh ssh telnet # 24 - private smtp # 26 - unassigned 1/tcp 7/tcp 7/udp 9/tcp 9/udp 11/tcp 13/tcp 13/udp 15/tcp 17/tcp 18/tcp 18/udp 19/tcp 19/udp 20/tcp 21/tcp 21/udp 22/tcp 22/udp 23/tcp 25/tcp # TCP port service multiplexer

sink null sink null users

quote # message send protocol # message send protocol ttytst source ttytst source

fspd # SSH Remote Login Protocol # SSH Remote Login Protocol

mail

230

Captulo 12. Linux en Red

time time rlp nameserver whois re-mail-ck re-mail-ck domain domain mtp bootps bootps bootpc bootpc tftp gopher gopher rje finger www www link kerberos kerberos 88/udp

37/tcp 37/udp 39/udp 42/tcp 43/tcp 50/tcp 50/udp 53/tcp 53/udp 57/tcp 67/tcp 67/udp 68/tcp 68/udp 69/udp 70/tcp 70/udp 77/tcp 79/tcp 80/tcp 80/udp 87/tcp 88/tcp

timserver timserver resource name nicname

# resource location # IEN 116 # Remote Mail Checking Protocol # Remote Mail Checking Protocol # name-domain server # deprecated # BOOTP server # BOOTP client

nameserver nameserver

# Internet Gopher netrjs http ttylink kerberos5 krb5 kerberos5 krb5 # WorldWideWeb HTTP # HyperText Transfer Protocol # Kerberos v5 # Kerberos v5

Los nmeros de puerto son asignados por la IANA (Internet Assigned Numbers Authority: Autoridad para la Asignacin de Nmeros de Internet), y su poltica actual es la de asignar tanto los protocolos TCP y UDP cuando se asigna un nmero de puerto. Es por esto que la mayora de los servicios tienen dos entradas, incluso para los servicios que son exclusivos de TCP. Los nmeros de puerto por debajo de 1024 (llamados puertos bien conocidos, del uso anglosajn well know ports) slo pueden ser asociados por el superusuario (root.) Esto es as para que los clientes que se conecten a estos puertos, puedan confiar en que el servicio que est ejecutndose en el puerto es la implementacin estndar y no un servicio falso ejecutado por un usuario de la mquina. /etc/protocols El fichero /etc/protocols es una base de datos que relaciona nmeros de identificacin de protocolos con sus nombres. Esto lo usan los programadores para especificar protocolos por su nombre en sus programas y tambin por programas para mostrar nombres en lugar de nmeros en sus mensajes de salida. Estos nmeros se incluyen en el campo de protocolo de cualquier cabecera IP.

ESware Linux

231

La sintaxis del fichero es: nombredelprotocolo nmero alias La descripcin de los campos es la siguiente: protocolo Nombre nativo del protocolo. Por ejemplo: ip, tcp o udp. nmero Nmero oficial para este protocolo tal como ir en la cabecera IP. alias alias o nombres alternativos opcionales para este protocolo. Un ejemplo del fichero /etc/protocols: ip icmp igmp ggp ipencap st tcp egp pup udp hmp xns-idp rdp iso-tp4 xtp ddp idpr-cmtp ipv6 ipv6-route ipv6-frag ipv6-crypt ipv6-auth ipv6-icmp ipv6-nonxt 0 1 2 3 4 5 6 8 12 17 20 22 27 29 36 37 39 41 43 44 50 51 58 59 IP ICMP IGMP GGP IP-ENCAP ST TCP EGP PUP UDP HMP XNS-IDP RDP ISO-TP4 XTP DDP IDPR-CMTP IPv6 IPv6-Route IPv6-Frag IPv6-Crypt IPv6-Auth IPv6-ICMP IPv6-NoNxt # internet protocol, pseudo protocol number # internet control message protocol # Internet Group Management # gateway-gateway protocol # IP encapsulated in IP (officially IP) # ST datagram mode # transmission control protocol # exterior gateway protocol # PARC universal packet protocol # user datagram protocol # host monitoring protocol # Xerox NS IDP # reliable datagram protocol # ISO Transport Protocol class 4 # Xpress Tranfer Protocol # Datagram Delivery Protocol # IDPR Control Message Transport # IPv6 # Routing Header for IPv6 # Fragment Header for IPv6 # Encryption Header for IPv6 # Authentication Header for IPv6 # ICMP for IPv6 # No Next Header for IPv6

232

Captulo 12. Linux en Red

ipv6-opts rspf vmtp ospf ipip encap

60 73 81 89 94 98

IPv6-Opts RSPF VMTP OSPFIGP IPIP ENCAP

# # # # # #

Destination Options for IPv6 Radio Shortest Path First. Versatile Message Transport Open Shortest Path First IGP Yet Another IP encapsulation Yet Another IP encapsulation

/etc/host.conf El fichero /etc/host.conf configura la forma de usar el resolvedor de nombres de Internet, indicando el orden en que se deben emplear los distintos mtodos de bsqueda, ya sea el fichero /etc/hosts, un servidor DNS o un servidor NIS (Network Informatin Service). Debe contener una palabra clave de configuracin por cada lnea, seguida de la informacin de configuracin. Las palabras clave reconocidas son order, trim, multi, nospoof y reorder. Cada palabra clave se describe a continuacin: order Especifica cmo se efectuarn las bsquedas de nombres de ordenadores. Debe ir seguida de uno o ms mtodos de bsqueda, separados por comas. Mtodos vlidos son: bind (si se emplea un servidor DNS), hosts (si se emplea el fichero /etc/hosts) y nis (si se emplea un servidor NIS). trim Esta palabra puede ir repetida. Cada vez debe ir seguida por un solo nombre de dominio, con el punto inicial. Cuando se d esta palabra, automticamente se quitar el nombre del dominio dado del final de cualquier nombre de ordenador resuelto a travs de DNS. trim no afectar a nombres de ordenador adquiridos mediante NIS ni mediante el fichero /etc/hosts. multi Los valores vlidos son on y off. Si est como on, se devolvern todas las direcciones vlidas para un ordenador que aparezca en el fichero /etc/hosts, en vez de solamente la primera. El valor por defecto es off, pues puede provocar una prdida de rendimiento en sitios con ficheros /etc/hosts muy grandes. nospoof Los valores vlidos son on y off. Si est como on, se intentar prevenir los ataques conocidos como suplantacin de nombre de ordenador (hostname spoofing.) El mecanismo es el siguiente: tras efectuar una bsqueda de nombre-direccin de ordenador, se efectuar una bsqueda de direccin-nombre (bsqueda inversa). Si los dos nombres no concuerdan, la peticin se consider erronea. El valor por defecto es off.

ESware Linux

233

alert Si esta opcin est en on y la opcin nospoof tambin est activada, se registrar un mensaje de error a travs de syslog (registros del sistema) en los intentos de acceso rechazados por nospoof. El valor predeterminado es off. reorder Los valores vlidos son on y off. Si est como on, se reordenan las consultas de modo que las locales (o sea, las de la misma subred) se envian primero. El reordenamiento se hace para todos los mtodos de bsqueda. El valor predeterminado es off. A continuacin se muestra un ejemplo del fichero /etc/host.conf: order hosts,bind multi on En el se indica que, en primer lugar se consulte el fichero /etc/hosts y despues el servidor DNS (recuerde que esto ltimo solo funcionar si en su red existe un servidor DNS vlido)

Comportamiento de los servicios de red


Cada uno de los diferentes servicios de red pueden ser lanzados en el sistema en tiempo de arranque, sencillamente configurando correctamente los scripts rc, como se ha visto anteriomente. Sin embargo, en Linux existe un servicio especial desde el cual es posible controlar el comportamiento de algunos de estos servicio. Se trata del servidor inetd, conocido como servidor de servidores o superservidor de internet. Veamos su funcionamiento. Inetd debe ejecutarse en el arranque mediante /etc/rc.local. A partir de ese momento permanece a la escucha de conexiones en ciertos conector (socket) de internet. Cuando encuentra una conexin en uno de sus conectores, comprueba a qu servicio de conexin corresponde, (mirando el fichero /etc/services) y llama a un programa para atender la solicitud. Cuando este programa termina, contina a la escucha en el conector (salvo en algn caso que se describir ms adelante). Esencialmente, inetd permite ejecutar un demonio para llamar a otros muchos, reduciendo la carga del sistema. En ejecucin, inetd lee su informacin de configuracin de un fichero de configuracin, que por defecto es /etc/inetd.conf. Los campos del fichero de configuracin deben separarse por espacios o tabuladures y son de la siguiente forma: nombre de servicio tipo de conector protocolo wait/nowait[.max]

234

Captulo 12. Linux en Red

usuario[.grupo] programa servidor argumentos del programa servidor Para especificar un servicio basado en Sun-RPC la entrada debera contener estos campos. nombre servicio/versin tipo de conector rpc/protocolo wait/nowait[.max] usuario[.grupo] programa servidor argumentos del programa servidor La entrada nombre de servicio es el nombre de un servicio vlido del fichero /etc/services. Para servicios internos, el nombre de servicio tiene que ser el nombre oficial del servicio (estoes, la primera entrada de /etc/services). Cuando se usa para especificar un servicio basado en Sun-RPC, este campo es un nombre de servicio RPC vlido del fichero /etc/rpc. la parte a la derecha de / es el nmero de versin RPC. Esto puede ser simplemente un argumento numrico o un rango de versiones. El tipo de conector (tipo de socket) debera ser stream, dgram, raw, rdm, or seqpacket, dependiendo de si el conector es un flujo, datagrama, en bruto, mensaje entregado fiable o conector de paquetes secuenciados. El protocolo tiene que ser un protocolo vlido como los dados en /etc/protocols. Pueden ser ejemplos tcp o udp. Los servicios basadso en Rpc se especifican con el tipo de servicio rpc/tcp o rpc/udp. La entrada wait/nowait es aplicable a conectores de datagrama slo (los otros conectores deberan tener una entrada nowait es este espacio). Si un servidor de datagrama conecta a su par, libera el conector, de manera que inetd puede recibir posteriores mensajes por ese conector, esto se conoce como servidor multihilo y entonces deber usar la entrada nowait. Para los servidores de datagrama que procesa todos los datagramas entrantes por un conector y al final del proceso lo desconecta, al servidor se conoce como de hilo simple y deber usar una entrada wait. El sufijo opcional max (separado de wait o nowait por un punto) especifica el mximo numero de instancias del servidor que se pueden activar desde inetd en un intervalo de 60 segundos. Cuando se omite max toma el valor por defecto de 40. La entrada usuario debera contener el nombre de usuario bajo el que ejecutar el servidor. Esto permite que a los servidores se les d menos permisos que al root. Se puede especificar un nombre de grupo opcional aadiendo un punto al nombre de usuario seguido por el nombre de grupo.

ESware Linux

235

Esto permite a los servidores ejecutarse con un identificador de grupo(primario) diferente al especificado en el fichero /etc/passwd. Si se especifica un grupo y el usuario no es root, se asignan los grupos suplementarios asociados con ese usuario. La entrada programa servidor debera contener la ruta completa del programa que se ejecutar por inetd cuando encuentre una solicitud en suconector. Si inetd proporciona este servicio internamente, esta entrada debera ser internal. Los argumentos del programa servidor ser como son normalmente los argumentos, empezando con argv, que es el nombre del programa Si proporciona este servicio internamente, la palabra internal debera estar en el lugar de esta entrada. Inetd proporciona varios servicios triviales internamente usandorutinas con l mismo. echo, discard, chargen (generador decaracteres), daytime (fecha-hora en formato legible), y time (fecha-hora formato de mquina, en el formato del nmero de segundos desde medianoche de 1 de enero de 1900). Todos estos servicios estn basados en tcp. Se pueden aadir servicios, borrarlos sencillamente modificando el fichero de configuracin. Inetd crea el fichero /var/run/inetd.pid que contiene su identificador de proceso. Para que los cambios realizados en el fichero de configuracin se hagan activos es necesario, que inetd relea dicho fichero. Esto se consigue ejecutando la orden: kill -HUP < nmero identificador de proceso> o tambien: /etc/rc.d/init.d/inet restart

236

Captulo 12. Linux en Red

Captulo 13. Compartir recursos en Red: Samba

Una de las necesidades que ocasionalmete se encuentra un administrador de red es la de hacer coexistir mquinas con distintos sistemas operativos, y que a pesar de ello sean capaces de compartir recursos a traves de la red. Un servidor de impresin Linux y un par de mquinas en las que corre Windows 98 de Microsoft, por ejemplo. O tener acceso a directorios compartidos de Windows NT desde las estaciones Linux, y viceversa. Todo esto es posible implementarlo mediante una correcta configuracin de un sofware que tiene disponible en su distribucin Esware: Samba. Samba proporciona a Linux servicios de protocolo Session Message Block (al que llamaremos a partir de ahora SMB, y que adems es conocido tambin como NetBIOS o LanManager), que es el protocolo empleado por los sistemas operativos de Microsoft para compartir archivos y servicios de impresin. Y lo mejor de todo es que Samba trabaja en las dos direcciones, lo que significa que tenemos posibilidad de hacer que las mquinas Linux aparezcan en el Entorno de Red de Windows

Instalacin de Samba
Si no lo selecciono durante la instalacin, tendr que recurrir al CD 1 (sistema) de Esware. Encontrar, en el directorio: /mnt/cdrom/Esware/RPMS/ los siguientes paquetes, necesarios para empezar a trabajar con Samba. samba-2.0.6-9.i386.rpm samba-client-2.0.6-9.i386.rpm samba-common-2.0.6-9.i386.rpm La instalacin de cualquier paquete basado en rpm no debera suponer ningun problema, si ha llegado a este punto del libro, de todas formas el comando a ejecutar es: rpm -ivh <nombre_del_paquete_rpm>

ESware Linux

237

Componentes de Samba
Samba incorpora un variado conjunto de componentes, cada uno de los cuales tiene un funcin bien definida, a continuacin se describe la tarea principal de los mismos: smbd El demonio Samba. Es el encargado de proveer servicio a los clientes SMB, como Windows 95/98 y Windows NT. El fichero de configuracin de este demonio es /etc/smb.conf snmbd El demonio nmbd proporciona servicio de nombres y navegacinNetBIOS ssmbclient Es un programa cliente (parecido a un ftp), que se usa para acceder desde Linux a recursos compartidos mediante SMB (como puedan ser directorios o impresoras de Windows NT) stestparm Utilidad que permite chequear el fichero de configuracin /etc/smb.conf. stestprns Utilidad que permite chequear las impresoras definidas en el fichero /etc/printcap. ssmbstatus Herramienta que comprueba y presenta una lista de las conexiones activas en el servidor smbd. snmblookup Realiza consultas sobre nombres NetBIOS, relacionandolos con sus direcciones IP, desde mquinas Linux smake_smbcodepage Utilidad que permite crear ficheros de definicin de pginas de codigos para el servidor smbd. ssmbpasswd Cambia las contraseas encriptadas SMB de los usuarios en los servidores Samba. La instalacin de Samba, coloca los scripts de inicio del servidor junto a todos los scripts rc.d de manera que el arranque y parada del servidor sigue la convencin de este sistema. (Repase la parte de arranque del sistema si no est seguro.) Por supuesto, esto es modificable y se puede hacer el inicio de Samba desde inetd, para ello deber aadir al fichero de configuracin de inetd, /etc/inetd.conf las siguientes lneas:

238

Captulo 13. Compartir recursos en red: Samba

#Servicios SAMBA NetBIOS (para compartir ficheros e impresoras en PC) netbios-ssn stream tcp nowait root /usr/sbin/smbd smbd netbios-ns dgram udp wait root /usr/sbin/nmbd nmbd y despues reiniciar el servidor inetd de la siguente manera: [root@marmol /root]# /etc/rc.d/init.d/inet restart Stopping INET services: Starting INET services: [root@marmol /root]#

[ OK ] [ OK ]

Configuracin de Samba
La configuracin del servidor Samba se define en un solo fichero, /etc/smb.conf. Aqu podemos determinar qu recursos del sistema se comparten con las otras mquinas de la red y las limitaciones y control de acceso que pondremos a estos recursos. El fichero contiene una serie de secciones, con su nombre entre corchetes, como puede ser [global]. Dentro de cada seccin los parmetros se asignan en modo nombre = valor, como, por ejemplo workgroup = ESWARE. Si una lnea comienza por un punto y coma (;), indica que es un comentario y no se tendr en cuenta su contenido, al igual que el carcter #, que realiza la misma funcin. Se usa el primer carcter para pasar por alto opciones y el segundo para comentarios reales. Antes de empezar a modificar el fichero de configuracin /etc/smb.conf, es buena idea hacer una copia de seguridad del que trae por defecto, ya que viene con una serie de definiciones bsicas que pueden servir claramente de referencia. Tambien deber comprobar que el usuario que va a usar en las pruebas entre el cliente y el servidor, existe en Linux. Aada un usuario si es necesario con el comando adduser y asignele una contrasea con passwd. La ltima comprobacin es ver que la red sobre la que trabaja, est disponible para los equipos. Haga ping entre los ordenadores implicados en las pruebas, no sea que un fallo de configuracin de red le vuelva loco configurando Samba. Secciones de smb.conf La seccin [global] Esta seccin define parmetros de todo el servidor Samba. Se usarn para definir el comportamiento de todos los recursos. Adems proporciona valores predeterminados para las otras secciones:

ESware Linux

239

[global] # workgroup = Nombre del dominio NT o Grupo de Trabajo workgroup = ESWARE workgroup = Especifica el grupo de trabajo. Recomendable el uso de maysculas, sin utilizar espacios y no sobrepasar ocho caracteres. # server string es la descripcin del Grupo de Trabajo server string = Servidor Samba server string = Una descripcin para identificar al servidor desde el programa cliente # Optcin importante para la seguridad. Permite rescringir las # conexiones a mquinas de la red local. # En el ejemplo se limita el acceso a dos redes locales de clase C # y al dispositivo loopback. hosts allow = 192.168.1. 192.168.2. 127. hosts allow = Determina el origen de las redes desde donde se aceptarn conexiones. # Para cargar automticamente las impresoras declaradas en # /etc/printcap printcap name = /etc/printcap load printers = yes Estas lneas habilitan la impresin automticamente, siempre que la impresora est configurada en el sistema. # Nmero de caracteres de coincidencia entre mayusculas y minusculas ; password level = 8 ; username level = 8 Si tiene problemas con las conexiones a clientes Windows, establezca el valor de password level = al mayor tamao de contrasea de su sistema y username level = al nombre ms largo de usuario y quite las marcas de comentario. # Para usar contraseas encriptadas ; encrypt passwords = yes ; smb passwd file = /etc/smbpasswd

240

Captulo 13. Compartir recursos en red: Samba

Encontrar contraseas encriptadas para clientes Windows que utilicen la versin 95 OSR2 o posteriores, las versiones anteriores empleaban texto plano en las contraseas. Si este es su caso, retire las lneas de comentarios y aada al servidor las contraseas de los usuarios ejecutando el comando smbpasswd, con la opcin -a, de la siguiente manera: smbpasswd -a marmol Esto aadir el usuario marmol, que ya existia en Linux, al archivo de contraseas encriptadas de Samba. # Si necesita que Samba trabaje como servidor de # dominio (logon server) para estaciones de trabajo Windows95 ; domain logons = yes # Si activ lo anterior puede ejecutar un script especifico # para cada estacin de trabajo ; logon script = %m.bat # O un un script especifico para cada usuario ; logon script = %U.bat Estas lneas procesan un script individual para cada mquina o usuario que realizen una conexin y convierte a Samba en un servidor de dominio. La seccin [homes] La seccin [homes] permite a los usuarios remotos acceder a sus respectivos directorios personales en la mquina Linux. Esto es, si un usuario se conecta al servidor Samba desde su mquina Windows, lo har en su directorio personal. Recuerde que para hacer esto, tiene que ser usuario de la mquina Linux. La seccin [homes] es una facilidad para que cada usuario tenga acceso a sus ficheros, sin tener que aadir una seccin explicita en el fichero smb.conf. Samba comparte dinamicamente el directorio del usuario localizandolo en el fichero de contraseas del sistema. [homes] comment = Directorios Personales browseable = no writable = yes ; preserve case = no

ESware Linux

241

; short preserve case = no # El tipo case por defecto es normalmente upper para archivos DOS ; default case = lower # Atencin a case sensitivity (distincin entre mayusculas y # minusculas. Puede hacer que algo no funcione. ; case sensitive = no create mode = 0750 Aclaremos algunas entradas: comment = Identificacin para los usuarios browseable = Indica si el recurso se ver en un navegador tipo Explorador de Windows o Entorno de Red writable = Modo en que se comparte el recurso, en este ejemplo, se permite escritura preserve case = ; default case = ; case sensitive = Instrucciones sobre respetar o no la distincin entre mayusculas y minusculas en los archivos nuevos creados en el servidor. Preste atencin a esto porque Linux es case-sensitive, y Windows no. create mode = Establece los permisos que tendrn los archivos nuevos creados en el servidor

Compartir una unidad Linux con mquinas Windows


Como se muestra en el fichero smb.conf anterior, compartir una unidad Linux con usuarios Windows es fcil. De todas maneras, como todo lo dems con Samba, puedes tener las cosas MUY controladas. Aqu tiene unos pocos ejemplos: Para compartir un directorio con todo el mundo, crea una copia de la seccin [tmp] aadiendo algo como esto al smb.conf: [public] comment = Cosas publicas path = /home/public

242

Captulo 13. Compartir recursos en red: Samba

public = yes writable = yes printable = yes Para que este directorio lo pueda leer todo el mundo, pero que slo lo puedan cambiar gente del grupo laborales, modifica la entrada de esta manera: [public] comment = Cosas publicas path = /home/public public = yes writable = yes printable = no write list = @laborales

Compartiendo una unidad Windows con mquinas Linux


Se incluye un programa cliente de SMB para mquinas UNIX con la distribucin de Samba. Provee un interfaz estilo ftp para la lnea de comandos. Puedes usar esta utilidad para transferir ficheros entre un servidor Windows y un cliente unix. Para ver qu recursos estn disponibles en un host dado, ejecuta: /usr/sbin/smbclient -L host donde host es el nombre de la mquina que quieres ver. Esto devolver un lista de nombres de servicios esto es, nombres de unidades o impresoras que puede compartir contigo. A menos que el servidor SMB no tenga la seguridad configurada, te preguntar por una clave. Dale la clave de la cuenta de invitados o de tu cuenta personal en esa mquina. Por ejemplo: smbclient -L Noe La salida de este comando debera ser algo parecido a esto: Server time is Sat Aug 10 15:58:27 1996 Timezone is UTC+10.0 Password: Domain=[WORKGROUP] OS=[Windows NT 4.0] Server=[NT LAN Manager 4.0] Server=[Noe] User=[] Workgroup=[WORKGROUP] Domain=[]

ESware Linux

243

Sharename ADMIN$ publico C$ IPC$ Laser print$ This machine has a browse list: Server Noe Ruth TOLE GILLES

Type Disk Disk Disk IPC Printer Disk

Comment Remote Admin Publico Default share Remote IPC Impresora Printer Drivers

Comment Samba 2.0.6p8 Samba 2.0.6p8 Samba 2.0.6p8 Samba 2.0.6p8

La lista muestra otros servidores SMB con recursos para compartir con la red. Para usar el cliente, ejecuta: smbclient servicio -U <usuario> donde servicio es una mquina y un recurso compartido. Por ejemplo, si ests intentando entrar en un directorio que ha sido compartido como public en una mquina llamada Noe, el servicio debera llamarse /Noe/public La orden, para esta mquina y este recurso, entonces ser: smbclient /Noe/public -U Mimi De todas maneras, si se desea emplear la formula de Microsoft de llamar a mquinas remotas, es decir usar la barra invertida ( \ ), debido a restricciones del shell, necesitar poner las barras invertidas con secuencias de escape, por lo que al final saldr algo parecido a esto: smbclient \\\\Noe\\public -U Mimi donde Mimi es el nombre del usuario. Entonces aparecer el prompt de smbclient, despues de pedir la contrasea: Server time is Sat Aug 10 15:58:44 1996 Timezone is UTC+10.0

244

Captulo 13. Compartir recursos en red: Samba

Domain=[WORKGROUP] OS=[Windows NT 4.0] Server=[NT LAN Manager 4.0] smb: \> El comando de smbclient ,h, muestra lista de los comandos disponibles del cliente: smb: \> h ls get more md translate cancel newe setmode smb: \>

dir mget mask rmdir lowercase stat archive help

lcd put del rd print quit tar ?

cd mput rm prompt printmode q blocksize !

pwd rename mkdir recurse queue exit tarmode

Si sabe usar el ftp, no existe mucha diferencia con smbclient.

Compartiendo una impresora Linux con mquinas Windows


Para compartir una impresora Linux con mquinas Windows, necesita asegurarse de que la impresora est preparada para trabajar bajo Linux. Si puede imprimir desde Linux, preparar una comparticin SMB de la impresora es automtico. Puede aadir la configuracin de la impresora a smb.conf: [global] printing = bsd printcap name = /etc/printcap load printers = yes log file = /var/log/samba-log.%m lock directory = /var/lock/samba [printers] comment = Todas las impresoras security = server path = /var/spool/lpd/lp browseable = no printable = yes public = yes writable = no create mode = 0700

ESware Linux

245

[laser] security = server path = /var/spool/lpd/lp printer name = lp writable = yes public = yes printable = yes print command = lpr -r -h -P %p %s Asegrese de que el path de la impresora (en este caso bajo [laser]) se corresponde al directorio de spool en /etc/printcap!

Compartiendo una impresora Windows con mquinas Linux


Para compartir una impresora en una mquina Windows, debe hacer lo siguiente: a) Debe tener las entradas adecuadas en /etc/printcap y deben corresponderse a la estructura de directorios local (el directorio de spool, etc) b) Debes tener el script /usr/bin/smbprint. Viene con las fuentes de Samba, pero no con la distribucin de ejecutables del Samba. La forma ms facil y comoda es utilizar la herramienta printtool para aadir una impresora, especificando el tipo smb

Figura 13-1. Seleccin de una impresora usando smb

246

Captulo 13. Compartir recursos en red: Samba

A continuacin debe completar los campos indicando los parmetros necesarios para que samba sea capaz de encontrar la impresora.

Figura 13-2. Parmetros de configuracin

ESware Linux

247

Configurar Samba con Swat


Existe una herramienta de configuracin para el servidor samba, que puede ser de gran auyda por dos motivos principalmente: primero, se trabaja en entorno grafico y usted eso lo agradece y segundo trabaja via http, lo que nos permite administrar nuestro servidor con absoluta comodidad remotamente. La herramienta se llama Swat y la ejecucin requiere de un navegador como, por ejemplo Netscape: Para invocar a Swat debe poner lo siguiente en la lnea de URL: http://localhost:901/ y a continuacin se le pedir identificarse con un nombre de usuario y una contrasea vlida. Demos un repaso por los mens de swat:

Figura 13-3. Pantalla de entrada de Swat

248

Captulo 13. Compartir recursos en red: Samba

Global Al hacer click sobre el enlace Global accedemos a la parte de configuracin [global] que estudiamos anteriormente:

Figura 13-4. Seccin global

Los apartados deben ser suficientemente familiarres si ley el correspondiente apartado unas pginas atrs.

ESware Linux

249

Shares Con esta pantalla podemos agregar o eliminar recursos compartidos ( y sus correspondientes secciones al fichero /etc/smb.conf).

Figura 13-5. Recursos compartidos

250

Captulo 13. Compartir recursos en red: Samba

Printers Esta seccin presenta la posibilidad de configurar tanto impresoras declaradas en /etc/printcap como secciones especificas de imresora en el fichero /etc/smb.conf Igual que con los direcctorios compartidos, se puede agregar, modificarlos parmetros o eliminar las impresoras deseadas.

Figura 13-6. Impresoras en redes mixtas

ESware Linux

251

Status Este apartado ofrece informacin sobre el estado actual del servidor. Tambien offrece la posibilidad de detener el servicio, lanzarlo de nuevo o la tipica opcin restart. Adems suministra datos como: Conexiones activas, con la direccin IP del cliente, su nmero de proceso y la posibilidad de desconexin. Recursos compartidos activos, con usuario, grupo y el cliente actual. Archivos abiertos, con informacin sobre el modo ( lectura y escritura o solo lectura)

Figura 13-7. Estado actual de Samba

252

Captulo 13. Compartir recursos en red: Samba

Figura 13-8. Conexiones activas con Samba

Esta imagen muestra una conexin activa desde un cliente llamado cincinaty, que tiene un IP 192.168.0.5. Ms abajo se aprecia el nombre de usuario empleado en la conexin (root). Si pulsara sobre el botn marcado con kill, el cliente sera desconectado y recibira un mesaje de error como el siguiente: read_socket_data: recv failure for 4. Error = tuberia rota y se vera obligado a restablecer la conexin.

ESware Linux

253

View La seccin View muestra un resumen del fichero de configuracin /etc/smb.conf. No permite la edicin del fichero desde aqu.

Figura 13-9. Fichero/etc/smb.conf resumido

Tambien ofrece la opcin de mostrar el fichero integro pulsando el botn Full view y volver al modo resumido con Normal view.

254

Captulo 13. Compartir recursos en red: Samba

Password En esta ltima seccin se puede definir usuarios validos para utilizar Samba como clientes y adems usuarios para las tareas de administracin mediante Swat.

Figura 13-10. Modificacin y alta de contraseas para Samba

Las opciones disponibles son: Cambiar contraseas de administracin Aadir nuevos usuarios Desactivar usuarios Activar usuarios Cambiar la contrasea a los usuarios

ESware Linux

255

Captulo 14. Webmin. El configurador web del sistema

1. Instalacin de Webmin. 2. Acceso al administrador. 3. Configuracin general de Webmin. Carpeta Webmin. 3.1. Ayuda de Webmin. 3.2. Configuracin de Webmin. 3.3. Usuarios de Webmin. 4. Configuracin bsica de nuestro sistema Linux. 4.1. Arranque y parada de procesos. 4.2. Configuracin de servicios de arranque. 4.3. Exportacin NFS. 4.4. Logs del sistema. 4.5. Instalacin de software RPM. 4.6. Procesos en curso. 4.7. Pginas de manual. 4.8. Sistemas de archivos de disco y red. 4.9. Programacin de tareas mediante Cron. 4.10. Usuarios y grupos. 5. Configuracin de servidores. 5.1. Sendmail. 5.2. FTP annimo y autentificado. 5.3. Servidor Web Apache. 5.4. Servidor de bases de datos MySQL. 6. Configuracin de hardware. 6.1. Configuracin de impresoras. 6.2. Configuracin del cargador de arranque (LILO). 6.3. Fecha y hora del sistema. 6.4. Particiones de disco locales. 7. Otras utilidades. 7.1. Telnet. 7.2. Administrador de discos.

ESware Linux

257

Instalacin de Webmin
Webmin, como bien explica el ttulo del captulo, es un administrador general del sistema. El decir general no es nada exagerado debido a que con l podremos administrar funciones bsicas del sistema, como usuarios y grupos; hardware (instalacin de impresoras, dispositivos de red); servidores (podremos configurar Apache, Sendmail o DNS). Adems incorpora una serie de utilidades, como un terminal en JAVA, u otras que nos harn muy sencilla la administracin y configuracin de todo un servidor ESware Linux desde el navegador y de forma extremadamente sencilla. ESware Linux instalar Webmin siempre y cuando esta opcin sea seleccionada en el grupo de aplicaciones a instalar. Webmin quedar instalado a falta de algunos parmetros bsicos de configuracin, como, el nombre de la mquina en la que se ejecuta, as como el usuario y contrasea de administracin general. Si no modificamos estos parmetros, quedarn configurados con los valores predefinidos. Dichos valores son: El nombre de usuario y contrasea quedarn fijados a los de root. stos es conveniente cambiarlos para que una violacin de Webmin no suponga tambin una total del sistema. Se asignar a nuestro equipo el nombre de host por defecto. El directorio de configuracin de Webmin queda asignado a /etc/webmin y el de programas a /usr/libexec/webmin. Con estas nociones generales estamos preparados para acceder a l y revisar posteriormente los componentes.

ESware Linux

259

Acceso a Webmin
El acceso a Webmin se hace directamente a travs del navegador. Slo tendremos que indicarle la direccin de la mquina donde se encuentra el servidor Webmin. Por defecto, utiliza el puerto 10000 para realizar las transacciones, por lo que si Webmin se encuentra en la mquina local deberemos especificar http://localhost:10000 en la barra de navegacin. Al introducir la direccin adecuada, Webmin responder con un cuadro de usuario y contrasea (vase la Figura 14-1).

Figura 14-1. Acceso a Webmin

Si el servidor estuviese en una ubicacin de red, accederamos a l especificando http://webmin.esware.com:10000 o http://213.207.12.26:10000.

260

Captulo 14. Webmin. El configurador web del sistema

Configuracin general de Webmin. Carpeta Webmin.


La configuracin general de Webmin engloba una bsqueda rpida de temas de ayuda, un configurador de aspectos generales como control de acceso e idioma, creacin de usuarios de Webmin y un ndice de acceso a otros servidores remotos (vase la Figura 14-2).

Figura 14-2. Carpeta Webmin

ESware Linux

261

Ayuda de Webmin Este mdulo permite buscar a travs de las pginas de ayuda de todos los mdulos de Webmin instalados. Slo tiene que introducir la palabra que buscar en el espacio asignado y seleccionar en qu mdulos desea buscar; una vez hecho esto haga clic en el botn Buscar (vase la Figura 14-3).

Figura 14-3. Ayuda de Webmin

262

Captulo 14. Webmin. El configurador web del sistema

Configuracin de Webmin Dentro de esta carpeta se engloban aspectos generales de la configuracin de Webmin. Uno de los ms importantes es el control de acceso. Con ste podemos limitar el acceso a nuestro configurador a ciertas direcciones IP. Puesto que se accede a Webmin mediante web, cualquier equipo situado en la misma red o en internet podra acceder a nuestra configuracin de no ser por este mdulo, que evita el acceso desde determinadas IP y permite el de otras de forma tan sencilla como especificando dichas IP denegadas o aceptadas en una determinada casilla (vase la Figura 14-4). Al mismo tiempo podremos cambiar el puerto en el que Webmin escuchar las peticiones de configuracin; por defecto es el 10000. En esta carpeta encontraremos al mismo tiempo un historial de acceso a Webmin, un configurador de salida por proxy, un rea de cambio de propiedades de la interfaz de usuario, etc. Podremos cambiar el idioma, aadir mdulos que aporten nueva funcionalidad, e incluso, actualizarlo directamente desde Internet.

Figura 14-4. Control de acceso por IP

ESware Linux

263

Cada vez que se aada una nueva funcionalidad a Webmin sta puede ser incorporada a nuestro administrador con slo indicar dnde se encuentra. Esta caracterstica es igualmente til para los programadores, que podrn incorporar sus nuevos mdulos si mucha dificultad (vase la Figura 14-5).

Figura 14-5. Aadiendo nuevos mdulos

264

Captulo 14. Webmin. El configurador web del sistema

Usuarios de Webmin Por defecto, Webmin crea un nico usuario que podr administrar todo el sistema (vase la Figura 14-6). Adems de utilizar esta opcin, podemos agregar usuarios que administren slo ciertas funcionalidades de Webmin, con lo que evitaremos que usuarios no permitidos accedan a partes del sistema de las que no sean administradores.

Figura 14-6. Usuarios de Webmin

ESware Linux

265

Configuracin bsica del sistema LINUX


Esta carpeta nos permitir realizar todas las tareas de administracin del sistema (vase la Figura 14-7).

Figura 14-7. Panel de configuracin del sistema

266

Captulo 14. Webmin. El configurador web del sistema

Arranque y parada de procesos Pulsando este icono acceder al panel de arranque y parada de procesos. Con l podr iniciar o detener cualquier servicio de Linux en todos sus niveles de ejecucin (vase la Figura 14-8).

Figura 14-8. Arranque y parada de servicios

ESware Linux

267

Configurador de servicios en arranque Con l podremos modificar, aadir o borrar los servicios que se arrancan en cada nivel de ejecucin. En realidad no es ms que un configurador del SysV Init (vase la Figura 14-9).

Figura 14-9. Arranque de procesos por nivel de ejecucin

268

Captulo 14. Webmin. El configurador web del sistema

Exportacin NFS Esta herramienta nos va a permitir exportar sistemas de ficheros de red o Network File Systems. Con esta utilidad podremos ver las particiones exportadas desde nuestro servidor en otros PC de la red y utilizar dicha propiedad para aumentar la capacidad de almacenamiento general de la red. Historiales o ficheros de LOG del sistema Cualquiera de los ficheros de log controlados por syslog podr ser visualizado desde esta utilidad. Desde el log de correo o maillog al de SAMBA, pasando por los de seguridad del sistema y servidor web. sta es una utilidad que permite al administrador, de forma fcil y sin tener que acceder por telnet al sistema, localizar posibles errores y accesos no deseados (vase la Figura 14-10).

Figura 14-10. Historiales o ficheros de log del sistema

ESware Linux

269

Instalacin de aplicaciones en formato RPM Podremos ver qu aplicaciones estn instaladas en nuestro equipo, desinstalarlas, actualizarlas e instalarlas. Este mdulo nos muestra las aplicaciones ordenadas por grupos y una descripcin de cada una de ellas (vase la Figura 14-11). Al mismo tiempo podremos identificar a qu paquete pertenece un archivo determinado. Estamos ante una interfaz grfica sencilla de acceso al comando RPM.

Figura 14-11. Instalando nuevas aplicaciones

270

Captulo 14. Webmin. El configurador web del sistema

Procesos en curso Esta utilidad muestra todos los procesos en curso con sus procesos hijo indentados y mostrados bajo su padre (vase la Figura 14-12) . Para cada proceso se muestra el identificador del proceso, propietario y el comando. Haga clic en PID para que se muestre ms informacin acerca del proceso. Un proceso es simplemente un programa que se est ejecutando bajo su sistema. Su navegador, gestor de ventanas, ventana de terminales y servidor X son todos procesos con los que interacta directamente. Muchos otros procesos son ejecutados en segundo plano como servidores web y otras tareas del sistema. Se crea un nuevo proceso cada vez que se teclea un comando como ls o pwd, aunque tpicamente estos comandos son de vida corta. Cada proceso tiene un ID nico, llamado ID del proceso o PID. Al ejecutar cada proceso en un momento dado, se le asigna un ID diferente; con el tiempo, los PID pueden ser utilizados.

Figura 14-12. Gestor de procesos

ESware Linux

271

Excepto el proceso inicial (tpicamente llamado init) cada uno tiene un proceso padre desde el cual ha sido creado. Por ejemplo, si ejecuta vi desde el prompt del shell, el proceso padre de vi ser el shell. Un proceso puede tener cualquier nmero de hijos, pero slo un padre. Cada proceso se ejecuta con los permisos de algn usuario y grupo, los cuales se aplican cada vez que accede a archivos y directorios. Los usuarios pueden matar solamente los procesos que les pertenecen con la excepcin de root, que puede matar cualquiera. Pginas del manual Desde este mdulo podremos consultar cualquier pgina de manual existente en nuestro sistema. Tiene una zona de bsqueda con la que podremos localizar la pgina sin necesidad de conocer su nombre exacto. Al mismo tiempo, podemos seleccionar la seccin del manual que queremos consultar(vase la Figura 14-13).

Figura 14-13. Acceso a pginas de manual

272

Captulo 14. Webmin. El configurador web del sistema

Sistemas de archivos de disco y red Desde este mdulo visualizamos los sistemas de archivos presentes en nuestro equipo, ya estn en uso o no. Adems, tambin aparecen sistemas especiales como los de memoria virtual, el proc o los pts. Tambin se pueden montar nuevos sistemas de archivos ya existentes utilizando los tipos ms conocidos (vase la Figura 14-14).

Figura 14-14. Sistemas de archivos

ESware Linux

273

Programacin de tareas mediante Cron Cron nos permite ejecutar tareas programadas en nuestro sistema con un usuario determinado (vase la Figura 14-15). En el modo editar tarea (vase la Figura 14-16) podremos controlar todos los aspectos fundamentales de cron: asignar el usuario propietario de la tarea, el comando a ejecutar, y la hora, minutos, das del mes, meses y das de la semana en los que se ejecutar. El men principal de tareas nos mostrar cualquier tarea aadida y su propietario.

Figura 14-15. Tareas de Cron existentes

274

Captulo 14. Webmin. El configurador web del sistema

Figura 14-16. Pantalla de edicin de tareas

ESware Linux

275

Usuarios y grupos Introduccin a los usuarios Un usuario Unix es tpicamente alguien que puede hacer login en el sistema, ya sea remotamente va telnet o desde la consola. Cada archivo pertenece a algn usuario y cada proceso se ejecuta con los derechos de algn usuario. El acceso a los archivos y procesos es determinado por el usuario con el que realiza el login. Hay realmente tres tipos de usuario en un sistema Unix tpico: Usuarios administrativos. Cuentas como bin, lp y uccp son propietarias de archivos como los comandos estndar de /bin, archivos de spool de impresora y datos UUCP. Hacer login con una de estas cuentas no est normalmente permitido; slo son utilizadas por varios procesos del sistema. Estos usuarios sern creados cuando el sistema operativo se instale por primera vez. Usuarios del sistema. stas son cuentas propiedad de usuarios reales, creados por el administrador del sistema. Puede hacer que estos usuarios hagan login remoto o quiz slo dejarles enviar y recibir correo va SMTP y POP3. El Usuario root. El usuario root tiene la potestad de leer y escribir en cualquier archivo o directorio y de controlar cualquier proceso. Esta cuenta es tpicamente utilizada con propsitos de administracin del sistema y es la cuenta bajo la que se ejecuta Webmin. En la parte superior de la pgina principal de este mdulo hay una tabla de usuarios ya existentes en el sistema. Puede hacer clic en uno de ellos para editarlo o hacer clic en el enlace bajo la tabla para crear un nuevo usuario. Introduccin a los Grupos Un grupo es simplemente una lista de usuarios de Unix. Cada usuario pertenece por lo menos a un grupo (su grupo primario) y opcionalmente a varios otros. Todos los archivos son propiedad de algn grupo y cada proceso se ejecuta con los permisos de un grupo. Bajo la lista de usuarios hay una tabla de grupos que ya existen (Vase la Figura 14-17). Puede hacer clic en un nombre de grupo para editarlo o hacer clic en el enlace bajo la tabla para crear un nuevo grupo.

276

Captulo 14. Webmin. El configurador web del sistema

Figura 14-17. Listado de usuarios y grupos

Logins registrados Cada vez que un usuario hace login, ya sea por medio de telnet, FTP o desde la consola, el sistema registra ese login y la consecuente salida del mismo. En la parte inferior de la pgina principal hay un pequeo formulario que le permite visualizar los logins de cada uno o de un usuario concreto. Respecto al mdulo Es uno de los mdulos ms interesantes de la zona de configuracin bsica. Desde l vamos a poder realizar casi cualquier tarea relacionada con usuarios y grupos de nuestro sistema (vase la Figura 14-18). Podemos crear usuarios asignndoles su directorio home, su nombre, una descripcin y su contrasea. Al mismo tiempo podremos configurar las propiedades de grupo para el usuario, as como crear grupos desde la misma pantalla.

ESware Linux

277

Figura 14-18. Formulario de edicin de usuarios

278

Captulo 14. Webmin. El configurador web del sistema

Configuracin de Servidores
Esta tercera carpeta del men principal de Webmin engloba todos los mdulos relacionados con la administracin de servidores para Linux (vase la Figura 14-19).

Figura 14-19. Men principal de servidores

ESware Linux

279

Samba El servidor SAMBA permite compartir impresoras y archivos entre una red Microsoft y una Linux. Podremos as compartir directorios de nuestro servidor Linux para acceso desde clientes Windows, imprimir desde Windows en impresoras situadas en clientes Linux y compartir impresoras situadas en la red Windows con clientes Linux. La pantalla principal de configuracin da acceso a todas estas opciones, al igual que al arranque y parada del servidor SAMBA. Se puede al mismo tiempo acceder desde esta ventana al configurador SWAT que aade funcionalidad al uso de Webmin.

Figura 14-20. Configurador de SAMBA

280

Captulo 14. Webmin. El configurador web del sistema

Sendmail

Figura 14-21. Panel principal de la configuracin del servidor de correo

Introduccin a Sendmail Sendmail es el programa estndar de Unix para transportar y entregar correo (vase la Figura 14-21). Cuando un usuario bajo su sistema desea enviar correo a alguien de otra mquina, sendmail es el programa que en realidad lleva a cabo el proceso de entregar el correo. De forma similar, cuando alguien de otro sistema enva correo a uno de sus usuarios, sendmail recibir el correo y lo almacenar en el archivo de correo del usuario. Sendmail es solamente un MTA (agente de transporte de correo mail), queriendo esto decir que no presenta ninguna interfaz de usuario a la gente que desee enviar correo. Programas como Eudora, elm o /bin/mail con los que los usuarios interactan son llamados MUA (agentes de correo del usuario). Un MUA no entrega correo por s mismo; en su lugar slo pasa el correo a sendmail para que ste lo haga.

ESware Linux

281

Los MUA de usuario pueden ser ejecutados directamente en su sistema (MUA como pine, elm o /bin/mail) o en una mquina aparte que puede ser un PC monousuario (para MUA como Eudora, Exchange y Communicator de Netscape). En el primer caso, el correo es enviado directamente invocando sendmail y pasndole el mensaje, y recibido mediante la lectura del archivo de spool de correo del usuario. Para MUA ejecutados en otra mquina, el correo es enviado conectando al proceso de sendmail de su sistema mediante el protocolo SMTP y recibido conectando a un servidor POP3 aparte. El mdulo Sendmail La pgina principal de este mdulo muestra una tabla de iconos; cada uno se usa para configurar diferentes partes de la funcionalidad de sendmail (vase la Figura 14-22). Sin embargo, las caractersticas que hay tras algunos iconos puede que no estn disponibles si no han sido configuradas en su sendmail. Al instalar sendmail, puede seleccionar qu caractersticas estn disponibles mediante la edicin de un .mc que es convertido mediante m4 en tu sendmail.cf. Muchas caractersticas (como el Mapeo de Direcciones, Enmascaramiento de Dominio y Control de a Rechazar) puede que no estn disponibles a menos que las haya activado en la instalacin.

282

Captulo 14. Webmin. El configurador web del sistema

Figura 14-22. Opciones generales de sendmail

ESware Linux

283

Alias de correo Los alias de correo se utilizan para asignar a los usuarios otro nombre o nombres por los que responder (vase la Figura 14-23) . De esta forma, podemos dar al usuario real del sistema root el alias postmaster, con lo que al escribir a postmaster@maquinalocal el correo ir a parar al buzn de root.

Figura 14-23. Alias de usuarios de correo

284

Captulo 14. Webmin. El configurador web del sistema

Dominios locales Los dominios locales, como su nombre indica, son dominios virtuales en la mquina local (vase la Figura 14-24). Adems de enviar correo en local, sendmail slo aceptar para entrega local correo para dominios y nombres de mquina listados en la caja de texto de la izquierda. Si desea que su servidor de correo manipule dominios de correo mltiples, stos han de estar listados en este formulario. Observe que con slo incluir un dominio en la lista no es suficiente. Adems tiene que asegurarse de que existe un registro DNS para ese dominio y que apunta a su sistema.

Figura 14-24. Dominios locales del sistema

ESware Linux

285

Enmascaramiento de dominio Si se introduce un dominio en cuadro de edicin, sendmail alterar las direcciones Desde (From) de todos los mensajes salientes para que parezcan venir desde ese dominio (vase la Figura 14-25). Adems, cualquier mensaje de email que pase a travs de su sistema desde alguna de las mquinas o dominios listados a la izquierda tendr su direccin Desde (From) modificada de igual manera. Tenga en cuenta que cualquier enmascaramiento de dominio definido aqu puede no ser tenido en cuenta para usuarios especficos que utilicen direcciones de salida. Esta caracterstica puede ser til si desea que el correo de su sistema aparente venir desde un nombre de dominio determinado y no desde el nombre de su mquina.

Figura 14-25. Enmascaramiento de dominio

286

Captulo 14. Webmin. El configurador web del sistema

Usuarios fiables Si un usuario local intenta enviar correo, sendmail permitir que suministre una direccin Desde (From) diferente de la suya si el usuario est en la lista de la izquierda (vase la Figura 14-26). Esta restriccin existe para prevenir que los usuarios enven correo con direcciones Desde (From) falsas desde el sistema. Se previene as que los usuarios puedan mandar correo de manera indiscriminada ocultando su direccin real de email.

Figura 14-26. Lista de usuarios de confianza

ESware Linux

287

Mapeo de direcciones Los mapeos de direcciones son similares a los alias, pero son ms adecuados en un sistema que utiliza dominios de correo mltiples. Pueden ser utilizados para redirigir correo de un dominio completo a una sola direccin, manipular usuarios con el mismo nombre en diferentes dominios o mapear todo el correo desde un dominio a otro (vase la Figura 14-27). Tenga en cuenta que tiene que tener una entrada en la tabla de dominios locales para cualquier dominio usado por el mapeo de direcciones y que debe de haber un registro MX de DNS para cada dominio que apunte a su sistema.

Figura 14-27. Mapeo de direcciones

288

Captulo 14. Webmin. El configurador web del sistema

Enrutamiento de dominio El enrutamiento de dominio proporciona un modo de definir un mtodo de transferencia especial de envo de correo a ciertos dominios (vase la Figura 14-28). Esto puede ser til si su sistema es una pasarela para servidores de correo que no pueden ser alcanzados desde fuera de su red, o si quiere forzar que todo el correo para un dominio en particular sea enrutado a travs de algn otro servidor. No debera tener entrada alguna en la lista de dominios locales para cualquier dominio que est enrutado. Sin embargo, debera tener un registro MX de DNS apuntando a su sistema para cualquier dominio que sea una pasarela para l.

Figura 14-28. Enrutamiento de dominios

ESware Linux

289

Control de a Rechazar Con este mdulo se intenta evitar que cualquiera desde Internet pueda enviar correo a travs de nuestro servidor. Cuando esto ocurre, es decir, cuando alguien manda correo mediante nuestro servidor sin ser usuario del sistema o tener permiso para hacerlo, comete una grave infraccin denominada spam. Desde esta ventana de control podemos denegar o permitir el acceso a determinadas direcciones IP, dominios o direcciones de email a travs de nosotros (vase la Figura 14-29).

Figura 14-29. Control anti Spam

290

Captulo 14. Webmin. El configurador web del sistema

Dominios de A travs de ma A menos que est autorizado por las reglas de control de spam, sendmail slo permitir enviar correo a los dominios listados en la caja de texto de la izquierda (vase la Figura 14-30). Los mensajes de correo entrantes que no sean para usuarios locales o para cualquiera de los dominios listados, sern rechazados. Si su sistema sirve de pasarela de varios dominios que no son directamente accesibles desde fuera de su red (usando la caracterstica de enrutamiento de dominio), entonces todos esos dominios deberan estar listados aqu.

Figura 14-30. Dominios de paso

ESware Linux

291

Buzones de usuario El configurador de sendmail aporta adems dos mdulos adicionales como son el listado de cola de correo y el listado de usuarios y tamaos de buzn (vase la Figura 14-31). El primero permite visualizar los email salientes que an esperan para ser recibidos por la mquina remota, ya sea por un tiempo de respuesta excesivo por parte del servidor o por una mala resolucin del nombre de dominio. El segundo nos muestra el tamao ocupado por cada buzn de usuario del sistema.

Figura 14-31. Control de buzones de usuario

292

Captulo 14. Webmin. El configurador web del sistema

FTP annimo y autentificado Este mdulo le permite configurar el servidor FTP de WU-FTPd instalado en el sistema (vase la Figura 14-32). Los usuarios que tengan cuentas en el sistema pueden hacer login al servidor FTP y acceder a sus archivos usando programas cliente como por ejemplo Netscape, ncftp, el visor de archivos de KDE o cualquiera de los muchos clientes de FTP para Windows.

Figura 14-32. Men principal del configurador FTP

Puede configurar tambin un servidor annimo de FTP al que los usuarios puedan tener acceso de slo-lectura o de lectura-escritura a un subconjunto limitado de archivos de su sistema. La pgina principal de este mdulo muestra una tabla de iconos, uno por cada categora de opciones configurables. El servidor WU FTP le permite clasificar a los usuarios en base a la direccin desde donde hacen login y a su tipo de usuario. Los tres tipos de usuario son:

ESware Linux

293

Unix. Los usuarios normales del sistema. Invitado. Los usuarios de Unix que han sido clasificados como invitados. Annimo. Logins mediante el usuario annimo o ftp, si su sistema lo permite. La seccin superior de esta pgina le permite definir nombres de clases partiendo de la base de tipos de usuario y direcciones emisoras (vase la Figura 14-33). Cada login es clasificado dentro de la primera clase coincidente; por ello, las clases deberan estar ordenadas desde la ms especfica hasta la menos. Las direcciones coincidentes para cada clase pueden ser una direccin IP completa o parcial, redes/mscaras de red IP, nombres de mquina, comodines de mquina (como *.foo.com) o las trayectorias absolutas a archivos que contengan direcciones adicionales. Cualquier tipo de direccin puede ir precedido con un carcter ! para negarlo. La seccin central de la pgina le permite controlar qu usuarios Unix han de ser clasificados como invitados. Un usuario invitado tiene derechos similares a un usuario normal de Unix pero est restringido a un cierto directorio mediante chroot. La seccin inferior de la pgina controla a qu usuario Unix e invitado se le denegar el acceso al servidor FTP. Puede especificar usuarios por nombre o por GID (como %3000%3000-3010).

Figura 14-33. Usuarios y clases

294

Captulo 14. Webmin. El configurador web del sistema

Mensajes y titulares La primera tabla de esta pgina le permite configurar los archivos de mensajes que se mostrarn al usuario cada vez que haga login o cuando entre en un cierto directorio (Vase la Figura 14-34). Para cada archivo de mensaje debe especificar un trayecto (absoluto o relativo al directorio), decidir cundo ha de ser mostrado y seleccionar las clases de usuario a las que mostrar este archivo de mensaje (si no se aaden clases, el archivo se mostrar para todos).

Figura 14-34. Mensajes de usuario y titulares

La segunda tabla es para configurar archivos LEEME. El servidor FTP mostrar la hora de la ltima modificacin de cada archivo, ya sea al hacer login o cuando se entre en un cierto directorio. Para cada archivo LEEME debe especificar una trayectoria, escoger cundo ha de ser mostrado y seleccionar las clases de usuario a las que mostrar la hora de la ltima modificacin. En la parte inferior de la pgina hay algunas opciones adicionales que se refieren a los archivos de mensajes (vase la Figura 14-34). La ms til es la opcin Titular en pre-login, que permite escoger un archivo a mostrar antes de que el usuario haga login.

ESware Linux

295

Trabajo en red La primera tabla de esta pgina le permite poner la medida de ventana TCP que utiliza el servidor FTP para las conexiones de clientes (vase la Figura 14-35). La medida de la ventana puede ser establecida para todas las clases o para las clases seleccionadas individualmente. La segunda y tercera tablas son para configurar la direccin IP de destino y el puerto usado para las conexiones PASV desde clientes que coincidan con la direccin IP dada y bits de red.

Figura 14-35. Trabajo en red

296

Captulo 14. Webmin. El configurador web del sistema

Historial Esta pgina permite configurar lo que el servidor FTP guarda como log y dnde lo guarda (vase la Figura 14-36). Las opciones disponibles son: Llevar historial de todos los comandos para. Se llevar un historial de cada comando de aquellos usuarios que pertenezcan a los tipos seleccionados. Llevar historial de transferencias para. Se llevar historial de las transferencias de los directorios seleccionados realizadas por los usuarios de los tipos seleccionados. Llevar historial de transferencias a. Determina si las transferencias son grabadas en syslog o el archivo xferlog de WU-FTPd, normalmente /var/log/xferlog. Llevar historial de violaciones de seguridad para. Usuarios de tipos seleccionados a los que se grabarn las violaciones de seguridad en syslog.

Figura 14-36. Historial

ESware Linux

297

FTP annimo La primera tabla de esta pgina permite especificar el directorio al que el servidor cambiar cuando un usuario annimo haga login (vase la Figura 14-37). Se puede seleccionar un directorio diferente dependiendo de las clases de usuario o se puede utilizar un solo directorio para todas las clases. Si no se especifica ningn directorio, el servidor FTP cambiar al directorio inicial del usuario ftp. Debido a que el servidor llama a programas externos como ls y tar, el directorio annimo raz debe contener un directorio bin con esos programas, un directorio lib que contenga cualquier biblioteca compartida que haga falta y un directorio etc que contenga los archivos passwd y group. Cuando un servidor utiliza chroot para limitar el acceso al directorio annimo raz, no puede acceder a ningn programa fuera de ese directorio.

Figura 14-37. FTP annimo

298

Captulo 14. Webmin. El configurador web del sistema

La segunda tabla controla a qu directorio el servidor har chroot cuando los usuarios sean invitados. Para cada directorio se puede especificar a qu usuarios se aplicar; para ello, slo debe introducir sus nombres, UID (como %3000) o rangos de UID (como %30003006). Si no hay usuarios, el directorio se utiliza para todos los usuarios invitados. La tercera tabla permite controlar como qu grupo de Unix sern tratados los usuarios annimos de FTP, en vez del grupo primario del usuario ftp. Para cada grupo puede seleccionar una o ms clases de usuario; por ejemplo, para garantizar el acceso a ciertos archivos por parte de usuarios annimos de ciertas direcciones IP. Finalmente, la seccin inferior de la pgina contiene entradas para controlar qu claves de acceso son aceptables para los logins annimos de FTP. Tradicionalmente, los usuarios FTP deben enviar una direccin de correo vlida como clave de acceso a login annimo.

ESware Linux

299

Figura w10_18. Permisos

Los controles de la primera tabla de esta pgina pueden usarse para denegar el acceso a ciertos comandos no vitales. Para cada comando puede escoger el permitir o denegar el aceso y seleccionar qu tipos de usuario y clases tendrn y no tendrn acceso. A menos que est denegado, cualquier comando est disponible para cualquier usuario, por defecto. La segunda tabla permite prevenir la carga de archivos que contengan ciertos caracteres o que coincidan con ciertas expresiones regulares. Esto puede ser muy til si el servidor annimo FTP tiene un directorio incoming y quiere prevenir que los usuarios creen directorios ocultos para almacenar basura. El primer campo de la tabla es una expresin como ^[A-z0-9]$ que define los caracteres autorizados, la segunda es una serie de expresiones regulares para nombres de archivo que no estn autorizados, la tercera consiste en los tipos de usuario a los que se aplica esta restriccin y la columna final es la trayectoria completa a un archivo de mensajes de error a ser enviado al cliente FTP si ocurre una carga de archivo ilegal.

300

Captulo 14. Webmin. El configurador web del sistema

Figura w10_19. Otras opciones del FTP

Esta pgina contiene opciones que no se encuadran dentro de cualquier otra categora. La ms til es la tabla de la segunda seccin, la cual permite poner el nivel de nice (prioridad de proceso) de las sesiones FTP por clase. Un nivel de nice negativo le da a la sesin una prioridad de UCP mayor, mientras que un nivel de nice positivo le da una prioridad menor. En la mayora de sistemas operativos, el rango permitido de nivel de nice es -20 a 20. La tabla inferior pone la mscara de permisos de archivo para los nuevos archivos y directorios, por clases. Por ejemplo, una mscara de 0700 dara a los nuevos archivos cargados permisos de 077 (-rw-rw-).

ESware Linux

301

Figura w10_20. Panel principal del configurador de Apache

Servidor Web Apache Desde esta primera pantalla podemos acceder a la configuracin global del servidor web, donde entre otras podremos configurar los mdulos que utilizar Apache, sus lmites de conexin, el puerto de escucha y nombre de mquina, los tipos MIME que reconocer nuestro servidor, las opciones de directorio y los parmetros especiales que se pasarn en el momento del arranque.

302

Captulo 14. Webmin. El configurador web del sistema

Figura w10_21. Control de lmites globales de Apache

En este se controla desde el mximo nmero de peticiones simultneas hasta el mximo nmero de servidores arrancados simultneamente. El siguiente icono nos muestra caractersticas de red globales de nuestro servidor Web. Desde el puerto en el que atender las peticiones hasta una lista de direcciones para los servidores web virtuales.

ESware Linux

303

Figura w10_22. Configuracin de red

El icono de mdulos de Apache muestra una lista de los posibles mdulos a cargar por el servidor web. Dichos mdulos aaden funcionalidades a Apache como la posibilidad de utilizar PHP o SSL.

304

Captulo 14. Webmin. El configurador web del sistema

Figura w10_23. Lista de mdulos

La siguiente opcin importante dentro del mdulo de Apache es la de creacin de servidores web virtuales. Con ella podremos utilizar nuestra mquina como un servidor multidominio que escuchar peticiones web en todos aquellos dominios configurados. A cada dominio virtual puede asignrsele una IP fija o darle la principal de nuestra mquina, si estamos utilizando DNS podremos llamarla con el nombre correspondiente a la IP de nuestra mquina. En el caso de utilizar una IP fija debemos tener en cuenta la creacin de un alias a nuestro dispositivo principal o la inclusin de un segundo adaptador de red si queremos eliminar trfico del adaptador principal.

ESware Linux

305

Figura w10_24. Servidores virtuales

En la casilla direccin aparecer la direccin IP real para ese dominio virtual o el nombre o IP del dispositivo principal. Si suponemos que el nombre del servidor donde estamos creando el dominio virtual es virtuales.dominio.com este debe aparecer en el espacio reservado para direccin. Si por el contrario queremos crearlo asociado a un dispositivo o a un alias del principal debemos escribir en ese mismo espacio la IP. En puerto aparecer el nmero del puerto en el que Apache escuchar las peticiones para ese servidor virtual. En raz de documentos indicaremos la situacin de la pagina de inicio y directorios relacionados. En nombre del servidor escribiremos el nombre de nuestro dominio virtual, como www.esware.com

306

Captulo 14. Webmin. El configurador web del sistema

Una vez creado, en el servidor virtual aparecen las mismas opciones de configuracin que en el servidor principal de nuestro sistema, por lo tanto, podremos especificar directivas especficas, ejecucin de CGI y otras propiedades generales de Apache.

Figura w10_25. Propiedades del servidor virtual

ESware Linux

307

Servidor de bases de datos MySQL MySQL es un servidor de base de datos simple para sistemas Unix. Soporta mltiples bases de datos, potentes controles de acceso, muchos tipos de datos y la mayor parte de la sintaxis SQL estndar. Cada base de datos gestionada por el servidor puede contener mltiples tablas y cada tabla contener mltiples filas de datos.

Figura w10_26. Principal de MySQL

La pgina principal muestra una lista de iconos de base de datos en la parte superior, con un enlace para aadir una nueva base de datos bajo cada uno de ellos. Cada servidor MySQL tendr al menos la base de datos mysql que almacena tablas de configuracin y de control de acceso. Bajo las bases de datos hay iconos para configurar el control de acceso y en la parte inferior hay un botn para parar y arrancar el servidor de base de datos. Desde el mdulo MySQL de Webmin puede accederse a la creacin de una base de datos.

308

Captulo 14. Webmin. El configurador web del sistema

Figura w10_27. Creacin de una base de datos

Este formulario te permite crear una nueva base de datos MySQL con tabla inicial opcional. Debes introducir el nombre de la base de datos y, si ests creando una tabla inicial, un nombre de tabla y los detalles de al menos un campo. Al termina, haz clic en Crear para que la base de datos quede inmediatamente creada. La base de datos puede ser editada una vez creada para aadir y borrar tablas y realizar otros procesos administrativos.

ESware Linux

309

Figura w10_28. Editar base de datos

En la parte superior de esta pgina hay filas de iconos, cada uno representando una tabla dentro de la base de datos. Para editar la estructura de una tabla, slo haz clic en uno de los iconos. Debajo hay botones para crear una nueva tabla dentro de esta base de datos, ejecutando SQL en las tablas de la base de datos, borrando la base de datos y todas las tablas.

310

Captulo 14. Webmin. El configurador web del sistema

Figura w10_29. Editar tabla

La tabla que llena la mayor parte de esta pgina muestra la estructura de la tabla seleccionada de tu base de datos. Cada fila detalla un campo dentro de la tabla, mostrando el nombre, tipo de datos y otras opciones. En la parte inferior izquierda hay un botn para aadir un nuevo campo a la tabla. Antes de hacer clic en l, debes seleccionar el tipo de campo a aadir - mira la documentacin de MySQL para ms informacin sobre los tipos de campo. Tambin en la parte inferior hay botones para ver todos los datos de la tabla y borrar la tabla entera y todos sus datos.

ESware Linux

311

Podemos tambin crear y editar usuarios que tendrn acceso a tus bases de datos MySQL. Para cada usuario, puedes especificar un nombre, clave de acceso, mquinas autorizadas y un conjunto de permisos que determinan lo que el usuario puede hacer. Ya que cualquier usuario de la lista que tenga permisos tendr esos permisos en todas las bases de datos, es normalmente buena idea no conceder a los usuarios de esta pgina permiso alguno. En su lugar, utiliza la pgina de Permisos de Base de Datos para conceder acceso a los usuarios segn la base de datos. Definir qu usuarios de MySQL tendrn acceso a qu base de datos de qu mquinas es tambin muy sencillo. Cada usuario ya debe existir en la tabla de Permisos de Usuario, aunque se les puede conceder permisos adicionales. Los usuarios no pueden hacer login desde ninguna mquina no especificada en Permisos de Usuario. Sin embargo, puedes conceder permisos diferentes para diferentes mquinas mediante la creacin de mltiples filas para el mismo usuario. Para conceder acceso adicional de usuarios a tablas utilizaremos el icono de acceso adicional, adems de lo que est autorizado en Permisos de Usuario o en Permisos de Base de Datos. Los permisos concedidos aqu se aplican slo para acceder a una tabla en una base de datos por un usuario, permitiendo de esta manera un acceso granular. Para aadir permisos a una nueva tabla, debes seleccionar primero la base de datos en que se est usando la tabla mediante el formulario de la parte inferior de la pgina. Luego haz clic en el botn Aadir nuevos permisos, saldr un formulario para seleccionar la tabla y otros detalles. Este campo te permite conceder a usuarios acceso adicional a campos especficos de las tablas. Los permisos concedidos no pueden ser mayores que los especificados en los Permisos de Tabla bajo Permisos de Campo para la tabla donde est el campo. Para aadir nuevos permisos de campo debes seleccionar primero la base de datos y la tabla donde est el campo mediante el formulario del final de la pgina. Luego haz clic en el botn Aadir nuevos permisos aparecer un formulario que permite seleccionar el campo y otros detalles.

312

Captulo 14. Webmin. El configurador web del sistema

Configuracin de hardware
Desde este apartado podremos configurar el hardware principal de nuestro equipo. Impresoras, tarjeta de red, arranque del sistema (lilo), fecha y hora e incluso la configuracin de RAID por software.

Figura w11_1. Configuracin de hardware

ESware Linux

313

Configuracin de impresoras Podemos crear sin mucho esfuerzo impresoras locales, smb o de red. Solo tenemos que acceder al enlace de creacin de nueva impresora y seleccionar el tipo adecuado. En el caso de creacin de una impresora local, necesitaremos conocer el filtro que dicha impresora utilizar para funcionar. Este filtro puede seleccionarse de una lista en la que aparecen los mas habituales. Como puede observarse esta parte de la configuracin no es ms que un acceso grfico y sencillo al fichero de configuracin /etc/printcap

Figura w11_2. Administracin de impresoras

314

Captulo 14. Webmin. El configurador web del sistema

Si la impresora que instalar es de red slo necesitaremos conocer su ubicacin remota y su tipo, es decir, si est en un servidor UNIX remoto o en un servidor Windows remoto. Si estas impresoras remotas estn protegidas, es decir, se accede a ellas con un determinado usuario y contrasea, podemos especificarlo en el espacio reservado.

Figura w11_3. Nueva impresora

ESware Linux

315

Configuracin de red Con ese mdulo accedemos a la configuracin de cuatro apartados bsicos de nuestra red: La configuracin del adaptador La configuracin de rutas y gateways de nuestro sistema La configuracin del cliente de resolucin de nombres La configuracin del fichero de hosts

Figura w11_4. Configuracin de red

316

Captulo 14. Webmin. El configurador web del sistema

La configuracin de adaptadores de red es muy completa y no solo podemos configurar los adaptadores fsicos sino que nos permite crear alias a dispositivos reales.

Figura w11_5. Configuracin de adaptadores de red

Con los alias a dispositivos reales seremos capaces de situar nuestra mquina en redes secundarias distintas a la del adaptador por defecto.

ESware Linux

317

Las rutas a otros hosts y redes tambin pueden ser configuradas desde Webmin logrando as enlazar mquinas y redes distintas a nuestra red principal. Esta configuracin al mismo tiempo determina la pasarela por defecto o gateway de nuestra red.

Figura w11_6. Rutas y gateways

318

Captulo 14. Webmin. El configurador web del sistema

Aqu encontramos una manera agradable de acceder a los ficheros de configuracin /etc/host.conf y /etc/resolv.conf. Aadir pues las caractersticas de bsqueda de hosts , dominios y resolucin de nombres. Nos permitir situar el orden de bsqueda de resoluciones, es decir, donde mirar primero nuestro sistema a la hora de cambiar un nombre por su direccin IP, nuestro nombre de maquina y servidores DNS primario y secundario.

Figura w11_7. Cliente DNS

ESware Linux

319

Por ltimo podemos modificar el contenido del fichero /etc/hosts y aadir entradas para nombres de host conocidos asocindolos a su IP y a un alias.

Figura w11_8. Aadiendo una entrada en /etc/hosts

320

Captulo 14. Webmin. El configurador web del sistema

Configuracin del cargador de arranque (LILO) LILO es el cargador de arranque del sistema y con l podremos iniciar nuestro ordenador desde distintos sistemas operativos situados en particiones primarias diferentes o permitir que nuestro sistema Linux arranque con distintos kernel que incluyan diferentes funcionalidades.

Figura w11_9. Configuracin de LILO

ESware Linux

321

Este mdulo de Webmin nos permite acceder a la configuracin de la primera de las dos, con la que podremos hacer ms configurable nuestro Linux. Como regla general solo tendremos que conocer dos cosas, donde est nuestro kernel y su nombre.

Figura w11_10. Configurar kernel de arranque

322

Captulo 14. Webmin. El configurador web del sistema

Fecha y hora del sistema Herramienta de Configuracin para poner la hora del sistema y la hora hardware que hay en el reloj de tiempo real. Tambin se puede utilizar para sincronizar el reloj del sistema con el del hardware. Tambin nos permite establecer la configuracin de un servidor de hora. Un servidor puede ofrecer el servicio hora del da, el cual devuelve la hora en curso del sistema. Se puede ofrecer este servicio internamente con inetd. Este resultado puede aplicarse a la hora del sistema o a la de hardware.

Figura w11_11. Fecha y hora del sistema

ESware Linux

323

Particiones de disco locales Esta es una herramienta muy til para el administrador ya que no solo permite la visualizacin rpida de tamao de particiones sino que es capaz de modificar valores internos de la configuracin de nuestros discos duros y realizar comprobaciones de velocidad. Ademas puede eliminar y crear particiones lo que la convierte en una herramienta muy potente a la vez que peligrosa para el no experto.

Figura w11_12. Gestin de particiones

324

Captulo 14. Webmin. El configurador web del sistema

Otras utilidades
En este mdulo se intentan agrupar una serie de aplicaciones tiles para el administrador. Entre ellas destaca un telnet en JAVA que permite el acceso en modo terminal a la mquina remota sin necesidad de abrir ninguna consola en el sistema.

Figura w11_13. Otras utilidades

ESware Linux

325

Por otro lado encontramos un fabuloso administrador de discos con el que podremos navegar sin ningn problema por la mquina remota creando directorios y pudiendo as organizar el disco de forma visual sin necesidad de utilizar aplicaciones secundarias.

Figura w11_14. Telnet

326

Captulo 14. Webmin. El configurador web del sistema

Como vemos Webmin es en definitiva un administrador integral del sistema muy til para configurar mquinas remotas ya sean de intranets o Internet. Por su extremada potencia es una herramienta que deber solo ser utilizada por personas con conocimientos de administracin.

Figura w11_15. Administrador de disco

ESware Linux

327

Captulo 15. Introduccin a KDE

Un vistazo a KDE
En este captulo se le va mostrar cmo utilizar el entorno de escritorio KDE que acaba de instalar en su ordenador. KDE incluye muchas ms caractersticas de las que aqu se describen, pero los procedimientos y herramientas que se le van a mostrar a continuacin son ms que suficientes para comenzar a trabajar rpidamente con el entorno. El documento presupone unos mnimos conocimientos de uso de cualquier entorno grfico de usuario, como los disponibles en los sistemas operativos Windows de Microsoft, MacOS de Apple, CDE, etc. As, conceptos como el movimiento del ratn y el concepto de clic no se explicarn aqu. Introduccin Puesto que este captulo pretende que se familiarice con el entorno y comience a usarlo lo ms pronto posible, no vamos a perder el tiempo tratando de explicarle cada uno de los componentes que forman el entorno, o describindole todos los procesos que puede llevar a cabo desde KDE. Lo que haremos es presuponer que el entorno KDE ya se encuentra instalado en su equipo, y le guiaremos a lo largo de una sesin tpica con KDE, detallndole los procesos que deber realizar, y que sern los que tendr que conocer bien para trabajar de manera gil con su entorno. Si usted est leyendo esta gua bsica, posiblemente sea porque no conoce todava el entorno, as que podremos suponer que KDE est disponible en su mquina con las opciones por defecto. Para arrancar el entorno KDE, si durante la instalacin decidi que su equipo arrancase en modo texto, deber ejecutar el comando startx una vez inicie una sesin de usuario en su sistema. Si su equipo arranca directamente en modo grfico slo deber introducir su nombre de usuario y contrasea para entrar en KDE.

ESware Linux

329

Descripcin general del entorno En la Figura 1 se muestra la apariencia tpica de una sesin de KDE, recin comenzada, con las opciones de instalacin por defecto. Se pueden apreciar dos zonas claramente diferenciadas: 1. En la parte inferior de la pantalla se encuentra el Panel, que se usa para lanzar aplicaciones y cambiar entre escritorios (ms tarde explicaremos el concepto de escritorio virtual). Adems, en su extremo izquierdo incluye el icono K, smbolo de KDE, que le da acceso a numerosos mens para realizar tareas como configurar su sistema, lanzar aplicaciones, configurar el acceso a Internet, seleccionar temas de escritorio, etc. 2. El resto del espacio est ocupado por el Escritorio. Es el rea de trabajo donde aparecern las aplicaciones y ventanas que vaya lanzando. Inicialmente contiene un conjunto de iconos asociados a ciertas aplicaciones y procedimientos, que pueden ser invocados con un simple clic de ratn sobre el icono correspondiente.

Figura 1. Escritorio de KDE con la configuracin por defecto

330

Captulo 15. Introduccin a KDE

Figura 2. Posibles acciones sobre el Escritorio cuando pulsamos con el botn derecho sobre l

La manera habitual de moverse e interactuar en el entorno KDE es mediante el uso del ratn, aunque tambin podra hacerse con el teclado en caso de necesidad. Por defecto, cada uno de los botones del ratn tiene asociada una funcin, aunque de momento vamos a olvidarnos del botn central, en el caso de que su modelo de ratn disponga de l. Al pulsar el botn izquierdo del ratn se ejecuta la accin asociada al objeto (aplicacin, men, icono, Escritorio, Panel, etc.) sobre el que se encuentre el puntero. Al pulsar el botn derecho sobre cualquier objeto se mostrar una lista con las propiedades y acciones que se pueden realizar sobre l (por ejemplo, borrar, mover, cambiar propiedades, etc.). Por ejemplo, si hace clic con el botn izquierdo del ratn sobre cualquier parte vaca del Escritorio, no ocurrir nada, puesto que el Escritorio no tiene accin por defecto asociada. Sin embargo, si lo que pulsa es el botn derecho se le mostrar un men como el de la Figura 2, donde podr elegir qu accin realizar sobre el objeto sealado por el puntero (el Escritorio en el ejemplo). Pruebe ahora a hacer lo mismo sobre otros objetos del entorno de KDE (iconos, Panel, el icono K, etc.) y vaya familiarizndose con las acciones asociadas a cada uno de ellos, as como las propiedades accesibles pulsando el botn derecho del ratn.

ESware Linux

331

Otro de los procedimientos que puede utilizar con KDE es el conocido arrastrar y soltar, que permite cambiar ciertos objetos de posicin o ejecutar cierta accin sobre ellos con slo dejarlos caer en el lugar adecuado. Por ejemplo, si arrastra un icono cualquiera a una parte vaca del Escritorio simplemente lo cambiar de posicin, pero si lo deja caer sobre el icono Papelera, lo que har es eliminar el objeto arrastrado (en realidad el objeto no se borra, se queda en la Papelera en espera de que confirme su eliminacin). El mtodo de arrastrar y soltar es una manera cmoda de manejar sus ficheros cuando utilice el gestor de ficheros de KDE, kfm, cuyo uso describiremos en breve. Por ejemplo, tambin puede arrastrar un documento y soltarlo sobre el icono de impresora para imprimir el documento. Si arrastra un objeto imagen y lo deja caer sobre un programa para ver imgenes, el programa mostrar la imagen automticamente.

Comenzando a trabajar
Hasta ahora hemos aprendido cmo movernos por el entorno que ofrece KDE, pero de momento no hemos hecho nada productivo. Por ejemplo, quizs est deseando leer su correo, navegar por Internet, redactar un documento de texto o ver sus ficheros personales, as que vamos a ello. Supongamos que usted desea hacer esto ltimo, ver sus ficheros personales, o cualquier otro fichero de sus unidades de disco y CD-ROM. Para ello vamos a utilizar el gestor de ficheros de KDE, kfm, que proporciona una interface muy sencilla e intuitiva para gestionar sus ficheros. kfm, al igual que el resto de aplicaciones en KDE, puede lanzarse de varias maneras, unas ms rpidas que otras, pero todas ellas dan el mismo resultado. Puesto que posiblemente usar kfm a menudo, la instalacin por defecto de KDE le proporciona en el Panel un icono que le da acceso directo a la aplicacin (vea la Figura 3). Otros iconos que aparecen en el Panel dan acceso a otras aplicaciones de uso frecuente, para que pueda acceder a ellas rpidamente. Con slo hacer clic con el botn izquierdo del ratn sobre el icono mostrado se lanzar kfm (Figura 4).

Figura 3. El icono sealado da acceso al gestor de ficheros de KDE, kfm

332

Captulo 15. Introduccin a KDE

Figura 4. Ventana de kfm mostrando los ficheros en el directorio home del usuario

El nmero y tipo de los iconos que aparecern en la ventana de kfm dependern del nmero y tipo de los ficheros en su directorio de usuario. Los iconos que aparezcan sern lo bastante auto-explicativos en la mayora de los casos, de manera que conocer a primera vista los tipos de ficheros con los que est trabajando. Por ejemplo, los directorios se representan mediante carpetas, y adems el nombre del directorio termina siempre en / para distinguirlo de otros tipos de ficheros. Si desea ver los contenidos de un directorio basta con hacer clic con el botn izquierdo sobre el icono correspondiente. En general, haciendo clic sobre cualquier objeto se desencadena la accin asociada al mismo: para un fichero de texto, ste se abrir en un editor, un archivo MP3 se reproducir, un vdeo se presentar en pantalla y una aplicacin se lanzar. Aunque podemos meternos en directorios cada vez ms profundos, sobre qu icono pulsamos para volver hacia atrs, o para ver el directorio superior? Bajo la barra de mens del kfm ver un conjunto de iconos, entre ellos tres flechas, hacia arriba, hacia la izquierda y hacia la derecha. Si pulsa (es decir, hace clic con el botn izquierdo del ratn) sobre la flecha hacia arriba, se mostrar el contenido del directorio inmediatamente superior.

ESware Linux

333

Si pulsa la flecha hacia la izquierda, ver el directorio en el que se encontraba justo antes de entrar en el actual (vuelve a la vista anterior). Si tras pulsar cualquiera de los anteriores iconos pulsa la flecha hacia la derecha, se mostrarn los contenidos del directorio que estaba viendo antes de pulsar las flechas hacia la izquierda o hacia arriba. Llevamos ya un rato con el gestor de ficheros de KDE, y an no hemos gestionado (movido, copiado, borrado, etc.) ningn fichero, simplemente nos hemos estado moviendo por los directorios. Para saber qu podemos hacer con un fichero (o directorio o cualquier otro objeto en KDE) basta con situar el puntero sobre el icono correspondiente y pulsar el botn derecho del ratn. Inmediatamente se le mostrar una lista de acciones que realizar, entre ellas Copiar, Suprimir y Tirar a la Papelera. La opcin Suprimir borra el fichero definitivamente, aunque por seguridad antes de proceder se le pide confirmacin. Tirar a la Papelera elimina el fichero de su localizacin actual, y lo deposita en la Papelera en espera de borrarlo definitivamente o recuperarlo si lo hemos borrado por error. Al seleccionar la opcin Copiar parece que no ocurre nada, ni tan siquiera se le pregunta dnde desea copiar el fichero. Sin embargo, kfm recuerda el fichero que ha seleccionado para copiar. Dirjase al directorio destino del fichero seleccionado, y en una parte vaca de la ventana pulse el botn derecho del ratn. De las opciones mostradas escoja Pegar, y ver aparecer el fichero seleccionado previamente. Una manera alternativa de copiar y mover ficheros es utilizar la funcionalidad de arrastrar y soltar descrita antes. As, bastara arrastrar un fichero y dejarlo caer en un directorio para que se muestren las posibles acciones que llevar a cabo, entre ellas Copiar y Mover. La primera opcin crea una copia del fichero en el directorio y la segunda mueve el fichero al directorio (es como si hicisemos una copia y borrsemos el original). A veces tenemos que copiar o mover gran cantidad de ficheros entre dos puntos, y hacerlo uno por uno puede resultar muy lento. Para agilizar el proceso podemos seleccionar varios objetos al mismo tiempo y realizar la misma accin sobre todos ellos. La forma ms sencilla de seleccionar varios objetos es, manteniendo pulsada la tecla CTRL, haciendo clic sobre ellos con el botn izquierdo del ratn. Cuando acabe de marcar ficheros puede soltar la tecla CTRL, y proceder con el conjunto de objetos como si estuviese actuando sobre slo uno de ellos, como se acaba de describir. Cmo sacar ms provecho a kfm Los procedimientos descritos le permitirn realizar gran nmero de tareas cotidianas, de manera sencilla y rpida, pero kfm es mucho ms de lo que ha visto hasta ahora. Por ejemplo, puede tener abierta ms de una ventana de kfm, cada una mostrndole un directorio distinto, haciendo posible arrastrar y soltar ficheros entre ambas. Para abrir una nueva ventana de kfm pulse CTRL+N o escoja la opcin Nueva Ventana en el men Archivo. Hay veces que tras realizar alguna modificacin sobre un fichero o directorio no parecen apreciarse los resultados del cambio. Tambin es posible que modifique desde otra

334

Captulo 15. Introduccin a KDE

aplicacin el contenido de un directorio y no vea los cambios desde kfm. Para hacer que kfm muestre el contenido actualizado del directorio basta con pulsar sobre el botn de recarga ( ) o seleccionar Actualizar rbol en el men Ver. En algunas circunstancias la manera de mostrar los ficheros y directorios en forma de iconos no es la ms adecuada a las operaciones que vamos a realizar, quizs necesitemos ver ms datos de cada fichero, o ver los ficheros de otra manera distinta. Para seleccionar otras maneras de ver los archivos, acuda al men Ver y escoja cualquiera de las opciones Vista... que se le ofrecen. Pruebe todas ellas para ver qu tipo de vista se adecua mejor a sus necesidades, y no se preocupe, porque los procedimientos descritos siguen siendo vlidos. Qu habis hecho con mi lnea de comandos? No se preocupe, si usted quiere o necesita recurrir a la lnea de comandos para realizar diversas tareas, la tiene a su disposicin con las mismas funcionalidades de las que ya disfrutaba y con mejoras aadidas. KDE dispone del programa konsole, que una vez lanzado le proporciona una sesin de lnea de comandos idntica a las que realiza en modo texto, pero con las ventajas de ejecutarse como una aplicacin ms de KDE.

Figura 5. Consola de texto de KDE, konsole

ESware Linux

335

Para lanzar konsole, basta con pulsar sobre el icono de la concha sobre pantalla que aparece en el Panel, apareciendo a continuacin la ventana que se muestra en la Figura 5. Ya puede comenzar a ejecutar comandos en esta ventana como si estuviera en la propia consola de modo texto de la mquina. Recuerde que la identidad que posee en la sesin recin iniciada es la del usuario con el que haya iniciado su sesin de KDE. Para comprobar quin es en ese momento (y quizs ahorrarse algn susto por estar trabajando como root), ejecute whoami. Una de las mejoras aadidas que mencionbamos antes es la posibilidad de tener tantas sesiones de lnea de comandos como queramos, cada una en su propia ventana, y visibles al mismo tiempo. Tambin es posible modificar el tamao de letra, los colores de fondo y del texto, el ancho en caracteres de la ventana, etc., todo ello a partir del men Opciones. Le dejamos como ejercicio el explorar las opciones disponibles, y escoger las que mejor se adecuen a su gusto.

Escritorios virtuales
En los anteriores prrafos hemos abierto varias aplicaciones y ya tendremos en nuestro escritorio un buen nmero de ventanas. Lo ms habitual es que no necesitemos ver todas ellas al mismo tiempo, y si lo necesitamos, quizs sea necesario redimensionar y recolocar algunas de ellas. Pero an no hemos explicado cmo se hace esto, aunque es algo sencillo a la par que bsico para un gil manejo del entorno KDE. En su configuracin por defecto, KDE muestra todas las ventanas con una decoracin que incluye en la parte superior, en los extremos izquierdo y derecho, unos pequeos iconos con una accin asociada a cada uno de ellos. En la esquina superior derecha hay tres iconos, un punto, un cuadrado y un aspa. Al hacer clic sobre el primero, la ventana se minimiza, desaparece del Escritorio: para recuperar una ventana minimizada pulse el icono junto al icono K y escoja de la lista de ventanas la que desea recuperar. La pulsacin del segundo icono maximiza la ventana (ocupa todo el Escritorio): si una vez maximizada la ventana pulsamos nuevamente el icono, la ventana recupera su tamao original. El tercer icono provoca el cierre de la ventana y el de la aplicacin asociada, sin pedir confirmacin alguna en la mayora de los casos, as que tenga cuidado de no pulsar accidentalmente sobre el icono. En la esquina superior izquierda habr un icono caracterstico de la aplicacin, que al ser pulsado muestra entre otras opciones la de Pegar (las dems opciones se explican por s mismas). La opcin Pegar hace visible la ventana en todos los escritorios virtuales, y equivale a pulsar el icono que se encuentra junto al anterior. Usted se preguntar qu es un escritorio virtual. Ms que darle una definicin ms o menos brillante, lo mejor es que vea qu funcionalidad proporciona y usted mismo deci-

336

Captulo 15. Introduccin a KDE

da sobre lo que es. Si se fija, en el Panel hay cuatro botones alargados (Uno, Dos, Tres y Cuatro), y el etiquetado como Uno se encuentra pulsado. Eso indica que usted est viendo actualmente el escritorio virtual etiquetado como Uno. Pruebe ahora y pulse sobre el botn etiquetado como Dos para situarse en el escritorio virtual asociado a l. Salvo que alguna de las ventanas que antes vea tuviese establecida la propiedad Pegar, ahora no ver ninguna de las ventanas que vea hace un momento, slo ver el Panel y los iconos en el Escritorio. Esto es as porque ahora est en el escritorio virtual Dos, y las ventanas que antes vea estaban en el Uno, de manera que si pulsa nuevamente sobre el botn Uno ver otra vez sus ventanas. Los escritorios virtuales le proporcionan ms espacio para colocar ventanas y aplicaciones, y para agruparlas por temticas (pulse sobre un botn de escritorio virtual cuando ya se encuentre pulsado y podr modificar el nombre del escritorio virtual). Para cambiar de escritorio virtual pulse con el ratn sobre el botn correspondiente o pulse CTRL+F1 a CTRL+F4 para cambiar a uno de los cuatro escritorios virtuales actualmente definidos (puede modificar el nmero de escritorios virtuales disponibles). Dos ltimos consejos. Para mover una ventana tambin puede colocar el puntero sobre la parte superior de la ventana y arrastrar y soltar. Para redimensionarla, site el puntero en cualquiera de los bordes de la ventana (vera que cambia el tipo de puntero) y arrastre y suelte a la dimensin deseada.

Cmo lanzar otras aplicaciones


Hasta ahora slo hemos lanzado algunas aplicaciones que estaban disponibles como iconos en el Panel. Para lanzar otros programas y aplicaciones lo primero que debemos hacer es pulsar sobre el icono K del Panel. Veremos un men con bastantes opciones, entre ellas Aplicaciones, Aplicaciones no-KDE, Utilidades, Juegos, etc. Todas estas opciones del men y algunas otras dan acceso a diversas aplicaciones instaladas en su sistema. Basta con pulsar sobre la opcin del men que muestra la aplicacin deseada para que la aplicacin se ejecute automticamente. Sin embargo, puede que no todas las aplicaciones de su ordenador sean accesibles desde alguno de estos mens. Por ejemplo, la mayora de los comandos del modo texto deber ejecutarlos desde una konsole que previamente haya abierto, para as ver el resultado de su ejecucin. Para aquellos comandos que, bien no interese su salida, bien desplieguen aplicaciones grficas, quizs sea ms cmodo recurrir a la miniventana de ejecucin de comandos. Para ello pulse ALT+F2, y le aparecer una pequea ventana donde deber escribir el nombre del comando o aplicacin que ejecutar. Tan pronto pulse ENTER la ventana desaparecer y no sabr nada ms de la aplicacin salvo que sta despliegue una ventana en su escritorio. Tenga cuidado de no lanzar aplicaciones interactivas de modo texto de esta manera, puesto que aunque el programa se ejecutar, nunca podr

ESware Linux

337

interactuar con l. La miniventana de ejecucin recuerda los ltimos comandos tecleados en ella, de manera que pulsando la tecla de flecha arriba se recuperan para su posible nueva ejecucin.

Configuracin de su escritorio
Mencionamos al principio que el entorno KDE era mucho ms rico en funcionalidad de lo que aqu bamos a explicar. Otra importante caracterstica de KDE es que usted puede configurar a su gusto casi cualquier aspecto del entorno de trabajo, desde el fondo de pantalla hasta la decoracin de las ventanas pasando por los iconos del Escritorio, el nmero y funciones de los botones, etc. Si desea modificar cualquier caracterstica del entorno, acuda al Panel y pulse el icono K. Seleccione la opcin Centro de control KDE y se le mostrar la ventana de la Figura 6, desde donde podr personalizar cualquier detalle de su entorno de trabajo. Si comparte su mquina con otras personas, no se preocupe, los cambios que usted haga slo los ver usted (siempre que cada persona acceda al ordenador con su propia identidad).

Figura 6. Pantalla principal del Centro de control KDE

338

Captulo 15. Introduccin a KDE

Por ejemplo, algo que le puede interesar cambiar es el tipo de focalizacin, es decir, qu debe hacer para que lo tecleado se dirija a la ventana adecuada. Por defecto es necesario hacer clic sobre la ventana antes de que lo tecleado se dirija a ella. Sin embargo en ciertas ocasiones es preferible que sea la posicin del puntero la que determine la ventana activa (el foco sigue al ratn). Por ejemplo, si est traduciendo un documento que lee de la pantalla y escribe el resultado en otra ventana, este tipo de focalizacin le permitir seguir escribiendo el texto traducido sin dejar de leer el original en la pantalla. Para seleccionar este comportamiento seleccione Ventana -> Propiedades y escoja El foco sigue el ratn como tipo de focalizacin. Los cambios sern efectivos una vez pulse OK o Aplicar. Desde este momento para poner una ventana en primer plano deber pulsar sobre la barra de ttulo de la ventana, no sobre cualquier parte de la misma como ocurra antes. Temas de escritorio Un tema de escritorio es un conjunto de parmetros de configuracin, fondos de pantalla, iconos, salva-pantallas, sonidos, etc. que comparten una temtica en comn y que pueden dar a su entorno de trabajo una apariencia completamente distinta a la original. KDE soporta temas de escritorio, y en su instalacin por defecto incluye un buen nmero de ellos listos para utilizar. Para sustituir el tema de escritorio actual seleccione Escritorio > Gestor de Temas. La lista que aparece le muestra los temas actualmente disponibles: seleccione uno por uno para ver su apariencia, y una vez que decida cul desea instalar, pulse el botn Apply. Siempre podr regresar a la configuracin original escogiendo el tema Default y pulsando Apply. Sin embargo, puede que un tema en concreto le guste pero algn aspecto del mismo no le termine de convencer, por ejemplo los fondos de escritorio. No hay problema, seleccione el tema de la lista pero antes de pulsar Apply seleccione la pestaa Contents y borre la casilla Wallpapers. De esta manera puede combinar las caractersticas que ms le gusten de los distintos temas de escritorio disponibles. Para finalizar, si los temas disponibles no le parecen suficientes puede acudir a la direccin http://kde.themes.org/ y ampliar notablemente su biblioteca de temas de escritorio.

Acceso a las unidades de disquete y CD-ROM


Posiblemente haya odo usted hablar de que en Linux, para poder acceder a un disquete o a una unidad de CD-ROM primero necesita montar la unidad. Bien, pues esto es cierto, pero tambin es cierto que desde hace mucho ya no es necesario que usted se preocupe de hacer esto manualmente, pues el sistema montar automticamente los disquetes y/o CDROM que se encuentren en sus respectivas unidades.

ESware Linux

339

Aparte de lo anterior, KDE le ofrece la ventaja aadida de permitirle hacer todas las tareas cotidianas a travs de su cuidada interface grfica, para que no tenga que preocuparse de aprender comandos que quizs no comprenda. Si se fija en su Escritorio ver dos iconos que identifican respectivamente a un CD-ROM y a un disquete: cada vez que desee acceder a los contenidos de un disquete o CD-ROM por primera vez deber pinchar sobre el icono correspondiente, y KDE se encargar de montar el dispositivo de forma automtica, mostrndole al finalizar los contenidos de la unidad accedida. A partir de ese momento podr realizar con los ficheros de dicha unidad las operaciones que desee. Cuando trabaje con dispositivos extraibles como disquetes o CD-ROM debe recordar que antes de sacar el medio de la unidad (sobre todo en el caso de los disquetes) debe desmontar el dispositivo. En determinadas circunstancias Linux almacena las transferencias desde/hacia los dispositivos en memoria intermedia, para efectuarlas en otro momento, de manera que si se extrae fsicamente el disquete de la unidad se pueden perder datos. Para desmontar una unidad, pinche con el botn derecho del ratn sobre el icono correspondiente y elija Desmontar. Una vez el icono cambie a su forma original ya podr extraer fsicamente el dispositivo de su unidad. Para asegurarse de que no extrae un CDROM antes de tiempo, pulse con el botn derecho sobre el icono del CD-ROM y escoja la opcin Eject para expulsar el CD-ROM de la unidad.

Cmo imprimir desde KDE


Si usted dispone de impresora posiblemente sta ya se encuentre configurada desde que realiz la instalacin inicial de Linux y de las aplicaciones asociadas. Es el propio sistema operativo el que se encarga de las tareas de impresin, KDE se encarga de proporcionar un acceso sencillo a la impresora para que usted pueda imprimir sus documentos desde cualquier parte del entorno. De manera que si an no ha configurado su impresora este es el momento de hacerlo: consulte cmo configurar su impresora en la documentacin suministrada y una vez la impresora funcione regrese a esta seccin. En el escritorio de KDE ver un icono de impresora: imprimir un documento es tan sencillo como arrastrar ste y dejarlo caer sobre el icono de la impresora. Pero sea cauto con esta posibilidad: si no ha configurado correctamente un programa de filtros para su impresora no debera intentar imprimir ms que documentos de texto y PostScript, de lo contrario puede que su impresora comience a imprimir decenas de hojas sin sentido. Si esto ocurriese, pinche sobre el icono de la impresora para mostrar la cola de impresin, y elimine los trabajos de la cola (pinchando sobre el trabajo que eliminar y luego en el botn Suprimir). Para imprimir documentos desde otras aplicaciones, sin arrastrar y soltar los ficheros sobre el icono de impresora, en el men de impresin de la aplicacin en concreto deber indicar que el comando de impresin es lpr. lpr es el comando de impresin tradicio-

340

Captulo 15. Introduccin a KDE

nal de todos los UNIX: si no se le suministra ninguna opcin imprime el documento en la impresora por defecto, que ser lo correcto si no dispone ms que de una impresora.

Adicin de tipos MIME: cmo asociar tipos de fichero a aplicaciones


Posiblemente desconozca lo que es un tipo MIME y por lo tanto no entender porqu le contamos esto cuando hay otras cosas ms importantes que an no hemos explicado (conexin a Internet por ejemplo). La razn es que los tipos MIME son el mecanismo por el cual KDE y los navegadores de Internet en general son capaces de distinguir entre la multitud de tipos de ficheros y contenidos existentes, dndole a cada uno de ellos el tratamiento ms adecuado. Por ejemplo, los documentos .html tienen tipo MIME text/html, las imgenes en formato PNG son de tipo image/png, etc. Tanto KDE como los principales navegadores utilizan esta informacin de tipos para decidir qu hacer con cada tipo de fichero o contenido. Por ejemplo, puede desear que cuando pulse sobre un archivo MP3 de su disco duro automticamente se lance el programa adecuado para escuchar dicho fichero. Para lograr esta asociacin de un tipo de fichero a una aplicacin necesita crear un tipo MIME para dicho tipo de fichero, si es que an no est creado. Vamos a ver cmo se crea un tipo MIME para los ficheros MP3. Abra una ventana del gestor de ficheros de KDE, kfm, y en el men Editar seleccione la opcin Tipos MIME. Automticamente ser llevado al lugar donde se mantienen los tipos MIME que tiene definido en su entorno. Ver varias carpetas como video y audio, que se usan para organizar los tipos MIME por el tipo de contenido que describen. En el caso que nos ocupa el directorio audio debera ser nuestro destino. Ver que ya est definido un tipo x-mp3, pero tenamos que elegir un tipo de fichero para el ejemplo, y el MP3 es lo bastante conocido como para ponerlo de ejemplo. Una vez en el directorio audio pulse el botn derecho del ratn sobre una parte vaca de la ventana y escoja la opcin Nuevo y a continuacin Tipo MIME. En la ventana que aparece sustituya el texto MimeType por algo identificativo del tipo (por ejemplo, MPEG1Layer3) y pulse OK. En la ventana que aparece puede ir directamente a la pestaa Uniones, puesto que las opciones por defecto de las otras dos pestaas son vlidas en la mayora de los casos. En la entrada Esquema deber poner, separados por punto y coma, las extensiones de los ficheros de tipo audio MPEG-1 Layer 3, en formato *.extensin (en el ejemplo pondramos: *.mp3;*.m3u;*.pls). En el campo Tipo MIME debemos poner el tipo MIME registrado para el tipo de contenido que estamos definiendo (para el ejemplo, audio/mpeg). En Comentario puede poner una breve descripcin del tipo de ficheros (Archivo de sonido MP3, por ejemplo). Finalmente, en Aplicacin por defecto debe elegir la aplicacin asociada a los ficheros MP3: de no encontrar la aplicacin en la lista, de

ESware Linux

341

momento deje esta casilla con el valor <ninguno>. Adems de todo esto, puede seleccionar el icono que representar este tipo de ficheros de la lista que aparece al pinchar sobre el botn con el icono por defecto. Si en la lista anterior no apareca ninguna aplicacin para reproducir MP3, aunque tenga alguna instalada en su sistema, deber crear una nueva aplicacin de KDE, uno de cuyos tipos MIME soportados sea el que desea reproducir (x-mp3 en nuestro ejemplo). Supondremos que se encuentra instalado en su sistema el programa XMMS, un potente reproductor grfico de ficheros MP3. Para crear la nueva aplicacin, lance una ventana de kfm y escoja la opcin Aplicaciones en el men Editar. Se le mostrarn varios iconos representando varias carpetas: vaya a la carpeta de nombre Applications, y en ella pulse el botn derecho del ratn y elija la opcin Nuevo -> Aplicaciones. Se le presentar la misma pantalla que al definir un tipo MIME, as que ahora tambin deber sustituir el nombre a la izquierda del punto por uno identificativo de la aplicacin. Pulse OK y acuda directamente a la pestaa Ejecutar. En el recuadro Ejecutar teclee la ruta completa de la aplicacin (por ejemplo, /usr/bin/xmms), aunque puede usar el botn Examinar... para hacerlo grficamente. Pase entonces a la pestaa Aplicacin y ponga un Comentario descriptivo de la aplicacin y el Nombre que desea asociar a dicha aplicacin (este ser el nombre aparecer en los mens). Finalmente, pero ms importante que todo lo anterior, en la lista desplegable inferior derecha seleccione el tipo MIME correspondiente a los ficheros de audio MP3, x-mp3, y adalo a la lista izquierda pulsando la flecha en dicho sentido. Sobre todo asegrese de elegir el mismo tipo MIME que escogi antes al crear el tipo MIME, o la asociacin entre el tipo de fichero y la aplicacin correspondiente fallar. Desde este momento cada vez que pulse sobre algn archivo con extensin .mp3, .m3u o .pls, XMMS se abrir automticamente para reproducir el fichero.

Configuracin del acceso a Internet mediante mdem


KDE proporciona una herramienta grfica para la configuracin del acceso a Internet mediante mdem llamada kppp. Sin embargo, para poder modificar la configuracin del acceso a Internet es necesario que lo haga como root, as que abra una consola de texto (ejecutando konsole o pinchando el icono correspondiente del Panel) y hgase root con el comando su -. Se le pedir la contrasea del superusuario: teclee la contrasea y si todo fue bien el indicador cambiar de un signo $ a un signo # y ya podr ejecutar comandos como root. Tenga mucho cuidado cuando est trabajando como root, puesto que un pequeo error sobre determinados archivos puede tener graves consecuencias para su sistema. Sin ms dilacin, ejecute el programa kppp desde su sesin de root, y ver aparecer en su Escritorio la ventana mostrada en la Figura 7. Si la lista desplegable Conectar con:

342

Captulo 15. Introduccin a KDE

Figura 7. Ventana inicial de kppp cuando an no hay conexiones a Internet configuradas

aparece vaca, entonces todava no ha configurado su acceso a Internet y deber hacerlo ahora. Para ello pulse el botn Configuracin y en la ventana que aparece pulse el botn Nueva... para crear una nueva conexin. Como nombre de conexin puede poner cualquier cosa que le sirva para distinguir unas conexiones por mdem de otras, si utiliza ms de una conexin a Internet. El nmero de telfono ser el que utiliza para conectarse a su proveedor (9 cifras). La casilla Guardar contrasea la puede dejar marcada si no quiere teclearla cada vez que conecte: la primera vez que conecte se le pedir y una vez validada se guardar para conexiones posteriores. En la lista desplegable Autenticacin deber escoger entre las opciones Mediante PAP y Mediante CHAP. Consulte con su proveedor de acceso a Internet qu mtodo de autenticacin usa en sus conexiones a Internet. El resto de opciones las debera dejar en blanco. Del resto de pestaas puede que slo sea necesario modificar los datos en la titulada Servidor de Nombres, y en algunos casos ni tan siquiera habr que tocar ah, depender de la configuracin de su proveedor. Si su proveedor le informa de las direcciones de los DNS, deber introducir estas direcciones IP en el campo Direcciones IP de los servidores de Nombres:, una por una. Teclee estas direcciones una por una y pulse ENTER, y se irn aadiendo a la lista de direcciones de los servidores de nombres. Cuando pulse OK regresar a la pantalla que le muestra las conexiones disponibles, donde ver que ahora aparece la conexin recin creada. Acuda a la pestaa Dispositivo Serie y modifique el valor de Velocidad de Conexin para que sea igual a 115.200 (lo mejor para modems de 56.000 bps). Ahora ya puede pulsar OK para regresar a la pan-

ESware Linux

343

talla inicial e introducir el nombre de usuario y contrasea de su acceso telefnico. A continuacin pulse Conectar para comprobar el correcto funcionamiento de su conexin telefnica a Internet desde Linux. Cada vez que desee conectar a Internet por mdem deber abrir una consola, identificarse como root y ejecutar el comando kppp como se ha descrito al comienzo de este apartado. Para terminar una conexin en marcha bastar con pulsar CTRL+C sobre la consola desde la que haya lanzado kppp, y dicha conexin se cerrar limpiamente.

Cmo terminar una sesin con KDE


KDE es un entorno de trabajo muy amigable y atractivo, pero llegar un momento en que quizs desee cerrar el sistema para dormir un rato y reponer fuerzas. En cualquier momento puede concluir su sesin con KDE con slo pulsar sobre el pequeo icono en forma de aspa junto al botn que representa el escritorio virtual Uno, o pulsando sobre Terminar en el men que aparece al pulsar sobre el icono K del Panel. Al comenzar el cierre de la sesin las aplicaciones diseadas para KDE guardarn informacin del estado en que se encontraban en ese momento. As, la prxima vez que entre en KDE estas aplicaciones se ejecutarn automticamente y mostrarn el mismo estado que tenan justo antes del cierre de sesin. Por ejemplo, si se encontraba editando un texto con kedit y cierra la sesin, la prxima vez que entre en KDE kedit arrancar de manera automtica, cargar el fichero que estaba editando y se posicionar en el punto concreto del fichero en que se encontraba al cerrar la sesin. Las aplicaciones que no estn diseadas especficamente para KDE no permiten esta funcionalidad, y por ello KDE antes de completar el cierre de sesin le pide su confirmacin para cerrar aquellas aplicaciones que an estn abiertas. As dispone de una ltima oportunidad de guardar su trabajo antes de cerrar la sesin sin perder los cambios que no hayan sido almacenados. Pulse Cancelar para regresar al Escritorio, cierre las aplicaciones que an se encuentren abiertas y vuelva a intentar el cierre de la sesin.

Otros consejos generales de utilizacin de KDE


A continuacin le mostramos un breve nmero de consejos y procedimientos que pueden serle muy tiles en determinadas circunstancias. 1. KDE no responde, se ha quedado colgado. Aunque KDE es un entorno muy robusto y estable, utilizado a diario por miles de personas en todo el mundo, an cabe la posibilidad de que el entorno quede inutilizable debido a algn problema

344

Captulo 15. Introduccin a KDE

que se le escap a los programadores. Primero, intente guardar los documentos que haya modificado, pero si no es posible, quizs pierda las ltimas modificaciones que no haya guardado en disco. En cualquier caso, aunque KDE no responda el sistema operativo sigue funcionando, as que pulse CTRL+ALT+BS (BS es la tecla encima del ENTER) y volver a su indicador de sistema en el modo de texto. Si su mquina arranca directamente en modo grfico, se le mostrar de nuevo la pantalla de login donde se le pide su nombre de usuario y contrasea. 2. Uno de mis programas no responde, qu hago? Un sntoma inequvoco de que un programa no va bien es que la ventana donde se ejecuta aparezca en blanco, sin redibujar, sin verse sus contenidos. En ese caso lo mejor es cerrar el programa: para ello intente en primer lugar pinchar sobre la esquina superior derecha de la ventana en el icono del aspa. En la mayora de los casos esta accin bastar para cerrar la aplicacin. Si el problema persiste, pruebe lo siguiente desde una consola de texto: ps ax | grep nombreProgramaColgado 3. Se le mostrarn tantas lneas como ocurrencias del programa cuyo nombre sea nombreProgramaColgado. El primer nmero de cada lnea es el identificador de proceso o PID del programa: identifique cul de ellos corresponde al programa problemtico y ejecute desde una consola de texto: kill -9 PIDprogramaColgado 2. Sin embargo, si usted no sabe muy bien de qu le estamos hablando deber tener cuidado de no matar un programa distinto al que est dando problemas. Para evitar problemas quizs sea mejor cerrar limpiamente las aplicaciones que funcionan bien y terminar la sesin, para reiniciarla a continuacin. 3. Ya lo hemos mencionado, pero lo repetimos porque pensamos que es muy importante. No entre en su sistema como superusuario (root) a menos que sea imprescindible: las tareas cotidianas y el uso habitual de su PC deber hacerlas como un usuario cualquiera de su mquina, nunca como root. 2. Cualquier fallo de seguridad, error en una aplicacin o comando errneo ejecutado como root pueden llevar su sistema al desastre. Cuando necesite realizar tareas administrativas, lance un konsole y hgase root mediante el comando su -. Realice las tareas de administracin y al terminar cierre la sesin mediante el comando exit o pulsando la combinacin de teclas CTRL+D.

ESware Linux

345

You might also like