Información adicional
Transcripción
Información adicional
SUSE Linux Referencia www.novell.com 10.0 09/13/2005 Referencia Autores: Jörg Arndt, Stefan Behlert, Frank Bodammer, James Branam, Volker Buzek, Klara Cihlarova, Stefan Dirsch, Olaf Donjak, Roman Drahtmüller, Thorsten Dubiel, Torsten Duwe, Thomas Fehr, Stefan Fent, Werner Fink, Kurt Garloff, Joachim Gleißner, Carsten Groß, Andreas Grünbacher, Berthold Gunreben, Franz Hassels, Andreas Jaeger, Jana Jaeger, Klaus Kämpf, Andi Kleen, Hubert Mantel, Lars Marowsky-Bree, Chris Mason, Johannes Meixner, Lars Müller, Matthias Nagorni, Anas Nashif, Siegfried Olschner, Edith Parzefall, Peter Pöml, Thomas Renninger, Hannes Reinecke, Thomas Rölz, Heiko Rommel, Marcus Schäfer, Thomas Schraitle, Klaus Singvogel, Hendrik Vogelsang, Klaus G. Wagner, Rebecca Walter, Christian Zoz Esta publicación es propiedad intelectual de Novell Inc. Su contenido puede duplicarse, ya sea en su totalida o en parte, siempre que haya un símbolo de copyright bien visible en cada copia. Toda la información recogida en esta publicación se ha compilado prestando toda la atención posible al más mínimo detalle. Sin embargo, esto no garantiza una precisión total. Ni SUSE LINUX GmbH, los autores ni los traductores serán responsables de los posibles errores o las consecuencias que de ellos pudieran derivarse. Muchas de las descripciones de software y hardware que aparecen en esta publicación son marcas comerciales registradas. Todos los nombres comerciales están sujetos a restricciones de copyright y pueden ser marcas comerciales registradas. SUSE LINUX GmbH es fiel a la ortografía del fabricante. Los nombres de productos y marcas comerciales que aparecen en esta publicación (con o sin una notación específica) están asimismo sujetos a leyes de protección comercial y de marcas comerciales y pueden, por tanto, tener restricciones de copyright. Si tiene alguna sugerencia o comentario, diríjalas a [email protected]. Tabla de contenidos Acerca de esta guía xv parte I Escenarios de implantación avanzados 19 1 Instalación remota 21 1.1 1.2 1.3 1.4 1.5 Situaciones de instalación para la instalación remota . . . . . . . Configuración del servidor que almacena las fuentes de la instalación Preparación del arranque del sistema de destino . . . . . . . . . Arranque del sistema de destino para la instalación . . . . . . . Monitorización del proceso de instalación . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Configuración avanzada de disco 2.1 2.2 2.3 21 31 41 51 56 61 Nombres de dispositivos permanentes para dispositivos SCSI . . . . . . Configuración de LVM . . . . . . . . . . . . . . . . . . . . . . . Configuración de RAID de software . . . . . . . . . . . . . . . . . 61 62 69 parte II Internet 75 3 Navegador Web Konqueror 77 3.1 3.2 3.3 3.4 3.5 3.6 Navegación mediante pestañas . . . . Guardado de gráficos y de páginas Web Palabras clave de Internet . . . . . . Favoritos . . . . . . . . . . . . . Java y JavaScript . . . . . . . . . . Información adicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 79 79 80 81 82 4 Firefox 4.1 4.2 4.3 4.4 4.5 4.6 4.7 Navegación por sitios Web . Búsqueda de información . Gestión de marcadores . . Uso del gestor de descargas Personalización de Firefox . Impresión desde Firefox . . Información adicional . . . 83 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Linphone: VoIP para escritorios Linux 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 93 Configuración de Linphone . . . . . . . . . . . . . . . . . . . . . Comprobación de Linphone . . . . . . . . . . . . . . . . . . . . Realización de una llamada . . . . . . . . . . . . . . . . . . . . Respuesta a una llamada . . . . . . . . . . . . . . . . . . . . . Utilización de la libreta de direcciones . . . . . . . . . . . . . . . Resolución de problemas . . . . . . . . . . . . . . . . . . . . . Glosario . . . . . . . . . . . . . . . . . . . . . . . . . . . . Información adicional . . . . . . . . . . . . . . . . . . . . . . 6 Cifrado con KGpg 6.1 6.2 6.3 6.4 6.5 6.6 Generación de pares de claves nuevos . . . . . Exportación de claves públicas . . . . . . . . . Importación de claves . . . . . . . . . . . . Cuadro de diálogo Key Server (Servidor de claves) Cifrado de textos y archivos . . . . . . . . . . Información adicional . . . . . . . . . . . . 93 99 100 101 102 102 104 105 107 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 109 110 111 114 116 parte III Multimedia 117 7 Sonido en Linux 119 7.1 7.2 7.3 7.4 7.5 Mezcladores . . . . . . . . . . . . . . . . . Reproductores multimedia . . . . . . . . . . . CDs: reproducción y extracción de contenido . . . Grabación en disco duro con Audacity . . . . . . Grabación y reproducción directas de archivos WAV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Televisión, vídeo, radio y cámara web 8.1 8.2 8.3 iv 83 85 85 88 88 91 92 Uso de motv para ver la televisión . . . . . . . . . . . . . . . . . Compatibilidad con el teletexto . . . . . . . . . . . . . . . . . . Cámaras web y motv . . . . . . . . . . . . . . . . . . . . . . . 119 125 131 136 140 143 143 146 146 8.4 8.5 La revista de televisión para equipos nxtvepg . . . . . . . . . . . . . Uso de xawtv4 para ver difusiones digitales de vídeo . . . . . . . . . 9 K3b: Grabación de CDs o DVD 9.1 9.2 9.3 9.4 9.5 9.6 Creación de un CD de datos . . . . . Creación de un CD de audio . . . . . Copia de un CD o DVD . . . . . . . Escritura de imágenes ISO . . . . . . Creación de un CD o DVD multisesión Información adicional . . . . . . . 147 149 153 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 156 157 158 159 160 parte IV Oficina 161 1 0 El paquete de ofimática OpenOffice.org 163 10.1 10.2 10.3 10.4 10.5 10.6 Compatibilidad con otras aplicaciones ofimáticas . Procesamiento de textos con Writer . . . . . . Introducción a Calc . . . . . . . . . . . . . Introducción a Impress . . . . . . . . . . . . Introducción a Base . . . . . . . . . . . . . Información adicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 Evolution: un programa de calendario y correo electrónico 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 12.2 12.3 12.4 12.5 12.6 12.7 . . . . . . . . . . . . 164 165 169 169 170 170 173 Importación de mensajes de correo electrónico desde otros programas de correo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Descripción general de Evolution . . . . . . . . . . . . . . . . . . 174 Correo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 Contactos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 Calendarios . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 Sincronización de datos con un dispositivo portátil . . . . . . . . . . 184 Evolution para usuarios de GroupWise . . . . . . . . . . . . . . . 184 Información adicional . . . . . . . . . . . . . . . . . . . . . . 185 1 2 Kontact: un programa de calendario y correo electrónico 12.1 . . . . . . 187 Importación de mensajes de correo electrónico desde otros programas de correo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Descripción general de Kontact . . . . . . . . . . . . . . . . . . 188 Correo electrónico . . . . . . . . . . . . . . . . . . . . . . . . 191 Contactos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 Calendario . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Sincronización de datos con un dispositivo portátil . . . . . . . . . . 201 Kontact para usuarios de GroupWise . . . . . . . . . . . . . . . . 202 v 12.8 Información adicional . . . . . . . . . . . . . . . . . . . . . . 203 1 3 Sincronización de un equipo portátil mediante KPilot 13.1 13.2 13.3 13.4 13.5 Canales utilizados por KPilot . . . . . . . . . Configuración de la conexión portátil . . . . . Configuración del canal KAddressBook . . . . Gestión de tareas pendientes y acontecimientos Funcionamiento de KPilot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 Utilización de Beagle 14.1 14.2 213 Indexación de datos . . . . . . . . . . . . . . . . . . . . . . . Búsqueda de datos . . . . . . . . . . . . . . . . . . . . . . . . 214 216 parte V Gráficos 219 1 5 Cámaras digitales y Linux 221 15.1 15.2 15.3 15.4 15.5 15.6 Conexión con la cámara Acceso a la cámara . . . Uso de Konqueror . . . Uso de Digikam . . . . Uso de f-spot . . . . . Información adicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 6 Kooka: una aplicación de escaneo 16.1 16.2 16.3 16.4 16.5 Vista previa . . Escaneo final . Menús . . . . Galería . . . . Reconocimiento . . . . . . . . . . . . óptico . . . . . . . . . . . . . . . . . . . . . . . . de caracteres 17.1 17.2 17.3 17.4 17.5 17.6 Formatos de gráficos . . Inicio de GIMP . . . . . Primeros pasos con GIMP Guardado de imágenes . Impresión de imágenes . Información adicional . . . . . . . . . . . 221 222 223 223 233 240 241 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 7 Manejo de gráficos con GIMP vi 206 207 208 208 210 242 243 244 245 246 249 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 250 252 254 256 257 parte VI Movilidad 259 1 8 Informática móvil con Linux 261 18.1 18.2 18.3 18.4 Equipos portátiles . . . . . . Hardware móvil . . . . . . . Teléfonos móviles y dispositivos Información adicional . . . . . . . . PDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9 PCMCIA 19.1 19.2 271 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0 Gestión de perfiles de la configuración del sistema 20.1 20.2 20.3 20.4 20.5 20.6 20.7 Terminología . . . . . . . . . . . . . . . . . . Utilización del gestor de perfiles de YaST . . . . . . Configuración de SCPM mediante la línea de comando Uso del applet selector de perfiles . . . . . . . . . Resolución de problemas . . . . . . . . . . . . . Selección de un perfil al arrancar el sistema . . . . . Información adicional . . . . . . . . . . . . . . . . . . . . . Funciones de ahorro de energía . . . APM . . . . . . . . . . . . . . . ACPI . . . . . . . . . . . . . . . Detención del disco duro . . . . . . Paquete powersave . . . . . . . . . Módulo de gestión de energía de YaST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 274 278 282 282 283 284 285 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Comunicación inalámbrica 22.1 22.2 22.3 271 272 273 2 1 Gestión de energía 21.1 21.2 21.3 21.4 21.5 21.6 261 268 269 270 LAN inalámbrica . . . . . . . . . . . . . . . . . . . . . . . . . Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmisión de datos mediante infrarrojos . . . . . . . . . . . . . . 286 287 289 296 298 307 313 313 324 336 parte VII Administración 339 2 3 Seguridad en Linux 341 23.1 Enmascaramiento y cortafuegos . . . . . . . . . . . . . . . . . . 341 vii 23.2 23.3 23.4 SSH: trabajar de forma segura en red . . . . . . . . . . . . . . . . Cifrado de particiones y archivos . . . . . . . . . . . . . . . . . . Seguridad y confidencialidad . . . . . . . . . . . . . . . . . . . 2 4 Listas de control de acceso en Linux 24.1 24.2 24.3 24.4 24.5 Ventajas de las ACL . . . . . . . . . . Definiciones . . . . . . . . . . . . . . Gestión de las ACL . . . . . . . . . . . Compatibilidad de ACL con las aplicaciones Información adicional . . . . . . . . . 377 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5 Utilidades de monitorización del sistema 25.1 25.2 25.3 25.4 25.5 25.6 25.7 25.8 25.9 25.10 25.11 25.12 25.13 25.14 25.15 25.16 25.17 25.18 25.19 25.20 25.21 25.22 353 359 363 Lista de archivos abiertos: lsof . . . . . . . . . . . . . Usuarios que acceden a los archivos: fuser . . . . . . . . Propiedades del archivo: stat . . . . . . . . . . . . . . Dispositivos USB: lsusb . . . . . . . . . . . . . . . . Información acerca de un dispositivo SCSI: scsiinfo . . . Procesos: top . . . . . . . . . . . . . . . . . . . . . Lista de procesos: ps . . . . . . . . . . . . . . . . . . Árbol de procesos: pstree . . . . . . . . . . . . . . . Usuarios y acciones w . . . . . . . . . . . . . . . . . . Utilización de la memoria: free . . . . . . . . . . . . . Buffer de anillo del núcleo: dmesg . . . . . . . . . . . . Sistemas de archivos y su utilización: mount, df y du . . . . Sistema de archivos /proc . . . . . . . . . . . . . . . vmstat, iostat y mpstat . . . . . . . . . . . . . . procinfo . . . . . . . . . . . . . . . . . . . . . . Recursos PCI: lspci . . . . . . . . . . . . . . . . . . Llamadas del sistema para ejecutar un programa: strace . . Llamadas de la biblioteca para ejecutar un programa: ltrace Especificación de la biblioteca necesaria: ldd . . . . . . . Información adicional acerca de los binarios ELF . . . . . . Comunicación entre procesos: ipcs . . . . . . . . . . . Medición del tiempo con time . . . . . . . . . . . . . 377 378 379 388 388 389 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . parte VIII Sistema 390 391 391 392 393 393 394 396 396 397 398 398 399 401 402 403 404 405 405 406 407 407 409 2 6 Aplicaciones de 32 bits y de 64 bits en un entorno de sistema de 64 bits 411 26.1 26.2 viii Asistencia sobre tiempo de ejecución . . . . . . . . . . . . . . . . Desarrollo de software . . . . . . . . . . . . . . . . . . . . . . 411 412 26.3 26.4 Compilación de software en plataformas de doble arquitectura . . . . . Especificaciones de núcleo . . . . . . . . . . . . . . . . . . . . 2 7 Cómo trabajar con la shell 27.1 27.2 27.3 27.4 Uso de la shell Bash en la línea de comando Usuarios y permisos de acceso . . . . . . Comandos importantes de Linux . . . . . El editor vi . . . . . . . . . . . . . . 415 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 8 Arranque y configuración de un sistema Linux 28.1 28.2 28.3 Proceso de arranque de Linux . . . . . . . . . . . . . . . . . . . Proceso init . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuración del sistema mediante /etc/sysconfig . . . . . . . . . . Gestión de arranque . . . . . . . . . . . . . Selección de un cargador de arranque . . . . . Arranque con GRUB . . . . . . . . . . . . . Configuración del Cargador de arranque con YaST Desinstalación del cargador de arranque de Linux . Crear un CD de arranque . . . . . . . . . . . Pantalla gráfica de SUSE . . . . . . . . . . . . Solución de problemas . . . . . . . . . . . . Información adicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Información acerca de paquetes especiales de software Consolas virtuales . . . . . . . . . . . . . . . . Distribución del teclado . . . . . . . . . . . . . . Ajustes de idioma y país . . . . . . . . . . . . . Flujo de trabajo del sistema de impresión . . . . Métodos y protocolos de conexión de impresoras Instalación del software . . . . . . . . . . . . Configuración de la impresora . . . . . . . . . Configuración para aplicaciones . . . . . . . . Funciones especiales en SUSE Linux . . . . . . . Solución de problemas . . . . . . . . . . . . 470 471 471 482 488 488 489 490 492 493 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1 Funcionamiento de la impresora 31.1 31.2 31.3 31.4 31.5 31.6 31.7 451 455 464 469 3 0 Funciones especiales de SUSE Linux 30.1 30.2 30.3 30.4 415 426 433 445 451 2 9 Cargador de arranque 29.1 29.2 29.3 29.4 29.5 29.6 29.7 29.8 29.9 413 414 493 501 501 502 507 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 509 510 511 517 518 524 ix 3 2 Sistema HotPlug 32.1 32.2 32.3 32.4 32.5 32.6 Dispositivos e interfaces . . . . . . Eventos HotPlug . . . . . . . . . Configuración del dispositivo HotPlug Carga de módulos automática . . . Guión de arranque ColdPlug . . . . Análisis de errores . . . . . . . . 533 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 Nodos de dispositivo dinámicos con udev 33.1 33.2 33.3 33.4 33.5 541 Creación de reglas . . . . . . . . . . . . . . . . . . . . . . Sustitución del espacio reservado . . . . . . . . . . . . . . . Concordancia de patrones en claves . . . . . . . . . . . . . . Selección de claves . . . . . . . . . . . . . . . . . . . . . . Nombres permanentes para dispositivos de almacenamiento masivos . . . . . . . . . . 3 4 Sistemas de archivos en Linux 34.1 34.2 34.3 34.4 34.5 Glosario . . . . . . . . . . . . . . Los sistemas de archivos más importantes Otros sistemas de archivos soportados . Soporte de archivos grandes en Linux . . Información adicional . . . . . . . . Configuración de X11 con SaX2 . . . Optimización de la configuración de X Instalación y configuración de fuentes Configuración 3D de OpenGL . . . . . . . . en Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Estructura de archivos de configuración PAM . . . . . . . . . . . . . Configuración PAM para sshd . . . . . . . . . . . . . . . . . . . Configuración de módulos PAM . . . . . . . . . . . . . . . . . . Información adicional . . . . . . . . . . . . . . . . . . . . . . x Instalación de Xen . . . . . . . . . . Instalación de dominios . . . . . . . . Configuración de dominios invitados Xen Inicio y control de dominios Xen . . . . 561 563 569 575 579 3 7 Virtualización mediante Xen 37.1 37.2 37.3 37.4 547 548 555 557 558 561 3 6 Autenticación con PAM 36.1 36.2 36.3 36.4 542 543 543 543 545 547 3 5 Sistema X Window 35.1 35.2 35.3 35.4 534 535 535 537 538 538 580 582 584 586 589 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 592 596 597 37.5 Información adicional . . . . . . . . . . . . . . . . . . . . . . 598 parte IX Servicios 601 3 8 Trabajo en red básico 603 38.1 38.2 38.3 38.4 38.5 38.6 Direcciones IP y encaminamiento . . . . . . . . . IPv6: Internet de la próxima generación . . . . . . Resolución de nombres . . . . . . . . . . . . . Configuración de una conexión de red con YaST . . Configuración manual de una conexión de red . . . Uso de smpppd como asistente de acceso telefónico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 9 Servicios SLP en la red 39.1 39.2 39.3 39.4 647 Registro de sus propios servicios . . . . . . . . . . . . . . . . . . Interfaces SLP en SUSE Linux . . . . . . . . . . . . . . . . . . . . Activación de SLP . . . . . . . . . . . . . . . . . . . . . . . . Información adicional . . . . . . . . . . . . . . . . . . . . . . 4 0 DNS (Domain Name System) 40.1 40.2 40.3 40.4 40.5 40.6 40.7 40.8 40.9 Introducción a DNS . . . . . . . . . . . Configuración con YaST . . . . . . . . . . Iniciar el servidor de nombres BIND . . . . El archivo de configuración /etc/named.conf . Sintaxis de los archivos de zona . . . . . . Actualización dinámica de los datos de zonas Transacciones seguras . . . . . . . . . . Seguridad DNS . . . . . . . . . . . . . Información adicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuración de servidores NIS mediante YaST . . . . . . . . . . . Configuración de clientes NIS . . . . . . . . . . . . . . . . . . . Importación de sistemas de archivos con YaST Importación manual de sistemas de archivos . Exportación de sistemas de archivos con YaST Exportación manual de sistemas de archivos . 651 651 659 661 666 670 670 672 672 673 4 2 Uso compartido de sistemas de archivos con NFS 42.1 42.2 42.3 42.4 647 648 649 649 651 4 1 Uso de NIS 41.1 41.2 606 609 619 620 631 643 . . . . . . . . . . . . . . . . 673 678 681 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681 682 683 684 xi 4 3 DHCP 43.1 43.2 43.3 43.4 687 Configuración de un servidor DHCP con YaST Paquetes de software DHCP . . . . . . . . El servidor DHCP dhcpd . . . . . . . . . . Información adicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 Sincronización de la hora con xntp 44.1 44.2 44.3 697 Configuración de un cliente NTP con YaST . . . . . . . . . . . . . . Configuración de xntp en la red . . . . . . . . . . . . . . . . . . Configuración de un reloj local de referencia . . . . . . . . . . . . . 4 5 LDAP: un servicio de directorio 45.1 45.2 45.3 45.4 45.5 45.6 45.7 LDAP frente a NIS . . . . . . . . . . . . . . . . Estructura de un árbol de directorios de LDAP . . . . Configuración del servidor con slapd.conf . . . . . . Gestión de datos en el directorio LDAP . . . . . . . El cliente LDAP de YaST . . . . . . . . . . . . . . Configuración de los usuarios y grupos LDAP en YaST . Información adicional . . . . . . . . . . . . . . Prefacio y terminología . Instalación . . . . . . Configuración . . . . . Hosts virtuales . . . . . Módulos de Apache . . Seguridad . . . . . . . Resolución de problemas Información adicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii 705 706 709 714 718 726 728 731 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 7 Sincronización de archivos 47.1 47.2 47.3 47.4 47.5 47.6 47.7 697 701 701 703 4 6 El servidor Web Apache 46.1 46.2 46.3 46.4 46.5 46.6 46.7 46.8 688 692 692 696 Software de sincronización de datos . Criterios para la elección de programa Introducción a Unison . . . . . . . Introducción a CVS . . . . . . . . . Introducción a Subversion . . . . . . Introducción a rsync . . . . . . . . Introducción a mailsync . . . . . . . 731 734 741 757 761 773 775 776 779 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779 782 786 788 791 795 796 4 8 Samba 48.1 48.2 48.3 48.4 48.5 Índice Configuración del servidor . . . . . . . . Samba como servidor de inicio de sesión . . Configuración de un servidor Samba con YaST Configuración de los clientes . . . . . . . Optimización . . . . . . . . . . . . . . 801 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803 807 809 811 812 815 xiii Acerca de esta guía Este manual ofrece una descripción general de SUSE Linux. Está destinado, principalmente, a administradores de sistemas, y a personas que hacen de él un uso doméstico y que tienen conocimientos básicos de administración de sistemas. Este manual presenta una selección de aplicaciones necesarias en la vida diaria y proporciona descripciones exhaustivas de las situaciones de instalación y configuración avanzadas. Situaciones de implantación avanzada Aprenda a implantar SUSE Linux en entornos complejos. Internet, Multimedia, Aplicaciones de oficina y Gráficos Acérquese a las aplicaciones más importantes que pueden necesitar las personas que hacen un uso doméstico de SUSE Linux. Movilidad Iníciese en los equipos móviles con SUSE Linux y aprenda a configurar las múltiples opciones correspondientes a los equipos inalámbricos, la gestión de alimentación y la gestión de perfiles. Administración Sepa cómo incrementar la seguridad de SUSE Linux, cómo gestionar los controles de acceso al sistema de archivos y conozca algunas utilidades importantes para los administradores de Linux. Sistema Lea una introducción de los componentes del sistema Linux y alcance una mejor comprensión de su interacción. Servicios Aprenda cómo configurar varios servicios de red y de archivo que incluye SUSE Linux. 1 Comentarios Nos gustaría recibir sus comentarios y sugerencias acerca de este manual y del resto de la documentación que se adjunta con este producto. Utilice la función User Comments (Comentarios del usuario) que se encuentra en la parte inferior de cada página de docu- mentación en línea; alternativamente, vaya a http://www.novell.com/ documentation/feedback.html y escriba allí sus comentarios. 2 Documentación adicional Hay otros manuales de este producto SUSE Linux disponibles, bien en línea, en http://www.novell.com/documentation/, bien en el sistema instalado, en /usr/share/doc/manual/: Inicio Esta guía cubre los primeros pasos que se dan con SUSE Linux. En http://www .novell.com/documentation/suse10/, puede encontrarse una versión en línea de este documento. Guía de instalación y de inicio rápido de Novell AppArmor Powered by Immunix 1.2 Esta guía ofrece una descripción general del procedimiento de instalación inicial del producto AppArmor. En http://www.novell.com/documentation/ apparmor/, puede encontrarse una versión en línea de este documento. Guía de administración de Novell AppArmor Powered by Immunix 1.2 Esta guía contiene información exhaustiva sobre el uso de AppArmor en su entorno. En http://www.novell.com/documentation/apparmor/, puede encontrarse una versión en línea de este documento. 3 Convenciones de la documentación En este manual se utilizan las siguientes convenciones tipográficas: • /etc/passwd: nombres de archivos y de directorios. • espacio reservado: se sustituye espacio reservado por el valor real. • PATH: variable de entorno PATH. • ls, --help: comandos, opciones y parámetros. • usuario: usuarios o grupos. xvi • Alt , Alt + F1 : tecla o combinación de teclas que pulsar. • Archivo, Archivo → Guardar como: elementos de menú y botones. • Pingüinos bailarines (capítulo Pingüinos, ↑Referencia): referencia a un capítulo en otro libro. 4 Agradecimientos Con una buena dosis de compromiso voluntario, los desarrolladores de Linux cooperan a escala mundial para contribuir al crecimiento de Linux. Agradecemos el esfuerzo de todos ellos ya que, sin él, esta distribución no habría visto la luz. Hacemos una mención especial a Frank Zappa y Pawar. Y, por supuesto, un agradecimiento especial a Linus Torvalds. Esperamos que lo pasen bien, El equipo de SUSE Acerca de esta guía xvii Parte I. Escenarios de implantación avanzados 1 Instalación remota SUSE Linux se puede instalar de varias maneras diferentes. Además de la instalación habitual a partir de CDs o DVDs descrita en el Capítulo Instalación mediante YaST (↑Inicio), es posible seleccionar diversos métodos basados en red o incluso utilizar un método sin intervención física alguna para instalar SUSE Linux. Más adelante se ofrece una introducción a cada método con dos listas de comprobación, una con los requisitos previos y otra en la que se describe el procedimiento básico. A continuación se incluyen más detalles de las técnicas utilizadas en cada situación de instalación. NOTA En las próximas secciones, el sistema que almacenará la nueva instalación de SUSE Linux aparece como sistema de destino o destino de la instalación. El término fuente de la instalación se utiliza para todas las fuentes de datos de instalación. Esto incluye medios físicos, tales como CD y DVD, y los servidores de red que distribuyan los datos de instalación en la red. 1.1 Situaciones de instalación para la instalación remota En esta sección se describen las situaciones de instalación más habituales para la instalación remota. Para cada situación, compruebe detenidamente los requisitos previos y Instalación remota 21 siga el procedimiento indicado. Si necesita instrucciones detalladas para un paso concreto, siga los enlaces que aparecen en cada uno de ellos. IMPORTANTE La configuración de X Window System no forma parte del proceso de instalación remota. Cuando finalice la instalación, inicie sesión en el sistema de destino como usuario root, escriba init 3 e inicie SaX2 para configurar el hardware como se describe en la Sección 35.1, “Configuración de X11 con SaX2” (p. 561). 1.1.1 Instalación remota sencilla mediante VNC — Configuración de red estática Para este tipo de instalación es necesario un cierto grado de acceso físico al sistema de destino con el fin de arrancarlo para la instalación. Una estación de trabajo remota controla completamente la instalación propiamente dicha y usa VNC para conectarse al programa de instalación. Es necesaria la misma intervención del usuario que en la instalación manual descrita en el Capítulo Instalación mediante YaST (↑Inicio). Para este tipo de instalación, asegúrese de que se cumplen los siguientes requisitos: • Fuente de la instalación remota: NFS, HTTP, FTP o SMB con una conexión de red en funcionamiento • Sistema de destino con una conexión de red en funcionamiento • Sistema de control con una conexión de red en funcionamiento y con software para la visualización de VNC o un navegador compatible con Java (Firefox, Konqueror, Internet Explorer u Opera) • Medio de arranque físico (CD o DVD) para arrancar el sistema de destino • Direcciones IP estáticas válidas ya asignadas a la fuente de la instalación y al sistema de control • Dirección IP estática válida para asignar al sistema de destino Para realizar este tipo de instalación, siga estos pasos: 22 1 Configure la fuente de la instalación tal y como se describe en la Sección 1.2, “Configuración del servidor que almacena las fuentes de la instalación” (p. 31). 2 Arranque el sistema de destino mediante el primer CD o DVD del kit de medios de SUSE Linux. 3 Cuando aparezca la pantalla de arranque del sistema de destino, utilice el menú de opciones de arranque para establecer las opciones de VNC apropiadas y la dirección de la fuente de la instalación. Esto se describe con más detalle en la Sección 1.4, “Arranque del sistema de destino para la instalación” (p. 51). El sistema de destino inicia un entorno basado en texto y ofrece la dirección de red y el número de pantalla mediante los cuales las aplicaciones para la visualización de VNC o navegadores pueden dirigirse al entorno de instalación gráfica. Las instalaciones VNC se anuncian ellas mismas en OpenSLP, y pueden encontrarse usando Konqueror en modo service:// o slp://. 4 En la estación de trabajo de control, abra una aplicación para la visualización de VNC o un navegador Web y conéctese al sistema de destino como se describe en la Sección 1.5.1, “Instalación de VNC” (p. 57). 5 Realice la instalación como se describe en el Capítulo Instalación mediante YaST (↑Inicio). Es necesario volver a conectarse al sistema de destino después de reiniciarlo para la parte final de la instalación. 6 Complete la instalación. 1.1.2 Instalación remota sencilla mediante VNC — Configuración de red dinámica mediante DHCP Para este tipo de instalación, es necesario un cierto grado de acceso físico al sistema de destino con el fin de arrancarlo para la instalación. La configuración de la red se realiza mediante DHCP. Una estación de trabajo remota controla completamente la instalación propiamente dicha y usa VNC para conectarse al programa de instalación, pero es necesaria la intervención del usuario para realizar la configuración. Instalación remota 23 Para este tipo de instalación, asegúrese de que se cumplen los siguientes requisitos: • Fuente de la instalación remota: NFS, HTTP, FTP o SMB con una conexión de red en funcionamiento • Sistema de destino con una conexión de red en funcionamiento • Sistema de control con una conexión de red en funcionamiento y con software para la visualización de VNC o un navegador compatible con Java (Firefox, Konqueror, Internet Explorer u Opera) • Medio de arranque físico (CD, DVD o disco de inicio personalizado) para arrancar el sistema de destino • Servidor DHCP en funcionamiento que suministre las direcciones IP Para realizar este tipo de instalación, siga estos pasos: 1 Configure la fuente de la instalación tal y como se describe en la Sección 1.2, “Configuración del servidor que almacena las fuentes de la instalación” (p. 31). Escoja un servidor de red NFS, HTTP o FTP. Si la fuente de la instalación es SMB, consulte la Sección 1.2.5, “Configuración de una fuente de instalación SMB” (p. 40). 2 Arranque el sistema de destino mediante el primer CD o DVD del kit de medios de SUSE Linux. 3 Cuando aparezca la pantalla de arranque del sistema de destino, utilice el menú de opciones de arranque para establecer las opciones de VNC apropiadas y la dirección de la fuente de la instalación. Esto se describe con más detalle en la Sección 1.4, “Arranque del sistema de destino para la instalación” (p. 51). El sistema de destino inicia un entorno basado en texto y ofrece la dirección de red y el número de pantalla mediante los cuales las aplicaciones para la visualización de VNC o navegadores pueden dirigirse al entorno de instalación gráfica. Las instalaciones VNC se anuncian ellas mismas en OpenSLP, y pueden encontrarse usando Konqueror en modo service:// o slp://. 4 En la estación de trabajo de control, abra una aplicación para la visualización de VNC o un navegador Web y conéctese al sistema de destino como se describe en la Sección 1.5.1, “Instalación de VNC” (p. 57). 24 5 Realice la instalación como se describe en el Capítulo Instalación mediante YaST (↑Inicio). Es necesario volver a conectarse al sistema de destino después de reiniciarlo para la parte final de la instalación. 6 Complete la instalación. 1.1.3 Instalación remota mediante VNC — Arranque en PXE y Wake on LAN Este tipo de instalación no requiere intervención física alguna. La máquina de destino se inicia y arranca de manera remota. Sólo es necesaria la intervención del usuario para la instalación propiamente dicha. Este método es adecuado para instalaciones en múltiples ubicaciones. Para este tipo de instalación, asegúrese de que se cumplen los siguientes requisitos: • Fuente de la instalación remota: NFS, HTTP, FTP o SMB con una conexión de red en funcionamiento • Servidor TFTP • Servidor DHCP en funcionamiento para su red • Sistema de destino compatible con arranque en PXE, funcionamiento en red y Wake on LAN, enchufado y conectado a la red • Sistema de control con una conexión de red en funcionamiento y con software para la visualización de VNC o un navegador compatible con Java (Firefox, Konqueror, Internet Explorer u Opera) Para realizar este tipo de instalación, siga los pasos siguientes: 1 Configure la fuente de la instalación tal y como se describe en la Sección 1.2, “Configuración del servidor que almacena las fuentes de la instalación” (p. 31). Escoja un servidor de red NFS, HTTP o FTP o configure una fuente de instalación SMB como se describe en la Sección 1.2.5, “Configuración de una fuente de instalación SMB” (p. 40). Instalación remota 25 2 Configure un servidor TFTP para que almacene una imagen de arranque que pueda ser utilizada por el sistema de destino. Esto se describe en la Sección 1.3.2, “Configuración de un servidor TFTP” (p. 43). 3 Configure un servidor DHCP para que suministre direcciones IP a todas las máquinas e indique la ubicación del servidor TFTP al sistema de destino. Esto se describe en la Sección 1.3.1, “Configuración de un servidor DHCP” (p. 41). 4 Prepare el sistema de destino para arranque en PXE. Esto se describe con más detalle en la Sección 1.3.5, “Preparación del sistema de destino para arranque en PXE” (p. 50). 5 Comience el proceso de arranque del sistema de destino mediante Wake on LAN. Esto se describe en la Sección 1.3.7, “Wake on LAN” (p. 50). 6 En la estación de trabajo de control, abra una aplicación para la visualización de VNC o un navegador Web y conéctese al sistema de destino como se describe en la Sección 1.5.1, “Instalación de VNC” (p. 57). 7 Realice la instalación como se describe en el Capítulo Instalación mediante YaST (↑Inicio). Es necesario volver a conectarse al sistema de destino después de reiniciarlo para la parte final de la instalación. 8 Complete la instalación. 1.1.4 Instalación remota sencilla mediante SSH — Configuración de red estática Para este tipo de instalación es necesario un cierto grado de acceso físico al sistema de destino con el fin de arrancarlo para la instalación y de determinar la dirección IP del destino de la instalación. Una estación de trabajo remota controla completamente la instalación propiamente dicha y usa SSH para conectarse al programa de instalación. Es necesaria la misma intervención del usuario que en la instalación manual descrita en el Capítulo Instalación mediante YaST (↑Inicio). Para este tipo de instalación, asegúrese de que se cumplen los siguientes requisitos: 26 • Fuente de la instalación remota: NFS, HTTP, FTP o SMB con una conexión de red en funcionamiento • Sistema de destino con una conexión de red en funcionamiento • Sistema de control con una conexión de red en funcionamiento y con software para la visualización de VNC o un navegador compatible con Java (Firefox, Konqueror, Internet Explorer u Opera) • Medio de arranque físico (CD, DVD o disco de inicio personalizado) para arrancar el sistema de destino • Direcciones IP estáticas válidas ya asignadas a la fuente de la instalación y al sistema de control • Dirección IP estática válida para asignar al sistema de destino Para realizar este tipo de instalación, siga estos pasos: 1 Configure la fuente de la instalación tal y como se describe en la Sección 1.2, “Configuración del servidor que almacena las fuentes de la instalación” (p. 31). 2 Arranque el sistema de destino mediante el primer CD o DVD del kit de medios de SUSE Linux. 3 Cuando aparezca la pantalla de arranque del sistema de destino, utilice el menú de opciones de arranque para establecer los parámetros apropiados de la conexión de red, la dirección de la fuente de la instalación y la habilitación de SSH. Esto se describe con más detalle en la Sección 1.4.3, “Uso de opciones de arranque personalizadas” (p. 53). El sistema de destino inicia un entorno basado en texto y ofrece la dirección de red y el número de pantalla mediante los cuales los clientes SSH pueden dirigirse al entorno de instalación gráfica. 4 En la estación de trabajo de control, abra una ventana de terminal y conéctese al sistema de destino como se describe en la “Conexión al programa de instalación” (p. 59). 5 Realice la instalación como se describe en el Capítulo Instalación mediante YaST (↑Inicio). Instalación remota 27 Es necesario volver a conectarse al sistema de destino después de reiniciarlo para la parte final de la instalación. 6 Complete la instalación. 1.1.5 Instalación remota sencilla mediante SSH — Configuración de red dinámica mediante DHCP Para este tipo de instalación es necesario un cierto grado de acceso físico al sistema de destino con el fin de arrancarlo para la instalación y de determinar la dirección IP del destino de la instalación. Una estación de trabajo remota controla completamente la instalación propiamente dicha y usa VNC para conectarse al programa de instalación, pero es necesaria la intervención del usuario para realizar la configuración. Para este tipo de instalación, asegúrese de que se cumplen los siguientes requisitos: • Fuente de la instalación remota: NFS, HTTP, FTP o SMB con una conexión de red en funcionamiento • Sistema de destino con una conexión de red en funcionamiento • Sistema de control con una conexión de red en funcionamiento y con software para la visualización de VNC o un navegador compatible con Java (Firefox, Konqueror, Internet Explorer u Opera) • Medio de arranque físico (CD o DVD) para arrancar el sistema de destino • Servidor DHCP en funcionamiento que suministre las direcciones IP Para realizar este tipo de instalación, siga estos pasos: 1 Configure la fuente de la instalación tal y como se describe en la Sección 1.2, “Configuración del servidor que almacena las fuentes de la instalación” (p. 31). Escoja un servidor de red NFS, HTTP o FTP. Si la fuente de la instalación es SMB, consulte la Sección 1.2.5, “Configuración de una fuente de instalación SMB” (p. 40). 28 2 Arranque el sistema de destino mediante el primer CD o DVD del kit de medios de SUSE Linux. 3 Cuando aparezca la pantalla de arranque en el sistema de destino, utilice el menú de opciones de arranque para establecer los parámetros apropiados de la conexión de red, la dirección de la fuente de la instalación y la habilitación de SSH. Para obtener instrucciones detalladas sobre el uso de estos parámetros, consulte la Sección 1.4.3, “Uso de opciones de arranque personalizadas” (p. 53). El sistema de destino inicia un entorno basado en texto y ofrece la dirección de red mediante la cual los clientes SSH pueden dirigirse al entorno de instalación gráfica. 4 En la estación de trabajo de control, abra una ventana de terminal y conéctese al sistema de destino como se describe en la “Conexión al programa de instalación” (p. 59). 5 Realice la instalación como se describe en el Capítulo Instalación mediante YaST (↑Inicio). Es necesario volver a conectarse al sistema de destino después de reiniciarlo para la parte final de la instalación. 6 Complete la instalación. 1.1.6 Instalación remota mediante SSH — Arranque en PXE y Wake on LAN Este tipo de instalación no requiere intervención física alguna. La máquina de destino se inicia y arranca de manera remota. Para este tipo de instalación, asegúrese de que se cumplen los siguientes requisitos: • Fuente de la instalación remota: NFS, HTTP, FTP o SMB con una conexión de red en funcionamiento • Servidor TFTP Instalación remota 29 • Servidor DHCP en funcionamiento para su red que proporcione una dirección IP al host que necesita instalarse • Sistema de destino compatible con arranque en PXE, funcionamiento en red y Wake on LAN, enchufado y conectado a la red • Sistema de control con una conexión de red en funcionamiento y software cliente para SSH Para realizar este tipo de instalación, siga los pasos siguientes: 1 Configure la fuente de la instalación tal y como se describe en la Sección 1.2, “Configuración del servidor que almacena las fuentes de la instalación” (p. 31). Escoja un servidor de red NFS, HTTP o FTP. Para configurar una fuente de instalación SMB, consulte la Sección 1.2.5, “Configuración de una fuente de instalación SMB” (p. 40). 2 Configure un servidor TFTP para que almacene una imagen de arranque que pueda ser utilizada por el sistema de destino. Esto se describe en la Sección 1.3.2, “Configuración de un servidor TFTP” (p. 43). 3 Configure un servidor DHCP para que suministre direcciones IP a todas las máquinas e indique la ubicación del servidor TFTP al sistema de destino. Esto se describe en la Sección 1.3.1, “Configuración de un servidor DHCP” (p. 41). 4 Prepare el sistema de destino para arranque en PXE. Esto se describe con más detalle en la Sección 1.3.5, “Preparación del sistema de destino para arranque en PXE” (p. 50). 5 Comience el proceso de arranque del sistema de destino mediante Wake on LAN. Esto se describe en la Sección 1.3.7, “Wake on LAN” (p. 50). 6 En la estación de trabajo de control, abra un cliente VNC y conéctese al sistema de destino como se describe en la Sección 1.5.2, “Instalación con SSH” (p. 59). 7 Realice la instalación como se describe en el Capítulo Instalación mediante YaST (↑Inicio). Es necesario volver a conectarse al sistema de destino después de reiniciarlo para la parte final de la instalación. 30 8 Complete la instalación. 1.2 Configuración del servidor que almacena las fuentes de la instalación En función del sistema operativo instalado en la máquina que se utilizará como fuente de la instalación en red para SUSE Linux, existen varias opciones para configurar el servidor. En SUSE LINUX Enterprise Server o SUSE Linux 9.3 o posterior, la manera más sencilla de configurar un servidor de instalación es utilizar YaST. En otras versiones de SUSE LINUX Enterprise Server o SUSE Linux, configure la fuente de la instalación de manera manual. SUGERENCIA Es posible incluso utilizar una máquina con Microsoft Windows como servidor de la instalación para la instalación de Linux. Para obtener más información, consulte la Sección 1.2.5, “Configuración de una fuente de instalación SMB” (p. 40). 1.2.1 Configuración de un servidor de instalación mediante YaST YaST ofrece una herramienta gráfica para la creación de fuentes de instalación en red. Admite servidores de instalación en red HTTP, FTP y NFS. 1 Inicie sesión como usuario root en la máquina que actuará como servidor de la instalación. 2 Inicie YaST → Otros → Servidor de instalación. 3 Seleccione el tipo de servidor (HTTP, FTP o NFS). Instalación remota 31 El servicio del servidor seleccionado se ejecuta automáticamente cada vez que se inicia el sistema. Si ya se encuentra en funcionamiento en el sistema un servicio del tipo seleccionado y desea configurarlo manualmente para el servidor, desactive la configuración automática del servicio del servidor mediante Do not configure any network services (No configurar ningún servicio de red). En ambos casos, defina el directorio en el que los datos de la instalación estarán disponibles en el servidor. 4 Configure el tipo de servidor requerido. Este paso está relacionado con la configuración automática de servicios de servidor. Se omite cuando la configuración automática está desactivada. Defina un alias para el directorio raíz del servidor FTP o HTTP en el que se encontrarán los datos de la instalación. La fuente de la instalación se ubicará más adelante en ftp://IP_del_servidor/alias/nombre (FTP) o en http://IP_del_servidor/alias/nombre (HTTP). nombre representa el nombre de la fuente de la instalación, que se define en el siguiente paso. Si ha seleccionado NFS en el paso anterior, defina los comodines y las opciones de exportación. Podrá acceder al servidor NFS en nfs://IP_del_servidor/nombre. Se pueden encontrar más detalles sobre NFS y las exportaciones en el Capítulo 42, Uso compartido de sistemas de archivos con NFS (p. 681). 5 Configure la fuente de la instalación. Antes de que los medios de instalación se copien en el destino, defina el nombre de la fuente de la instalación (lo ideal sería una abreviación fácil de recordar del producto y la versión). YaST permite ofrecer imágenes ISO de los medios en lugar de copias de los CDs de instalación. Si desea hacerlo así, active la casilla de verificación correspondiente y especifique la vía del directorio en el que se ubican localmente los archivos ISO. En función del producto que se distribuya mediante este servidor de instalación, es posible que se necesiten más CDs de extensiones o de service packs para instalarlo completamente. Si activa Pedir CD adicionales, YaST le recordará automáticamente que añada estos medios. Para anunciar en la red el servidor de instalación mediante OpenSLP, active la opción correspondiente. 32 SUGERENCIA Considere la opción de anunciar la fuente de la instalación mediante OpenSLP si la red lo admite. Esto le evita el tener que introducir la vía de instalación en red en cada máquina de destino. Los sistemas de destino se arrancarán con la opción de arranque en SLP y encontrarán la fuente de la instalación en red sin necesidad de configuración adicional. Para obtener más detalles sobre esta opción, consulte la Sección 1.4, “Arranque del sistema de destino para la instalación” (p. 51). 6 Cargue los datos de la instalación. El paso que más tiempo ocupa durante la configuración de un servidor de instalación es el copiado de los CDs de instalación en sí. Introduzca los medios en el orden que YaST solicite y espere a que termine el proceso de copiado. Cuando las fuentes se hayan copiado completamente, vuelva al resumen de las fuentes de información existentes y cierre la configuración seleccionando Finalizar. El servidor de instalación quedará completamente configurado y listo para usarse. Se ejecutará automáticamente cada vez que se inicie el sistema. No es necesario intervenir de ninguna otra manera. Sólo es necesario configurar e iniciar correctamente este servicio a mano si se desactiva la configuración automática del servicio de red seleccionado con YaST en el paso inicial. Para desactivar una fuente de instalación, seleccione Cambiar en el resumen para obtener una lista de todas las fuentes de instalación disponibles. Elija la entrada que desee borrar y seleccione Suprimir. Este procedimiento de eliminación sólo implica la desactivación del servicio del servidor. Los datos de la instalación en sí permanecen en el directorio seleccionado. No obstante, es posible eliminarlos de forma manual. Si el servidor de instalación ofrece datos de instalación para más de un producto o versión, inicie el módulo del servidor de instalación de YaST y seleccione Configurar en el resumen de las fuentes de instalación existentes para configurar la nueva fuente de instalación. Instalación remota 33 1.2.2 Configuración manual de una fuente de instalación NFS La configuración de una fuente de instalación NFS se lleva a cabo básicamente en dos pasos. En primer lugar, cree la estructura de directorios en la que se almacenarán los datos de la instalación y copie los medios de instalación en dicha estructura. A continuación, exporte a la red el directorio que contiene los datos de la instalación. Para crear un directorio en el que se almacenen los datos de la instalación, siga los pasos siguientes: 1 Inicie sesión como usuario root. 2 Cree un directorio en el que más adelante se almacenarán los datos de la instalación y cambie a dicho directorio. Por ejemplo: mkdir install/producto/versiondelproducto cd install/producto/versiondelproducto Sustituya producto por una abreviación del nombre del producto (en este caso, SUSE Linux) y versiondelproducto por una cadena que contenga el nombre del producto y la versión. 3 Ejecute los siguientes comandos para cada CD contenido en el kit de medios: a Copie el contenido completo del CD de instalación en el directorio del servidor de instalación: cp -a /media/via_a_la_unidad_de_CD-ROM . Sustituya via_a_la_unidad_de_CD-ROM por la vía real por la que se accede a la unidad de CD o DVD. En función del tipo de unidad utilizado en el sistema, la vía puede ser cdrom, cdrecorder, dvd o dvdrecorder. b Cambie el nombre del directorio al número del CD: mv via_a_la_unidad_de_CD-ROM CDx Sustituya x por el número real del CD. 34 Para exportar las fuentes de la instalación mediante NFS con YaST, siga estos pasos: 1 Inicie sesión como usuario root. 2 Inicie YaST → Servicios de red → Servidor NFS. 3 Seleccione Iniciar el servidor NFS y Puerto abierto en el cortafuegos, y haga clic en Siguiente. 4 Seleccione Añadir directorio e introduzca la vía del directorio que contiene los datos de la instalación. En este caso, corresponde a /versiondelproducto. 5 Seleccione Añadir equipo e introduzca los nombres de host de las máquinas a las que se exportarán los datos de la instalación. En lugar de especificar aquí los nombres de host, es posible usar comodines, rangos de direcciones de red o simplemente el nombre de dominio de la red. Introduzca las opciones de exportación apropiadas o mantenga las que se ofrecen por defecto, las cuales funcionan correctamente en la mayoría de las configuraciones. Para obtener más información sobre la sintaxis utilizada en la exportación de recursos compartidos NFS, lea la página Man de export. 6 Haga clic en Finalizar. El servidor NFS en el que se almacenan las fuentes de la instalación de SUSE Linux se iniciará automáticamente y se integrará en el proceso de arranque. Si prefiere exportar las fuentes de la instalación mediante NFS de manera manual en lugar de utilizar el módulo Servidor NFS de YaST, siga estos pasos: 1 Inicie sesión como usuario root. 2 Abra el archivo /etc/exports e introduzca la siguiente línea: /versiondelproducto *(ro,root_squash,sync) Con ello se exporta el directorio /versiondelproducto a cualquier host que forme parte de la red o a cualquier host que se conecte al servidor. Para limitar el acceso al servidor, utilice máscaras de red o nombres de dominio en lugar del comodín general *. Consulte la página Man de export para obtener más detalles. Guarde y salga del archivo de configuración. Instalación remota 35 3 Para añadir el servicio NFS a la lista de servidores que se inicia durante el arranque del sistema, ejecute los siguientes comandos: insserv /etc/init.d/nfsserver insserv /etc/init.d/portmap 4 Inicie el servidor NFS con el siguiente comando: rcnfsserver start Si más adelante necesita cambiar la configuración del servidor NFS, modifique el archivo de configuración y reinicie el daemon NFS con rcnfsserver restart. El anuncio del servidor NFS mediante OpenSLP hace que todos los clientes de la red conozcan su dirección. 1 Inicie sesión como usuario root. 2 Entre en el directorio /etc/slp.reg.d/. 3 Cree un archivo de configuración con el nombre install.suse.nfs.reg que contenga las siguientes líneas: # Register the NFS Installation Server service:install.suse:nfs://$HOSTNAME/path_instsource/CD1,en,65535 description=NFS Installation Source Sustituya via_fuenteinst por la vía real a la fuente de la instalación en el servidor. 4 Guarde este archivo de configuración e inicie el daemon OpenSLP con el siguiente comando: rcslpd start 36 Para obtener más información sobre OpenSLP, consulte el paquete de documentación que se encuentra en /usr/share/doc/packages/openslp/ y también el Capítulo 39, Servicios SLP en la red (p. 647). 1.2.3 Configuración manual de una fuente de instalación FTP La creación de una fuente de instalación FTP es muy similar a la creación de una fuente de instalación NFS. Las fuentes de instalación FTP también se pueden anunciar en la red mediante OpenSLP. 1 Cree un directorio en el que se almacenarán las fuentes de la instalación como se describe en la Sección 1.2.2, “Configuración manual de una fuente de instalación NFS” (p. 34). 2 Configure el servidor FTP para que distribuya los contenidos del directorio de instalación: a Inicie sesión como usuario root e instale el paquete pure-ftpd (un pequeño servidor FTP) con el gestor de paquetes de YaST. b Entre en el directorio raíz del servidor FTP: cd/srv/ftp c Cree un subdirectorio en el que se almacenarán las fuentes de la instalación en el directorio raíz FTP: mkdirfuenteinst Sustituya fuenteinst por el nombre del producto. d Copie el contenido de todos los CDs de instalación en el directorio raíz del servidor FTP (de manera similar al procedimiento descrito en la Sección 1.2.2, “Configuración manual de una fuente de instalación NFS” (p. 34), Paso 3 (p. 34)). También puede montar los contenidos del repositorio de instalación existente en el entorno chroot del servidor FTP: Instalación remota 37 mount --bind via_a_fuenteinst /srv/ftp/fuenteinst Sustituya via_a_fuenteinst y fuenteinst con los valores correspondientes a su configuración. Si necesita que sea permanente, añádalo a /etc/fstab. e Inicie pure-ftpd: pure-ftpd & 3 Anuncie la fuente de la instalación mediante OpenSLP si la configuración de la red lo admite: a Cree un archivo de configuración con el nombre install.suse.ftp .reg en /etc/slp/reg.d/ que contenga las siguientes líneas: # Register the FTP Installation Server service:install.suse:ftp://$HOSTNAME/srv/ftp/instsource/CD1,en,65535 description=FTP Installation Source Sustituya fuenteinst por el nombre real de la fuente de la instalación en el servidor. La línea service: debe introducirse en una sola línea. b Guarde este archivo de configuración e inicie el daemon OpenSLP con el siguiente comando: rcslpd start 1.2.4 Configuración manual de una fuente de instalación HTTP La creación de una fuente de instalación HTTP es muy similar a la creación de una fuente de instalación NFS. Las fuentes de instalación HTTP también se pueden anunciar en la red mediante OpenSLP. 1 Cree un directorio en el que se almacenarán las fuentes de la instalación como se describe en la Sección 1.2.2, “Configuración manual de una fuente de instalación NFS” (p. 34). 38 2 Configure el servidor HTTP para que distribuya los contenidos del directorio de instalación: a Inicie sesión como usuario root e instale el paquete apache2 con el gestor de paquetes de YaST. b Entre en el directorio raíz del servidor HTTP (/srv/www/htdocs) y cree un subdirectorio en el que se almacenarán las fuentes de la instalación: mkdir fuenteinst Sustituya fuenteinst por el nombre del producto. c Cree un enlace simbólico entre la ubicación de las fuentes de la instalación y el directorio raíz del servidor Web (/srv/www/htdocs): ln -s /via_fuenteinst /srv/www/htdocs/fuenteinst d Modifique el archivo de configuración del servidor HTTP (/etc/ apache2/default-server.conf) para que siga enlaces simbólicos. Sustituya la siguiente línea: Options None con Options Indexes FollowSymLinks e Reinicie el servidor HTTP con rcapache2 restart. 3 Anuncie la fuente de la instalación mediante OpenSLP si la configuración de la red lo admite: a Cree un archivo de configuración con el nombre install.suse.http .reg en /etc/slp/reg.d/ que contenga las siguientes líneas: # Register the HTTP Installation Server service:install.suse:http://$HOSTNAME/srv/www/htdocs/via_a_fuenteinst/CD1/,en,65535 description=HTTP Installation Source Sustituya via_a_fuenteinst por la vía real en la fuente de la instalación en el servidor. La línea service: debe introducirse en una sola línea. Instalación remota 39 b Guarde este archivo de configuración e inicie el daemon OpenSLP con el comando rcslpd restart. 1.2.5 Configuración de una fuente de instalación SMB Mediante SMB (Samba) es posible importar las fuentes de la instalación de un servidor Microsoft Windows e iniciar la instalación de Linux incluso sin que haya ninguna máquina Linux. Para configurar un recurso compartido de Windows en el que se almacenarán las fuentes de la instalación de SUSE Linux, siga estos pasos: 1 Inicie sesión en la máquina que tenga instalado Windows. 2 Inicie el explorador y cree una nueva carpeta en la que se almacenará el árbol de la instalación completo y déle como nombre, por ejemplo, INSTALL. 3 Exporte este recurso compartido mediante el procedimiento descrito en la documentación de Windows. 4 Entre en dicho recurso compartido y cree una subcarpeta de nombre producto. producto debe reemplazarse por el nombre real del producto (en este caso, SUSE Linux). 5 Copie cada CD de SUSE Linux en una carpeta diferente y llame a estas carpetas CD1, CD2, CD3 etc. 6 Entre en el directorio superior del recurso compartido exportado (en este ejemplo, INSTALL) y copie en esta carpeta los siguientes archivos y carpetas de producto/CD1: content, media.1, control.xml y boot. 7 Cree una nueva carpeta en INSTALL y asígnele el nombre de yast. 8 Entre en la carpeta yast y cree los archivos order e instorder. 9 Abra el archivo order e introduzca la siguiente línea: /NLD/CD1 smb://usuario:contraseña@nombredelhost/productoCD1 40 Sustituya usuario por el nombre de usuario que utilice en la máquina Windows o utilice Guest para permitir un inicio de sesión como invitado en este recurso compartido. contraseña debe sustituirse por la contraseña de inicio de sesión o por una cadena cualquiera en el caso de inicio de sesión como invitado. nombredelhost debe sustituirse por el nombre de red de la máquina en la que está instalado Windows. 10 Abra el archivo instorder y añada la siguiente línea: /producto/CD1 Para utilizar un recurso compartido SMB montado como fuente de la instalación, siga los pasos siguientes: 1 Arranque el destino de la instalación. 2 Seleccione Instalación. 3 Pulse F4 para ver una selección de fuentes de instalación. 4 Seleccione SMB e introduzca el nombre o la dirección IP de la máquina en la que está instalado Windows, el nombre del recurso compartido (en este ejemplo, INSTALL), el nombre de usuario y la contraseña. Cuando pulse Intro , YaST se iniciará y podrá realizar la instalación. 1.3 Preparación del arranque del sistema de destino En esta sección se describen las tareas de configuración necesarias en situaciones de arranque complejas. Contiene ejemplos de configuración listos para usar para DHCP, arranque en PXE, TFTP y Wake on LAN. 1.3.1 Configuración de un servidor DHCP La configuración de servidores DHCP en SUSE Linux se realiza mediante la edición manual de los archivos de configuración correspondientes. En esta sección se describe Instalación remota 41 la ampliación de la configuración de un servidor DHCP existente para que ofrezca los datos necesarios para servir en un entorno TFTP, PXE y WOL. Configuración manual de un servidor DHCP Todo lo que necesita hacer el servidor DHCP, además de ofrecer asignación de direcciones automática a los clientes de la red, es anunciar la dirección IP del servidor TFTP y el archivo que las rutinas de instalación de la máquina de destino deben obtener. 1 Inicie sesión como usuario root en la máquina que aloje el servidor DHCP. 2 Añada las siguientes líneas al archivo de configuración del servidor DHCP que se encuentra en /etc/dhcpd.conf: group { # PXE related stuff # # "next server" defines the tftp server that will be used next server ip_del_servidor_tftp: # # "filename" specifiies the pxelinux image on the tftp server # the server runs in chroot under /srv/tftpboot filename "pxelinux.0"; } Sustituya ip_del_servidor_tftp por la dirección IP real del servidor TFTP. Para obtener más información acerca las opciones disponibles en dhcpd.conf, consulte la página de Man de dhcpd.conf. 3 Reinicie el servidor DHCP ejecutando rcdhcpd restart Si tiene previsto utilizar SSH para controlar remotamente una instalación PXE y Wake on LAN, especifique explícitamente la dirección IP que DHCP debe suministrar al destino de la instalación. Para ello, modifique la configuración DHCP antes mencionada de acuerdo con el siguiente ejemplo: group { # PXE related stuff # # "next server" defines the tftp server that will be used next server ip_tftp_server: # # "filename" specifiies the pxelinux image on the tftp server 42 # the server runs in chroot under /srv/tftpboot filename "pxelinux.0"; host test { hardware ethernet mac_address; fixed-address some_ip_address; } } La declaración del host incluye el nombre del host del destino de la instalación. Para relacionar el nombre de host y la dirección IP con un host determinado, es necesario conocer y especificar la dirección de hardware del sistema (MAC). Sustituya todas las variables utilizadas en este ejemplo por los valores reales correspondientes a su entorno. Una vez reiniciado el servidor DHCP, ofrecerá una dirección IP estática al host especificado, lo que permitirá conectarse al sistema mediante SSH. 1.3.2 Configuración de un servidor TFTP La configuración de servidores TFTP se puede realizar con YaST o bien de forma manual mediante otro sistema operativo Linux compatible con xinetd y tftp. El servidor TFTP proporciona la imagen de arranque al sistema de destino cuando éste arranca y envía una solicitud para ello. Configuración de un servidor TFTP mediante YaST 1 Inicie sesión como usuario root. 2 Inicie YaST → Servicios de red → Servidor TFTP e instale el paquete necesario. 3 Haga clic en Habilitar para asegurarse de que el servidor se inicie y se incluya en las rutinas de arranque. No es necesaria ninguna otra intervención por su parte para ello. xinetd inicia tftpd en el momento del arranque. 4 Haga clic en Puerto abierto en el cortafuegos para abrir el puerto correspondiente en el cortafuegos que se esté ejecutando en la máquina. Si no hay ningún cortafuegos en ejecución en el servidor, está opción no estará disponible. 5 Haga clic en Examinar para explorar el directorio de la imagen de arranque. Se creará y se seleccionará automáticamente el directorio por defecto /tftpboot. Instalación remota 43 6 Haga clic en Finalizar para aplicar la configuración e iniciar el servidor. Configuración manual de un servidor TFTP 1 Inicie sesión como usuario root e instale los paquetes tftp y xinetd. 2 Si no están disponibles, cree los directorios /srv/tftpboot y /srv/ tftpboot/pxelinux.cfg. 3 Añada los archivos correspondientes necesarios para la imagen de arranque como se describe en la Sección 1.3.3, “Arranque en PXE” (p. 44). 4 Modifique la configuración de xinetd, que se encuentra en /etc/xinetd.d/ para asegurarse de que el servidor tftp se inicie durante el arranque: a Si no existe, cree un archivo de nombre tftp en este directorio mediante touch tftp. A continuación, ejecute chmod 755 tftp. b Abra el archivo tftp y añada las siguientes líneas: service tftp { socket_type protocol wait user server server_args disable } = = = = = = = dgram udp yes root /usr/sbin/in.tftpd -s /tftpboot no c Guarde el archivo y reinicie xinetd con rcxinetd restart. 1.3.3 Arranque en PXE En las especificaciones de Preboot Execution Environment (PXE) (ftp://download .intel.com/labs/manage/wfm/download/pxespec.pdf) se incluye alguna información técnica de fondo así como las especificaciones completas de PXE. 44 1 Cambie al directorio del repositorio de la instalación y copie los archivos linux, initrd, message y memtest en el directorio /srv/tftpboot introduciendo lo siguiente: cp -a boot/loader/linux boot/loader/initrd boot/loader/message boot/loader/memtest /srv/tftpboot 2 Instale el paquete syslinux directamente desde los CDs o DVDs de instalación con YaST. 3 Copie el archivo /usr/share/syslinux/pxelinux.0 en el directorio /srv/tftpboot introduciendo lo siguiente: cp -a /usr/share/syslinux/pxelinux.0 /srv/tftpboot 4 Cambie al directorio del repositorio de la instalación y copie el archivo isolinux.cfg en el directorio /srv/tftpboot/pxelinux.cfg/ default introduciendo lo siguiente: cp -a boot/loader/isolinux.cfg /srv/tftpboot/pxelinux.cfg/default 5 Edite el archivo /srv/tftpboot/pxelinux.cfg/default y elimine las líneas que comiencen por gfxboot, readinfo y framebuffer. 6 Añada las siguientes entradas en las líneas append de las etiquetas por defecto failsafe y apic: insmod=e100 Mediante esta entrada, se carga en los clientes PXE el módulo del núcleo para tarjetas de red de 100 MBits/s de Intel. Esta entrada depende del hardware del cliente y debe adaptarse en consecuencia. En caso de utilizar una tarjeta de red GigaBit de Broadcom, la entrada debería ser insmod=bcm5700. netdevice=eth0 Esta entrada define la interfaz de red del cliente que debe utilizarse para la instalación en red. Sólo es necesaria si el cliente dispone de varias tarjetas de red y debe adaptarse en consecuencia. En el caso de que sólo se disponga de una tarjeta de red, esta entrada debe omitirse. install=nfs://ip_servidorinst/via_fuenteinst/CD1 Esta entrada define el servidor NFS y la fuente de la instalación para la instalación del cliente. Sustituya ip_servidorinst por la dirección IP real Instalación remota 45 del servidor de la instalación. via_fuenteinst debe sustituirse por la vía real a las fuentes de la instalación. Las direcciones de las fuentes HTTP, FTP y SMB son similares, excepto en el prefijo del protocolo, que debe ser http, ftp o smb. IMPORTANTE Si necesita pasar otras opciones de arranque a las rutinas de instalación, tales como parámetros de inicio de VNC o SSH, añádalas a la entrada install. En la Sección 1.4, “Arranque del sistema de destino para la instalación” (p. 51) se ofrece un resumen de los parámetros y algunos ejemplos. A continuación se incluye un ejemplo de archivo /srv/tftpboot/pxelinux.cfg/default. Ajuste el prefijo del protocolo de la fuente de la instalación para que se corresponda con la configuración de la red, y especifique el método que prefiera para conectarse al instalador añadiendo las opciones vnc y vncpassword o ssh y sshpassword a la entrada install. Las líneas separadas por \ deben introducirse en una sola línea, sin salto de línea y sin \. default linux # default label linux kernel linux append initrd=initrd ramdisk_size=65536 insmod=e100 \ install=nfs://ip_instserver/path_instsource/product # failsafe label failsafe kernel linux append initrd=initrd ramdisk_size=65536 ide=nodma apm=off acpi=off \ insmod=e100 install=nfs://ip_instserver/path_instsource/product # apic label apic kernel linux append initrd=initrd ramdisk_size=65536 apic insmod=e100 \ install=nfs://ip_instserver/path_instsource/product # manual label manual kernel linux append initrd=initrd ramdisk_size=65536 manual=1 46 # rescue label rescue kernel linux append initrd=initrd ramdisk_size=65536 rescue=1 # memory test label memtest kernel memtest # hard disk label harddisk kernel linux append SLX=0x202 implicit display prompt timeout 0 message 1 100 Sustituya ip_servidorinst y via_fuenteinst por los valores correspondientes a su configuración. La siguiente sección sirve como breve referencia de las opciones de PXELINUX utilizadas en esta configuración. Hay más información sobre las opciones disponibles en la documentación del paquete syslinux que se encuentra en /usr/ share/doc/packages/syslinux/. 1.3.4 Opciones de configuración de PXELINUX A continuación aparecen algunas de las opciones disponibles para el archivo de configuración de PXELINUX. DEFAULT opciones del núcleo... Establece la línea de comandos del núcleo por defecto. Si PXELINUX arranca de manera automática, actúa como si las entradas posteriores a DEFAULT se hubieran escrito en el indicador de inicio, excepto la opción auto que se añade de manera automática, lo que indica un arranque automático. Si no hay ningún archivo de configuración o ninguna entrada DEFAULT en el archivo de configuración, el valor por defecto es el nombre del núcleo “linux”, sin opciones. Instalación remota 47 APPEND opciones... Añada una o más opciones a la línea de comandos del núcleo. Éstas se añaden para arranques automáticos y manuales. Las opciones se añaden al principio de la línea de comandos del núcleo, y normalmente admiten que las opciones del núcleo introducidas explícitamente las sobrescriban. LABEL etiqueta KERNEL imagen APPEND opciones... Indica que si se introduce etiqueta como el núcleo que se arrancará, PXELINUX debe arrancar imagen en su lugar, y utilizar las opciones APPEND especificadas en lugar de las indicadas en el apartado global del archivo (antes del primer comando LABEL). El valor por defecto de imagen es el mismo que label y, si no se introduce ningún APPEND, el valor por defecto consiste en utilizar la entrada global (si hubiera alguna). Se permiten hasta 128 entradas LABEL. Tenga en cuenta que GRUB utiliza la siguiente sintaxis: title mytitle kernel mi_nucleo mis_opciones_del_nucleo initrd miinitrd mientras que PXELINUX utiliza la siguiente: label mietiqueta kernel minucleo append misopciones Las etiquetas se truncan como si fueran nombres de archivo, y deben ser únicas después del truncamiento. Por ejemplo, dos etiquetas como “v2.1.30” y “v2.1.31” no podrán distinguirse en PXELINUX porque ambas se truncan con el mismo nombre de archivo de DOS. No es necesario que el núcleo sea un núcleo de Linux; puede ser un sector de arranque o un archivo COMBOOT. APPEND Sin nada añadido. Se puede utilizar APPEND con un solo guión como argumento en un apartado LABEL para sobrescribir un APPEND global. LOCALBOOT tipo En PXELINUX, especificar LOCALBOOT 0 en lugar de una opción de KERNEL significa la invocación de esa etiqueta en particular y provoca un arranque del disco local en lugar de un arranque del núcleo. 48 Argumento Descripción 0 Realiza un arranque normal 4 Realiza un arranque local con el controlador Universal Network Driver Interface (UNDI) aún residente en memoria 5 Realiza un arranque local con el stack de PXE completo, incluido el controlador UNDI, aún residente en memoria Los demás valores no están definidos. Si desconoce los stacks UNDI o PXE, especifique 0. TIMEOUT tiempo límite Indica cuánto tiempo deberá esperar en el indicador de inicio antes de arrancar automáticamente, en décimas de segundo. El tiempo límite queda cancelado si el usuario pulsa alguna tecla, en cuyo caso se asume que será éste quien complete el comando iniciado. Un tiempo límite de cero inhabilita la opción de tiempo límite (es el ajuste por defecto). El máximo valor posible para el valor del tiempo límite es de 35996 (algo menos de una hora). PROMPT valor_de_indicador Si valor de indicador es 0, muestra el indicador de inicio sólo si se pulsan las teclas Shift o Alt o si están activados Bloq Mayús o Bloq Despl (es la opción por defecto). Si valor_de_indicador es 1, siempre se muestra el indicador de inicio. F1 nombre_de_archivo F2 nombre_de_archivo ... F9 nombre_de_archivo F10nombre_de_archivo Muestra en la pantalla el archivo indicado cuando se pulsa una tecla de función en el indicador de inicio. También se puede utilizar para implementar una ayuda en línea para antes del arranque (normalmente para las opciones de la línea de comandos del núcleo). Por compatibilidad con versiones anteriores, F10 también puede intro- Instalación remota 49 ducirse como a F11 ni F12 . F0 . Tenga en cuenta que no es posible asociar nombres de archivos 1.3.5 Preparación del sistema de destino para arranque en PXE Prepare el BIOS del sistema para arranque en PXE incluyendo la opción de PXE en el orden de arranque del BIOS. AVISO No coloque la opción de PXE por encima de la opción de arranque desde disco duro en el BIOS. De lo contrario, el sistema intentaría reinstalarse cada vez que lo arrancara. 1.3.6 Preparación del sistema de destino para Wake on LAN Wake on LAN (WOL) necesita que se habilite la opción correspondiente del BIOS antes de la instalación. Además, es necesario tomar nota de la dirección MAC del sistema de destino. Este dato es necesario para iniciar Wake on LAN. 1.3.7 Wake on LAN Wake on LAN permite conectar una máquina mediante el envío de un paquete de red especial que contiene la dirección MAC de la máquina. Dado que los identificadores MAC deben ser únicos para cada máquina, no hay que preocuparse por la conexión accidental de la máquina que no es. IMPORTANTE Si la máquina de control no se encuentra en el mismo segmento de red que el destino de la instalación que debe encenderse, configure las peticiones WOL para que se envíen como multidifusión o bien controle remotamente una má- 50 quina de dicho segmento de red para que actúe como remitente de las peticiones. 1.3.8 Wake on LAN manual 1 Inicie sesión como usuario root. 2 Inicie YaST → Instalar/desinstalar software e instale el paquete netdiag. 3 Abra un terminal e introduzca el siguiente comando como usuario root para encender el destino. ether-wakemac_del_destino Sustituya mac_del_destino por la dirección MAC real del destino. 1.4 Arranque del sistema de destino para la instalación Existen básicamente dos maneras diferentes de personalizar el proceso de arranque para la instalación además de las mencionadas en la Sección 1.3.7, “Wake on LAN” (p. 50) y en la Sección 1.3.3, “Arranque en PXE” (p. 44). Es posible utilizar las opciones de arranque por defecto y las teclas de función o bien utilizar las opciones del menú de opciones de arranque de la pantalla de arranque de la instalación para pasar las opciones de arranque que el núcleo de la instalación pueda necesitar para este hardware en concreto. 1.4.1 Uso de las opciones de arranque por defecto Las opciones de arranque se describen con detalles en el Capítulo Instalación mediante YaST (↑Inicio). Instalación remota 51 En general, el proceso de arranque de la instalación se inicia con sólo seleccionar Instalación. Si aparece algún problema, las opciones Instalación—ACPI inhabilitado e Installation—Ajustes seguros pueden resultar útiles. Para obtener más información acerca de solución de problemas durante el proceso de instalación, consulte la Sección “Problemas de instalación” (Capítulo 9, Problemas comunes y sus soluciones, ↑Inicio). 1.4.2 Uso de las teclas de función La barra de menú de la parte inferior de la pantalla ofrece algunas funciones avanzadas que son necesarias en determinadas configuraciones. Mediante las teclas de función es posible especificar opciones adicionales que se pasarán a las rutinas de instalación sin tener que conocer la sintaxis detallada de dichos parámetros que sería necesaria para introducirlos como opciones de arranque (consulte la Sección 1.4.3, “Uso de opciones de arranque personalizadas” (p. 53)). Consulte la siguiente tabla para ver las opciones disponibles. Tabla 1.1 Teclas de función durante la instalación Tecla Finalidad Opciones disponi- Valor por defecto bles F1 Obtener ayuda Ninguna F2 Seleccionar el idio- Todos los idiomas ma de la instalación admitidos F3 Cambiar la resolución de la pantalla para la instalación • Modo de texto • VESA • resolución n.º 1 • resolución n.º 2 52 Ninguno Inglés • El valor por defecto depende del hardware para gráficos instalado Tecla Finalidad Opciones disponi- Valor por defecto bles • ... F4 Seleccionar la fuente de la instalación • CDROM/DVD CD-ROM/DVD • SLP • FTP • HTTP • NFS • SMB • Disco duro F5 Utilizar un disco de Controlador actualización para un controlador Ninguno 1.4.3 Uso de opciones de arranque personalizadas El uso de las opciones de arranque adecuadas facilita el procedimiento de instalación. Muchos parámetros también pueden configurarse con posterioridad mediante las rutinas de linuxrc, pero el uso de opciones de arranque es más sencillo. En algunas configuraciones automáticas, las opciones de arranque pueden incorporarse con initrd o con un archivo info. La siguiente tabla muestra las situaciones de instalación comentadas en el presente capítulo junto con los parámetros necesarios para el arranque y las correspondientes opciones de arranque. Simplemente añádalas en el orden que aparecen en la tabla para Instalación remota 53 obtener una cadena de opciones de arranque que se pasará a las rutinas de instalación. Por ejemplo (en una sola línea): install=... netdevice=... hostip=...netmask=... vnc=... vncpassword=... Sustituya todos los valores (...) de la cadena con los valores correspondientes de su configuración. Tabla 1.2 Situaciones de instalación (arranque) descritas en este capítulo Situaciones de instalación Parámetros necesarios Opciones de arranque para el arranque No se necesita ninguna Capítulo Instalación me- Ninguno: el sistema arranca automáticamendiante YaST (↑Inicio) te 54 Sección 1.1.1, “Instalación remota sencilla mediante VNC — Configuración de red estática” (p. 22) • Ubicación del servidor de la instalación • Dispositivo de red • Dirección IP • Máscara de red • Gateway • Habilitación de VNC • Contraseña de VNC • install=(nfs,http, ftp,smb)://via_a _mediosinst Sección 1.1.2, “Instalación remota sencilla mediante VNC — Configuración de red dinámica mediante DHCP” (p. 23) • Ubicación del servidor de la instalación • Habilitación de VNC • install=(nfs,http, ftp,smb)://via_a _mediosinst • vnc=1 • netdevice=algun _dispositivo_de _red (sólo es necesario si hay varios dispositivos de red disponibles) • hostip=alguna_ip • netmask=alguna _mascara_de_red • gateway=gateway_ip • vnc=1 • vncpassword=alguna _contraseña Situaciones de instalación Parámetros necesarios Opciones de arranque para el arranque • Contraseña de VNC • vncpassword=alguna _contraseña Sección 1.1.3, “Instalación remota mediante VNC — Arranque en PXE y Wake on LAN” (p. 25) • Ubicación del servi- No aplicable; el proceso se dor de la instalagestiona mediante PXE y ción DHCP • Ubicación del servidor TFTP • Habilitación de VNC • Contraseña de VNC Sección 1.1.4, “Instalación remota sencilla mediante SSH — Configuración de red estática” (p. 26) • Ubicación del servidor de la instalación • Dispositivo de red • Dirección IP • Máscara de red • Gateway • Habilitación de SSH • Contraseña SSH • install=(nfs,http, ftp,smb)://via_a _mediosinst Sección 1.1.5, “Instalación remota sencilla mediante SSH — Configura- • Ubicación del servidor de la instalación • install=(nfs,http, ftp,smb)://via_a _mediosinst • netdevice=algun _dispositivo_de _red (sólo es necesario si hay varios dispositivos de red disponibles) • hostip=alguna_ip • netmask=alguna _mascara_de_red • gateway=gateway_ip • usessh=1 • sshpassword=alguna _contraseña Instalación remota 55 Situaciones de instalación Parámetros necesarios Opciones de arranque para el arranque ción de red dinámica mediante DHCP” (p. 28) • Habilitación de SSH • Contraseña SSH • usessh=1 • sshpassword=alguna _contraseña Sección 1.1.6, “Instalación remota mediante SSH — Arranque en PXE y Wake on LAN” (p. 29) • Ubicación del servi- No aplicable; el proceso se dor de la instalagestiona mediante PXE y ción DHCP • Ubicación del servidor TFTP • Habilitación de SSH • Contraseña SSH SUGERENCIA Hay más información sobre las opciones de arranque de linuxrc que se utilizan para arrancar sistemas Linux en /usr/share/doc/packages/linuxrc/ linuxrc.html. 1.5 Monitorización del proceso de instalación Existen varias opciones para monitorizar de manera remota el proceso de instalación. Si se especifican las opciones de arranque adecuadas durante el arranque para la instalación, se puede utilizar VNC o bien SSH para controlar la instalación y la configuración del sistema desde una estación de trabajo remota. 56 1.5.1 Instalación de VNC Mediante cualquier software para la visualización de VNC es posible controlar de forma remota la instalación de SUSE Linux desde prácticamente cualquier sistema operativo. En esta sección se describe la configuración cuando se utiliza una aplicación para la visualización de VNC o un navegador Web. Preparación para la instalación con VNC Todo lo que hay que hacer en el destino de la instalación para prepararlo para una instalación con VNC es incorporar las opciones de arranque correspondientes en el arranque para la instalación inicial (consulte la Sección 1.4.3, “Uso de opciones de arranque personalizadas” (p. 53)). El sistema de destino arranca en un entorno basado en texto y espera a que un cliente VNC se conecte al programa de instalación. El programa de instalación anuncia la dirección IP y el número de pantalla a los que es necesario conectarse para la instalación. Si se tiene acceso físico al sistema de destino, esta información se introduce inmediatamente después de que el sistema arranque para la instalación. Introduzca los datos cuando el software cliente VNC los solicite, así como la contraseña VNC. Dado que el destino de la instalación se anuncia a sí mismo mediante OpenSLP, es posible obtener información de la dirección del destino de la instalación a través de un navegador SLP, sin necesidad de acceder físicamente a la instalación en sí, siempre y cuando la configuración de la red y todas las máquinas admitan OpenSLP: 1 Inicie el navegador de archivos y Web de KDE Konqueror. 2 Introduzca service://yast.installation.suse en la barra de direcciones. El sistema de destino aparecerá como un icono en la pantalla de Konqueror. Al hacer clic en este icono se iniciará el visualizador de VNC de KDE, en el cual se realizará la instalación. También es posible ejecutar el software de visualización de VNC que prefiera con la dirección IP indicada y añadiendo :1 al final de la dirección IP de la pantalla en la que se esté ejecutando la instalación. Instalación remota 57 Conexión al programa de instalación Existen básicamente dos maneras de conectarse al servidor VNC (en este caso, el destino de la instalación). Es posible iniciar una aplicación para la visualización de VNC independiente en cualquier sistema operativo o bien conectarse mediante un navegador Web con Java habilitado. Gracias a VNC es posible controlar la instalación de un sistema Linux desde cualquier otro sistema operativo, incluidas otras versiones de Linux, Windows y Mac OS. En una máquina Linux, asegúrese de que el paquete tightvnc se encuentra instalado. En una máquina Windows, instale el puerto Windows de esta aplicación, que puede obtenerse en la página principal de TightVNC (http://www.tightvnc.com/ download.html). Para conectarse al programa de instalación que se ejecuta en la máquina de destino, siga estos pasos: 1 Inicie el visualizador de VNC. 2 Introduzca la dirección IP y el número de pantalla del destino de la instalación ofrecido por el navegador SLP o por el propio programa de instalación. dirección_ip:numero_de_pantalla Se abrirá una ventana en el escritorio con las pantallas de YaST como en una instalación local normal: El uso de un navegador Web para conectarse al programa de instalación evita la dependencia de un software de VNC y del sistema operativo en el que se ejecute. Es posible utilizar cualquier navegador (Firefox, Konqueror, Internet Explorer, Opera etc.) para realizar la instalación del sistema Linux, con tal de que la aplicación de navegación tenga Java habilitado. Para realizar una instalación con VNC, siga estos pasos: 1 Inicie el navegador Web que prefiera. 58 2 Introduzca lo siguiente como dirección: http://direccion_ip_del_destino:5801 3 Introduzca la contraseña de VNC cuando se le pida. La ventana del navegador mostrará las pantallas de YaST como en una instalación local normal. 1.5.2 Instalación con SSH Gracias a SSH, es posible controlar de forma remota la instalación de la máquina Linux mediante cualquier software cliente de SSH. Preparación para la instalación con SSH Aparte de la instalación de los paquetes de software correspondientes (OpenSSH para Linux y PuTTY para Windows), sólo es necesario pasar las opciones de arranque apropiadas para habilitar SSH para la instalación. Para obtener más detalles, consulte la Sección 1.4.3, “Uso de opciones de arranque personalizadas” (p. 53). OpenSSH se instala por defecto en todos los sistemas operativos basados en SUSE Linux. Conexión al programa de instalación 1 Obtenga la dirección IP del destino de la instalación. Si se tiene acceso físico a la máquina de destino, puede tomar la dirección IP que las rutinas de instalación muestran en la consola tras el arranque inicial. También es posible tomar la dirección IP asignada a este host en particular en la configuración del servidor DHCP. 2 En la línea de comandos, introduzca el comando siguiente: ssh -X root@direccion_ip_del_destino Sustituya direccion_ip_del_destino por la dirección IP real del destino de la instalación. 3 Cuando se pida un nombre de usuario, introduzca root. Instalación remota 59 4 Cuando se pida una contraseña, introduzca la contraseña establecida mediante la opción de arranque de SSH. Una vez realizada correctamente la autenticación, aparecerá un indicador de línea de comandos para el destino de la instalación. 5 Introduzca yast para iniciar el programa de instalación. Se abrirá una ventana que mostrará las pantallas normales de YaST como se describe en Capítulo Instalación mediante YaST (↑Inicio). 60 Configuración avanzada de disco 2 Las configuraciones avanzadas del sistema requieren configuraciones de disco concretas. Para que la denominación de los dispositivos sea coherente con la de los dispositivos SCSI, utilice un guión de inicio específico. La LVM (Gestión lógica de volúmenes) es un esquema de partición de discos diseñado para ser mucho más flexible que la partición física utilizada en las configuraciones estándar. Su funcionalidad instantánea le permite crear de forma sencilla copias de seguridad de los datos. La RAID (Matriz redundante de discos independientes) ofrece una integridad de los datos, un rendimiento y una tolerancia a fallos mayores. 2.1 Nombres de dispositivos permanentes para dispositivos SCSI Los dispositivos SCSI tales como las particiones del disco duro reciben de forma más o menos dinámica nombres de archivo de dispositivo durante el arranque. Esto no supone ningún problema siempre que no se modifique el número o la configuración del dispositivo. No obstante, si se incorpora al sistema un nuevo disco duro SCSI y el kernel lo detecta antes que al disco duro que ya existía, el antiguo disco duro recibe un nuevo nombre y ya no va a concordar con las entradas de la tabla /etc/fstab. Este problema puede evitarse con el script de arranque del sistema boot.scsidev. El script puede activarse por medio del comando /sbin/insserv y los parámetros de arranque necesarios se guardan en el archivo /etc/sysconfig/scsidev. A Configuración avanzada de disco 61 continuación, el script /etc/rc.d/boot.scsidev define nombres de dispositivo permanentes en el directorio /dev/scsi/, que pueden utilizarse en el archivo /etc/ fstab. Si se debe emplear nombres de dispositivo permanentes, es posible definirlos en el archivo /etc/scsi.alias. Vea también el comando man scsidev. En el modo experto del editor de niveles de ejecución, debe activar boot.scsidev para la fase B a fin de que se creen en /etc/init.d/boot.d los enlaces necesarios para que los nombres permanentes sean generados durante el proceso de arranque. SUGERENCIA: Nombres de dispositivo y udev Aunque boot.scsidev se sigue soportando en SUSE Linux, se recomienda utilizar udev en la medida de lo posible para generar nombres de dispositivo permanentes. udev se encarga de realizar las entradas en /dev/by-id/. 2.2 Configuración de LVM Esta sección describe brevemente los principios en los que se basa LVM así como las características básicas que lo convierten en una útil herramienta con muchas aplicaciones. Consulte la configuración de LVM con YaST en la Sección 2.2.2, “Configuración de LVM con YaST” (p. 64). AVISO El empleo de LVM puede estar asociado con situaciones de riesgo, tales como pérdida de datos. Los bloqueos de aplicaciones, cortes de alimentación y ejecución de comandos erróneos son también una fuente de riesgo. Le recomendamos que realice una copia de seguridad antes de implementar LVM o reconfigurar los volúmenes. No ejecute nunca estas operaciones si no dispone de una copia de sus datos. 2.2.1 El gestor de volúmenes lógicos (LVM) El gestor de volúmenes lógicos (Logical Volume Manager o LVM) permite distribuir el espacio del disco de forma flexible en diferentes sistemas de archivos. El LVM se desarrolló por la dificultad que supone modificar las particiones en un sistema en ejecución. LVM pone en común un depósito o pool virtual (Volume Group – abreviado 62 VG) de espacio en disco. De este VG se forman los volúmenes lógicos en caso necesario. El sistema operativo accede entonces a éstos en lugar de a las particiones físicas. Los VGs se pueden extender por varios discos, de tal forma que un solo VG puede estar constituido por más de una unidad o partes de ellas. Así, el LVM proporciona un cierto nivel de abstracción en relación al espacio físico del disco que permite que su organización pueda ser modificada de una forma mucho más fácil y segura que un reparticionamiento físico. Puede encontrar información adicional a este respecto en la “Tipos de partición” (Capítulo 1, Instalación mediante YaST, ↑Inicio) y la Sección “Particionamiento” (Capítulo 3, Configuración del sistema con YaST, ↑Inicio) Figura 2.1 Particionamiento físico frente a LVM DISCO PART. PART. DISCO 1 PART. PART. PART. DISCO 2 PART. PART. VG 1 MP MP MP PART. VG 2 LV 1 LV 2 LV 3 LV 4 MP MP MP MP En la Figura 2.1, “Particionamiento físico frente a LVM” (p. 63) puede encontrar una comparación entre el particionamiento físico (izquierda) y el uso del LVM (derecha). En el lado izquierdo, se ha dividido un solo disco en tres particiones físicas (PART), con un punto de montaje (MP) para cada una, de tal forma que el sistema operativo pueda acceder a ellas. A la derecha, se han dividido dos discos en dos y tres particiones físicas cada uno. Se han definido dos grupos de volúmenes LVM (VG 1 y VG 2).VG 1 contiene dos particiones del disco DISK 1 y una del DISK 2. VG 2 emplea las dos particiones restantes del DISK 2. En LVM, las particiones físicas que son incorporadas a un grupo de volúmenes se denominan volúmenes físicos (Physical volume, PV). Dentro de los grupos de volúmenes se han definido cuatro volúmenes lógicos (desde LV 1 hasta LV 4). Estos volúmenes pueden emplearse por el sistema operativo mediante los puntos de montaje asociados. La línea divisoria entre los diferentes volúmenes lógicos no tiene por qué coincidir con la división de una partición. Por ejemplo, fíjese en el límite entre LV 1 y LV 2 que se muestra en este ejemplo. Características de LVM: Configuración avanzada de disco 63 • Es posible juntar varias particiones o discos para formar una gran partición lógica. • Si un LV se queda (por ejemplo /usr) sin espacio, es posible aumentar su tamaño si está correctamente configurado. • LVM permite añadir discos duros o LV incluso cuando el sistema está en marcha. Esto requiere, evidentemente, hardware que se pueda cambiar en caliente (hot swap). • Es posible utilizar varios discos duros en modo RAID 0 (striping) con el consiguiente incremento de rendimiento. • La función snapshot permite, sobre todo en servidores, realizar copias de seguridad coherentes mientras el sistema está en funcionamiento. El uso de LVM vale la pena ya a partir de PCs domésticos muy utilizados o en servidores pequeños. LVM resulta ideal para un volumen de datos creciente como por ejemplo en el caso de bases de datos, archivos de música, directorios de usuarios, etc. En tal caso es posible configurar sistemas de archivos más grandes que un solo disco duro. Otra ventaja del LVM es la de poder crear hasta 256 LVs. Sin embargo, es importante considerar que el trabajo con el LVM se diferencia mucho del trabajo con particiones convencionales. Puede encontrar información en inglés sobre la configuración del “Logical Volume Manager” (LVM) en el HowTo oficial de LVM http://tldp .org/HOWTO/LVM-HOWTO/. Con la versión 2.6 del kernel, LVM se ha actualizado a la versión 2. Esta versión, que es compatible con la versión previa de LVM, puede seguir administrando grupos de volúmenes ya existentes. LVM 2 no necesita parches del kernel y utiliza el mapeador de dispositivos (device mapper) integrado en el kernel 2.6. A partir de este kernel, LVM sólo puede utilizarse en su versión 2. Por este motivo, cuando en el capítulo se habla de LVM nos referimos siempre a la versión 2 de LVM. 2.2.2 Configuración de LVM con YaST La configuración de LVM mediante YaST se activa desde el módulo correspondiente de YaST (consulte la Sección “Particionamiento” (Capítulo 3, Configuración del sistema con YaST, ↑Inicio)). Esta herramienta profesional de particionamiento le permite editar particiones ya existentes, borrarlas o crear nuevas particiones. Desde aquí puede utilizar la opción Crear → No formatear y allí escoja el punto 0X8e Linux LVM. Después de 64 crear todas las particiones que se utilizarán por LVM, pulse sobre LVM para iniciar la configuración LVM. Creación de grupos de volúmenes (VG) Si aún no se ha creado ningún VG aparecerá una ventana que pide su creación (ver la Figura 2.2, “Creación de un grupo de volúmenes” (p. 65)). La propuesta para el nombre del VG que albergará los datos del sistema SUSE Linux es el nombre system. El valor Physical Extent Size (abreviado PE size) determina el tamaño de un volumen físico dentro del grupo de volúmenes. Todo el espacio físico correspondiente a un grupo de volúmenes se gestiona a partir de este tamaño. Este valor se sitúa normalmente en 4 megabytes y permite 256 gigabytes como tamaño máximo para un volumen físico y lógico. No aumente el PE size (por ejemplo a 8, 16 ó 32 megabytes), si no necesita volúmenes lógicos más grandes de 256 gigabytes. Figura 2.2 Creación de un grupo de volúmenes LVM: configuración de los volúmenes físicos La siguiente ventana muestra todas las particiones de los tipos “Linux LVM” o “Linux native” (no se muestra ninguna partición DOS o de intercambio (swap)). En el caso de las particiones que ya forman parte del grupo de volúmenes, la lista muestra el nombre del grupo de volúmenes al que pertenecen. Las particiones no asignadas están marcadas con “--”. Configuración avanzada de disco 65 Se puede cambiar el grupo de volúmenes sobre el que se trabaja en la ventana de selección que se encuentra en la parte superior izquierda. Con los botones de la parte superior derecha se pueden crear nuevos grupos de volúmenes y eliminar los ya existentes. Sin embargo, sólo se pueden eliminar los VGs que no estén asignados a ninguna partición. Una partición asignada a un VG se denomina volumen físico (Physical Volume o PV). Figura 2.3 Configuración de los volúmenes físicos Para añadir una partición aún no asignada al grupo de volúmenes seleccionado, se debe elegir primero la partición y pulsar después el botón Añadir volumen debajo de la lista de particiones. El nombre del grupo de volúmenes aparecerá entonces junto a la partición seleccionada. Todas las particiones previstas para LVM deben ser asignadas a un grupo de volúmenes para aprovechar todo el espacio en el disco. No se puede salir del diálogo antes de haber asignado al menos un volumen físico a cada grupo de volúmenes. Una vez finalizado el proceso, pulse sobre Siguiente para proceder a la configuración de los volúmemes lógicos. Configuración de los volúmenes lógicos Una vez que un grupo de volúmenes ha sido completado por volúmenes físicos, ha de definir qué volúmenes lógicos debe utilizar el sistema operativo. Seleccione el grupo de volúmenes deseado en la lista ubicada en la parte superior izquierda. Aquí también 66 se muestra el espacio libre del grupo escogido. Esta lista contiene todos los volúmenes lógicos incluidos en el grupo. Asimismo, incluye todas las particiones normales de Linux que ya tienen un punto de anclaje asignado, todas las particiones de swap y todos los volúmenes lógicos ya existentes. Añada, modifique o elimine los volúmenes lógicos según sus necesidades. Asigne al menos un volumen lógico a cada grupo de volúmenes. Figura 2.4 Administración de volúmenes lógicos Para crear un nuevo volumen lógico, emplee el botón Añadir, indicando el tamaño, el tipo de sistema de archivos y el punto de anclaje. Sobre un volumen lógico se crea normalmente un sistema de archivos (por ejemplo reiserfs, ext2) y se asigna un punto de anclaje. Este es el punto de acceso para llegar posteriormente a los datos que se guardan sobre este volumen lógico. Asimismo, es posible distribuir el flujo de datos en los volúmenes lógicos entre varios volúmenes físicos (striping). Si los volúmenes físicos residen en varios discos duros, se observará generalmente un aumento en las prestaciones de lectura y escritura de datos (tal como con RAID 0). Sin embargo, un LV con n bandas sólo puede crearse correctamente cuando el espacio de disco requerido por el LV puede distribuirse de forma uniforme en n volúmenes físicos. Si sólo están disponibles dos PVs, un LV con 3 bandas no sería viable. Configuración avanzada de disco 67 AVISO: Striping YaST no es capaz en este instante de verificar la exactitud de las entradas relacionadas con el striping. Cualquier error que se cometa en este punto sólo podrá advertirse cuando el LVM sea implementado en el disco. Figura 2.5 Creación de volúmenes lógicos Si ya ha configurado LVM en el sistema, puede proceder seguidamente a introducir los volúmenes lógicos existentes. Antes de ello, asigne a cada uno de ellos un punto de montaje apropiado. Pulse sobre Siguiente para regresar a YaST y finalizar el proceso de particionamiento. Gestión directa LVM Si ya ha configurado LVM y únicamente desea modificar algún aspecto, existe una alternativa para ello. Seleccione Sistema → LVM desde el centro de control de YaST. Este cuadro de diálogo le permite básicamente llevar a cabo las mismas acciones que las descritas anteriormente con la excepción del particionamiento físico. Esta opción 68 muestra los volúmenes físicos y lógicos existentes agrupados en dos listas y le permite gestionar su sistema LVM empleando los métodos mencionados previamente. 2.3 Configuración de RAID de software El propósito de RAID (Formación redundante de discos económicos) es combinar varias particiones de disco duro en un disco duro virtual para optimizar el rendimiento, la seguridad de los datos o ambas cosas. Con este método, sin embargo, una ventaja se sacrifica por la otra. La mayoría de controladores RAID utilizan el protocolo SCSI porque llega a un número mayor de discos duros de un modo más eficaz que el protocolo IDE y es más adecuado para el procesamiento paralelo de comandos. Hay algunos controladores RAID que admiten discos duros IDE o SATA. Consulte la base de datos de hardware en http://cdb.suse.de. 2.3.1 RAID de software Como un controlador RAID, que a menudo puede ser bastante caro, el RAID de software también es capaz de llevar a cabo estas tareas. SUSE Linux ofrece la opción de combinar varios discos duros en un sistema RAID de software con la ayuda de YaST: una alternativa muy razonable al RAID de hardware. RAID implica varias estrategias para combinar varios discos duros en un sistema RAID, cada una de las cuales tiene diferentes objetivos, ventajas y características. Las variaciones se denominan normalmente niveles de RAID. Los niveles normales de RAID son: RAID 0 Este nivel mejora el rendimiento del acceso a los datos difundiendo los bloques de cada archivo por varias unidades de disco. En realidad, no se trata de un RAID, porque no proporciona copias de seguridad de los datos, pero el nombre RAID 0 para este tipo de sistema se ha convertido en la norma. Con RAID 0, se agrupan dos o más discos duros. El rendimiento es muy bueno, pero el sistema RAID se destruye y los datos se pierden sólo con que falle un disco duro. Configuración avanzada de disco 69 RAID 1 Este nivel proporciona una seguridad adecuada para los datos, porque éstos se copian en otro disco duro 1:1. Esto se denomina copia de discos duros en espejo. Si se destruye un disco, se podrá conseguir una copia de su contenido en otro. Todos ellos excepto uno podrían resultar dañados sin poner los datos en peligro. La velocidad de escritura es un poco menor en el proceso de copia en comparación con el acceso a un único disco (de diez a veinte por ciento más lento), pero el acceso de lectura es notablemente más rápido con respecto a uno de los discos duros físicos normales, porque los datos se duplican de modo que se pueden escanear de forma paralela. En general, se puede decir que el nivel 1 proporciona casi el doble de velocidad de lectura y casi la misma velocidad de escritura de discos únicos. RAID 2 y RAID 3 Éstas no son implementaciones típicas de RAID. El nivel 2 distribuye los datos por bits en lugar de por bloques. El nivel 3 reparte los datos por bytes con un disco de paridad dedicado y no puede ocuparse de varias peticiones a la vez. Los dos niveles no se utilizan casi nunca. RAID 4 El nivel 4 distribuye los datos por bloques, como el nivel 0 combinado con un disco de paridad dedicado. En caso de que el disco de datos falle, se crea un disco de sustitución con los datos de paridad. Sin embargo, el disco de paridad puede obstaculizar el acceso de escritura. No obstante, el nivel 4 se utiliza a veces. RAID 5 El RAID 5 es un compromiso optimizado entre el Nivel 0 y el Nivel 1 en cuanto a rendimiento y seguridad de los datos. Un espacio de disco duro equivale al número de discos utilizados menos uno. Los datos se distribuyen por los discos duros como con RAID 0. Los bloques de paridad, creados en una de las particiones, tienen como finalidad proporcionar la seguridad. Se enlazan entre sí con XOR, lo que permite que el bloque de paridad correspondiente reconstruya el contenido mediante XOR en caso de que se produzca un fallo en el sistema. Con RAID 5, no puede fallar más de un disco duro a la vez. Si un disco duro falla, debe sustituirse en cuanto sea posible para evitar el riesgo de perder datos. Otros niveles de RAID Se han desarrollado algunos otros niveles de RAID (RAIDn, RAID 10, RAID 0+1, RAID 30, RAID 50, etc.), algunos de los cuales son implementaciones creadas por proveedores de hardware con derechos de propiedad. Estos niveles no están muy extendidos, de modo que no se explican aquí. 70 2.3.2 Configuración de RAID de software con YaST Desde la herramienta de particionamiento en modo avanzado de YaSt, se puede llegar a la configuración de RAID de software con YaST, como se describe en la Sección “Particionamiento” (Capítulo 3, Configuración del sistema con YaST, ↑Inicio). Esta herramienta profesional de particionamiento le permite editar y eliminar las particiones existentes y crear otras nuevas para que se utilicen con RAID de software. Con ella, puede crear particiones RAID: haga clic en Crear → No formatear y, a continuación, seleccione 0xFD Linux RAID como identificador de la partición. Para RAID 0 y RAID 1, se necesitan al menos dos particiones: para RAID 1, suelen ser exactamente dos. Si se utiliza RAID 5, se necesitan al menos tres particiones. Se recomienda tomar sólo particiones del mismo tamaño. Las particiones RAID deberían almacenarse en discos duros diferentes para disminuir el riesgo de perder datos si una de ellas no es correcta (RAID 1 y 5) y para optimizar el rendimiento de RAID 0. Después de crear todas las particiones que se van a utilizar con RAID, haga clic en RAID → Crear RAID para iniciar la configuración de RAID. En el cuadro de diálogo siguiente, elija entre los niveles de RAID 0, 1 y 5 (para obtener más información, consulte la Sección 2.3.1, “RAID de software” (p. 69)). Al hacer clic en Siguiente, el siguiente cuadro de diálogo muestra todas las particiones del tipo “Linux RAID” o “Linux native” (consulte la Figura 2.6, “Particiones RAID” (p. 72)). No se muestran intercambios ni particiones DOS. Si ya se ha asignado una partición a un volumen de RAID, el nombre del dispositivo RAID (por ejemplo, /dev/md0) aparece en la lista. Las particiones no asignadas se indican con “--”. Configuración avanzada de disco 71 Figura 2.6 Particiones RAID Para añadir una partición no asignada previamente al volumen RAID seleccionado, haga clic primero en la partición y, a continuación, en Añadir. En este momento, el nombre del dispositivo RAID se introduce al lado de la partición seleccionada. Asigne todas las particiones reservadas para RAID. De lo contrario, el espacio de la partición permanecerá inutilizado. Después de asignar todas las particiones, haga clic en Siguiente para continuar con el cuadro de diálogo de configuración en el que puede definir de un modo más preciso el rendimiento (consulte la Figura 2.7, “Configuración del sistema de archivos” (p. 73)). 72 Figura 2.7 Configuración del sistema de archivos Al igual que el particionamiento convencional, configure el sistema de archivos por utilizar y la codificación y el punto de montaje del volumen RAID. La selección de Superbloque persistente garantiza que las particiones RAID se reconozcan como tal al arrancar. Después de completar la configuración con Finalizar, compruebe el dispositivo /dev/md0 y los demás indicados con RAID en el particionamiento en modo avanzado. 2.3.3 Solución de problemas Compruebe el archivo /proc/mdstats para ver si se ha destruido una partición RAID. En caso de que el sistema falle, apague el sistema Linux y sustituya el disco duro por uno nuevo particionado del mismo modo. A continuación, reinicie el sistema e introduzca el comando mdadm /dev/mdX --add /dev/sdX. Sustituya "X" por sus propios identificadores de dispositivos. Esto integra el disco duro de forma automática en el sistema RAID y lo reconstruye completamente. Configuración avanzada de disco 73 2.3.4 Información adicional Las instrucciones de configuración y más información acerca del RAID de software se pueden encontrar en las ayudas en: • /usr/share/doc/packages/raidtools/Software-RAID.HOWTO .html • http://en.tldp.org/HOWTO/Software-RAID-HOWTO.html También están disponibles listas de correo de Linux RAID, como http://www .mail-archive.com/[email protected]. 74 Parte II. Internet Navegador Web Konqueror 3 Konqueror no es solamente un gestor de archivos versátil, sino que también es un moderno navegador Web. Si inicia el navegador desde el icono que aparece en el panel, Konqueror se abrirá con el perfil del navegador Web. Como navegador, Konqueror le permite navegar mediante pestañas, así como la posibilidad de guardar páginas Web con gráficos, contraseñas de Internet y marcadores. También es compatible con Java y JavaScript. Puede iniciar Konqueror desde el menú principal o escribiendo el comando konqueror. Para que se cargue una página Web, debe escribir la dirección, por ejemplo http:// www.suse.com, en la barra al efecto. Konqueror intentará conectarse a dicha dirección y mostrar la página. No es estrictamente necesario escribir el protocolo al principio de la dirección (en este caso, http://). El programa completa la dirección automáticamente, pero esto sólo funciona de forma fiable con las direcciones Web. Para escribir una dirección FTP, deberá escribir siempre ftp:// al principio del campo. Navegador Web Konqueror 77 Figura 3.1 Ventana del navegador Konqueror 3.1 Navegación mediante pestañas Si para navegar suele utilizar más de una página Web al mismo tiempo, la navegación mediante pestañas puede facilitarle la tarea de pasar de una página a otra. Podrá cargar sitios Web en pestañas independientes, pero todas ellas en una misma ventana. La principal ventaja reside en que así se tiene un mayor control sobre el escritorio porque sólo tendrá abierta una ventana principal. Cuando cierre sesión, la función de gestión de sesiones de KDE le permite guardar toda la sesión Web en Konqueror, por lo cual, la próxima vez que inicie sesión, Konqueror cargará exactamente las direcciones URL que visitó la última vez. Para abrir una pestaña nueva, seleccione Window → New Tab (Ventana - Nueva pestaña) o pulse Control + Shift + N . Para cambiar el funcionamiento de las pestañas, acceda a Settings → Configure Konqueror (Ajustes - Configurar Konqueror). En el cuadro de diálogo que se abre, seleccione Web Behavior → Tabbed Browsing (Comportamiento Web - Navegación mediante pestañas). Para abrir nuevas pestañas en lugar de nuevas ventanas, habilite Open links in new tab instead of in new window (Abrir enlaces en una nueva pestaña en lugar de en una nueva ventana). También puede ocultar la barra 78 de pestañas con la opción Hide the tab bar when only one tab is open (Ocultar barra de pestañas cuando sólo haya abierta una pestaña). Para ver más opciones, haga clic en Advanced Options (Opciones avanzadas). Si lo desea, puede guardar en un perfil las pestañas con las direcciones URL y la posición de la ventana. Es un procedimiento distinto del de la gestión de sesiones mencionado anteriormente. Con los perfiles, las pestañas se guardan y las tendrá a mano sin necesidad de perder tiempo en el inicio, como ocurre con la gestión de sesiones. En Konqueror, acceda a Settings → Configure View Profiles (Ajustes - Configurar perfiles de visualización) y asígnele un nombre al perfil. También puede guardar el tamaño de la ventana en el perfil con la opción pertinente. Asegúrese de que esté seleccionada la opción Save URLs in profile (Guardar direcciones URL en el perfil). Para aprobar la configuración, haga clic en Save (Guardar). La próxima vez que necesite acceder a su “colección de pestañas”, deberá hacer clic en Settings → Load View Profile (Ajustes - Cargar perfil de visualización) y buscar el nombre que aparece en la lista del menú. Cuando seleccione el nombre, Konqueror restablecerá las pestañas. 3.2 Guardado de gráficos y de páginas Web Al igual que en otros navegadores, Konqueror le permite guardar páginas Web. Para ello, seleccione Location → Save as (Sitio - Guardar como) y especifique el nombre del archivo HTML. Sin embargo, las imágenes no se guardan. Para guardar una página Web completa, incluidas las imágenes, debe seleccionar Tools → Archive Web Page (Herramientas - Archivar página Web). Konqueror sugiere un nombre de archivo que podrá aceptar si lo desea. El nombre de archivo acaba en .war, que es la extensión de los archivos Web de reserva. Para ver el archivo Web de reserva que ha guardado, bastará con que haga clic en el archivo que proceda y la página Web se mostrará en Konqueror junto con las imágenes. 3.3 Palabras clave de Internet Buscar en Internet con Konqueror es muy fácil. Konqueror define unos 70 filtros de búsqueda y todo ello con un acceso directo específico. Para buscar un tema concreto Navegador Web Konqueror 79 en Internet, deberá especificar el acceso directo y la palabra clave separados por dos puntos. Se mostrará la página pertinente con los resultados de la búsqueda. Para ver los accesos directos que ya estén definidos, acceda a Settings → Configure Konqueror (Ajustes - Configurar Konqueror). En el cuadro de diálogo que aparece, seleccione Web Shortcuts (Accesos directos para Web). Ahora podrá ver los nombres de los proveedores de búsquedas y los accesos directos. Konqueror establece muchos filtros de búsqueda: los motores de búsqueda “clásicos”, como Google, Yahoo y Lycos, y, además, una serie de filtros para propósitos menos habituales como, por ejemplo, una base de datos de acrónimos, una base de datos de películas en Internet o búsquedas de aplicaciones para KDE. Si no encuentra aquí su motor de búsqueda preferido, podrá establecerlo fácilmente. Por ejemplo, para buscar en nuestra base de datos de asistencia algunos artículos interesantes, normalmente debe acceder a la página de búsqueda de http://portal .suse.com/ y escribir la consulta. Este procedimiento se puede simplificar usando accesos directos. En el cuadro de diálogo mencionado, seleccione New (Nuevo) y especifique un nombre para el acceso directo en Search provider name (Nombre del proveedor de búsquedas). Escriba las abreviaturas en URI shortcuts (Accesos directos a URI). Puede haber varios de ellos separados por comas. El campo de texto importante es Search URI (Buscar URI). Si pulsa Shift + F1 y hace clic en el campo, se abrirá un pequeño cuadro de ayuda. La consulta de búsqueda se especifica como \{@}. Lo más complicado consiste en insertarlo en la posición correcta. En este caso, el ajuste para la base de datos de asistencia de SUSE es así: Search provider name (Nombre del proveedor de búsquedas) es SUSE Support Database (Base de datos de asistencia de SUSE), Search URI (Buscar URI) es (una línea) https://portal.suse.com/ PM/page/search.pm?q=\{@}&t=optionSdbKeywords&m=25&l=en&x= true y URI shortcuts (Accesos directos a URI) es sdb_es. Después de confirmar la entrada dos veces con OK (Aceptar), escriba la consulta en la barra de direcciones de Konqueror, por ejemplo, sdb_es:kernel. El resultado se muestra en la ventana actual. 3.4 Favoritos En lugar de tener que recordar y volver a escribir las direcciones de los sitios que visite a menudo, puede registrar dichas direcciones URL como favoritas usando el menú 80 Bookmark (Favoritos). Además de las direcciones de las páginas Web, también puede usar este procedimiento para registrar como favoritos directorios de su disco local. Para crear un favorito nuevo en Konqueror, haga clic en Bookmarks → Add Bookmark (Favoritos - Añadir favoritos). Los favoritos que haya añadido previamente se mostrarán como elementos del menú. Puede resultar adecuado organizar por temas la colección de favoritos en una estructura jerárquica para no perder la pista de los distintos elementos. Si desea crear un nuevo subgrupo para los favoritos, haga clic en New Bookmark Folder (Nueva carpeta de favoritos). Si selecciona Bookmarks → Edit Bookmarks (Favoritos - Editar favoritos), se abrirá el editor de favoritos. Use este programa para organizar, reorganizar, añadir y suprimir favoritos. Si utiliza Netscape, Mozilla o Firefox como navegadores adicionales, no será necesario que vuelva a crear los favoritos. La opción File → Import Netscape Bookmarks (Archivo - Importar favoritos de Netscape) del editor de favoritos le permite integrar los favoritos de Netscape y Mozilla en su colección actual. También se puede realizar el procedimiento inverso con la opción Export as Netscape Bookmarks (Exportar como favoritos de Netscape). Si desea cambiar un favorito, deberá hacer clic con el botón derecho en la entrada. Aparecerá un menú emergente en el que debe seleccionar la acción que desea llevar a cabo: cortar, copiar, eliminar, etc. Cuando esté satisfecho con los resultados, guarde el favorito con la opción File → Save (Archivo - Guardar). Si sólo desea cambiar el nombre o el enlace, simplemente haga clic con el botón derecho en la entrada de la barra de herramientas de los favoritos y seleccione Properties (Propiedades). Cambie el nombre y la ubicación y confirme la acción con Update (Actualizar). Para guardar la lista de favoritos y tener un acceso instantáneo a ella, haga que los favoritos estén visibles en Konqueror. Seleccione Settings → Toolbars → Bookmark Toolbar (Konqueror) (Ajustes - Barras de herramientas - Barra de herramientas de favoritos [Konqueror]). Aparecerá automáticamente un panel de favoritos en la ventana actual de Konqueror. 3.5 Java y JavaScript Es importante no confundir estos dos lenguajes. Java es un lenguaje de programación independiente de las plataformas y orientado a objetos desarrollado por Sun Microsystems. A menudo se utiliza para programas pequeños (applets), que se ejecutan en Internet para aplicaciones de banca en línea, programas de conversación o de compras. JavaScript Navegador Web Konqueror 81 es un lenguaje de guiones interpretados que se usa fundamentalmente para la estructuración dinámica de las páginas Web, por ejemplo, para los menús y otros efectos. Konqueror permite habilitar o inhabilitar estos dos lenguajes. Esto se puede hacer incluso para un dominio específico, lo que significa que puede permitir el acceso a algunos hosts y bloqueárselo a otros. Java y JavaScript se inhabilitan a menudo por motivos de seguridad. Lamentablemente, algunas páginas Web requieren que JavaScript esté habilitado para que sea posible visualizarlas correctamente. 3.6 Información adicional Si tiene alguna pregunta o si le surgen problemas cuando trabaje con Konqueror, consulte el manual de la aplicación, que está disponible a través del menú Help (Ayuda). Konqueror también tiene una página Web, disponible en la dirección http://www .konqueror.org. 82 4 Firefox Junto con SUSE Linux se incluye el navegador Web Mozilla Firefox. Este navegador, que combina las tecnologías Web más recientes, presenta funciones tales como pestañas, bloqueo de ventanas emergentes y gestión de descargas e imágenes. Es posible ver más de una página Web en una sola ventana, suprimir la publicidad molesta o desactivar las imágenes que sólo ralentizan el trabajo. Su facilidad para acceder a distintos motores de búsqueda le ayudará a encontrar la información que necesita. El programa se inicia desde el menú principal o escribiendo el comando firefox. Las funciones principales del programa se describen a continuación. 4.1 Navegación por sitios Web Firefox tiene un aspecto similar al de otros navegadores. Es el que se muestra en Figura 4.1, “Ventana de navegación de Firefox” (p. 84). La barra de navegación incluye los botones Siguiente y Anterior y una barra de ubicación para las direcciones Web. Asimismo, se proporcionan marcadores para un acceso rápido a las páginas asociadas. Para obtener más información acerca de las distintas funciones de Firefox, haga clic en Ayuda en la barra de menús. Firefox 83 Figura 4.1 Ventana de navegación de Firefox 4.1.1 Navegación en pestañas Si suele utilizar más de una página Web a la vez, la navegación en pestañas le puede facilitar el cambio de una a otra. Cargue sitios Web en pestañas distintas de la misma ventana. Para abrir una pestaña nueva, seleccione Archivo → Nueva pestaña. De esta forma se abre una pestaña vacía en la ventana de Firefox. También es posible hacer clic con el botón derecho en un enlace y seleccionar Abrir en una nueva pestaña. Haga clic con el botón derecho en la pestaña para acceder a más opciones. Puede crear una pestaña nueva, recargar una o todas las existentes y cerrarlas. 84 4.1.2 Uso del panel lateral Utilice el lado izquierdo de la ventana del navegador para ver los marcadores o el historial de navegación. Las extensiones también pueden añadir nuevas formas de utilizar el panel lateral. Para mostrar el panel lateral, seleccione Ver → Panel lateral y seleccione el contenido que desee. 4.2 Búsqueda de información Existen dos formas de buscar información en Firefox: la barra de búsqueda y la barra Buscar. En la barra de búsqueda se buscan páginas; en la barra Buscar, elementos de la página actual. 4.2.1 Uso de la barra de búsqueda Firefox dispone de una barra de búsquedas que puede acceder a distintos motores, como Google, Yahoo o Amazon. Por ejemplo, si desea buscar información acerca de SUSE con el motor actual, haga clic en la barra de búsqueda, escriba SUSE y pulse Intro . Los resultados aparecerán en la ventana. Para elegir el motor de búsqueda, haga clic en el icono de la barra. Se abrirá un menú con una lista de motores de búsqueda disponibles. 4.2.2 Uso de la barra Buscar Para realizar búsquedas dentro de una página Web, haga clic en Editar → Buscar en esta página o pulse Ctrl + F y se abrirá la barra Buscar. Normalmente se muestra en la parte inferior de la ventana. Escriba la consulta en el campo de entrada. Firefox resaltará todas las apariciones de la frase indicada. Con la opción Resaltar se habilita o inhabilita el resaltado. 4.3 Gestión de marcadores Los marcadores suponen una forma útil de guardar enlaces a las páginas Web favoritas. Para añadir el sitio Web actual a la lista de marcadores, haga clic en Marcadores → Firefox 85 Añadir esta página a marcadores. Si en esos momentos el navegador muestra varias pestañas de sitios Web, sólo se añadirá la URL de la pestaña seleccionada. Al añadir un marcador, se puede especificar un nombre alternativo para éste y seleccionar la carpeta en la que Firefox debe almacenarlo. Para eliminar un sitio Web de la lista de marcadores, haga clic en Marcadores, haga clic con el botón derecho en el marcador correspondiente de la lista y, seguidamente, haga clic en Borrar. 4.3.1 Uso del administrador de marcadores El administrador de marcadores puede utilizarse para gestionar las propiedades de cada marcador (nombre y dirección de la ubicación), así como para organizar los marcadores en carpetas y secciones. Tiene el aspecto mostrado en Figura 4.2, “Uso del administrador de marcadores de Firefox” (p. 86). Figura 4.2 Uso del administrador de marcadores de Firefox Para abrir el administrador de marcadores, haga clic en Marcadores → Administrar marcadores. Se abrirá una ventana en la que se muestran los marcadores. Con la opción Nueva carpeta se crea una carpeta nueva y se indica un nombre y una descripción. Si necesita un marcador nuevo, haga clic en Nuevo marcador. De esta forma podrá introducir un nombre, una ubicación, palabras claves y una descripción. La palabra clave 86 es un método abreviado para acceder al marcador. Si necesita mostrar los marcadores recién creados en el panel lateral, marque la casilla Cargar este marcador en el panel lateral. 4.3.2 Importación de marcadores Si ha utilizado un navegador distinto en el pasado, probablemente desee utilizar sus preferencias y marcadores también en Firefox. De momento es posible importarlos a partir de Netscape 4.x, 6, 7, Mozilla 1.x y Opera. Para importar la configuración, haga clic en Archivo → Importar. Seleccione el navegador del que desee importar la configuración. Al hacer clic en Siguiente se importará la configuración. Los marcadores importados aparecerán en una carpeta nueva, que comienza por la palabra De. 4.3.3 Marcadores vivos Los marcadores vivos muestran titulares de noticias en el menú de marcadores y le permite mantenerse informado con las últimas noticias. De esta forma puede ahorrar tiempo al echar un vistazo a sus sitios favoritos. Hay muchos sitios y blogs que admiten este formato. Los sitios Web lo indican mostrando un rectángulo rojo con las letras RSS en el interior en la esquina inferior derecha. Haga clic en el rectángulo y seleccione la opción para suscribirse al NOMBRE DEL HILO. Se abrirá un cuadro de diálogo en el que podrá seleccionar el nombre y la ubicación del marcador vivo. Confirme haciendo clic en Añadir. Algunos sitios no informan a Firefox de que admiten el servicio de noticias, aunque sí lo hacen. Para añadir manualmente un marcador vivo necesita la URL del hilo. Haga lo siguiente: Procedimiento 4.1 Adición de un marcador vivo manualmente 1 Abra el administrador de marcadores con Marcadores → Administrar marcadores. Se abrirá una ventana nueva. 2 Seleccione Archivo → Nuevo marcador vivo. Se abrirá un cuadro de diálogo. Firefox 87 3 Escriba un nombre para el marcador vivo y añada la URL, por ejemplo, http:// www.novell.com/newsfeeds/rss/coolsolutions.xml. Firefox actualizará los marcadores vivos. 4 Cierre el administrador de marcadores. 4.4 Uso del gestor de descargas Con ayuda del gestor de descargas puede hacer un seguimiento de las descargas actuales y pasadas. Para abrir el gestor de descargas, haga clic en Herramientas → Descargas. Firefox abrirá una ventana con las descargas realizadas. Cuando se descarga un archivo se observa una barra de progreso y el archivo actual. Si es necesario, es posible detener la descarga y reanudarla posteriormente. Para abrir un archivo descargado, haga clic en Abrir y para borrarlo haga clic en Eliminar. Si necesita información acerca del archivo, haga clic con el botón derecho en su nombre y seleccione Propiedades. Si necesita tener más control del gestor de descargas, abra la ventana de configuración haciendo clic en Herramientas → Preferencias y diríjase a la pestaña Descargas. Aquí es posible determinar la carpeta de descarga, el comportamiento del gestor y algunos ajustes sobre los tipos de archivos. 4.5 Personalización de Firefox Firefox cuenta con la posibilidad de instalar extensiones, cambiar temas y añadir palabras clave inteligentes para las búsquedas en Internet, lo que permite personalizar ampliamente el programa. 4.5.1 Extensiones Mozilla Firefox es una aplicación multifuncional, lo que significa que se pueden descargar e instalar programas complementarios, conocidos como extensiones. Por ejemplo, es posible añadir un gestor de descargas nuevo e iconos de ratón. Esto tiene la ventaja de que el propio programa de Firefox mantiene su pequeño tamaño y no se infla. Para añadir una extensión, haga clic en Herramientas → Extensiones. En la esquina inferior derecha, haga clic en Obtener más extensiones para abrir la página Web de 88 extensiones de Mozilla, en la que podrá elegir entre las disponibles. Haga clic en la extensión que desee instalar y, seguidamente en el enlace correspondiente para descargarla e instalarla. Al reiniciar Firefox, la nueva extensión estará disponible. También es posible estudiar las distintas extensiones en http://update.mozilla.org/ . Figura 4.3 Instalación de extensiones de Firefox 4.5.2 Cambio de temas Si no le agrada el aspecto estándar de Firefox, puede instalar un tema nuevo. Los temas no cambian la forma de funcionar del programa, sólo el aspecto del navegador. Al instalar un tema, Firefox pide confirmación: acepte la instalación o cancélela. Tras instalar un tema nuevo con éxito, podrá activarlo. 1 Haga clic en Herramientas → Temas. 2 Se abrirá un cuadro de diálogo. Haga clic en Obtener más temas. Si ya ha instalado un tema, búsquelo en la lista, como se muestra en la Figura 4.4, “Instalación de temas de Firefox” (p. 90). Firefox 89 Figura 4.4 Instalación de temas de Firefox 3 Se abrirá una ventana nueva con el sitio Web https://update.mozilla .org. 4 Seleccione un tema y haga clic en Instalar ahora. 5 Confirme la descarga y la instalación. 6 Tras descargar el tema se abrirá un cuadro de diálogo en el que se le informa sobre la lista de temas de que dispone. Active el tema nuevo con Usar tema. 7 Cierre la ventana y reinicie Firefox. Si un tema está instalado, siempre es posible cambiar a otro distinto sin tener que reiniciar. Basta con hacer clic en Herramientas → Temas y, a continuación, en Usar tema. Si no va a volver a utilizar el tema puede suprimirlo en el mismo cuadro de diálogo mediante la opción Desinstalar. 4.5.3 Adición de palabras clave inteligentes a las búsquedas en Internet Las búsquedas en Internet son una de las principales tareas que se pueden realizar con un navegador. Firefox permite definir palabras clave inteligentes propias: abreviaciones para utilizarlas como “comandos” para realizar búsquedas en Web. Por ejemplo, si 90 utiliza Wikipedia a menudo, utilice una palabra clave inteligente para simplificar esta tarea: 1 Diríjase a http://en.wikipedia.org. 2 Cuando se muestre la página en Firefox, diríjase al campo de texto de búsqueda. Haga clic en él con el botón derecho y seleccione Añadir una palabra clave a esta búsqueda en el menú emergente. 3 Se mostrará el cuadro de diálogo Añadir marcador. En el campo Nombre, indique el nombre de esta página Web, por ejemplo, Wikipedia (en). 4 En Palabra clave, indique la abreviación de esta página, por ejemplo, wiki. 5 En la lista Crear en puede seleccionar la ubicación que tendrá la entrada en la sección de marcadores. Puede incluirla en la Barra de marcadores, pero cualquier otro nivel es también válido. 6 Termine el proceso haciendo clic en Añadir. Habrá generado correctamente una palabra clave nueva. Cuando necesite realizar búsquedas en Wikipedia, no tendrá que utilizar la URL completa, bastará con que escriba wiki Linux para ver la entrada acerca de Linux. 4.6 Impresión desde Firefox En el cuadro de diálogo Configuración de página se puede configurar la forma en que Firefox imprimirá el contenido que muestra. Haga clic en Archivo → Configurar página y diríjase a la pestaña Formato y opciones para seleccionar la orientación de los trabajos de impresión. Se puede ajustar la escala manual o automáticamente. Para imprimir el fondo, seleccione Imprimir fondo (colores e imágenes). Haga clic en la pestaña Márgenes y cabecera/pie de página para ajustar los márgenes y seleccionar qué se va a incluir en los encabezados y los pies de página. Tras configurar los ajustes, la página Web se imprime con la opción Archivo → Imprimir. Seleccione la impresora o el archivo en el que se guardará el resultado. En Preferencias se puede definir el tamaño del papel, indicar un comando de impresión, elegir entre imprimir en color o en blanco y negro y determinar los márgenes. Cuando quede satisfecho con los ajustes, haga clic en Imprimir. Firefox 91 4.7 Información adicional Encontrará información adicional acerca de Firefox en la página oficial en http:// www.mozilla.org/products/firefox/. Consulte la ayuda integrada para obtener más información sobre opciones y funciones concretas. 92 Linphone: VoIP para escritorios Linux 5 Linphone es una pequeña aplicación telefónica vía Web para escritorios Linux. Permite realizar llamadas entre dos ubicaciones a través de Internet. No hay ningún requisito especial de hardware: una estación de trabajo normal con una tarjeta de sonido configurada de forma adecuada, un micrófono y altavoces o auriculares es todo lo que necesitará para empezar a utilizar Linphone. 5.1 Configuración de Linphone Antes de empezar a utilizar Linphone es necesario tomar algunas decisiones básicas y llevar a cabo algunas tareas de configuración. En primer lugar, determine y configure el modo de ejecución de Linphone, determine el tipo de conexión que desee utilizar e inicie la configuración de Linphone [Go → Preferences (Ir - Preferencias)] para realizar los ajustes necesarios. 5.1.1 Determinación del modo de ejecución de Linphone Linphone puede ejecutarse en dos modos diferentes, en función del tipo de escritorio que utilice y su configuración. Linphone: VoIP para escritorios Linux 93 Aplicación normal Después de instalar el softwarede Linphone, se puede iniciar desde los menús de aplicaciones de GNOME o KDE, o bien desde la línea de comandos. Si Linphone no se está ejecutando, no recibirá las llamadas entrantes. Applet de panel de GNOME Linphone puede añadirse al panel de GNOME. Haga clic con el botón derecho en una zona vacía del panel, seleccione Add to Panel (Añadir a panel) y luego Linphone. Linphone se añadirá de forma permanente al panel y se iniciará automáticamente al iniciar una sesión. Mientras no reciba ninguna llamada entrante, se ejecutará en segundo plano. Al recibir una llamada entrante, se abrirá la ventana principal y recibirá la llamada. Para abrir la ventana principal cuando desee llamar a alguien, haga clic en el icono del applet. 5.1.2 Determinación del tipo de conexión Hay varias maneras diferentes de realizar una llamada empleando Linphone. El modo en que se realizan las llamadas y en que se establece el contacto con el interlocutor dependen del modo en que el usuario esté conectado a la red o a Internet. Linphone utiliza el protocolo de inicio de sesiones (SIP) para establecer la conexión con un host remoto. En SIP, cada parte está identificada por una URL SIP: sip:nombredeusuario@nombredehost nombredeusuario es el inicio de sesión en el equipo Linux y nombredehost, el del equipo que esté utilizando. Si utiliza un proveedor de SIP, la dirección URL tendrá un aspecto similar a la del siguiente ejemplo: sip:nombredeusuario@servidorsip nombredeusuario es el nombre de usuario elegido durante el registro en el servidor SIP. servidorsip es la dirección del servidor SIP del proveedor. Si desea obtener más información sobre el procedimiento de registro, consulte la Sección 5.1.5, “Configuración de las opciones de SIP” (p. 97) y la documentación de registro del proveedor. Para obtener una lista de proveedores adecuados para sus fines, consulte las páginas Web mencionadas en la Sección 5.8, “Información adicional” (p. 105). La URL que deberá utilizar depende del tipo de conexión que utilice. Si decide llamar directamente sin ningún redireccionamiento a través de un proveedor SIP, deberá intro- 94 ducir una dirección URL del primer tipo. Si elige llamar a través de un servidor SIP, deberá introducir una URL del segundo tipo. Llamadas a la misma red Si pretende llamar a un amigo o compañero de trabajo de la misma red, sólo necesitará el nombre de usuario y el nombre de host correcto para crear una URL SIP válida. Esto es aplicable también a las personas que deseen llamarle. Si no hay ningún cortafuegos configurado entre el usuario y su interlocutor, no es necesario llevar a cabo ningún proceso de configuración adicional. Llamadas a través de redes diferentes o Internet (configuración con IP estática) Si está conectado a Internet con una dirección IP estática, cualquier persona que desee llamarle sólo necesitará su nombre de usuario y el nombre de host o dirección IP de su estación de trabajo para crear una dirección URL SIP válida, tal como se describe en la “Llamadas a la misma red” (p. 95). Si usted o la persona que realiza la llamada se encuentran protegidos por un cortafuegos que protege el tráfico de entrada y de salida, abra el puerto SIP (5060) y el puerto RTP (7078) en el equipo con el cortafuegos para que el tráfico de Linphone pueda atravesarlo. Llamadas a través de redes diferentes o Internet (configuración con IP dinámica) Si la configuración IP no es estática (es decir, si obtiene una dirección IP de forma dinámica cada vez que se conecta a Internet), será imposible para los comunicantes crear una dirección URL SIP válida a partir de su nombre de usuario y una dirección IP. En estos casos, emplee los servicios ofrecidos por los proveedores SIP o emplee una configuración DynDNS para garantizar que los comunicantes externos se conecten al equipo host adecuado. Hay más información disponible sobre DynDNS en http:// en.wikipedia.org/wiki/Dynamic_DNS. Llamadas a través de redes diferentes y cortafuegos Los equipos protegidos por un cortafuegos no muestran sus direcciones IP en Internet. Por lo tanto, nadie que intente llamar al usuario de uno de esos equipos puede acceder Linphone: VoIP para escritorios Linux 95 a ellos directamente. Linphone permite establecer llamadas entre distintas redes y a través de cortafuegos empleando un alterno SIP o transmitiendo las llamadas a un proveedor SIP. Consulte la Sección 5.1.5, “Configuración de las opciones de SIP” (p. 97) para acceder a una descripción detallada de los ajustes necesarios para utilizar un servidor SIP externo. 5.1.3 Configuración de los parámetros de red La mayoría de los ajustes de la pestaña Network (Red) no requieren ninguna configuración adicional. Debería ser posible realizar la primera llamada sin necesidad de modificarlos. NAT Traversal Options (Opciones de NAT Traversal) Habilite esta opción sólo si se encuentra en una red privada, protegida por un cortafuegos y no utiliza un proveedor SIP para encaminar las llamadas. Marque la casilla de verificación e introduzca la dirección IP del equipo con el cortafuegos, por ejemplo 192.168.34.166. RTP Properties (Propiedades de RTP) Linphone utiliza el protocolo de transporte en tiempo real (RTP) para transmitir los datos de audio de las llamadas. El puerto por defecto de RTP es el 7078, y no debe modificarse a menos que haya otra aplicación que lo utilice. El parámetro de compensación de vibración se utiliza para controlar el número de paquetes de audio que Linphone almacena en el buffer antes de reproducirlos. Al aumentar el valor de este parámetro, mejora la calidad de la transmisión. Si hay más paquetes en el buffer, es más probable que se reproduzca los paquetes que tardan más en llegar.“” Por otra parte, al aumentar el número de paquetes almacenados en el buffer, también aumenta la latencia, por lo que la voz del interlocutor se oye con un cierto retraso. Al modificar este parámetro hay que tener cuidado de mantener el equilibrio entre ambos factores. Other (Otros) Si utiliza una combinación de VoIP y telefonía fija, es posible que desee emplear la tecnología de frecuencia de tono dual multiplexada (DTMF) para activar determinadas acciones, como una comprobación remota del buzón de voz pulsando determinadas teclas. Linphone es compatible con dos protocolos de transmisión DTMF: SIP INFO y RTP rfc2833. Si necesita utilizar las funciones DTMF en Linphone, 96 seleccione un proveedor SIP que admita uno de estos protocolos. Para acceder a una lista completa de proveedores de VoIP, consulte la Sección 5.8, “Información adicional” (p. 105). 5.1.4 Configuración del dispositivo de sonido Si Linux ha detectado correctamente la tarjeta de sonido, Linphone utilizará automáticamente el dispositivo detectado como el dispositivo de sonido por defecto. No modifique el valor de Use sound device (Usar dispositivo de sonido). Utilice Recording source (Origen de grabación) para determinar el origen de grabación que desee utilizar. En la mayoría de los casos, será un micrófono (micro). Para seleccionar un sonido de timbre personalizado, utilice Browse (Examinar) para seleccionar uno y compruebe su elección empleando Listen (Escuchar). Haga clic en Apply (Aplicar) para aceptar los cambios. 5.1.5 Configuración de las opciones de SIP El cuadro de diálogo SIP contiene todos los ajustes de configuración de SIP. SIP Port (Puerto SIP) Determina en qué puerto se debe ejecutar el agente de usuario SIP. El puerto por defecto para SIP es el 5060. No modifique el valor por defecto a menos que exista otra aplicación o protocolo que necesite ese puerto. Identity (Identidad) Cualquiera que desee llamarle directamente sin utilizar un alterno SIP o un proveedor SIP deberá conocer su dirección SIP válida. Linphone crea una dirección SIP válida para el usuario. Remote Services (Servicios remotos) Esta lista contiene uno o varios proveedores de servicios SIP con los que ha creado una cuenta de usuario. La información acerca de los servidores puede añadirse, modificarse o suprimirse en cualquier momento. Consulte Adición de un alterno SIP y registro en un servidor SIP remoto (p. 98) para conocer el procedimiento de registro. Linphone: VoIP para escritorios Linux 97 Authentication Information (Información de autenticación) Para registrarse en un servidor SIP remoto, deberá proporcionar determinados datos de autenticación, como un nombre de usuario y una contraseña. Linphone almacena estos datos cuando los indica. Para desecharlos por motivos de seguridad, haga clic en Clear all stored authentification data (Borrar todos los datos de autenticación almacenados). La lista Remote services (Servicios remotos) puede estar formada por varias direcciones de alternos SIP remotos o proveedores de servicios. Procedimiento 5.1 Adición de un alterno SIP y registro en un servidor SIP remoto 1 Seleccione un proveedor SIP adecuado y cree una cuenta con él. 2 Inicie Linphone. 3 Acceda a Go → Preferences → SIP (Ir - Preferencias - SIP). 4 Haga clic en Add proxy/registrar (Añadir alterno/registro) para abrir un formulario de registro. 5 Indique los valores adecuados en los campos Registration Period (Período de registro), SIP Identity (Identidad SIP), SIP Proxy (Alterno SIP) y Route (Ruta). Si trabaja con un equipo protegido por un cortafuegos, seleccione siempre Send registration (Enviar registro) e introduzca un valor adecuado en Registration Period (Período de registro). De este modo, se reenviarán los datos de registro originales cuando transcurra un determinado período de tiempo, a fin de mantener abiertos en el cortafuegos los puertos que Linphone necesita para funcionar. De lo contrario, el cortafuegos cerraría automáticamente los puertos al no recibir más paquetes de ese tipo. El reenvío de los datos de registro también es necesario para que el servidor SIP se mantenga informado del estado de la conexión en cada momento y la ubicación del comunicante. En SIP identity (Identidad SIP), introduzca la URL SIP que debe utilizarse para las llamadas locales. Para utilizar el servidor también como alterno SIP, introduzca los mismos datos en SIP Proxy (Alterno SIP). Por último, añada un ruta opcional si es necesario y salga del cuadro de diálogo haciendo clic en OK (Aceptar). 98 5.1.6 Configuración de los códecs de audio Linphone es compatible con varios códecs para la transmisión de datos de voz. Establezca el tipo de conexión y seleccione los códecs que prefiera en la lista. Los códecs no adecuados para el tipo de conexión actual estarán en rojo y no será posible seleccionarlos. 5.2 Comprobación de Linphone Pruebe la configuración de Linphone utilizando sipomatic, un pequeño programa de prueba que permite responder a las llamadas realizadas desde Linphone. Procedimiento 5.2 Comprobación de una configuración de Linphone 1 Abra un terminal. 2 Escriba sipomatic en el indicador de la línea de comandos. 3 Inicie Linphone. 4 Introduzca sip:[email protected]:5064 como dirección SIP y haga clic en Call or Answer (Llamar o responder). 5 Si Linphone está configurado correctamente, oirá un tono de llamada y, al poco tiempo, un aviso corto. Si ha llevado a cabo este procedimiento correctamente, la configuración de audio y la de red están funcionando de forma adecuada. Si la prueba no se lleva a cabo correctamente, compruebe si el dispositivo de sonido está configurado de forma adecuada y si el nivel de reproducción tiene un valor razonable. Si sigue sin oír nada, compruebe la configuración de red, incluidos los números de puertos SIP y RTP. Si hay alguna otra aplicación o protocolo que emplee los puertos por defecto de Linphone, tenga en cuenta la posibilidad de modificar los puertos y vuelva a intentarlo. Linphone: VoIP para escritorios Linux 99 5.3 Realización de una llamada Cuando haya configurado Linphone correctamente, el proceso de realización de llamadas es muy sencillo. Dependiendo del tipo de llamada (consulte la Sección 5.1.2, “Determinación del tipo de conexión” (p. 94) como referencia), el procedimiento de llamada cambia ligeramente. 1 Inicie Linphone desde el menú o desde la línea de comandos. 2 Introduzca la dirección SIP del interlocutor en el indicador SIP address (Dirección SIP). La dirección debe tener un formato similar a sip:nombredeusuario@nombrededominio o nombredeusuario@nombredehost para las llamadas locales directas, o bien nombredeusuario@servidorsip o iddeusuario@servidorsip para las llamadas a través de alternos o que utilicen los servicios de un proveedor SIP. 3 Si utiliza un proveedor de servicios SIP o un alterno, seleccione el alterno o el proveedor adecuado en Proxy to use (Alterno que se debe utilizar) y proporcione los datos de autenticación solicitados por el alterno. 4 Haga clic en Call or Answer (Llamar o responder) y espere a que su interlocutor responda a la llamada. 5 Cuando haya terminado o desee finalizar la llamada, haga clic en Release or Refuse (Liberar o rechazar) y salga de Linphone. Si necesita ajustar los parámetros de sonido durante una llamada, haga clic en Show more (Mostar más) para que aparezcan cuatro pestañas que contienen opciones adicionales. La primera contiene las opciones de Sound (Sonido) Playback level (Nivel de reproducción) y Recording level (Nivel de grabación). Utilice los deslizadores para ajustar ambos volúmenes de modo que se adapten a sus necesidades. La pestaña Presence (Presencia) le permite establecer el estado en línea del usuario. Esta información se transmitirá a cualquiera que intente ponerse en contacto. Si va a estar ausente durante un período prolongado y desea informar de ello a las personas que le llamen, marque Away (Ausente). Si simplemente está ocupado, pero desea que las personas que le llamen vuelvan a intentarlo, marque Busy, I'll be back in ... min (Ocupado, volveré dentro de ... min) y especifique durante cuánto tiempo no estará disponible. Cuando vuelva a estar disponible, vuelva a definir el estado por defecto 100 (Reachable) (Disponible). El que otras personas puedan comprobar su estado en línea está determinado por el ajuste Subscribe Policy (Directiva de suscripción) de la libreta de direcciones, tal y como describe la Sección 5.5, “Utilización de la libreta de direcciones” (p. 102). Si cualquier interlocutor incluido en la libreta de direcciones publica su estado en línea, podrá supervisarlo empleando la pestaña My online friends (Mis amigos en línea). La pestaña DTMF puede utilizarse para introducir códigos DTMF para la comprobación de buzones de voz. Para comprobar su buzón de voz, introduzca la dirección SIP adecuada y utilice el teclado de la pestaña DTMF para introducir el código del buzón. Por último, haga clic en Call or Answer (Llamar o responder) como si realizase una llamada normal. 5.4 Respuesta a una llamada Dependiendo del modo de ejecución seleccionado para Linphone, hay varios modos en los que se le notificarán las llamadas entrantes: Aplicación normal Sólo recibirá y podrá responder a las llamadas entrantes si Linphone ya se está ejecutando. Oirá el sonido del timbre en los auriculares o los altavoces. Si Linphone no se está ejecutando, no recibirá las llamadas. Applet de panel de GNOME Normalmente el applet de panel de Linphone se ejecuta en segundo plano sin que se perciba su existencia. Esto cambia en el momento en que se recibe una llamada: se abre la ventana principal de Linphone y se oye un sonido de timbre en los auriculares o altavoces. Una vez notificada una llamada entrante, haga clic en Call or Answer (Llamar o responder) para responder al teléfono y comenzar a hablar. Si no desea aceptar la llamada, haga clic en Release of Refuse. Linphone: VoIP para escritorios Linux 101 5.5 Utilización de la libreta de direcciones Linphone ofrece la posibilidad de gestionar los contactos SIP. Abra la libreta de direcciones seleccionando Go → Address book (Ir - Libreta de direcciones). Se abrirá una ventana de lista vacía. Haga clic en Add (Añadir) para añadir un contacto. Deberá introducir las siguientes entradas para los contactos válidos: Nombre Escriba el nombre del contacto. Puede ser un nombre completo, pero también un apodo. Seleccione algo que le recuerde de forma inequívoca a la persona. Si decide que desea ver el estado en línea de la persona, este nombre aparecerá en la pestaña My online friends (Mis amigos en línea) de la ventana principal. SIP Address (Dirección SIP) Introduzca la dirección SIP válida del contacto. Proxy to Use (Alterno que se debe utilizar) Si es necesario, introduzca el alterno que desee emplear para esta conexión en concreto. En la mayoría de los casos, será sencillamente la dirección SIP del servidor SIP que utilice. Subscribe Policy (Directiva de suscripción) La directiva de suscripción determina si la presencia o ausencia puede ser observada por los demás. Para llamar a un contacto de la libreta de direcciones, selecciónelo con el ratón, haga clic en Select (Seleccionar) para hacer que la dirección aparezca en el campo de dirección de la ventana principal e inicie la llamada con Call or Answer (Llamar o responder) del modo habitual. 5.6 Resolución de problemas Intento llamar a alguien, pero no puedo establecer la conexión. Hay varios motivos por los que una llamada puede no llevarse a cabo correctamente: 102 La conexión a Internet se ha interrumpido. Dado que Linphone utiliza Internet para transmitir las llamadas, compruebe que el equipo esté conectado y configurado correctamente para hacer uso de Internet. Esto se puede comprobar fácilmente intentando visualizar una página Web empleando el navegador. Si la conexión a Internet funciona, es posible que el interlocutor no esté disponible. La persona a la que llama no está disponible. Si el interlocutor rechaza la llamada, no se establece la conexión. Si Linphone no se está ejecutando en el equipo del interlocutor cuando se realiza la llamada, no se establece la conexión. Si la conexión a Internet del interlocutor se ha interrumpido, tampoco es posible establecer la conexión. Parece que mi llamada establece la conexión, pero no oigo nada. En primer lugar, compruebe que el dispositivo de sonido esté configurado de forma adecuada. Para ello, inicie cualquier otra aplicación que emplee sonido, como un reproductor multimedia. Compruebe que Linphone tenga los permisos necesarios para abrir el dispositivo. Cierre todos los programas que utilicen el dispositivo de sonido para evitar conflictos de recursos. Si las comprobaciones anteriores tienen un resultado satisfactorio, pero sigue sin oír nada, suba los niveles de grabación y reproducción en la pestaña Sound (Sonido). La voz en ambos extremos suena extrañamente recortada. Intente ajustar el buffer de vibración empleando las RTP properties (Propiedades RTP) de Preferences → Network (Preferencias - Red) para compensar los paquetes de voz retrasados. Al hacerlo, tenga en cuenta que aumentará la latencia. DTMF no funciona. Ha intentado comprobar el buzón de voz empleando el teclado DTMF, pero no se puede establecer la conexión. Hay tres protocolos diferentes que se utilizan para la transmisión de datos DTMF, pero Linphone sólo admite dos de ellos (SIP INFO y RTP rfc2833). Consulte a su proveedor para saber si admite alguno de los dos. El protocolo que Linphone utiliza por defecto es rfc2833, pero si no funciona, puede cambiarlo a SIP INFO en Preferences → Network → Other (Preferencias - Red Otros). Si no funciona con ninguno de los dos protocolos, no podrá realizar transmisiones DTMF con Linphone. Linphone: VoIP para escritorios Linux 103 5.7 Glosario A continuación encontrará breves descripciones de los términos técnicos más importantes mencionados en este documento: VoIP VoIP significa protocolo de voz sobre IP. Esta tecnología permite la transmisión de llamadas telefónicas normales por Internet empleando rutas vinculadas a paquetes. La información de voz se envía en paquetes discretos, como todos los tipos de datos que se transmiten por Internet a través del protocolo IP. SIP SIP significa protocolo de inicio de sesiones. Este protocolo se utiliza para establecer sesiones de medios en redes. En el contexto de Linphone, SIP es la "magia" que activa el timbre en el equipo del interlocutor, inicia la llamada y también la finaliza cuando uno de los interlocutores decide colgar. El encargado de la transmisión efectiva de los datos de voz es el protocolo RTP. RTP RTP significa protocolo de transporte en tiempo real. Permite transportar flujos de medios en las redes y funciona a través de UDP. Los datos se transmiten mediante paquetes discretos numerados, que transportan un sello temporal que permite establecer la secuencia temporal correcta y detectar los paquetes perdidos. DTMF Un codificador DTMF, al igual que un teléfono normal, emplea pares de tonos para representar las distintas teclas. Cada tecla está asociada a una combinación exclusiva de un tono alto y uno bajo. Un descodificador traduce estas combinaciones de tonos a números. Linphone permite emplear señales DTMF para activar acciones remotas, como comprobar el buzón de voz. códec Los códecs son algoritmos especialmente diseñados para comprimir los datos de audio y vídeo. vibración La vibración es la variación de latencia (los retrasos) de una conexión. Los dispositivos de audio o los sistemas orientados a conexiones, como RDSI o PSTN, necesitan un flujo continuo de datos. Para compensarlo, los terminales y gateways VoIP incorporan un buffer de vibración que recopila los paquetes antes de enviarlos a otros 104 dispositivos de audio o líneas orientadas a conexiones (como RDSI). Al aumentar el tamaño del buffer de jitter disminuye la probabilidad de que se pierdan datos, pero aumenta la latencia de la conexión. 5.8 Información adicional Para obtener información general sobre VoIP, consulte el artículo Wiki sobre VoIP en http://voip-info.org/tiki-index.php. Para acceder a una lista completa de los proveedores que ofrecen servicios VoIP en su país de residencia, consulte http://voip-info.org/wiki-VOIP+Service+Providers +Residential. Linphone: VoIP para escritorios Linux 105 6 Cifrado con KGpg KGpg es un componente muy importante en la infraestructura de cifrado del sistema. Con la ayuda de este programa podrá generar y gestionar todas las claves necesarias, utilizar la función de editor para crear y cifrar archivos rápidamente o utilizar el applet del panel para cifrar o descifrar mediante el método de arrastrar y soltar. Otros programas, como el de correo electrónico (Kontact o Evolution), acceden a los datos principales para procesar el contenido firmado o cifrado. Este capítulo trata sobre las funciones básicas necesarias para trabajar con archivos cifrados. 6.1 Generación de pares de claves nuevos Para poder intercambiar mensajes cifrados con otros usuarios, primero se debe generar un par de claves propio. Una parte, la clave pública, se distribuye a las personas con las que se suele comunicar, que la pueden utilizar para cifrar los archivos o los mensajes de correo electrónico que envíen. La otra parte del par de claves, la clave privada, se utiliza para descifrar el contenido cifrado. IMPORTANTE: Clave privada frente a clave pública La clave pública está destinada a los demás usuarios y debe distribuirse a todas las personas con las que se establece comunicación. No obstante, sólo usted deberá tener acceso a la clave privada. No otorgue derechos de acceso a estos datos a ningún otro usuario. Cifrado con KGpg 107 Inicie KGpg desde el menú principal seleccionando Utilidades → KGpg, o introduzca kgpg en la línea de comandos. Cuando se inicia un programa por primera vez, aparece un asistente para guiarle por el proceso de configuración. Siga las instrucciones hasta que se le solicite que cree una clave. Introduzca un nombre, una dirección de correo electrónico y, opcionalmente, un comentario. Si no le interesa dejar los ajustes por defecto, defina la hora de caducidad de la clave, su tamaño y qué algoritmo de cifrado se debe emplear. Consulte Figura 6.1, “KGpg: Creación de claves” (p. 108). Figura 6.1 KGpg: Creación de claves Confirme sus ajustes con Aceptar. El siguiente cuadro de diálogo le pide que introduzca dos veces una contraseña. El programa genera después el par de claves y muestra un resumen. Es conveniente guardar e imprimir un certificado de revocación inmediatamente. Necesitará este certificado si olvida la contraseña para la clave privada y tiene que revocarla. Tras confirmar haciendo clic en OK (Aceptar), aparece la ventana principal de KGpg. Consulte la Figura 6.2, “Gestor de claves” (p. 109). 108 Figura 6.2 Gestor de claves 6.2 Exportación de claves públicas Después de generar el par de claves, debe proporcionar la clave pública al resto de los usuarios. Esto les permitirá utilizarla para cifrar o para firmar los mensajes o los archivos que le envíen. Para ello, seleccione Keys (Claves) → Export Public Key(s) (Exportar claves públicas). El cuadro de diálogo que se abre ofrece cuatro opciones: Email Se envía la clave pública por correo electrónico al destinatario que elija. Si activa esta opción y confirma con OK (Aceptar), aparecerá el recuadro de diálogo para crear un nuevo mensaje de correo electrónico con KMail. Introduzca el destinatario y haga clic en Send (Enviar). El destinatario recibirá la clave, tras lo cual podrá enviarle contenido cifrado. Clipboard Puede colocar aquí la clave pública antes de continuar procesándola. Default Key Server Para facilitar su clave pública a un gran número de personas, expórtela a los servidores de claves en Internet. Para obtener más información, consulte Sección 6.4, “Cuadro de diálogo Key Server (Servidor de claves)” (p. 111). Cifrado con KGpg 109 archivo Si prefiere distribuir la clave como un archivo en un medio de datos, en lugar de enviarla por correo electrónico, haga clic en esta opción, confirme o cambie el nombre de archivo y la vía y, a continuación, haga clic en OK (Aceptar). 6.3 Importación de claves Si recibe una clave en un archivo (por ejemplo como un adjunto de correo electrónico), intégrela en el patrón de claves mediante la opción Import Key (Importar clave) y utilícela para comunicarse de forma cifrada con el remitente. El procedimiento es similar al procedimiento de exportación de claves descrito anteriormente. 6.3.1 Firma de claves Como cualquier otro archivo, las claves se pueden firmar para garantizar su autenticidad e integridad. Si está completamente seguro de que alguna de las claves importadas pertenece a la persona especificada como propietario, exprese con una firma su confianza en la autenticidad de la clave. IMPORTANTE: Establecimiento de una red de confianza La comunicación cifrada sólo puede ser segura si se pueden asociar las claves públicas en circulación con el usuario especificado. Comprobando y firmando estas claves se contribuye al establecimiento de una red de confianza. Seleccione la clave que firmar en la lista de claves. Seleccione Keys (Claves) → Sign Keys (Firmar claves). En el recuadro de diálogo que sigue, designe la clave privada que se debe utilizar para la firma. Una alerta le recordará que debe comprobar la autenticidad de la clave antes de proceder a firmarla. Si ya lo ha comprobado, haga clic en Continue (Continuar) e introduzca la contraseña para la clave privada seleccionada en el paso siguiente. Los demás usuarios podrán ahora comprobar la firma a través de la clave pública. 110 6.3.2 Confianza en las claves Normalmente, el programa con el que esté trabajando le preguntará si confía en la clave (si considera que verdaderamente la utiliza su propietario autorizado). Esto sucede cada vez que es necesario cifrar un mensaje o comprobar una firma. Para evitarlo, edite el nivel de confianza de la clave recién importada. Haga clic con el botón derecho del ratón en la clave recién importada para acceder a un pequeño menú contextual para gestionar claves. Seleccione Edit Key in Terminal (Editar clave en terminal). KGpg abre una consola de texto en la que podrá definir el nivel de confianza a través de ciertos comandos. En el mensaje de la consola de texto [Command > (Comando)], escriba trust (confiar). En una escala entre 1 (no seguro) y 5 (completa confianza), indique su grado de confianza con respecto a que los firmantes de la clave importada hayan comprobado la identidad verdadera del propietario de la clave. Escriba el valor seleccionado en el mensaje [Your decision? (¿Cuál es su decisión?)]. Si está completamente seguro de que puede confiar en el firmante, escriba 5. Responda a la pregunta siguiente indicando y (sí). Por último, escriba quit (salir) para salir de la consola y volver a la lista de claves. La clave tendrá ahora el nivel de confianza zzUltimate. El nivel de confianza de las claves en su patrón de claves aparece indicado por una barra de color junto al nombre de la clave. Cuanto más bajo sea el nivel de confianza, menos confiará en que el firmante de la clave haya comprobado la verdadera identidad de las claves firmadas. Aunque puede estar totalmente seguro de la identidad del firmante, es posible que éste no sea lo suficientemente estricto a la hora de comprobar las identidades de las personas antes de firmar sus claves. Así pues, aunque confíe en él y en su clave, podría optar por asignarle niveles bajos de confianza en el caso de claves de otros firmadas por él. La función del nivel de confianza sirve tan sólo a modo de recordatorio. En realidad no activa ninguna acción automática por parte de KGpg. 6.4 Cuadro de diálogo Key Server (Servidor de claves) Hay varios servidores de claves basados en Internet que proporcionan las claves públicas de muchos usuarios. Utilice estos servidores para distribuir su clave pública y establecer un sistema de comunicación cifrada con un amplio número de usuarios. Con este proCifrado con KGpg 111 pósito, exporte su clave pública a uno de estos servidores. Igualmente, KGpg le permite localizar uno de estos servidores para las claves de ciertas personas e importar sus claves públicas desde el servidor. Abra el cuadro de servidor de claves mediante la opción File (Archivo) → Key Server Dialog (Cuadro de diálogo servidor de claves). 6.4.1 Importación de claves desde un servidor de claves La pestaña Importar del recuadro de diálogo de servidor de claves le permite importar claves públicas desde uno de los servidores de claves basados en Internet. Utilice el menú desplegable para seleccionar uno de los servidores de claves preconfigurado e indique una cadena de búsqueda (dirección de correo electrónico de la persona con la que se comunicará) o el ID de la clave que desee buscar. Al hacer clic en Search (Buscar), el sistema se conecta a Internet y busca en los servidores de claves especificados una clave que coincida con las especificaciones indicadas. Consulte Figura 6.3, “Pantalla de búsqueda para importar claves” (p. 112). Figura 6.3 Pantalla de búsqueda para importar claves Si la búsqueda en el servidor de claves da fruto, aparecerá una ventana nueva con una lista de todas las entradas de servidor recuperadas. Seleccione la clave que desee incluir en el patrón de claves y haga clic en Import (Importar). Consulte la Figura 6.4, “Resultados e importación” (p. 113). Confirme el mensaje siguiente haciendo clic en OK (Aceptar) y cierre luego el cuadro de diálogo de servidor de claves haciendo clic en 112 Close (Cerrar). La clave importada aparecerá en el resumen principal del gestor de claves, lista ya para utilizarse. Figura 6.4 Resultados e importación 6.4.2 Exportación de claves a un servidor de claves Para exportar la clave a uno a los servidores de claves de acceso libre en Internet, seleccione la pestaña Export (Exportar) en el cuadro de diálogo de servidor de claves. Designe el servidor de destino y la clave que desee exportar a través de los dos menús desplegables. A continuación, inicie el proceso de exportación haciendo clic en Export (Exportar). Cifrado con KGpg 113 Figura 6.5 Exportación de claves a servidores de claves 6.5 Cifrado de textos y archivos KGpg ofrece también la posibilidad de cifrar texto o contenidos del portapapeles. Haga clic en el icono del candado y localice las opciones Encrypt clipboard (Cifrar portapapeles) y Decrypt clipboard (Descrifrar portapapeles), así como la opción para abrir el editor integrado. 6.5.1 Cifrado y descifrado del portapapeles Los archivos copiados en el portapapeles se pueden cifrar fácilmente con sólo unos simples pasos. Abra la descripción general de la función haciendo clic en el icono de KGpg. Seleccione Encrypt Clipboard (Cifrar portapapeles) y designe qué clave utilizar. En el escritorio aparecerá un mensaje de estado acerca del procedimiento de cifrado. El contenido cifrado se podrá ahora procesar desde el portapapeles. Descifrar el contenido del portapapeles es igual de fácil, basta con que abra el menú en el panel, seleccione Decrypt Clipboard (Descifrar portapapeles) e indique la contraseña asociada a la clave privada. La versión cifrada está ahora disponible para procesarse en el portapapeles y en el editor de KGpg. 114 6.5.2 Cifrado y descifrado mediante el método de arrastrar y colocar Para cifrar y descifrar archivos, haga clic en los iconos del escritorio o en el gestor de archivos, arrástrelos al candado que hay en el panel y suéltelos. Si el archivo no está cifrado, KGpg le preguntará qué clave emplear. Cuando seleccione una clave, el archivo se cifrará sin que aparezcan más mensajes. En el gestor de archivos, los archivos cifrados se designan mediante el sufijo .asc y el icono de candado. Estos archivos se pueden descifrar haciendo clic en el icono de archivo, arrastrándolos al símbolo de KGpg en el panel y soltándolos allí. A continuación, seleccione si el archivo se debe descifrar, guardar o mostrar en el editor. 6.5.3 Editor de KGpg En lugar de crear el contenido que se va a cifrar en un editor externo y después cifrarlo con uno de los métodos descritos arriba, puede utilizar el editor integrado de KGpg para crear el archivo. Abra el editor [Open Editor (Abrir editor) en el menú contextual], escriba el texto en cuestión y haga clic en Encrypt (Cifrar). A continuación, seleccione la clave que desee utilizar y termine el procedimiento de cifrado. Para descifrar archivos, utilice Decrypt (Descifrar) e indique la contraseña asociada a la clave. Generar y comprobar firmas es tan fácil como cifrar directamente desde el editor. Diríjase a Signature (Firma) → Generate Signature (Generar firma) y seleccione el archivo que desee firmar en el recuadro de diálogo de archivos. A continuación, designe la clave privada que desee utilizar y escriba la contraseña asociada. KGpg le informará sobre si se ha generado correctamente la firma. Los archivos también se pueden firmar desde el editor haciendo clic en Sign/Verify (Firmar/Verificar). Para comprobar un archivo firmado, diríjase a Signature (Firma) → Verify Signature (Verificar firma) y seleccione el archivo que desee comprobar en el siguiente cuadro de diálogo. Después de confirmar la selección, KGpg comprobará la firma e informará acerca de cuál ha sido el resultado de la operación. Otra opción es cargar el archivo firmado en el editor y hacer clic en Sign/Verify (Firmar/Verificar). Cifrado con KGpg 115 6.6 Información adicional Para obtener información teórica básica sobre el método de cifrado, consulte la sección de introducción de las páginas del proyecto GnuPG en http://www.gnupg.org/ documentation/howtos.html.en. Este documento proporciona también una lista con otras fuentes de información. 116 Parte III. Multimedia 7 Sonido en Linux Linux incluye una amplia gama de aplicaciones multimedia y de sonido. Algunas de estas aplicaciones forman parte de uno de los principales entornos de escritorio. Con las aplicaciones que se describen en la presente sección, controle el volumen y el balance del sonido, reproduzca CDs y archivos de música y grabe y comprima sus datos de audio. 7.1 Mezcladores Los mezcladores ofrecen la forma de regular el volumen y el balance de la entrada y salida de sonido de los equipos. La principal diferencia que existe entre los distintos mezcladores es la apariencia exterior de la interfaz de usuario. No obstante, existen varios mezcladores diseñados para un hardware específico. Un ejemplo de ello es envy24control, un mezclador para el chip de sonido Envy 24. Otro ejemplo es hdspmixer, que se emplea con las tarjetas RME Hammerfall. Seleccione, entre todos los mezcladores disponibles, el que mejor se adapte a sus necesidades. SUGERENCIA: Pruebe su mezclador Por norma general, se recomienda abrir la aplicación del mezclador antes de abrir otras aplicaciones de sonido. Utilice el mezclador para probar y adaptar los ajustes de control de la entrada y de la salida de la tarjeta de sonido. Sonido en Linux 119 7.1.1 Applet mezclador de KDE KMix es la aplicación de mezclador de KDE. Se integra en el panel de KDE como un pequeño applet de panel que se ubica en la bandeja del sistema. Haga clic en el icono del panel para regular el volumen de sus altavoces con la barra reguladora. Si hace clic con el botón derecho del ratón en el icono, aparecerá el menú contextual de KMix. Seleccione Mute (Silenciar) para desactivar la salida de sonido. En ese momento se modificará la apariencia del icono del panel. Si vuelve a hacer clic en Mute (Silenciar), se silenciará el volumen. Para ajustar la configuración del sonido, seleccione Show Mixer Window (Mostrar ventana del mezclador) y realice los ajustes necesarios en Output (Salida), Input (Entrada) y Switches (Conmutadores). Cada uno de los dispositivos que aparece cuenta con su propio menú contextual, al que se accede haciendo clic con el botón derecho del ratón en el icono del dispositivo correspondiente. Puede silenciar u ocultar cada uno de ellos por separado. Figura 7.1 Mezclador KMix 7.1.2 Applet mezclador de GNOME GMix, el applet de control de volumen del escritorio de GNOME, se integra en el panel de GNOME. Haga clic en el icono del panel para regular el volumen de los altavoces con una sencilla barra reguladora. Para desactivar la salida de sonido, haga clic con el botón derecho del ratón en el icono y, a continuación, seleccione Mute (Silenciar). En ese momento, se modificará la apariencia del control de volumen. Para silenciar la salida de sonido, haga clic con el botón derecho del ratón en el icono y, a continuación, selec- 120 cione Mute (Silenciar). Seleccione Open Volume Control (Abrir control de volumen) para acceder a las funciones avanzadas del mezclador, como se muestra en la Figura 7.2, “Applet del mezclador de GNOME” (p. 121). Cada dispositivo de sonido cuenta con su propia pestaña de mezclador. Figura 7.2 Applet del mezclador de GNOME 7.1.3 alsamixer El programa alsamixer se puede ejecutar desde la línea de comandos sin el entorno X, por lo que se puede controlar por completo a través de accesos directos del teclado. La ventana de alsamixer consta de los siguientes elementos: una fila, que figura en la parte superior, en la que se incluye información básica sobre el tipo de tarjeta y de chip, el tipo de vista seleccionado y el elemento del mezclador; las barras de volumen se muestran debajo del área de información. Utilice las teclas ← y → para desplazarse a la izquierda y a la derecha si los controles no se pueden mostrar en una única pantalla. Los nombres de los controles aparecen debajo de éstos; por otra parte, el control que se encuentre seleccionado aparecerá coloreado en rojo. Cambie el estado del control de cualquier mezclador de silenciado a no silenciado y viceversa con la tecla M . Si el volumen de un control está silenciado, aparecerá la marca MM debajo del nombre del control. Cualquier control que disponga de capacidad de captura (grabación) contará con un indicador de captura de color rojo. El programa alsamixer cuenta con tres modos distintos de visualización: Playback (Playback), Capture (Captura) y All (Todos). Por defecto, alsamixer se inicia en modo Sonido en Linux 121 Playback (Playback), lo que supone que únicamente se muestren los controles del mezclador que son relevantes para la reproducción (Volumen maestro, PCM, CD, etc.). El modo Capture (Captura) muestra solamente los controles empleados para la grabación. Por su parte, All (Todos) muestra todos los controles disponibles. Cambie los modos de visualización con las teclas F3 , F4 y F5 . Seleccione los canales con las teclas → y ← o con N y P . Utilice las teclas ↑ y ↓ o + y - para aumentar y disminuir el volumen. Los canales estéreo se pueden regular de manera independiente mediante el empleo de las teclas Q , W y E para aumentar el volumen y Z , X y C para disminuirlo. Las teclas numéricas comprendidas entre 0 y 9 se pueden emplear para cambiar de forma rápida el volumen absoluto. Estas teclas se corresponden con los valores comprendidos entre el cero y el noventa por ciento del volumen total. 7.1.4 Apariencia de las aplicaciones de mezcla de sonido La apariencia de este tipo de aplicaciones depende del tipo de tarjeta de sonido empleada. Algunos controladores, como SB Live!, cuentan con muchos elementos de mezcla regulables (sintonizables), mientras que los controladores para tarjetas de sonido profesionales pueden tener muchos elementos con nombres totalmente distintos. Chip de sonido integrado La mayor parte de los chips de sonido PCI integrados se basan en un códec AC97. Master (Maestro) regula el volumen principal de los altavoces delanteros. Surround (Surround), Center (Center) y LFE (LFE) regulan los altavoces traseros, centrales y de realce de graves. Cada uno de ellos tiene un conmutador para silenciar el volumen. Además, algunas tarjetas cuentan con volúmenes individuales para Headphone (Auriculares) y Master Mono (Maestro mono). El último de ellos se emplea para el altavoz integrado de algunos equipos portátiles. PCM regula el nivel de volumen interno del reproductor digital WAVE. PCM es el acrónimo de Pulse Code Modulation (Modulación por impulsos codificados), uno de los formatos de señales digitales. Este control cuenta también con un conmutador individual para silenciar el volumen. 122 Otros volúmenes, como CD (CD), Line (Línea), Mic (Mic.) y Aux (Aux.), controlan el volumen del circuito cerrado desde la salida correspondiente hasta la entrada principal. Estos volúmenes no influyen en el nivel de grabación, solamente en los volúmenes de reproducción. Para realizar tareas de grabación, encienda el conmutador Capture (Captura). Éste es el conmutador maestro de grabación. El volumen de Capture (Captura) es la amplificación de la entrada para la grabación. Este conmutador se establece por defecto en cero. Seleccione una fuente de grabación, por ejemplo, Line (Línea) o Mic (Mic.). La fuente de grabación es exclusiva, por lo que no se pueden seleccionar dos fuentes al mismo tiempo. Mix (Mezcla) es una fuente de grabación especial. Se puede grabar la señal que se esté reproduciendo en ese momento en esa señal. Además, en función del chip del códec AC97, están disponibles efectos especiales, como 3D o graves/agudos. Familia SoundBlaster Live! y Audigy SoundBlaster Live! y SB Audigy1 cuentan con numerosos controladores del mezclador para el chip del códec AC97 y el motor DSP. Además de los controles que se han descrito, disponen también de volúmenes Wave (Wave), Music (Música) y AC97 (AC97) para regular la atenuación y el encaminamiento de señales internas para la mezcla con PCM, WaveTable MIDI y AC97. Mantenga el volumen al 100 % para poder escuchar todos los volúmenes. SB Audigy2 (según el modelo) dispone de menos controles que SB Live; sin embargo, cuenta con los controles Wave (Wave) y Music (Música). La grabación con SB Live es similar a la grabación realizada con el chip integrado. Es posible seleccionar Wave (Wave) y Music (Música) como la fuente de grabación adicional para grabar las señales PCM y WaveTable reproducidas. Dispositivos de audio USB Los dispositivos de audio USB habitualmente disponen de un número reducido de controladores de mezclador. Incluso, en ocasiones no cuentan con ninguno. La mayor parte de los dispositivos tienen un conmutador de control Master (Maestro) o PCM (PCM) para regular el volumen de reproducción. Sonido en Linux 123 7.1.5 Mezclador para el chip de sonido Envy24 envy24control es una aplicación de mezcla para tarjetas de sonido que emplean el chip Envy24 (ice1712). La flexibilidad del chip Envy24 puede dar como resultado la presencia de funciones diferentes en tarjetas de sonido distintas. Los detalles más recientes de este chip de sonido están disponibles en /usr/share/doc/packages/ alsa-tools/envy24control. Figura 7.3 Mezclador de control y mezclador digital de envy24control El mezclador de control de envy24control muestra los niveles de señales que se pueden mezclar digitalmente en la tarjeta de sonido. Las señales designadas como PCM Out (Salida PCM) las generan aplicaciones que envían datos PCM a la tarjeta de sonido. Las señales de las entradas análogas se muestran en H/W In (Entrada H/W). Las entradas S/PDIF (S/PDIF) se muestran en la parte derecha. Establezca los valores de entrada y de salida de los canales analógicos en Analog Volume (Volumen analógico). Utilice las barras reguladoras del mezclador de control para la mezcla digital. Los niveles correspondientes se muestran en el mezclador digital. Para cada canal de salida, el Patchbay (Panel de conexiones) contiene una fila de botones circulares para seleccionar la fuente de canal deseada. Ajuste la amplificación de los convertidores de analógico a digital y de digital a analógico en Analog Volume (Volumen Analógico). Utilice las barras reguladoras de DAC (Convertidor D/A) para los canales de salida y las barras reguladoras de ADC (Convertidor A/D) para los canales de entrada. 124 Los ajustes de canal S/PDIF se pueden realizar en Hardware Settings (Configuración de hardware). El chip Envy24 reacciona a los cambios de volumen con un retardo que se puede configurar con Volume Change (Cambio de volumen). 7.2 Reproductores multimedia 7.2.1 amaroK El reproductor multimedia amaroK gestiona diferentes formatos de audio y reproduce los flujos de audio de las difusiones de emisoras de radio de Internet. El programa gestiona todos los tipos de archivos admitidos por el servidor de sonido que actúe como sistema de apoyo, actualmente aRts o GStreamer. La primera vez que se emplea amaroK, se inicia el First-Run Wizard (Asistente de primera ejecución), que ayuda a configurar amaroK. En el primer paso, configure la apariencia que desee que tenga amaroK. Seleccione si desea que el reproductor y la lista de reproducción se muestren en ventanas separadas (a este respecto, consulte Figura 7.4, “Reproductor multimedia amaroK” (p. 126)) o si prefiere combinar ambas funciones en una única ventana. En el segundo paso, especifique dónde debe buscar amaroK su colección musical. El programa amaroK explora estas carpetas en búsqueda de archivos que se puedan reproducir. Por defecto, amaroK está configurado para explorar las carpetas seleccionadas de forma recurrente (para incluir todos los subdirectorios en la exploración), controlar los cambios realizados en el contenido de los directorios seleccionados e importar cualquier lista de reproducción que se ubique en las carpetas en cuestión. Todos los ajustes realizados con el asistente se pueden modificar después iniciando nuevamente el asistente con Tools (Herramientas) → First-Run Wizard (Asistente de primera ejecución). Sonido en Linux 125 Figura 7.4 Reproductor multimedia amaroK Gestión de las listas de reproducción Al iniciar amaroK, el programa realiza una búsqueda en el sistema de archivos multimedia de acuerdo con los ajustes que se han especificado en el asistente. En la parte derecha de la ventana de la listas de reproducción se muestran las listas que se han encontrado. Reproduzca las listas en el orden que prefiera. Si no se ha encontrado ninguna lista de reproducción, cree una. Para ello, la mejor forma de hacerlo es utilizando la barra lateral que se encuentra situada a la izquierda de la ventana. En el extremo izquierdo se encuentran diversas pestañas que se pueden emplear para abrir vistas diferentes. En cada una de estas vistas, arrastre los títulos uno por uno o los directorios completos y suéltelos en la lista de reproducción para incluirlos en la lista. A continuación, se muestra una descripción de las funciones de cada pestaña. Context (Contexto) Esta pestaña permite visualizar la información relativa a su colección y al artista actual. Por ejemplo, esta vista le informará sobre sus títulos favoritos, sobre los títulos más recientes añadidos a la colección y sobre otros detalles. La vista Home (Inicio) 126 le ofrece estadísticas sobre sus hábitos de escucha, al tiempo que elabora listas con las pistas favoritas, las más recientes y las menos reproducidas. Current Track (Pista actual) proporciona datos referidos a la pista que se esté reproduciendo en ese momento; al mismo tiempo, muestra la carátula del álbum (a este respecto, consulte la “Cover Manager (Gestor de carátulas)” (p. 128)), las estadísticas de escucha de esta pista y muchos más datos. Por otra parte, para ver la letra de la canción, utilice la pestaña Lyrics (Letra). Collection Browser (Navegador de la colección) Utilice esta vista para gestionar y mostrar su colección personal de títulos. La colección puede incluir archivos localizados en ubicaciones distintas. El icono de la llave inglesa que se encuentra en la barra de herramientas le permite determinar qué ubicaciones se deben explorar para localizar archivos de música. Una vez que haya seleccionado los directorios, la exploración se iniciará automáticamente. El resultado se mostrará como una estructura en árbol. Mediante el empleo de las opciones Primary (Primaria) y Secondary (Secundaria), organice las dos ramificaciones superiores del árbol de acuerdo con los criterios Album (Álbum), Artist (Artista), Genre (Género) y Year (Año). Una vez que esté lista la vista de árbol, localice los títulos de forma sencilla escribiéndolos en el campo de entrada. La selección de las tres vistas muestra automáticamente la primera entrada que coincida con los datos introducidos. Para actualizar los datos de la colección, inicie la exploración del sistema de archivos mediante el empleo de las opciones Tools (Herramientas) → Rescan Collection (Volver a explorar colección). Playlist Browser (Navegador de listas de reproducción) El navegador de listas de reproducción se divide en dos partes. La parte superior enumera todas las listas de reproducción personalizadas que se han creado arrastrando las listas a la ventana de la lista de reproducción y haciendo clic en Save Playlist As (Guardar lista de reproducción como). Visualice los contenidos de las listas haciendo clic en el símbolo + que se encuentra junto al nombre de la lista de reproducción. Para modificar las listas de reproducción, utilice la opción de arrastrar y soltar. Para cargar una lista, haga doble clic en la lista de reproducción. IMPORTANTE: Uso compartido de las listas de reproducción con otros reproductores Guarde las listas de reproducción en formato m3u o pls para poder compartirlas con otros reproductores que emplean estos formatos. Sonido en Linux 127 amaroK puede compilar en el instante listas de reproducción muy útiles (“Smart Playlists” [Listas de reproducción inteligentes]) . Utilice la parte inferior del navegador de listas de reproducción para seleccionar una de las listas de reproducción inteligente o haga clic en la opción Create Smart Playlist (Crear lista de reproducción inteligente) para definir una lista de reproducción inteligente y personalizada. Escriba un nombre, los criterios de búsqueda, el orden y el límite de pistas opcional. File Browser (Navegador de archivos) Esta pestaña abre un navegador de archivos. Se corresponde con el cuadro de diálogo estándar del selector de archivos de KDE, que cuenta con los controles habituales para permitir la navegación por el sistema de archivos. Escriba una URL o un directorio en el campo de entrada de texto. De los contenidos que se muestran, arrastre los elementos que desee incluir a la lista de reproducción. También puede realizar una búsqueda recursiva de archivos en un directorio dado. Para realizar esta operación, introduzca una cadena de texto para el título y la ubicación en la que desea iniciar la búsqueda. A continuación, seleccione Search (Buscar) y espere a que los resultados se muestren en la parte inferior de la ventana. Cover Manager (Gestor de carátulas) amaroK incluye un gestor de carátulas que permite que los datos de música y de imagen de los álbumes que se reproducen coincidan. Inicie Cover Manager (Gestor de carátulas) con Tools (Herramientas) → Cover Manager (Gestor de carátulas). Se abrirá una vista en árbol en la parte izquierda de la ventana, en la que se muestran todos los álbumes de su colección. Las carátulas obtenidas de Amazon se muestran en la parte derecha de la ventana. Mediante la opción View (Ver), seleccione la imagen que se muestra en la vista de la lista de carátulas. La opción All albums (Todos los álbumes), por su parte, enumera todos los álbumes de su colección, con independencia de si los álbumes cuentan con una imagen de carátula o no. En Albums with cover (Álbumes con carátula) se enumeran únicamente aquellos álbumes que cuentan con carátula, mientras que en Albums without cover (Álbumes sin carátula) se muestran solamente aquéllos que carecen de ella. Para recuperar los datos de las carátulas, seleccione su Amazon Locale (Amazon local) y, a continuación, haga clic en Fetch Missing Covers (Recuperar carátulas que faltan); de esta forma, amaroK intentará conseguir las carátulas de todos los álbumes que contiene su colección. 128 Efectos Seleccione el botón FX (FX) de la ventana del reproductor, o bien utilice el menú de la aplicación amaroK para abrir un cuadro de diálogo en el que se podrán habilitar y configurar diversos efectos de sonido, como el ecualizador, el balance de estéreo y el efecto Hall. Seleccione los efectos deseados y modifique los ajustes, si es posible, de dichos efectos. Visualizaciones amaroK ofrece una serie de visualizaciones que muestran diversos efectos gráficos en la música reproducida. Las visualizaciones originales de amaroK se muestran en la ventana del reproductor. Vea los distintos modos de visualización que se encuentran disponibles haciendo clic en la animación. Debe tenerse en cuenta, además, que amaroK es compatible con los complementos de visualización del reproductor multimedia XMMS. Para utilizar estos complementos, instale en primer lugar el paquete xmms-plugins y, a continuación, seleccione Visualizations (Visualizaciones) en el menú de amaroK. Se abrirá una ventana que contendrá una lista con los complementos disponibles. Los complementos de XMMS se muestran siempre en una ventana adicional. En algunos casos, existe una opción que permite visualizarlos en modo de pantalla completa. Es probable que con algunos complementos no pueda conseguir unos efectos visuales nítidos a menos que utilice una tarjeta gráfica aceleradora en 3D. 7.2.2 XMMS XMMS es un completo reproductor multimedia que dispone de funciones de audio avanzadas que hacen que la presencia de saltos o interrupciones durante la reproducción sea más que esporádica. La aplicación es muy sencilla de usar. El botón para visualizar el menú se encuentra en la esquina superior izquierda de la ventana del programa. Para aquellos usuarios que prefieran una apariencia similar a los programas de GNOME, existe una versión GTK2 de XMMS disponible, llamada Beep Media Player. Para ello, solamente basta con instalar el paquete bmp. Sin embargo, no todos los complementos de XMMS son compatibles con este puerto de XMMS. Sonido en Linux 129 Figura 7.5 XMMS con complementos del ecualizador, del analizador de espectro OpenGL y de Infinity Seleccione el módulo de los complementos de salida con Options (Opciones) → Preferences (Preferencias) → Audio I/O Plugins (Complementos de E/S de audio). Si el paquete xmms-kde está instalado, el servidor de sonido aRts se puede configurar aquí. IMPORTANTE: Utilización del complemento de grabadora de discos XMMS redirige automáticamente los datos de salida a Disk Writer Plugin (Complemento de grabadora de discos) si no es capaz de encontrar una tarjeta de sonido configurada. En este caso, los archivos que se reproducen se escriben en el disco duro como archivos WAV. Como consecuencia, la visualización del tiempo se da con más rapidez que cuando se reproducen los datos de salida a través de una tarjeta de sonido. Inicie diversos complementos de visualización mediante Options (Opciones) → Preferences (Preferencias) → Visualization Plugins (Complementos de visualización). Si dispone de una tarjeta gráfica con aceleración 3D, seleccione una aplicación, como el analizador de espectro OpenGL. Si el paquete xmms-plugins está instalado, pruebe el complemento de Infinity. En la parte izquierda, debajo del botón de menú, se encuentran cinco botones con letras distintas. Estos botones permiten el acceso rápido a menús, cuadros de diálogos y con- 130 figuraciones adicionales. Abra la lista de reproducción con PL (PL) y el ecualizador con EQ (EQ). 7.3 CDs: reproducción y extracción de contenido Puede escuchar sus pistas de música favoritas de muchas formas. Debe tener en cuenta, además, que es posible reproducir un CD o una versión digitalizada de éste. En la siguiente sección se abordan algunas aplicaciones para la reproducción de CDs, así como algunas aplicaciones que pueden emplearse para la extracción de contenido y para la codificación de CDs de audio. IMPORTANTE: Reproducción de CDs en forma CDDA y analógica Hay dos formas diferentes de reproducir CDs de audio. Los controladores de CDs y DVD que pueden desempeñar labores de reproducción analógica de CDs leen los datos de audio y los envían al dispositivo de salida del sonido. Algunos controladores externos conectados a través de PCMCIA, FireWire o USB precisan utilizar CDDA (Audio digital de disco compacto) para, en primer lugar, extraer los datos de audio y, a continuación, reproducirlos como PCM digital. Los reproductores a los que se hace referencia en las secciones siguientes no son compatibles con CDDA. Utilice XMMS si precisa de compatibilidad con CDDA. 7.3.1 Reproductor de CDs de audio KsCD KsCD es un reproductor de CDs de audio muy fácil de usar. Se integra en la barra de tareas de KDE y puede configurarse para comenzar a reproducir el CD de forma automática cada vez que se inserte. Para acceder al menú de la configuración, seleccione Extras (Funciones adicionales) → Configure KsCD (Configurar KsCD). Puede recuperar de un servidor CDDB de Internet información acerca del álbum y de las pistas; para ello, sin embargo, es preciso que KsCD se encuentre configurado adecuadamente. También puede cargar información CDDB para compartirla con otros usuarios. Utilice el cuadro de diálogo CDDB (CDDB) para recuperar y cargar información. Sonido en Linux 131 Figura 7.6 Interfaz de usuario de KsCD 7.3.2 Applet de GNOME para la reproducción de CDs Se trata de un sencillo applet que se integra en el panel de GNOME. Con el icono de herramientas, configure el funcionamiento del reproductor y seleccione un tema. Regule la reproducción haciendo uso de los botones que se encuentran en la parte inferior de la ventana del reproductor o utilizando el menú contextual, que se abre haciendo clic con el botón derecho del ratón en el icono del panel o en la ventana del reproductor. 7.3.3 Compresión de datos de audio La compresión de audio la pueden utilizar diversas herramientas. Las siguientes secciones incluyen descripciones de aplicaciones de líneas de comandos para la codificación y la reproducción de datos de audio, así como algunas aplicaciones gráficas que pueden realizar operaciones de compresión de audio. Herramientas de líneas de comandos para la codificación y la reproducción de datos de audio Ogg Vorbis (que se encuentra en el paquete vorbis-tools) es un formato de compresión de audio gratuito que en la actualidad es compatible con la mayor parte de reproductores de audio e incluso de reproductores de MP3 portátiles. La página Web del proyecto es http://www.xiph.org/ogg/vorbis. SUSE Linux incluye algunas herramientas que son compatibles con Ogg Vorbis. oggenc es una herramienta de línea de comandos que se emplea para codificar los 132 archivos WAV en Ogg. Basta con ejecutar oggenc myfile.wav para transformar un archivo .wav en Ogg Vorbis. La opción -h muestra una descripción general del resto de parámetros. Oggenc admite la codificación con una tasa de bits variable. De esta forma, se puede lograr un grado de compresión aún mayor. En vez de indicar la tasa de bits, especifique la calidad deseada mediante el empleo del parámetro -q; Por su parte, -b determina la tasa media de bits; -m y -M especifican la tasa de bits mínima y máxima. ogg123 es un reproductor Ogg basado en líneas de comandos. Inícielo con el comando del tipo ogg123 pistadeaudio.ogg. Compresión de datos de audio con Grip Grip es un reproductor y extractor de contenido de CDs de GNOME (a este respecto, consulte la Figura 7.7, “Extracción del contenido de CDs de audio con Grip” (p. 134)). La funcionalidad del reproductor de CDs se controla por completo mediante el uso de los botones que se encuentran en la parte inferior de la ventana. Controle la funcionalidad de extracción de contenido y de codificación con las pestañas que se encuentran en la parte superior de la ventana. Para visualizar y editar la información de las pistas y del álbum o para seleccionar las pistas cuyo contenido desea extraer, abra la pestaña Tracks (Pistas). Seleccione una pista haciendo clic en la casilla de verificación que se encuentra junto al título de la pista. Para editar la información de las pistas, haga clic en Toggle disc editor (Activar o desactivar editor de discos) y envíe sus modificaciones. La pestaña Rip (Extraer) selecciona el modo de extracción deseado y controla el proceso de extracción. Para consultar la configuración de Grip, acceda a la pestaña Config (Configurar). Utilice Status (Estado) para consultar el estado de la aplicación. Sonido en Linux 133 Figura 7.7 Extracción del contenido de CDs de audio con Grip Compresión de datos de audio con KAudioCreator KAudioCreator es una completa aplicación para la extracción del contenido de CDs (consulte la Figura 7.8, “Extracción del contenido de CDs de audio con KAudioCreator” (p. 135)). Una vez que se haya iniciado, enumera todas las pistas del CD en la pestaña CD Tracks (Pistas del CD). Seleccione las pistas cuyo contenido desea extraer y codificar. Para editar la información de las pistas, utilice Album Editor (Editor de álbumes), que se ubica en File (Archivo) → Edit Album (Editor de álbumes). Si no desea editar la información, inicie el proceso de extracción y codificación con la opción File (Archivo) → Rip Selection (Selección de extracción). Realice el seguimiento del progreso de estas tareas en la pestaña Jobs (Tareas). KAudioCreator, siempre y cuando esté configurado adecuadamente, genera también archivos de listas de reproducción para la selección que pueden reproducirse en reproductores, tales como amaroK o XMMS. 134 Figura 7.8 Extracción del contenido de CDs de audio con KAudioCreator Compresión de CDs de audio con Konqueror Antes de iniciar el proceso de compresión con Konqueror, configure la gestión de CDs de audio y del codificador Ogg Vorbis en el Centro de Control de KDE. Seleccione Sound & Multimedia (Sonido y multimedia) → Audio CDs (CDs de audio). El módulo de configuración se divide en tres pestañas: General (General), Names (Nombres) y Ogg Vorbis Encoder (Codificador Ogg Vorbis). Habitualmente, los dispositivos de CD correctos se detectan automáticamente. No modifique la configuración por defecto a menos que la detección automática falle y necesite establecer el dispositivo del CD. La corrección de errores y la prioridad del codificador también pueden establecerse aquí. En la pestaña Ogg Vorbis Encoder (Codificador Ogg Vorbis) se determina la calidad de la codificación. Para configurar la consulta en línea de la información acerca del álbum, las pistas y el artista, seleccione la opción Add Track Information (Añadir información sobre las pistas). Inicie el proceso de extracción insertando el CD en la unidad de CD-ROM y escriba audiocd:/ en la barra Location (Ubicación). Konqueror mostrará una lista con las Sonido en Linux 135 pistas contenidas en el CD y algunas carpetas (consulte la Figura 7.9, “Extracción de datos de audio con Konqueror” (p. 136)). Figura 7.9 Extracción de datos de audio con Konqueror Para conservar en su disco los datos de audio sin comprimir, basta con seleccionar los archivos .wav y arrastrarlos a otra ventana de Konqueror para, a continuación, copiarlos en su destino final. Para iniciar la codificación con Ogg Vorbis, arrastre la carpeta Ogg Vorbis a otra ventana de Konqueror. La codificación se iniciará cuando suelte la carpeta de Ogg Vorbis en su destino. 7.4 Grabación en disco duro con Audacity Grabe y edite archivos de audio con Audacity (paquete audacity). Esta operación se denomina grabación en disco duro. Seleccione el idioma la primera vez que inicie el programa. En otras ocasiones, si desea modificar la configuración del lenguaje, utilice la opción File (Archivo) → Preferences (Preferencias) → Interface (Interfaz). La modificación del idioma será efectiva la próxima vez que inicie el programa. 136 Figura 7.10 Vista espectral de los datos de audio 7.4.1 Grabación de archivos WAV e importación de archivos Haga clic en el botón de grabación de color rojo para crear una pista vacía en estéreo y comenzar la grabación. Para modificar los parámetros estándar, realice los ajustes deseados mediante la opción File (Archivo) → Preferences (Preferencias). Las opciones Audio I/O (E/S de audio) y Quality (Calidad) son importantes para la grabación. Al pulsar el botón de grabación se crean nuevas pistas incluso si ya existen otras. En un principio, esto podría llevar a confusiones, debido a que estas pistas no pueden verse en la ventana del programa en su tamaño normal. Para importar archivos de audio, seleccione la opción Project (Proyecto) → Import Audio (Importar audio). El programa es compatible con el formato WAV y el formato Ogg Vorbis comprimido. Para obtener más información sobre este formato, consulte la Sección 7.3.3, “Compresión de datos de audio” (p. 132). Sonido en Linux 137 7.4.2 Edición de archivos de audio Abra el menú AudioTrack (AudioTrack), que se encuentra situado a la izquierda de la pista. Este menú ofrece diversas opciones de vistas distintas y operaciones básicas de edición. Para cambiar el nombre de la pista, seleccione la opción Name (Nombre) y escriba un nombre nuevo. Los distintos modos de visualización de que dispone Audacity incluyen Waveform (Configuración de onda), Waveform (dB) (Configuración de onda [dB]), Spectrum (Espectro) y Pitch (Tono). Elija el modo que mejor se adapte a sus necesidades. Si desea editar por separado cada canal de una pista en estéreo, seleccione Split Track (Dividir pista). Como consecuencia, cada canal se tratará como una pista independiente. Establezca el Sample Format (Formato de muestra) en bits y la Sample Rate (Tasa de muestra) en Hz para cada pista. Antes de poder hacer uso de la mayor parte de las herramientas que se encuentran en el menú Edit (Editar), seleccione en primer lugar el canal y el segmento de la pista que desea editar. Una vez que haya realizado su selección, podrá aplicar toda clase de modificaciones y efectos a la pista seleccionada. En función del tipo de archivo elegido, se ofrecen diversos formatos de visualización para la selección de segmentos en la opción View (Ver) → Set Selection Format (Establecer formato de selección). Con la opción Set Snap-To Mode (Establecer modo ajustar), los límites del segmento se pueden adaptar automáticamente al formato de visualización seleccionado. Por ejemplo, si selecciona la opción PAL frames (Tramas PAL) como formato de visualización y activa Snap-To (Ajustar), los límites del segmento se seleccionan siempre en múltiplos de tramas. Todas las herramientas de edición incluyen una serie de consejos que hacen que su empleo no plantee grandes dificultades. La función Undo History (Deshacer historial), a la que se accede a través de View (Ver) → History (Historial), es una función de gran utilidad que permite visualizar los pasos de edición más recientes y deshacerlos haciendo clic en la lista. Utilice la opción Discard (Descartar) con precaución, pues tal opción elimina los pasos de edición de la lista. Una vez descartados, estos pasos no se podrán deshacer en otra ocasión. 138 Figura 7.11 Espectro El analizador integrado de espectro ayuda a localizar rápidamente la presencia de cualquier ruido. Visualice el espectro del segmento seleccionado con la opción View (Ver) → Plot Spectrum (Trazar espectro). Seleccione una escala de frecuencia logarítmica en octavas con la opción Log frequency (Frecuencia logarítmica). Si desplaza el puntero del ratón por el espectro, las frecuencias de los picos se muestran de forma automática junto con las notas correspondientes. Elimine las frecuencias no deseadas con la opción Effect (Efecto) → FFT Filter (Filtro FFT). En relación con el proceso de filtrado, puede ser necesario reajustar la amplitud de la señal mediante el empleo de la opción Amplify (Amplificar). Utilice esta misma opción, Amplify (Amplificar) para comprobar la amplitud. El valor establecido por defecto en New Peak Amplitude (Amplitud de pico nuevo) es 0,0 dB. Este valor representa la amplitud máxima posible del formato de audio seleccionado. La opción Amplification (Amplificación), por su parte, muestra el valor necesario para amplificar el segmento seleccionado a este valor de pico. La presencia de un valor negativo es señal de sobreamplificación. 7.4.3 Almacenamiento y exportación Para guardar el proyecto completo, seleccione File (Archivo) → Save Project (Guardar proyecto) o Save Project As (Guardar proyecto como). Esta operación generará un ar- Sonido en Linux 139 chivo XML con la extensión .aup, que indicará, por lo tanto, que se trata de un proyecto. Los datos de audio reales se guardan en un directorio con nombre idéntico al nombre del proyecto al que se le añade _data. El proyecto completo o el segmento que se encuentre seleccionado en ese momento puede exportarse igualmente como archivo WAV estéreo. Para exportar el proyecto en formato Ogg Vorbis, consulte la información que se encuentra disponible en la Sección 7.3.3, “Compresión de datos de audio” (p. 132). 7.5 Grabación y reproducción directas de archivos WAV Los comandos arecord y aplay del paquete alsa ofrecen una interfaz muy sencilla y flexible para el empleo de dispositivos PCM. Dichos comandos, arecord y aplay, se pueden emplear para grabar y reproducir datos de audio en formato WAV y en otros formatos. El comando arecord -d 10 -f cd -t wav mysong.wav permite grabar un archivo WAV de 10 segundos de duración con calidad de CD (16 bits, 44,1 kHz). Consulte todas las opciones de arecord y aplay ejecutando ambos comandos con la opción --help. qaRecord (incluido en el paquete kalsatools) es un sencillo programa de grabación que cuenta con una interfaz gráfica y una pantalla de niveles. Debido a que este programa utiliza un buffer interno de aproximadamente 1 MB (configurable mediante la opción --buffersize), es posible hacer uso de la función de grabación ininterrumpida incluso con hardware lento, especialmente si se ejecuta con prioridad de tiempo real. Durante la grabación, el tamaño de buffer que se esté empleando en ese momento se muestra en la línea de estado que se encuentra en la opción Buffer (Buffer), mientras que el tamaño máximo de buffer necesario hasta ese momento para la grabación se muestra en la opción Peak (Pico). 140 Figura 7.12 QARecord, una sencilla aplicación para la grabación en disco duro Sonido en Linux 141 Televisión, vídeo, radio y cámara web 8 En este capítulo se introducen algunas aplicaciones Linux básicas de televisión, vídeo, radio y cámara web. Aprenda a configurar y a utilizar motv para ver televisión analógica, mediante una cámara web, y para examinar las páginas del teletexto. Utilice xawtv4 para difusiones digitales de vídeo. Las cámaras web se pueden ejecutar con gqcam. Se puede acceder a la información EPG con nxtvepg o xawtv4. 8.1 Uso de motv para ver la televisión motv es un sucesor mejorado de xawtv. Incorpora todas las funciones esenciales en la interfaz de usuario. Inicie la aplicación con Multimedia (Multimedia) → Video (Vídeo) → motv. Iníciela en la línea de comandos con motv. Al principio, cuando se inicia la aplicación, sólo aparece una ventana de televisión. Abra una ventana de menú haciendo clic con el botón derecho en ella. Televisión, vídeo, radio y cámara web 143 Figura 8.1 Aplicación de televisión motv 8.1.1 Origen de vídeo y búsqueda en la red En Settings (Ajustes) → Input (Entrada), seleccione el origen de vídeo. Si selecciona Television (Televisión), configure la red de difusión antes de iniciar la aplicación. Esto se lleva a cabo de forma automática con la búsqueda en la red, que se encuentra también en el menú Settings (Ajustes). Si hace clic en Save settings (Guardar ajustes), la red encontrada se introducirá en el archivo .xawtv del directorio personal y estará disponible la siguiente vez que inicie la aplicación. SUGERENCIA: Selección de canales Si no desea examinar todos los canales disponibles, busque el siguiente canal con Ctrl + ↑ . Si es necesario, ajuste después la frecuencia de difusión con ← o →. 8.1.2 Recuperación de datos de audio La salida de audio de la tarjeta de televisión se conecta a la entrada de línea de la tarjeta de sonido, a los altavoces o a un amplificador. Algunas tarjetas de televisión pueden cambiar el volumen de la salida de audio. Por tanto, el volumen se puede definir con las barras reguladoras que aparecen después de seleccionar Settings (Ajustes) → Slider 144 (Barra reguladora). Esta ventana también proporciona las barras reguladoras de brillo, contraste y color. Para utilizar la tarjeta de sonido para realizar playback de audio, compruebe los ajustes del mezclador mediante gamix, que se describe en la Sección 7.1, “Mezcladores” (p. 119). Para las tarjetas de sonido que cumplan con las especificaciones AC97, defina InputMUX (Multiplexor de entrada) en Line (Línea). A continuación, el volumen se puede ajustar con las barras reguladoras Master (Maestro) y Line (Línea). 8.1.3 Proporciones de pantalla y modo de pantalla completa La mayoría de las imágenes de televisión tienen una proporción de altura y de anchura de 4:3. Estas proporciones se pueden definir en Tools (Herramientas) → Screen Dimensions (Dimensiones de pantalla). Si 4:3 se selecciona aquí (éste es el ajuste por defecto), las dimensiones de la pantalla se conservan de forma automática, incluso cuando se cambia el tamaño de la pantalla. Con F o Tools (Herramientas) → Fullscreen (Pantalla completa), cambia al modo de pantalla completa. Si la imagen de televisión en modo de pantalla completa no se aumenta hasta el tamaño de monitor completo, es necesario ajustarla de forma más precisa. Muchas tarjetas gráficas pueden aumentar la imagen de televisión en modo de pantalla completa hasta el tamaño completo del monitor sin cambiar el modo gráfico. Si la tarjeta no admite esta función, el modo de edición gráfica debe cambiarse a 640x480 para el modo de pantalla completa. Cree la configuración relacionada en Settings (Ajustes) → Configuration (Configuración). Después de reiniciar motv, el modo de monitor también se cambia si se ha cambiado al modo de pantalla. SUGERENCIA: Almacenamiento de la configuración en .xawtv El archivo .xawtv se crea de forma automática y se actualiza haciendo clic en Settings (Ajustes) → Save settings (Guardar ajustes). Los difusores se guardan junto con la configuración. En la página Man encontrará más información acerca del archivo de configuración de xawtvrc. Televisión, vídeo, radio y cámara web 145 8.1.4 Menú del lanzador Utilice el menú del lanzador para iniciar otras aplicaciones que vaya a utilizar con motv. Inicie el mezclador de audio gamix y la aplicación de teletexto alevt, por ejemplo, mediante un acceso directo del teclado. Las aplicaciones que se inician desde motv deben introducirse en el archivo .xawtv. Las entradas deberían tener el siguiente aspecto: [launch] Gamix = Ctrl+G, gamix AleVT = Ctrl+A, alevt El nombre de la aplicación debería ir seguido del acceso directo y del comando utilizado para iniciar la aplicación. Inicie las aplicaciones introducidas en [launch] mediante el menú Tool (Herramientas). 8.2 Compatibilidad con el teletexto Utilice alevt para examinar las páginas del teletexto. Inicie la aplicación con Multimedia (Multimedia) → Video (Vídeo) → alevt o en la línea de comandos con alevt. La aplicación guarda todas las páginas de la estación seleccionada que motv acaba de activar. Examine las páginas introduciendo el número de página deseado o haciendo clic en un número de página. Avance o retroceda por las páginas haciendo clic en << o en >>, ubicado en la parte inferior de la ventana. Las versiones recientes de motv y de su sucesor xawtv4 incluyen sus propias aplicaciones de visores de teletexto: mtt (motv) y mtt4 (xawtv4). mtt4 admiten incluso tarjetas DVB. 8.3 Cámaras web y motv Si su cámara web es ya compatible con Linux, acceda a ella con motv. Encontrará un resumen de los dispositivos USB compatibles en http://www.linux-usb.org. Si ya ha utilizado motv para acceder a la tarjeta de televisión antes de acceder a la cámara web, se cargará el controlador bttv. El controlador de la cámara web se carga de forma automática al conectar la cámara web al USB. Inicie motv en la línea de comandos con el parámetro -c /dev/video1 para acceder a la cámara web. Acceda a la tarjeta de televisión con motv -c /dev/video0. 146 Al conectar la cámara web al USB antes de haber cargado de forma automática el controlador bttv (por ejemplo, iniciando una aplicación de televisión), /dev/video0 se reserva para la cámara web. En este caso, si inicia motv con el parámetro -c /dev/video1 para acceder a la tarjeta de televisión, puede que aparezca un mensaje de error porque el controlador bttv no se haya cargado de forma automática. Resuelva este problema cargando el controlador por separado con modprobe bttv como usuario root. Acceda a una descripción general de los dispositivos de vídeo configurables del sistema con motv -hwscan. 8.4 La revista de televisión para equipos nxtvepg En algunos difusores, se transmite una señal de EPG (Guía electrónica del programa) junto con la señal de teletexto. Puede ver esta guía electrónica de forma sencilla mediante el programa nxtvepg. Para hacerlo, sin embargo, debe disponer de una tarjeta de televisión compatible con el controlador bttv y poder recibir una de las difusiones de canales con una EPG. Con nxtvepg, las difusiones se clasifican de acuerdo con el canal y el tema, como movie (película) y sport (deporte), y se filtran según los criterios, como Live (Directo), Stereo (Estéreo) o Subtitle (Subtítulo). Inicie la aplicación con Multimedia (Multimedia) → Video (Vídeo) → nxtvepg o en la línea de comandos con nxtvepg. 8.4.1 Importación de la base de datos EPG Para configurar y actualizar la base de datos del programa mediante la señal EPG, configure el sintonizador de la tarjeta de televisión en una estación que difunda EPG. Esto se puede hacer con una aplicación de televisión, como motv o nxtvepg. Las aplicaciones sólo pueden acceder al sintonizador de una en una. Si configura un difusor de EPG en motv, nxtvepg comienza de forma inmediata a importar la lista actual de programas de televisión. Se muestra el progreso. Televisión, vídeo, radio y cámara web 147 Figura 8.2 La revista de televisión electrónica nxtvepg Si no ha iniciado una aplicación de televisión, deje que nxtvepg busque difusores de EPG. Para hacerlo, utilice Configure (Configurar) → Provider scan (Búsqueda de proveedores). Use .xatv (Utilizar .xatv) se activa por defecto. Esto indica que nxtvepg está accediendo a los difusores guardados en este archivo. SUGERENCIA: Solución de problemas Si surgen problemas, compruebe si se ha elegido el origen de vídeo adecuado en TV card input (Entrada de tarjeta de televisión). Seleccione uno de los proveedores de EPG encontrados en Configure (Configurar) → Select Provider (Seleccionar proveedor). Configure (Configurar) → Merge Providers (Fusionar proveedores) crea asociaciones flexibles entre las distintas bases de datos de proveedores. 8.4.2 Clasificación de los programas nxtvepg proporciona una función de filtro muy útil para gestionar incluso las ofertas de programas más amplias. Active una lista de selección de red con Configure (Configurar) → Show networks (Mostrar redes). El menú Filter (Filtro) ofrece muchas de 148 las funciones de filtro. Haga clic con el botón derecho en la lista de programas para abrir un menú de filtros especiales en el que activar funciones contextuales de filtro. El menú Navigate (Navegar) tiene especial interés. Éste se construye directamente a partir de los datos EPG. Aparece en el idioma proporcionado por la red. 8.5 Uso de xawtv4 para ver difusiones digitales de vídeo Como el hardware se ha configurado de forma correcta con YaST, inicie xawtv4 en el menú principal (Multimedia [Multimedia] → Video [Vídeo] → xawtv4 ). Antes de que pueda ver sus difusiones favoritas, cree una base de datos de estaciones DVB. Figura 8.3 Ejecución de xawtv4 Haga clic con el botón derecho en la ventana de inicio para abrir la ventana de control (consulte la Figura 8.3, “Ejecución de xawtv4” (p. 149)). Inicie un escaneo en las estaciones DVB disponibles con Edit (Editar) → Scan DVB (Escanear DVB). Se abrirán un escáner de canales y una ventana del navegador. Seleccione un grupo para preparar el escaneo. Esto se puede realizar de forma manual con Commands (Comandos) → Tune manually (Sintonizar de forma manual) si ya conoce los parámetros de sintonizaTelevisión, vídeo, radio y cámara web 149 ción del grupo o solicitándolos en una base de datos incorporada de xawtv4 mediante Database → _country_ → _channel number_ (replace _country_ y _channel_number_) por los valores de la ubicación. En cuanto se sintoniza el escáner, los primeros datos se muestran en la ventana del navegador. Lance un escaneo completo de todas las estaciones disponibles con Command (Comando) → Full Scan (Escaneo completo). Mientras se ejecuta el escáner, puede seleccionar sus estaciones favoritas y añadirlas a la lista de estaciones arrastrándolas a la ventana de control. Salga del escáner de canales y seleccione uno de los canales para comenzar a ver la difusión. SUGERENCIA: Edición de la lista de estaciones Con los accesos directos del teclado, controle la selección de canales con el teclado. Para obtener un acceso directo a una estación de la lista, seleccione la estación y haga clic en Edit (Editar) → Edit Station (Editar estación). Se abrirá un cuadro de diálogo denominado TV Station Properties (Propiedades de estación de televisión). Introduzca el acceso directo y salga del cuadro de diálogo con OK (Aceptar). Este cuadro de diálogo también le permite definir submenús que contengan grupos de estaciones (como “news” [noticias] o “private” [privadas]). El paquete de software xawtv4 contiene varias aplicaciones multimedia independientes más útiles: pia4 Reproductor de películas controlado por la línea de comandos que se puede utilizar para reproducir flujos de vídeo grabados por xawtv4. mtt4 Navegador de teletexto (consulte la Figura 8.4, “Navegador de teletexto mtt4” (p. 151)). 150 Figura 8.4 Navegador de teletexto mtt4 alexplore Aplicación de escáner de canales DVB independiente. Su funcionalidad se integra en xawtv4. dvbradio Reproductor de radio DVB. Utilícelo para escuchar los flujos de radio DVB-S cuando haya terminado el escaneo de estaciones inicial (consulte la Figura 8.5, “Radio DVB” (p. 151)). Figura 8.5 Radio DVB Televisión, vídeo, radio y cámara web 151 dvbrowse Aplicación de navegador EPG. Utilícelo para obtener información EPG cuando haya terminado el escaneo de estaciones inicial. 152 K3b: Grabación de CDs o DVD 9 K3b es un programa completo para escribir CDs y DVD de datos y de audio. Inicie el programa desde el menú principal o introduciendo el comando k3b. En las siguientes secciones se le explica brevemente cómo comenzar un proceso de grabación básico para grabar su primer CD o DVD en Linux. 9.1 Creación de un CD de datos Para crear un CD de datos, vaya a Archivo → New Project (Nuevo proyecto) → New Data Project (Nuevo proyecto de datos). La vista del proyecto aparece en la parte inferior de la ventana, como se muestra en la Figura 9.1, “Creación de un CD de datos nuevo” (p. 154). Arrastre los directorios o archivos por separado que desee desde el directorio personal a la carpeta del proyecto y suéltelos allí. Guarde el proyecto con el nombre que prefiera mediante File (Archivo) → Save as (Guardar como). K3b: Grabación de CDs o DVD 153 Figura 9.1 Creación de un CD de datos nuevo A continuación, seleccione Burn (Grabar) en la barra de herramientas o pulse Control + B . Se abre un cuadro de diálogo con seis pestañas que ofrece varias opciones para escribir CD. Consulte la Figura 9.2, “Personalización del proceso de grabación” (p. 154). Figura 9.2 Personalización del proceso de grabación La pestaña Writing (Escritura) tiene varios ajustes para el dispositivo de grabación, para la velocidad y para las opciones de grabación. Las siguientes opciones se ofrecen aquí: 154 Dispositivo de grabación La grabadora detectada se muestra en este menú emergente. En esta pestaña también puede seleccionar la velocidad. AVISO: Seleccione la velocidad de escritura con cuidado Normalmente, debería seleccionar Auto (Automático), que elige la máxima velocidad de escritura posible. Sin embargo, si aumenta este valor pero el sistema no es capaz de enviar datos lo suficientemente rápido, aumenta el riesgo de que se produzcan errores con el búfer. Modo de escritura Esta opción determina cómo escribe un CD el láser. En DAO (disco al instante), el láser no se desactiva mientras se escribe el CD. Se recomienda este modo para crear CD de audio. Sin embargo, no todas las grabadoras de CD lo admiten. En modo TAO (pista al instante), se utiliza un proceso de escritura diferente para cada pista. El modo RAW no se utiliza muy a menudo, porque la grabadora no corrige los datos. La mejor configuración es Auto (Automático), porque permite que K3b utilice la configuración más adecuada. Simulate (Simular) Esta función se puede utilizar para comprobar si el sistema admite la velocidad de escritura seleccionada. La escritura se lleva a cabo con el láser desactivado para probar el sistema. On the Fly (Grabación directa) Graba los datos deseados sin crear primero un archivo de imagen (no utilice esta función en máquinas que tengan un rendimiento bajo). Un archivo de imagen (también denominado imagen ISO) es un archivo que contiene todo el contenido del CD que se escribe después en el CD exactamente cómo es. Only Create Image (Crear sólo imagen) Esta opción crea un archivo de imagen. Defina la vía para este archivo en Temporary File (Archivo temporal). El archivo de imagen se puede escribir en CD después. Para hacerlo, utilice Tools (Herramientas) → CD (CD) → Burn CD Image (Grabar imagen de CD). Si se utiliza esta opción, todas las demás de esta sección se desactivan. Remove Image (Eliminar imagen) Elimina el archivo de imagen temporal del disco duro cuando se ha acabado. K3b: Grabación de CDs o DVD 155 Verify Written Data (Verificar datos escritos) Comprueba la integridad de los datos escritos comparando las sumas de MD5 de los datos originales y grabados. Sólo se puede acceder a la pestaña Image (Image) si se ha seleccionado la opción Only create image (Crear sólo imagen) de la pestaña anterior. En este caso, puede determinar el archivo en el que se escribe el ISO. La pestaña Settings (Ajustes) contiene dos opciones: Datatrack Mode (Modo Pista de datos) y Multisession Mode (Modo Multisesión). Las opciones del modo Datatrack Mode (Modo Pista de datos) contienen la configuración de cómo se deben escribir las pistas de datos. En general, auto (automático) se considera el método mejor adaptado. El modo Multisession Mode (Modo Multisesión) se utiliza para añadir datos a un CD escrito pero no finalizado. En la pestaña Volume Desc (Descripción del volumen), introduzca información general que se pueda utilizar para identificar un proyecto de datos en concreto, su autor y editor, así como la aplicación y el sistema operativo utilizados en la creación de este proyecto. En File system (Sistema de archivos), especifique la configuración del sistema de archivos del CD (RockRidge, Joliet o UDF). Determine también cómo se tratan los enlaces simbólicos, los permisos de archivos y los espacios en blanco. En la pestaña Advanced (Avanzados), los usuarios experimentados pueden realizar más ajustes. Después de adaptar todos los ajustes a sus necesidades, comience el proceso de grabación con Burn (Grabar). Como alternativa, guarde esta configuración para utilizarla y ajustarla en el futuro con Save (Guardar). 9.2 Creación de un CD de audio Fundamentalmente, no hay diferencias significativas entre crear un CD de audio y crear un CD de datos. Seleccione File (Archivo) → New Audio Project (Nuevo proyecto de audio). Arrastre y suelte cada pista de audio a la carpeta del proyecto. Los datos de audio deben estar en formato WAV u Ogg Vorbis. Determine la secuencia de las pistas moviéndolas hacia arriba o hacia abajo en la carpeta del proyecto. Con la ayuda de Texto de CD, puede añadir cierta información de texto a un CD, como el título del CD, el nombre del artista y el nombre de la pista. Los reproductores de CD que admiten esta función pueden leer y mostrar esta información. Para añadir informa- 156 ción de Texto de CD a las pistas de audio, seleccione primero la pista. Haga clic con el botón derecho y seleccione Properties (Propiedades). Se abre una nueva ventana en la que introducir información. El cuadro de diálogo para grabar un CD de audio no es muy diferente del cuadro de diálogo para grabar un CD de datos. Sin embargo, los modos Disc at once (Disco al instante) y Track at once (Pista al instante) tienen más importancia. El modo Track at once (Pista al instante) introduce un silencio de dos segundos después de cada pista. SUGERENCIA: Protección de la integridad de los datos Al grabar CD de audio, elija una velocidad de grabación menor para reducir el riesgo de errores de grabación. Después de adaptar todos los ajustes a sus necesidades, comience el proceso de grabación con Burn (Grabar). Como alternativa, guarde esta configuración para utilizarla y ajustarla en el futuro con Save (Guardar). 9.3 Copia de un CD o DVD Seleccione Tools (Herramientas) → Copy CD (Copiar CD) o Tools (Herramientas) → Copy DVD (Copiar DVD) en función del medio. En el cuadro de diálogo que se abre, configure los ajustes del dispositivo de lectura y de escritura como se muestra en la Figura 9.3, “Copia de un CD” (p. 158). Las opciones de escritura explicadas también están disponibles aquí. Una función adicional habilita la creación de varias copias del CD o del DVD. K3b: Grabación de CDs o DVD 157 Figura 9.3 Copia de un CD Marque On the fly (Grabación directa) para grabar el CD tan pronto como se haya leído o seleccione Only create image (Crear sólo imagen) para crear una imagen en la vía especificada en Temp Directory (Directorio temporal) → Write image file to (Escribir archivo de imagen en) y grabar la imagen posteriormente. 9.4 Escritura de imágenes ISO Si ya dispone de una imagen ISO, vaya a Tools (Herramientas) → CD (CD) → Burn CD image (Grabar imagen de CD). Se abre una ventana en la que introducir la ubicación de la Image to Burn (Imagen por grabar). K3b calcula una suma de comprobación y la muestra en MD5 Sum (Suma de MD5). Si el archivo ISO se descargó de Internet, esta suma muestra si la descarga fue correcta. Utilice las pestañas Options (Opciones) y Advanced (Avanzados) para establecer las preferencias. Para grabar el CD, haga clic en Start (Iniciar). 158 9.5 Creación de un CD o DVD multisesión Los discos multisesión se pueden utilizar para escribir datos en más de una sesión de grabación. Esto es útil, por ejemplo, para escribir copias de seguridad más pequeñas que el medio. En cada sesión, puede añadir otra copia de seguridad. Lo más interesante es que no sólo está limitado a CDs y DVD de datos. También es posible añadir sesiones de audio en un disco multisesión. Para iniciar un nuevo disco multisesión, haga lo siguiente: 1 Cree primero el disco de datos y añada todos los archivos. No es posible comenzar con una sesión de CD de audio. Asegúrese de que no llena todo el disco porque, de lo contrario, no podrá añadir ninguna sesión nueva. 2 Grabe los datos con Project (Proyecto) → Burn (Grabar). Aparecerá un cuadro de diálogo. 3 Vaya a la pestaña Settings (Ajustes) y seleccione Start Multisession (Iniciar multisesión). 4 Configure las demás opciones cuando sea necesario. Consulte también la Sección 9.1, “Creación de un CD de datos” (p. 153). 5 Inicie la sesión de grabación con Burn (Grabar). Después de llevar a cabo un proceso de grabación con éxito, ya ha creado un disco multisesión. Siempre que el medio contenga suficiente espacio, si lo desea, puede añadir más sesiones. Finalice los discos sólo si está seguro de que no necesita ninguna sesión nueva o si el espacio está ocupado. NOTA: Acerca del espacio de almacenamiento en discos multisesión Tenga en cuenta que los discos multisesión necesitan espacio para contabilizar todas las entradas de las sesiones. Esto reduce la cantidad de espacio libre en disco. La cantidad depende del número de sesiones. K3b: Grabación de CDs o DVD 159 9.6 Información adicional Aparte de las dos funciones principales descritas anteriormente, K3b ofrece otras funciones, como la creación de copias de DVD, la lectura de datos de audio en formato WAV, la reescritura de CD y la reproducción de música con el reproductor de audio integrado. En http://k3b.sourceforge.net encontrará una descripción detallada de todas las funciones del programa disponibles. 160 Parte IV. Oficina El paquete de ofimática OpenOffice.org 10 OpenOffice.org es un potente paquete de ofimática que ofrece herramientas para todo tipo de tareas, como la elaboración de textos, el uso de hojas de cálculo o la creación de gráficos y presentaciones. Con OpenOffice.org es posible utilizar los mismos datos en diferentes plataformas informáticas. Asimismo, se pueden abrir y editar archivos en formatos de Microsoft Office y guardarlos de nuevo en este formato, si es necesario. En este capítulo sólo se indican los conocimientos básicos necesarios para empezar a trabajar con OpenOffice.org. Inicie la aplicación desde el menú SUSE o mediante el comando ooffice. OpenOffice.org consta de varios módulos de aplicación (subprogramas) diseñados para interactuar unos con otros. En la Tabla 10.1, “Módulos de las aplicaciones de OpenOffice.org” (p. 163) se muestra una lista. Las explicaciones de este capítulo se centran en Writer. En la ayuda en línea, descrita en Sección 10.6, “Información adicional” (p. 170), hay una descripción completa de cada módulo. Tabla 10.1 Módulos de las aplicaciones de OpenOffice.org Writer Potente aplicación de procesamiento de textos Calc Aplicación de hojas de cálculo que incluye una utilidad para diagramas Draw Aplicación de dibujo para crear gráficos vectoriales Math Aplicación para la generación de fórmulas matemáticas El paquete de ofimática OpenOffice.org 163 Impress Aplicación para la creación de presentaciones Base Aplicación de base de datos La apariencia de las aplicaciones varía en función del escritorio o del gestor de ventanas que se utilice. Además, para los cuadros de diálogo de apertura y cierre se utiliza el formato del escritorio en uso. Independientemente de la apariencia, la distribución y las funciones básicas son las mismas. 10.1 Compatibilidad con otras aplicaciones ofimáticas OpenOffice.org puede trabajar con documentos, hojas de cálculo, presentaciones y bases de datos de Microsoft Office. Pueden abrirse sin problemas como cualquier otro archivo y guardarse de nuevo en su formato. Debido a que los formatos de Microsoft son cerrados y a que las especificaciones no están disponibles para otras aplicaciones, en ocasiones se dan problemas de formato. Si tiene problemas con algún documento, considere la opción de abrirlo de nuevo con su aplicación original y volver a guardarlo en un formato abierto, como por ejemplo RTF para documentos o CSV para hojas de cálculo. Para convertir varios documentos, por ejemplo al utilizar por primera vez la aplicación, seleccione File (Archivo) → Wizard (Asistente) → Document Converter (Conversor de documentos). Elija el formato de archivo a partir del que se realizará la conversión. Hay disponibles varios formatos de StarOffice y Microsoft Office. Una vez seleccionado el formato, haga clic en Next (Siguiente) y especifique las ubicaciones en las que OpenOffice.org debe buscar plantillas y documentos para la conversión y en qué directorio se colocarán los archivos convertidos. Antes de continuar, asegúrese de que los ajustes sean los adecuados. Haga clic en Next (Siguiente) para ver un resumen de las acciones que se realizarán, lo que le da una nueva oportunidad de comprobar que todos los ajustes son correctos. Finalmente, comience la conversión haciendo clic en Convert (Convertir). IMPORTANTE: Búsqueda de archivos de Windows Los documentos de una partición Windows suelen encontrarse en un subdirectorio de /windows. 164 Existen varias opciones para compartir documentos con otros usuarios. Si el destinatario sólo necesita ver el documento, expórtelo a PDF con File (Archivo) → Exportar as PDF (Exportar como PDF). Los archivos PDF se pueden ver en cualquier plataforma con un visor como Adobe Acrobat Reader. Para compartir un documento para editarlo, utilice uno de los formatos de documento normales. Los formatos por defecto cumplen con el estándar OASIS para formato XML, por lo que son compatibles con un gran número de aplicaciones. Los formatos TXT y RTF, aunque tienen pocas opciones de formato, pueden ser una buena opción para documentos de texto. CSV es útil para hojas de cálculo. OpenOffice.org también ofrece otros formatos que el destinatario puede preferir, en especial formatos de Microsoft. OpenOffice.org está disponible para varios sistemas operativos. Esto lo convierte en una herramienta excelente para grupos de usuarios que necesiten compartir archivos con frecuencia y no utilicen el mismo sistema en sus equipos. 10.2 Figura 10.1 Procesamiento de textos con Writer Writer de OpenOffice.org El paquete de ofimática OpenOffice.org 165 Existen dos maneras de crear un documento nuevo. Para crear un documento desde cero, utilice File (Archivo) → New (Nuevo) → Text document (Documento de texto). Si desea utilizar un formato estándar y elementos predefinidos para los documentos, pruebe con un asistente. Los asistentes son pequeñas utilidades que permiten tomar algunas decisiones básicas para, a continuación, crear un documento a partir de una plantilla. Por ejemplo, para crear una carta comercial, haga clic en File (Archivo) → Wizards (Asistentes) → Letter (Carta). Mediante los cuadros de diálogo del asistente, cree con facilidad un documento básico con un formato estándar. Puede verse un ejemplo del cuadro de diálogo de un asistente en la Figura 10.2, “Un asistente de OpenOffice.org” (p. 166). Figura 10.2 Un asistente de OpenOffice.org Introduzca el texto que desee en la ventana del documento. Utilice la barra de herramientas Formatting (Aplicar formato) o el menú Format (Formato) para ajustar la apariencia del documento. Utilice el menú File (Archivo) o los botones correspondientes de la barra para imprimir y guardar el documento. Añada elementos adicionales al documento, como por ejemplo tablas, imágenes y diagramas, con las opciones del menú Insert (Insertar). 166 10.2.1 Selección de texto Para seleccionar texto, haga clic al comienzo del texto que desee seleccionar y, sin soltar el botón del ratón, mueva el cursor hacia el final del intervalo (que puede incluir desde varios caracteres o líneas hasta párrafos enteros). Suelte el botón cuando todo el texto que desee aparezca seleccionado. El texto seleccionado aparece con los colores invertidos. Abra un menú contextual haciendo clic con el botón derecho en la selección. Utilice el menú contextual para cambiar la fuente, el estilo de la fuente y otras propiedades del texto. El texto seleccionado se pude cortar o copiar en el portapapeles. El texto cortado o copiado se puede pegar de nuevo en otro lugar del documento. Utilice el menú contextual, el menú Edit (Editar) o los iconos correspondientes de la barra para acceder a estas funciones. 10.2.2 Desplazamiento por documentos grandes El navegador muestra información sobre el contenido de los documentos. También permite desplazarse rápidamente a los diferentes elementos incluidos. Por ejemplo, utilice el navegador para ver una descripción general de todos los capítulos o una lista de las imágenes incluidas en el documento. Para abrirlo, seleccione Edit (Editar) → Navigator (Navegador). La Figura 10.3, “Navegador de Writer.” (p. 168) muestra el navegador en acción. Los elementos que aparecen en el navegador varían en función del documento cargado en Writer. El paquete de ofimática OpenOffice.org 167 Figura 10.3 Navegador de Writer. 10.2.3 Aplicación de formatos mediante estilos El cuadro de diálogo que se abre con Format (Formato) → Styles and Formatting (Estilos y formato) es útil para aplicar formato al texto de diversas maneras. Si define la lista desplegable de la parte inferior del cuadro como Automatic (Automático), OpenOffice.org intentará ofrecer una selección de estilos adaptada a la tarea en curso. Si selecciona All Styles (Todos los estilos), el menú mostrará todos los estilos del grupo activo en ese momento. Seleccione los distintos grupos con los botones de la parte superior. Al dar formato al texto con este método, a veces denominado formato suave, no se aplica directamente un formato al texto. En lugar de ello, se le aplica un estilo. El estilo puede modificarse fácilmente, lo que provoca automáticamente un cambio en el formato de todo el texto al que se le haya asignado. Para asignar un estilo a un párrafo, seleccione el estilo que desee usar y haga clic en el icono del cubo de Styles and Formatting (Estilos y formato). Haga clic en los párrafos a los que desee asignar el estilo. Finalice la asignación de estilo pulsando Esc o haciendo clic de nuevo en el icono del cubo. 168 Cree con facilidad sus propios estilos dando el formato que desee a un párrafo o a un carácter con el menú o la barra Format (Formato). Seleccione el elemento al que ha dado formato a partir del cual se copiará el estilo. A continuación, en Styles and Formatting (Estilos y formato), mantenga pulsado el botón a la derecha del cubo y seleccione New Style from Selection (Nuevo estilo a partir de selección) en el menú que aparece. Introduzca un nombre para el estilo y haga clic en OK (Aceptar). El estilo puede entonces aplicarse a otros textos. Cambie los detalles de un estilo seleccionándolo en la lista, haciendo clic en él con el botón derecho y seleccionando Modify (Modificar) en el menú. Esto abrirá un cuadro de diálogo en el que todas las posibilidades de formato posibles estarán disponibles para su modificación. 10.3 Introducción a Calc Calc es la aplicación de hoja de cálculo de OpenOffice.org. Cree una nueva hoja de cálculo con File (Archivo) → New (Nuevo) → Spreadsheet (Hoja de cálculo) o abra una con File (Archivo) → Open (Abrir). Calc puede leer y guardar en el formato de Microsoft Excel. En las celdas de la hoja de cálculo, introduzca datos fijos o fórmulas. Las fórmulas pueden utilizar datos de otras celdas para generar un valor para la celda en la que se inserten. También es posible crear diagramas a partir de los valores de las celdas. 10.4 Introducción a Impress Impress está diseñado para la creación de presentaciones que se visualizarán en pantalla o que se imprimirán, por ejemplo, en transparencias. Cree una presentación desde cero con File (Archivo) → New (Nuevo) → Presentation (Presentación). Para crear una con la ayuda de un asistente, utilice File (Archivo) → Wizards (Asistentes) → Presentation (Presentación). Abra una presentación existente con File (Archivo) → Open (Abrir). Impress puede abrir y guardar presentaciones de Microsoft PowerPoint. El paquete de ofimática OpenOffice.org 169 10.5 Introducción a Base OpenOffice 2.0 presenta un nuevo módulo de base de datos. Cree una base de datos con File (Archivo) → New (Nuevo) → Database (Base de datos). Se abre un asistente que le guiará en la creación de la base de datos. Base también trabaja con bases de datos de Microsoft Access. Figura 10.4 Bases de datos Base en OpenOffice.org Se pueden crear tablas, formularios, consultas e informes manualmente o mediante prácticos asistentes. Por ejemplo, el asistente para tablas contiene un gran número de campos habituales para uso profesional y personal. Las bases de datos creadas con Base se pueden utilizar como fuentes de datos, por ejemplo, al crear cartas tipo. 10.6 Información adicional OpenOffice.org incluye varias opciones de ayuda que ofrecen diferentes niveles de información. Para familiarizarse rápidamente con un tema, seleccione Help (Ayuda) → 170 OpenOffice.org Help (Ayuda de OpenOffice.org). El sistema de ayuda proporciona información detallada acerca de cada uno de los módulos de OpenOffice.org (Writer, Calc, Impress etc.). La primera vez que se inicia la aplicación, ésta muestra Tips (Consejos), informaciones cortas acerca de los botones cuando el ratón se detiene sobre ellos, así como el Help Agent (Agente de ayuda), información basada en las acciones que se realicen. Para obtener más información sobre los botones que la ofrecida por los Tips (Consejos), utilice Help (Ayuda) → What's This (¿Qué es esto?) y a continuación desplácese sobre los botones deseados. Para salir del modo What's This (¿Qué es esto?), haga clic. Si utiliza esta función a menudo, considere la posibilidad de habilitar Extended Tips (Consejos ampliados) en Tools (Herramientas) → Options (Opciones) → OpenOffice.org (OpenOffice.org) → General (General). También es posible habilitar e inhabilitar el Help Agent (Agente de ayuda) y los Tips (Consejos) desde aquí. El sitio Web de OpenOffice es http://www.openoffice.org. Aquí se pueden encontrar listas de correo, artículos e información sobre errores. El sitio ofrece descargas de versiones para diferentes sistemas operativos. El paquete de ofimática OpenOffice.org 171 Evolution: un programa de calendario y correo electrónico 11 Evolution es un paquete de software groupware que ofrece las funciones de correo electrónico habituales, además de otras avanzadas, como listas de tareas o un calendario. Asimismo, la aplicación proporciona una completa libreta de direcciones capaz de enviar información de contacto a otros en formato de tarjeta digital. Evolution se inicia desde el menú principal o haciendo uso de evolution. Cuando se inicia por primera vez, Evolution activa un asistente de configuración. Su uso se describe en Sección 11.3.1, “Configuración de cuentas” (p. 176). IMPORTANTE: Cuentas de Microsoft Exchange Para utilizar Evolution con Microsoft Exchange, debe instalar el paquete del conector Ximian. Instálelo con YaST. 11.1 Importación de mensajes de correo electrónico desde otros programas de correo Para importar correo electrónico desde otros programas de correo, como Netscape, seleccione File (Archivo) → Import (Importar). Para formatos mbox, seleccione Import a single file (Importar un solo archivo). En Netscape, seleccione Import data and settings from older programs (Importar datos y ajustes desde antiguos programas). Para trabajar Evolution: un programa de calendario y correo electrónico 173 con datos de programas que utilizan el formato maildir, como KMail, configure una cuenta que acceda al directorio de correo. 11.2 Descripción general de Evolution La ventana que aparece por defecto se muestra en la Figura 11.1, “Ventana de Evolution con correo” (p. 174). La disponibilidad de los menús y elementos de menús, junto con la de los iconos de la barra de herramientas varía en función del componente abierto. Utilice la trama izquierda para seleccionar la información que desea visualizar en la trama derecha. Ajuste el tamaño de las tramas arrastrando las barras de separación. Figura 11.1 Ventana de Evolution con correo 11.2.1 Mail (Correo) En esta vista, la mitad superior de la ventana muestra el contenido de la carpeta actual. La mitad inferior es un panel de vista previa utilizado para ver el mensaje de correo 174 electrónico seleccionado. Para ver una carpeta diferente, seleccione una de la lista de carpetas de la trama izquierda. Utilice la barra de búsqueda para buscar mensajes en una carpeta. Para clasificar los mensajes de acuerdo con uno de los encabezados de la tabla, haga clic en el encabezado que desee. La flecha que aparece a la derecha indica si la columna tiene un orden ascendente o descendente. Haga clic en el encabezado de la columna hasta que los mensajes se ordenen en la dirección deseada. 11.2.2 Contacts (Contactos) Esta vista muestra todas las direcciones que figuran en la libreta de direcciones. Para localizar una dirección particular, utilice la barra de búsqueda o haga clic en el botón de la derecha en el que aparezca la primera letra del apellido del contacto. Añada contactos o listas con la barra de herramientas. 11.2.3 Calendar (Calendario) La pantalla inicial muestra una vista del día y mes actuales y, a la derecha, un panel adicional con una lista de tareas. Las vistas de semana, semana de trabajo y mes también están disponibles en la barra de herramientas o en el menú View (Vista). Utilice la barra de búsqueda para encontrar una cita que figure en el calendario. Añada citas y tareas mediante los botones de la barra de herramientas. También puede utilizar la barra de herramientas para ir a distintos puntos del calendario o a una fecha específica. 11.2.4 Tasks (Tareas) Tasks (Tareas) proporciona al usuario una lista de tareas. En la parte inferior de la ventana aparecen los detalles de la tarea seleccionada. Utilice File (Archivo) → New (Nuevo) → Task (Tarea) para añadir una nueva tarea. Efectúe búsquedas de tareas con la barra de búsquedas. Pueden asignarse tareas a otros haciendo clic con el botón derecho sobre la tarea y seleccionando Assign Task (Asignar tarea). Seleccione Open (Abrir) para abrir la tarea y añadir más detalles, como el plazo y el estado. Evolution: un programa de calendario y correo electrónico 175 11.3 Correo El componente de correo de Evolution puede trabajar con varias cuentas en múltiples formatos. Ofrece funciones útiles, como carpetas virtuales para mostrar los resultados de la búsqueda y filtrar el correo basura. Para configurar la aplicación, vaya a Edit (Editar) → Preferences (Preferencias). 11.3.1 Configuración de cuentas Evolution puede recuperar los mensajes de correo electrónico de varias cuentas. La cuenta desde la que se quiera enviar el mensaje de correo electrónico puede seleccionarse al escribirlo. La configuración de las cuentas de correo puede efectuarse en Edit (Editar) → Preferences (Preferencias) → Mail Accounts (Cuentas de correo). Para cambiar una configuración existente, selecciónela y haga clic en Edit (Editar). Para eliminar una cuenta, selecciónela y haga clic en Delete (Suprimir). Para añadir una cuenta nueva, haga clic en Add (Añadir). Al hacerlo, se abre el asistente de configuración. Haga clic en Forward (Siguiente) para utilizarlo. Escriba su nombre y dirección de correo electrónico en los campos correspondientes. Especifique la información opcional si lo desea. Marque Make this my default account (Establecer como cuenta por defecto) para definirla como la cuenta que se utilizará por defecto al escribir mensajes de correo electrónico. Haga clic en Forward (Siguiente). En Server Type (Tipo de servidor), seleccione el formato apropiado de correo entrante para esta dirección. POP es el formato más común para la descarga de correo electrónico desde un servidor remoto. IMAP trabaja con carpetas de correo en un servidor especial. Puede conseguir esta información consultando al ISP o al administrador del sistema correspondiente. Rellene los otros campos relevantes que aparecen al seleccionar el tipo de servidor. Una vez que haya terminado, haga clic en Forward (Siguiente). Seleccione, si están disponibles, las Receiving Options (Opciones de recepción). Haga clic en Forward (Siguiente). A continuación, configure las opciones de envío de correo. Para enviar un mensaje de correo electrónico saliente al sistema local, seleccione Sendmail (EnviarCorreo). En el caso de un servidor remoto, seleccione SMTP. Obtenga los detalles consultando al ISP o al administrador del sistema correspondiente. Para SMTP, rellene los otros campos que se muestran tras efectuar la selección. Una vez que haya terminado, haga clic en Forward (Siguiente). 176 La dirección de correo electrónico se utiliza, por defecto, como nombre para identificar la cuenta. Escriba otro nombre si lo desea. Haga clic en Forward (Siguiente). Haga clic en Apply (Aplicar) para guardar la configuración de la cuenta. Para establecer una cuenta para el envío de correo electrónico por defecto, seleccione la cuenta deseada y, a continuación, pulse Default (Por defecto). Para inhabilitar la recuperación de mensajes de correo electrónico desde una cuenta, seleccione esta última y, a continuación, haga clic en Disable (Inhabilitar). No obstante, una cuenta inhabilitada puede utilizarse como la dirección de envío, pero no se revisa el correo entrante. Si es necesario, vuelva a habilitar la cuenta mediante Enable (Habilitar). 11.3.2 Creación de mensajes Para escribir un nuevo mensaje, haga clic en New (Nuevo) → Mail Message (Mensaje de correo). Al responder o reenviar un mensaje, se abre el mismo editor de mensajes. Vaya a From (Desde), seleccione la cuenta desde la que desea enviar el mensaje. En los campos de los destinatarios, escriba una dirección de correo electrónico o parte de un nombre o una dirección que aparezca en su libreta de direcciones. Si Evolution encuentra una coincidencia en la libreta de direcciones con la cadena que escriba, aparecerá una lista de selección. Haga clic en el contacto deseado o complete la cadena escrita si no hay coincidencias. Para seleccionar un destinatario directamente en la libreta de direcciones, haga clic en To (Para) o CC (Con copia). Evolution puede enviar mensajes de correo electrónico como sólo texto o HTML. Para dar formato HTML al correo, seleccione Format (Dar formato) en la barra de herramientas. Para enviar adjuntos, seleccione Attach (Adjuntar) o Insert (Insertar) → Adjunto. Para enviar el mensaje, haga clic en Send (Enviar). Si no está listo para enviarlo inmediatamente, seleccione cualquier otra cosa que desee en File (Archivo). Por ejemplo, guarde el mensaje como borrador o envíelo más tarde. 11.3.3 Firmas y mensajes de correo electrónico cifrados Evolution admite el cifrado de mensajes de correo electrónico con PGP. Puede firmar mensajes de correo electrónico y comprobar mensajes de correo electrónico firmados. Evolution: un programa de calendario y correo electrónico 177 Para utilizar estas funciones, genere y gestione claves con una aplicación externa, como gpg o KGpg. Para firmar un mensaje de correo electrónico antes de enviarlo, seleccione Security (Seguridad) → PGP sign (Firma PGP). Al hacer clic en Send (Enviar), un cuadro de diálogo solicita la contraseña de su clave secreta. Escriba la contraseña y salga del cuadro de diálogo mediante OK (Aceptar) para enviar el mensaje de correo electrónico firmado. Para firmar otros mensajes de correo electrónico en el transcurso de una sesión, sin necesidad de “desbloquear” varias veces la clave secreta, marque Remember this password for the remainder of this session (Recordar contraseña durante el resto de esta sesión). Al recibir un mensaje de correo electrónico firmado de otros usuarios, aparece un pequeño icono de un candado al final del mensaje. Si hace clic en este símbolo, Evolution inicia un programa externo (gpg) para comprobar la firma. Si la firma es válida, una marca verde aparecerá junto al símbolo del candado. Si, por el contrario, no lo es, aparecerá un candado roto. El procedimiento de cifrado y descifrado es así de sencillo. Tras escribir el mensaje de correo electrónico, vaya a Seguridad → PGP encrypt (Cifrado PGP) y envíe el mensaje. Al recibir mensajes cifrados, un cuadro de diálogo solicita la contraseña de su clave secreta. Escriba la contraseña para descifrar el mensaje de correo electrónico. 11.3.4 Carpetas A menudo, es recomendable clasificar los mensajes de correo electrónico en varias carpetas. En la trama izquierda se muestra el árbol de carpetas. Si se accede al correo mediante IMAP, las carpetas IMAP también aparecen en esta barra de carpetas. Para la mayoría de los formatos, incluido POP, las carpetas se almacenan localmente, clasificadas en Local Folders (Carpetas locales). Se incluyen varias carpetas por defecto. Inbox (Bandeja de entrada) es la ubicación en la que se guardan, inicialmente, los nuevos mensajes procedentes de un servidor. Sent (Enviado) se utiliza para guardar copias de mensajes enviados de correo electrónico. La Outbox (Bandeja de entrada) proporciona almacenamiento temporal para los mensajes de correo electrónico que aún no han sido enviados. Resulta útil cuando se trabaja fuera de línea o cuando el servidor de correo saliente deja de estar disponible temporalmente. Drafts (Borradores) se utiliza para guardar copias de mensajes de correo electrónico inacabados. La carpeta Trash (Papelera) está diseñada para el almacenamiento temporal 178 de elementos eliminados. Junk (Correo basura) se reserva para la función de filtrado de correo basura de Evolution. Se pueden crear nuevas carpetas en On This Computer (En este equipo) o subcarpetas de carpetas existentes. Puede crear una jerarquía de carpetas tan compleja como desee. Para crear una nueva carpeta, seleccione File (Archivo) → New (Nuevo) → Mail Folder (Carpeta de correo). En el cuadro de diálogo de Mail Folder (Carpeta de correo), escriba el nombre de la nueva carpeta. Utilice el ratón para establecer en qué carpeta va a colocarse la nueva carpeta. Salga del cuadro de diálogo mediante OK (Aceptar). Para mover un mensaje a una carpeta, seleccione el mensaje en cuestión. Haga clic con el botón derecho del ratón para abrir el menú contextual. Seleccione Move to Folder (Mover a carpeta) y, en el cuadro de diálogo que se abre, la carpeta de destino. Haga clic en OK (Aceptar) para mover el mensaje. El encabezado del mensaje de la carpeta original se muestra con una línea transversal, que indica que el mensaje está marcado para su eliminación de esa carpeta. El mensaje se almacena en la nueva carpeta. La copia de mensajes puede llevarse a cabo de una forma similar. El traslado de varios mensajes a diferentes carpetas puede llevar tiempo. Se pueden usar filtros para automatizar este procedimiento. 11.3.5 Filtros Evolution ofrece varias opciones para el filtrado del correo electrónico. Los filtros pueden usarse para mover un mensaje a una carpeta concreta o para borrar un mensaje. Los mensajes también pueden moverse directamente a la papelera mediante un filtro. Hay dos opciones para crear un nuevo filtro: crearlo desde cero o a partir de un mensaje que va a filtrarse. La segunda opción es muy útil para filtrar mensajes enviados a una lista de correo. Configuración de filtros Seleccione Tools (Herramientas) → Filters (Filtros). Este cuadro de diálogo enumera los filtros existentes, que pueden editarse o borrarse. Haga clic en Add (Añadir) para crear un nuevo filtro. De forma alternativa, para crear un filtro basado en un mensaje, seleccione este último y, a continuación, Tools (Herramientas) → Create Filter from Message (Crear filtro a partir de mensaje). Evolution: un programa de calendario y correo electrónico 179 Escriba un nombre para el nuevo filtro en Rule Name (Nombre de regla). Seleccione los criterios que van a utilizarse para el filtro. Las opciones incluyen el remitente, los destinatarios, la cuenta de origen, el tema, la fecha y el estado. El buzón en el que se lee Contains (Contiene) ofrece varias opciones, como contains (contiene), is (es) y también is not (no es). Seleccione las condiciones adecuadas. Escriba el texto que desea buscar. Haga clic en Add (Añadir) para añadir más criterios de filtrado. Utilice Execute actions (Ejecutar acciones) para determinar si todos, o tan sólo algunos de los criterios deben cumplirse para aplicar el filtro. En la parte inferior de la ventana, defina la acción que ha de llevarse a cabo cuando se cumplan los criterios de filtrado. Por ejemplo, los mensajes se pueden mover a una carpeta o copiarlos en ella, o se les puede asignar un color especial. Al mover o copiar, haga clic para seleccionar la carpeta de destino. Seleccione la carpeta en la lista de carpetas que aparece. Para crear una nueva carpeta, haga clic en New (Nueva). Haga clic en OK (Aceptar) tras seleccionar la carpeta correcta. Cuando termine de crear el filtro, haga clic en OK (Aceptar). Aplicación de filtros Los filtros se aplican según el orden que figura en el cuadro de diálogo al que se accede mediante Tools (Herramientas) → Filters (Filtros). Cambie el orden resaltando un filtro y haciendo clic en Up (Arriba) o Down (Abajo). Haga clic en OK (Aceptar) para cerrar el cuadro de diálogo de filtros una vez que haya terminado. Los filtros se aplican a todos los mensajes de correo electrónico nuevos. No se aplican a los mensajes de correo que ya se encuentren en sus carpetas. Para aplicar filtros a los mensajes ya recibidos, seleccione los mensajes deseados y, a continuación, seleccione Actions (Acciones) → Apply Filters (Aplicar filtros). 11.4 Contactos Evolution puede hacer uso de varias libretas de direcciones diferentes. Las libretas disponibles aparecen en la trama izquierda en forma de lista. Busque un contacto concreto mediante la barra de búsqueda. Añada contactos en varios formatos a la libreta de direcciones de Evolution mediante File (Archivo) → Import (Importar). Haga clic con el botón derecho en un contacto para abrir un menú con varias opciones, como reenviar el contacto o guardarlo como una tarjeta digital. Haga doble clic en un contacto para editarlo. 180 Figura 11.2 Libreta de direcciones de Evolution 11.4.1 Adición de contactos Evolution, además del nombre y la dirección de correo electrónico, puede almacenar más información de contacto y de dirección de una persona. Añada rápidamente la dirección de correo electrónico de un remitente haciendo clic con el botón derecho en la dirección marcada en la vista previa del mensaje. Para introducir un contacto totalmente nuevo, haga clic en New Contact (Nuevo contacto) en la vista Contacts (Contactos). Con ambos métodos se abre un cuadro de diálogo en el que puede escribir la información de contacto. En la pestaña Contact (Contacto), escriba el nombre del contacto, las direcciones de correo electrónico, los números de teléfono y las identidades de mensajería instantánea correspondientes. Personal Information (Información personal) se reserva para las direcciones Web y otros tipos de información detallada. Escriba información sobre otras direcciones de correo del contacto en Mailing Address (Dirección de correo). Tras especificar toda la información deseada para el contacto, haga clic en OK (Aceptar) para añadirla a la libreta de direcciones. Evolution: un programa de calendario y correo electrónico 181 11.4.2 Elaboración de listas Si manda con frecuencia mensajes de correo electrónico a un grupo de personas, puede simplificar el proceso creando una lista en la que figuren las direcciones de los componentes de ese grupo. Haga clic en File (Archivo) → New (Nuevo) → Contact List (Lista de contactos). Se abrirá el editor de listas de contacto. Especifique un nombre para la lista. Añada direcciones escribiéndolas en el cuadro y haciendo clic en Add (Añadir), o arrastrando los contactos desde la vista Contacts (Contactos) y soltándolos en el cuadro. Habilite o inhabilite Hide addresses (Ocultar direcciones) para que los destinatarios puedan ver o no quién más ha recibido el mensaje. Una vez que haya terminado, haga clic en OK (Aceptar). Con ello, la lista se convertirá en uno de sus contactos y aparecerá en la ventana de composición al escribir las primeras letras. 11.4.3 Adición de libretas de direcciones Configure libretas de direcciones adicionales GroupWise y Exchange en la configuración de una cuenta. Para añadir otras libretas locales o LDAP, seleccione File (Archivo) → New (Nuevo) → Address Book (Libreta de direcciones). En el cuadro de diálogo que se abre, seleccione el tipo de libreta de direcciones y especifique la información solicitada. 11.5 Calendarios Evolution puede funcionar con varios calendarios. Con File (Archivo) → Import (Importar), puede importar calendarios en formato iCalendar. Utilice el calendario para fijar citas y reuniones programadas. Si lo desea, establezca recordatorios para informarle de cuándo darán comienzo las citas programadas. 182 Figura 11.3 El calendario de Evolution 11.5.1 Adición de citas Para añadir una nueva cita al calendario, haga clic en File (Archivo) → New (Nuevo) → Appointment (Cita). En la pestaña Appointment (Cita), especifique los detalles de la cita. Seleccione una categoría, si lo desea, para facilitar la búsqueda y ordenación posteriores. Utilice Alarm (Alarma), de forma optativa, para activar una alarma con la que Evolution le recordará el comienzo de la cita antes de que ésta comience. Si la cita tiene lugar regularmente, establezca las fechas en las que se repite en Recurrence (Repetición). Haga clic en OK (Aceptar) tras definir todos los ajustes. Con ello, la nueva cita aparecerá en el calendario. 11.5.2 Programación de reuniones Para programar una reunión, seleccione File (Archivo) → New (Nuevo) → Meeting (Reunión). Especifique la información como en el caso de las citas. Añada a los asistentes en Invitations (Invitaciones) o Scheduling (Programación). Para introducir asistentes a partir de la libreta de direcciones, utilice Contacts (Contactos) para abrir una lista de Evolution: un programa de calendario y correo electrónico 183 los contactos de la guía. Scheduling (Programación) también se puede utilizar para programar un hora adecuada para todos los asistentes. Pulse Autopick (Fijar automáticamente) tras efectuar la configuración de los participantes para asignar una hora de forma automática. 11.5.3 Adición de calendarios Los calendarios GroupWise y Exchange deberían configurarse en la configuración de la cuenta. Para añadir calendarios locales o LDAP adicionales, seleccione File (Archivo) → New (Nuevo) → Calendar (Calendario). Seleccione el tipo deseado y especifique la información requerida. 11.6 Sincronización de datos con un dispositivo portátil Evolution está diseñado para que sus datos puedan sincronizarse con un dispositivo portátil, como un Palm. La sincronización utiliza GNOME Pilot. Seleccione Tools (Herramientas) → Pilot Settings (Ajustes de Pilot) para abrir el asistente de configuración. Consulte la ayuda para obtener más información. 11.7 Evolution para usuarios de GroupWise Los usuarios de GroupWise no deberían tener problemas para acceder a sus cuentas de GroupWise al utilizar Evolution. Evolution y GroupWise cuentan con una tecnología muy similar. Los usuarios familiarizados con un sistema aprenderán a utilizar el otro sin mucho esfuerzo. 184 11.7.1 Configuración de Evolution para el acceso al sistema GroupWise Utilice el Asistente de configuración de correo de Evolution para configurar Evolution de modo que pueda acceder al sistema GroupWise. Para iniciar el Asistente de configuración de correo de Evolution, haga clic en Preferences (Preferencias) → Mail Accounts (Cuentas de correo) → Add (Añadir) y, a continuación, haga clic en Forward (Siguiente). En la página Identidad, especifique su dirección de correo electrónico correspondiente al sistema GroupWise (por ejemplo, [email protected]) y, a continuación, haga clic en Forward (Siguiente). En la página Receiving Email (Recepción de correo electrónico), seleccione IMAP en la lista Tipo de servidor; especifique el nombre de host de su servidor de GroupWise en el campo Host; establezca el resto de ajustes en la página Receiving Options (Opciones de recepción) como corresponda en su sistema y, a continuación, haga clic en Forwared (Siguiente). En la página Sending Email (Envío de correo electrónico), seleccione SMTP en la lista Tipo de servidor; especifique el nombre de host de su servidor de GroupWise en el campo Host; establezca el resto de las opciones en la página Sending Options (Opciones de envío) como corresponda en su sistema y, a continuación, haga clic en Forward (Siguiente). En la página Account Management (Gestión de cuentas), especifique el nombre que desea utilizar para identificar la cuenta en la página Evolution Settings (Ajustes de Evolution) y, a continuación, haga clic en Forward (Siguiente). Haga clic en Apply (Aplicar) para crear la cuenta de GroupWise. Con ello, su buzón de GroupWise aparecerá en la lista de cuentas de correo electrónico disponibles. 11.8 Información adicional Evolution ofrece un amplio número de páginas de ayuda internas. Utilice el menú Help (Ayuda) para acceder a esta información. Para obtener más información sobre Evolution, consulte el sitio Web del proyecto en la dirección http://www.gnome.org/ projects/evolution/. Evolution: un programa de calendario y correo electrónico 185 Kontact: un programa de calendario y correo electrónico 12 Kontact combina la funcionalidad de un gran número de aplicaciones KDE en una interfaz única de gran utilidad que le permitirá gestionar toda su información personal. Estas aplicaciones incluyen KMail para el correo electrónico, KOrganizer para el calendario, KAddressbook para los contactos y, por último, KNotes para las notas. También es posible sincronizar los datos con dispositivos externos, tales como PalmPilot u otros dispositivos de mano. Kontact se integra de forma sencilla con el resto de productos del escritorio KDE y se conecta a una gran variedad de servidores de groupware. Incluye, además, funciones adicionales, como, por ejemplo, filtro de correo spam y de virus, así como lector RSS. Inicie Kontact desde el menú principal con Office (Office) → Kontact (Personal Information Manager) (Kontact [Gestor de información personal]). En su lugar, también puede escribir el comando kontact en una línea de comando. También puede abrir los componentes individuales de Kontact en vez de la aplicación conjunta si solamente tiene que hacer uso parcial de la funcionalidad. 12.1 Importación de mensajes de correo electrónico desde otros programas de correo Para importar mensajes de correo electrónico desde otras aplicaciones, seleccione Tools (Herramientas) → Import Messages (Importar mensajes) desde la vista de correo electrónico de Kontact. Kontact incluye filtros para importar mensajes de Outlook Ex- Kontact: un programa de calendario y correo electrónico 187 press, en formato mbox o en formato texto, mensajes de Pegasus Mail, Opera, Evolution y muchos más. La función de importación se puede iniciar por separado mediante el comando kmailcvt. Seleccione la aplicación correspondiente y confirme su elección con Continue (Continuar). Se le proporcionará un archivo o una carpeta, en función del tipo seleccionado. A continuación, Kontact completará el proceso. 12.2 Descripción general de Kontact La vista por defecto de la ventana, en la que se muestra el Summary (Resumen), se muestra en la Figura 12.1, “Vista de la ventana Summary (Resumen) de Kontact” (p. 189). Utilice los botones que se encuentran situados en la parte izquierda de la ventana para acceder a los distintos componentes. La opción Summary (Resumen) ofrece información básica, incluidos los cumpleaños y los elementos pendientes, el pronóstico meteorológico y el estado de KPilot. La sección de noticias puede acceder a alimentadores RSS para ofrecerle información actualizada de interés. Utilice la opción Settings (Configuración) → Configure Summary View (Configurar vista del resumen) para configurar la información que se muestra en la pantalla. 188 Figura 12.1 Vista de la ventana Summary (Resumen) de Kontact 12.2.1 Correo electrónico La zona de carpetas que se encuentra situada a la izquierda contiene una lista de las carpetas de mensajes de correo electrónico (buzones, en definitiva) en la que se indica el número total de mensajes y cuántos de ellos no se han leído aún. Para seleccionar una carpeta, haga clic en ella. Los mensajes de la carpeta en cuestión aparecerán en la trama que se encuentra situada en el extremo superior derecho de la pantalla. El número de mensajes contenidos en dicha carpeta se muestra también en la barra de estado que se sitúa en la parte inferior de la ventana de la aplicación. El asunto, remitente y tiempo de recepción de cada mensaje figura en la zona del encabezado, que se encuentra situada en la parte derecha de la ventana. Haga clic en un mensaje para seleccionarlo y visualizarlo en la ventana de mensajes. Ordene los mensajes haciendo clic en el encabezado de la columna deseado (asunto, remitente, fecha, etc.). El contenido del mensaje seleccionado se muestra en la trama de mensajes de la ventana. Los archivos adjuntos se representan mediante iconos que se encuentran situados al final del mensaje, para lo que se toma como base el tipo MIME de archivo; también se pueden mostrar dentro del mensaje. Kontact: un programa de calendario y correo electrónico 189 Los mensajes se pueden marcar con distintos indicadores de estado. Para modificar el estado del mensaje, utilice las opciones Message (Mensaje) → Mark Message (Marcar mensaje). Puede utilizar esta función para asignar un estado concreto a un mensaje, como, por ejemplo, importante o no tenido en cuenta. Por ejemplo, puede resaltar los mensajes relevantes que no se pueden olvidar. Consulte únicamente los mensajes que tengan un estado determinado utilizando la opción Status (Estado) de la barra de búsqueda. 12.2.2 Contactos La trama superior izquierda de este elemento muestra todas las direcciones de las libretas de direcciones que se encuentran activadas en ese momento. En la trama inferior izquierda aparece un lista con las libretas de direcciones, al tiempo que se muestra cuál de ellas se encuentra activa en ese momento. La trama situada a la derecha muestra el contacto que se encuentra seleccionado en ese momento. Utilice la barra de búsqueda que se encuentra en la parte superior para localizar un contacto determinado. 12.2.3 Lista de tareas pendientes La opción To-do List (Lista de tareas pendientes) muestra su lista de tareas. Haga clic en el campo que se encuentra situado en el campo superior para añadir un elemento nuevo a la lista. Haga clic con el botón derecho del ratón en la columna de un elemento existente para realizar los cambios deseados en el valor de dicha columna. Un elemento se puede dividir en distintos subelementos. Haga clic con el botón derecho del ratón y seleccione la opción New Sub-to-do (Nueva subtarea pendiente) para crear un subelemento. También puede asignar tareas pendientes a otras personas. 12.2.4 Calendario La vista del calendario se divide en una serie de tramas distintas. Por defecto, se ofrece la visualización de un pequeño calendario con el mes en el que se encuentre y una vista semanal de la semana en cuestión. Así mismo, encontrará también una lista de las tareas pendientes, una vista detallada del acontecimiento o de la tarea pendiente y una lista de los calendarios con el estado de cada uno de ellos. Seleccione una vista diferente en la barra de herramientas o en el menú View (Ver). 190 12.2.5 Notas Utilice el elemento Notas para apuntar elementos que desee recordar. Si está empleando KDE, utilice el icono KNote de la bandeja del sistema para poder visualizar las notas en el escritorio. 12.3 Correo electrónico Kontact utiliza KMail como elemento de gestión del correo electrónico. Para configurarlo, abra el elemento de correo electrónico y, a continuación, seleccione Settings (Configuración) → Configure KMail (Configurar KMail). KMail es un cliente de correo electrónico muy completo que, además, es compatible con un gran número de protocolos. La opción Tools (Herramientas) contiene diversas herramientas de gran utilidad para la gestión de los mensajes de correo electrónico no deseados. Utilice la opción Find (Buscar) para realizar una búsqueda detallada de mensajes. La opción Anti-Spam Wizard (Asistente anticorreo spam) puede ayudarle a gestionar una serie de herramientas que filtran los mensajes comerciales de correo electrónico no deseados. El Anti-Virus Wizard (Asistente antivirus), por su parte, le ayudará a gestionar los detectores de virus para mensajes de correo electrónico. Los dos asistentes mencionados trabajan con software antivirus y anticorreo spam de carácter externo. Si las opciones están inhabilitadas, instale paquetes adicionales de protección frente a virus y correo spam. Kontact: un programa de calendario y correo electrónico 191 Figura 12.2 Elemento de correo electrónico de Kontact 12.3.1 Configuración de cuentas Kontact puede gestionar al mismo tiempo diversas cuentas de correo electrónico, como, por ejemplo, su cuenta personal y su cuenta profesional. Cuando vaya a escribir un mensaje de correo electrónico, seleccione una de las identidades que se hayan definido previamente haciendo clic en View (Ver) → Identity (Identidad). Para crear un nuevo perfil, seleccione Settings (Configuración) → Configure KMail (Configurar KMail) y, a continuación, Identities (Identidades) → New (Nueva). En el cuadro de diálogo que se abrirá, asigne un nombre a la nueva identidad, como por ejemplo “particular” o “trabajo.” Haga clic en OK (Aceptar) para abrir un cuadro de diálogo en el que podrá incluir información adicional. También es posible asignar una identidad a una carpeta, de forma tal que se seleccione dicha identidad cuando responda a un mensaje alojado en la carpeta en cuestión. En la pestaña General, introduzca su nombre, el nombre de la organización y su dirección de correo electrónico. En la opción Cryptography (Cifrado), seleccione su clave para enviar mensajes cifrados o con firma digital. Para poder utilizar las funciones de cifrado, deberá crear con anterioridad una clave con KGpg, según se explica en el Capítulo 6, Cifrado con KGpg (p. 107). 192 En la opción Advanced (Características avanzadas) puede incluir una dirección de respuesta y una dirección de copia oculta; al mismo tiempo, también podrá realizar otras tareas, como elegir un diccionario, seleccionar las carpetas para archivar los mensajes enviados y de borrador, así como definir el modo en que desea que se envíen los mensajes. En la opción Signature (Firma), determine, si lo desea, la firma que se incluirá como un bloque de texto adicional al final de sus mensajes. Por ejemplo, podrá firmar todos sus mensajes de correo electrónico con su dirección de contacto. Para activar esta opción, seleccione Enable Signature (Habilitar firma) y especifique de dónde se deberá obtener la firma: de un archivo, de un campo de entrada o de los datos de salida de un comando. Una vez que haya terminado de especificar los ajustes de la identidad, confirme dichos ajustes con OK (Aceptar). Los ajustes que se encuentran en Network (Red) determinan la forma en la que Kontact recibe y envía los mensajes de correo electrónico. Son dos las pestañas existentes, cada una de ellas referida respectivamente al envío y la recepción de mensajes de correo electrónico. Muchos de estos ajustes variarán en función del sistema y de la red en donde se localiza su servidor de correo electrónico. Si no está seguro de los ajustes o de los elementos que debe seleccionar, consulte con su ISP o administrador del sistema. Para crear buzones de mensajes salientes en la pestaña Envío, haga clic en Add (Añadir). Seleccione entre el tipo de transporte SMTP y sendmail. SMTP es la elección más conveniente en la mayoría de los casos. Después de hacer esta selección, aparecerá una ventana en la que deberá introducir los datos del servidor SMTP. Proporcione un nombre y escriba la dirección del servidor que le habrá facilitado su ISP. Si el servidor quiere que se autentique, habilite Server requires authentication (El servidor precisa autenticación). Los ajustes de seguridad se encuentran en la pestaña Security (Seguridad). En esta pestaña deberá especificar el método de cifrado preferido. Especifique los ajustes para la recepción de mensajes de correo electrónico en la pestaña Receiving (Recepción). Utilice la opción Add (Añadir) para crear una cuenta nueva. Realice su selección entre los distintos métodos para la recuperación de mensajes de correo electrónico, tales como local (almacenados en formato Mbox o Maildir), POP3 o IMAP. Defina los ajustes adecuados para su servidor. 12.3.2 Creación de mensajes Para redactar nuevos mensajes, seleccione Message (Mensaje) → New Message (Mensaje nuevo) o haga clic en el icono correspondiente de la barra de herramientas. Para enviar mensajes desde cuentas de correo electrónico distintas, seleccione la iden- Kontact: un programa de calendario y correo electrónico 193 tidad correspondiente; para ello, siga las indicaciones que se dan en la Sección 12.3.1, “Configuración de cuentas” (p. 192). En la opción To (Para), escriba la dirección de correo electrónico o parte del nombre o de la dirección, siempre y cuando aparezca en su libreta de direcciones. Si Kontact puede encontrar una coincidencia en la libreta de direcciones con la cadena que haya escrito, aparecerá una lista de selección. Haga clic en el contacto deseado o complete los datos de entrada si no hay coincidencias. Para seleccionar una dirección directamente en la libreta de direcciones, haga clic en el botón ..., que se encuentra situado junto al campo Address (Dirección). Para adjuntar archivos al mensaje, haga clic en icono del clip y seleccione el archivo que desea adjuntar. Como alternativa, también puede arrastrar un archivo desde el escritorio o desde otra carpeta a la ventana New Message (Mensaje nuevo), o bien seleccione una de las opciones que figuran en el menú Attach (Adjuntar). Como norma general, el formato del archivo adjunto se reconoce correctamente. Si el formato no se reconoce, haga clic en el icono con el botón derecho del ratón. Seleccione la opción Properties (Propiedades) en el menú que aparecerá. Defina el formato y el nombre de archivo en el cuadro de diálogo que aparecerá a continuación y añada una descripción. Deberá indicar, de igual modo, si el archivo adjunto debe estar firmado o cifrado. Una vez que haya terminado de redactar el mensaje, envíelo de inmediato utilizando para ello Message (Mensaje) → Send (Enviar), o bien mueva el mensaje al buzón de salida con las opciones Message (Mensaje) → Queue (Poner en cola). Una vez que se haya enviado el mensaje de correo electrónico de forma satisfactoria, se guardará una copia del mensaje en cuestión en sent-mail. Los mensajes que se han movido a outbox pueden editarse o suprimirse. 12.3.3 Firmas y mensajes de correo electrónico cifrados Para cifrar un mensaje de correo electrónico, será necesario que genere previamente un par de claves, según se describe en el Capítulo 6, Cifrado con KGpg (p. 107). Para configurar los detalles del procedimiento de cifrado, seleccione Settings (Configuración) → Configure KMail (Configurar KMail) → Identities (Identidades) para especificar la identidad con la que se enviarán los mensajes firmados y cifrados. A continuación, pulse Modify (Modificar). Después de confirmar las modificaciones con la opción OK (Aceptar), deberá aparecer la clave en el campo correspondiente. Cierre el cuadro de diálogo de configuración con la opción OK (Aceptar). 194 12.3.4 Carpetas Las carpetas de mensajes son de gran utilidad para organizar los mensajes de correo electrónico. Tales carpetas se localizan por defecto en el directorio ~/.kde/share/ apps/kmail/mail. Al iniciar KMail por primera vez, el programa crea diversas carpetas. Es en inbox donde se sitúan en un principio los mensajes nuevos suministrados por el servidor. Por su parte, outbox se utiliza solamente para el almacenamiento de los mensajes que se encuentran en cola para su envío. Las copias de los mensajes enviados se encuentran en sent-mail. En trash se incluyen las copias de todos los mensajes de correo electrónico que se han suprimido con Del o con Edit (Editar) → Delete (Suprimir). Por último, los mensajes sin terminar se guardan en drafts. Si utiliza IMAP, las carpetas IMAP aparecerán por debajo de las carpetas locales. Cada servidor de correo entrante, como por ejemplo, el servidor local o IMAP, tiene sus carpetas ubicadas en la lista de carpetas. Si desea organizar sus mensajes en carpetas adicionales, cree carpetas nuevas seleccionando Folder (Carpeta) → New Folder (Carpeta nueva). Se abrirá una ventana en la que deberá especificar el nombre y el formato de la carpeta nueva. Haga clic con el botón derecho del ratón para visualizar el menú contextual, en el que aparecen diversas opciones de carpeta. Haga clic en Expire (Caducar) para especificar la fecha de caducidad de los mensajes leídos y no leídos, qué debería ocurrir con dichos mensajes una vez llegada la fecha de caducidad y, por último, si los mensajes caducados se deben suprimir o deben enviarse a una carpeta. Si desea utilizar la carpeta para guardar mensajes provenientes de una lista de correo, defina las opciones necesarias en Folder (Carpeta) → Mailing List Management (Gestión de la lista de correo). Para mover uno o varios mensajes de una carpeta a otra, resalte los mensajes que desea mover y, a continuación, pulse M , o bien seleccione Message (Mensaje) → Move to (Mover a). En la lista de carpetas que aparecerá, seleccione la carpeta a la que desea mover los mensajes. Los mensajes se pueden mover también arrastrándolos desde la ventana de la parte superior y soltándolos en la carpeta deseada de las que se encuentran ubicadas en la ventana de la izquierda. 12.3.5 Filtros El empleo de filtros es de gran utilidad para el procesamiento automático del correo entrante. Los filtros emplean diversos criterios del correo electrónico, tales como el Kontact: un programa de calendario y correo electrónico 195 remitente o el tamaño, para mover los mensajes a determinadas carpetas, suprimir el correo electrónico no deseado, devolver mensajes al remitente o realizar otras acciones. Configuración de filtros Para crear un filtro desde el principio, seleccione Settings (Configuración) → Configure Filters (Configurar filtros). Para crear un filtro tomando como base un mensaje ya existente, seleccione el mensaje deseado en la lista Header (Encabezado) y, a continuación, seleccione Tools (Herramientas) → Create Filter (Crear filtro) y los criterios deseados para los filtros. Seleccione el método de correspondencia para los criterios de filtrado (todos o ninguno). A continuación, seleccione los criterios que se aplican únicamente a los mensajes deseados. En Filter Actions (Acciones de filtro), establezca qué debería hacer el filtro en los mensajes que cumplan los criterios. Advanced Options (Opciones avanzadas) permite realizar un seguimiento sobre cuándo se aplica el filtro, al tiempo que permite saber si otros filtros adicionales deberían aplicarse a los mensajes en cuestión. Aplicación de filtros Los filtros se aplican según el orden que figura en el cuadro de diálogo, al que se accede mediante Settings (Configuración) → Configure Filters (Configurar filtros). Modifique el orden si lo desea, seleccionando para ello un filtro y haciendo clic en los botones de flecha. Los filtros se aplican solamente a los mensajes entrantes nuevos o a los mensajes enviados, según se haya especificado en las opciones avanzadas del filtro. Para aplicar filtros a los mensajes existentes, seleccione los mensajes deseados y, a continuación, seleccione la opción Message (Mensaje) → Apply Filters (Aplicar filtros). Si los filtros no actúan de la forma esperada, monitorícelos con la opción Tools (Herramientas) → Filter Log Viewer (Visor de registro de filtros). Cuando la opción de registro está habilitada en este cuadro de diálogo, es posible ver cómo los filtros procesan los mensajes, lo que le podrá ayudar a localizar el problema. 12.4 Contactos El elemento de contactos utiliza KAddressBook. Configúrelo con la opción Settings (Configuración) → Configure KAddressBook (Configurar KAddressBook). Para buscar 196 un contacto determinado, utilice la barra de búsqueda. Con la opción Filter (Filtro), seleccione si desea visualizar únicamente los contactos de una categoría en particular. Haga clic con el botón derecho del ratón en el contacto deseado para abrir un menú, en el que podrá elegir de entre una gran variedad de opciones, como por ejemplo, enviar la información de contacto a través de un mensaje de correo electrónico. Figura 12.3 Libreta de direcciones de Kontact 12.4.1 Adición de contactos Para añadir un contacto con el nombre y la dirección de correo electrónico de un mensaje de correo electrónico, haga clic con el botón derecho del ratón en la dirección que se encuentra en el elemento del mensaje y, a continuación, seleccione Open in Address Book (Abrir en libreta de direcciones). Para añadir un contacto nuevo no proveniente de un mensaje de correo electrónico, seleccione la opción File (Archivo) → New Contact (Contacto nuevo) en el elemento de direcciones. Con ambos métodos se abrirá un cuadro de diálogo en el que podrá escribir información sobre el contacto. En la etiqueta General (General), escriba la información básica de contacto, como, por ejemplo, el nombre, las direcciones de correo electrónico y los números de teléfono. Las categorías, por otra parte, se pueden utilizar para clasificar las direcciones. En Kontact: un programa de calendario y correo electrónico 197 cuanto a la opción Details (Detalles), en ella se incluye información específica, como por ejemplo, la fecha de cumpleaños y el nombre de la pareja del contacto. Si su contacto utiliza algún servicio de mensajería instantánea, podrá añadir su identidad mediante la opción IM Addresses (Direcciones de IM). Si realiza esta operación y cuenta con Kopete o con cualquier otro programa de conversación de KDE que esté ejecutándose al mismo tiempo que Kontact podrá ver en Kontact la información de estado de las identidades en cuestión. En la opción Crypto Settings (Configuración de cifrado), escriba los datos de cifrado del contacto y la clave pública. Por su parte, Misc (Varios) dispone de información adicional, como por ejemplo, la fotografía del contacto y la ubicación de la información sobre la disponibilidad del usuario. Utilice Custom Fields (Campos personales) para añadir su propia información en el contacto o en la libreta de direcciones. Los contactos se pueden importar también en una gran variedad de formatos. Utilice File (Archivo) → Import (Importar) y seleccione el formato adecuado. A continuación, seleccione el archivo que desea importar. 12.4.2 Elaboración de listas de distribución Si envía con frecuencia mensajes de correo electrónico al mismo grupo de personas, la creación de una lista de distribución le permitirá almacenar diversas direcciones de correo electrónico como un único elemento de contacto, de manera que no tendrá que escribir todos y cada uno de los nombres en cada mensaje que envíe a los miembros de ese grupo. En primer lugar, haga clic en Settings (Configuración) → Show Extension Bar (Mostrar barra de opciones avanzadas) → Distribution List Editor (Editor de listas de distribución). En la nueva sección que aparecerá, haga clic en Lista nueva. Escriba el nombre que desea dar a la lista y, a continuación, haga clic en OK (Aceptar). Añada los contactos a la lista arrastrándolos desde la lista de direcciones y soltándolos en la ventana de la lista de distribución. Cuando vaya a redactar un mensaje de correo electrónico, utilice esta lista como si se tratara de un contacto individual. 198 12.4.3 Adición de libretas de direcciones IMPORTANTE: Libretas de direcciones de groupware La mejor manera de añadir recursos de groupware es mediante el empleo de la herramienta independiente Asistente de groupware. Para utilizar el asistente, cierre Kontact y, a continuación, ejecute groupwarewizard en una línea de comandos o desde el grupo Office del menú KDE. Seleccione el tipo de servidor, por ejemplo, SLOX, GroupWise o Exchange, de la lista que se mostrará y, a continuación, escriba la dirección y los datos de autenticación. El asistente añadirá entonces a Kontact los recursos disponibles. Kontact puede acceder a varias libretas de direcciones, como por ejemplo, las ofrecidas por Novell GroupWise o por un servidor LDAP. Seleccione Settings (Configuración) → Show Extension Bar (Mostrar barra de opciones avanzadas) → Address Books (Libretas de direcciones) para visualizar las libretas de direcciones actuales. Pulse Add (Añadir) para añadir una libreta de direcciones y a continuación seleccione el tipo e introduzca la información necesaria. Las casillas de verificación que se encuentran delante de las libretas de direcciones muestran el estado de activación de cada una. Si no desea que se muestre alguna de las libretas sin eliminarla, inhabilite la casilla correspondiente. La opción Remove (Eliminar) suprime la libreta seleccionada de la lista. 12.5 Calendario Kontact utiliza KOrganizer como elemento de calendario. Para configurarlo, utilice Settings (Configuración) → Configure KOrganizer (Configurar KOrganizer). Con el calendario podrá fijar citas y programar reuniones. Si lo desea, se le pueden notificar las próximas citas. También puede importar, exportar y archivar calendarios utilizando las opciones que se encuentra en File (Archivo). Kontact: un programa de calendario y correo electrónico 199 Figura 12.4 Calendario Kontact 12.5.1 Organización de una cita Añada una cita nueva o una reunión mediante Actions (Acciones) → New Event (Cita nueva). Escriba la información deseada. En la opción Reminder (Recordatorio), especifique con cuántos minutos, horas o días de antelación desea que se le recuerde la cita a los asistentes. Si la cita se repite, especifique el intervalo adecuado. Otra forma de crear una cita en un punto determinado del calendario es haciendo doble clic en el campo correspondiente de una de las vistas del calendario del programa. Esta opción hará que se abra el mismo cuadro de diálogo que la que está disponible a través del menú. Como alternativa, seleccione un intervalo de tiempo en la vista del calendario y haga clic con el botón derecho del ratón. Especifique quiénes van a ser los asistentes a la cita escribiendo sus datos de forma manual en el cuadro de diálogo o insertando los datos desde la libreta de direcciones. Para escribir los datos de forma manual, seleccione New (Nuevo). Para importar los datos desde la libreta de direcciones, haga clic en Select Addressee (Seleccionar destinatario) y, a continuación, seleccione las entradas correspondientes del cuadro de diálogo. Para programar la cita en función de la disponibilidad de los participantes, vaya a Free/Busy (Disponibilidad) y haga clic en Pick Date (Seleccionar fecha). Utilice la pestaña Recurrence (Repetición) para configurar una cita que tiene lugar con una frecuencia regular. La opción Attachments (Adjuntos) puede ser de utilidad para 200 adjuntar otras informaciones a la cita, como por ejemplo, el orden del día para una reunión. 12.5.2 Adición de calendarios IMPORTANTE: Calendarios de groupware la mejor manera de añadir recursos de groupware es mediante el empleo de la herramienta independiente Asistente de groupware. Para utilizar el asistente, cierre Kontact y, a continuación, ejecute groupwarewizard en una línea de comandos o desde el grupo Office del menú KDE. Seleccione el tipo de servidor, por ejemplo, SLOX, GroupWise o Exchange, de la lista que se mostrará y, a continuación, escriba la dirección y los datos de autenticación. El asistente añadirá a Kontact los recursos disponibles. El módulo del calendario se puede conectar de forma simultánea a diversos calendarios. Esta opción es de utilidad, por ejemplo, para combinar un calendario personal con un calendario profesional. Para añadir un calendario nuevo, haga clic en Add (Añadir) y, a continuación, seleccione el tipo de calendario. Complete los campos necesarios. Las casillas de verificación que se encuentran delante de los calendarios muestran el estado de activación de cada uno. Si no desea que se muestre alguno de los calendarios sin eliminarlo, inhabilite la casilla correspondiente. La opción Remove (Eliminar) suprime la libreta seleccionada de la lista. 12.6 Sincronización de datos con un dispositivo portátil Kontact está diseñado de forma tal que los datos puedan sincronizarse con un dispositivo de mano, como por ejemplo, un dispositivo Palm. Consulte la información adicional sobre el estado de KPilot en el resumen. Para obtener más información sobre la configuración y el uso de KPilot, consulte el Capítulo 13, Sincronización de un equipo portátil mediante KPilot (p. 205). Kontact: un programa de calendario y correo electrónico 201 12.7 Kontact para usuarios de GroupWise Si está habituado a trabajar con GroupWise, es probable que pueda encontrar algunas dificultades sin importancia al comenzar a trabajar con Kontact. Los dos programas comparten muchos conceptos, y muchos de los servicios que ofrecen son idénticos. En la presente sección se tratan las diferencias terminológicas más destacadas entre ambos programas, así como una serie de consejos para ayudar a que los usuarios de GroupWise puedan sacar el máximo partido de Kontact. 12.7.1 Diferencias terminológicas La tabla que se muestra a continuación indica las diferencias terminológicas entre Kontact y GroupWise más destacadas. Tabla 12.1 Diferencias terminológicas entre Kontact y GroupWise GroupWise Kontact Appointments (Acontecimientos) Events (Citas) Busy search (Buscar no disponible) Free/Busy (Disponibilidad) Notes (Notas) Journal entries (Entradas de diario) Posted, nonposted items (Elementos enviados y no enviados) Las citas sin asistentes se envían. Si una cita tiene asistentes, se trata de un Sent item (Elemento enviado). Tasks (Tareas) To-dos (Tareas pendientes) 12.7.2 Consejos para usuarios GroupWise Esta sección contiene una serie de recomendaciones para facilitar que los usuarios de GroupWise puedan trabajar salvando las diferencias entre GroupWise y Kontact. 202 Información de contacto Puede añadir sus contactos de Messenger y de correo electrónico de GroupWise a la información de contacto de Kontact. A continuación, podrá redactar un mensaje de correo electrónico o una sesión de mensajería instantánea con el contacto deseado haciendo clic con el botón derecho del ratón en el nombre situado en la vista Contact (Contacto). Códigos de color Puede ser de gran utilidad utilizar colores para marcar elementos de GroupWise, así como elementos provenientes de otras fuentes. El empleo de códigos de color hace que sea muy sencillo explorar sus mensajes de correo electrónico, contactos y otras informaciones de elementos provenientes de una fuente concreta. Invitación a los participantes de las citas A diferencia de GroupWise, Kontact no le incluye de forma automática como participante de las citas organizadas por usted. No olvide, por lo tanto, invitarse a sí mismo cuando sea necesario. 12.8 Información adicional Kontact incluye ayuda referida tanto al programa mismo como a diversos elementos. Para acceder a la ayuda, utilice la opción Help (Ayuda) → Kontact Handbook (Documentación de Kontact). La página Web del proyecto, http://www.kontact.org, contiene también información sobre Kontact. Kontact: un programa de calendario y correo electrónico 203 Sincronización de un equipo portátil mediante KPilot 13 Los equipos portátiles se han implantado entre usuarios que necesitan llevar siempre consigo su planificación, así como listas de tareas y notas. A menudo, los usuarios desean disponer de los mismos datos tanto en el equipo de escritorio como en el dispositivo portátil. Para ello se ha creado KPilot: una herramienta para sincronizar datos en un dispositivo portátil que puede utilizarse en las aplicaciones KDE KAddressBook, KOrganizer y KNotes, incluidas en Kontact. El propósito principal de KPilot es compartir datos entre las aplicaciones de un equipo portátil y sus equivalentes en KDE. KPilot tiene su propio visor de notas, visor de direcciones e instalador de archivos integrados, pero no se pueden utilizar fuera del entorno KPilot. Las aplicaciones KDE independientes están disponibles para todas estas funciones excepto para el instalador de archivos. Para establecer la comunicación entre el dispositivo portátil y los diferentes programas del escritorio, KPilot utiliza canales. KPilot es el programa que supervisa cualquier intercambio de datos entre ambos equipos. La utilización de una determinada función del dispositivo portátil en el equipo de escritorio requiere que el correspondiente canal esté habilitado y configurado. En la mayoría de los casos, estos canales están diseñados para interactuar con programas KDE específicos, por lo que, en general, no se pueden utilizar con otras aplicaciones de escritorio. El canal de sincronización de hora es especial, puesto que no existe un programa visible para el usuario. Se activa en segundo plano en cada operación de sincronización, pero sólo se puede habilitar en equipos que utilicen un servidor horario de red para corregir su propio su desajuste horario. Sincronización de un equipo portátil mediante KPilot 205 Al iniciar una sincronización, los canales se habilitan sucesivamente para llevar a cabo la transferencia de datos. Existen dos métodos diferentes de sincronización: una operación HotSync sólo sincroniza los datos que no disponen de canales habilitados cuando una operación de copia de seguridad realiza una copia completa de todos los datos almacenados en el dispositivo portátil. Algunos canales abren un archivo durante una operación de sincronización, lo que significa que el programa correspondiente no debe funcionar a la vez. Concretamente, KOrganizer no debe funcionar durante una operación de sincronización. 13.1 Canales utilizados por KPilot Los canales utilizados por KPilot se pueden habilitar y configurar después de haber seleccionado Ajustes → Configure KPilot (Configurar KPilot). A continuación, se expone una lista de algunos canales importantes: Libreta de direcciones Este canal gestiona el intercambio de datos con la libreta de direcciones del dispositivo portátil. La función KDE correspondiente para la gestión de los contactos es KAddressBook. Se puede iniciar desde el menú principal o mediante el comando kaddressbook. KNotes/Notas Este canal permite la transferencia de notas creadas con KNotes a la aplicación de notas del dispositivo portátil. Se puede iniciar la aplicación KDE desde el menú principal o mediante el comando knotes. Calendario (KOrganizer) Este canal se encarga de sincronizar las citas (acontecimientos) del dispositivo portátil. El equivalente en el escritorio es KOrganizer. Tareas pendientes (KOrganizer) Este canal se encarga de sincronizar las tareas pendientes. El equivalente en el escritorio es KOrganizer. Canal de sincronización de hora Al habilitar este canal, el reloj del dispositivo portátil se ajusta al del equipo de escritorio durante cada operación de sincronización. Resulta útil sólo si un servidor horario corrige con frecuencia el reloj del equipo de escritorio. 206 Figura 13.1 13.2 Cuadro de diálogo de configuración con los canales disponibles Configuración de la conexión portátil Para utilizar KPilot, primero configure la conexión con el equipo portátil. La configuración depende del tipo de soporte (unidad de anclaje) utilizado en el dispositivo portátil. Existen dos tipos: soporte USB o cable y soporte en serie o cable. 13.2.1 Configuración de la conexión desde KPilot La manera más sencilla de configurar la conexión es mediante el asistente de configuración. Seleccione Settings (Ajustes) → Configuration Assistant (Asistente de configuración) para iniciar el asistente. Primero, introduzca el nombre de usuario y el nombre del dispositivo al que está conectado el dispositivo portátil. El asistente intenta detectar si el usuario ha seleccionado Autodetect Handheld & Username (Dispositivo portátil detectado automáticamente y nombre de usuario). Si la detección automática falla, consulte la Sección 13.2.2, “Creación de un enlace /dev/pilot” (p. 208). Después de realizar la confirmación pulsando Siguiente, el asistente le solicitará que especifique las aplicaciones que deben utilizarse para la sincronización. Puede seleccionar entre un paquete de aplicaciones KDE (por defecto), Evolution y ninguno. Después de haber realizado la selección, cierre la ventana en Finalizar. Sincronización de un equipo portátil mediante KPilot 207 13.2.2 Creación de un enlace /dev/pilot La configuración de la conexión con un soporte portátil en serie difiere de la de un soporte USB. En función del soporte utilizado, puede o no tener la necesidad de crear un enlace simbólico denominado /dev/pilot. USB Generalmente, un soporte USB se detecta de forma automática y no requiere el enlace simbólico mencionado anteriormente. En serie Con un soporte en serie, necesitará saber qué puerto en serie está conectado. Los dispositivos en serie se denominan /dev/ttyS? y, para el primer puerto, se inician desde /dev/ttyS0. Para configurar un soporte conectado al primer puerto en serie, introduzca el comando siguiente: ln -s /dev/ttyS0 /dev/pilot 13.3 Configuración del canal KAddressBook Inicialmente, basta con habilitar el canal KAddressBook sin modificar ninguno de los valores por defecto. Después de haber sincronizado los datos por primera vez, deberá configurar los detalles: qué hacer en caso de conflicto, modo de almacenamiento de las bases de datos de copias de seguridad y cómo, al almacenar determinados campos en el dispositivo portátil, dichos campos se asignan a campos previstos por KAddressBook. 13.4 Gestión de tareas pendientes y acontecimientos En el escritorio KDE, KOrganizer gestiona las tareas pendientes (tareas) y los acontecimientos (citas). Inicie la aplicación desde el menú principal con el comando korganizer o como parte de Kontact. Después de habilitar el calendario y el canal de tareas de KPilot, establezca algunas opciones de configuración antes de utilizarlas. 208 Figura 13.2 Configuración KPilot KOrganizer almacena los archivos en el directorio ~/.kde/share/apps/ korganizer. Sin embargo, puesto que el directorio .kde/ comienza por un punto, puede que no aparezca en el cuadro de diálogo de selección de archivos. En este caso, introduzca la vía completa de forma manual o cambie la visualización de los archivos ocultos (aquéllos que comienzan por un punto) en el cuadro de diálogo de selección de archivos. El acceso directo es F8 . Después de abrir el directorio ~/.kde/share/apps/korganizer, seleccione un archivo que KOrganizer pueda utilizar como archivo de calendario. En este ejemplo, el archivo en cuestión es palm.ics. En el caso de un usuario denominado tux, la vía y el nombre de archivo completos son /home/tux/.kde/share/apps/ korganizer/palm.ics, tal y como se muestra en la Figura 13.3, “Cuadro de diálogo con la vía de un archivo de calendario KOrganizer” (p. 210). Sincronización de un equipo portátil mediante KPilot 209 Figura 13.3 Cuadro de diálogo con la vía de un archivo de calendario KOrganizer KOrganizer no debe estar en funcionamiento cuando se intercambian datos con el dispositivo portátil. Si no, KPilot producirá un fallo al llevar a cabo la operación de sincronización. 13.5 Funcionamiento de KPilot La sincronización de los datos de las aplicaciones KDE con los datos del dispositivo portátil es bastante sencilla. Sólo tiene que iniciar KPilot pulsando el botón HotSync en el soporte o conectar el dispositivo para iniciar la operación de sincronización. 210 Figura 13.4 Ventana principal de KPilot 13.5.1 Realización de copias de seguridad de datos desde el dispositivo portátil Para realizar una copia de seguridad completa, seleccione File (Archivo) → Backup (Copia de seguridad). La copia de seguridad se realiza durante la siguiente operación de sincronización. A continuación, para volver, seleccione File (Archivo) → HotSync en el menú. Si no, la copia de seguridad completa, que lleva bastante tiempo, se volverá a realizar durante la siguiente operación de sincronización. Después de realizar una copia de seguridad completa, todas las copias de los programas y bases de datos del dispositivo portátil se encuentran en ~/.kde/share/apps/ kpilot/DBBackup/USERNAME, donde USERNAME (Nombre de usuario) es el nombre del usuario registrado en el dispositivo portátil. Los dos visores incorporados en KPilot se pueden utilizar para echar un vistazo a las direcciones o notas, pero no están diseñados para gestionar esos datos. Las aplicaciones KDE mencionadas anteriormente son las más adecuadas para realizar este tipo de tareas. Sincronización de un equipo portátil mediante KPilot 211 13.5.2 Instalación de programas en el dispositivo portátil El módulo Instalador de archivos es una herramienta interesante y útil para la instalación de programas en el dispositivo portátil. Generalmente, estos programas tienen la extensión .prc y están listos para iniciarse inmediatamente después de su carga en el dispositivo portátil. Antes de utilizar estos programas complementarios, lea las licencias y las instrucciones incluidas. 13.5.3 Sincronización de la libreta de direcciones y de los calendarios Para sincronizar los calendarios y direcciones, utilice las herramientas MultiSynK de KDE. Inicie la herramienta con el comando multisynk. Cree un par de conectores Konnector antes de sincronizar los datos. Vaya a File (Archivo) → New (Nuevo) y seleccione los conectores Konnector. Para salir haga clic en Aceptar. El nombre aparecerá en una lista en la ventana principal. Para sincronizar el equipo portátil vaya a File (Archivo) → Sync (Sincronizar). 212 Utilización de Beagle 14 Beagle es una herramienta de búsqueda que crea índices del espacio de información personal para ayudarle a encontrar lo que está buscando. Emplee Beagle para buscar documentos, correos electrónicos, historial Web, conversaciones de mensajería instantánea y de ITC, código fuente, imágenes, archivos de música, aplicaciones, etc. Beagle admite los siguientes orígenes de datos: • Sistema de archivos • Lanzadores de aplicaciones • Correo y libreta de direcciones de Evolution • Registros de mensajería instantánea de Gaim • Páginas Web de Firefox (conforme las ve) • Agregadores de RSS Blam y Liferea • Notas de Tomboy También admite los siguientes formatos de archivo: • OpenOffice.org • Microsoft Office (doc, ppt, xls) • HTML Utilización de Beagle 213 • PDF • Imágenes (jpeg, png) • Sonido (mp3, ogg, flac) • AbiWord • Formato de texto enriquecido (rtf) • Texinfo • Páginas Man • Código fuente (C, C++, C#, Fortran, Java, JavaScript, Pascal, Perl, PHP, Python) • Sólo texto Beagle crea automáticamente un índice de todo el directorio personal, aunque el usuario puede excluir algunos archivos o directorios si lo desea. Beagle también incluye una variedad de herramientas que puede usar para buscar los datos. 14.1 Indexación de datos El daemon Beagle (beagled) realiza automáticamente toda la indexación. Por defecto, se indexa todo lo que hay en el directorio personal. Beagle detecta los cambios realizados en él y, por consiguiente, vuelve a indexar los datos. • Los archivos se indexan inmediatamente cuando se crean, se vuelven a indexar cuando se modifican y se quitan del índice cuando se suprimen. • Los correos electrónicos se indexan en cuanto llegan. • Las conversaciones de mensajería instantánea se indexan mientras conversa, línea por línea. La indexación de datos requiere bastante capacidad de proceso del equipo, pero el daemon Beagle trata de ser lo más discreto posible. Contiene un programador que funciona para dar prioridad a las tareas y controlar el uso de la CPU dependiendo de si se está utilizando activamente la estación de trabajo. 214 14.1.1 Cómo impedir que se indexen archivos y directorios Si quiere evitar que se indexe un directorio (y todos sus subdirectorios), cree un archivo vacío denominado .noindex y colóquelo en el directorio. Puede añadir una lista de archivos y directorios al archivo .noindex para impedir que se indexen. En el archivo .noindex están permitidos los comodines. También puede colocar un archivo .neverindex en el directorio personal con una lista de archivos que nunca deberían indexarse. En este archivo también se permiten comodines. Utilice los mismos comodines que emplee para glob (por ejemplo, f*le ??.txt). También puede usar expresiones regulares más potentes añadiendo una barra antes y después del patrón (por ejemplo, /file.*.txt/). Para obtener más información, consulte el sitio Web de glob-UNIX (http://docs.python.org/lib/module-glob.html). 14.1.2 Indexación manual Beagle cuenta con un sistema efectivo para determinar cuándo indexar los archivos a la vez que intenta no interferir con otras aplicaciones que se pueden estar ejecutando. Programa la indexación de manera intencionada según la carga de trabajo y si el sistema está inactivo, de manera que no afecte en gran medida las tareas de escritorio. Sin embargo, si desea indexar el directorio personal en cualquier momento, introduzca el siguiente comando en una ventana de terminal antes de ejecutar Beagle: export BEAGLE_EXERCISE_THE_DOG=1 14.1.3 Comprobación del estado del índice Beagle incluye los siguientes comandos para permitir ver el estado de indexación actual: beagle-index-info Muestra el número de documentos y el tipo de documentos que se han indexado. beagle-status Muestra el trabajo actual que el daemon Beagle está realizando (siguiendo criterios de continuidad). Utilización de Beagle 215 14.2 Búsqueda de datos Beagle ofrece las siguientes herramientas que permiten buscar en los datos indexados. 14.2.1 Best Best (Bleeding Edge Search Tool) es una herramienta gráfica que busca en la información indexada. La herramienta Best no consulta el índice directamente sino que traslada los términos de búsqueda al daemon Beagle, que a su vez envía las coincidencias de vuelta a Best. A continuación Best procesa los resultados y permite realizar acciones en los objetos coincidentes. Para abrir Best en KDE, haga clic en el menú K → Sistema → Sistema de archivos → Búsqueda Beagle. En GNOME, haga clic en Aplicaciones → Sistema → Sistema de archivos → Búsqueda Beagle. Para usar Best, escriba simplemente el texto de búsqueda en el cuadro de entrada en la parte superior y, a continuación, pulse Intro o haga clic en Buscar. Best consulta los archivos indexados y devuelve los resultados. 216 Figura 14.1 Búsqueda Beagle Puede usar la lista de resultados para abrir archivos, enviarlos, enviar mensajes instantáneos, volver a reproducir archivos, remitir archivos o mostrarlos en el gestor de archivos. Las opciones disponibles para cada archivo dependen de su tipo. También puede usar el botón Anywhere (En cualquier parte) para limitar la búsqueda a archivos en un sitio concreto, como la libreta de direcciones o páginas Web, o para mostrar sólo un tipo específico de archivo en la lista de resultados. 14.2.2 beagle-query Beagle cuenta con una herramienta de línea de comando que puede usar para buscar en el índice de Beagle. Para usarla, escriba el siguiente comando en la ventana de terminal: beagle-querybúsqueda Utilización de Beagle 217 Sustituya búsqueda por el texto que debe buscarse y la herramienta beagle-query devolverá los resultados. Pueden usarse comodines con este comando. Utilice beagle-query --verbose búsqueda para mostrar información detallada sobre los resultados de búsqueda. 218 Parte V. Gráficos 15 Cámaras digitales y Linux Gestionar fotografías desde su cámara puede ser divertido si cuenta con las herramientas adecuadas. Linux ofrece varias utilidades que le ayudarán a ordenar y organizar sus fotografías. Estas utilidades incluyen gphoto2, Konqueror, Digikam y f-spot. En http://www.gphoto.org/proj/libgphoto2/support.php podrá ver una lista completa de cámaras compatibles. Si tiene instalado gphoto2, recupere la lista con el comando gphoto2 --list-cameras. Obtenga información sobre los comandos disponibles con gphoto2 --help. SUGERENCIA: Cámaras no compatibles Si no encuentra su cámara en la lista desde gphoto, no desespere. Es muy probable que su cámara sea compatible como dispositivo de almacenamiento en masa USB. Podrá obtener más información en la Sección 15.2, “Acceso a la cámara” (p. 222). 15.1 Conexión con la cámara La manera más rápida y cómoda de conectar cámaras digitales al equipo es mediante el puerto USB, siempre que el núcleo, la cámara y el equipo ofrezcan esta compatibilidad. El núcleo estándar de SUSE proporciona dicha compatibilidad. También es necesario disponer del cable adecuado. Cámaras digitales y Linux 221 Simplemente conecte la cámara al puerto USB y enciéndala. Tal vez tenga que poner la cámara en un modo especial de transferencia. Para saber cómo hacerlo, consulte el manual de su cámara digital. 15.2 Acceso a la cámara Hay tres maneras de acceder a las imágenes guardadas en la cámara. La más adecuada en su caso dependerá de la cámara en cuestión y el protocolo compatible. Normalmente se hace con almacenamiento USB en masa, el cual gestiona el sistema HotPlug o PTP (también conocido como PictBridge). Algunos modelos de cámara no funcionan con ninguno de estos protocolos. Para proporcionar la compatibilidad necesaria, gphoto2 incluye controladores específicos. Lo más fácil es que la cámara sea compatible con el sistema de almacenamiento USB en masa. Lea la documentación de su cámara si no está seguro de poder utilizar este sistema. Algunas cámaras admiten dos protocolos, como por ejemplo PTP y almacenamiento USB en masa. Desafortunadamente, también hay algunas cámaras que se comunican con un protocolo suyo propio, lo cual puede complicar la tarea. Si su cámara no es compatible con el almacenamiento USB en masa o con PTP, estas descripciones no funcionarán. Pruebe gphoto2 --list-cameras y la información provista en http://www.gphoto.org/. Seleccione esta opción si su cámara se puede cambiar a un dispositivo de almacenamiento USB en masa. Cuando la conecte mediante el puerto USB del equipo y la encienda, el sistema HotPlug la detectará. Esta operación monta el dispositivo automáticamente para que sea fácilmente accesible. El escritorio de KDE muestra un icono de cámara después de que el dispositivo se haya montado correctamente. Una vez montada correctamente la cámara, verá un nuevo directorio en /media que empezará con usb e irá seguido de muchos números. Cada proveedor y cada producto lleva su número, por lo que cuando conecte un dispositivo al equipo, siempre tendrá el mismo nombre. Se mostrarán entradas diferentes dependiendo de lo que se haya conectado al bus USB. Lo único que queda es localizar la entrada correcta para la cámara. Pruebe a obtener una lista de uno de estos directorios (DCIM/xxx) y vea qué ocurre. Cada cámara tiene una estructura de árbol diferente, por lo que no existe una regla general. Si ve archivos JPEG en un directorio, probablemente haya dado con él. 222 Cuando encuentre el directorio correcto, podrá copiar, desplazar o eliminar los archivos de su cámara con un gestor de archivos como Konqueror, o con comandos shell sencillos (consulte la Sección 27.3, “Comandos importantes de Linux” (p. 433) y la Referencia). 15.3 Uso de Konqueror Los usuarios de KDE pueden acceder fácilmente a las cámaras digitales a través de la conocida interfaz de Konqueror. Conecte la cámara al puerto USB. Deberá aparecer en el escritorio el icono de una cámara. Haga clic en este icono para abrir la cámara con Konqueror. Otra manera de acceder a la cámara es escribir la URL camera:/ en Konqueror. Navegue por la estructura de directorios de la cámara hasta ver los archivos. Utilice las funciones de gestión de archivos de Konqueror habituales para copiar los archivos según proceda. Hay más información sobre cómo utilizar Konqueror en el Capítulo 3, Navegador Web Konqueror (p. 77). 15.4 Uso de Digikam Digikam es un programa de KDE para descargar fotografías desde cámaras digitales. La primera vez que lo ejecute, Digikam le preguntará dónde desea guardar el álbum de fotos. Si indica un directorio que ya contiene una colección de fotografías, Digikam tratará a esa subcarpeta como un álbum. Al iniciarse, Digikam muestra una ventana con dos secciones: los álbumes aparecen a la izquierda y las fotografías del álbum abierto a la derecha. Consulte la Figura 15.1, “Ventana principal de Digikam” (p. 223). Figura 15.1 Ventana principal de Digikam Cámaras digitales y Linux 223 15.4.1 Configuración de la cámara Para configurar la cámara en Digikam, seleccione Camera → Add Camera (Cámara Añadir cámara). Intente primero detectar automáticamente la cámara con Auto-Detect (Detección automática). Si falla, examine la lista en busca del modelo mediante Add (Añadir). Si el modelo de la cámara no aparece en la lista, pruebe con un modelo más antiguo o utilice USB/IEEE mass storage camera (Cámara de almacenamiento USB/IEEE en masa). Confirme haciendo clic en Ok (Aceptar). 15.4.2 Descarga de imágenes desde la cámara Una vez que se haya configurado correctamente la cámara, conéctela con el menú Camera (Cámara) y el nombre que proporcionó en el cuadro de diálogo descrito en la Sección 15.4.1, “Configuración de la cámara” (p. 224). Digikam abrirá una ventana y comenzará a descargar miniaturas, las cuales mostrará como aparece en la Figura 15.2, “Descarga de imágenes desde la cámara” (p. 225). Haga clic con el botón derecho del ratón en una imagen para abrir un menú emergente con las opciones View (Ver), Properties (Propiedades) o EXIF Information (Información EXIF), Download (Descargar) y Delete (Suprimir). Advanced (Avanzado) le permite seleccionar opciones para cambiar nombres e indicar cómo se debe gestionar la información proporcionada por la cámara (EXIF). 224 Figura 15.2 Descarga de imágenes desde la cámara Las opciones para cambiar nombres pueden ser muy cómodas si la cámara no utiliza nombres de archivo de claro significado. También puede dejar que Digikam cambie el nombre de las fotografías automáticamente. Basta que con que indique un prefijo exclusivo y, si lo desea, una fecha, una hora o un número secuencial. Digikam hará el resto. Seleccione todas las fotografías que desee descargar de la cámara pulsando el botón izquierdo del ratón o haciendo clic en fotografías individuales manteniendo pulsada la tecla Control . Las fotografías seleccionadas aparecerán con los colores invertidos. Haga clic en Download (Descargar). Seleccione el destino en la lista al efecto o cree un álbum nuevo con New Album (Nuevo álbum). Se sugerirá automáticamente un nombre de archivo con la fecha en curso. Confirme su elección mediante Ok (Aceptar) para iniciar el proceso de descarga. Cámaras digitales y Linux 225 15.4.3 Obtención de información Obtener información acerca de la fotografía no es difícil. Si coloca el puntero del ratón sobre una miniatura, aparecerá un pequeño resumen en forma de sugerencia. Si precisa más información, haga clic con el botón derecho del ratón en la fotografía y seleccione Properties (Propiedades) en el menú. Se abrirá un cuadro de diálogo con tres pestañas: General (General), EXIF (EXIF) e Histogram (Histograma). General (General) indica el nombre, el tipo, el propietario y otros datos básicos. La sección más interesante es la que ofrece la pestaña EXIF (EXIF). La cámara almacena ciertos metadatos por cada fotografía. Digikam lee estas propiedades y las muestra en esta lista. Puede encontrar el tiempo de exposición, las medidas de píxeles y más cosas. Para obtener más información sobre una entrada seleccionada, pulse las teclas Shift + F1 . Al hacerlo, aparecerá una pequeña sugerencia. La última pestaña, Histogram (Histograma), muestra información estadística. 15.4.4 Gestión de álbumes Digikam inserta una carpeta My Albums (Mis álbumes) por defecto en la que se van recopilando todas las fotografías. Más adelante podrá almacenarlas en subcarpetas. Los álbumes se pueden ordenar según el diseño del directorio, según el nombre de colección definido en las propiedades del álbum o según la fecha en la que se crearon (esta fecha también se puede cambiar en las propiedades de cada álbum). Hay varias maneras de crear un álbum: • Cargar las nuevas fotos desde la cámara. • Crear un álbum nuevo haciendo clic en el botón New Album (Álbum nuevo) de la barra de herramientas. • Importar una carpeta existente desde el disco duro [seleccione Album → Import → Import Folders (Álbum - Importar - Importar carpetas)]. • Haciendo clic con el botón derecho del ratón en My Albums (Mis álbumes) y seleccionando New Album (Nuevo álbum). Después de crear un álbum de la forma elegida, aparecerá un cuadro de diálogo. Indique un nombre para el álbum. También puede elegir una colección, insertar comentarios y 226 seleccionar una fecha para el álbum. Las colecciones son formas de organizar los álbumes con una etiqueta común. Esta etiqueta se utiliza al seleccionar View → Sort Albums → By Collection (Ver - Ordenar álbumes - Por colección). El comentario aparecerá en la banda superior de la ventana principal. La fecha del álbum se utiliza cuando se selecciona View → Albums → By Date (Ver - Álbumes - Por fecha). Digikam utiliza la primera fotografía del álbum como icono de vista previa en la lista My Albums (Mis álbumes). Para seleccionar una diferente, haga clic con el botón derecho en la fotografía en cuestión y seleccione Set as Album Thumbnail (Definir como miniatura de álbum) en el menú contextual. 15.4.5 Gestión de etiquetas A veces, gestionar muchas fotografías diferentes en álbumes distintos puede resultar complejo. Digikam incluye el sistema My Tag (Mi etiqueta) para ayudarle a organizar las fotografías individuales. Por ejemplo, supongamos que tiene fotos de su amigo Juan de ocasiones diferentes y quiere recopilar todas sus imágenes, fuera de los correspondientes álbumes. Las etiquetas le permiten localizar todas las fotografías muy fácilmente. Primero, cree una etiqueta nueva haciendo clic en My Tags → People (Mis etiquetas - Gente). En el menú contextual, seleccione New Tag (Nueva etiqueta). En el cuadro de diálogo que aparece, escriba Juan como título y, si lo desea, defina un icono. Confirme haciendo clic en Ok (Aceptar). Después de crear la etiqueta, asígnele las imágenes que desee. Diríjase a cada álbum y seleccione las correspondientes fotografías. Haga clic con el botón derecho y seleccione Assign Tag → People → Juan (Asignar etiqueta - Gente - Juan) en el menú emergente. También puede arrastrar las fotografías al nombre de etiqueta bajo My Tags (Mis etiquetas) y soltarlas allí. Repita estos pasos con el resto de los álbumes. Compruebe todas las imágenes haciendo clic en My Tags → People → Juan (Mis etiquetas - Gente Juan). Puede asignar más de una etiqueta a cada fotografía. Editar las etiquetas y los comentarios puede resultar una pesada tarea. Para simplificarla, haga clic con el botón derecho del ratón en una fotografía y seleccione Edit Comments & Tags (Editar comentarios y etiquetas). Se abrirá un cuadro de diálogo con una vista previa, un campo de comentario y una lista de etiquetas. Ahora podrá insertar todas las etiquetas necesarias y añadir un comentario. Sírvase de los botones Forward (Adelante) y Back (Atrás) para navegar por el álbum. Guarde los cambios haciendo clic en Apply (Aplicar) y salga con Ok (Aceptar). Cámaras digitales y Linux 227 15.4.6 Exportación de colecciones de imágenes Digikam proporciona varias opciones de exportación para ayudarle a archivar y publicar sus colecciones personales de imágenes: archivar en un CD o en un DVD (vía k3b), exportar a HTML y exportar a una galería remota. Para guardar una colección de imágenes en un CD o en un DVD, siga estos pasos: 1 Seleccione File → Export → Archive to CD/DVD (Archivo - Exportar - Archivar en CD/DVD). 2 Realice los ajustes necesarios en el cuadro de diálogo Create CD/DVD Archive (Crear archivo de reserva en CD/DVD) a través de sus distintos submenús. Cuando termine, haga clic en OK (Aceptar) para iniciar el proceso de grabación. a Selection (Selección): determine qué parte de la colección debe archivarse seleccionando álbumes y etiquetas. b HTML Interface (Interfaz HTML): decida si se podrá acceder a la colección de imágenes a través de una interfaz HTML y si se debe añadir la función de ejecución automática al archivo de reserva de CD/DVD. Defina un título y una imagen para la selección, junto con una fuente y propiedades del fondo. c Media Volume Descriptor (Descriptor de volumen de medios): cambie los ajustes de descripción del volumen si lo desea. d Media Burning (Grabación de medios): ajuste las opciones de grabación de acuerdo con sus necesidades si lo estima oportuno. Proceda como sigue para exportar la colección de imágenes a HTML: 1 Seleccione File → Export → HTML Export (Archivo - Exportar - Exportación HTML). 2 Ajuste los valores de Create Image Galleries (Crear galerías de imágenes) según estime oportuno a través de los distintos submenús. Cuando termine, haga clic en OK (Aceptar) para iniciar el proceso de creación de la galería. 228 a Selection (Selección): determine qué parte de la colección debe archivarse seleccionando álbumes y etiquetas. b Look (Aspecto): defina el título y aspecto de la galería HTML. c Album (Álbum): determine la ubicación de la galería en el disco y el tamaño de imagen, la compresión, el formato y la cantidad de metadatos que se verán en la galería final. d Thumbnails (Miniaturas): como con las imágenes de destino, deberá especificar el tamaño, la compresión y el tipo de archivo para las miniaturas utilizadas para navegar por la galería. Proceda como sigue para exportar la colección a una galería de imágenes externa en Internet: 1 Hágase con una cuenta en un sitio Web externo en el que hospedar la galería. 2 Seleccione File → Export → Export to Remote Gallery (Archivo - Exportar Exportar a galería remota) e indique la URL, el nombre de usuario y la contraseña del sitio externo cuando así se le solicite. Digikam establece conexión con el sitio especificado y abre una ventana nueva llamada Gallery Export (Exportación de galería). 3 Determine la ubicación del nuevo álbum dentro de la galería. 4 Haga clic en New Album (Nuevo álbum) e indique la información que le pida Digikam. 5 Cargue las imágenes en el nuevo álbum con Add Photos (Añadir fotos). 15.4.7 Herramientas útiles Digikam proporciona varias herramientas que simplifican algunas tareas. Las encontrará en el menú Tools (Herramientas). A continuación se incluye una pequeña colección de herramientas disponibles. Cámaras digitales y Linux 229 Creación de calendarios Si desea agradar a alguien en particular, seguro que le gustará recibir un calendario personalizado. Diríjase a Tools → Create Calendar (Herramientas - Crear calendario). Al hacerlo, se abrirá un cuadro de diálogo de asistente como el que se muestra en la Figura 15.3, “Creación de plantillas para calendarios” (p. 230). Figura 15.3 Creación de plantillas para calendarios Personalice los ajustes (tamaño de papel, posición de imagen, fuente, etc.) y confirme con Next (Siguiente). Introduzca el año y seleccione qué imágenes desea utilizar. Después de hacer clic de nuevo en Next (Siguiente), aparecerá un resumen. El último Next (Siguiente) abre el cuadro de diálogo de la impresora de KDE. En este punto deberá decidir si desea obtener una vista previa, guardar como PDF o imprimir directamente. Búsqueda de fotografías duplicadas A veces se fotografían escenas parecidas que aparecen repetidas y se prefiere guardar sólo las mejores. Esta es la tarea prefecta para el módulo auxiliar Find Duplicate (Buscar duplicado). 230 Diríjase a Tools → Find Duplicate Images (Herramientas - Buscar imágenes duplicadas). Seleccione los álbumes o las etiquetas que desee gestionar. En Method & Cache (Método y caché), seleccione el método de búsqueda: uno más preciso o un más rápido. Tras confirmar haciendo clic en OK (Aceptar), Digikam procede con la búsqueda. Si se encuentran duplicados, éstos aparecen en una ventana como en la que se muestra en la Figura 15.4, “Resultados de la búsqueda” (p. 231). Decida qué imágenes suprimir habilitando las casillas correspondientes y haciendo clic en Delete (Suprimir). Para cerrar la ventana, haga clic en Close (Cerrar). Figura 15.4 Resultados de la búsqueda Procesos por lotes Digikam también ofrece procesos por lotes para realizar tareas específicas en lotes de archivos. Estas tareas pueden ser cambiar de nombre los archivos, convertirlos, cambiarles el tamaño, etc. Podrá encontrar estos procesos en Tools → Batch Processes (Herramientas - Procesos por lotes). Cámaras digitales y Linux 231 15.4.8 Visualización y edición básica de imágenes con Digikam Digikam incluye su propio programa para ver y editar imágenes. Este programa se abre automáticamente al hacer doble clic en una imagen en miniatura. Utilice esta herramienta para realizar algunas tareas básicas de edición en las imágenes que haya descargado de la cámara. Puede recortar, girar la imagen o invertirla, realizar ajustes básicos en el color, aplicar varios filtros de color (por ejemplo para exportar una imagen en color a una en blanco y negro) y reducir de forma eficaz los ojos rojos en los retratos. Los menús más importantes son: Image (Imagen) Utilice Edit Comments & Tags (Editar comentarios y etiquetas) para escribir comentarios sobre una imagen concreta y para asignar una etiqueta (categorías) a la imagen. Properties (Propiedades) le lleva a una ventana con tres pestañas con información general, información EXIF y el histograma de la imagen. Fix (Reparar) Este menú contiene algunas de las funciones de edición más necesarias para la fotografía digital. Colors (Colores) le lleva a un submenú en el que se pueden modificar todos los ajustes básicos del color. También puede difuminar o enfocar la imagen completa o sólo la parte que seleccione. Para reducir el efecto de ojos rojos en un retrato, seleccione la zona de los ojos en la cara haciendo clic con el botón izquierdo del ratón y manteniéndolo pulsado ampliando gradualmente la selección, seleccione Red Eye Reduction (Reducción de ojos rojos) y elija entre una reducción leve o importante, según se haya seleccionado toda la zona o sólo los ojos. Transform (Transformar) El menú Transform (Transformar) ofrece las funciones de recorte, giro, inversión y cambio de tamaño. También puede utilizar la opción Aspect Ratio Crop (Recorte en proporción) para hacer recortes según una proporción fija. Filters (Filtros) En caso de tener que transformar los colores de una fotografía en blanco y negro, o si se quiere conseguir un efecto de antigüedad, consulte el menú Filters (Filtros) y elija una de las distintas opciones. 232 Podrá ver una descripción más detallada de esta herramienta en la ayuda en línea de Digikam en digiKam Image Editor (Editor de imágenes de digiKam), a la cual se accede con el botón Help (Ayuda) de la barra de herramientas de Digikam. SUGERENCIA: Procesamiento avanzado de imágenes Utilice GIMP para realizar operaciones de edición profesionales. Hay más información sobre cómo utilizar GIMP en el Capítulo 17, Manejo de gráficos con GIMP (p. 249). 15.5 Uso de f-spot f-spot es una herramienta de gestión para colecciones de imágenes personalizadas para el escritorio de GNOME. Esta herramienta le permite asignar etiquetas diferentes a las imágenes para ordenarlas por categorías, y además ofrece varias interesantes opciones de edición de imágenes. La primera vez que ejecute f-spot, indique dónde localizar las imágenes que se importarán a la colección de f-spot. Si ya tiene la colección de imágenes almacenadas en el disco duro, escriba la vía hacia el directorio correspondiente e incluya las subcarpetas en cuestión, de haberlas. f-spot importará estas imágenes a su base de datos. SUGERENCIA: Etiquetación de imágenes para importarlas Si todas las imágenes que se están importando pertenecen a la misma categoría, podrá adjuntar la etiqueta correspondiente en la importación. Seleccione Attach Tag (Adjuntar etiqueta) y elija la etiqueta coincidente en el menú desplegable. Figura 15.5 Importación de imágenes a f-spot La ventana principal de f-spot se divide en tres áreas principales. La barra lateral a la izquierda muestra las categorías, las etiquetas e información detallada acerca de las Cámaras digitales y Linux 233 imágenes seleccionadas, mientras que la parte derecha de la ventana muestra miniaturas de las imágenes con la categoría o la etiqueta seleccionada o, si no se ha seleccionado ninguna, la colección completa. Figura 15.6 Ventana principal de f-spot La barra de menús que hay en la parte superior de la ventana le permite acceder a los menús principales. La barra de herramientas situada debajo ofrece varias funciones representadas por su correspondiente icono: Rotate Left (Girar a la izquierda) y Rotate Right (Girar a la derecha) Utilice este acceso directo para cambiar la orientación de una imagen. Browse (Examinar) El modo Browse (Examinar) le permite ver y buscar colecciones enteras o subconjuntos etiquetados de colecciones. También puede utilizar la línea temporal para buscar imágenes según la fecha de creación. Edit Image (Editar imagen) Este modo también le permite seleccionar una imagen y procesarla a nivel básico. Podrá consultar información detallada en la Sección 15.5.6, “Procesamiento básico de imágenes con f-spot” (p. 239). 234 Fullscreen (Pantalla completa) Cambie el modo de visualización a pantalla completa. Slideshow (Presentación de diapositivas) Inicie una presentación de diapositivas. 15.5.1 Descarga de imágenes de la cámara Importe imágenes nuevas desde la cámara digital conectada al puerto USB del equipo mediante el menú File → Import from Camera (Archivo - Importar desde cámara). El tipo de cámara se detectará automáticamente. Figura 15.7 Importación desde la cámara f-spot abre una ventana de vista previa con todas las imágenes disponibles para descargar desde la cámara. Los archivos se copian en el directorio de destino especificado con Copy Files to (Copiar archivos a). Si se selecciona Import files after copy (Importar Cámaras digitales y Linux 235 archivos después de copiar), todas las imágenes que se hayan copiado desde la cámara se importarán automáticamente a la base de datos de f-spot. Durante el proceso de importación se puede también realizar el etiquetado, seleccionando la etiqueta adecuada con Select Tags (Seleccionar etiquetas). Si prefiere no importar todas las imágenes de la cámara a la base de datos, basta con que deseleccione las imágenes no deseadas en la ventana de vista previa. 15.5.2 Obtención de información Cuando se seleccione una imagen, aparecerá información estadística sobre ella en la parte inferior izquierda de la ventana. Esta información incluye el nombre de archivo, su versión (copia o imagen original), la fecha de creación, su tamaño y la exposición empleada al crear la imagen particular. Consulte los datos EXIF asociados al archivo de imagen mediante View → EXIF Data (Ver - Datos EXIF). 15.5.3 Gestión de etiquetas Utilice etiquetas para organizar en categorías las imágenes a fin de crear subconjuntos fáciles de gestionar dentro de las colecciones. Supongamos que por ejemplo desea ordenar la colección de retratos de sus amigos y su familia. Para hacerlo, siga este procedimiento: 1 Seleccione el modo Browse (Examinar) en f-spot. 2 En el marco izquierdo de la ventana de f-spot, seleccione la categoría People (Gente), haga clic en ella con el botón derecho y seleccione Create New Tag (Crear nueva etiqueta). Las etiquetas nuevas aparecerán como subcategorías debajo de la categoría People (Gente): a Cree una nueva etiqueta llamada Amigos. b Cree una nueva etiqueta llamada Familia. 3 Ahora, adjunte etiquetas a las imágenes o los grupos de imágenes seleccionadas. Haga clic con el botón derecho en una imagen, elija Attach Tag (Adjuntar etiqueta) y, a continuación, seleccione la etiqueta adecuada para la imagen. Para adjuntar una etiqueta a un grupo de imágenes, haga clic en la primera de ellas, pulse la 236 tecla Shift y vaya seleccionando en resto sin levantar el dedo de la tecla Shift . Haga clic con el botón derecho del ratón para abrir el menú de etiquetas y seleccione la categoría adecuada. Una vez que se hayan aplicado categorías a las imágenes, podrá buscar en la colección según las etiquetas. Bastará con que marque People → Familia (Gente - Familia). La colección mostrada quedará limitada a las imágenes etiquetadas como Familia. También puede buscar en la colección según etiquetas mediante Find (Buscar) → Find by Tag (Buscar por etiqueta). El resultado de la búsqueda aparecerá en la ventana de miniaturas. Eliminar etiquetas de imágenes o de grupos de imágenes es parecido a adjuntarlas. Otra forma de acceder a las funciones de edición de etiquetas es el menú Tags (Etiquetas) de la barra de menús superior. 15.5.4 Búsquedas Tal y como se ha dicho en la Sección 15.5.3, “Gestión de etiquetas” (p. 236), las etiquetas se pueden utilizar también para encontrar imágenes. Otra forma, bastante exclusiva de f-spot, es utilizar la opción Timeline (Línea temporal), situada debajo de la barra de herramientas. Arrastrando el pequeño marco que hay a lo largo de la línea temporal, se limitan las imágenes mostradas en el resumen de miniaturas a las incluidas dentro del marco temporal seleccionado. f-spot empieza con una línea temporal por defecto, la cual se puede modificar moviendo las barras deslizantes hacia los extremos derecho e izquierdo de la línea temporal. 15.5.5 Exportación de colecciones de imágenes f-spot ofrece varias funciones de exportación de colecciones en File → Export (Archivo - Exportar). Probablemente las más utilizadas sean Export to Web Gallery (Exportar a galería Web) y Export to CD (Exportar a CD). Para exportar una selección de imágenes a una galería Web, siga este procedimiento: 1 Seleccione las imágenes que quiera exportar. Cámaras digitales y Linux 237 2 Haga clic en File → Export → Export to Web Gallery (Archivo - Exportar Exportar a galería Web) y seleccione la galería a la que exportar las imágenes o añada una nueva. f-spot establecerá conexión con la ubicación Web que se indique como galería Web. Seleccione el álbum al que exportar las imágenes y decida si desea adaptar a escala las imágenes automáticamente y exportar los títulos y los comentarios. Figura 15.8 Exportación de imágenes a galerías Web Para exportar una selección de imágenes a un CD, siga este procedimiento: 1 Seleccione las imágenes que quiera exportar. 2 Haga clic en File → Export → Export to CD (Archivo - Exportar - Exportar a CD) y haga clic en OK (Aceptar). f-spot copiará los archivos y abrirá el cuadro de diálogo de grabación de CD. Asigne un nombre al disco y determine la velocidad de grabación. Haga clic en Write (Grabar) para iniciar el proceso de grabación de CD. 238 Figura 15.9 Exportación de imágenes a CD 15.5.6 Procesamiento básico de imágenes con f-spot f-spot ofrece varias funciones de edición básica de imágenes. Entre en el modo de edición de f-spot haciendo clic en el icono Edit Image (Editar imagen) de la barra de herramientas, o haciendo doble clic en la imagen que quiera editar. Cambie de una imagen a otra con los botones de flecha que hay en la parte inferior derecha. Elija una de las siguientes funciones de edición: Sharpen (Enfocar) Acceda a esta función con Edit → Sharpen (Editar - Enfocar). Ajuste los valores de Amount (Cantidad), Radius (Radio) y Threshold (Umbral) según el caso y haga clic en OK (Aceptar). Crop Image (Recortar imagen) Para recortar imágenes de una selección, elija una proporción de recorte fija o bien la opción No Constraint (Sin restricciones) en el menú desplegable que hay en la Cámaras digitales y Linux 239 parte inferior izquierda, seleccione la zona que quiera recortar y haga clic en el icono de tijeras que hay junto al menú de proporción. Red Eye Reduction (Reducción de ojos rojos) Seleccione en el retrato el área de los ojos y haga clic en el icono del ojo rojo. Adjust Color (Ajustar color) Consulte el histograma empleado en la creación de la fotografía y corrija la exposición y la temperatura del color si lo estima oportuno. SUGERENCIA: Procesamiento avanzado de imágenes GIMP permite realizar operaciones de edición de imágenes a nivel profesional. Hay más información sobre cómo utilizar GIMP en el Capítulo 17, Manejo de gráficos con GIMP (p. 249). 15.6 Información adicional Para obtener más información acerca de cómo utilizar cámaras digitales con Linux, consulte los siguientes sitios Web: • http://digikam.sourceforge.net/: información sobre Digikam • http://www.gphoto.org: información sobre gPhoto2 • http://www.gphoto.org/proj/libgphoto2/support.php: una completa lista de cámaras compatibles • http://www.thekompany.com/projects/gphoto/: información sobre Kamera e interfaces KDE para usuarios para gPhoto2 240 Kooka: una aplicación de escaneo 16 Kooka es una aplicación de entorno KDE diseñada para escanear. Este capítulo explica la interfaz de usuario y la funcionalidad de la aplicación. Además de crear archivos de imagen a partir de medios impresos, como fotografías o revistas, Kooka tiene capacidades de reconocimiento de caracteres. Esto significa que puede ayudarle a convertir texto escrito en un archivo de texto que puede editarse. Inicie Kooka en el menú principal o escriba el comando kooka. Al iniciarse, Kooka abre una ventana de tres tramas con una barra de menú que se encuentra en la parte superior izquierda y con una barra de herramientas situada justo debajo. Todas las ventanas pueden reajustarse o redistribuirse sin restricción alguna mediante el ratón. También es posible separar completamente las tramas de la ventana de Kooka para colocarlas en el escritorio. Para mover las tramas, haga clic en la línea doble y delgada que se encuentra justo encima ellas. Cualquier trama, con la excepción de la ventana principal, puede colocarse dentro de cualquier otra trama alineada a la izquierda, a la derecha o a las partes superior, inferior y central. Las ventanas centradas tienen el mismo tamaño, se solapan unas con otras y pueden traerse a un primer plano mediante pestañas. Las tramas Image Viewer (Visor de imágenes) y Scan Preview (Vista previa de escaneo) comparten, por defecto, una ventana. Las pestañas permiten cambiar de una a otra. La trama izquierda contiene la galería. Es un pequeño explorador de archivos mediante el que se accede a las imágenes escaneadas. OCR (Reconocimiento óptico de caracteres) y las miniaturas, que pueden cargarse en el visor de imágenes con sólo hacer clic con el ratón, comparten la trama de la parte inferior derecha. Consulte la Figura 16.1, “Ventana principal de Kooka” (p. 242). Kooka: una aplicación de escaneo 241 Figura 16.1 16.1 Ventana principal de Kooka Vista previa Una vista previa debería crearse siempre que el objeto escaneado sea más pequeño que el área total de escaneo. Defina algunos parámetros en la parte izquierda de la trama de vista previa. Seleccione el tamaño del resultado del escaneo mediante Custom (Personalizar) o especifique uno de los formatos estándar. Consulte la Figura 16.2, “Ventana de vista previa de Kooka” (p. 243). El ajuste Custom (Personalizar) es el que ofrece una mayor flexibilidad, puesto que permite la selección del área deseada con el ratón. Una vez definidos los ajustes, solicite una presentación de la vista previa de la imagen que se va a escanear haciendo clic en Preview Scan (Previsualizar escaneo) en Scan Parameters (Parámetros de escaneo). 242 Figura 16.2 16.2 Ventana de vista previa de Kooka Escaneo final Si ha seleccionado Custom (Personalizar) para el tamaño del escaneo, utilice el ratón para seleccionar el área rectangular que desee escanear. El área seleccionada queda delimitada por una línea de puntos. Elija entre escaneo en color o en blanco y negro, y defina la resolución mediante la barra reguladora. Consulte la Figura 16.3, “Parámetros de escaneo de Kooka” (p. 244). Cuanto mayor es la resolución, mejor es la calidad de la imagen escaneada. No obstante, una alta resolución también tiene como resultado un archivo de mayor tamaño y un mayor tiempo de escaneo. Active Use custom gamma table (Utilizar tabla gamma personalizada) y haga clic en Edit (Editar). Kooka: una aplicación de escaneo 243 Figura 16.3 Parámetros de escaneo de Kooka Una vez definidos todos los ajustes, haga clic en Final Scan (Escaneo final) para escanear la imagen. Entonces, la imagen escaneada se mostrará en el visor de imágenes, además de como una miniatura. Cuando se le solicite, seleccione el formato con el que quiera guardar la imagen. Para guardar todas las imágenes escaneadas posteriormente en el mismo formato, marque la casilla correspondiente. Confirme haciendo clic en OK (Aceptar). 16.3 Menús Algunas de las funciones de la barra de herramientas también están disponibles en los menús File (Archivo) e Image (Imagen). Cambie los ajustes de preferencias de Kooka en Settings (Ajustes). File (Archivo) Utilice este menú para iniciar el asistente de impresión KPrinter, crear una nueva carpeta para las imágenes y guardar, borrar y cerrar archivos. Los resultados de OCR de un documento de texto escaneado pueden guardarse aquí. Utilice también este menú para cerrar Kooka. Image (Imagen) El menú Image (Imagen) permite iniciar una aplicación de edición gráfica para el posprocesado de la imagen o el reconocimiento óptico de caracteres de una imagen. 244 El texto reconocido a partir de una operación de OCR se muestra en su propia trama. Se encuentran disponibles varias herramientas para girar o invertir una imagen y para ajustar su tamaño. También es posible acceder a estas funciones desde el menú de herramientas. Create From Selection (Crear a partir de selección) permite guardar un área de una imagen marcada previamente con el ratón. Settings (Ajustes) Settings (Ajustes) ajusta la apariencia y el manejo de Kooka. La barra de herramientas y la barra de estado pueden activarse y desactivarse, y se pueden definir las combinaciones de teclas para las entradas de menú. Configure Toolbars (Configurar barras de herramientas) proporciona una lista de todas las funciones disponibles de la barra de herramientas. Configure Kooka (Configurar Kooka) abre un cuadro de diálogo de configuración en el que puede modificarse la apariencia y el manejo de Kooka. No obstante, los ajustes por defecto suelen ser suficientes. En Tool Views (Vistas de herramientas) pueden habilitarse e inhabilitarse el visor de miniaturas, la vista previa, la galería, los parámetros de escaneo y la ventana de resultados de OCR. Help (Ayuda) El menú Help (Ayuda) proporciona acceso al manual de ayuda en línea de Kooka. También puede utilizarse para acceder al canal de comentarios mediante el que puede dejar constancia de sus problemas y sugerencias. También proporciona información sobre la versión, los autores y la licencia de Kooka y KDE. 16.4 Galería La ventana de la galería muestra la carpeta en la que, por defecto, Kooka almacena todos los archivos de imagen. Puede verse un ejemplo en la Figura 16.4, “Galería de Kooka” (p. 246). Para guardar una imagen en su directorio personal, haga clic en la miniatura para seleccionarla y, a continuación, seleccione File (Archivo) → Save Image (Guardar imagen). A continuación, especifique su directorio personal y déle al archivo un nombre descriptivo. Kooka: una aplicación de escaneo 245 Figura 16.4 Galería de Kooka Para añadir imágenes a la galería, tan sólo tiene que arrastrarlas y soltarlas desde Konqueror. Inicie Konqueror, desplácese hasta el directorio en el que se encuentran las imágenes que desea añadir a la galería y arrástrelas con el ratón a una carpeta de la galería de Kooka. 16.5 Reconocimiento óptico de caracteres Si el módulo de reconocimiento de caracteres está instalado, los documentos pueden escanearse en el modo lineart, guardarse en el formato propuesto y, a continuación, procesarse para el reconocimiento de texto en el menú Image (Imagen). Se puede procesar todo el documento o tan sólo un área previamente seleccionada. Un cuadro de diálogo de configuración informa al módulo de si el texto original es de tipo impreso, manuscrito o de tipo estándar. También puede definirse el lenguaje para que el módulo pueda procesar correctamente el documento. Consulte la Figura 16.5, “OCR con Kooka” (p. 247). 246 Figura 16.5 OCR con Kooka Cambie a la ventana OCR Result Text (Texto resultante de OCR) y compruebe el texto, puesto que puede necesitar una revisión. Para ello, guarde el texto con File (Archivo) → Save OCR Result Text (Guardar texto resultante de OCR). El texto puede procesarse con OpenOffice.org o KWrite. Kooka: una aplicación de escaneo 247 Manejo de gráficos con GIMP 17 El programa GIMP (Programa de manipulación de imágenes de GNU) permite crear y editar gráficos de píxeles. En gran parte, sus funciones son comparables con las de Adobe Photoshop y otros programas comerciales. Utilícelo para retocar imágenes y modificar su tamaño, diseña gráficos para páginas Web, crea carátulas para sus CDs, o, en definitiva, para realizar prácticamente cualquiera de los proyectos de gráficos que pueda imaginar. Cubre las necesidades tanto de aficionados como de profesionales. Como muchos otros programas de Linux, GIMP es fruto del esfuerzo conjunto de desarrolladores de todo el mundo que han aportado al proyecto de forma desinteresada su tiempo y su código. Este programa se encuentra en constante evolución, por lo que la versión incluida en su SUSE Linux puede variar ligeramente con respecto a la versión que se trata aquí. El diseño de las ventanas individuales y de las secciones de ventanas son los elementos en los que es mayor la probabilidad de que se produzcan variaciones. GIMP es un programa extremadamente complejo. Por esta razón, sólo se tratarán en el presente capítulo un reducido número de funciones, herramientas y elementos del menú. Consulte la Sección 17.6, “Información adicional” (p. 257) para recibir sugerencias sobre dónde obtener información adicional acerca del programa. 17.1 Formatos de gráficos Son dos los formatos principales de gráficos que existen: los píxeles y los vectores. GIMP trabaja únicamente con gráficos de píxeles, que es el formato normal para fotografías e imágenes escaneadas. Los gráficos de píxeles consisten en pequeños bloques de color que, una vez juntos, dan lugar a la imagen completa. Gracias a esto, los archivos Manejo de gráficos con GIMP 249 se pueden aumentar considerablemente en cuanto al tamaño. No obstante, no es posible aumentar el tamaño de una imagen de píxeles sin que se produzca una pérdida de calidad. Al contrario de lo que ocurre en los gráficos de píxeles, los gráficos vectoriales no guardan la información de todos los píxeles individuales. En su lugar, guardan información sobre cómo se agrupan los puntos, las líneas o las zonas de la imagen. Además, las imágenes vectoriales se pueden ampliar fácilmente. La aplicación de dibujo de OpenOffice.org, por ejemplo, utiliza este formato. 17.2 Inicio de GIMP Inicie GIMP desde el menú principal. En su lugar, puede también escribir el comando gimp & en una línea de comando. 17.2.1 Configuración inicial Cuando inicie GIMP por primera vez, se abrirá un asistente para la configuración que le ayudará a realizar la configuración del programa. Los ajustes que se dan por defecto son válidos para la mayoría de las finalidades del programa. Pulse Continue (Continuar) en cada uno de los cuadros de diálogo, salvo si está familiarizado con los ajustes y prefiere una configuración distinta. 17.2.2 Ventanas por defecto Aparecen tres ventanas por defecto. Dichas ventanas se pueden organizar en la pantalla y, excepto en el caso de la caja de herramientas, se pueden cerrar si no son necesarias. Si se cierra la caja de herramientas, se cerrará la aplicación. En la configuración por defecto, GIMP guarda la disposición que tenía la ventana ventana en el momento de salir de la aplicación. Los cuadros de diálogo que estaban abiertos volverán a aparecer la próxima vez que inicie el programa. Caja de herramientas La ventana principal de GIMP, que se muestra en la Figura 17.1, “Ventana principal” (p. 251), contiene los controles principales de la aplicación. Si se cierra la ventana, se finaliza la aplicación. En la parte superior de la ventana, la barra de menú ofrece acceso 250 a las funciones de archivo, a las extensiones y a la ayuda. Inmediatamente debajo de la barra mencionada se encuentran iconos de las distintas herramientas. Desplace el ratón por encima de los iconos para visualizar la información referida a cada icono. Figura 17.1 Ventana principal Los colores actuales del primer plano y del fondo se muestran en dos cuadros que se solapan. Los colores que aparecen por defecto son el negro para el primer plano y el blanco para el fondo. Haga clic en el cuadro para abrir un cuadro de diálogo de selección del color. Intercambie el color del primer plano y del fondo con el símbolo de flecha bidireccional que se encuentra en la parte superior derecha de los cuadros. Utilice el símbolo de color blanco y negro que se encuentra situado el extremo inferior izquierdo para restablecer los colores por defecto. En la parte derecha se muestran el pincel actual, el patrón y el degradado. Haga clic en el elemento que se muestra para acceder al cuadro de diálogo de selección. La parte inferior de la ventana contiene las configuraciones posibles para las distintas opciones de la herramienta actual. Capas, canales, vías, deshacer En la primera sección, utilice el cuadro de diálogo desplegable para seleccionar la imagen a la que hacen referencia las pestañas. Haga clic en Auto (Automático), para comprobar si la imagen activa se ha seleccionado automáticamente. Por defecto, la opción Auto (Automático) está habilitada. Manejo de gráficos con GIMP 251 La opción Layers (Capas), que muestra las diferentes capas de las imágenes actuales, puede emplearse para manipular las capas. La opción Channels (Canales) muestra y permite la manipulación de los canales de color de la imagen. El método de vías es un método avanzado para la selección de partes de una imagen. También se puede emplear para dibujar. La opción Paths (Vías) muestra las vías disponibles de la imagen en cuestión y proporciona acceso a las funciones de las vías. La opción Undo (Deshacer) muestra un historial limitado con las modificaciones que se han realizado en la imagen actual. La parte inferior de la ventana contiene tres pestañas. Seleccione con ellas el pincel actual, el degradado y el patrón. 17.3 Primeros pasos con GIMP Aunque GIMP puede abrumar a sus nuevos usuarios, la mayoría comprueba cómo su manejo, tras unas nociones básicas, es muy sencillo. Las funciones básicas más destacadas son cómo crear, abrir y guardar imágenes. 17.3.1 Creación de una imagen nueva Para crear una imagen nueva, seleccione File (Archivo) → New (Nuevo) o pulse Ctrl + N . Se abrirá un cuadro de diálogo en el que se pueden definir los ajustes para la imagen nueva. Si lo desea, utilice Template (Plantilla) para seleccionar una plantilla en la que se basará la imagen nueva. GIMP incluye una amplia variedad de plantillas, que van desde las páginas en formato A4 a las carátulas de CDs, de entre las cuales podrá elegir la que mejor se adapte a sus necesidades. Para crear una plantilla personalizada, seleccione File (Archivo) → Dialogs (Diálogos) → Templates (Plantillas) y haga uso de los controles que aparecen en la ventana abierta. En la sección Image Size (Tamaño de imagen), defina el tamaño de la imagen que se va a crear en píxeles o en otra unidad. Haga clic en la unidad para seleccionar otra unidad de la lista de unidades disponibles. La proporción entre los píxeles y una unidad se define en Resolution (Resolución), que aparece al abrir la sección Advanced Options (Opciones avanzadas). Una resolución de 72 píxeles por pulgada se corresponde con la visualización en la pantalla. Es una resolución suficiente, por lo tanto, para los gráficos de páginas Web. Una resolución mayor se recomienda, por su parte, para las imágenes 252 destinadas a la impresión. En la mayoría de impresoras, una resolución de 300 píxeles por pulgada ofrecerá una calidad aceptable. En Colorspace (Espacio de colores), seleccione si la imagen debería estar en color (RGB [RGB]) o en Grayscale (Escala de grises). Seleccione el Fill Type (Tipo de relleno) para la nueva imagen. Las opciones Foreground Color (Color del primer plano) y Background Color (Color del fondo) utilizan los colores seleccionados en la caja de herramientas. White (Blanco) utilizará un fondo blanco para la imagen. Transparent (Transparente) crea una imagen clara. La Transparency (Transparencia) se representa mediante un patrón ajedrezado de color gris. Inserte un comentario para la imagen nueva en Comment (Comentario). Cuando los ajustes concuerden con sus necesidades, pulse OK (Aceptar). Para restaurar los ajustes por defecto, pulse Reset (Restablecer). Si pulsa Cancel (Cancelar), se anulará la creación de la imagen nueva. 17.3.2 Apertura de una imagen existente Para abrir una imagen ya existente, seleccione File (Archivo) → Open (Abrir) o pulse Ctrl + O . En el cuadro de diálogo que se abrirá, seleccione el archivo deseado. Haga clic en OK (Aceptar) para abrir la imagen seleccionada. Pulse Cancel (Cancelar) para anular la apertura de la imagen. 17.3.3 Ventana de la imagen La imagen nueva o ya existente se abre en su propia ventana. La barra de menú que se encuentra situada en la parte superior de la ventana proporciona acceso a todas las funciones de la imagen. También puede acceder al menú haciendo clic en la imagen con el botón derecho del ratón o haciendo clic en el pequeño botón de flecha que se encuentra en la esquina izquierda de las reglas. File (Archivo) ofrece las opciones estándar de archivos, tales como Save (Guardar) y Print (Imprimir). Close (Cerrar) cierra la imagen actual. Quit (Salir) cierra toda la aplicación. Con los elementos del menú View (Ver), seleccione la visualización de la imagen y de la ventana de la imagen. New View (Vista nueva) abre una segunda vista de la ventana con la imagen en uso. Los cambios realizados en una vista se reflejan en las vistas res- Manejo de gráficos con GIMP 253 tantes de la imagen en cuestión. El empleo de distintas vistas al mismo tiempo es de gran utilidad para ampliar una parte de la imagen para su manipulación mientras que en otra vista se dispone de la imagen completa. Se puede ajustar el grado de ampliación de la ventana que esté abierta con Zoom (Zoom). Cuando se selecciona Shrink Wrap (Ajustar tamaño), el tamaño de la ventana de la imagen se modifica para ajustarse al tamaño de la imagen en cuestión. 17.4 Guardado de imágenes Ninguna función de la imagen es tan importante como File (Archivo) → Save (Guardar). Es recomendable guardar con frecuencia antes que hacerlo muy esporádicamente. Utilice la opción File (Archivo) → Save as (Guardar como) para guardar la imagen con un nombre de archivo nuevo. Una sugerencia que puede resultarle útil es guardar las distintas fases de la imagen con nombres diferentes o hacer copias de seguridad en otro directorio, de forma tal que pueda restaurar de forma sencilla la imagen a estado previo. Cuando guarde la imagen por primera vez o cuando utilice la opción Save as (Guardar como), se abrirá un cuadro de diálogo en el que se deberá especificar el nombre y el tipo de archivo. Escriba el nombre de archivo en la parte superior. Para la opción Save in folder (Guardar en carpeta), seleccione, de una lista de directorios usados con frecuencia, el directorio en el que desea guardar los directorios. Para utilizar un directorio diferente o crear uno nuevo, abra Browse for other folders (Examinar otras carpetas). En la opción Select File Type (Seleccionar tipo de archivo), se recomienda seleccionar By Extension (Por extensión). Si se selecciona tal ajuste, GIMP determina el tipo de archivo basándose en la extensión del nombre de archivo. Los tipos de archivos que se indican a continuación podrán serle de utilidad: XCF Es el formato original de la aplicación. Guarda toda la información sobre las capas y las vías, así como la imagen propiamente dicha. Incluso en aquellos casos en los que precise que la imagen tenga otro formato, normalmente es recomendable guardar una copia de la imagen como XCF para simplificar futuras modificaciones. PAT Es el formato utilizado para los patrones GIMP. Si se guarda una imagen con este formato, será posible utilizar dicha imagen como patrón de relleno en GIMP. 254 JPG JPG o JPEG es un formato de uso habitual en fotografías y gráficos de páginas Web sin transparencia. Su método de compresión permite la reducción del tamaño de los archivos; sin embargo, la información se pierde cuando se efectúa la compresión. Puede ser recomendable utilizar la opción de vista previa cuando se vaya a ajustar el nivel de compresión. Los niveles entre 85 y 75 % ofrecen, normalmente, unos resultados aceptables en cuanto a la calidad de la imagen y, al mismo tiempo, una compresión razonable. También es recomendable guardar una copia de seguridad de la imagen en un formato que no conlleve una pérdida de la información, como es el caso del formato XCF. Si va a editar una imagen, guarde únicamente la imagen ya terminada como JPG. La carga reiterada y la grabación de una imagen JPG puede dar como resultado inmediato una mala calidad de dicha imagen. GIF Aunque se trató de un formato muy popular en el pasado para el tratamiento de gráficos transparentes, el formato GIF se utiliza cada vez con menor frecuencia debido a cuestiones relacionadas con las licencias de este formato. GIF también se emplea con imágenes animadas. El formato solamente puede guardar imágenes indizadas. Frecuentemente, el tamaño del archivo puede ser demasiado pequeño si se emplea un número reducido de colores. PNG Gracias a la existencia de una opción de transparencia, a la compresión sin pérdida de información, a su naturaleza gratuita y a una compatibilidad cada vez mayor con los navegadores, el formato PNG está sustituyendo al formato GIF como el formato preferido para gráficos de páginas con transparencia. Una ventaja añadida de este formato es el hecho de que PNG ofrece transparencia parcial a las imágenes, opción que no ofrece el formato GIF. Esta opción permite una transición más sutil entre las zonas coloreadas y las zonas transparentes (suavización de contornos). Para guardar la imagen en el formato seleccionado, pulse Save (Guardar). Para anular la operación, pulse Cancel (Cancelar). Si la imagen cuenta con funciones que no se pueden guardar en el formato elegido, aparecerá un cuadro de diálogo que ofrecerá opciones que permitan solucionar la situación. La opción Export (Exportar), siempre y cuando esté disponible, ofrece por norma general los resultados deseados. Se abrirá entonces una ventana con las opciones del formato. Los valores que se ofrecen son valores razonables por defecto. Manejo de gráficos con GIMP 255 17.5 Impresión de imágenes Para imprimir una imagen, seleccione File (Archivo) → Print (Imprimir) en el menú de la imagen. Si la impresora está configurada en SUSE, debería figurar en la lista. En algunos casos, es probable que sea necesario seleccionar un controlador apropiado con Setup Printer (Configurar impresora). Seleccione el tipo de papel adecuado en la opción Media Size (Tamaño de papel) y el tipo, en Media Type (Tipo de papel). Otros ajustes están disponibles en la pestaña Image / Output Settings (Imagen/Ajustes de salida). Figura 17.2 Cuadro de diálogo Imprimir En la parte inferior de la ventana, ajuste el tamaño de la imagen. Pulse Use Original Image Size (Utilizar tamaño original de imagen) para tomar estos ajustes de la imagen en cuestión. Se recomienda utilizar esta opción si se ha fijado en la imagen un tamaño de impresión y una resolución adecuadas. Ajuste la posición de la imagen en la página modificando los campos de Position (Posición) o moviendo la imagen directamente en la opción Preview (Vista previa). Cuando los ajustes sean los deseados, pulse Print (Imprimir). Para guardar los ajustes para su uso en un futuro, utilice en su lugar la opción Print and Save Settings (Imprimir y guardar ajustes). La opción Cancel (Cancelar), por su parte, anula la impresión. 256 17.6 Información adicional La lista de recursos que se ofrece a continuación pueden ser de utilidad para el usuario de GIMP. Debe tenerse en cuenta, sin embargo, que muchos de los recursos hacen referencia a versiones anteriores a ésta. • La opción Help (Ayuda) proporciona acceso al sistema interno de ayuda del programa. Esta documentación se encuentra también disponible en formato HTML y PDF en http://docs.gimp.org. • El Grupo de usuarios GIMP User Group dispone de una interesante página Web, con un contenido meramente informativo, en http://gug.sunsite.dk. • http://www.gimp.org es la página Web oficial de GIMP. • Grokking the GIMP es un excelente libro de Carey Bunks basado, eso sí, en una versión anterior de GIMP. Aunque algunos aspectos del programa han cambiado, ofrece una ayuda inestimable para todo lo concerniente a la manipulación de imágenes. Existe una versión en línea de este libro en http://gimp-savvy.com/ BOOK/. • http://gimp-print.sourceforge.net es la página Web del complemento de impresión de GIMP. La guía del usuario que se encuentra disponible en la página Web mencionada ofrece información detallada sobre la configuración y el manejo del programa. Manejo de gráficos con GIMP 257 Parte VI. Movilidad Informática móvil con Linux 18 Este capítulo proporciona una descripción general de los distintos aspectos relacionados con el uso de Linux en informática móvil. Se describen brevemente los diferentes campos de uso, así como las funciones esenciales del hardware utilizado. También se tratan las soluciones de software para requisitos especiales y las opciones disponibles para obtener un máximo rendimiento, junto con las posibilidades de reducir el consumo de energía al mínimo. El capítulo termina con una descripción general de las fuentes de información más importantes sobre el tema. La mayoría de las personas asocian la informática móvil con equipos portátiles, dispositivos PDA y teléfonos móviles, junto con el intercambio de datos entre ellos. Este capítulo amplía el enfoque a componentes de hardware móviles, como por ejemplo discos duros externos, unidades flash o cámaras digitales, los cuales se pueden conectar a portátiles y a sistemas de escritorio. 18.1 Equipos portátiles El hardware para equipos portátiles difiere del hardware para sistemas de escritorio normales. Esto se debe a que ciertos criterios, como la intercambiabilidad, el espacio ocupado y el consumo de energía son propiedades fundamentales. Los fabricantes de hardware móvil han desarrollado el estándar PCMCIA (Asociación internacional de tarjetas de memoria para computadoras personales). Este estándar cubre tarjetas de memoria, tarjetas de interfaz de red, tarjetas de módem y RDSI y discos duros externos. El Capítulo 19, PCMCIA (p. 271) describe la compatibilidad para este tipo de hardware en Linux, qué necesidades han de tenerse en cuenta a la hora de configurarlo, qué Informática móvil con Linux 261 software hay disponible para controlar los componentes PCMCIA y cómo solucionar posibles problemas. 18.1.1 Conservación de energía En la fabricación de equipos portátiles, la inclusión de componentes de sistema de consumo optimizado de energía contribuye a su idoneidad para usarse en caso de no tener acceso a la red de suministro eléctrico. Su contribución con respecto a la conservación de energía es, cuanto menos, tan importante como el sistema operativo. SUSE Linux admite varios métodos que influyen en el consumo de energía de un equipo portátil y afectan de distinta manera al tiempo de funcionamiento con batería. La siguiente lista aparece en orden descendente en cuanto a contribución a conservación de la energía: • Limitación de la velocidad de la CPU • Desconexión de la iluminación de la pantalla en las pausas • Ajuste manual de la iluminación de la pantalla • Desconexión de accesorios HotPlug no utilizados (CD-ROM USB, ratón externo, tarjetas PCMCIA no utilizadas, etc.) • Reducción de la rotación del disco duro en estado inactivo Hay más información detallada sobre gestión de energía en SUSE Linux y sobre cómo utilizar el módulo de gestión de energía de YaST en Capítulo 21, Gestión de energía (p. 285). 18.1.2 Integración en entornos operativos cambiantes El sistema necesita adaptarse a los entornos operativos cambiantes si se le quiere dar un uso móvil. Muchos servicios dependen del entorno y deben volver a configurarse clientes subyacentes. SUSE Linux hace este trabajo por usted. 262 Figura 18.1 Integración de equipos portátiles en redes ? ? Imprimir Correo ? ? ? ? ? ? Alterno (proxy) Configuración de X Red Los servicios que se ven afectados cuando el equipo portátil cambia constantemente de una pequeña red casera a una red de oficina y viceversa son: Configuración de red Este servicio incluye la asignación de dirección IP, resolución de nombres, conectividad a Internet y conectividad a otras redes. Impresión Dependiendo de la red, es necesario disponer de una base de datos con impresoras disponibles y un servidor de impresión disponible. Correo electrónico y alternos Al igual que para la impresión, la lista de servidores correspondientes debe estar actualizada. Configuración de X Si el equipo portátil está temporalmente conectado a un proyector o a un monitor externo, deberán estar disponibles las diferentes configuraciones de pantalla. SUSE Linux ofrece dos maneras de integrar un equipo portátil en los entornos operativos existentes. Estos métodos se pueden combinar. Informática móvil con Linux 263 SCPM SCPM (gestión de perfiles de configuración de sistemas) permite almacenar estados de configuración arbitrarios de un sistema en una especie de “instantánea” que recibe el nombre de perfil. Los perfiles se pueden crear con vistas a situaciones diferentes y resultan útiles cuando el sistema trabaja en entornos cambiantes (redes domésticas y de oficina). Siempre se puede cambiar de un perfil a otro. Hay más información sobre SCPM en el Capítulo 20, Gestión de perfiles de la configuración del sistema (p. 273). El applet de inicio Profile Chooser (Selector de perfiles) de KDE permite cambiar de un perfil a otro. La aplicación exige la contraseña raíz antes de cambiar entre un perfil y otro. SLP El protocolo de ubicación de servicios (SLP) simplifica la conexión de los portátiles a las redes existentes. Sin SLP, el administrador del portátil normalmente necesitaría un detallado conocimiento de los servicios disponibles en la red. SLP difunde la disponibilidad de ciertos tipos de servicios a todos los clientes de la red local. Las aplicaciones compatibles con SLP pueden procesar la información emitida por SLP y se pueden configurar automáticamente. SLP puede utilizarse incluso para instalar un sistema y evitar así la necesidad de buscar fuentes de instalación adecuadas. Hay más información sobre SLP en el Capítulo 39, Servicios SLP en la red (p. 647). La importancia de SCPM recae en la posibilidad de habilitar y mantener condiciones de sistema reproducibles. SLP facilita en gran manera la tarea de configurar equipos en red automatizando gran parte del proceso. 18.1.3 Opciones de software Hay varias tareas especiales en el uso móvil de las cuales se encargan programas de software dedicados: la monitorización del sistema (especialmente la carga de la batería), la sincronización de datos y la comunicación inalámbrica con periféricos e Internet. Las secciones siguientes tratan sobre las aplicaciones más importantes que utiliza SUSE Linux para cada tarea. Monitorización del sistema SUSE Linux incluye dos herramientas de monitorización del sistema de KDE. La visualización del estado puro de la batería recargable del portátil la gestiona el applet KPowersave del iniciador. Las tareas de monitorización del sistema más complejas las rea- 264 liza KSysguard. En el caso de GNOME, estas funciones las proporciona GNOME ACPI (como applet de panel) y System Monitor (Monitor del sistema). KPowersave KPowersave es un applet que muestra el estado de la batería recargable en el panel de control. El icono se adapta al tipo de suministro eléctrico. Si se trabaja con suministro de CA, aparece el icono de un pequeño enchufe. Si se trabaja con baterías, el icono cambia a una batería. El menú correspondiente abre el módulo de YaST de gestión de energía después de solicitar la contraseña raíz. Esto permite definir el comportamiento del sistema bajo diferentes tipos de suministro de energía. Podrá encontrar información sobre la gestión de energía y sobre el módulo de YaST correspondiente en el Capítulo 21, Gestión de energía (p. 285). KSysguard KSysguard es una aplicación independiente que reúne todos los parámetros medibles del sistema en un entorno de monitorización. KSysguard tiene monitores para ACPI (estado de la batería), carga de la CPU, red, particiones y uso de la memoria. También puede ver y mostrar todos los procesos del sistema. Es posible personalizar la presentación y el filtrado de los datos recopilados. Se pueden monitorizar diferentes parámetros del sistema en varias páginas de datos o recopilar los datos de varias máquinas en paralelo a través de la red. KSysguard también se puede ejecutar como un daemon en máquinas sin un entorno KDE. Podrá consultar más información sobre este programa en su función de ayuda integrada o en las páginas de ayuda de SUSE. Figura 18.2 Monitorización del estado de la batería con KSysguard Informática móvil con Linux 265 Sincronización de los datos Cuando se pasa de trabajar en una máquina móvil desconectada de la red a trabajar en una estación de trabajo en red dentro de una oficina, es necesario mantener los datos procesados sincronizados en todas las instancias. Esto puede incluir carpetas de correo electrónico y de directorios y archivo individuales que deben estar presentes para trabajar tanto fuera como dentro de la oficina. La solución en ambos casos es la siguiente: Sincronización del correo electrónico Utilice una cuenta IMAP para almacenar sus mensajes de correo electrónico en la red de la oficina. Podrá acceder entonces a los mensajes de correo electrónico desde la estación de trabajo mediante cualquier cliente de correo electrónico compatible con IMAP desconectado, como Mozilla Thunderbird Mail, Evolution o KMail, tal y como se describe en el Inicio. El cliente de correo electrónico debe estar configurado de modo que se entre siempre en la misma carpeta para los mensajes enviados. Esto garantiza que todos los mensajes estén disponibles, junto con la información de estado, después de terminar el proceso de sincronización. Utilice un servidor SMTP implementado en el cliente de correo para enviar mensajes en lugar de Postfix de MTA para todo el sistema o Sendmail para recibir información fiable acerca del correo no enviado. Sincronización de archivos y directorios Hay varias utilidades disponibles para sincronizar datos entre un equipo portátil y una estación de trabajo. Para obtener información detallada, consulte el Capítulo 47, Sincronización de archivos (p. 779). Comunicación inalámbrica Al igual que pueden conectarse a la red doméstica o a la de la oficina con un cable, los equipos portátiles también puede conectarse inalámbricamente a otros equipos, periféricos, teléfonos móviles o dispositivos PDA. Linux admite tres tipos de comunicación inalámbrica: WLAN Con el mayor alcance dentro de las tecnologías inalámbricas, WLAN es la única tecnología adecuada para trabajar con redes amplias y a veces separadas en el espacio. Las máquinas se pueden conectar entre sí para formar una red inalámbrica independiente o para acceder a Internet. Unos dispositivos llamados "puntos de acceso" funcionan como estaciones base para los dispositivos con WLAN habilitado y actúan 266 como intermediarios para acceder a Internet. El usuario móvil puede cambiar de punto de acceso según la ubicación en la que esté y según qué punto de acceso ofrezca la mejor conexión. Al igual que en la telefonía móvil, los usuarios de WLAN tienen a su disposición una amplia red que no los ata a una ubicación concreta para acceder a ella. Hay más información sobre WLAN en la Sección 22.1, “LAN inalámbrica” (p. 313). Bluetooth Bluetooth dispone del espectro más amplio de aplicaciones de todas las tecnologías inalámbricas. Bluetooth se puede utilizar para comunicar equipos entre sí (portátiles) y dispositivos PDA o teléfonos móviles, como sucede con IrDA. También se puede utilizar para conectar varios equipos dentro de una distancia visible. Bluetooth se utiliza igualmente para conectar entre sí componentes de sistemas inalámbricos, como teclados y ratones. El alcance de esta tecnología, sin embargo, no es suficiente para conectar sistemas remotos a una red. WLAN es la tecnología adecuada para comunicarse a través de obstáculos físicos como por ejemplo paredes. Hay más información sobre Bluetooth, sus aplicaciones y su configuración en la Sección 22.2, “Bluetooth” (p. 324). IrDA IrDA es la tecnología inalámbrica de alcance más corto. Las dos partes comunicantes deben estar a una distancia visible la una de la otra. Obstáculos como paredes no pueden vencerse. Una posible aplicación de IrDA es la transmisión de archivos de un portátil a un teléfono móvil. El corto trayecto desde el portátil al teléfono móvil queda cubierto con IrDA. El transporte de largo alcance del archivo al receptor del archivo lo gestiona la red móvil. Otra posible aplicación de IrDA es la transmisión inalámbrica de trabajos de impresión en una oficina. Hay más información sobre IrDA en la Sección 22.3, “Transmisión de datos mediante infrarrojos” (p. 336). 18.1.4 Seguridad de los datos Lo ideal es que se protegan los datos del equipo portátil de varias maneras frente a accesos no autorizados. Se pueden tomar medidas de seguridad en las siguientes áreas: Protección frente a robos En la medida de lo posible, asegure siempre su sistema físicamente frente a robos. Puede adquirir varios dispositivos de seguridad, como cadenas. Informática móvil con Linux 267 Seguridad de los datos del sistema Los datos clave no sólo deben estar cifrados al transmitirse, sino que también deben estar cifrados en el disco duro. Esto garantiza la seguridad en caso de robo. En la Sección 23.3, “Cifrado de particiones y archivos” (p. 359) se describe cómo crear una partición cifrada con SUSE Linux. IMPORTANTE: Seguridad de los datos y suspensión en disco Las particiones cifradas no se desmontan durante un evento de suspensión en disco. Por lo tanto, todos los datos de estas particiones quedarán a disposición de cualquiera que consiga robar el hardware y reanude el disco duro. Seguridad de la red Siempre que se transfieran datos, independientemente de cómo se haga, debe hacerse de forma segura. Podrá consultar problemas generales de seguridad relacionados con Linux y el uso de redes en la Sección 23.4, “Seguridad y confidencialidad” (p. 363). También se incluyen medidas de seguridad relacionadas con el uso de redes inalámbricas en el Capítulo 22, Comunicación inalámbrica (p. 313). 18.2 Hardware móvil SUSE Linux admite la detección automática de dispositivos de almacenamiento móviles mediante Firewire (IEEE 1394) o USB. El término dispositivo de almacenamiento móvil se aplica a cualquier tipo de disco duro Firewire o USB, unidad flash USB o cámara digital. Estos dispositivos se detectan automáticamente y se configuran a través de HotPlug nada más conectarse al sistema mediante la interfaz correspondiente. subfs y submount garantizan que los dispositivos se monten en sus ubicaciones correspondientes en el sistema de archivos. El usuario queda totalmente libre de realizar las tareas de montaje y desmontaje manual que sí tenía que llevar a cabo en las versiones anteriores de SUSE Linux. Bastará con desconectar el dispositivo en cuanto el programa que lo estaba usando deje de acceder a él. Discos duros externos (USB y Firewire) En cuanto el sistema reconozca correctamente el disco duro externo, aparecerá su icono en My Computer (Mi equipo) en KDE o en Computer (Equipo) en GNOME en la lista de unidades montadas. Al hacer clic en el icono se mostrará el contenido de la unidad. Aquí se podrán crear carpetas y archivos, así como editarlos y supri- 268 mirlos. Para cambiar el nombre que le haya dado el sistema al disco duro, seleccione el elemento de menú correspondiente en el menú que se abre al hacer clic con el botón derecho del ratón en el icono. El cambio de nombre sólo se aplica a su visualización en el gestor de archivos. El descriptor por el que está montado el dispositivo en /media/usb-xxx o /media/ieee1394-xxx permanece igual. Unidades flash USB El sistema gestiona estos dispositivos como si fueran discos externos. Así, también es posible cambiar el nombre de las entradas en el gestor de archivos. Cámaras digitales (USB y Firewire) Las cámaras digitales que reconoce el sistema también aparecen como unidades externas en la descripción del gestor de archivos. KDE permite leer las imágenes y acceder a ellas en la URL camera:/. Después, las imágenes se pueden procesar con Digikam o con The GIMP. Si se utiliza GNOME, Nautilus muestra las imágenes en sus propias carpetas. f-spot es una sencilla utilidad de gestión y procesamiento de imágenes. The GIMP permite realizar tareas de procesamiento fotográfico avanzadas. Para obtener más información sobre cámaras digitales y gestión de imágenes, consulte el Capítulo 15, Cámaras digitales y Linux (p. 221). 18.3 Teléfonos móviles y dispositivos PDA Los sistemas de escritorio y los portátiles se pueden comunicar con los teléfonos móviles a través de Bluetooth o de IrDA. Algunos modelos admiten los dos protocolos, mientras que otros sólo uno de los dos. Las áreas de uso de los dos protocolos, así como la documentación correspondiente ampliada, ya se han mencionado en la “Comunicación inalámbrica” (p. 266). La configuración de estos protocolos, así como la de los teléfonos móviles en sí, se describe en sus respectivos manuales. La configuración del sistema Linux se describe en la Sección 22.2, “Bluetooth” (p. 324) y la Sección 22.3, “Transmisión de datos mediante infrarrojos” (p. 336). Evolution y Kontact incluyen de fábrica la compatibilidad necesaria para sincronizarse con los dispositivos de mano fabricados por Palm, Inc. La conexión inicial con el dispositivo se lleva cabo fácilmente en ambos casos con la ayuda de un asistente. Una vez configurada la compatibilidad con una unidad Palm Pilot, habrá que determinar qué tipo Informática móvil con Linux 269 de datos se deben sincronizar (direcciones, citas, etc.). Ambas aplicaciones de trabajo en grupo se describen en el Inicio. El programa KPilot, tal como viene integrado en Kontact, también se puede adquirir como una utilidad independiente. Podrá consultarlo en el Inicio. El programa KitchenSync también puede utilizarse para sincronizar datos de direcciones. 18.4 Información adicional El punto de referencia central para todas las preguntas relacionadas con dispositivos móviles y Linux es http://tuxmobil.org/. Dicho sitio Web incluye varias secciones dedicadas a aspectos de hardware y de software para portátiles, dispositivos PDA, teléfonos móviles y otro tipo de hardware móvil. Un acercamiento parecido al de http://tuxmobil.org/ es el de http://www .linux-on-laptops.com/. Aquí podrá encontrar más información sobre portátiles y dispositivos de mano. SUSE mantiene una lista de correo en alemán dedicada a portátiles. Consulte http:// lists.suse.com/archive/suse-laptop/. En esta lista, tanto usuarios como desarrolladores hablan sobre aspectos relacionados con la informática móvil y SUSE Linux. Si bien se dan respuestas en inglés, la mayoría de la información archivada está sólo en alemán. Si tiene problemas de gestión de energía con SUSE Linux en equipos portátiles, se recomienda leer el archivo README (Léame) en /usr/share/doc/packages/ powersave. Este directorio suele contener información de última hora publicada por desarrolladores e ingenieros de pruebas, por lo que proporciona útiles consejos para solucionar problemas. 270 19 PCMCIA En la presente sección se abordan aspectos especiales referidos al hardware y software de PCMCIA que se encuentra en los equipos portátiles. PCMCIA, que hace referencia a la Personal Computer Memory Card International Association (Asociación internacional de tarjetas de memoria para equipos personales), se emplea como término genérico para todo el hardware y software relacionado. 19.1 Hardware El componente más importante es la tarjeta PCMCIA. Son dos los tipos de tarjeta PCMCIA existentes: Tarjetas PC Estas tarjetas se han venido empleando desde la aparición de PCMCIA. Emplean un bus de 16 bits para la transmisión de datos y, habitualmente, su precio es bastante reducido. Algunos bridges PCMCIA modernos encuentran dificultades a la hora de detectar estas tarjetas. No obstante, una vez que se logra su detección, su funcionamiento habitual es el correcto y no suelen causar grandes problemas. Tarjetas CardBus Se trata de un estándar más reciente. Estas tarjetas emplean un bus de 32 bits, lo que hace que este tipo de tarjeta sea más rápido pero, al mismo tiempo, también más caro. Se integran en el sistema como las tarjetas PCI y su funcionamiento no presenta ningún problema. PCMCIA 271 El segundo componente relevante es el controlador PCMCIA o el bridge de la tarjeta PC o CardBus, que establece la conexión entre la tarjeta y el bus PCI. El controlador es compatible con todos los modelos habituales. Si se trata de un dispositivo PCI integrado, podrá obtener más información mediante el comando lspci -vt. 19.2 Software Con el núcleo actual, las tarjetas PCMCIA y los bridges PCMCIA son gestionados por subsistema HotPlug. Existen sucesos pcmcia_socket para cada bridge y para cada suceso pcmcia. Por su parte, udevd carga todos los módulos necesarios y llama a las herramientas necesarias para configurar estos dispositivos. Estas acciones se definen en /etc/udev/rules.d/. Para la configuración de los recursos se emplea /etc/pcmcia/config.opts. El controlador necesario lo determinan las tablas de dispositivos de los controladores. Para obtener información acerca del estado de los zócalos y de las tarjetas, consulte /sys/class/pcmcia_socket/ o utilice el comando pccardctl. Como consecuencia de los cambios que se están produciendo continuamente en el sistema PCMCIA, esta documentación no está completa. Para una descripción exhaustiva, consulte /usr/share/doc/packages/pcmciautils/README.SUSE. 272 Gestión de perfiles de la configuración del sistema 20 Con la ayuda de SCPM (gestión de perfiles de la configuración del sistema), adapte la configuración del equipo a los distintos entornos operativos o configuraciones de hardware. SCPM gestiona un conjunto de perfiles de sistema para las distintas situaciones. SCPM permite cambiar fácilmente entre perfiles de sistema, con lo que se elimina la necesidad de volver a configurar el sistema manualmente. En algunas situaciones es necesario modificar la configuración del sistema. Este sería el caso de equipos móviles que están funcionando en distintas ubicaciones. Si un sistema de escritorio debe estar funcionando temporalmente con otros componentes de hardware distintos a los habituales, SCPM viene como anillo al dedo. La restauración de la configuración original del sistema debe ser sencilla y la modificación de la configuración del sistema debe poder reproducirse. Gracias a SCPM, cualquier parte de la configuración del sistema puede mantenerse en un perfil personalizado. El campo principal de la aplicación de SCPM es la configuración en red de equipos portátiles. Las distintas configuraciones de red requieren con frecuencia ajustes diferentes de otros servicios como el correo electrónico o los alternos. También otros elementos, como las diferentes impresoras domésticas y de la oficina, la configuración personalizada del servidor X para el proyector multimedia en conferencias, ajustes especiales de ahorro de energía para cuando se esté de viaje o una zona horaria distinta en una subsidiaria en el extranjero. Gestión de perfiles de la configuración del sistema 273 20.1 Terminología A continuación se explican algunos términos empleados en la documentación de SCPM y en el módulo YaST. • El término configuración del sistema se refiere a la configuración completa del equipo. Cubre todos los ajustes fundamentales, como el uso de particiones de disco duro, los ajustes de red, la selección de zona horaria y las asignaciones del teclado. • Un perfil, también denominado perfil de configuración, es un estado concreto preservado que se puede restaurar en cualquier momento. • Un perfil activo hace referencia al último perfil seleccionado. Esto no quiere decir que la configuración del sistema actual se corresponde exactamente con este perfil ya que puede modificarse la configuración en cualquier momento. • Un recurso en el contexto de SCPM es un elemento que contribuye a la configuración del sistema. Puede ser un archivo o un enlace simbólico incluidos los metadatos (como el usuario), los permisos o el tiempo de acceso. También puede tratarse de un servicio del sistema que se ejecuta en este perfil pero que se desactiva en otro. • Cada recurso pertenece a un grupo de recursos determinado. Estos grupos contienen todos los recursos que van juntos de manera lógica (la mayoría de grupos contendrían tanto un servicio como sus archivos de configuración). Es muy sencillo ensamblar los recursos gestionados por SCPM porque no exige ningún conocimiento de los archivos de configuración del servicio deseado. SCPM incorpora una selección de grupos de recursos preconfigurados que debería ser suficiente para la mayoría de situaciones. 20.2 Utilización del gestor de perfiles de YaST Inicie el gestor de perfiles de YaST desde el centro de control de YaST mediante Sistema → Gestor de perfiles. En un primer momento, habilite concretamente SCPM seleccionando Activado en el cuadro de diálogo Opciones SCPM tal y como se muestra en la Figura 20.1, “Opciones SCPM de YaST” (p. 275). En Configuración, determine si los mensajes emergentes de progreso deben cerrarse automáticamente y si deben mostrarse 274 mensajes detallados sobre el progreso de configuración de SCPM. Para Modo de cambio determine si los recursos modificados del perfil activo deberían guardarse o descartarse al cambiar de perfil. Si Modo de cambio está definido en Normal, se guardarán todos los cambios en el perfil activo al cambiar. Para definir el comportamiento de SCPM en el momento de arranque, defina el Modo de arranque en Guardar los cambios (ajuste por defecto) o en Desechar los cambios. Figura 20.1 Opciones SCPM de YaST 20.2.1 Configuración de grupos de recursos Para realizar cambios en la configuración actual de recursos, seleccione Configurar recursos en el cuadro de diálogo Opciones SCPM. El cuadro de diálogo siguiente, que se muestra en la Figura 20.2, “Configuración de grupos de recursos” (p. 276), muestra todos los grupos de recursos disponibles en el sistema. Para añadir o editar un grupo de recursos, especifique o modifique Grupo de recursos y Descripción. Para un servicio LDAP, por ejemplo, introduzca ldap como Grupo de recursos y Servicio de cliente LDAP como Descripción. A continuación, introduzca los recursos adecuados (servicios, archivos de configuración o ambos) o modifique los existentes. Suprima los que no se han usado. Para restaurar el estado de los recursos seleccionados (descartar cualquier cambio que hayan sufrido y restaurar sus valores de configuración iniciales) seleccione Reiniciar grupo. Los cambios se guardarán en el perfil activo. Gestión de perfiles de la configuración del sistema 275 Figura 20.2 Configuración de grupos de recursos 20.2.2 Creación de un perfil nuevo Para crear un perfil nuevo, haga clic en Añadir en el cuadro de diálogo de inicio (Gestión de perfiles de la configuración del sistema). En la ventana que se abre, seleccione si el nuevo perfil debe estar basado en la configuración actual del sistema (SCPM recuperará automáticamente la configuración actual y la escribirá en el perfil) o en un perfil existente. Si usa la configuración actual del sistema como la base del nuevo perfil, puede marcarlo como el perfil activo nuevo. De esta forma no se hacen cambios al perfil antiguo y no se inicia ni se detiene ningún servicio. Dé un nombre y una descripción breve al nuevo perfil en el siguiente cuadro de diálogo. Para que SCPM ejecute los guiones especiales en un cambio de perfiles, introduzca las vías a cada ejecutable (consulte la Figura 20.3, “Ajustes de perfil especiales” (p. 277)). Consulte la Sección 20.3.4, “Ajustes avanzados de perfil” (p. 281) para obtener más información. SCPM lleva a cabo una comprobación de los recursos del nuevo perfil. Después de completar con éxito esta prueba, ya se podrá usar el perfil nuevo. 276 Figura 20.3 Ajustes de perfil especiales 20.2.3 Modificación de los perfiles existentes Para modificar un perfil existente, seleccione Editar en el cuadro de diálogo de inicio (Gestión de perfiles de la configuración del sistema). A continuación, modifique el nombre, la descripción, los guiones y los recursos según sus necesidades. 20.2.4 Cambio de perfiles Para cambiar perfiles, abra el gestor de perfiles. El perfil activo está marcado con una flecha. Seleccione el perfil al que desee cambiar y haga clic en Cambiar a. SCPM comprobará los recursos nuevos o modificados y los añadirá, si fuera necesario. Si se ha modificado un recurso, YaST abrirá el cuadro de diálogo Confirmar cambio. Grupos modificados de recursos del perfil activo muestra todos los grupos de recursos del perfil activo que se han modificado pero que no se han guardado aún en el perfil activo. La opción Guardar o ignorar para el grupo de recursos seleccionado actualmente determina si los cambios a este grupo de recursos deberían guardarse en el perfil activo o descartarse. Otra posibilidad es seleccionar cada recurso y hacer clic en Detalles para Gestión de perfiles de la configuración del sistema 277 analizar los cambios con detenimiento. Se mostrará una lista de todos los archivos de configuración o ejecutables que pertenecen a este grupo de recursos que se han modificado. Para obtener una comparación línea a línea de la versión antigua y la nueva, haga clic en Mostrar los cambios. Después de analizar los cambios, decida lo que desea hacer con ellos en Acción: Guardar recurso Guarda este recurso en el perfil activo pero no toca el resto de perfiles. Ignorar recurso Deja sin tocar el recurso activo. Se descarta este cambio. Guardar en todos los perfiles Copia toda la configuración de este recurso en todos los perfiles. Parchear en todos los perfiles Aplica sólo los cambios más recientes a todos los perfiles. Guardar o ignorar todo sólo guarda o descarta los cambios de todos los recursos que se muestran en este cuadro de diálogo. Después de confirmar los cambios en el perfil activo, abandone el cuadro de diálogo Confirmar cambio haciendo clic en Aceptar. SCPM cambiará a continuación al nuevo perfil. Al cambiar ejecuta los guiones anteriores y posteriores a la detención del perfil antiguo y los guiones anteriores y posteriores al inicio para el nuevo perfil. 20.3 Configuración de SCPM mediante la línea de comando En esta sección se explica la configuración de la línea de comando de SCPM. Aprenda cómo iniciarla, configurarla y trabajar con perfiles. 278 20.3.1 Inicio de SCPM y definición de los grupos de recursos SCPM debe activarse antes de usarse. Active SCPM mediante scpm enable. Cuando se ejecuta por primera vez, SCPM se inicializa, lo que tarda algunos segundos. Desactive SCPM con scpm disable en cualquier momento para impedir el cambio involuntario de perfiles. La reactivación posterior reanudará simplemente la inicialización. Por defecto, SCPM gestiona los ajustes de red y de impresora además de la configuración de X.Org. Para gestionar servicios o archivos de configuración especiales, active los grupos de recursos respectivos. Para mostrar los grupos de recursos predefinidos, utilice scpm list_groups. Para ver sólo los grupos ya activados, utilice scpm list_groups -a. Emita estos comandos como usuario Root en la línea de comando. scpm list_groups -a nis mail ntpd xf86 autofs network printer Cliente del Servicio de información de red (NIS) Subsistema de correo Daemon del protocolo horario de red (NTP) Ajustes del servidor X Servicio automounter Ajustes básicos de red Ajustes de la impresora Active o desactive un grupo con scpm activate_group NOMBRE o scpm deactivate_group NOMBRE. Sustituya NOMBRE con el nombre correspondiente del grupo. 20.3.2 Creación y gestión de perfiles Ya existe un perfil denominado default después de activar SCPM. Obtenga una lista de todos los perfiles disponibles con scpm list. Este perfil existente también es el activo, lo que puede comprobarse mediante scpm active. El perfil default es una configuración básica desde la que derivan los otros perfiles. Por esta razón, todos los ajustes que deban ser idénticos en todos los perfiles deberían realizarse en primer lugar. A continuación, almacene estas modificaciones en el perfil activo con scpm reload. Se puede copiar o renombrar el perfil default como base para los nuevos perfiles. Gestión de perfiles de la configuración del sistema 279 Existen dos maneras de añadir un perfil. Si el perfil nuevo (al que llamaremos trabajo) debe basarse en el perfil default, créelo con scpm copy default trabajo. El comando scpm switch trabajo cambia al nuevo perfil, que ya podrá modificarse. Es posible que quiera modificar la configuración del sistema por algún motivo especial y guardar los cambios en un nuevo perfil. El comando scpm add trabajo crea un nuevo perfil al guardar la configuración actual del sistema en el perfil trabajo y al marcarlo como activo. Al ejecutar scpm reload se guardarán los cambios en el perfil trabajo. Se pueden renombrar o suprimir los perfiles con los comandos scpm rename x y y scpm delete z. Por ejemplo, para renombrar trabajo a proyecto, introduzca scpm rename trabajo proyecto. Para suprimir proyecto, introduzca scpm delete proyecto. El perfil activo no puede suprimirse. 20.3.3 Cambio de perfiles de configuración El comando scpm switch trabajo cambia a otro perfil (el perfil trabajo, en este caso). Cambie al perfil activo para incluir los ajustes modificados de la configuración del sistema en el perfil. Esto se corresponde con el comando scpm reload. Al cambiar perfiles, SCPM comprueba primero los recursos del perfil activo que se han modificado. A continuación se le preguntará si la modificación de cada recurso debería añadirse al perfil activo o desecharse. Si prefiere una lista por separado de los recursos (tal y como ocurre en versiones anteriores de SCPM), utilice el comando de cambio con el parámetro -r: scpm switch -r trabajo. scpm switch -r trabajo Comprobación Comprobación Comprobación Restauración de los recursos modificados de los recursos que deben iniciarse/apagarse de dependencias del perfil defaul SCPM compara a continuación la configuración del sistema actual con el perfil al que cambiar. En esta fase, SCPM evalúa los servicios de sistema que deben detenerse o reiniciarse debido a las dependencias mutuas o para reflejar los cambios en la configuración. Es como un reinicio parcial del sistema que sólo concierne a una pequeña parte de éste mientras el resto continúa funcionando sin cambios. Sólo en este punto se detienen los servicios de sistema, todos los recursos modificados (como los archivos de configuración) se escriben y los servicios de sistema se reinician. 280 20.3.4 Ajustes avanzados de perfil Puede introducir una descripción para cada perfil que se muestra con scpm list. Para el perfil activo, defínalo con scpm set description "text". Escriba el nombre del perfil para los perfiles inactivos, por ejemplo, scpm set description "text" trabajo. En algunas ocasiones, podría ser conveniente realizar algunas acciones adicionales que no ofrece SCPM al cambiar perfiles. Interconecte hasta cuatro ejecutables por cada perfil. Se invocan en distintas fases del proceso de cambio. Estas fases se denominan: Anterior a la detención Antes de detener los servicios al abandonar el perfil Posterior a la detención Después de detener los servicios al abandonar el perfil Anterior al inicio Antes de iniciar los servicios al activar el perfil Posterior al inicio Después de iniciar los servicios al activar los perfiles Inserte estas acciones con el comando set introduciendo scpm set prestop filename, scpm set poststop filename, scpm set prestart filename o scpm set poststart filename. Los guiones deben ser ejecutables y hacer referencia al intérprete correcto. AVISO: Integración de un guión personalizado El súperusuario (Root) debe poder leer y ejecutar los guiones adicionales que SCPM va a ejecutar. El acceso a estos archivos debe estar bloqueado para el resto de usuarios. Introduzca los comandos chmod 700 filename y chown root:root filename para proporcionar al usuario Root permisos exclusivos a los archivos. Consulte todos los ajustes adicionales introducidos con set mediante get. El comando scpm get poststart, por ejemplo, devuelve el nombre de la llamada posterior al inicio o no devuelve nada si no se ha adjuntado nada. Restaure tales ajustes sobres- Gestión de perfiles de la configuración del sistema 281 cribiendo con "". El comando scpm set prestop "" elimina el programa anterior a la detención adjunto. Pueden aplicarse todos los comandos set y get a un perfil arbitrario de la misma manera en que se han añadido los comentarios. Por ejemplo, scpm get prestop filename trabajo o scpm get prestop trabajo. 20.4 Uso del applet selector de perfiles El applet selector de perfiles en el panel de escritorio de GNOME o KDE le permite controlar fácilmente los ajustes de SCPM. Cree, modifique o suprima perfiles mediante YaST tal y como se describe en la Sección 20.2, “Utilización del gestor de perfiles de YaST” (p. 274) y cámbielos. El cambio de perfiles puede realizarse como un usuario normal siempre que el administrador del sistema permita que esto ocurra. Inicie el selector de perfiles desde el menú del escritorio mediante Sistema → Miniaplicación de escritorio → Selector de perfiles. Si pulsa con el botón derecho en el icono Selector de perfiles situado en el panel del escritorio y elige Permitir el cambio a los usuarios en el menú que se abre, habilitará a los usuarios normales de modo que puedan cambiar perfiles. Introduzca la contraseña del usuario Root. Cualquier usuario autorizado en el sistema podrá cambiar los perfiles de ahora en adelante. Todos los perfiles configurados en YaST, ya sea directamente a través de una llamada de YaST o a través de Iniciar el módulo de gestor de perfiles de YaST2 se muestran después de hacer clic en el icono Selector de perfiles. Seleccione el que se va a cambiar para utilizar las teclas de cursor y los cambios de SCPM en el nuevo perfil automáticamente. 20.5 Resolución de problemas En esta sección se describen los problemas más frecuentes que se han detectado con SCPM. Aprenda cómo se producen y cómo puede resolverlos. 282 20.5.1 Terminación durante el proceso de cambio En algunas ocasiones SCPM detiene el funcionamiento durante un procedimiento de cambio. Puede producirse debido a algún efecto exterior, como que el usuario lo aborte, un fallo de alimentación o incluso un error en el propio SCPM. Si esto ocurre, se mostrará un mensaje de error con información sobre el bloqueo de SCPM la próxima vez que inicie SCPM. El objetivo es proteger la seguridad del sistema, puesto que los datos almacenados en la base de datos pueden ser distintos de los del estado del sistema. Para resolver este problema, ejecute scpm recover. SCPM llevará a cabo todas las operaciones que faltaban de la ejecución anterior. También puede ejecutar scpm recover -b, que intentará deshacer todas las operaciones realizadas de la ejecución anterior. Si está utilizando el gestor de perfiles de YaST, obtenga un cuadro de diálogo de recuperación al inicio que le ofrezca la posibilidad de ejecutar los comandos descritos anteriormente. 20.5.2 Cambio de la configuración del grupo de recursos Para modificar la configuración del grupo de recursos cuando SCPM ya se ha inicializado, introduzca scpm rebuild después de añadir o eliminar grupos. De este modo se añadirán nuevos recursos a todos los perfiles y los recursos eliminados se suprimirán permanentemente. Si los recursos suprimidos se configuran de manera diferente en los distintos perfiles, se perderán estos datos de configuración excepto para la versión actual del sistema, que no resultará alterada por SCPM. Si modifica la configuración con YaST, no será necesario introducir el comando rebuild porque será YaST quien lo gestione. 20.6 Selección de un perfil al arrancar el sistema Para seleccionar un perfil al arrancar el sistema, pulse F3 en la pantalla de arranque para acceder a la lista de perfiles disponibles. Utilice las teclas de flecha para seleccionar Gestión de perfiles de la configuración del sistema 283 un perfil y confirmar la selección con de arranque. 20.7 Intro . Se usará el perfil seleccionado como opción Información adicional La documentación más reciente está disponible en las páginas de información de SCPM (info scpm). La información para desarrolladores está disponible en /usr/share/ doc/packages/scpm. 284 Gestión de energía 21 La gestión de energía es especialmente importante en el caso de los equipos portátiles, pero también es un aspecto importante en otros sistemas. Hay disponibles dos tecnologías: APM (gestión de energía avanzada, del inglés Advanced Power Management) y ACPI (interfaz avanzada de configuración y energía, del inglés Advanced Configuration and Power Interface). Además de estas tecnologías, también es posible ajustar la frecuencia de la CPU para ahorrar energía o reducir el ruido. Estas opciones se pueden configurar de forma manual o usando un módulo de YaST. A diferencia de APM, que se usaba anteriormente en los equipos portátiles sólo para la gestión de energía, la información sobre el hardware y la herramienta de configuración de ACPI están disponibles en todos los equipos modernos (portátiles, equipos de sobremesa y servidores). Todas las tecnologías de gestión de energía requieren hardware adecuado y rutinas de BIOS. La mayoría de los portátiles y muchos de los equipos de sobremesa y los servidores modernos se ajustan a estos requisitos. APM se utilizaba en muchos equipos antiguos. Dado que APM consiste en bastante medida en un conjunto de funciones implementado en el BIOS, el grado de compatibilidad con APM puede variar en función del hardware. Este hecho es aún más evidente en el caso de ACPI, ya que presenta una mayor complejidad. Por esta razón no tiene mucho sentido recomendar uno u otro sistema. Lo mejor que puede hacer es probar los distintos procedimientos con su hardware y elegir la tecnología con la que obtenga los mejores resultados. Gestión de energía 285 IMPORTANTE: Gestión de energía en los procesadores AMD64 Los procesadores AMD64 con un núcleo de 64 bits sólo admiten el uso de ACPI. 21.1 Funciones de ahorro de energía Las funciones de ahorro de energía no sólo son importantes para el uso móvil de los equipos portátiles, sino también para los sistemas de sobremesa. Las funciones principales y su uso en los sistemas de gestión de energía APM y ACPI son: Stand-by En este modo de funcionamiento se apaga la pantalla. En algunos equipos, el rendimiento del procesador se puede limitar. Esta función no está disponible en todas las implementaciones APM, y se corresponde con los estados S1 o S2 de ACPI. Suspender (volcado en la memoria) Este modo vuelca toda la información de estado del sistema en la memoria RAM. Posteriormente, todo el sistema (excepto la RAM) pasa a estar en reposo. En este estado, el equipo consume muy poca energía. La ventaja que ofrece es la posibilidad de reanudar el trabajo en el mismo punto en el que se dejó en sólo unos segundos, sin necesidad de arrancar y reiniciar las aplicaciones. Los dispositivos que utilizan APM se pueden suspender normalmente cerrando la cubierta del portátil y se activan al volver a abrirla. Esta función se corresponde con el estado S3 de ACPI. La compatibilidad con este estado está todavía en desarrollo y, en consecuencia, depende en gran medida del hardware. Hibernación (volcado en el disco) En este modo de funcionamiento, todo el estado del sistema se vuelca en el disco duro y el sistema se apaga. La reactivación para salir de este estado puede requerir entre 30 y 90 segundos y se vuelve al estado previo a la suspensión. Algunos fabricantes ofrecen variantes de este modo como, por ejemplo, la función RediSafe de los Thinkpads de IBM. En ACPI el estado que se corresponde con la hibernación es el S4. En Linux, el volcado de la información en el disco se realiza mediante rutinas del núcleo que son independientes de APM y de ACPI. 286 Monitorización de la batería ACPI y APM comprueban la carga de la batería y proporcionan información acerca del estado de carga. Además, ambos sistemas coordinan las acciones que se deben llevar a cabo cuando se alcanza un nivel de carga preocupante. Desconexión automática Después de apagar, el equipo se desconecta. Esto es especialmente importante cuando se realiza un apagado automático justo antes de que se agote la batería. Apagado de los componentes del sistema Desconectar el disco duro es el aspecto que ahorra más energía en todo el sistema. En función de la fiabilidad de todo el sistema, el disco duro puede ponerse en reposo durante algún tiempo. Sin embargo, el riesgo de perder datos aumenta a medida que incrementa el período de reposo. Otros componentes se pueden desactivar mediante ACPI (al menos, en teoría) o se pueden desactivar de forma permanente en la configuración del BIOS. Control de la velocidad del procesador En lo que respecta a la CPU, se puede ahorrar energía de estas tres formas: se puede ajustar la frecuencia y el voltaje (PowerNow! o Speedstep), se pueden establecer limitaciones en la CPU y se puede poner el procesador en reposo (estados C). Dependiendo del modo de funcionamiento del equipo, estos métodos se pueden combinar también entre sí. 21.2 APM Algunas de las funciones de ahorro de energía las realiza el propio BIOS APM. En muchos equipos portátiles, se pueden activar los estados stand-by y suspensión usando una combinación de teclas o cerrando la cubierta sin ninguna función de sistema operativo especial. Sin embargo, para activar estos modos con un comando, se deben realizar ciertas acciones antes de que el sistema entre en suspensión. Para ver el nivel de carga de la batería, se necesitan paquetes de programas especiales y un núcleo adecuado. Los núcleos de SUSE Linux llevan incorporada la compatibilidad con APM. Sin embargo, APM se activa sólo si ACPI no está implementada en el BIOS y si se detecta un BIOS APM. Para activar la compatibilidad con APM, ACPI debe desactivarse usando acpi=off en el indicador de arranque. Especifique cat /proc/apm para comprobar si APM está activa. Se mostrará un resultado compuesto por varios números para indicar Gestión de energía 287 que todo es correcto. Ahora puede apagar el equipo usando el comando shutdown -h. Las implementaciones del BIOS que no sean totalmente estándares pueden provocar problemas con APM. Algunos de estos problemas se pueden evitar usando parámetros de arranque especiales. Todos los parámetros se especifican en el indicador de arranque con el formato apm=parámetro: on/off Habilita o inhabilita la compatibilidad con APM. (no-)allow-ints Permite que se produzcan interrupciones durante la ejecución de las funciones del BIOS. (no-)broken-psr La función “GetPowerStatus” del BIOS no funciona correctamente. (no-)realmode-power-off Restablece el procesador al modo normal antes del apagado. (no-)debug Registra los eventos de APM en el registro del sistema. (no-)power-off Desconecta el sistema después de un apagado. bounce-interval=n Tiempo (en centésimas de segundo) después de un evento de suspensión durante el cual se hace caso omiso de otros eventos de suspensión adicionales. idle-threshold=n Porcentaje de inactividad del sistema a partir del cual se ejecuta la función de BIOS idle (0=siempre, 100=nunca). idle-period=n Tiempo (en centésimas de segundo) después del cual se mide la actividad del sistema. El daemon de APM (apmd) ha dejado de utilizarse. Sus funciones las ejerce ahora la nueva función powersaved, que también es compatible con ACPI y con los ajustes de frecuencia de la CPU. 288 21.3 ACPI ACPI se ha diseñado para hacer posible que el sistema operativo configure y controle los componentes de hardware individuales. ACPI sustituye a los sistemas anteriores PnP y APM. Proporciona información acerca de la batería, el adaptador de CA, la temperatura, el ventilador y los eventos del sistema como, por ejemplo, que se debe cerrar la cubierta o que la batería está baja. El BIOS proporciona tablas que contienen información acerca de los métodos de acceso al hardware y a los componentes individuales. El sistema operativo se sirve de esta información para tareas como la asignación de interrupciones o la activación y desactivación de componentes. Como el sistema operativo ejecuta los comandos almacenados en el BIOS, el funcionamiento depende de la implementación del BIOS. Las tablas que ACPI puede detectar y cargar se indican en /var/log/boot.msg. Consulte Sección 21.3.4, “Resolución de problemas” (p. 294) para obtener más información acerca de la resolución de los problemas de ACPI. 21.3.1 Activación de ACPI Si el núcleo detecta un BIOS ACPI al arrancar el sistema, ACPI se activa automáticamente y APM se desactiva. El parámetro de arranque acpi=force puede ser necesario para algunas máquinas antiguas. El equipo debe ser compatible con ACPI 2.0 o posterior. Consulte los mensajes de arranque del núcleo en /var/log/boot.msg para ver si ACPI está activada. A continuación, es necesario cargar una serie de módulos, de lo que se ocupa el guión de inicio del daemon Powersave. Si alguno de estos módulos causa problemas, puede impedirse su carga o descarga en /etc/sysconfig/powersave/common. En el registro del sistema (/var/log/messages) se encuentran los mensajes de los módulos, lo que le permite ver qué componentes se han detectado. En /proc/acpi aparecen ahora varios archivos que informan sobre el estado del sistema o que se pueden usar para modificar algunos de los estados. Algunas funciones no están totalmente operativas, ya que se encuentran todavía en desarrollo y el uso de otras depende en gran medida de la implementación del fabricante. Todos los archivos (excepto dsdt y fadt) se pueden leer con cat. En algunos archivos, es posible incluso modificar opciones con echo, por ejemplo, echo X > Gestión de energía 289 archivo para especificar valores adecuados para X. Para acceder a esta información y a las opciones de control, se recomienda utilizar siempre el comando powersave. A continuación, se describen los archivos más importantes: /proc/acpi/info Información general acerca de ACPI. /proc/acpi/alarm Aquí se especifica cuándo debe activarse el sistema después de haber estado en reposo. Por ahora, esta función no se admite totalmente. /proc/acpi/sleep Proporciona información acerca de los posibles estados de reposo. /proc/acpi/event Aquí se registran los eventos y el daemon Powersave los procesa (powersaved). Si ningún daemon accede a este archivo, los eventos (como, por ejemplo, presionar el botón de encendido o cerrar la cubierta) se podrán leer con cat /proc/acpi/event (se sale de ellos con Ctrl + C ). /proc/acpi/dsdt y /proc/acpi/fadt Estos archivos contienen las tablas ACPI DSDT (tabla de descripción de sistemas diferenciados, del inglés Differentiated System Description Table) y FADT (tabla de descripción de ACPI fija, del inglés Fixed ACPI Description Table). Dichas tablas pueden leerse con acpidmp, acpidisasm y dmdecode. Puede encontrar estos programas junto con la correspondiente documentación en el paquete pmtools, por ejemplo, acpidmp DSDT | acpidisasm. /proc/acpi/ac_adapter/AC/state Muestra si está conectado el adaptador de CA. /proc/acpi/battery/BAT*/{alarm,info,state} Información detallada sobre el estado de la batería. Para conocer el nivel de carga, es necesario comparar el valor de last full capacity (última capacidad total) de info (información) con el de remaining capacity (capacidad restante) de state (estado). Una forma más fácil de hacerlo es usar alguno de los programas especiales que se describen en Sección 21.3.3, “Herramientas de ACPI” (p. 294). El nivel de carga que provocará que se desencadene un evento se puede especificar en alarm (alarma). 290 /proc/acpi/button Este directorio contiene información sobre diversos conmutadores. /proc/acpi/fan/FAN/state Muestra si el ventilador está funcionando en ese momento. Puede activar o desactivar el ventilador automáticamente escribiendo en este archivo 0 (encender) o 3 (apagar). No obstante, hay que tener en cuenta que tanto el código ACPI del núcleo como el hardware (o el BIOS) hacen caso omiso de estos valores cuando la temperatura es demasiado elevada. /proc/acpi/processor/* Se crea un subdirectorio independiente para cada CPU incluida en el sistema. /proc/acpi/processor/*/info Información sobre las posibilidades de ahorro de energía del procesador. /proc/acpi/processor/*/power Información sobre el estado actual del procesador. Un asterisco junto a C2 significa que el procesador está inactivo, que es el estado más frecuente, como puede apreciarse por el valor de usage (uso). /proc/acpi/processor/*/throttling Se puede utilizar para limitar el reloj del procesador. Normalmente, esto se puede hacer en 8 niveles. Esta opción es independiente del ajuste de la frecuencia de la CPU. /proc/acpi/processor/*/limit Si el rendimiento (obsoleto) y las limitaciones se controlan de forma automática mediante un daemon, se pueden especificar aquí los límites máximos. Existen algunos límites fijados por el sistema y otros establecidos por el usuario. /proc/acpi/thermal_zone/ Hay un subdirectorio independiente para cada zona térmica. Una zona térmica es un área con propiedades térmicas semejantes, cuyo número y nombre están diseñados por el fabricante del hardware. No obstante, muchas de las posibilidades que ofrece ACPI no se llegan a implementar nunca. En su lugar, el BIOS se ocupa normalmente de controlar la temperatura sin que el sistema operativo intervenga, ya que lo que está en juego aquí es la duración del hardware. En consecuencia, algunos de los archivos siguientes sólo tienen valor en la teoría. Gestión de energía 291 /proc/acpi/thermal_zone/*/temperature La temperatura actual de la zona térmica. /proc/acpi/thermal_zone/*/state El estado indica si todo está en orden (ok) o si ACPI refrigera de forma active (activa) o passive (pasiva). En los casos en los que el control del ventilador no depende de ACPI, el estado es siempre ok. /proc/acpi/thermal_zone/*/cooling_mode Seleccione el método de refrigeración controlado por ACPI. Puede optar por el modo pasivo (menor rendimiento pero más económico) o por el activo (máximo rendimiento, pero el ventilador hace ruido). /proc/acpi/thermal_zone/*/trip_points Permite establecer la temperatura a partir de la cual se deben realizar acciones específicas en el equipo como, por ejemplo, la refrigeración activa o pasiva, la suspensión (cuando el estado es hot [caliente]) o el apagado (cuando el estado es critical [crítico]). Las acciones posibles se encuentran definidas en DSDT en función del dispositivo. Los puntos que se determinan en la especificación ACPI son: critical (crítico), hot (caliente), passive (pasivo), active1 (activo1) y active2 (activo2). Aunque no estén implementados todos ellos, es necesario especificarlos en este orden en el archivo. Por ejemplo, la entrada echo 90:0:70:0:0 > trip_points asigna a la temperatura un valor critical (crítico) de 90 grados y un valor passive (pasivo) de 70 grados (todas las temperaturas se miden en grados Celsius). /proc/acpi/thermal_zone/*/polling_frequency Si el valor de temperature (temperatura) no se actualiza automáticamente cuando cambia la temperatura, puede cambiar al modo de sondeo aquí. El comando echo X > /proc/acpi/thermal_zone/*/polling_frequency hace que se consulte la temperatura cada X segundos. Si X=0 se inhabilitará el sondeo. Las opciones de configuración, la información y los eventos mencionados no requieren una edición manual. Para ello, se puede utilizar el daemon Powersave (powersaved) y distintas aplicaciones como powersave, kpowersave y wmpowersave. Consulte la Sección 21.3.3, “Herramientas de ACPI” (p. 294). Puesto que powersaved incluye ahora las funciones de la antigua aplicación acpid, esta última ha dejado de utilizarse. 292 21.3.2 Control del rendimiento de la CPU Existen tres métodos de ahorro de energía para la CPU. Dependiendo del modo de funcionamiento del equipo, estos métodos se pueden combinar también entre sí. El ahorro de energía también significa que el sistema se calienta menos y, por lo tanto, el ventilador debe activarse con menos frecuencia. Ajuste de la frecuencia y el voltaje PowerNow! y Speedstep son los nombres que han establecido las empresas AMD e Intel para esta tecnología que, por otra parte, incorporan también los procesadores de otros fabricantes. Este método consiste en reducir conjuntamente la frecuencia del reloj de la CPU y su voltaje central, con lo cual se consigue un ahorro de energía superior al lineal. Esto significa que con la mitad de la frecuencia (es decir, a medio rendimiento) se requiere mucho menos de la mitad de energía. Esta tecnología funciona independientemente de APM y de ACPI y requiere un daemon que ajuste la frecuencia y los requisitos de rendimiento actuales. Los ajustes se pueden realizar en el directorio /sys/devices/system/cpu/cpu*/cpufreq/. Limitación de la frecuencia del reloj Esta tecnología consiste en omitir un porcentaje determinado de los impulsos de la señal del reloj para la CPU. Con una limitación del 25%, se omite uno de cada cuatro impulsos; mientras que con una reducción del 87,5%, sólo uno de cada ocho impulsos llega al procesador. No obstante, el ahorro de energía es algo menor que el lineal. Normalmente, esta técnica se aplica solamente cuando no está disponible el ajuste de la frecuencia o para lograr el máximo ahorro de energía. Por otra parte, esta técnica requiere un proceso propio que la controle. La interfaz del sistema es /proc/acpi/processor/*/throttling. Cómo poner el procesador en reposo El sistema operativo pone el procesador en estado de reposo cuando no hay ningún tipo de actividad. En este caso, el sistema operativo envía a la CPU el comando halt. Existen tres niveles: C1, C2 y C3. En el estado de máximo ahorro de energía (C3), se detiene incluso la sincronización del caché del procesador con la memoria principal, por lo que este estado se adopta únicamente cuando no existe ningún dispositivo que modifique el contenido de la memoria principal a través de la actividad maestra del bus. Algunos controladores no permiten el uso de C3. El estado actual se muestra en /proc/acpi/processor/*/power. El ajuste de la frecuencia y las limitaciones son sólo relevantes cuando el procesador está ocupado, ya que, si éste se encuentra inactivo, se utiliza de todas formas el estado Gestión de energía 293 C más económico. Si la CPU está ocupada, el ajuste de la frecuencia es el mejor método para ahorrar energía. A menudo, el procesador no trabaja al máximo de su capacidad y basta con bajar su frecuencia. En la mayoría de los casos, el método más adecuado consiste en un ajuste dinámico de la frecuencia por medio de un daemon como, por ejemplo powersaved. Cuando el equipo funciona con baterías o debe mantener una baja temperatura y hacer poco ruido, se recomienda establecer un ajuste estático a baja frecuencia. La función de limitación debería utilizarse como último recurso, por ejemplo, para prolongar el tiempo de funcionamiento con baterías a pesar de que el sistema esté trabajando a pleno ritmo. No obstante, algunos sistemas no funcionan correctamente si la limitación aplicada es demasiado estricta. Por otra parte, la limitación de la CPU no sirve de nada cuando ésta tiene poca actividad. En SUSE Linux, estas técnicas se controlan a través del daemon powersave. La configuración se describe en Sección 21.5, “Paquete powersave” (p. 298). 21.3.3 Herramientas de ACPI ACPI cuenta con una serie de herramientas más o menos completas. Entre ellas se encuentran las herramientas puramente informativas que muestran el estado de la batería o la temperatura (acpi, klaptopdaemon, wmacpimon, etc.); las que facilitan el acceso a estructuras en /proc/acpi; las que ayudan a monitorizar cambios (akpi, acpiw o gtkacpiw) y, por último, las que permiten editar las tablas ACPI en el BIOS (paquete pmtools). 21.3.4 Resolución de problemas Se puede distinguir entre dos tipos de problemas. Por una parte, puede haber fallos en el código ACPI del núcleo que no se hayan detectado a tiempo. En este caso, se proporcionará una solución para que la descargue. Los otros problemas son los más frecuentes: los que están causados por el BIOS. En algunos casos, se integran a propósito en el BIOS desviaciones de las especificaciones de ACPI para evitar fallos en la implementación ACPI en otros sistemas operativos de uso extendido. Existen también componentes de hardware con fallos graves en la implementación ACPI, por lo que se han incluido en una "lista negra" para impedir que el núcleo de Linux utilice en ellos ACPI. 294 Si surgen problemas, en primer lugar se debe actualizar el BIOS. Si el equipo no arrancar en absoluto, pruebe a utilizar algunos de los siguientes parámetros de arranque: pci=noacpi No utilizar ACPI para configurar los dispositivos PCI. acpi=oldboot Ejecutar sólo una configuración de recursos simples. No utilizar ACPI para otros propósitos. acpi=off Inhabilita la ACPI. AVISO: Problemas al arrancar sin ACPI Algunos equipos nuevos, especialmente los sistemas SMP y AMD64, requieren ACPI para que el hardware se configure correctamente. Por lo tanto, el desactivar ACPI puede ocasionar problemas. Monitorice los mensajes de arranque del sistema con el comando dmesg | grep -2i acpi después del arranque. También puede monitorizar todos los mensajes, ya que puede que el problema no esté causado por ACPI. Si ocurre un error durante el análisis de una tabla ACPI, la tabla más importante (que es DSDT) puede sustituirse por una versión mejorada. En estas circunstancias, se hace caso omiso de la tabla DSDT defectuosa del BIOS. El procedimiento se describe en Sección 21.5.4, “Resolución de problemas” (p. 304). En la configuración del núcleo existe un conmutador para activar los mensajes de depuración de ACPI. Si se ha compilado e instalado un núcleo con depuración ACPI, esta información detallada puede servir de ayuda a los técnicos que traten de identificar el error. Si se producen problemas con el hardware o el BIOS, es aconsejable ponerse en contacto con los fabricantes. A menudo, los fabricantes no proporcionan asistencia si se trata de Linux, por lo que es importante que tomen conciencia de los distintos problemas. No se tomarán el asunto en serio hasta que se den cuenta de que un número importante de sus clientes utiliza Linux. Gestión de energía 295 Información adicional Puede obtener información adicional y material de ayuda sobre ACPI: • http://www.cpqlinux.com/acpi-howto.html (información detallada sobre procedimientos de ACPI y revisiones para DSDT) • http://www.intel.com/technology/iapc/acpi/faq.htm (preguntas frecuentes sobre ACPI de @Intel) • http://acpi.sourceforge.net/ (el proyecto ACPI4Linux en Sourceforge) • http://www.poupinou.org/acpi/ (revisiones de DSDT de Bruno Ducrot) 21.4 Detención del disco duro En Linux, es posible poner completamente en reposo el disco duro cuando no se necesita o hacer que funcione en modo silencioso o de ahorro de energía. En los equipos portátiles modernos, no es necesario desactivar manualmente los discos duros, ya que éstos adoptan por sí mismos el modo de ahorro de energía cuando no se necesitan. Sin embargo, si desea ahorrar el máximo de energía, puede probar algunos de los siguientes métodos. Casi todas las funciones se controlan con powersaved y el módulo de gestión de energía de YaST, que se describe con mayor profundidad en Sección 21.6, “Módulo de gestión de energía de YaST” (p. 307). La aplicación hdparm se utiliza para modificar los distintos ajustes del disco duro. La opción -y hace que el disco duro pase inmediatamente al modo stand-by, mientras que -Y lo pone en reposo. La opción hdparm -S x hace que el disco duro se apague tras un determinado período de inactividad. Puede asignar los siguientes valores a x: 0 apaga el mecanismo, por lo que el disco duro sigue ejecutándose continuamente. Los valores entre 1 y 240 se multiplican por 5 segundos. Los valores entre 241 y 251 se corresponden con 30 minutos entre 1 y 11 veces. Las posibilidades internas de ahorro de energía del disco duro se controlan mediante la opción -B. Seleccione un valor entre 0 y 255: el mayor ahorro de energía es el 0 y el rendimiento máximo es el 255. El resultado dependerá del disco duro que se use y es difícil de evaluar. Para que el disco duro sea más silencioso, use la opción -M. Selec- 296 cione un valor entre 128 y 254 para definir un estado entre silencioso (128) y rápido (254). Sin embargo, a menudo no es fácil poner en reposo el disco duro, puesto que Linux cuenta con numerosos procesos que escriben datos en él, por lo que lo activan constantemente. En consecuencia, es importante conocer la forma en que Linux gestiona los datos que deben escribirse en el disco duro. En primer lugar, todos los datos se almacenan en un buffer en la memoria RAM. El daemon de actualización del núcleo (kupdated) se encarga de monitorizar este buffer. Cuando los datos alcancen una determinada antigüedad o cuando el buffer esté lleno hasta un nivel concreto, los datos se pasarán al disco duro. El tamaño del buffer es dinámico y depende del tamaño de la memoria y de la carga del sistema. Por defecto, kupdated está configurado para funcionar a pequeños intervalos y conseguir así la mayor integridad de datos posible. Comprueba el buffer cada 5 segundos e informa al daemon bdflush si hay datos cuya antigüedad sea superior a los 30 segundos o si el buffer ha alcanzado un nivel de llenado del 30%. Entonces, el daemon bdflush escribe los datos en el disco duro, aunque también lo hace independientemente de kupdated si, por ejemplo, el buffer está lleno. AVISO: Problemas con la integridad de los datos Hacer cambios en los ajustes del daemon de actualización del núcleo puede poner en peligro la integridad de los datos. Además de estos procesos, los sistemas de archivos llamados "journaling", como ReiserFS y Ext3, escriben sus metadatos en el disco duro con independencia de bdflush, lo cual también impide que el disco duro quede inactivo. Para evitarlo, se ha desarrollado una ampliación del núcleo específica para dispositivos móviles. Consulte /usr/src/ linux/Documentation/laptop-mode.txt para obtener más información. Otro elemento importante es la forma en que se comportan los programas activos. Por ejemplo, los editores de texto de calidad escriben periódicamente en el disco duro copias de seguridad del archivo que se esté modificando, lo que hace que el disco se reactive. Estas funciones se pueden desactivar, aunque ello va en detrimento de la integridad de los datos. En este contexto, el daemon de correo postfix utiliza la variable POSTFIX_LAPTOP. Si esta variable está definida como yes (sí), postfix accederá al disco duro con menor frecuencia. No obstante, este hecho carece de importancia si el intervalo de kupdated se ha aumentado. Gestión de energía 297 21.5 Paquete powersave El paquete powersave se ocupa de la función de ahorro de energía cuando un equipo portátil funciona en el modo de batería. No obstante, algunas de sus funciones resultan también muy interesantes para estaciones de trabajo o servidores como, por ejemplo, los modos stand-by y de suspensión, la función de las teclas ACPI y la puesta en reposo los discos duros IDE. Este paquete incorpora todas las funciones de ahorro de energía del equipo y es compatible con cualquier hardware que utilice ACPI, APM, discos duros IDE y las tecnologías PowerNow! y SpeedStep. Todas las prestaciones de los paquetes apmd, acpid, ospmd y cpufreqd (ahoracpuspeed) se han agrupado ahora en el paquete powersave.. Los daemons de estos paquetes y el daemon de powersave no deben ejecutarse simultáneamente. Incluso aunque el sistema no disponga de todos los componentes de hardware mencionados anteriormente, se recomienda utilizar el daemon de powersave para regular la función de ahorro de energía. Como ACPI y APM se excluyen mutuamente, sólo podrá usar uno de ellos en su equipo. El daemon detecta automáticamente cualquier cambio en la configuración del hardware. 21.5.1 Configuración del paquete powersave Normalmente, la configuración de powersave está distribuida en varios archivos: /etc/sysconfig/powersave/common Este archivo contiene ajustes generales para el daemon powersave. Por ejemplo, se puede obtener una mayor cantidad de mensajes de depuración en /var/log/ messages incrementando el valor de la variable DEBUG. /etc/sysconfig/powersave/events El daemon powersave necesita este archivo para procesar los eventos que se producen en el sistema. A estos eventos se les pueden asignar acciones externas o internas (ejecutadas por el daemon). Se habla de una acción externa cuando el daemon intenta activar un archivo ejecutable guardado en /usr/lib/powersave/scripts/ . Las acciones internas predefinidas son: 298 • ignore • throttle • dethrottle • suspend_to_disk • suspend_to_ram • standby • do_suspend_to_disk • do_suspend_to_ram • do_standby throttle limita el procesador en función del valor establecido en MAX_THROTTLING. Este valor depende del esquema actual. dethrottle hace que el procesador funcione a pleno rendimiento. suspend_to_disk, suspend_to_ram y standby desencadenan eventos de sistema para el modo de reposo. Estas tres acciones son generalmente responsables de activar el modo de reposo, pero siempre deben asociarse a eventos del sistema específicos. El directorio /usr/lib/powersave/scripts contiene guiones para procesar los eventos: notify Notificación acerca de un evento mediante la consola, X Window o una señal acústica. screen_saver Activa el salvapantallas. switch_vt Es muy útil si la pantalla se muestra distorsionada después de haber estado en reposo o en stand-by. wm_logout Guarda los ajustes y cierra la sesión de GNOME, KDE o de otros gestores de ventanas. Gestión de energía 299 wm_shutdown Guarda los ajustes de GNOME o de KDE y apaga el sistema. Por ejemplo, si se define la variable EVENT_GLOBAL_SUSPEND2DISK="prepare_suspend_to_disk do_suspend_to_disk", los dos guiones o acciones se procesarán en el orden especificado en el momento en que el usuario ejecute el comando necesario de powersaved para el modo de reposo, que es suspend to disk (Suspender en disco). El daemon inicia el guión externo /usr/lib/powersave/scripts/ prepare_suspend_to_disk y, una vez que el guión se ha procesado correctamente, el daemon ejecuta la acción interna do_suspend_to_disk y pone el equipo definitivamente en modo de reposo después de que el guión haya detenido los servicios y descargado los módulos críticos. Las acciones para el evento de un botón de reposo (Sleep) se pueden modificar, como en EVENT_BUTTON_SLEEP="notify suspend_to_disk". En este caso, se informa al usuario sobre la suspensión mediante el guión externo notify (Notificar). A continuación, se genera el evento EVENT_GLOBAL_SUSPEND2DISK, que origina las acciones mencionadas y garantiza que el sistema pase al modo de suspensión. El guión notify se puede personalizar usando la variable NOTIFY_METHOD en /etc/sysconfig/ powersave/common. /etc/sysconfig/powersave/cpufreq Contiene variables para optimizar el ajuste dinámico de la frecuencia de la CPU. /etc/sysconfig/powersave/battery En él se definen los límites de las baterías y otros ajustes específicos de la batería. /etc/sysconfig/powersave/sleep En este archivo se activan los modos de reposo y se puede definir qué módulos críticos deben descargarse y qué servicios deben detenerse antes de que se produzca un evento de suspensión o de stand-by. Estos módulos se cargarán y los servicios se reiniciarán cuando el sistema se restablezca. Si lo desea, puede incluso retrasar un modo de reposo que se haya iniciado para guardar archivos, por ejemplo. Los ajustes por defecto afectan sobre todo a los módulos USB y PCMCIA. Hay ciertos módulos que pueden provocar fallos en los modos de suspensión o de stand-by. Consulte la Sección 21.5.4, “Resolución de problemas” (p. 304) para obtener más información acerca de la identificación del error. 300 /etc/sysconfig/powersave/thermal Activa los controles térmicos y de refrigeración. Puede obtener información adicional sobre este tema en el archivo /usr/share/doc/packages/powersave/ README.thermal. /etc/sysconfig/powersave/scheme_* Este archivo contiene varios esquemas que regulan el consumo de energía en función de las distintas situaciones de aplicación. Algunos de estos esquemas están ya preconfigurados y pueden utilizarse tal y como están. Aquí también puede almacenar sus propios esquemas personalizados. 21.5.2 Configuración de APM y ACPI Modos de suspensión y stand-by Los modos de reposo están inactivos por defecto porque todavía no funcionan en algunos equipos. Existen tres modos de reposo básicos ACPI y dos APM: Suspender en disco (ACPI S4, suspensión APM) Guarda todo el contenido de la memoria en el disco duro. El equipo se apaga por completo y no consume electricidad. Suspender en RAM (ACPI S3, suspensión APM) Guarda los estados de todos los dispositivos en la memoria principal. Sólo la memoria principal consume electricidad. Stand-by (ACPI S1, stand-by APM) Apaga algunos dispositivos (en función del fabricante). Asegúrese de que las siguientes opciones por defecto estén configuradas en el archivo /etc/sysconfig/powersave/events para que sea correcto el procesamiento de los modos de suspensión, stand-by y reanudación (son los ajustes por defecto tras la instalación de SUSE Linux): EVENT_GLOBAL_SUSPEND2DISK= "prepare_suspend_to_disk do_suspend_to_disk" EVENT_GLOBAL_SUSPEND2RAM= "prepare_suspend_to_ram do_suspend_to_ram" EVENT_GLOBAL_STANDBY= "prepare_standby do_standby" EVENT_GLOBAL_RESUME_SUSPEND2DISK= Gestión de energía 301 "restore_after_suspend_to_disk" EVENT_GLOBAL_RESUME_SUSPEND2RAM= "restore_after_suspend_to_ram" EVENT_GLOBAL_RESUME_STANDBY= "restore_after_standby" Estados personalizados de la batería En el archivo /etc/sysconfig/powersave/battery, puede definir tres estados de carga de la batería (expresados en forma de porcentaje). Cuando se alcanzan dichos estados, el sistema genera alertas o lleva a cabo acciones específicas. BATTERY_WARNING=20 BATTERY_LOW=10 BATTERY_CRITICAL=5 En el archivo de configuración /etc/sysconfig/powersave/events se definen las acciones o los guiones que han de ejecutarse cuando el nivel de carga es inferior al especificado. En la Sección 21.5.1, “Configuración del paquete powersave” (p. 298) se describe cómo se pueden modificar las acciones por defecto para los botones. EVENT_BATTERY_NORMAL="ignore" EVENT_BATTERY_WARNING="notify" EVENT_BATTERY_LOW="notify" EVENT_BATTERY_CRITICAL="wm_shutdown" Ajuste del consumo de energía en función de las condiciones de trabajo El rendimiento del sistema se puede adaptar al tipo de suministro de energía. Así, por ejemplo, el consumo de energía del sistema se puede reducir cuando el equipo esté desconectado de la red de suministro eléctrico y funcione con batería. Del mismo modo, el rendimiento se puede aumentar automáticamente en el momento en que el equipo se conecte de nuevo a la red eléctrica. Para ajustar el consumo, se pueden modificar aspectos como la frecuencia de la CPU, la función de ahorro de energía de IDE y otros parámetros. En el archivo /etc/sysconfig/powersave/events se definen las acciones que se deben ejecutar cuando se conecta el equipo a la red eléctrica o cuando se desconecta de ella. Seleccione los esquemas que se deben usar en /etc/sysconfig/ powersave/common: 302 AC_SCHEME="performance" BATTERY_SCHEME="powersave" Los esquemas se almacenan en archivos en /etc/sysconfig/powersave. Los nombres de archivo tienen el formato scheme_nombre-del-esquema. En el ejemplo, se hace referencia a dos esquemas: scheme_performance y scheme _powersave. Los esquemas performance, powersave, presentation y acoustic son esquemas preconfigurados. Los esquemas existentes se pueden editar, crear o suprimir, así como asociarlos a los distintos estados de suministro de energía con la ayuda del módulo de gestión de energía de YaST, que se describe en la Sección 21.6, “Módulo de gestión de energía de YaST” (p. 307). 21.5.3 Funciones ACPI adicionales Si utiliza ACPI, podrá controlar cómo responde el sistema cuando se usan las teclas ACPI (Power, Sleep y las teclas para abrir y cerrar la cubierta). En el archivo /etc/ sysconfig/powersave/events se establece qué acciones se deben llevar a cabo. Puede obtener información adicional sobre cada una de las opciones en este archivo de configuración. EVENT_BUTTON_POWER="wm_shutdown" Al pulsar la tecla Power, el sistema apaga el gestor de ventanas correspondiente (KDE, GNOME, fvwm, etc.). EVENT_BUTTON_SLEEP="suspend_to_disk" Si pulsa la tecla Sleep, el sistema pasa al modo suspender en disco. EVENT_BUTTON_LID_OPEN="ignore" No pasa nada cuando se abre la cubierta del equipo portátil. EVENT_BUTTON_LID_CLOSED="screen_saver" Cuando se abre la cubierta, se activa el salvapantallas. Si la carga de la CPU no supera un umbral especificado durante un período de tiempo concreto, se puede limitar su potencia. Para ello, especifique un límite de carga en PROCESSOR_IDLE_LIMIT y un tiempo de espera en CPU_IDLE_TIMEOUT. Si la carga de la CPU se mantiene por debajo del límite durante el tiempo de espera, se activará el evento configurado en EVENT_PROCESSOR_IDLE.. Si la CPU vuelve a estar ocupada, se ejecutará EVENT_PROCESSOR_BUSY. Gestión de energía 303 21.5.4 Resolución de problemas Todos los mensajes de error y los avisos del sistema se recogen en el archivo /var/ log/messages. Si no encuentra la información que necesita, aumente el nivel de detalle de los mensajes de powersave usando la opción DEBUG del archivo /etc/ sysconfig/powersave/common. Establezca el valor de la variable en 7 o incluso en 15, y reinicie el daemon. Cuanto más detallados sean los mensajes de error de /var/log/messages, más fácil será identificar los errores. En las siguientes secciones figuran los problemas más habituales que pueden surgir con powersave. ACPI está activado y es compatible con el hardware pero las funciones no están disponibles Si surgen problemas con ACPI, use el comando dmesg|grep -i acpi para buscar la salida de dmesg en los mensajes específicos de ACPI. Para solucionar el error puede ser necesario actualizar el BIOS. Con este fin, visite la página Web del fabricante del equipo portátil, busque una versión actualizada del BIOS e instálela. Informe al fabricante de que debe ajustarse a las especificaciones ACPI más recientes. Si el error persiste después de actualizar el BIOS, proceda de la siguiente forma para sustituir la tabla DSDT defectuosa en el BIOS por una DSDT actualizada: 1 Descargue una DSDT adecuada para el sistema desde http://acpi .sourceforge.net/dsdt/tables. Compruebe si el archivo está descomprimido y compilado. Lo reconocerá por la extensión .aml (Lenguaje del equipo ACPI, del inglés ACPI Machine Language). Si éste es el caso, continúe con el paso 3. 2 Si la extensión de archivo de la tabla descargada es .asl (Lenguaje fuente ACPI, del inglés ACPI Source Language), deberá compilarla con la herramienta iasl (paquete pmtools). Ejecute el comando iasl -sa file.asl. La versión más reciente de iasl (compilador de ACPI para Intel) está disponible en http://developer.intel.com/technology/iapc/acpi/ downloads.htm. 3 Copie el archivo DSDT.aml donde desee (se recomienda usar /etc/DSDT .aml). A continuación, edite /etc/sysconfig/kernel y modifique la vía al archivo DSDT en función de los pasos anteriores. Inicie mkinitrd (paquete 304 mkinitrd). Cuando desinstale el núcleo y use mkinitrd para crear initrd, la DSDT modificada se integrará y se cargará al arrancar el sistema. La función de frecuencia de la CPU no funciona Consulte las fuentes del núcleo (kernel-source) para averiguar si el procesador es compatible. Puede que necesite usar un módulo del núcleo o una opción del módulo especiales para activar el control de frecuencia de la CPU. Esta información está disponible en /usr/src/linux/Documentation/cpu-freq/*. En caso de que sea necesario emplear un módulo o una opción específicos, configúrelos en el archivo /etc/sysconfig/powersave/cpufreq mediante las variables CPUFREQD_MODULE y CPUFREQD_MODULE_OPTS. Los modos de suspensión y stand-by no funcionan Se conocen varios problemas relacionados con el núcleo que pueden ser la causa de que los modos de suspensión y stand-by no funcionen en sistemas ACPI: • Actualmente, los sistemas con más de 1 GB de RAM no admiten el modo de suspensión. • Los sistemas con multiprocesador o con un procesador P4 (con tecnología HyperThread) no admiten actualmente el modo de suspensión. El problema también puede deberse a una implementación defectuosa de la DSDT (BIOS). En este caso, deberá instalar una DSDT nueva. En sistemas ACPI y APM: cuando el sistema trata de descargar módulos defectuosos, el equipo se bloquea o el evento de suspensión no se activa. También puede ocurrir lo mismo si no se descargan o no se detienen los módulos o los servicios que impiden el paso al modo de suspensión. En ambos casos, se recomienda localizar el módulo defectuoso que ha impedido que se pase al modo de reposo. Para ello pueden utilizarse los archivos de registro que el daemon powersave almacena en /var/log/sleep mode .. Si el equipo ni siquiera pasa al modo de reposo, la causa del problema debe buscarse en el módulo descargado en último lugar. Puede manipular los siguientes ajustes del archivo /etc/sysconfig/powersave/sleep para descargar los módulos problemáticos antes de pasar a los modos de suspensión o stand-by. UNLOAD_MODULES_BEFORE_SUSPEND2DISK="" UNLOAD_MODULES_BEFORE_SUSPEND2RAM="" Gestión de energía 305 UNLOAD_MODULES_BEFORE_STANDBY="" SUSPEND2DISK_RESTART_SERVICES="" SUSPEND2RAM_RESTART_SERVICES="" STANDBY_RESTART_SERVICES="" Si se utilizan los modos de suspensión o stand-by en entornos de red cambiantes o con sistemas de archivos montados de forma remota (por ejemplo, Samba o NIS), se recomienda montarlos con automounter o añadir los servicios correspondientes como, por ejemplo, smbfs o nfs, a las variables mencionadas arriba. En caso de que un programa acceda a un sistema de archivos montado de forma remota antes de iniciarse el modo de suspensión o de stand-by, el servicio no se detendrá correctamente ni el sistema de archivos se desmontará de forma adecuada. Después de restablecer el sistema, puede que el sistema de archivos esté dañado y deba montarse de nuevo. Al utilizar ACPI, el daemon Powersave no detecta los umbrales establecidos para la batería En sistemas con ACPI, el sistema operativo puede pedir al BIOS que envíe un mensaje cuando la carga de la batería sea inferior a un límite especificado. La ventaja de este método es que no es necesario consultar continuamente el estado de la batería, lo que repercutiría negativamente en el rendimiento del equipo. No obstante, puede ocurrir que, a pesar de que el BIOS sea compatible con esta función, la notificación no se produzca, ni siquiera cuando el nivel de carga sea inferior al especificado. Si ocurre esto, establezca la variable FORCE_BATTERY_POLLING del archivo /etc/ sysconfig/powersave/battery en un valor afirmativo (yes) para forzar la consulta del estado de la batería. 21.5.5 Información adicional Hay más información disponible sobre el paquete powersave en /usr/share/doc/ packages/powersave. 306 21.6 Módulo de gestión de energía de YaST El módulo de gestión de energía de YaST le permite configurar todos los ajustes de gestión de energía descritos en las secciones anteriores. Cuando se inicia el módulo desde el Centro de control de YaST, mediante Sistema → Gestión de energía, se muestra el primer cuadro de diálogo. Es el que se muestra en la Figura 21.1, “Selección de esquemas” (p. 307). Figura 21.1 Selección de esquemas En este cuadro de diálogo, seleccione los esquemas que se deben usar para el funcionamiento con batería y con conexión a la red eléctrica. Para añadir o modificar esquemas, haga clic en Editar perfiles. Se abrirá una descripción de los esquemas existentes como la que se muestra en la Figura 21.2, “Descripción general de los esquemas existentes” (p. 308). Gestión de energía 307 Figura 21.2 Descripción general de los esquemas existentes En la descripción general del esquema, seleccione el esquema que desee modificar y haga clic en Editar. Para crear un esquema nuevo, haga clic en Añadir. El cuadro de diálogo que se abre es igual en ambos casos y es el que se muestra en la Figura 21.3, “Configuración de esquemas” (p. 309). 308 Figura 21.3 Configuración de esquemas En primer lugar, asigne un nombre y una descripción adecuados al perfil que desee crear o modificar. Determine si desea regular el rendimiento de la CPU para este esquema. En caso afirmativo, establezca si se deben usar las funciones de ajuste de la frecuencia y de limitación y cómo se debe hacer. En el siguiente cuadro de diálogo para el disco duro, establezca una directiva para el uso de la función stand-by mediante la opción Stand-by Policy a fin de obtener el máximo rendimiento o para ahorrar la máxima cantidad de energía. Los niveles de ruido del disco duro se pueden ajustar mediante la opción Acoustic Policy (la admiten pocos discos duros). La opción Cooling Policy permite determinar el método de refrigeración que se debe usar. Desafortunadamente, el BIOS sólo admite este tipo de control térmico en raras ocasiones. Consulte /usr/ share/doc/packages/powersave/README.thermal para obtener más información acerca de cómo debe usar el ventilador y los métodos pasivos de refrigeración. También se pueden efectuar ajustes globales de gestión de energía desde el cuadro de diálogo inicial usando las opciones Avisos de la batería, Configuración ACPI o Activar suspend. Haga clic en Avisos de la batería para acceder al cuadro de diálogo que muestra el nivel de carga de la batería (el que aparece en laFigura 21.4, “Nivel de carga de la batería” (p. 310)). Gestión de energía 309 Figura 21.4 Nivel de carga de la batería El BIOS del sistema notifica al sistema operativo si los niveles de carga caen por debajo de ciertos límites que se pueden configurar. En este cuadro de diálogo puede establecer tres ajustes: Aviso del nivel de batería, Batería baja y Nivel crítico de batería. Cuando la carga de la batería cae por debajo de estos umbrales, se llevan a cabo acciones específicas. Normalmente, con los dos primeros estados se envía simplemente una nota al usuario. Con el tercero de ellos, se apaga el sistema porque la batería que queda no es suficiente para continuar con el funcionamiento del sistema. Seleccione los niveles de carga adecuados y la acción que se debe realizar. A continuación, haga clic en Aceptar para volver al cuadro de diálogo de inicio. 310 Figura 21.5 Configuración ACPI La opción Configuración ACPI se utiliza para acceder al cuadro de diálogo que permite configurar las teclas ACPI. Es el que se muestra en la Figura 21.5, “Configuración ACPI” (p. 311). Los ajustes para las teclas ACPI determinan cómo debe responder el sistema ante ciertos conmutadores; por ejemplo, puede configurar cómo debe responder el sistema cuando se pulsen los botones Power o Sleep o cuando se cierre la cubierta del equipo portátil. Haga clic en Aceptar para finalizar la configuración y volver al cuadro de diálogo de inicio. Haga clic en Activar suspend para acceder a un cuadro de diálogo que le permite establecer si los usuarios del sistema pueden usar las funciones de suspensión y stand-by y, en caso afirmativo, cómo deben usarlas. Haga clic en Aceptar para volver al cuadro de diálogo principal. Haga clic en Aceptar de nuevo para salir del módulo y confirmar los ajustes de gestión de energía. Gestión de energía 311 Comunicación inalámbrica 22 Hay varias maneras de utilizar los sistemas Linux para comunicarse con otros equipos, teléfonos móviles o dispositivos periféricos. Para conectar portátiles en red, se puede utilizar el método WLAN (LAN inalámbrica). Para conectar entre sí componentes de sistema individuales (ratón y teclado), dispositivos periféricos, teléfonos móviles, dispositivos PDA y equipos independientes, se puede utilizar el sistema Bluetooth. IrDA es el más utilizado para establecer comunicación con dispositivos PDA y teléfonos móviles. Este capítulo presenta estas tres tecnologías y su modo de configuración. 22.1 LAN inalámbrica Las redes de área local (LAN) inalámbricas de han convertido en un aspecto imprescindible de la informática móvil. Hoy en día, la mayoría de portátiles cuentan con tarjetas WLAN integradas. La organización IEEE (Instituto de ingenieros eléctricos y electrónicos) preparó el estándar 802.11 para la comunicación inalámbrica de las tarjetas WLAN. En un principio este estándar ofrecía una velocidad máxima de transmisión de 2 MBit/s. Desde entonces se han añadido varios suplementos para aumentar la velocidad de los datos. En estos suplementos se definen detalles como la modulación, la salida y las velocidades de transmisión: Comunicación inalámbrica 313 Tabla 22.1 Descripción de los distintos estándares de WLAN Nombre Banda (GHz) Velocidad máxima de transmisión (MBit/s) Nota 802.11 2,4 2 Obsoleto, ya no queda prácticamente ningún dispositivo final disponible 802.11b 2,4 11 Muy extendido 802.11a 5 54 Menos común 802.11g 2,4 54 Compatibilidad inversa con el 11b Además, hay estándares patentados como la variación 802.11b de Texas Instruments con una velocidad máxima de transmisión de 22 MBit/s (en ocasiones se hace referencia a ella como 802.11b+). Sin embargo, la popularidad de las tarjetas que usan este estándar es limitada. 22.1.1 Hardware SUSE Linux no admite las tarjetas 802.11. Sí que son compatibles la mayoría de las tarjetas que usen los estándares 802.11a, 802.11b y 802.11g. Las nuevas tarjetas normalmente cumplen con el estándar 802.11g pero siguen estando disponibles las que usan el 802.11b. Normalmente, se admiten las tarjetas con los chips siguientes: • Aironet 4500, 4800 • Atheros 5210, 5211, 5212 • Atmel at76c502, at76c503, at76c504, at76c506 • Intel PRO/Wireless 2100, 2200BG, 2915ABG • Intersil Prism2/2.5/3 314 • Intersil PrismGT • Lucent/Agere Hermes • Ralink RT2400, RT2500 • Texas Instruments ACX100, ACX111 • ZyDAS zd1201 También son compatibles un buen número de tarjetas antiguas que apenas se usan y que ya no están disponibles. Hay disponible una lista exhaustiva de tarjetas WLAN y chips que se usan en el sitio Web de AbsoluteValue Systems: http://www .linux-wlan.org/docs/wlan_adapters.html.gz. http://wiki .uni-konstanz.de/wiki/bin/view/Wireless/ListeChipsatz ofrece una descripción general de los distintos chips de WLAN. Algunas tarjetas necesitan una imagen de firmware que debe cargarse en la tarjeta donde se ha inicializado el controlador. Este es el caso de Intersil PrismGT, Atmel, TI ACX100 y ACX111. El firmware se puede instalar fácilmente con la actualización en línea de YaST. El firmware para las tarjetas Intel PRO/Wireless está incluido en SUSE Linux y YaST las instala automáticamente tan pronto como se ha detectado una tarjeta de este tipo. Hay disponible más información sobre este asunto en la vía /usr/share/ doc/packages/wireless-tools/README.firmware del sistema, una vez instalado. Se pueden usar las tarjetas sin compatibilidad nativa de Linux ejecutando la aplicación ndiswrapper. Ésta utiliza los controladores de Windows que vienen con la mayoría de las tarjetas WLAN. Encontrará una descripción de ndiswrapper en /usr/share/ doc/packages/ndiswrapper/README.SUSE, una vez instalado el paquete ndiswrapper. Para obtener información detallada acerca de ndiswrapper, consulte el sitio Web del proyecto en http://ndiswrapper.sourceforge.net/ support.html. 22.1.2 Función En las redes inalámbricas, se usan varias técnicas y configuraciones para asegurar conexiones rápidas, de alta calidad y seguras. Los distintos tipos operativos se adaptan a Comunicación inalámbrica 315 distintas configuraciones. Puede ser difícil seleccionar el método correcto de autenticación. Los métodos de cifrado disponibles tienen distintas ventajas y riesgos. Modo operativo Básicamente, las redes inalámbricas pueden clasificarse como redes gestionadas o adhoc. Las redes gestionadas cuentan con un elemento de gestión: el punto de acceso. En este modo (al que también se hace referencia como "modo de infraestructura"), todas las conexiones de las estaciones WLAN en la red funcionan por el punto de acceso, que también puede servir como conexión a una ethernet. Las redes ad-hoc no cuentan con un punto de acceso. Las estaciones se comunican directamente unas con otras. La velocidad de transmisión y el número de estaciones participantes están muy limitadas en las redes ad-hoc. Por lo tanto, un punto de acceso suele ser más eficaz. Es incluso posible usar una tarjeta WLAN como punto de acceso. La mayoría de tarjetas admiten esta funcionalidad. Debido a que es más fácil interceptar y poner en peligro una red inalámbrica que una fija, los distintos estándares incluyen métodos de autenticación y de cifrado. En la versión original del estándar IEEE 802.11, se describen con el término WEP. Sin embargo, debido a que WEP ha resultado ser inseguro (consulte la “Seguridad” (p. 322)), la industria de WLAN (unida bajo el nombre Wi-Fi Alliance) ha definido una nueva extensión denominada "WPA" que debería eliminar los puntos vulnerables de WEP. El estándar posterior IEEE 802.11i (también conocido como "WPA2" debido a que WPA está basado en la versión no final de 802.11i) incluye WPA y algunos otros métodos de autenticación y cifrado. Autenticación Para garantizar que sólo se puedan conectar las estaciones autorizadas, en las redes gestionadas se usan varios mecanismos de autenticación: Abrir Un sistema abierto es un sistema que no requiere autenticación. Cualquier estación puede unirse a la red. No obstante, se puede usar el cifrado WEP (consulte la “Cifrado” (p. 318)). Clave compartida (según el estándar IEEE 802.11) En este procedimiento, se usa la clave WEP para la autenticación. Sin embargo, no se recomienda este procedimiento porque la clave WEP es más propensa a recibir 316 ataques. Todo lo que necesita hacer un atacante es escuchar el tiempo suficiente la comunicación entre la estación y el punto de acceso. Durante el proceso de autenticación, ambos lados intercambian la misma información, una vez de manera cifrada y otra no cifrada. Esto hace posible que la clave se reconstruya con herramientas adecuadas. Puesto que este método hace uso de la clave WEP para la autenticación y el cifrado, no mejora la seguridad de la red. Una estación que tiene la clave WEP correcta puede autenticar, cifrar y descifrar. Una estación que no cuenta con la clave correcta no puede descifrar los paquetes recibidos. De la misma forma, no puede comunicarse, sin tener en cuenta si tuvo que autenticarse a sí misma. WPA-PSK (según el estándar IEEE 802.1x) WPA-PSK (PSK significa "preshared key", clave compartida previamente) funciona de manera parecida al procedimiento de clave compartida. Todas las estaciones participantes y el punto de acceso necesitan la misma clave. La clave tiene 256 bits de longitud y normalmente se introduce como una contraseña. Este sistema no necesita una gestión compleja de claves como WPA-EAP y es más adecuado para uso privado. Por tanto, en ocasiones se hace referencia a WPA-PSK como “Home”. WPA-EAP (según el estándar IEEE 802.1x) En realidad, WPA-EAP no es un sistema de autenticación sino un protocolo para transportar información de autenticación. WPA-EAP se utiliza para proteger redes inalámbricas en empresas. En redes privadas, apenas se usa. Por esta razón, a veces se hace referencia a WPA-EAP como WPA “Enterprise”. WPA-EAP necesita un servidor Radius para autenticar usuarios. EAP ofrece tres métodos distintos de conectar y autenticar con el servidor: TLS (Seguridad de nivel de transporte), TTLS (Seguridad de nivel de transporte con forma de túnel) y PEAP (Protocolo de autenticación extensible protegida). En pocas palabras, estas opciones funcionan de la siguiente forma: EAP-TLS La autenticación TLS se basa en el intercambio mutuo de certificados tanto para el servidor como para el cliente. En primer lugar, el servidor presenta este certificado al cliente donde se evalúa. Si el certificado se considera válido, el cliente presenta su certificado al servidor. Aunque TLS es seguro, necesita una infraestructura de gestión de certificación en funcionamiento en la red. Esta infraestructura apenas se encuentra en redes privadas. Comunicación inalámbrica 317 EAP-TTLS y PEAP Tanto TTLS como PEAP son protocolos de dos fases. En la primera, se establece un modo seguro y en la segunda se intercambian los datos de autenticación del cliente. Necesitan mucho menos sobrecargo de gestión de certificación que TLS (o ninguno en absoluto). Cifrado Existen varios métodos de cifrado para asegurar que ninguna persona sin autorización pueda leer los paquetes de datos que se intercambian en una red inalámbrica o tenga acceso a la red: WEP (definido en IEEE 802.11) Este estándar hace uso del algoritmo de cifrado RC4, con una longitud de clave original de 40 bits, posteriormente con 104 bits. Con frecuencia, la longitud es de 64 bits o 128 bits, dependiendo de si se incluyen los 24 bits del vector de inicialización. Sin embargo, este estándar tiene algunos puntos débiles. Los ataques contra las claves generadas por este sistema pueden tener éxito. No obstante, es mejor usar WEP que no cifrar en absoluto la red. TKIP (definido en WPA/IEEE 802.11i) Este protocolo de gestión de claves definido en el estándar WPA emplea el mismo algoritmo de cifrado que WEP pero elimina su debilidad. Debido a que se genera una nueva clave para cada paquete de datos, los ataques contra estas claves son infructuosos. TKIP se usa junto con WPA-PSK. CCMP (definido en IEEE 802.11i) CCMP describe la gestión de claves. Normalmente se usa en conexión con WPAEAP, pero también se puede usar con WPA-PSK. El cifrado tiene lugar según AES y es más fuerte que el cifrado RC4 del estándar WEP. 22.1.3 Configuración con YaST Para configurar la tarjeta de red inalámbrica, inicie el módulo Tarjeta de red de YaST. En Configuración de la dirección de red, seleccione el tipo de dispositivo Inalámbrico y haga clic en Siguiente. En Configuración de la tarjeta de red inalámbrica que aparece en la Figura 22.1, “YaST: configuración de la tarjeta de red inalámbrica” (p. 319), realice los ajustes básicos para la operación WLAN: 318 Figura 22.1 YaST: configuración de la tarjeta de red inalámbrica Modo operativo Las estaciones pueden integrarse en una WLAN de tres modos distintos. El modo adecuado depende de la red en la que comunicar: Ad-hoc (red par a par sin punto de acceso), Gestionado (la red está gestionada por un punto de acceso) o Maestro (la tarjeta de red debería usarse como el punto de acceso). Para usar cualquiera de los modos WPA-PSK o WPA-EAP, el modo operativo debe definirse en Gestionado. Nombre de la red (ESSID) Todas las estaciones de una red inalámbrica necesitan el mismo ESSID para comunicarse entre ellas. Si no se especifica nada, la tarjeta seleccionará automáticamente un punto de acceso que puede no ser el deseado. Modo de autenticación Seleccione un método de autenticación adecuado para la red: Abierto, Clave compartida, WPA-PSK o WPA-EAP. Si selecciona la autenticación WPA, deberá definir un nombre de red. Configuración avanzada Este botón abre un cuadro de diálogo para la configuración detallada de la conexión WLAN. Más adelante se ofrecerá una descripción detallada de este cuadro de diálogo. Comunicación inalámbrica 319 Después de completar los ajustes básicos, la estación estará lista para su implantación en la WLAN. IMPORTANTE: Seguridad en redes inalámbricas Asegúrese de usar los métodos de cifrado y autenticación compatibles para proteger el tráfico de la red. Las conexiones WLAN sin cifrar permiten que terceros intercepten todos los datos de la red. Un cifrado débil (WEP) es mejor que no tener ninguno. Consulte la “Cifrado” (p. 318) y la “Seguridad” (p. 322) para obtener información. Según el método de autenticación seleccionado, YaST le pedirá que defina los ajustes en otro cuadro de diálogo. En el caso de Abierto no hay nada que configurar porque este ajuste implanta la operación no cifrada sin autenticación. Claves WEP Defina un tipo de clave de entrada. Elija entre Contraseña, ASCII o Hexadecimal. Puede mantener hasta cuatro claves distintas para cifrar los datos transmitidos. Haga clic en Claves múltiples para entrar en el cuadro de diálogo de configuración. Defina la longitud de la clave: 128 bits o 64 bits. El ajuste por defecto es 128 bits. En el área de la lista situada en la parte inferior del cuadro de diálogo, se pueden especificar hasta cuatro claves distintas que la estación usará para cifrar. Pulse Definir como predeterminada para definir una de ellas como la clave por defecto. A menos que lo cambie, YaST usará la primera clave introducida como la clave por defecto. Si se suprime la clave estándar, una de las otras claves deberá marcarse manualmente como la clave por defecto. Haga clic en Editar para modificar las entradas de la lista existentes o crear nuevas claves. En este caso, una ventana emergente le pedirá que seleccione un tipo de entrada (Contraseña, ASCII o Hexadecimal). Si selecciona Contraseña, escriba una palabra o cadena de caracteres a partir de la cual se generará una clave de acuerdo con la longitud previamente especificada. ASCII necesita una entrada de 5 caracteres para una clave de 64 bits y 13 caracteres para una de 128 bits. En el caso de Hexadecimal introduzca 10 caracteres para una clave de 64 bits o 26 caracteres para una de 128 bits en notación hexadecimal. WPA-PSK Para introducir una clave para WPA-PSK, seleccione el método de entrada: Contraseña o Hexadecimal. En el modo Contraseña la entrada debe tener de 8 a 63 caracteres. En el modo Hexadecimal introduzca 64 caracteres. 320 WPA-EAP Introduzca las credenciales que el administrador de red le haya proporcionado. En el caso de TLS, introduzca el certificado de cliente y el certificado de servidor. TTLS y PEAP necesitan la identidad y la contraseña. El certificado de servidor es opcional. YaST busca cualquier certificado en /etc/cert así que guarde los certificados que reciba en esa ubicación y restrinja el acceso a estos archivos a 0600 (derechos de lectura y escritura del propietario). Haga clic en Configuración avanzada para abandonar el cuadro de diálogo de la configuración básica de la conexión WLAN e introducir la configuración avanzada. Las siguientes opciones están disponibles en este cuadro de diálogo: Canal La especificación de un canal en el que la estación WLAN debería trabajar sólo es necesaria en los modos Ad-hoc y Maestro. En el modo Gestionado, la tarjeta busca automáticamente los canales disponibles para los puntos de acceso. En el modo Adhoc seleccione uno de los 12 canales que se ofrecen para la comunicación de la estación con las demás. En el modo Maestro, determine el canal en el que la tarjeta debería ofrecer funciones de punto de acceso. El ajuste por defecto para esta opción es Auto. Tasa de bits Según el rendimiento de la red, puede querer definir una tasa de bits para la transmisión de un punto a otro. En el ajuste por defecto Auto, el sistema intentará usar la tasa de transmisión de datos más alta posible. Algunas tarjetas WLAN no admiten este ajuste de tasa de bits. Puntos de acceso En un entorno con varios puntos de acceso, puede seleccionarse uno de ellos previamente especificando la dirección MAC. Usar gestión de energía Cuando está viajando, utilice las tecnologías de ahorro de energía para maximizar el tiempo de funcionamiento de la batería. Hay más información disponible sobre la gestión de energía en el Capítulo 21, Gestión de energía (p. 285). Comunicación inalámbrica 321 22.1.4 Utilidades hostap (paquete hostap) se usa para ejecutar una tarjeta WLAN como un punto de acceso. Hay más información disponible sobre este paquete en la página de principal del proyecto (http://hostap.epitest.fi/). kismet (paquete kismet) es una herramienta de diagnóstico de red con la que escuchar el tráfico de paquetes de WLAN. De esta forma, también puede detectar cualquier intento de intrusión en la red. Hay más información disponible en http://www .kismetwireless.net/ y en la lista concisa de comandos. 22.1.5 Sugerencias y consejos prácticos para configurar una WLAN Estos consejos le ayudarán a conseguir más velocidad y estabilidad además de mejorar algunos aspectos de seguridad de la WLAN. Estabilidad y velocidad El rendimiento y fiabilidad de una red inalámbrica depende principalmente de si las estaciones participantes reciben una señal limpia de las otras estaciones. Los obstáculos como los cortafuegos contribuyen a debilitar la señal. Cuanto más disminuye la fuerza de la señal, más se ralentiza la transmisión. Durante la operación, compruebe la fuerza de la señal con la utilidad iwconfig en la línea de comando (campo Calidad del enlace) o con KInternet en KDE. Si tiene problemas con la calidad de la señal, pruebe a configurar los dispositivos en otro lugar o a ajustar la posición de las antenas de los puntos de acceso. Hay antenas auxiliares que mejoran en gran medida la recepción para muchas tarjetas PCMCIA WLAN. La tasa especificada por el fabricante, como 54 MBit/s, es un valor nominal que representa la velocidad máxima teórica. En la práctica, el rendimiento máximo de los datos no es superior a la mitad de este valor. Seguridad Si desea configurar una red inalámbrica, recuerde que cualquier persona dentro de su rango de transmisión puede acceder fácilmente si no se implantan medidas de seguridad. Por tanto, asegúrese de activar un método de cifrado. Todas las tarjetas WLAN y los 322 puntos de acceso admiten el cifrado WEP. Aunque no es completamente seguro, presenta un obstáculo a un atacante potencial. WEP normalmente es suficiente para el uso privado. WPA-PSK sería incluso mejor pero no está implantado en puntos de acceso más antiguos o routers con funciones de WLAN. En algunos dispositivos, puede implantarse WPA mediante una actualización de firmware. Además, Linux no admite WPA en todos los componentes de hardware. En el momento de la redacción de este documento, WPA sólo funcionaba con tarjetas que usaban chips Atheros, Intel PRO/Wireless o Prism2/2.5/3. En el caso de Prism2/2.5/3, WPA sólo funciona si se utiliza el controlador de hostap (consulte la“Problemas con las tarjetas Prism2” (p. 323)). Si WPA no está disponible, WEP es mejor que no usar ningún cifrado. En empresas con requisitos avanzados de seguridad, las redes inalámbricas sólo deberían funcionar con WPA. 22.1.6 Resolución de problemas Si la tarjeta WLAN no responde, compruebe si ha descargado el firmware necesario. Consulte la Sección 22.1.1, “Hardware” (p. 314). Los párrafos que vienen a continuación explican algunos problemas conocidos. Varios dispositivos de red Los portátiles modernos normalmente tienen una tarjeta de red y una WLAN. Si ha configurado ambos dispositivos con DHCP (asignación automática de direcciones), es posible que tenga problemas con la resolución de nombres y el gateway por defecto. Este problema es fácilmente identificable porque puede hacer ping en el router pero no puede navegar por Internet. La base de datos de asistencia técnica en http://portal .suse.com cuenta con un artículo sobre este asunto. Para encontrar el artículo, introduzca “DHCP” en el cuadro de diálogo de búsqueda. Problemas con las tarjetas Prism2 Hay varios controladores disponibles para dispositivos con chips Prism2. Esas tarjetas funcionan relativamente bien con los distintos controladores. Con estas tarjetas, sólo es posible usar WPA con el controlador hostap. Si una de esas tarjetas no funciona correctamente, no funciona en absoluto o desea usar WPA, lea /usr/share/doc/ packages/wireless-tools/README.prism2. Comunicación inalámbrica 323 WPA La compatibilidad de WPA es bastante reciente en SUSE Linux y todavía está en fase de desarrollo. Por tanto, YaST no admite la configuración de todos los modos de autenticación de WPA. No todas las tarjetas LAN inalámbricas y controladores admiten WPA. Algunas tarjetas necesitan una actualización de firmware para habilitar WPA. Si desea usar WPA, lea /usr/share/doc/packages/wireless-tools/ README.wpa. 22.1.7 Información adicional Las páginas de Internet de Jean Tourrilhes, desarrollador de las herramientas inalámbricas para Linux, contienen información muy útil y valiosa sobre redes inalámbricas. Consulte http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ Wireless.html. 22.2 Bluetooth Bluetooth es una tecnología inalámbrica que permite conectar varios dispositivos, como teléfonos móviles, PDA, dispositivos periféricos o componentes del sistema, como el teclado o el ratón. El nombre tiene su origen en el rey danés Harold Bluetooth, que logró unir varias facciones enfrentadas de la región escandinava. El logotipo de Bluetooth se basa en las runas de sus iniciales “H” (parecido a una estrella) y “B.” Bluetooth se diferencia de IrDA en algunos aspectos importantes: por una parte, los dispositivos no necesitan “verse” el uno al otro directamente y, por otra, varios dispositivos pueden agruparse y formar redes completas. No obstante, la transferencia máxima de datos es de 720 Kbps (en la versión actual, que es la 1.2). En teoría, con Bluetooth se pueden establecer conexiones entre dispositivos separados por una pared. En la práctica, sin embargo, esto depende del tipo de pared y de la clase de dispositivos. Existen tres clases de dispositivos con alcances de transmisión de entre 10 y 100 metros. 324 22.2.1 Fundamentos En las siguientes secciones se describen los principios básicos del funcionamiento de Bluetooth. Conozca qué requisitos de software se deben cumplir, cómo interactúa Bluetooth con su sistema y cómo configura Bluetooth el trabajo mediante perfiles. Software Para poder utilizar Bluetooth es necesario contar con un adaptador Bluetooth (integrado en el dispositivo o bien un dispositivo externo), controladores y el stack de protocolo para Bluetooth. El núcleo de Linux contiene ya los controladores básicos para usar Bluetooth. En cuanto al stack de protocolo, se utiliza el sistema Bluez. Para asegurarse de que las aplicaciones funcionan con Bluetooth, es necesario instalar los paquetes básicos bluez-libs y bluez-utils. Dichos paquetes proporcionan servicios y utilidades que el sistema necesita. Además, para algunos adaptadores como Broadcom o AVM BlueFritz!, se requiere también el paquete bluez-firmware. El paquete bluez-cups permite imprimir a través de conexiones Bluetooth. Interacción general Los sistemas Bluetooth están formados por cuatro capas interdependientes, cada una de las cuales cumple una función determinada: Hardware El adaptador y un controlador adecuado que garantiza la compatibilidad con el núcleo de Linux. Archivos de configuración Se utilizan para controlar el sistema Bluetooth. Daemons Servicios que proporcionan diversas funciones y que están controlados a través de los archivos de configuración. Aplicaciones Programas que ponen al alcance del usuario las funciones proporcionadas por los daemons y que les permiten controlar dichas funciones. Comunicación inalámbrica 325 Al conectar un adaptador Bluetooth, el controlador correspondiente se carga a través del sistema HotPlug. Una vez que el controlador está cargado, se comprueba por medio de los archivos de configuración si Bluetooth debe iniciarse. En caso afirmativo, se determina qué servicios deben iniciarse y, dependiendo de estos datos, se activan los daemons correspondientes. Los adaptadores de Bluetooth se prueban en la instalación. Si se encuentran uno o varios, Bluetooth se activa. De lo contrario, el sistema Bluetooth se desactiva. Los dispositivos Bluetooth que se añadan posteriormente deberán habilitarse de forma manual. Perfiles Los servicios en Bluetooth se definen por medio de perfiles como, por ejemplo, el perfil de transferencia de archivos, el perfil de impresión básica y el perfil de red de área personal. Para que un dispositivo pueda utilizar un servicio de otro, ambos deben entender el mismo perfil. Desafortunadamente, ni el manual ni la caja del dispositivo suelen incluir esta información. Otro problema es que algunos fabricantes respetan escrupulosamente la definición de los perfiles individuales, pero otros no. A pesar de todo esto, las comunicaciones entre los dispositivos suelen funcionar sin problema. En el siguiente texto, los dispositivos locales son los que están conectados físicamente al equipo. Los demás dispositivos que sólo pueden acceder mediante conexiones inalámbricas reciben el nombre de "dispositivos remotos". 22.2.2 Configuración En esta sección se presenta la configuración de Bluetooth. Conozca qué archivos de configuración participan, qué herramientas se necesitan y cómo se configura Bluetooth con YaST o de forma manual. Configuración de Bluetooth con YaST El módulo Bluetooth de YaST (que se muestra en la Figura 22.2, “Configuración de Bluetooth con YaST” (p. 327)) le permite configurar la compatibilidad de Bluetooth con su sistema. En el momento en que HotPlug detecta un adaptador Bluetooth en el sistema (por ejemplo, durante el arranque o cuando se conecta un adaptador), Bluetooth se inicia automáticamente con los ajustes establecidos en este módulo. 326 Figura 22.2 Configuración de Bluetooth con YaST En el primer paso de la configuración, debe determinar si los servicios Bluetooth tienen que iniciarse en el sistema. Si ha habilitado los servicios de Bluetooth, hay dos cosas que se pueden configurar. En primer lugar, el Nombre del dispositivo. Éste es el nombre que muestran otros dispositivos cuando se detecta su equipo. Hay dos marcadores de posición disponibles: %h hace referencia al nombre de host del sistema (es útil, por ejemplo, si se usa una asignación dinámica mediante DHCP) y %d, que inserta el número de interfaz (es útil sólo si dispone de más de un adaptador Bluetooth en el equipo). Por ejemplo, si escribe Portátil %h en el campo y DHCP asigna el nombre unit123 al equipo, los demás dispositivos remotos verán su equipo con el nombre Portátil unit123. El parámetro Administrador de seguridad está relacionado con el comportamiento del sistema local cuando un dispositivo remoto intenta conectarse. La diferencia radica en la gestión que se hace del número PIN. Se puede establecer que cualquier dispositivo pueda conectarse sin usar un PIN o se puede determinar cómo se elige el PIN correcto en caso de que se necesite uno. Puede especificar un PIN (almacenado en un archivo de configuración) en el campo de entrada pertinente. Si un dispositivo intenta conectarse, usará en primer lugar este PIN. Si falla, intentará conectarse sin PIN. Para obtener la mayor seguridad, se aconseja elegir Pedir siempre el PIN al usuario. Esta opción permite usar diferentes PIN para los distintos dispositivos remotos. Comunicación inalámbrica 327 Haga clic en Configuración avanzada del daemon para acceder al cuadro de diálogo con objeto de seleccionar y configurar los servicios disponibles (llamados perfiles en Bluetooth). Se muestra una lista de todos los servicios disponibles, los cuales puede activar o desactivar con los botones de activación o desactivación. Haga clic en Editar para abrir un cuadro de diálogo en el que podrá especificar argumentos adicionales para el servicio seleccionado (daemon). No haga ningún cambio, a menos que esté familiarizado con el servicio. Después de configurar el daemon, salga de este cuadro de diálogo haciendo clic en Aceptar. En el cuadro de diálogo principal, haga clic en Opciones de seguridad para acceder al cuadro de diálogo de seguridad con objeto de especificar las opciones de cifrado, autenticación y exploración. A continuación, salga del cuadro de diálogo de seguridad para volver al principal. Cuando cierre el cuadro de diálogo principal con la opción Finalizar, el sistema Bluetooth estará listo para su uso. Desde el cuadro de diálogo principal, puede acceder también al cuadro de diálogo Clases de dispositivos y servicios. Los dispositivos Bluetooth se agrupan en distintas clases de dispositivos. En este cuadro de diálogo, elija la clase adecuada para su equipo como, por ejemplo, Escritorio o Portátil. La clase de dispositivo no es muy relevante, a diferencia de las clases de servicios, que también se configuran aquí. En ocasiones, los dispositivos Bluetooth remotos como, por ejemplo, los teléfonos móviles, sólo permiten ciertas funciones si pueden detectar la clase de servicios adecuada establecida en el sistema. Suele ser el caso de los teléfonos móviles que esperan una clase llamada Transferencia de objetos antes de permitir la transferencia de archivos con el equipo. Puede elegir varias clases, aunque no es eficaz seleccionarlas todas sólo “por si acaso”. La selección por defecto suele ser adecuada en la mayoría de los casos. Para usar Bluetooth para configurar una red, active PAND en el cuadro de diálogo Configuración avanzada del daemon y defina el modo del daemon con Editar. Para que la conexión de red Bluetooth funcione, pand debe operar en el modo de escucha y el par en el modo de búsqueda. El modo por defecto es el de escucha. Si es necesario, ajuste el modo del pand local. Además, configure le interfaz bnepX (X hace referencia al número de dispositivo en el sistema) en el módulo Tarjeta de red de YaST. Configuración manual de Bluetooth Los archivos de configuración para los distintos componentes del sistema Bluez se encuentran en el directorio /etc/bluetooth. La única excepción es el archivo /etc/ 328 sysconfig/bluetooth para iniciar los componentes, y que se modifica mediante el módulo YaST. Los archivos de configuración que se describen a continuación sólo puede modificarlos el usuario Root. Actualmente no hay ninguna interfaz gráfica que permita cambiar todos los ajustes, aunque los más importantes se pueden definir usando el módulo Bluetooth de YaST, que se describe en la “Configuración de Bluetooth con YaST” (p. 326). Los demás ajustes sólo deben modificarlos los usuarios experimentados en circunstancias especiales. No obstante, los ajustes por defecto suelen ser adecuados. Un número PIN proporciona una protección básica frente a conexiones no deseadas. Los teléfonos móviles suelen pedir este número PIN cuando establecen el primer contacto (o al configurar un contacto de dispositivo en el teléfono). Para que dos dispositivos puedan comunicarse entre sí, ambos deben identificarse con el mismo PIN. En el equipo, el número PIN se encuentra en el archivo /etc/bluetooth/pin. IMPORTANTE: Seguridad en las conexiones Bluetooth El uso de números PIN no garantiza que la transmisión entre dos dispositivos sea totalmente segura. Tenga en cuenta que tanto la autenticación como el cifrado de las conexiones Bluetooth están desactivados por defecto. La activación de la autenticación y del cifrado puede provocar problemas de comunicación con algunos dispositivos Bluetooth. En el archivo de configuración /etc/bluetooth/hcid.conf se pueden modificar varios ajustes, tales como los nombres de dispositivos y el modo de seguridad. No obstante, los ajustes por defecto suelen ser adecuados. El archivo incluye comentarios que describen las opciones de los distintos ajustes. En el archivo se incluyen dos secciones, una de ellas dedicada a las opciones y otra a los dispositivos. La primera contiene información general que usa hcid para el inicio. La segunda sección incluye ajustes para cada dispositivo Bluetooth local. Uno de los ajustes más importantes de la sección de opciones es security auto; (Seguridad automática). Si se configura en auto (Automática), hcid intentará usar el PIN local para las conexiones entrantes. Si se produce un fallo, cambiará a none (Ninguno) y se establecerá la conexión de todos modos. Para obtener una mayor seguridad, este ajuste por defecto debe establecerse en user (Usuario) con objeto de asegurarse de que se solicite un número PIN al usuario cada vez que se establezca una conexión. Comunicación inalámbrica 329 En la sección de dispositivos puede especificar el nombre con el que se mostrará el equipo en el otro extremo de la conexión. En esta sección se define la clase de dispositivo como, por ejemplo, Desktop (Escritorio), Laptop (Portátil) o Server (Servidor). La autenticación y el cifrado también se habilitan o inhabilitan desde aquí. 22.2.3 Utilidades y componentes del sistema El uso de Bluetooth depende de la interacción de varios servicios. Como mínimo, es necesario que se estén ejecutando dos daemons en segundo plano: hcid (daemon de la interfaz del controlador del host), que actúa como interfaz del dispositivo Bluetooth y lo controla; y sdpd (daemon del protocolo de descubrimiento de servicios), mediante el cual un dispositivo puede averiguar qué servicios ofrece el host. Si no se activan automáticamente al iniciar el sistema, tanto hcid como sdpd puede activarse con el comando rcbluetooth start. Este comando se debe ejecutar como usuario Root. A continuación, se describen las principales herramientas de shell que se pueden usar para trabajar con Bluetooth. Aunque ya existen diversos componentes gráficos para manejar Bluetooth, merece la pena conocer estos programas. Algunos de estos comandos sólo se pueden ejecutar como usuario Root, por ejemplo, el comando l2ping device_address, con el que puede probar la conexión a un dispositivo remoto. hcitool Mediante hcitool es posible averiguar si se han encontrado dispositivos locales y remotos. El comando hcitool dev muestra una lista de los dispositivos locales. La salida genera una línea con el formato nombre_interfaz dirección_dispositivo para cada dispositivo local detectado. Para detectar dispositivos remotos, puede utilizarse el comando hcitool inq. Se devuelven tres valores para cada dispositivo detectado: la dirección del dispositivo, la diferencia horaria y la clase de dispositivo. La dirección del dispositivo es importante porque los otros comandos la usan para identificar el dispositivo de destino. La diferencia horaria se usa fundamentalmente para propósitos técnicos. La clase hace referencia al tipo de dispositivo y de servicio como un valor hexadecimal. 330 El comando hcitool name dirección_dispositivo se puede usar para determinar el nombre de un dispositivo remoto. Si se trata de un equipo remoto, la clase y el nombre de dispositivo deben coincidir con la información que figura en /etc/ bluetooth/hcid.conf. Las direcciones de los dispositivos locales generan un error. hciconfig El comando /usr/sbin/hciconfig proporciona información adicional sobre el dispositivo local. Si hciconfig se ejecuta sin argumentos, la salida mostrará la información del dispositivo como, por ejemplo, el nombre del dispositivo (hciX), la dirección del dispositivo físico (un número de 12 dígitos con el formato 00:12:34:56:78), así como información acerca de la cantidad de datos transmitidos. hciconfig hci0 name muestra el nombre que devuelve el equipo cuando recibe peticiones desde dispositivos remotos. El comando hciconfig no sólo sirve para ver los ajustes del dispositivo local, sino también para modificarlos. Por ejemplo, el comando hciconfig hci0 name PRUEBA asigna al dispositivo el nombre PRUEBA. sdptool El programa sdptool se puede usar para comprobar qué servicios ofrece un dispositivo específico. El comando sdptool browse dirección_dispositivo muestra todos los servicios de un dispositivo, mientras que sdptool search código_servicio permite buscar un servicio concreto. Este comando analiza todos los servicios accesibles para el servicio solicitado. Si uno de los dispositivos ofrece el servicio, el programa imprime el nombre completo del servicio devuelto por el dispositivo junto con una breve descripción. Al ejecutar sdptool sin ningún parámetro, se muestra una lista con todos los códigos de servicio posibles. 22.2.4 Aplicaciones gráficas En Konqueror, escriba la dirección URL bluetooth:/ para que se muestren los dispositivos Bluetooth locales y remotos. Haga doble clic en un dispositivo para ver una descripción de los servicios ofrecidos por el dispositivo. Si se desplaza con el ratón por los distintos servicios especificados, en la barra de estado del navegador se mostrará qué perfil está usando el servicio. Si hace clic en un servicio, se abrirá un cuadro de Comunicación inalámbrica 331 diálogo donde debe indicar la acción que desea realizar: guardar, usar el servicio (para ello deberá iniciarse una aplicación) o cancelar la acción. Marque una casilla de verificación si no desea que se muestre de nuevo el cuadro de diálogo y que se realice siempre la acción seleccionada. Todavía no es posible usar algunos servicios y para otros es necesario instalar paquetes adicionales. 22.2.5 Ejemplos En esta sección encontrará dos ejemplos de uso típicos de Bluetooth. El primero de ellos muestra cómo se puede establecer una conexión de red entre dos hosts usando Bluetooth. En la segunda, se describe una conexión entre un equipo y un teléfono móvil. Conexión de red entre dos hosts En el primer ejemplo, se establece una conexión de red entre los hosts H1 y H2. Estos dos hosts cuentan con direcciones de dispositivo Bluetooth baddr1 y baddr2 (estas direcciones se averiguan en los dos hosts mediante el comando hcitool dev, tal y como se describe arriba). Los hosts deben identificarse con las direcciones IP 192.168.1.3 (H1) y 192.168.1.4 (H2). La conexión Bluetooth se establece con la ayuda del daemon pand (daemon de red de área personal). Los siguientes comandos debe ejecutarlos el usuario Root. La descripción se centra en las acciones específicas de Bluetooth y no se proporciona una explicación detallada del comando de red ip. Escriba pand -s para iniciar el daemon pand en el host H1. Posteriormente, se puede establecer una conexión con el host H2 usando pand -c baddr1. Si especifica ip link show en uno de los hosts para mostrar las interfaces de red disponibles, el resultado debe contener una entrada como la siguiente: bnep0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000 link/ether 00:12:34:56:89:90 brd ff:ff:ff:ff:ff:ff En lugar de 00:12:34:56:89:90, la salida debe contener la dirección del dispositivo local baddr1 o baddr2. Ahora es necesario asignar a esta interfaz una dirección IP y, a continuación, activarla. En H1, esto se puede llevar a cabo con los dos comandos siguientes: ip addr add 192.168.1.3/24 dev bnep0 ip link set bnep0 up 332 En H2: ip addr add 192.168.1.4/24 dev bnep0 ip link set bnep0 up Ahora se puede acceder a H1 desde H2 usando la dirección IP 192.168.1.3. El comando ssh 192.168.1.4 le permite acceder a H2 desde H1, siempre que H2 ejecute un sshd, que esté activado por defecto en SUSE Linux. El comando ssh 192.168.1.4 también se puede ejecutar como un usuario normal. Transmisión de datos de un teléfono móvil a un equipo En este segundo ejemplo se va a mostrar cómo se transfiere una fotografía creada con un teléfono móvil con cámara digital incorporada a un equipo (sin incurrir en los costes adicionales de transmisión de un mensaje multimedia). Aunque cada teléfono móvil dispone de una estructura de menús diferente, el procedimiento será prácticamente el mismo en todos ellos. Si es necesario, consulte la documentación del teléfono. En este ejemplo se describe cómo se transfiere una fotografía desde un teléfono móvil Sony Ericsson a un portátil. Es necesario que el equipo disponga de servicio Obex-Push y que permita el acceso del teléfono móvil. En el primer paso, se activará el servicio en el equipo portátil. Esto se realiza mediante el daemon opd incluido en el paquete bluez-utils. Inicie el daemon con el siguiente comando: opd --mode OBEX --channel 10 --daemonize --path /tmp --sdp En este comando se utilizan dos parámetros importantes: --sdp registra el servicio sdpd y --path /tmp indica al programa dónde se deben guardar los datos recibidos (en este caso, en /tmp). Aquí también puede especificar otros directorios en los que tenga acceso de escritura. A continuación, el teléfono móvil debe ponerse en contacto con el equipo. Para ello, busque en el teléfono el menú Connect (Conexiones) y seleccione Bluetooth. Si es necesario, haga clic en Turn On (Activar) antes de seleccionar My devices (Mis dispositivos). Seleccione New device (Nuevo dispositivo) y deje que el teléfono busque el portátil. Si se detecta un dispositivo, su nombre aparecerá en la pantalla. Seleccione el dispositivo asociado al equipo portátil. Si se le solicita el número PIN, escriba el número especificado en /etc/bluetooth/pin. Ahora el teléfono y el portátil se reconocen y pueden intercambiar datos. Salga del menú actual y acceda al menú de imágenes. Seleccione la imagen que desee transferir y pulse More (Más). En el siguiente menú, pulse Send (Enviar) para seleccionar un modo de transmisión. Seleccione Via Bluetooth Comunicación inalámbrica 333 (Mediante Bluetooth). El equipo portátil debe aparecer como dispositivo de destino. Seleccione el portátil para iniciar la transmisión. La imagen se guarda entonces en el directorio especificado con el comando opd. Este procedimiento también puede emplearse para transmitir un archivo de música. 22.2.6 Resolución de problemas En caso de que se produzcan problemas de conexión, se recomienda comprobar los siguientes puntos. No obstante, tenga siempre presente que el problema puede residir en cualquiera de los extremos de la conexión o, en el peor de los casos, en ambos. Si es posible, reproduzca el problema con un dispositivo Bluetooth distinto para asegurarse de que el dispositivo no esté dañado. ¿Aparece el dispositivo local en la salida de hcitool dev? Si el dispositivo local no aparece en la salida de este comando, es posible que hcid no se haya iniciado o que el dispositivo no se reconozca como dispositivo Bluetooth. Esto puede deberse a distintas causas: el dispositivo está estropeado o falta el controlador adecuado. En el caso de equipos portátiles con Bluetooth incorporado, suele haber un interruptor para dispositivos inalámbricos, como WLAN y Bluetooth. Consulte la documentación del portátil para ver si dispone de un interruptor de este tipo. Reinicie el sistema Bluetooth con rcbluetooth restart y examine el archivo /var/log/messages para ver si hay mensajes de error. ¿Necesita el adaptador Bluetooth un archivo de firmware? Si es así, instale bluez-bluefw y reinicie el sistema Bluetooth con rcbluetooth restart. ¿Aparecen en la salida de hcitool inq otros dispositivos? Ejecute este comando varias veces. La conexión puede tener interferencias porque la banda de frecuencia de Bluetooth también la utilizan otros dispositivos. ¿Coinciden los números PIN? Compruebe si el PIN del equipo (que aparece en /etc/bluetooth/pin) coincide con el del dispositivo de destino. ¿Puede “ver” el dispositivo remoto el equipo? Intente iniciar la conexión desde otro dispositivo remoto y compruebe si el dispositivo detecta la presencia del equipo. 334 ¿Es posible establecer una conexión de red? Consulte la “Conexión de red entre dos hosts” (p. 332). La configuración descrita en la “Conexión de red entre dos hosts” (p. 332) puede que no funcione por distintas causas. Por ejemplo, puede ser que uno de los dos equipos no admita el protocolo. Pruebe con el comando ping 192.168.1.3 o con ping 192.168.1.4. Si esto funciona, compruebe si sshd está activo. Otra posible causa es que uno de los dos dispositivos disponga ya de unos ajustes de red que entren en conflicto con la dirección utilizada en el ejemplo 192.168.1.X. Si es el caso, pruebe con direcciones distintas, como 10.123.1.2 o 10.123.1.3. ¿Aparece el equipo portátil como dispositivo de destino? Consulte la “Transmisión de datos de un teléfono móvil a un equipo” (p. 333). ¿Detecta el teléfono móvil el servicio Obex-Push en el equipo portátil? En el menú My devices (Mis dispositivos), seleccione el dispositivo que corresponda y consulte la lista de servicios. Si en ella no aparece Obex-Push (incluso después de actualizar la lista), la causa del problema es opd en el portátil. ¿Está activo opd? ¿Tiene permiso de escritura en el directorio especificado? ¿Funciona a la inversa el ejemplo descrito en la “Transmisión de datos de un teléfono móvil a un equipo” (p. 333)? Si ha instalado el paquete obexftp, el comando obexftp -b dirección_dispositivo -B 10 -p imagen se puede usar en varios dispositivos. Algunos modelos de Siemens y Sony Ericsson se han probado y se ha confirmado que funcionan. Consulte la documentación de /usr/share/doc/ packages/obexftp. 22.2.7 Información adicional Puede encontrar una amplia lista de documentación relacionada con el funcionamiento y la configuración de Bluetooth en http://www.holtmann.org/linux/ bluetooth/. Otras fuentes de información: • Procedimientos oficiales del stack del protocolo Bluetooth integrado en el núcleo: http://bluez.sourceforge.net/howto/index.html • Conexión con dispositivo PDA PalmOS: http://www.cs.ucl.ac.uk/ staff/s.zachariadis/btpalmlinux.html Comunicación inalámbrica 335 22.3 Transmisión de datos mediante infrarrojos IrDA (Asociación de datos por infrarrojos, del inglés Infrared Data Association) es un estándar industrial para las comunicaciones inalámbricas que utiliza infrarrojos. Muchos de los equipos portátiles actuales incorporan un emisor/receptor que permite la comunicación con otros dispositivos, tales como impresoras, módems, LAN u otros portátiles. La velocidad de transferencia oscila entre 2400 bps y 4 Mbps. IrDA cuenta con dos modos de funcionamiento. El modo estándar SIR se comunica con el puerto infrarrojo a través de una interfaz en serie. Este modo funciona con casi todos los sistemas y cumple la mayoría de las exigencias. El modo más rápido FIR requiere un controlador especial para el chip IrDA, pero el modo FIR no admite todos los tipos de chips porque no existen controladores adecuados para todos ellos. En el BIOS del equipo hay que definir el modo IrDA que se desea usar. El BIOS también muestra qué interfaz en serie se utiliza en el modo SIR. Hay más información disponible sobre IrDA en los procedimientos de Werner Heuser en http://tuxmobil.org/Infrared-HOWTO/Infrared-HOWTO.html. Si lo desea, también puede consultar el sitio Web del proyecto IrDA de Linux en http://irda.sourceforge.net/. 22.3.1 Software Los módulos del núcleo necesarios se incluyen en el paquete del núcleo. El paquete irda contiene los programas de ayuda necesarios para que se pueda usar la interfaz infrarroja. Una vez instalado el paquete, podrá encontrar la documentación en /usr/ share/doc/packages/irda/README. 22.3.2 Configuración El servicio de sistema IrDA no se inicia automáticamente al arrancar el sistema, sino que debe activarse con el módulo IrDA de YaST. En este módulo sólo se puede modificar un ajuste: la interfaz en serie del dispositivo infrarrojo. La ventana de prueba está dividida en dos partes: una de ellas muestra la salida de irdadump, donde se registran todos los paquetes IrDA enviados y recibidos. En esta salida debe aparecer el nombre 336 del equipo y los nombres de todos los dispositivos infrarrojos que haya en el radio de acción. Puede ver un ejemplo de estos mensajes en la Sección 22.3.4, “Resolución de problemas” (p. 338). En la parte inferior de la pantalla se muestran todos los dispositivos con los que existe una conexión IrDA. IrDA requiere bastante energía, puesto que envía un paquete Discovery cada pocos segundos con el fin de detectar otros dispositivos periféricos. Así pues, si trabaja con batería, se recomienda arrancar IrDA sólo cuando lo vaya a utilizar. Utilice el comando rcirda start para activarlo y rcirda stop para desactivarlo. Al activar la interfaz se cargarán automáticamente todos los módulos del núcleo necesarios. La configuración manual se lleva a cabo en el archivo /etc/sysconfig/irda, que contiene sólo la variable IRDA_PORT que determina qué interfaz se va a usar en el modo SIR. 22.3.3 Uso Los datos se pueden enviar al archivo de dispositivo /dev/irlpt0 para su impresión. Este archivo se comporta igual que la interfaz normal con conexión /dev/lp0, con la salvedad de que los datos de impresión viajan mediante infrarrojos. A la hora de imprimir, asegúrese de que la impresora se encuentra en el área de visión de la interfaz infrarroja del equipo y de que la compatibilidad con infrarrojos está activada. Una impresora que trabaja con la interfaz infrarroja puede configurarse mediante el módulo de impresión de YaST. Como no se detecta automáticamente, deberá realizar la configuración de forma manual haciendo clic en Otro (no detectado). En el siguiente cuadro de diálogo, seleccione Impresora IrDA. Normalmente, irlpt0 es la conexión adecuada. Hay más información disponible acerca del funcionamiento de las impresoras en Linux en el Capítulo 31, Funcionamiento de la impresora (p. 507). El archivo de dispositivo /dev/ircomm0 permite comunicarse con otros hosts, con teléfonos móviles o con otros dispositivos similares. Con la aplicación wvdial se puede acceder a Internet mediante la interfaz infrarroja usando, por ejemplo, los teléfonos móviles Siemens S25 y Nokia 6210. También es posible sincronizar datos con el dispositivo Palm Pilot, siempre y cuando los ajustes del dispositivo de la aplicación correspondiente se hayan establecido en /dev/ircomm0. Sólo es posible comunicarse con dispositivos que sean compatibles con la impresora o con los protocolos IrCOMM. A los dispositivos compatibles con el protocolo IROBEX Comunicación inalámbrica 337 como, por ejemplo, 3Com Palm Pilot, se puede acceder con aplicaciones especiales como irobexpalm e irobexreceive. Para obtener más información, consulte los procedimientos relacionados con los infrarrojos en IR-HOWTO (http://tldp.org/ HOWTO/Infrared-HOWTO/). Los protocolos que admite el dispositivo aparecen entre corchetes después del nombre del dispositivo en la salida de irdadump. La compatibilidad con el protocolo IrLAN aún se encuentra “en desarrollo.” 22.3.4 Resolución de problemas Si los dispositivos conectados al puerto infrarrojo no responden, use el comando irdadump (como usuario Root) para comprobar si el equipo detecta la presencia del otro dispositivo. Un resultado parecido al del Ejemplo 22.1, “Salida de irdadump” (p. 338) aparece normalmente cuando hay una impresora Canon BJC-80 en el rango de visión del equipo: Ejemplo 22.1 Salida de irdadump 21:41:38.435239 21:41:38.525167 21:41:38.615159 21:41:38.705178 21:41:38.795198 21:41:38.885163 21:41:38.965133 xid:cmd xid:cmd xid:cmd xid:cmd xid:cmd xid:cmd xid:rsp 5b62bed5 > ffffffff S=6 s=0 (14) 5b62bed5 > ffffffff S=6 s=1 (14) 5b62bed5 > ffffffff S=6 s=2 (14) 5b62bed5 > ffffffff S=6 s=3 (14) 5b62bed5 > ffffffff S=6 s=4 (14) 5b62bed5 > ffffffff S=6 s=5 (14) 5b62bed5 < 6cac38dc S=6 s=5 BJC-80 hint=8804 [Printer IrCOMM ] (23) 21:41:38.975176 xid:cmd 5b62bed5 > ffffffff S=6 s=* earth hint=0500 [ PnP Computer ] (21) Si no aparece nada en pantalla o el otro dispositivo no responde, deberá comprobar la configuración de la interfaz. Asegúrese de que está usando la interfaz correcta. La interfaz infrarroja se encuentra a veces en /dev/ttyS2 o en /dev/ttyS3, y puede que se use otra interrupción que no sea IRQ 3. Estos ajustes se pueden comprobar y modificar en la configuración del BIOS de casi todos los equipos portátiles. Con una simple cámara de vídeo puede comprobar si el diodo LED se ilumina realmente; al contrario que los ojos humanos, la mayoría de las cámaras de vídeo pueden ver la luz infrarroja. 338 Parte VII. Administración 23 Seguridad en Linux El enmascaramiento (masquerading) y un cortafuegos (firewall) se ocupan de controlar el tráfico e intercambio de datos. La SSH (secure shell) permite al usuario realizar una conexión codificada con un ordenador remoto. La codificación de archivos o particiones enteras protegen sus datos en caso de que terceras personas accedan al sistema. Además de instrucciones de carácter puramente técnico, al final del capítulo encontrará información sobre aspectos de seguridad de redes Linux. 23.1 Enmascaramiento y cortafuegos Siempre que Linux se utiliza en un entorno de red, se pueden emplear las funciones del núcleo que permiten la manipulación de los paquetes de red para conservar una separación entre las áreas de redes interna y externa. La estructura de Linux netfilter proporciona los recursos para instalar un cortafuegos efectivo que gestione las diferentes redes de forma distinta. Con la ayuda de iptables —una estructura genérica de tabla para la definición de los conjuntos de tablas—, controle de forma exhaustiva los paquetes que se permite que pasen a una interfaz de red. Este filtro de paquetes se puede configurar de forma relativamente sencilla con la ayuda de SuSEfirewall2 y el módulo YaST correspondiente. 23.1.1 Filtrado de paquetes con iptables Los elementos netfilter e iptables son responsables del filtrado y de la manipulación de paquetes de redes, así como de la NAT (conversión de direcciones de red). Los criterios de filtrado y cualquier acción relacionada con ellos se almacenan en cadenas, que se Seguridad en Linux 341 agrupan una tras otra por paquetes de red individuales cada vez que se reciben. Las cadenas que se deben ordenar se almacenan en tablas. El comando iptables le permite alterar estas tablas y los conjuntos de reglas. El núcleo de Linux mantiene tres tablas, cada una de ellas destinada a una categoría determinada de funciones del filtro de paquetes: filter Esta tabla incluye la totalidad de las reglas de filtros, debido a que implementa el mecanismo filtrado de paquetes en sentido estricto, lo que determina, por ejemplo, si se permiten los paquetes (ACCEPT) o si se descartan (DROP). nat Esta tabla define todos los cambios realizados en las direcciones de origen y destino de los paquetes. Haciendo uso de estas funciones podrá también recurrir al enmascaramiento, que es un caso especial de NAT que se emplea para enlazar una red privada a Internet. mangle Las reglas contenidas en esta tabla permiten manipular los valores almacenados en los encabezados IP (como, por ejemplo, el tipo de servicio). 342 Figura 23.1 iptables: posibles vías del paquete ENCAMINAMIENTO PREVIO paquete entrante Eliminar NAT ENTRADA Eliminar Encaminamiento Filtrar ENVÍO Procesos Eliminar en el sistema local Filtrar SALIDA Encaminamiento Eliminar NAT Filtrar ENCAMINAMIENTO POSTERIOR Eliminar NAT paquete saliente Estas tablas contienen varias cadenas predefinidas para la coincidencia de paquetes: Seguridad en Linux 343 PREROUTING Esta cadena se aplica a los paquetes entrantes. INPUT Esta cadena se aplica a los paquetes destinados a los procesos internos del sistema. FORWARD Esta cadena se aplica solamente a los paquetes que se enrutan a través del sistema. OUTPUT Esta cadena se aplica a los paquetes originados en el sistema. POSTROUTING Esta cadena se aplica a todos los paquetes salientes. La Figura 23.1, “iptables: posibles vías del paquete” (p. 343) ilustra las vías por las que puede desplazarse un paquete de red en un sistema dado. Por razones de simplicidad, las ilustración muestra las tablas como partes de las cadenas, pero en realidad estas cadenas se sustentan en las propias tablas. La más sencilla de las situaciones se produce cuando un paquete de entrada destinado al sistema llega a la interfaz eth0. En primer lugar, el paquete se deriva a la cadena PREROUTING de la tabla mangle y, a continuación, a la cadena PREROUTING de la tabla nat. El siguiente paso, referido al enrutamiento del paquete, establece que el destino real del paquete es un proceso del sistema. Después de pasar por las cadenas INPUT de las tablas mangle y filter, el paquete alcanza finalmente su objetivo, debido a que las reglas de la tabla filter son coincidentes. 23.1.2 Nociones básicas sobre el enmascaramiento El enmascaramiento es la forma específica de NAT (conversión de direcciones de red) de Linux Se puede emplear para conectar una LAN pequeña (donde los hosts utilizan direcciones IP de rango privado; a este respecto, consulte la Sección 38.1.2, “Máscaras de red y encaminamiento” (p. 607)) a Internet (donde se emplean direcciones IP oficiales). Para que los hosts de la LAN puedan conectarse a Internet, sus direcciones privadas se traducen en direcciones oficiales. Esta operación se realiza en el router, que actúa de gateway entre la LAN e Internet. El principio subyacente es muy sencillo: El router tiene más de una interfaz de red, normalmente una tarjeta de red y una interfaz que lo 344 conecta a Internet. Mientras que esta última enlaza el router con el exterior, una o varias de las demás lo conectan a los hosts de LAN. Con los hosts de la red local conectados a la tarjeta de red (como por ejemplo eth0) del router, es posible enviar cualquier paquete no destinado a la red local a su gateway o router por defecto. IMPORTANTE: Utilización de la máscara de red adecuada Cuando configure su red, asegúrese de que tanto la dirección de difusión como la máscara de red son las mismas para todos los hosts locales. Si no toma esta precaución, los paquetes no se enrutarán adecuadamente. Como se ha mencionado, cuando uno de los hosts de LAN envía un paquete destinado a una dirección de Internet, éste se dirige al router por defecto. Sin embargo, el router debe configurarse antes de poder reenviar los paquetes. Por razones de seguridad, SUSE Linux no habilita esta función en una instalación por defecto. Para habilitarla, fije la variable IP_FORWARD en el archivo /etc/sysconfig/sysctl como IP_FORWARD=yes. El host de destino de la conexión puede tener constancia de la existencia de su router, pero no dispone de información acerca del host que se encuentra situado en la red interna y que es donde se originaron los paquetes. Por esta razón esta técnica se denomina enmascaramiento. A consecuencia de la conversión de direcciones, el router es el primer destino de todos los paquetes de respuesta. El router debe identificar estos paquetes entrantes y traducir sus direcciones de destino, de forma tal que los paquetes se reenvíen al host adecuado de la red local. Gracias al enrutamiento del tráfico entrante dependiente de la tabla de enmascaramiento, no existe ninguna manera de abrir una conexión con un host interno desde el exterior. Para una conexión de este tipo no habría ninguna entrada en la tabla. Además, a cada conexión que se encuentre establecida se le asigna una entrada de estado en la tabla, por lo que la entrada no podrá emplear ninguna otra conexión. Como consecuencia, es posible que se produzcan problemas con un número determinado de protocolos de aplicación, tales como ICQ, cucme, IRC (DCC, CTCP) y FTP (en modo PORT). Netscape, el programa FTP y muchos otros programas utilizan el modo PASV. Este modo pasivo origina muchos menos problemas en lo referente al enmascaramiento y filtrado de paquetes. Seguridad en Linux 345 23.1.3 Nociones básicas sobre el empleo de cortafuegos El término cortafuegos es probablemente el que se emplea con mayor frecuencia para describir un mecanismo que proporciona y gestiona un enlace entre redes al tiempo que controla también el flujo de datos entre ellos. Estrictamente hablando, el mecanismo que se describe en esta sección se denomina filtro de paquetes. El filtro de paquetes regula el flujo de datos de acuerdo con determinados criterios, tales como protocolos, puertos y direcciones IP. De esta manera, es posible bloquear paquetes que, de acuerdo con sus direcciones de origen, se pretende que no lleguen a su red. Para permitir el acceso público a, por ejemplo, su servidor Web, abra de forma explícita el puerto correspondiente. Sin embargo, el filtro de paquetes no examina el contenido de los paquetes provenientes de direcciones legítimas, como por ejemplo aquéllos que se envían a su servidor Web. Por ejemplo, si los paquetes entrantes están dirigidos a modificar un programa CGI de su servidor Web, el filtro de paquetes permitirá su acceso. Un mecanismo más efectivo pero también más complejo es la combinación de distintos tipos de sistemas, como por ejemplo la interacción de un filtro de paquetes con un gateway o alterno de aplicación. En este caso, el filtro de paquetes rechaza cualquier paquete que tenga como objetivo la inhabilitación de puertos. Únicamente se aceptan los paquetes dirigidos a la gateway de aplicación. Esta gateway o este alterno simula ser el cliente real del servidor. En cierto modo, dicho alterno puede considerarse un host de enmascaramiento en el nivel de protocolo empleado por la aplicación. Un ejemplo para un alterno de este tipo es Squid, un servidor alterno HTTP. Para utilizar Squid, el navegador se debe configurar para que se pueda comunicar a través del alterno. Cualquier página HTTP que se solicite se sirve a partir de la caché alterna; en cuanto a las páginas no encontradas en la caché, éstas las recupera el alterno de Internet. En otro orden de cosas, el paquete SUSE Proxy-Suite (proxy-suite) proporciona un alterno para el protocolo. La siguiente sección se centra en el filtro de paquetes que se proporciona con SUSE Linux. Para obtener más información sobre el filtrado de paquetes y el empleo de cortafuegos, consulte el documento Firewall HOWTO, que se incluye en el paquete howto. Si este paquete se encuentra ya instalado, lea el documento HOWTO mediante la opción less /usr/share/doc/howto/en/txt/Firewall-HOWTO.gz. 346 23.1.4 SuSEfirewall2 SuSEfirewall2 es un guión que lee las variables establecidas en /etc/sysconfig/ SuSEfirewall2 para generar un juego de reglas de iptables. Se definen tres zonas de seguridad, aunque solamente se consideran la primera y la segunda en el siguiente ejemplo de configuración: Zona externa Debido a que no existe ninguna manera de controlar lo que sucede en la red externa, el host necesita estar protegido de dicha red. En la mayoría de los casos, la red externa es Internet, pero también podría tratarse de otra red insegura, como por ejemplo una red WLAN. Zona interna Hace referencia a la red privada, en la mayoría de los casos una red LAN. Si los hosts de esta red utilizan direcciones IP de rango privado (a este respecto, consulte la Sección 38.1.2, “Máscaras de red y encaminamiento” (p. 607)), habilite la conversión de direcciones de red (NAT), de forma tal que los hosts de la red interna puedan acceder a la red externa. Zona desmilitarizada (DMZ) Mientras que se puede llegar a los hosts que se ubican en esta zona tanto desde la red externa como interna, dichos hosts no pueden acceder a la red interna. Esta configuración puede emplearse para incluir una línea adicional de defensa ante la red interna, debido a que los sistemas DMZ están aislados de la red interna. Todo tipo de tráfico de red no permitido de forma expresa por la regla de filtrado se suprime por la acción de las iptables. Por lo tanto, cada una de las interfaces con tráfico de entrada deben ubicarse en una de las tres zonas. Defina los servicios o protocolos permitidos para cada una de las zonas. La regla que se establezca se aplica solamente a los paquetes procedentes de hosts remotos. Los paquetes generados en la zona local no son capturados por el cortafuegos. La configuración se puede realizar con YaST (a este respecto, consulte la “Configuración con YaST” (p. 348)). También se puede llevar a cabo de forma manual en el archivo /etc/sysconfig/SuSEfirewall2, que se encuentra convenientemente comentado. En otro orden de cosas, se encuentra disponible a modo de ejemplo una serie de situaciones en /usr/share/doc/packages/SuSEfirewall2/EXAMPLES. Seguridad en Linux 347 Configuración con YaST IMPORTANTE: Configuración automática del cortafuegos Después de la instalación, YaST iniciará de forma automática un cortafuegos en todas las interfaces configuradas. Si se configura y se activa un servidor en el sistema, YaST puede modificar la configuración del cortafuegos que se ha generado automáticamente mediante las opciones Open Ports on Selected Interface in Firewall (Abrir puertos en la interfaz seleccionada del cortafuegos) o Open Ports on Firewall (Abrir puertos en el cortafuegos) de los módulos de configuración del servidor. Algunos cuadros de diálogo del módulo del servidor incluyen un botón denominado Detalles del cortafuegos que permite activar servicios y puertos adicionales. El módulo de configuración del cortafuegos de YaST se puede utilizar para activar, desactivar o volver a configurar el cortafuegos. Se puede acceder a los cuadros de diálogo de YaST para la configuración gráfica a través del Centro de Control de YaST. Seleccione Seguridad y usuarios → Cortafuegos. La configuración se divide en siete secciones a las que se puede acceder directamente desde la estructura de árbol que se encuentra situada en la parte izquierda del cuadro de diálogo. Inicio Defina el comportamiento de inicio en este cuadro de diálogo. Cuando se trate de una instalación por defecto, SuSEfirewall2 se iniciará automáticamente. También puede iniciar aquí tanto el inicio como la detención del cortafuegos. Para implementar la nueva configuración en un cortafuegos que se esté ejecutando, utilice la opción Guardar la configuración y reiniciar cortafuegos. 348 Figura 23.2 Configuración de cortafuegos de YaST Interfaces En este cuadro de diálogo se muestra una lista con todas las interfaces de red conocidas. Para eliminar una interfaz de una zona, seleccione la interfaz y, a continuación, pulse Cambiar y seleccione Ninguna zona asignada. Para añadir una interfaz a una zona, seleccione la interfaz, pulse Cambiar y, a continuación, seleccione cualquiera de las zonas disponibles. También puede crear una interfaz especial con sus propios ajustes utilizando para ello la opción Personalizar. Servicios autorizados Esta opción es necesaria para poder ofrecer servicios desde su sistema a una zona que se encuentre protegida. Por defecto, el sistema se encuentra protegido únicamente de zonas externas. Autorice expresamente los servicios que deberían estar disponibles para los hosts externos. Active los servicios después de seleccionar la zona deseada en Allowed Services for Selected Zone (Servicios autorizados para zona seleccionada). Enmascaramiento El enmascaramiento oculta su red interna a las redes externas, como por ejemplo Internet, al tiempo que permite que los hosts de la red interna puedan acceder a la red externa de forma transparente. Las solicitudes enviadas de la red externa a la red interna se bloquean, mientras que las solicitudes enviadas por la red interna parecen ser enviadas por el servidor de enmascaramiento cuando éstas se ven externa- Seguridad en Linux 349 mente. Si los servicios especiales de una máquina interna necesitan estar disponibles para la red externa, añada reglas especiales de redirección para el servicio. Broadcast En este cuadro de diálogo, configure los puertos UDP que permiten difusiones. Añada los números o servicios de puertos necesarios a la zona adecuada, separados entre sí por espacios. Consulte igualmente el archivo /etc/services. Es aquí, por otra parte, donde puede habilitarse el registro de las difusiones no aceptadas. Esto puede originar problemas, puesto que los hosts de Windows utilizan difusiones para saber obtener información unos de otros y, de esa forma, generan paquetes que no son aceptados. Soporte IPsec Determine si el servicio IPsec deberá estar disponible para la red externa en este cuadro de diálogo. Configure qué paquetes son confiables en Detalles. Nivel de registro Son dos las reglas existentes para el registro: paquetes aceptados y no aceptados. Los paquetes no aceptados son DROPPED (SUPRIMIDOS) o REJECTED (RECHAZADOS). Seleccione para ambos una de las siguientes opciones: Registrar todos, Log Critical (Registrar críticos) o No registrar ninguno. Una vez que haya concluido la configuración del cortafuegos, salga de este cuadro de diálogo utilizando la opción Siguiente. Se abrirá a continuación un resumen de la configuración de su cortafuegos orientado a las zonas. En dicho resumen, compruebe todos los ajustes. Todos los servicios, puertos y protocolos que se han autorizado se indican en este resumen. Para modificar la configuración, utilice la opción Atrás. Pulse Aceptar para guardar su configuración. Configuración manual Los párrafos que aparecen a continuación ofrecen instrucciones detalladas para lograr una configuración adecuada. Cada elemento de la configuración se marca siempre y cuando sea relevante para los cortafuegos o el enmascaramiento. Los aspectos relacionados con la DMZ (zona desmilitarizada), de acuerdo con lo mencionado en el archivo de configuración, no se cubren en esta sección. Estos aspectos son de aplicación únicamente en infraestructuras de redes más complejas localizadas en organizaciones de mayor tamaño (redes corporativas), que precisan una configuración ampliada y un conocimiento exhaustivo sobre el tema. 350 En primer lugar, emplee los Servicios del sistema (niveles de ejecución) del módulo YaST para habilitar SuSEfirewall2 en su nivel de ejecución (3 ó 5 con mayor probabilidad). Los enlaces simbólicos para los guiones de SuSEfirewall2_* se establecen en los directorios /etc/init.d/rc?.d/. FW_DEV_EXT (cortafuegos, enmascaramiento) Es el dispositivo que está conectado a Internet. Para una conexión por módem, escriba ppp0. Para una conexión RDSI, utilice ippp0. Las conexiones DSL, por su parte, utilizan dsl0. Especifique auto para utilizar la interfaz que se corresponda con la ruta por defecto. FW_DEV_INT (cortafuegos, enmascaramiento) Es el dispositivo conectado a la red interna privada (como por ejemplo eth0). Deje esta opción en blanco si no existe una red interna y si el cortafuegos protege solamente el host en el que se ejecuta el cortafuegos. FW_ROUTE (cortafuegos, enmascaramiento) Si precisa la función de enmascaramiento, fije este valor en yes. Sus hosts internos no serán visibles desde el exterior, debido a que sus direcciones de redes privadas (como, por ejemplo, 192.168.x.x) no son tenidas en cuenta por los routers de Internet. Para un cortafuegos sin enmascaramiento, únicamente fije este valor en yes si quiere permitir el acceso a la red interna. Sus hosts internos necesitan utilizar únicamente IPs registradas en este caso. Por norma general, sin embargo, se recomienda que no permita el acceso a su red interna desde el exterior. FW_MASQUERADE (enmascaramiento) Establezca este valor en yes si precisa la función de enmascaramiento. Esto proporciona a los hosts internos una conexión prácticamente directa a Internet. Es más seguro contar con un servidor alterno entre los hosts de la red interna e Internet. El enmascaramiento no es necesario para aquellos servicios proporcionados por servidores alternos. FW_MASQ_NETS (enmascaramiento) Especifique los hosts o las redes para las que se realizará el enmascaramiento; no olvide dejar un espacio entre cada una de las entradas individuales. Por ejemplo: FW_MASQ_NETS="192.168.0.0/24 192.168.10.1" Seguridad en Linux 351 FW_PROTECT_FROM_INT (cortafuegos) Establezca este valor en yes para proteger el host del cortafuegos frente a ataques originados en la red interna. Los servicios estarán disponibles para la red interna únicamente si se han habilitado expresamente. A este respecto, consulte también FW_SERVICES_INT_TCP y FW_SERVICES_INT_UDP. FW_SERVICES_EXT_TCP (cortafuegos) Introduzca los puertos TCP que deberían estar disponibles. Deje esta opción en blanco en aquellas estaciones de trabajo normales de uso doméstico que no se emplean para ofrecer servicios. FW_SERVICES_EXT_UDP (cortafuegos) Deje esta opción en blanco excepto si se ejecuta un servicio UDP y quiere que se pueda acceder a él desde el exterior. Los servicios que emplean UDP incluyen, entre otros, a los servidores DNS, IPSec, TFTP y DHCP. En ese caso, escriba los puertos UDP que se van a emplear. FW_SERVICES_INT_TCP (cortafuegos) Defina con esta variable los servicios disponibles para la red interna. La notación es la misma que la empleada en FW_SERVICES_EXT_TCP, pero en este caso los ajustes se aplican a la red interna. La variable solamente necesita establecerse si FW_PROTECT_FROM_INT se ha fijado en el valor yes. FW_SERVICES_INT_UDP (cortafuegos) Consulte FW_SERVICES_INT_TCP. Después de haber configurado el cortafuegos, compruebe la configuración del dispositivo. Los conjuntos de reglas del cortafuegos se crean escribiendo el comando SuSEfirewall2 start como usuario root. A continuación, utilice por ejemplo el comando telnet desde un host externo para comprobar si se ha denegado la conexión. Después de esta operación, consulte /var/log/messages, donde debería aparecer un mensaje como el que se muestra a continuación: Mar 15 13:21:38 linux kernel: SFW2-INext-DROP-DEFLT IN=eth0 OUT= MAC=00:80:c8:94:c3:e7:00:a0:c9:4d:27:56:08:00 SRC=192.168.10.0 DST=192.168.10.1 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=15330 DF PROTO=TCP SPT=48091 DPT=23 WINDOW=5840 RES=0x00 SYN URGP=0 OPT (020405B40402080A061AFEBC0000000001030300) Otros paquetes que le permitirán probar la configuración del cortafuegos son nmap o nessus. Después de instalar los paquetes respectivos, la documentación de nmap se encuentra en /usr/share/doc/packages/nmap, mientras que la documentación 352 de nessus se localiza en el directorio /usr/share/doc/packages/ nessus-core. 23.1.5 Información adicional La información más actualizada y la documentación adicional acerca del paquete SuSEfirewall2 se encuentra en /usr/share/doc/packages/ SuSEfirewall2. La página Web del proyecto netfilter y iptables, http://www .netfilter.org, ofrece un amplio catálogo de documentos disponibles en diversas lenguas. 23.2 SSH: trabajar de forma segura en red El trabajo en red requiere en ocasiones el acceso a sistemas remotos. En estos casos, el usuario suele tener que autenticarse con su nombre de usuario y contraseña. Si estos datos se envían en texto plano y sin codificar, cabe la posibilidad de que sean interceptados por terceros que podrían utilizarlos en su propio interés para, por ejemplo, usar la conexión del usuario sin su conocimiento. Además de poder ver todos los datos privados del usuario, el atacante podría intentar obtener derechos de administrador sobre el sistema o también utilizar la conexión recién adquirida para desde allí atacar a otros sistemas. Antiguamente se utilizaba telnet para establecer conexiones entre dos ordenadores remotos. No obstante, este método no utilizaba ningún mecanismo de codificación o seguridad para prevenir “filtraciones”. Las conexiones de copia o FTP entre ordenadores remotos tampoco ofrecen ninguna protección. El software SSH sí ofrece la protección necesaria. La autenticación completa, compuesta generalmente por nombre de usuario y contraseña, así como las comunicaciones se realizan aquí de forma codificada. Si bien es cierto que aún así es posible que se intercepten los datos transmitidos, estos no podrían ser leídos sin la clave porque están codificados. De esta manera es posible comunicarse de forma segura a través de redes inseguras como Internet. SUSE Linux incluye con este fin el paquete OpenSSH. Seguridad en Linux 353 23.2.1 El paquete OpenSSH En SUSE Linux, el paquete OpenSSH está incluido en la instalación estándar, por lo que dispondrá de los programas ssh, scp y sftp como alternativa a telnet, rlogin, rsh, rcp y ftp. En la configuración estándar, el acceso a un sistema SUSE Linux únicamente es posible con las herramientas OpenSSH y sólo en el caso de que el cortafuegos permita el acceso. 23.2.2 El programa ssh El programa ssh permite conectarse a un sistema de forma remota y trabajar con él interactivamente. Por este motivo constituye un sustituto tanto de telnet como rlogin. Por razones de parentesco con rlogin, el enlace simbólico adicional de nombre slogin apunta igualmente a ssh. Por ejemplo, con el comando ssh sun podremos registrarnos en el ordenador sun. Después de introducir el comando, se nos preguntará la contraseña en el sistema sun. Después de haber conseguido una autenticación válida se podrá trabajar tanto desde la línea de comandos, por ejemplo con el comando ls, como de forma interactiva, por ejemplo con YaST. Si quiere diferenciar el nombre de usuario local del usuario en el sistema remoto, hágalo por ejemplo con ssh -l juan sun o bien con ssh juan@sun. Además, ssh nos ofrece la posibilidad ya conocida en rsh de ejecutar comandos en un sistema remoto. En el siguiente ejemplo se ejecutará el comando uptime en el ordenador sun y se creará un directorio con el nombre tmp. Los resultados del programa se visualizarán en la terminal local del ordenador earth. ssh sol "uptime; mkdir tmp" tux@sol's password: 1:21pm up 2:17, 9 users, load average: 0.15, 0.04, 0.02 Las comillas son en este caso necesarias para unir los comandos. Sólo de esta forma se ejecutará también el segundo comando en el ordenador sun. 23.2.3 Copia segura: scp Con la ayuda de scp se pueden copiar archivos a un ordenador remoto. scp es un sustituto seguro y codificado de rcp. Por ejemplo con el comando: scp MiCarta.tex 354 sun: se copiará el archivo MiCarta.tex del ordenador earth al ordenador sun. En el caso de que los nombres de usuarios en earth y sun sean diferentes, en scp habrá que recurrir a escribir nombre_usuario@nombre_ordenador. No existe la opción -l. Después de consultar la contraseña, scp comienza con la transmisión de datos e indica el avance mediante una barra formada por estrellas que crece de izquierda a derecha. Además se muestra en el lado derecho el tiempo restante para completar la transmisión (estimated time of arrival). La opción -q suprime todas las indicaciones en pantalla. scp ofrece también la posibilidad de transferir de forma recursiva todo un directorio. El comando: scp -r src/ sun:backup/ copia el contenido completo del directorio src/, incluyendo todos los subdirectorios, en el directorio backup/ en el ordenador sun. If el subdirectorio no existe todavía, se creará automáticamente. Mediante la opción -p, scp mantiene fecha y hora de los archivos que se copian. Con -C se realiza una transferencia comprimida. Como ventaja el volumen de datos disminuye, pero en cambio el esfuerzo de cálculo es más elevado. Dada la potencia de cálculo de hoy en día, se puede despreciar este efecto negativo. 23.2.4 Transmisión segura de archivos: sftp Otra posibilidad para la transferencia segura de archivos es sftp, que ofrece muchos de los comandos conocidos de ftp una vez que la conexión se ha establecido. En comparación con scp, resulta más adecuado para transferir archivos cuyos nombres no se conocen. 23.2.5 El daemon SSH (sshd) del lado del servidor Para que se puedan utilizar los programas cliente ssh y scp, en segundo plano se debe ejecutar un servidor, el daemon SSH, que espera las conexiones en el puerto TCP/IP Port 22. Al iniciarse por primera vez, el daemon genera tres pares de claves que constan de una parte pública y una privada. Por este motivo este mecanismo se considera un proceso basado en “public-key”. Para garantizar la comunicación segura, sólo el administrador de sistema debe tener el derecho de acceder a las claves privadas. Por eso en la configuración predeterminada los derechos sobre los archivos se configuran de forma correspondiente. El daemon de SSH utiliza localmente las claves privadas Seguridad en Linux 355 que no deben ser comunicadas a nadie. En cambio, las partes públicas de las claves (se reconocen por ejemplo por la extensión .pub) se comunican a todos los interlocutores en el proceso de comunicación y son por tanto legibles para todos los usuarios. El cliente SSH inicia la conexión. El daemon SSH que se encontraba en espera y el cliente que pide una conexión intercambian datos de identificación para utilizar las mismas versiones de protocolo y para evitar la conexión a un puerto equivocado. En realidad, el que responde es un “proceso hijo” del daemon SSH inicial, por lo que es posible mantener al mismo tiempo muchas conexiones SSH. Para la comunicación entre el cliente y el servidor SSH, OpenSSH soporta las versiones 1 y 2 del protocolo SSH. Al instalar SUSE Linux por primera vez se utiliza automáticamente la versión actual del protocolo, 2. En cambio, si prefiere conservar SSH 1 después de actualizar, siga las instrucciones descritas en /usr/share/doc/packages/ openssh/README.SuSE. Allí también se describe cómo transformar en pocos pasos un entorno SSH 1 en un entorno SSH 2 operativo. Con el protocolo SSH versión 1, el servidor envía su clave pública host key y una server key creada el daemon SSH nuevamente cada hora. El cliente SSH se sirve de estas dos claves para codificar (encrypt) una clave que varía de sesión en sesión (session key) y que se envía al servidor SSH. Además indica al servidor el tipo de cifrado (cipher). El protocolo SSH versión 2 no incluye la server key. En su lugar utiliza un algoritmo de Diffie-Hellman para intercambiar las claves. Para descifrar la clave de sesión es imprescindible disponer de las claves privadas de host y server, las cuales no se pueden obtener por medio de las partes públicas. Por este motivo, sólo el daemon SSH contactado es capaz de descifrar la clave de sesión mediante su clave privada (ver man /usr/share/doc/packages/openssh/RFC.nroff). Es posible seguir esta fase de establecimiento de conexión mediante la opción de búsqueda de errores del programa cliente de SSH (opción -v). Por defecto se utiliza el protocolo SSH versión 2, pero sin embargo se puede forzar el protocolo SSH versión 1 con el parámetro -1. Los ataques del tipo “man-in-the-middle” se evitan porque el cliente guarda en ~/.ssh/known_hosts todas las claves públicas del host después de haber tomado el primer contacto. Los servidores SSH que tratan de camuflarse con el nombre y la IP de otro ordenador se descubren con una alerta. Se delatan ya sea por una clave de host diferente a la que está guardada en ~/.ssh/ 356 known_hosts o bien porque no pueden descifrar la clave de sesión por falta de la clave privada correcta. Se recomienda guardar de forma externa las claves públicas y privadas del directorio /etc/ssh/ y hacer una copia de seguridad de las mismas. Así es posible averiguar modificaciones de las claves y restaurarlas después de una nueva instalación. Esta restauración de las claves evita sobre todo que los usuarios se preocupen por el mensaje de advertencia. Una vez comprobado que se trata del servidor SSH correcto a pesar del aviso, es necesario borrar de ~/.ssh/known_hosts la entrada para el sistema. 23.2.6 Mecanismos de autenticación de SSH Ahora se realiza la verdadera autenticación en su forma más simple mediante la indicación de nombre de usuario y contraseña tal como se ha mencionado en los ejemplos anteriores. El objetivo de SSH era proporcionar un nuevo software seguro pero al mismo tiempo fácil de usar. Debido a que va a sustituir a rsh y rlogin, SSH también ha de ofrecer un método sencillo de autenticación que pueda emplearse fácilmente en el día a día. SSH realiza la autenticación mediante otro juego de claves creado a petición del usuario. Para ello el paquete SSH dispone de la utilidad ssh-keygen. Después de introducir ssh-keygen -t rsa o ssh-keygen -t dsa, transcurre un tiempo hasta que el juego de claves está creado. A continuación el programa consulta el nombre de archivo para guardar las claves. Después confirmar la ubicación sugerida se pide una contraseña. Aunque el programa admite una contraseña vacía, es mejor introducir un texto de 10 a 30 caracteres. Es preferible no utilizar palabras o frases demasiado sencillas o cortas. Después de introducirlo, el programa pide una confirmación. El programa indica entonces el lugar donde se guardan la clave privada y la pública; estos podrían ser, por ejemplo, los archivos id_rsa y id_rsa.pub. El comando ssh-keygen -p -t rsa o ssh-keygen -p -t dsa sirve para cambiar la contraseña antigua. La parte pública de la clave (en nuestro ejemplo id_rsa .pub) se ha de copiar al ordenador remoto, guardándola allí como ~/.ssh/ authorized_keys. En el siguiente intento de conectar, SSH pregunta por la contraseña. Si esto no funciona, compruebe que la ubicación y el contenido de los archivos anteriormente mencionados son correctos. A la larga este procedimiento es más complicado que la introducción de una contraseña. Por eso el paquete SSH incorpora otra utilidad llamada ssh-agent que mantiene claves Seguridad en Linux 357 privadas durante una sesión en entorno X. Para realizarlo, todo el entorno X Windows se inicia como un proceso hijo de ssh-agent. Con este fin, el método más sencillo consiste en editar el archivo .xsession, asignando a la variable usessh el valor yes y después entrar al sistema con un gestor como por ejemplo KDM o XDM. Otra posibilidad es la de iniciar el entorno gráfico mediante ssh-agent startx. Ahora se puede utilizar ssh o scp como es habitual y si ha distribuido su clave pública como antes, no se le pedirá ninguna contraseña. Al salir del ordenador es importante terminar la sesión X o bloquearla mediante un protector de pantalla con contraseña (por ejemplo xlock). Todas las modificaciones importantes realizadas con la implantación del protocolo SSH versión 2 también se encuentran documentadas en el archivo /usr/share/doc/ packages/openssh/README.SuSE. 23.2.7 X, autenticación y mecanismos de reenvío Aparte de las mejoras en cuanto a la seguridad del sistema, ssh facilita también el trabajo con aplicaciones de X-Windows remotas. Al utilizar ssh con la opción -X, la variable DISPLAY en el ordenador remoto se configura automáticamente y todas las ventanas del X-Windows se mandan a través de la conexión ssh existente al ordenador cliente. Esta sencilla función evita la captura de datos por parte de terceros en caso de aplicaciones-X remotas con visualización local. La opción -A traspasa el mecanismo de autenticación de ssh-agent al siguiente ordenador. Así se puede acceder de un ordenador a otro sin necesidad de introducir una contraseña. Es algo que sólo funciona si la clave pública se encuentra correctamente en todos los ordenadores destino. Por razones de seguridad, los dos mecanismos están desactivados en la configuración predeterminada. No obstante, se pueden activar de forma permanente en el archivo de configuración global /etc/ssh/ssh_config o en el personal de cada usuario ~/ .ssh/config. También se puede utilizar ssh para el reenvío de cualquier conexión TCP/IP. Como ejemplo se muestra el reenvío del puerto SMTP y POP3: ssh -L 25:sun:25 earth 358 En este caso, cualquier conexión dirigida al puerto 25 (SMTP) de earth se reenvía al puerto SMTP de sun a través del canal codificado. Es un procedimiento especialmente útil para usuarios de servidores SMTP que no disponen de SMTP-AUTH o de prestaciones POP-before-SMTP. Así, el servidor de correo “en casa” puede entregar el correo a cualquier lugar con conexión a Internet. De forma análoga, el siguiente comando reenvía todas las consultas hechas al puerto 110 (POP3) en earth al puerto POP3 de sun: ssh -L 110:sun:110 earth Ambos ejemplos exigen la introducción de los comandos como superusuario root, ya que las conexiones se realizan con puertos locales privilegiados. Con la conexión SSH establecida, el correo se envía y se recibe como siempre en modo de usuario normal. En tal caso hay que configurar como Host SMTP y POP3 la máquina local localhost. Puede conseguir información adicional en la páginas de manual de los distintos programas y en los archivos que se encuentran dentro del directorio /usr/share/doc/ packages/openssh. 23.3 Cifrado de particiones y archivos Todo usuario tiene algún dato confidencial que no debería estar al alcance de terceros. Cuantas más conexiones y más movilidad tenga un equipo, con más cuidado deben tratarse los datos. Se recomienda el cifrado de archivos o de particiones enteras si hay terceros que puedan obtener acceso físico o a través de la red. AVISO: El cifrado de medios ofrece una protección limitada Tenga en cuenta que mediante los métodos descritos en esta sección no es posible proteger un equipo en funcionamiento. Una vez montado un medio cifrado, cualquier usuario con los permisos correspondientes tiene acceso a él. El cifrado de medios es útil si el equipo se pierde o lo roban y usuarios sin autorización intentan leer datos confidenciales. A continuación aparecen algunas situaciones posibles de uso. Seguridad en Linux 359 Equipos portátiles Si se viaja con un equipo portátil, es buena idea cifrar las particiones del disco duro que contengan datos confidenciales. Si pierde el equipo o se lo roban, nadie podrá acceder a los datos que se encuentren en un sistema de archivos cifrado o en un archivo independiente cifrado. Medios extraíbles Las unidades flash USB o los discos duros externos son tan susceptibles de robo como los equipos portátiles. Un sistema de archivos cifrado ofrece protección frente al acceso de terceros. Estaciones de trabajo En entornos empresariales en los que muchas personas tienen acceso a los equipos, puede resultar útil cifrar particiones o archivos independientes. 23.3.1 Configuración de un sistema de archivos cifrado con YaST YaST ofrece cifrado de archivos y particiones durante la instalación así como en sistemas ya instalados. Los archivos cifrados se pueden crear en cualquier momento porque se integran perfectamente en la distribución de particiones. Para cifrar una partición entera, dedique una partición a cifrado en la distribución de particiones. La propuesta de distribución de particiones estándar que YaST sugiere por defecto no incluye una partición cifrada. Añádala manualmente en el cuadro de diálogo de particionamiento. Creación de una partición cifrada durante la instalación AVISO: Introducción de contraseñas Cuando establezca contraseñas para particiones cifradas, tenga en cuenta los avisos de seguridad y memorícelas bien. Sin la contraseña no se puede acceder a los datos cifrados ni restaurarlos. El cuadro de diálogo de particionamiento avanzado de YaST, que se describe en la Sección “Particionamiento” (Capítulo 3, Configuración del sistema con YaST, ↑Inicio), ofrece las opciones necesarias para crear particiones cifradas. Haga clic en Crear como 360 al crear particiones normales. En el cuadro de diálogo que se abre, introduzca los parámetros de la nueva partición, como por ejemplo, el formato deseado y el punto de montaje. Complete el proceso haciendo clic en Sistema de archivos codificado. En el siguiente cuadro de diálogo, introduzca dos veces la contraseña. La nueva partición cifrada se creará al cerrar el cuadro de diálogo de particionamiento haciendo clic en Aceptar. Al arrancar, el sistema operativo solicitará la contraseña antes de montar la partición. Si no desea montar la partición cifrada durante el inicio, pulse Entrar cuando se le pida la contraseña. A continuación, rechace la posibilidad de volver a introducir la contraseña. En este caso, el sistema de archivos cifrado no se montará y el sistema operativo continuará iniciándose, pero el acceso a los datos estará bloqueado. Una vez montada, todos los usuarios podrán acceder a la partición. Si el sistema de archivos cifrado sólo debe montarse cuando sea necesario, active la opción Do Not Mount During Booting (No montar durante el arranque) en el cuadro de diálogo Opciones fstab. La partición correspondiente no se montará cuando se arranque el sistema. Después, para que sea accesible, móntela manualmente con mount nombre_de_la_particion punto_de_montaje. Introduzca la contraseña cuando se le pida. Cuando acabe de trabajar con la partición, desmóntela con unmount nombre_de_la_particion para impedir el acceso de otros usuarios. Creación de una partición cifrada en un sistema en funcionamiento AVISO: Activación del cifrado en un sistema en funcionamiento También es posible crear particiones cifradas en un sistema en funcionamiento durante la instalación. Sin embargo, el cifrado de una partición existente destruye todos los datos que contenga. En un sistema en funcionamiento, seleccione Sistema → Particionamiento en el centro de control de YaST. Haga clic en Sí para continuar. En lugar de seleccionar Crear como se describía anteriormente, haga clic en Editar. El resto del procedimiento es igual. Seguridad en Linux 361 Instalación de archivos cifrados En lugar de utilizar una partición, es posible crear sistemas de archivos cifrados dentro de archivos independientes para almacenar datos confidenciales. Estos se crean desde el mismo cuadro de diálogo de YaST. Seleccione Archivo crypt e introduzca la vía al archivo que se creará y el tamaño deseado. Acepte la configuración de formato propuesta y el tipo de sistema de archivos. A continuación, especifique el punto de montaje y decida si el sistema de archivos cifrados debe montarse cuando se arranque el sistema. La ventaja de los archivos cifrados es que se pueden añadir sin volver a particionar el disco duro. Se montan mediante un dispositivo de bucle y tienen el mismo comportamiento que una partición normal. Uso de vi para cifrado de archivos La desventaja de utilizar particiones cifradas es que, mientras la partición se encuentre montada, como mímimo el usuario root podrá acceder a los datos. Para evitarlo, se puede utilizar vi en modo cifrado. Utilice vi -x nombre_del_archivo para editar un archivo nuevo. vi solicitará que se establezca una contraseña, tras lo cual cifrará el contenido del archivo. Cada vez que se acceda al archivo, vi solicitará la contraseña correspondiente. Si se desea una seguridad todavía mayor, es posible ubicar el archivo de texto cifrado en una partición cifrada. Se recomienda hacerlo dado que el cifrado utilizado en vi no es muy fuerte. 23.3.2 Cifrado del contenido de medios extraíbles YaST trata los medios extraíbles, tales como discos duros externos o unidades flash USB, de la misma manera que cualquier disco duro. Los archivos o las particiones de estos medios pueden cifrarse de la manera anteriormente descrita. Sin embargo, seleccione que estos medios no se monten durante el inicio del sistema, dado que normalmente sólo se conectan mientras el sistema se encuentra funcionando. 362 23.4 Seguridad y confidencialidad Una de las características principales de un sistema Linux o UNIX es su capacidad de gestionar varios usuarios a la vez (multiusuario) y para permitir que éstos realicen varias tareas (multitarea) en el mismo equipo de forma simultánea. Además, el sistema operativo es transparente para los usuarios. A menudo, los usuarios no saben si los datos y las aplicaciones que utilizan se proporcionan localmente desde su máquina o si su disponibilidad procede de algún otro punto de la red. Con la capacidad multiusuario, los datos de usuarios distintos deben almacenarse de forma separada. La seguridad y la privacidad deben quedar garantizada. La seguridad de los datos era ya una cuestión importante, aun antes de que los equipos pudieran conectarse a través de redes. Exactamente igual que hoy, la preocupación más importante era la capacidad de mantener la disponibilidad de los datos pese a la pérdida del medio de datos (un disco duro en la mayor parte de los casos) o a otro tipo de daños. Fundamentalmente, esta sección se centra en problemas de confidencialidad y en los modos de protección de la privacidad de los usuarios; no obstante, nunca se subrayará suficientemente la vital importancia que tienen, para lograr un estado de seguridad exhaustivo, los procedimientos de creación de copias de seguridad flexibles, puestas a prueba y actualizadas con regularidad. En su defecto, la recuperación de los datos podría ser dificilísima, y no sólo en el caso de algún defecto del hardware, sino también si se sospecha que alguien ha conseguido un acceso no autorizado a los archivos y los ha modificado. 23.4.1 Seguridad local y de red Hay varias formas de acceder a los datos: • la comunicación con personas que disponen de la información deseada o del acceso a los datos en un equipo; • directamente desde la consola de un equipo (acceso físico); • a través de una línea serie; • mediante un vínculo de red. Seguridad en Linux 363 En todos estos casos, el usuario debería autentificarse antes de acceder a los recursos o datos en cuestión. Es posible que un servidor Web sea menos restrictivo a este respecto, pero aun así el usuario no deseará que cualquier internauta pueda acceder a sus datos. El primero de los casos que figura en la lista anterior es el que implica una mayor dosis de interacción humana; por ejemplo, la solicitud, por parte de un miembro del personal de un banco, de que una persona demuestre ser la propietaria de una cuenta bancaria concreta. En tal caso, se le pide una firma, un PIN o una contraseña que sirvan para constatar su identidad. En algunos casos, es posible obtener ciertos datos de alguien que disponga de determinada información con sólo mencionar retazos y fragmentos para ganar su confianza mediante una retórica brillante. Puede persuadirse a la víctima para que revele, de forma gradual y quizás sin ser consciente de ello, más información. Entre los piratas informáticos (hackers), esto se conoce como ingeniería social (social engineering). La educación, así como el tratamiento sensato del lenguaje y la información, constituyen la única protección posible contra estos hechos. Antes de irrumpir en un sistema informático, a menudo los intrusos intentan utilizar a recepcionistas, al personal del servicio técnico o incluso a familiares. En numerosos casos, estos ataques basados en la ingeniería social se descubren pasado mucho tiempo. Alguien con intenciones de obtener un acceso no autorizado a los datos de un usuario también puede optar por el método tradicional de hacerse directamente con el hardware. Por lo tanto, la máquina debería protegerse contra cualquier tipo de manipulación para que nadie pueda retirar, sustituir o inutilizar ninguno de sus componentes. Esto se aplica igualmente a las copias de seguridad e incluso a cualquier cable de red o de corriente. También ha de garantizarse la seguridad del procedimiento de arranque, puesto que hay algunas combinaciones de teclas bien conocidas que pueden provocar un comportamiento poco habitual. Evite esto último definiendo contraseñas para el BIOS y el cargador de arranque. Los terminales en serie conectados a puertos de serie siguen utilizándose en muchos sitios. De forma contraria a las interfaces de red, no se sirven de un protocolo de red para comunicarse con el host. Se hace uso de un simple cable o un puerto de infrarrojos para enviar, en una y otra dirección, caracteres sin formato entre los dispositivos. El propio cable es el punto más débil de un sistema como éste. Resulta fácil grabar cualquier dato que circule por los cables de este sistema con sólo conectar una vieja impresora. Lo que se logra con una impresora también puede llevarse a cabo por otros medios; todo depende del esfuerzo que se invierta en el plan de ataque. La lectura local de un archivo en un host requiere reglas de acceso diferentes a la de abrir una conexión de red con un servidor en un host distinto. Existe una diferencia 364 entre la seguridad local y la seguridad de red. El límite entre ambos términos radica en la colocación de los datos en paquetes para efectuar su envío. Seguridad local La seguridad local comienza con el entorno físico de la ubicación en la que el equipo se encuentra funcionando. Coloque su máquina en un lugar en el que la seguridad esté en consonancia con sus expectativas y necesidades. El objetivo principal de la seguridad local es la de mantener a los usuarios separados unos de otros, de modo que ninguno de ellos pueda hacerse con los permisos o adoptar la identidad de otros. Esta es una regla de aplicación general, aunque adquiere un peso especial con respecto al usuario root, que es el que ostenta el poder principal en el sistema. root puede adoptar la identidad de cualquier otro usuario local sin que se le solicite ninguna contraseña y, de este modo, leer cualquier archivo almacenado localmente. Contraseñas En un sistema Linux, las contraseñas no se almacenan como texto sin formato, ni se espera simplemente a que la cadena de texto introducida coincida con el patrón guardado. Si así fuera, todas las cuentas del sistema se verían en peligro si alguien tuviera acceso al archivo correspondiente. En lugar de esto, la contraseña almacenada está cifrada y, cada vez que se escribe, se vuelve a cifrar y se efectúa una comparación de ambas cadenas cifradas. Esto sólo proporciona más seguridad si la contraseña cifrada no puede convertirse, mediante ingeniería inversa, en la cadena de texto original. Esto se consigue de hecho mediante un tipo especial de algoritmo, denominado trapdoor algorithm (algoritmo trampilla), puesto que sólo funciona en una dirección. Un intruso que haya logrado hacerse con la cadena cifrada no será capaz de obtener la contraseña con sólo aplicar el mismo algoritmo una vez más. En lugar de eso, necesitaría examinar todas las combinaciones posibles de caracteres hasta hallar la que se pareciera a la contraseña al cifrarse. Con contraseñas de ocho caracteres de longitud, debe calcularse un número considerable de combinaciones posibles. En la década de los setenta, se argüía que este método aportaría una mayor seguridad que los demás a causa de la relativa lentitud del algoritmo utilizado, que tardaba unos pocos segundos en cifrar una sola contraseña. No obstante, entre tanto, los equipos se han hecho lo suficientemente potentes para efectuar varios cientos de miles o incluso millones de cifrados por segundo. Por ello, las contraseñas cifradas no deberían resultar visibles para los usuarios normales (éstos no pueden leer /etc/shadow). Aun más Seguridad en Linux 365 importante resulta que las contraseñas no sean fáciles de adivinar, por si el archivo de contraseña se hace visible a causa de algún error. En consecuencia, no es muy útil “traducir” una contraseña como “tentar” como algo parecido a “t@n1@3”. La sustitución de algunas letras de una palabra por números de apariencia similar no resulta lo suficientemente segura. Los programas de falsificación de contraseñas que utilizan diccionarios para adivinar palabras también funcionan mediante sustituciones de este tipo. Una mejor forma de enmascarar una palabra con un significado poco común, algo que tan sólo tenga sentido para el usuario, como las primeras letras de las palabras de una frase o del título de un libro, como “El nombre de la rosa” de Umberto Eco. Esto daría lugar a la siguiente contraseña segura: “TNotRbUE9”. A diferencia de esta última, cualquiera que conozca mínimamente al usuario podría adivinar contraseñas como “cervecero” o “natalia76”. Procedimiento de arranque Configure su sistema de modo que no pueda arrancarse desde un disquete o CD, bien desmonte por completo las unidades o establezca una contraseña para el BIOS y configure este último para permitir el arranque únicamente desde el disco duro. Un sistema Linux se inicia, por lo general, gracias a un cargador de arranque, lo que permite al usuario transferir opciones adicionales al núcleo arrancado. Evite que otros utilicen estos parámetros durante el arranque estableciendo una contraseña adicional en /boot/ grub/menu.lst (consulte el Capítulo 29, Cargador de arranque (p. 469)). Éste es un aspecto clave para la seguridad de su sistema. Los permisos root hacen posible no sólo la ejecución del propio núcleo, sino que también constituyen la primera autoridad para conceder permisos root cuando se inicia el sistema. Permisos de archivo Como regla general, se debe trabajar en una tarea dada con los privilegios más restringidos posibles. Por ejemplo, no es en absoluto necesario ser root para leer o escribir correo electrónico. Si el programa de correo tiene un error, éste podría aprovecharse en un ataque para el que se necesitasen exactamente los permisos de ese programa cuando se inició. La observancia de la regla anterior minimiza los posibles daños. Los permisos de los más de 200.000 archivos que se incluyen en una distribución SUSE se seleccionan cuidadosamente. Un administrador del sistema que instale software adicional u otros archivos debería tener un cuidado extremo al actuar así, en especial al establecer los permisos. Un administrador del sistema experimentado y consciente 366 de la importancia de la seguridad siempre utiliza la opción -l con el comando ls para conseguir una amplia lista de archivos, lo que le permite detectar inmediatamente cualquier incorrección de los permisos de archivos. Un atributo de archivo incorrecto no sólo implica la posibilidad de modificar o borrar los archivos. root podría ejecutar estos archivos modificados o, en el caso de archivos de configuración, los programas podrían usarlos con los permisos de root. Esto incrementa de forma notable las posibilidades de acción de los intrusos. Los intrusos como los descritos se conocen como "huevos de cuco", puesto que un usuario diferente (que haría las veces de ave) ejecuta el programa (que sería el huevo) como un pájaro cuco que hace que otras aves incuben sus huevos. El sistema SUSE Linux incluye los archivos permissions, permissions.easy, permissions.secure y permissions.paranoid, todos ellos en el directorio /etc. El objetivo de estos archivos es definir permisos especiales, como directorios de escritura universal o, en el caso de archivos, el bit setuser ID (los programas con el bit setuser ID definido no funcionan con los permisos del usuario que los ha ejecutado, sino con los permisos del propietario del archivo que, en la mayor parte de los casos, es root). Un administrador puede utilizar el archivo /etc/permissions.local para añadir sus propios ajustes. Para definir qué archivos de los anteriormente mencionados utilizan los programas de configuración de SUSE para establecer los permisos como corresponde, seleccione Security (Seguridad) en YaST. Para obtener más información acerca de este tema, consulte los comentarios en /etc/permissions o la página del manual de chmod (man chmod). Desbordamiento de buffers y errores de cadenas de formato Se debe tener especial cuidado siempre que un programa pueda procesar datos que un usuario pueda modificar, aunque ésta es una cuestión que concierne más al programador de la aplicación que a los usuarios normales. El programador debe asegurarse de que la aplicación interprete los datos correctamente, sin escribirlos en las áreas de memoria que son demasiado pequeñas para almacenarlos. Asimismo, el programa debería transferir los datos de un modo coherente, utilizando las interfaces definidas para ello. Un desbordamiento de buffer puede tener lugar si, al escribir en un buffer de memoria, no se tiene en cuenta su tamaño real. Hay casos en los que los datos (tal y como lo genera el usuario) desbordan el espacio disponible en el buffer. El resultado es que los Seguridad en Linux 367 datos se escriben más allá del área del buffer lo que, en determinadas circunstancias, hace posible que un programa ejecute secuencias de programa influido por el usuario (y no por el programador), en lugar de limitarse a procesar los datos del usuario. Un error de este tipo puede acarrear graves consecuencias, sobre todo si el programa se ejecuta con privilegios especiales (consulte la “Permisos de archivo” (p. 366)). Los errores de cadenas de formato funcionan de un modo ligeramente distinto, aunque también en este caso es la entrada del usuario la que puede hacer que el programa tenga un funcionamiento incorrecto. En la mayor parte de los casos, estos errores de programación se aprovechan con programas que se ejecutan con permisos especiales (programas setuid y setgid); esto también significa que tanto los datos como el sistema pueden protegerse de tales errores eliminando de los programas los privilegios de ejecución correspondientes. Una vez más, la mejor solución consiste en aplicar el principio del uso mínimo de privilegios (consulte la “Permisos de archivo” (p. 366)). Puesto que los desbordamientos de buffer y los errores de cadenas de formato son errores relacionados con la gestión de los datos de usuario, no sólo pueden explotarse si se ha dado acceso a una cuenta local. Muchos de los errores de los que se ha informado también pueden explotarse mediante un enlace de red. En consecuencia, los desbordamientos de buffer y los errores de cadenas de formato deberían calificarse como relevantes tanto para la seguridad de local como para la de red. Virus En contra de lo que suele decirse, existen virus que se ejecutan en Linux. No obstante, los virus que se conocen se iniciaron por sus autores como prototipos para probar que la técnica funcionaba como se esperaba. Hasta el momento, no se ha localizado ninguno de estos virus circulando en libertad. Los virus no pueden sobrevivir ni extenderse sin un huésped que los acoja. En este caso, el huésped sería un programa o un área de almacenamiento importante del sistema, como el registro de arranque principal, que necesita poder escribirse para el código de programa del virus. Debido a sus capacidades de multiusuario, Linux puede restringir el acceso de escritura a determinados archivos, con especial importancia de los archivos del sistema. Por lo tanto, si el usuario lleva a cabo su trabajo habitual con permisos root, aumenta la probabilidad de que el sistema quede infectado por un virus. Por contra, si se sigue el principio del uso de los mínimos privilegios posibles mencionado anteriormente, la probabilidad de contagio es escasa. 368 Independientemente de esto, nunca debería ejecutarse precipitadamente un programa de algún sitio desconocido de Internet. Los paquetes SUSE RPM incluyen una firma criptográfica, en forma de etiqueta digital, que pone de manifiesto el cuidado con el que se elaboraron. Los virus son un indicio típico de que el administrador o el usuario carece de la conciencia necesaria acerca de los asuntos relacionados con la seguridad, con lo que se pone en peligro incluso un sistema que, por su mismo diseño, debería gozar de una seguridad extrema. No deben confundirse los virus con los gusanos, que pertenecen completamente al mundo de las redes. Los gusanos no necesitan un huésped para propagarse. Seguridad de la red La seguridad de la red es importante para lograr la protección de un ataque que se inicia en el exterior. El procedimiento de inicio de sesión típico, en el que se solicita un nombre de usuario y una contraseña para autenticar al usuario, constituye un problema del ámbito de la seguridad local. En el caso particular de un inicio de sesión en red, hay que diferenciar dos aspectos relacionados con la seguridad. Lo que tiene lugar hasta que se lleva a cabo la autenticación concierne a la seguridad de red; y todo aquello que ocurre posteriormente incumbe a la seguridad local. X Window System y X Authentication Como se mencionó al comienzo, la transparencia de la red es una de las características centrales de un sistema UNIX. X, el sistema de ventanas de los sistemas operativos UNIX, puede utilizar esta función de un modo impresionante. Con X, no existe básicamente ningún problema para iniciar sesión en un host remoto y ejecutar un programa gráfico que, a continuación, se envía a través de la red para mostrarse en el equipo del usuario. Cuando un cliente X debiera visualizarse de forma remota utilizando un servidor X, éste debería proteger el recurso que gestiona (la visualización) del acceso no autorizado. En términos más concretos, deberían otorgarse ciertos permisos al programa cliente. Con X Window System, hay dos formas de hacer esto, denominados "control del acceso basado en host" y "control de acceso basado en cookies". La primera utiliza la dirección IP del host en el que el cliente debería ejecutarse. El programa que controla esto es xhost. xhost especifica la dirección IP de un cliente legítimo en una minúscula base de datos que pertenece al servidor X. No obstante, el uso de direcciones IP para la autenticación no es muy seguro. Por ejemplo, si hubiera un segundo usuario trabajando en el Seguridad en Linux 369 host y enviando el programa cliente, también tendría acceso al servidor X (como alguien que roba la dirección IP). A causa de estos inconvenientes, este método de autenticación no se describe aquí con mayor detalle, pero puede obtener más información al respecto con man xhost. En el caso del control de acceso basado en cookies, se genera una cadena de caracteres que sólo conoce el servidor X y el usuario legítimo, como un carnet de identidad de algún tipo. Esta cookie (la palabra no hace referencia a las cookies habituales, sino a las galletas ["cookies", en inglés] de la fortuna chinas, que contienen un epigrama) se almacena al iniciar sesión en el archivo .Xauthority en el directorio personal del usuario y está disponible para cualquier cliente X que desee utilizar el servidor X para visualizar una ventana. El usuario puede examinar el archivo .Xauthority mediante la herramienta xauth. Si se tuviera que cambiar el nombre de .Xauthority o si se hubiera suprimido por accidente el archivo del directorio personal, el usuario no sería capaz de abrir ninguna nueva ventana o clientes X. Puede leer más acerca de los mecanismos de seguridad de X Window System en la página Man de Xsecurity (man Xsecurity). Se puede utilizar SSH (shell seguro) para cifrar completamente una conexión de red y reenviarla de forma transparente sin que el usuario perciba el mecanismo de cifrado. Esto también se conoce como "redireccionamiento X" (X forwarding). El redireccionamiento X se logra simulando un servidor X en el lado del servidor y estableciendo una variable DISPLAY para el shell en el host remoto. Se puede encontrar más información sobre SSH en la Sección 23.2, “SSH: trabajar de forma segura en red” (p. 353). AVISO Si el host en el que se inicia la sesión no se considera seguro, no se debe utilizar el redireccionamiento X. Si el redireccionamiento X está habilitado, un intruso podría autenticarse mediante la conexión SSH para irrumpir en el servidor X y espiar, por ejemplo, las cadenas que se escriben mediante el teclado. Desbordamiento de buffers y errores de cadenas de formato Como se indicó en la “Desbordamiento de buffers y errores de cadenas de formato” (p. 367), los desbordamientos de buffer y los errores de cadenas de formato deberían calificarse como asuntos relevantes tanto para la seguridad de local como para la de red. Como ocurre con las variantes locales de tales errores, los desbordamientos de 370 buffer en los programas de red se utilizan la mayoría de las veces, cuando se aprovechan convenientemente, para obtener permisos root. Aun si no es así, un intruso podría utilizar el error para lograr acceder a una cuenta local sin privilegios para explotar otros puntos débiles que pudiera haber en el sistema. Los desbordamientos de buffer y los errores de cadenas de formato que pueden explotarse por medio de un enlace de red son, con diferencia, los tipos de ataque más frecuentes en general. Los exploits (programas que se aprovechan de estos fallos de seguridad recién descubiertos) se colocan a menudo en las listas de correo de seguridad. Pueden utilizarse para sacar provecho de la vulnerabilidad sin necesidad de conocer los detalles del código. A lo largo de los años, la experiencia ha demostrado que la disponibilidad de los códigos de los exploits ha contribuido a reforzar la seguridad de los sistemas operativos; esto se debe, obviamente, al hecho de que los desarrolladores de los sistemas operativos se han visto forzados a solucionar el problema que su software presentaba. Con el software libre, cualquiera tiene acceso al código fuente (SUSE Linux viene con todos los códigos fuente disponibles) y aquel que detecte un fallo de seguridad y el código del exploit puede hacer pública la revisión para solucionar el error correspondiente. Denegación de servicio El propósito de un ataque DoS (Denegación de servicio) es bloquear un programa del servidor o incluso un sistema al completo, lo que podría lograrse por varios medios: sobrecargando el servidor, manteniéndolo ocupado con paquetes inservibles o explotando un desbordamiento de buffer remoto. A menudo, un ataque DoS se lleva a cabo con el único propósito de hacer que el servicio desaparezca. No obstante, una vez que un servicio dado deja de estar disponible, las comunicaciones pueden volverse vulnerables a los ataques man-in-the-middle (sniffing, secuestro de conexión TCP, spoofing) y al envenenamiento de DNS. Ataques man in the middle: sniffing, secuestro, spoofing En general, cualquier ataque remoto efectuado por un intruso que se coloca a sí mismo entre los hosts de comunicación se denomina ataque man-in-the-middle attack. Lo que casi todos los tipos de ataques man-in-the-middle tienen en común es que la víctima, por lo general, no es consciente de que está ocurriendo algo. Hay muchas variantes posibles; por ejemplo, el intruso puede hacerse con una petición de conexión y redirec- Seguridad en Linux 371 cionarla a la máquina de destino. En ese momento, la víctima establece, sin darse cuenta, una conexión con el host incorrecto, puesto que el otro extremo se hace pasar por la máquina de destino legítima. La forma más simple de ataque man-in-the-middle se denomina sniffer (en los que el intruso “tan sólo” escucha el tránsito del tráfico de la red). En una forma más compleja de ataque, el intruso “man in the middle” puede intentar apoderarse de una conexión ya establecida (secuestro). Para ello, el intruso necesitaría analizar los paquetes durante cierto tiempo para ser capaz de predecir los números de la secuencia TCP que pertenecen a la conexión. Cuando, finalmente, el intruso asume la función del host de destino, las víctimas se percatan del ataque, puesto que les aparece un mensaje de error que indica el fin de la conexión a causa de un error. El hecho de que haya protocolos sin protección contra los secuestros mediante cifrado, que tan sólo lleva a cabo un procedimiento de autenticación simple al establecer la conexión, facilita la acción de los intrusos. El spoofing es un ataque en el que los paquetes se modifican para que incluyan datos de origen falsos (normalmente, la dirección IP). Las formas más activas de ataque se sirven del envío de paquetes falsos; algo que en una máquina Linux puede efectuar tan sólo el superusuario (root). Muchos de los ataques mencionados se llevan a cabo en combinación con una DoS. Si un intruso tiene la oportunidad de hacer que un host caiga repentinamente, aunque sólo sea por poco tiempo, le resultará más fácil efectuar un ataque activo, puesto que, durante un tiempo, el host no será capaz de detenerlo. Envenenamiento de DNS En el envenenamiento de DNS, el intruso corrompe la caché de un servidor DNS respondiéndole con paquetes de respuesta de DNS con identidad suplantada (mediante spoofing), con lo que intenta hacer que el servidor envíe determinados datos a una víctima que solicita información a ese servidor. Muchos servidores mantienen una relación de confianza con otros hosts, basada en direcciones IP o nombres de host. El intruso necesita tener una buena comprensión de la estructura real de las relaciones de confianza entre los hosts para hacerse pasar por uno de los hosts fiables. Por lo general, el intruso analiza algunos paquetes recibidos del servidor para conseguir la información necesaria. A menudo, el intruso también necesita dirigir un ataque DoS oportuno al nombre del servidor. Protéjase utilizando conexiones cifradas capaces de verificar la identidad de los hosts con los cuales se realiza la conexión. 372 Gusanos Los gusanos se confunden con frecuencia con los virus, pero hay una clara diferencia entre los dos. Al contrario de lo que ocurre con los virus, los gusanos no necesitan infectar un programa huésped para vivir. En lugar de ello, se especializan en propagarse lo más rápidamente posible en las estructuras de red. Los gusanos que aparecieron en el pasado, como Ramen, Lion o Adore, utilizan fallos de seguridad bien conocidos en los programas de los servidores, como bind8 o lprNG. La protección contra los gusanos es relativamente sencilla. Puesto que hay cierto lapso de tiempo entre el descubrimiento de un fallo de seguridad y el momento en el que el gusano ataca al servidor, hay bastante probabilidad de que una versión actualizada del programa afectado por el fallo se encuentre disponible a tiempo. Esto es útil sólo si el administrador instala las actualizaciones de seguridad en los sistemas en cuestión. 23.4.2 Consejos y trucos generales de seguridad Para llevar a cabo una gestión competente de la seguridad, es importante mantenerse al día de los nuevos desarrollos y la nueva información relativa a los problemas de seguridad más recientes. Una muy buena forma de proteger un sistema contra problemas de todo tipo es adquirir e instalar, tan rápido como sea posible, los paquetes actualizados que recomiendan los comunicados de seguridad. Los comunicados de seguridad de SUSE se publican en una lista de correo a la que es posible suscribirse a través del enlace http://www.novell.com/linux/security/securitysupport .html. La lista [email protected] es una fuente de información de primera mano en lo que respecta a los paquetes actualizados e incluye, entre aquellos que contribuyen activamente, a miembros del equipo de seguridad de SUSE. La lista de correo [email protected] es un buen lugar para discutir cualquier problema de seguridad que resulte de interés. Suscríbase en la misma página Web. [email protected] es una de las listas de correo más conocidas en todo el mundo. Se recomienda su lectura, puesto que recibe entre 15 y 20 publicaciones diarias. Puede encontrarse más información en http://www.securityfocus .com. La lista siguiente enumera una serie de reglas que le resultarán útiles a la hora de resolver determinados asuntos de seguridad básicos: Seguridad en Linux 373 • De acuerdo con la regla que recomienda usar el conjunto más restrictivo posible de permisos, evite realizar sus tareas como root. Con ello, se reduce el riesgo de filtraciones de huevos de cuco o virus y se consigue protección contra los propios errores. • Si es posible, procure utilizar en todo momento conexiones cifradas para trabajar en una máquina remota. La práctica habitual debería ser utilizar ssh (shell seguro) para sustituir telnet, ftp, rsh y rlogin. • Evite utilizar los métodos de autenticación basados únicamente en las direcciones IP. • Intente mantener actualizados los paquetes de elementos más importantes relacionados con la red y suscríbase a las listas de correo correspondientes para recibir comunicados sobre las nuevas versiones de estos programas (bind, sendmail, ssh, etc.). Esto también se aplica al software relevante para la seguridad local. • Cambie el archivo /etc/permissions para optimizar los permisos de los archivos que sean cruciales para la seguridad del sistema. Si elimina el bit setuid de un programa, éste podría ser incapaz, a partir de entonces, de realizar su trabajo de la forma esperada. Por otro lado, tenga en cuenta que, en la mayor parte de los casos, el programa también dejará de constituir un posible riesgo para la seguridad. Lo anterior puede aplicarse de forma similar a los directorios y archivos de escritura universal. • Inhabilite todos los servicios de red que el servidor no tenga más remedio que utilizar para funcionar correctamente. Con ello, el sistema incrementará su seguridad. Pueden encontrarse los puertos abiertos con el estado de zócalo LISTEN mediante el programa netstat. En cuanto a las opciones, se recomienda utilizar netstat -ap o netstat -anp. La opción -p permite ver qué proceso ocupa un puerto y con qué nombre. Compare los resultados obtenidos al utilizar netstat con los de una exploración exhaustiva de puertos efectuada desde el exterior del host. Para ello, un programa excelente es nmap, que además de comprobar los puertos de la máquina del usuario, también saca conclusiones con respecto a los servicios que se encuentran en espera tras ellos. No obstante, la exploración de puertos puede interpretarse como un acto agresivo, así que no la lleve a cabo en un host si no cuenta con la aprobación explícita del administrador. Por último, recuerde que no sólo es importante explorar los puertos TCP, sino también los UDP (opciones -sS y -sU). 374 • Para monitorizar la integridad de los archivos del sistema de un modo fiable, utilice el programa AIDE (Entorno de detección de intrusión avanzada), disponible en SUSE Linux. Cifre las bases de datos creadas por AIDE para impedir que alguien las manipule. Además, disponga de una copia de seguridad de esta base de datos fuera de su máquina, almacenada en un medio de datos externo que no se encuentre conectado a aquélla mediante ningún enlace de red. • Sea cuidadoso al instalar software de terceros. Se conocen casos en los que un pirata informático (hacker) incluyó un troyano en el archivo tar de un paquete de software de seguridad que, afortunadamente, se descubrió a tiempo. Si instala un paquete binario, procure que no haya dudas sobre el sitio Web del que lo descargó. Los paquetes RPM de SUSE se distribuyen con la firma gpg. La clave que SUSE utiliza para la firma es: ID:9C800ACA 2000-10-19 SUSE Package Signing Key <[email protected]> Key fingerprint = 79C1 79B2 E1C8 20C1 890F 9994 A84E DAE8 9C80 0ACA El comando rpm --checksig package.rpm muestra si el checksum y la firma de un paquete instalado son correctos. Puede encontrar la clave en el primer CD de la distribución y en la mayor parte de los servidores de clave de todo el mundo. • Revise con regularidad las copias de seguridad de usuario y los archivos de sistema. Tenga en cuenta que si no comprueba si las copias de seguridad funcionan, éstas pueden resultar completamente inútiles. • Revise los archivos de registro. Siempre que sea posible, escriba un pequeño guión para buscar entradas sospechosas. Hay que reconocer que no se trata precisamente de una tarea trivial. En última instancia, tan sólo el usuario sabe qué entradas son atípicas y cuáles no. • Utilice tcp_wrapper para restringir el acceso a los servicios individuales que se ejecuten en su máquina, con lo que dispondrá de un control explícito sobre las direcciones IP que pueden conectarse a ese servicio. Para obtener más información sobre tcp_wrapper, consulte las páginas del manual de tcpd y de hosts_access (man 8 tcpd, man hosts_access). • Utilice SuSEfirewall para mejorar la seguridad proporcionada por tcpd (tcp_wrapper). Seguridad en Linux 375 • Diseñe las medidas de seguridad para que sean repetitivas: un mensaje que se lea dos veces es mejor que ningún mensaje en absoluto. 23.4.3 Uso de la dirección de notificación de la Central de seguridad Si descubre algún problema relacionado con la seguridad, escriba un mensaje de correo electrónico a [email protected] después de revisar los paquetes actualizados disponibles. Incluya una descripción actualizada del problema y el número de versión del paquete en cuestión. SUSE intentará enviar una respuesta lo antes posible. Se recomienda cifrar con pgp sus mensajes de correo electrónico. La clave pgp de SUSE es: ID:3D25D3D9 1999-03-06 SUSE Security Team <[email protected]> Key fingerprint = 73 5F 2E 99 DF DB 94 C4 8F 5A A3 AE AF 22 F2 D5 Esta clave también se encuentra disponible para su descarga en http://www.novell .com/linux/security/securitysupport.html. 376 24 Listas de control de acceso en Linux El presente capítulo ofrece un breve resumen sobre las características y las funciones de las ACL (listas de control de acceso) de POSIX para sistemas de archivos de Linux. Las ACL se pueden emplear como una ampliación del concepto tradicional de permisos para los objetos de los sistemas de archivos. Con las ACL, los permisos se pueden definir de forma más flexible de lo que se entiende tradicionalmente por el concepto de permiso. El término ACL de POSIX sugiere que se trata de un estándar verdadero de POSIX (interfaz de sistema operativo portátil). Los estándares de borrador POSIX 1003.1e y POSIX 1003.2c se han eliminado por diversas razones. En cualquier caso, las ACL que se encuentran en muchos sistemas que pertenecen a la familia UNIX se basan en dichos borradores, mientras que la implementación de las ACL de los sistemas de archivos, según se describe en el siguiente capítulo, siguen igualmente estos dos estándares. Ambos estándares pueden verse en http://wt.xpilot.org/publications/ posix.1e/. 24.1 Ventajas de las ACL Tradicionalmente, se definen tres conjuntos de permisos para cada objeto de un archivo de un sistema Linux. Dichos conjuntos incluye los permisos de lectura (r), escritura (w) y ejecución (x) para cada uno de los tres tipos de usuarios —el propietario del archivo, el grupo y otros usuarios—. Por lo demás, también es posible definir el bit definir id de usuario, el bit definir id de grupo y el bit de permanencia. Este concepto básico se adecúa a la perfección a la mayoría de los casos prácticos. Sin embargo, para situaciones más complejas o aplicaciones avanzadas, anteriormente los administradores del Listas de control de acceso en Linux 377 sistema tenían que hacer uso de una serie de trucos para sortear las limitaciones del concepto tradicional de permiso. Las ACL se pueden emplear en situaciones que precisen una ampliación del concepto tradicional de permisos de archivos. Dichas listas permiten la asignación de permisos a usuarios individuales o a grupos, incluso si éstos no se corresponden con el propietario original ni con el grupo propietario. Las listas de control de acceso son una función del núcleo de Linux y en la actualidad son compatibles con ReiserFS, Ext2, Ext3, JFS y XFS. Gracias al empleo de las ACL, es posible desarrollar las situaciones más complicadas sin tener que implementar complejos modelos de permisos en el nivel de la aplicación. Las ventajas que suponen las ACL son más que evidentes en situaciones como la sustitución de un servidor de Windows por uno de Linux. Algunas de las estaciones de trabajo conectadas pueden continuar ejecutándose en Windows incluso después de la migración. El sistema Linux ofrece servicios de archivos e impresión a los clientes de Windows mediante el empleo de Samba. Debido a que Samba es compatible con las listas de control de acceso, los permisos de usuarios se pueden configurar tanto en el servidor Linux como en Windows con una interfaz gráfica de usuario (únicamente con Windows NT y versiones posteriores). Con winbindd, por otra parte, es posible también asignar permisos a usuarios que solamente existen en un dominio de Windows y que no dispone de una cuenta en el servidor Linux. 24.2 Definiciones clase de usuario El concepto convencional de permisos de POSIX hace uso de tres clases de usuarios para la asignación de permisos en el sistema de archivos: propietario, grupo propietario y otros usuarios. Se pueden definir tres bits de permiso para cada clase de usuario, lo que hace posible dar permiso para leer, (r), escribir (w) y ejecutar (x). ACL de acceso Los permisos de acceso de usuario y de grupo para todos los tipos de objetos de sistemas de archivos (archivos y directorios) se determinan mediante las ACL de acceso. 378 ACL por defecto Las ACL por defecto se pueden aplicar únicamente a los directorios. Dichas listas determinan los permisos que un objeto de un sistema de archivos hereda de su directorio padre cuando se crea. entrada de ACL Cada ACL consta de un conjunto de entradas de ACL. Cada entrada de ACL contiene un tipo (consulte Tabla 24.1, “Tipos de entrada de ACL” (p. 380)), un calificador para el usuario o el grupo al que hace referencia la entrada y, por último, un conjunto de permisos. Para algunos tipos de entradas, el calificador del grupo o de los usuarios no está definido. 24.3 Gestión de las ACL La Tabla 24.1, “Tipos de entrada de ACL” (p. 380) resume los seis tipos posibles de entradas de ACL, cada una de las cuales define los permisos para un usuario o para un grupo de usuarios. La entrada del propietario define los permisos del usuario a quien pertenece el archivo o el directorio. La entrada del grupo propietario define los permisos del grupo propietario del archivo. El superusuario puede cambiar el propietario o el grupo propietario mediante los comandos chown o chgrp, en cuyo caso las entradas de propietario y de grupo propietario hacen referencia al nuevo propietario y al nuevo grupo propietario. Cada entrada de usuario nombrado define los permisos del usuario especificado en el campo del calificador de la entrada, que es el campo intermedio de la forma de texto que se muestra en la tabla Tabla 24.1, “Tipos de entrada de ACL” (p. 380). Cada entrada grupo nombrado define los permisos del grupo que se especifican en el campo del calificador de la entrada. Únicamente las entradas del usuario nombrado y del grupo nombrado cuentan con un campo del calificador que no está vacío. La entrada otros define los permisos del resto de usuarios. La entrada máscara aumenta los límites de los permisos asignados a las entradas usuario nombrado, grupo nombrado y grupo propietario mediante la definición de qué permisos en dichas entradas son efectivos y cuáles se encuentran en la máscara. Si existen permisos tanto en una de las entradas mencionadas como en la máscara, dichos permisos serán efectivos. Los permisos contenidos únicamente en la máscara o únicamente en la entrada real no son efectivos, en el sentido de que los permisos no se han otorgado. Todos los permisos definidos en las entradas propietario y grupo propietario Listas de control de acceso en Linux 379 son siempre efectivos. El ejemplo que aparece en la Tabla 24.2, “Enmascaramiento de permisos de acceso” (p. 380) demuestra este mecanismo. Son dos las clases básicas de ACL que existen: La ACL mínima contiene únicamente las entradas para los tipos propietario, grupo propietario y otros, que corresponden a los bits de permiso convencionales para archivos y directorios. La ACL extendida incluye más elementos; debe contener una entrada de máscara y puede contener al mismo tiempo distintas entradas de los tipos usuario nombrado y grupo nombrado. Tabla 24.1 Tipo Forma de texto propietario user::rwx usuario nombrado user:name:rwx grupo propietario group::rwx grupo nombrado group:name:rwx máscara mask::rwx otros other::rwx Tabla 24.2 380 Tipos de entrada de ACL Enmascaramiento de permisos de acceso Tipo de entrada Forma de texto Permisos usuario nombrado user:geeko:r-x r-x máscara mask::rw- rw- permisos efectivos: r-- 24.3.1 Entradas ACL y bits de permiso de modos de archivos Tanto Figura 24.1, “ACL mínima: entradas ACL comparadas con los bits de permiso” (p. 381) como Figura 24.2, “ACL extendida: entradas ACL comparadas con los bits de permiso” (p. 382) ilustran dos casos de una ACL mínima y una ACL extendida. Los datos se estructuran en tres bloques: el primero de los cuales muestra las especificaciones de tipo de las entradas ACL, mientras que en el bloque central aparece un ejemplo de ACL; el bloque situado en el extremo derecho, por su parte, muestra los bits de permiso respectivos de acuerdo con el concepto convencional de permiso, como muestra, por ejemplo, ls -l. En ambos casos, los permisos de la clase de propietario se asignan a la entrada ACL propietario. Los permisos otras clases se asignan a la entrada ACL respectiva. Sin embargo, la asignación de los permisos de la clase de grupo es diferente en los dos casos. Figura 24.1 ACL mínima: entradas ACL comparadas con los bits de permiso En el caso de una ACL mínima —sin máscara—, los permisos de la clase de grupo se asignan a la entrada ACL grupo propietario. Esta situación se muestra en la Figura 24.1, “ACL mínima: entradas ACL comparadas con los bits de permiso” (p. 381). En el caso de una ACL extendida —con máscara—, los permisos de la clase de grupo se asignan a la entrada máscara. Esta situación se muestra en la Figura 24.2, “ACL extendida: entradas ACL comparadas con los bits de permiso” (p. 382). Listas de control de acceso en Linux 381 Figura 24.2 ACL extendida: entradas ACL comparadas con los bits de permiso Esta modalidad de asignación asegura una interacción de aplicaciones sin interrupciones, con independencia de si son compatibles con ACL. Los permisos de acceso que se asignaron mediante los bits de permiso representan el límite superior para los “ajustes finos” restantes hechos con una ACL. Los cambios efectuados en los bits de permiso los refleja la ACL y viceversa. 24.3.2 Directorio con una ACL de acceso La forma en que se lleva a cabo la gestión de las ACL de acceso se muestra en el siguiente ejemplo: Antes de crear el directorio, utilice el comando umask para definir qué permisos de acceso deben enmascararse cada vez que se crea un objeto de archivo. El comando umask 027 establece los permisos por defecto dando al propietario la gama completa de permisos (0), denegando al grupo el acceso de escritura (2) y no concediendo a otros usuarios ningún permiso (7). En realidad, el comando umask enmascara los bits de permiso correspondientes o los desactiva. Para obtener más información, consulte la página Man correspondiente (man umask). El comando mkdir mydir debería crear el directorio mydir con los permisos por defecto establecidos por el comando umask. Utilice el comando ls -dl mydir para comprobar si todos los permisos se han asignado correctamente. Los datos de salida para este ejemplo son: drwxr-x--- ... tux project3 ... mydir Compruebe el estado inicial de la ACL con getfacl mydir. La información que se ofrecerá será del tipo: # file: mydir # owner: tux # group: project3 382 user::rwx group::r-x other::--- Los datos de salida del comando getfacl reflejan con precisión la asignación de los bits de permiso y las entradas ACL tal y como se describe en la Sección 24.3.1, “Entradas ACL y bits de permiso de modos de archivos” (p. 381). Las primeras tres líneas de los datos de salida muestran el nombre, propietario y grupo propietario del directorio. Las tres líneas siguientes contienen estas tres entradas ACL: propietario, grupo propietario y otros. De hecho, en el caso de esta ACL mínima, el comando getfacl no ofrece ninguna información que no se pueda obtener mediante el comando ls. Modifique la ACL para asignar permisos de lectura, escritura y ejecución a un usuario adicional geeko y a un grupo adicional mascots con: setfacl -m user:geeko:rwx,group:mascots:rwx mydir La opción -m origina que el comando setfacl modifique la ACL existente. El siguiente argumento indica las entradas ACL que se van a modificar (las entradas múltiples se separan con comas). La parte final especifica el nombre del directorio al que se deben aplicar estas modificaciones. Utilice el comando getfacl para visualizar la ACL resultante. # file: mydir # owner: tux # group: project3 user::rwx user:geeko:rwx group::r-x group:mascots:rwx mask::rwx other::--- Junto con las entradas iniciadas por el usuario geeko y el grupo mascots, se ha generado una entrada máscara. La entrada máscara mencionada se fija de forma automática de forma tal que todos los permisos sean efectivos. El comando setfacl adapta automáticamente las entradas máscara existentes a los ajustes modificados, salvo en el caso de que haya desactivado esta función con -n. máscara define los permisos máximos de acceso efectivos para todas las entradas que se encuentran en la clase de grupo. Se incluyen aquí usuario nombrado, grupo nombrado y grupo propietario. Los bits de permiso de clase de grupo que muestra ls -dl mydir corresponden ahora a la entrada máscara. drwxrwx---+ ... tux project3 ... mydir Listas de control de acceso en Linux 383 La primera columna de los datos de salida contienen ahora un signo + adicional para indicar la existencia de una ACL extendida para este elemento. De acuerdo con los datos de salida del comando ls, los permisos para la entrada máscara incluyen el acceso de escritura. Tradicionalmente, tales bits de permiso indicarían que el grupo propietario (en este caso, project3) cuenta también con acceso de escritura al directorio mydir. Sin embargo, los permisos de acceso efectivo para el grupo propietario se corresponden con la porción coincidente de los permisos definidos por el grupo propietario y por la máscara —que, en nuestro ejemplo, es r-x (consulte la Tabla 24.2, “Enmascaramiento de permisos de acceso” (p. 380)). En lo concerniente a los permisos efectivos del grupo propietario en este ejemplo, no se ha producido ninguna modificación incluso tras la inclusión de las entradas ACL. Edite la entrada máscara con el comando setfacl o chmod. Por ejemplo, utilice el comando chmod g-w mydir. El comando ls -dl mydir mostrará a continuación: drwxr-x---+ ... tux project3 ... mydir El comando getfacl mydir proporciona los siguientes datos de salida: # file: mydir # owner: tux # group: project3 user::rwx user:geeko:rwx group::r-x group:mascots:rwx mask::r-x other::--- # effective: r-x # effective: r-x Después de ejecutar el comando chmod para eliminar el permiso de escritura de los bits de la clase de grupo, los datos de salida del comando ls son suficientes para comprobar que los bits de la máscara deben haber cambiado de la forma correspondiente: el permiso de escritura está de nuevo limitado al propietario de mydir. Los datos de salida del comando getfacl confirman la afirmación anterior. Dichos datos de salida incluyen un comentario para todas aquellas entradas en las que los bits de permiso efectivo no se corresponden con los permisos originales, debido a que se han filtrado de acuerdo con la entrada máscara. Los permisos originales se pueden restaurar en cualquier momento mediante el comando chmod g+w mydir. 384 24.3.3 Directorio con una ACL por defecto Los directorios pueden tener una ACL, es decir, un tipo especial de ACL que define los permisos de acceso que heredan los objetos del directorio cuando se crean. La ACL por defecto afectará tanto a los subdirectorios como a los archivos. Efectos de una ACL por defecto Son dos las maneras mediante las que los permisos de una ACL por defecto de un directorio se transfieren a los archivos y subdirectorios de dicho directorio: • El subdirectorio hereda la ACL por defecto del directorio padre en calidad tanto de ACL por defecto como de ACL de acceso. • El archivo hereda la ACL por defecto como ACL de acceso. Todas las llamadas del sistema que crean objetos de sistemas de archivos utilizan un parámetro mode que define los permisos de acceso para el objeto de sistemas de archivos creado recientemente. Si el directorio padre no dispone de una ACL por defecto, los bits de permiso que definió umask se sustraen de los permisos al pasar por parámetro mode, y el resultado se asigna al nuevo objeto. Si existe una ACL por defecto para el directorio padre, los bits de permiso asignados al nuevo objeto se corresponden con la porción coincidente de los permisos del parámetro mode y con aquellos que se definen en la ACL por defecto. El comando umask se descarta en este caso. Aplicación de las ACL por defecto Los tres ejemplos siguientes muestran las principales operaciones que se pueden aplicar a los directorios y las ACL por defecto: 1. Añada una ACL por defecto al directorio existente mydir con: setfacl -d -m group:mascots:r-x mydir La opción -d del comando setfacl origina que el comando setfacl lleve a cabo las siguientes modificaciones (opción -m) en la ACL por defecto. Compruebe el resultado del siguiente comando: getfacl mydir Listas de control de acceso en Linux 385 # file: mydir # owner: tux # group: project3 user::rwx user:geeko:rwx group::r-x group:mascots:rwx mask::rwx other::--default:user::rwx default:group::r-x default:group:mascots:r-x default:mask::r-x default:other::--- El comando getfacl ofrece como resultado tanto la ACL de acceso como la ACL por defecto. La ACL por defecto se compone de todas las líneas que comienzan por default. Aunque usted ejecutó solamente el comando setfacl con una entrada para el grupo mascots para obtener la ACL por defecto, el comando setfacl ha copiado automáticamente las entradas restantes de la ACL de acceso para crear una ACL por defecto válida. Las ACL por defecto no tienen un efecto intermedio en los permisos de acceso. Únicamente intervienen cuando se crean los objetos de sistemas de archivos. Estos nuevos objetos solamente heredan permisos de la ACL por defecto de sus directorios padre. 2. En el siguiente ejemplo, utilice el comando mkdir para crear un subdirectorio en mydir, que heredará la ACL por defecto. mkdir mydir/mysubdir getfacl mydir/mysubdir # file: mydir/mysubdir # owner: tux # group: project3 user::rwx group::r-x group:mascots:r-x mask::r-x other::--default:user::rwx default:group::r-x default:group:mascots:r-x default:mask::r-x default:other::--- Tal y como se preveía, el subdirectorio que se acaba de crear, mysubdir, tiene los permisos de la ACL por defecto del directorio padre. La ACL de acceso de 386 mysubdir es una copia exacta de la ACL por defecto de mydir. La ACL por defecto que este directorio transmitirá a los objetos dependientes de él será también la misma. 3. Utilice el comando touch para crear un archivo en el directorio mydir, por ejemplo, touch mydir/myfile. El comando ls -l mydir/myfile mostrará entonces: -rw-r-----+ ... tux project3 ... mydir/myfile Los datos de salida del comando getfacl mydir/myfile son: # file: mydir/myfile # owner: tux # group: project3 user::rwgroup::r-x # effective:r-group:mascots:r-x # effective:r-mask::r-other::--- El comando touch utiliza un mode con el valor 0666 al crear nuevos archivos, lo que significa que los archivos se crean con permisos de lectura y escritura para todas las clases de usuarios, siempre y cuando no existan restricciones en el comando umask ni en la ACL por defecto (consulte la “Efectos de una ACL por defecto” (p. 385)). De hecho, esto indica que todos los permisos no contenidos en el valor mode se han eliminado de las entradas ACL correspondientes. Aunque no se ha eliminado ningún permiso de la entrada ACL de la clase de grupo, la entrada máscara se ha modificado para enmascarar los permisos no establecidos en el valor mode. Esta medida asegura una interacción sin interrupciones de aplicaciones, tales como compiladores, con las ACL. Puede crear archivos con permisos restringidos de acceso y, posteriormente, marcarlos como ejecutables. El mecanismo máscara garantiza que los usuarios y los grupos adecuados puedan ejecutar dichos archivos de la forma deseada. 24.3.4 Algoritmo de comprobación de ACL Se aplica un algoritmo de comprobación antes de que cualquier proceso o aplicación pueda acceder a un objeto de sistemas de archivos protegido por la ACL. Por norma general, las entradas ACL se examinan de acuerdo con la siguiente secuencia: propie- Listas de control de acceso en Linux 387 tario; usuario nombrado; grupo propietario o grupo nombrado; y otros. El acceso se gestiona de acuerdo con la entrada que mejor se adapta al proceso. Los permisos no se acumulan. La operación, sin embargo, es más complicada si un proceso pertenece a más de un grupo, por lo que podría adaptarse a varias entradas de grupo. Se selecciona una entrada forma aleatoria de entre las entradas adecuadas que cuentan los permisos necesarios. No es relevante cuál de las entradas origina el resultado final “acceso autorizado”. Así mismo, si ninguna de las entradas de grupo adecuadas cuenta con los permisos necesarios, una entrada seleccionada de forma aleatoria origina el resultado final “acceso denegado”. 24.4 Compatibilidad de ACL con las aplicaciones Las ACL se pueden emplear para implementar situaciones de permisos de gran complejidad que cumplan los requisitos de las aplicaciones más actuales. El concepto tradicional de permiso y las ACL se pueden combinar de forma inteligente. Tanto las ACL como Samba admiten los comandos básicos de archivos (cp, mv, ls, etc.). Por desgracia, muchos editores y administradores de archivos no son aún compatibles con ACL. Cuando se copian archivos con Konqueror, por ejemplo, las ACL de estos archivos se pierden. Cuando se modifican archivos con un editor, las ACL de los archivos en algunos casos se mantienen y en otros no, dependiendo del modo de copias de seguridad del editor empleado. Si el editor escribe los cambios en el archivo original, se mantiene la ACL de acceso. Si el editor guarda los contenidos actualizados en un archivo nuevo que recibe el nombre del archivo anterior, se pueden perder las ACL, a menos que el editor sea compatible con las ACL. Excepto en el caso de star archiver, no hay en la actualidad aplicaciones de copias de seguridad que conserven las ACL. 24.5 Información adicional La información detallada sobre las ACL se encuentra disponible en http://acl .bestbits.at/. Consulte también las páginas Man para los comandos getfacl(1), acl(5) y setfacl(1). 388 Utilidades de monitorización del sistema 25 Se pueden utilizar varios programas y mecanismos, algunos de los cuales están representados aquí, para examinar el estado del sistema. También se describen algunas utilidades especialmente indicadas para las tareas habituales, junto con los parámetros más importantes. Para cada uno de los comandos introducidos, se presentan ejemplos de las salidas relevantes. En estos ejemplos, la primera línea es el comando en sí mismo (después del indicador del signo de dólar). Los comandos se indican con corchetes ([...]) y las líneas largas se acortan cuando es necesario. Los saltos de línea para las líneas largas se indican con una barra invertida (\). $ command -x -y output line 1 output line 2 output line 3 is annoyingly long, so long that \ we have to break it output line 3 [...] output line 98 output line 99 Se han hecho descripciones cortas para permitir que se mencionen tantas utilidades como sea posible. El resto de información de todos los comandos se puede encontrar en las páginas Man. La mayoría de comandos también admiten el parámetro --help, que produce una lista breve de posibles parámetros. Utilidades de monitorización del sistema 389 25.1 Lista de archivos abiertos: lsof Para ver una lista de todos los archivos abiertos para el proceso con el ID de proceso PID, utilice -p. Por ejemplo, para ver todos los archivos utilizados por el shell actual, introduzca: $ lsof -p $$ COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME zsh 4694 jj cwd DIR 0,18 144 25487368 /suse/jj/t (totan:/real-home/jj) zsh 4694 jj rtd DIR 3,2 608 2 / zsh 4694 jj txt REG 3,2 441296 20414 /bin/zsh zsh 4694 jj mem REG 3,2 104484 10882 /lib/ld-2.3.3.so zsh 4694 jj mem REG 3,2 11648 20610 /usr/lib/zsh/4.2.0/zsh/rlimits.so [...] zsh 4694 jj mem REG 3,2 13647 10891 /lib/libdl.so.2 zsh 4694 jj mem REG 3,2 88036 10894 /lib/libnsl.so.1 zsh 4694 jj mem REG 3,2 316410 147725 /lib/libncurses.so.5.4 zsh 4694 jj mem REG 3,2 170563 10909 /lib/tls/libm.so.6 zsh 4694 jj mem REG 3,2 1349081 10908 /lib/tls/libc.so.6 zsh 4694 jj mem REG 3,2 56 12410 /usr/lib/locale/de_DE.utf8/LC_TELEPHONE [...] zsh 4694 jj mem REG 3,2 59 14393 /usr/lib/locale/en_US/LC_NUMERIC zsh 4694 jj mem REG 3,2 178476 14565 /usr/lib/locale/en_US/LC_CTYPE zsh 4694 jj mem REG 3,2 56444 20598 /usr/lib/zsh/4.2.0/zsh/computil.so zsh 4694 jj 0u CHR 136,48 50 /dev/pts/48 zsh 4694 jj 1u CHR 136,48 50 /dev/pts/48 zsh 4694 jj 2u CHR 136,48 50 /dev/pts/48 zsh 4694 jj 10u CHR 136,48 50 /dev/pts/48 Se ha utilizado la variable del shell especial $$, cuyo valor es el ID de proceso del shell. El comando lsof muestra todos los archivos abiertos actualmente si se utilizan sin ningún parámetro. Como suele haber miles de archivos abiertos, mostrarlos todos casi nunca es útil. Sin embargo, la lista de todos los archivos se puede combinar con las funciones de búsqueda para generar listas útiles. Por ejemplo, muestre todos los dispositivos de caracteres utilizados: $ lsof | grep CHR sshd 4685 sshd 4685 sshd 4693 390 root root jj mem mem mem CHR CHR CHR 1,5 1,5 1,5 45833 /dev/zero 45833 /dev/zero 45833 /dev/zero sshd zsh zsh zsh zsh X lsof lsof grep grep 25.2 4693 4694 4694 4694 4694 6476 13478 13478 13480 13480 jj jj jj jj jj root jj jj jj jj mem 0u 1u 2u 10u mem 0u 2u 1u 2u CHR CHR CHR CHR CHR CHR CHR CHR CHR CHR 1,5 136,48 136,48 136,48 136,48 1,1 136,48 136,48 136,48 136,48 45833 50 50 50 50 38042 50 50 50 50 /dev/zero /dev/pts/48 /dev/pts/48 /dev/pts/48 /dev/pts/48 /dev/mem /dev/pts/48 /dev/pts/48 /dev/pts/48 /dev/pts/48 Usuarios que acceden a los archivos: fuser Puede que sea útil determinar qué procesos o usuarios están accediendo actualmente a ciertos archivos. Supongamos, por ejemplo, que desea desmontar un sistema de archivos montado en /mnt. umount devuelve el mensaje "device is busy" (el dispositivo está ocupado). A continuación, se puede utilizar el comando fuser para determinar qué procesos acceden al dispositivo: $ fuser -v /mnt/* USER PID ACCESS COMMAND /mnt/notes.txt jj 26597 f.... less Una vez terminado el proceso less, que se estaba ejecutando en otro terminal, el sistema de archivos se puede desmontar de forma correcta. 25.3 Propiedades del archivo: stat El comando stat muestra las propiedades del archivo: $ stat xml-doc.txt File: `xml-doc.txt' Size: 632 Blocks: 8 IO Block: 4096 Device: eh/14d Inode: 5938009 Links: 1 Access: (0644/-rw-r--r--) Uid: (11994/ jj) Gid: ( Access: 2004-04-27 20:08:58.000000000 +0200 Modify: 2003-06-03 15:29:34.000000000 +0200 Change: 2003-07-23 17:48:27.000000000 +0200 regular file 50/ suse) Utilidades de monitorización del sistema 391 El parámetro --filesystem genera información detallada de las propiedades del sistema de archivos en el que se ubica el archivo especificado: $ stat File: ID: Blocks: Inodes: . --filesystem "." 0 Namelen: 255 Type: ext2/ext3 Total: 19347388 Free: 17831731 Available: 16848938 Total: 9830400 Free: 9663967 Size: 4096 Si utiliza el shell z (zsh), debe introducir /usr/bin/stat, porque el shell z tiene un complemento stat con opciones y con un formato de salida diferentes: % type stat stat is a shell builtin % stat . device 769 inode 4554808 mode 16877 nlink 12 uid 11994 gid 50 rdev 0 size 4096 atime 1091536882 mtime 1091535740 ctime 1091535740 blksize 4096 blocks 8 link 25.4 Dispositivos USB: lsusb El comando lsusb muestra todos los dispositivos USB. Con la opción -v, imprima una lista más detallada. La información detallada se lee en el directorio /proc/bus/ usb/. La siguiente es la salida de lsusb después de añadir una tarjeta memory stick USB. Las últimas líneas indican la presencia del nuevo dispositivo. Bus Bus Bus Bus Bus 392 004 003 002 001 001 Device Device Device Device Device 001: 001: 001: 001: 018: ID ID ID ID ID 0000:0000 0000:0000 0000:0000 0000:0000 0402:5634 ALi Corp. 25.5 Información acerca de un dispositivo SCSI: scsiinfo El comando scsiinfo muestra información acerca de un dispositivo SCSI. Con la opción -l, muestre todos los dispositivos SCSI que el sistema conoce (con el comando lsscsi se obtiene información similar). La siguiente es la salida de scsiinfo -i /dev/sda, que proporciona información acerca de un disco duro. La opción -a proporciona incluso más información. Inquiry command --------------Relative Address Wide bus 32 Wide bus 16 Synchronous neg. Linked Commands Command Queueing SftRe Device Type Peripheral Qualifier Removable? Device Type Modifier ISO Version ECMA Version ANSI Version AENC TrmIOP Response Data Format Vendor: Product: Revision level: 0 0 1 1 1 1 0 0 0 0 0 0 0 3 0 0 2 FUJITSU MAS3367NP 0104A0K7P43002BE Existe una lista de deficiencias con dos tablas de bloques incorrectos de un disco duro: en primer lugar, la proporcionada por el proveedor (tabla del fabricante) y en segundo lugar, la lista de bloques incorrectos que aparecieron en la operación (tabla generada). Si aumenta el número de entradas de la tabla generada, puede que sea una buena idea sustituir el disco duro. 25.6 Procesos: top El comando top, que significa "tabla de procesos", muestra una lista de procesos que se actualiza cada dos segundos. Para salir del programa, pulse Q . El parámetro -n 1 Utilidades de monitorización del sistema 393 termina el programa después de mostrar una vez la lista de procesos. A continuación, se ofrece un ejemplo de salida del comando top -n 1: top - 14:19:53 up 62 days, 3:35, 14 users, load average: 0.01, 0.02, 0.00 Tasks: 102 total, 7 running, 93 sleeping, 0 stopped, 2 zombie Cpu(s): 0.3% user, 0.1% system, 0.0% nice, 99.6% idle Mem: 514736k total, 497232k used, 17504k free, 56024k buffers Swap: 1794736k total, 104544k used, 1690192k free, 235872k cached PID 1426 20836 1 2 3 4 5 1362 1363 1377 1379 1380 USER root jj root root root root root [...] root root root root root PR 15 15 15 15 34 15 15 NI 0 0 0 0 19 0 0 VIRT 116m 820 100 0 0 0 0 RES 41m 820 96 0 0 0 0 SHR 18m 612 72 0 0 0 0 S %CPU %MEM S 1.0 8.2 R 1.0 0.2 S 0.0 0.0 S 0.0 0.0 S 0.0 0.0 S 0.0 0.0 S 0.0 0.0 15 15 17 18 18 0 0 0 0 0 488 488 56 56 56 452 452 4 4 4 404 404 4 4 4 S S S S S 0.0 0.0 0.0 0.0 0.0 0.1 0.1 0.0 0.0 0.0 TIME+ 82:30.34 0:00.03 0:08.43 0:04.96 0:00.99 0:33.63 0:00.71 0:00.02 0:00.04 0:00.00 0:00.01 0:00.01 Command X top init keventd ksoftirqd_CPU0 kswapd bdflush nscd nscd mingetty mingetty mingetty Si pulsa F mientras se ejecuta top, se abre un menú con el que realizar cambios significativos al formato de la salida. El parámetro -U UID monitoriza sólo los procesos asociados con un usuario en concreto. Sustituya UID por el ID del usuario. top -U $(id -u username) devuelve el UID del usuario según el nombre del usuario y muestra sus procesos. 25.7 Lista de procesos: ps El comando ps produce una lista de procesos. Si se añade el parámetro r, sólo se muestran los procesos que utilizan actualmente el tiempo de computación: $ ps r PID TTY 22163 pts/7 3396 pts/3 20027 pts/7 20974 pts/7 27454 pts/7 STAT R R R R R TIME 0:01 0:03 0:25 0:01 0:00 COMMAND -zsh emacs new-makedoc.txt emacs xml/common/utilities.xml emacs jj.xml ps r Este parámetro debe escribirse sin un signo menos. Los diferentes parámetros se escriben algunas veces con y otras veces sin el signo menos. La página Man podría fácilmente 394 amedrentar a posibles usuarios pero, afortunadamente, el comando ps --help produce una breve página de ayuda. Para comprobar cuántos procesos emacs se están ejecutando, utilice: $ ps x | grep emacs 1288 ? S 3396 pts/3 S 3475 ? S 20027 pts/7 S 20974 pts/7 S 0:07 0:04 0:03 0:40 0:02 emacs emacs emacs emacs emacs new-makedoc.txt .Xresources xml/common/utilities.xml jj.xml $ pidof emacs 20974 20027 3475 3396 1288 El parámetro -p selecciona los procesos mediante el ID de proceso: $ ps www -p $(pidof xterm) PID TTY STAT TIME COMMAND 9025 ? S 0:01 xterm -g 100x45+0+200 9176 ? S 0:00 xterm -g 100x45+0+200 29854 ? S 0:21 xterm -g 100x75+20+0 -fn \ -B&H-LucidaTypewriter-Medium-R-Normal-Sans-12-120-75-75-M-70-iso10646-1 4378 ? S 0:01 xterm -bg MistyRose1 -T root -n root -e su -l 25543 ? S 0:02 xterm -g 100x45+0+200 22161 ? R 0:14 xterm -g 100x45+0+200 16832 ? S 0:01 xterm -bg MistyRose1 -T root -n root -e su -l 16912 ? S 0:00 xterm -g 100x45+0+200 17861 ? S 0:00 xterm -bg DarkSeaGreen1 -g 120x45+40+300 19930 ? S 0:13 xterm -bg LightCyan 21686 ? S 0:04 xterm -g 100x45+0+200 -fn \ lucidasanstypewriter-12 23104 ? S 0:00 xterm -g 100x45+0+200 26547 ? S 0:00 xterm -g 100x45+0+200 La lista de procesos se puede formatear de acuerdo con las necesidades de cada uno. La opción -L devuelve una lista de todas las palabras clave. Introduzca el siguiente comando para generar una lista de todos los procesos clasificados según la utilización de la memoria: $ ps ax --format pid,rss,cmd --sort rss PID RSS CMD 2 0 [ksoftirqd/0] 3 0 [events/0] 17 0 [kblockd/0] [...] 10164 5260 xterm 31110 5300 xterm 17010 5356 xterm 3896 29292 /usr/X11R6/bin/X -nolisten tcp -br vt7 -auth /var/lib/xdm/authdir/au Utilidades de monitorización del sistema 395 25.8 Árbol de procesos: pstree El comando pstree produce una lista de procesos en forma de árbol: $ pstree init-+-atd |-3*[automount] |-bdflush |-cron [...] |-usb-storage-1 |-usb-storage-2 |-10*[xterm---zsh] |-xterm---zsh---mutt |-2*[xterm---su---zsh] |-xterm---zsh---ssh |-xterm---zsh---pstree |-ypbind---ypbind---2*[ypbind] `-zsh---startx---xinit4-+-X `-ctwm-+-xclock |-xload `-xosview.bin El parámetro -p añade el ID de proceso a un nombre dado. Para que se muestren también las líneas de comandos, utilice el parámetro -a: $ pstree -pa init,1 |-atd,1255 [...] `-zsh,1404 `-startx,1407 /usr/X11R6/bin/startx `-xinit4,1419 /suse/jj/.xinitrc [...] |-X,1426 :0 -auth /suse/jj/.Xauthority `-ctwm,1440 |-xclock,1449 -d -geometry -0+0 -bg grey |-xload,1450 -scale 2 `-xosview.bin,1451 +net -bat +net 25.9 Usuarios y acciones w Con el comando w, descubra quién ha iniciado sesión en el sistema y qué hace cada usuario. Por ejemplo: $ w 15:17:26 up 62 days, 4:33, 14 users, load average: 0.00, 0.04, 0.01 USER TTY LOGIN@ IDLE JCPU PCPU WHAT 396 jj jj jj jj [...] jj jj [...] jj pts/0 pts/1 pts/2 pts/3 30Mar04 23Mar04 23Mar04 23Mar04 4days 5days 5days 3:28m 0.50s 0.20s 1.28s 3.21s 0.54s 0.20s 1.28s 0.50s pts/7 pts/9 07Apr04 25Mar04 0.00s 3:24m 9.02s 7.70s 0.01s w 7.38s mutt pts/14 12:49 0.20s 0.13s ssh totan 37:34 xterm -e su -l -zsh -zsh -zsh La última línea muestra que el usuario jj ha establecido una conexión segura de shell (ssh) con el equipo totan. Si usuarios de otros sistemas han iniciado sesión de forma remota, el parámetro -f muestra los equipos desde los que han establecido la conexión. 25.10 Utilización de la memoria: free La utilidad free examina la utilización de la RAM. Se muestra información detallada acerca de la memoria libre y utilizada (y las áreas de intercambio): $ free total Mem: 514736 -/+ buffers/cache: Swap: 1794736 used 273964 195716 104096 free 240772 319020 1690640 shared 0 buffers 35920 cached 42328 buffers 35 cached 41 Con -m, todos los tamaños se expresan en megabytes: $ free -m total Mem: 502 -/+ buffers/cache: Swap: 1752 used 267 191 101 free 235 311 1651 shared 0 La información realmente interesante se encuentra en la siguiente línea: -/+ buffers/cache: 191 311 Esto calcula la cantidad de memoria utilizada por los buffers y las cachés. El parámetro -d delay garantiza que la pantalla se actualiza cada delay segundos. Por ejemplo, free -d 1.5 produce una actualización cada 1,5 segundos. Utilidades de monitorización del sistema 397 25.11 Buffer de anillo del núcleo: dmesg El núcleo de Linux mantiene ciertos mensajes en un buffer de anillo. Para ver estos mensajes, introduzca el comando dmesg: $ dmesg [...] sdc : READ CAPACITY failed. sdc : status = 1, message = 00, host = 0, driver = 08 Info fld=0xa00 (nonstd), Current sd00:00: sense key Not Ready sdc : block size assumed to be 512 bytes, disk size 1GB. sdc: test WP failed, assume Write Enabled sdc: I/O error: dev 08:20, sector 0 I/O error: dev 08:20, sector 0 I/O error: dev 08:20, sector 2097144 I/O error: dev 08:20, sector 2097144 I/O error: dev 08:20, sector 0 I/O error: dev 08:20, sector 0 unable to read partition table I/O error: dev 08:20, sector 0 nfs: server totan not responding, still trying nfs: server totan OK La última línea indica que existe un problema temporal en el servidor NFS totan. Las líneas que van hasta ese punto se activan con la inserción de una unidad flash USB. Los eventos más antiguos se registran en los archivos /var/log/messages y /var/log/warn. 25.12 Sistemas de archivos y su utilización: mount, df y du El comando mount muestra qué sistema de archivos (dispositivo y tipo) se monta en qué punto de montaje: $ mount /dev/hdb2 on / type ext2 (rw) proc on /proc type proc (rw) devpts on /dev/pts type devpts (rw,mode=0620,gid=5) /dev/hda1 on /data type ext2 (rw) shmfs on /dev/shm type shm (rw) usbdevfs on /proc/bus/usb type usbdevfs (rw) automount(pid1012) on /suse type autofs \ 398 (rw,fd=5,pgrp=1012,minproto=2,maxproto=3) totan:/real-home/jj on /suse/jj type nfs \ (rw,nosuid,rsize=8192,wsize=8192,hard,intr,nolock,addr=10.10.0.1) Obtenga información acerca de la utilización total de los sistemas de archivos con el comando df. El parámetro -h (o --human-readable) transforma la salida en un formato legible para los usuarios habituales. $ df -h Filesystem /dev/hdb2 /dev/hda1 shmfs totan:/real-home/jj Size 7.4G 74G 252M 350G Used Avail Use% Mounted on 5.1G 2.0G 73% / 5.8G 65G 9% /data 0 252M 0% /dev/shm 324G 27G 93% /suse/jj Los usuarios del servidor de archivos NFS totan deberían eliminar el directorio personal sin demora. Muestre el tamaño total de todos los archivos de un directorio dado y sus subdirectorios con el comando du. El parámetro -s elimina la salida de información detallada. -h transforma de nuevo los datos en un formato legible para todo el mundo. Con este comando: $ du -sh ~ 361M /suse/jj vea cuánto espacio ocupa su propio directorio personal. 25.13 Sistema de archivos /proc El sistema de archivos /proc es un pseudosistema de archivos en el que el núcleo reserva información importante en forma de archivos virtuales. Por ejemplo, muestre el tipo de CPU con este comando: $ cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 8 model name : AMD Athlon(tm) XP 2400+ stepping : 1 cpu MHz : 2009.343 cache size : 256 KB fdiv_bug : no [...] La asignación y el uso de interrupciones se pueden consultar con el siguiente comando: Utilidades de monitorización del sistema 399 $ cat /proc/interrupts CPU0 0: 537544462 1: 820082 2: 0 8: 2 9: 0 10: 13970 11: 146467509 12: 8061393 14: 2465743 15: 1355 NMI: 0 LOC: 0 ERR: 0 MIS: 0 XT-PIC XT-PIC XT-PIC XT-PIC XT-PIC XT-PIC XT-PIC XT-PIC XT-PIC XT-PIC timer keyboard cascade rtc acpi usb-uhci, usb-uhci ehci_hcd, usb-uhci, eth0 PS/2 Mouse ide0 ide1 Algunos de los archivos importantes y su contenido son: /proc/devices dispositivos disponibles /proc/modules módulos del núcleo cargados /proc/cmdline línea de comandos del núcleo /proc/meminfo información detallada acerca de la utilización de la memoria /proc/config.gz archivo de configuración comprimido gzip del núcleo que se ejecuta actualmente Encontrará más información en el archivo de texto /usr/src/linux/ Documentation/filesystems/proc.txt. La información acerca de los procesos que se ejecutan actualmente se puede encontrar en los directorios /proc/NNN, donde NNN es el PID (ID del proceso) del proceso relevante. Todos los procesos pueden encontrar sus propias características en /proc/self/: $ ls -l /proc/self lrwxrwxrwx 1 root root 64 Apr 29 13:52 /proc/self -> 27585 $ ls -l /proc/self/ total 0 dr-xr-xr-x 2 jj suse 0 Apr 29 13:52 attr -r-------- 1 jj suse 0 Apr 29 13:52 auxv 400 -r--r--r-lrwxrwxrwx -r--r--r--r-------lrwxrwxrwx dr-x------rw-------r--r--r--rw-------r--r--r-lrwxrwxrwx -r--r--r--r--r--r--r--r--r-dr-xr-xr-x -r--r--r-- 1 1 1 1 1 2 1 1 1 1 1 1 1 1 3 1 jj jj jj jj jj jj jj jj jj jj jj jj jj jj jj jj suse suse suse suse suse suse suse suse suse suse suse suse suse suse suse suse 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Apr Apr Apr Apr Apr Apr Apr Apr Apr Apr Apr Apr Apr Apr Apr Apr 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 13:52 13:52 13:52 13:52 13:52 13:52 13:52 13:52 13:52 13:52 13:52 13:52 13:52 13:52 13:52 13:52 cmdline cwd -> /suse/jj/t delay environ exe -> /bin/ls fd mapped_base maps mem mounts root -> / stat statm status task wchan La asignación de direcciones de ejecutables y de bibliotecas se encuentra en el archivo maps: $ cat /proc/self/maps 08048000-0804c000 r-xp 0804c000-0804d000 rw-p 0804d000-0806e000 rwxp 40000000-40016000 r-xp 40016000-40017000 rw-p 40017000-40018000 rw-p 4002b000-40135000 r-xp 40135000-4013d000 rw-p 4013d000-40141000 rw-p bfffe000-c0000000 rw-p ffffe000-fffff000 ---p 25.14 00000000 00003000 0804d000 00000000 00015000 40017000 00000000 0010a000 4013d000 bfffe000 00000000 03:02 03:02 00:00 03:02 03:02 00:00 03:02 03:02 00:00 00:00 00:00 22890 22890 0 10882 10882 0 10908 10908 0 0 0 /bin/cat /bin/cat /lib/ld-2.3.3.so /lib/ld-2.3.3.so /lib/tls/libc.so.6 /lib/tls/libc.so.6 vmstat, iostat y mpstat La utilidad vmstat informa de varias estadísticas de memoria virtual. Lee los archivos /proc/meminfo, /proc/stat y /proc/*/stat. Es útil para identificar los obstáculos del rendimiento del sistema. El comando iostat muestra estadísticas acerca de la CPU y de la entrada y salida de los dispositivos y particiones. La información mostrada se toma de los archivos /proc/stat y /proc/partitions. La salida se puede utilizar para equilibrar mejor la carga de entrada y de salida entre discos duros. El comando mpstat muestra estadísticas relacionadas con la CPU. Utilidades de monitorización del sistema 401 25.15 procinfo El comando procinfo resume información importante del sistema de archivos /proc: $ procinfo Linux 2.6.4-54.5-default (geeko@buildhost) (gcc 3.3.3 ) #1 1CPU [roth.suse.de] Memory: Mem: Swap: Total 516696 530136 Bootup: Wed Jul user : nice : system: idle : uptime: Used 513200 1352 Free 3496 528784 7 14:29:08 2004 2:42:28.08 0:31:57.13 0:38:32.23 3d 19:26:05.93 4d 0:22:25.84 1.3% 0.2% 0.3% 97.7% Shared 0 Buffers 43284 Load average: 0.07 0.04 0.01 1/126 5302 page in : 0 page out: 0 swap in : 0 swap out: 0 context :207939498 irq 0: 776561217 timer irq 8: 2 rtc irq 1: irq 9: 24300 VIA8233 irq 2: irq 3: 3 irq 12: 3435071 i8042 irq 4: 3 irq 14: 2236471 ide0 irq 6: 2 irq 15: 251 ide1 276048 i8042 0 cascade [4] irq 11: 38610118 acpi, eth0, uhci_hcd Para ver toda la información, utilice el parámetro -a. El parámetro -nN actualiza la información cada N segundos. En este caso, cierre el programa pulsando Q . Por defecto, se muestran los valores acumulativos. El parámetro -d produce los valores diferenciales. procinfo -dn5 muestra los valores que han cambiado en los últimos cinco segundos: Memory: Mem: Swap: Total 0 0 Used 2 0 Bootup: Wed Feb 25 09:44:17 2004 user : nice : system: idle : uptime: 402 64d 0:00:00.02 0:00:00.00 0:00:00.00 0:00:04.99 3:59:12.62 0.4% 0.0% 0.0% 99.6% Free -2 0 Shared 0 Buffers 0 Cached 0 Load average: 0.00 0.00 0.00 1/106 31902 page in : page out: swap in : swap out: context : 0 0 0 0 1087 disk disk disk disk 1: 2: 3: 4: 0r 0r 0r 0r 0w 0w 0w 0w irq irq irq irq irq irq 0: 1: 2: 6: 8: 9: 25.16 501 1 0 0 0 0 timer keyboard cascade [4] rtc acpi irq irq irq irq irq 10: 11: 12: 14: 15: 0 32 132 0 0 usb-uhci, usb-uhci ehci_hcd, usb-uhci, PS/2 Mouse ide0 ide1 Recursos PCI: lspci El comando lspci enumera los recursos PCI: $ lspci 00:00.0 Host bridge: VIA Technologies, Inc. \ VT8366/A/7 [Apollo KT266/A/333] 00:01.0 PCI bridge: VIA Technologies, Inc. \ VT8366/A/7 [Apollo KT266/A/333 AGP] 00:0b.0 Ethernet controller: Digital Equipment Corporation \ DECchip 21140 [FasterNet] (rev 22) 00:10.0 USB Controller: VIA Technologies, Inc. USB (rev 80) 00:10.1 USB Controller: VIA Technologies, Inc. USB (rev 80) 00:10.2 USB Controller: VIA Technologies, Inc. USB (rev 80) 00:10.3 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 82) 00:11.0 ISA bridge: VIA Technologies, Inc. VT8235 ISA Bridge 00:11.1 IDE interface: VIA Technologies, Inc. VT82C586/B/686A/B \ PIPC Bus Master IDE (rev 06) 00:11.5 Multimedia audio controller: VIA Technologies, Inc. \ VT8233 AC97 Audio Controller (rev 50) 01:00.0 VGA compatible controller: Matrox Graphics, Inc. \ MGA G550 AGP (rev 01) La utilización de -v da como resultado una lista más detallada: $ lspci -v [...] 01:00.0 \ VGA compatible controller: Matrox Graphics, Inc. MGA G550 AGP (rev 01) \ (prog-if 00 [VGA]) Subsystem: Matrox Graphics, Inc. Millennium G550 Dual Head DDR 32Mb Flags: bus master, medium devsel, latency 32, IRQ 10 Memory at d8000000 (32-bit, prefetchable) [size=32M] Memory at da000000 (32-bit, non-prefetchable) [size=16K] Memory at db000000 (32-bit, non-prefetchable) [size=8M] Expansion ROM at <unassigned> [disabled] [size=128K] Capabilities: <available only to root> La información relativa a la resolución del nombre de dispositivo se obtiene del archivo /usr/share/pci.ids. Los IDs de PCI que no aparecen en este archivo están marcados como “Unknown device” (Dispositivo desconocido). Utilidades de monitorización del sistema 403 El parámetro -vv produce toda la información que el programa podría solicitar. Para ver los valores numéricos puros, debería utilizar el parámetro -n. 25.17 Llamadas del sistema para ejecutar un programa: strace La utilidad strace le permite efectuar un seguimiento de todas las llamadas del sistema a un proceso que se ejecuta actualmente. Introduzca el comando del modo habitual, añadiendo strace al principio de la línea: $ strace -e open ls execve("/bin/ls", ["ls"], [/* 88 vars */]) = 0 uname({sys="Linux", node="edison", ...}) = 0 brk(0) = 0x805b000 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) \ = 0x40017000 open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=76333, ...}) = 0 old_mmap(NULL, 76333, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40018000 [...] ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 ioctl(1, TIOCGWINSZ, {ws_row=53, ws_col=110, ws_xpixel=897, ws_ypixel=693}) = 0 open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3 fstat64(3, {st_mode=S_IFDIR|0755, st_size=144, ...}) = 0 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 getdents64(3, /* 5 entries */, 4096) = 160 getdents64(3, /* 0 entries */, 4096) = 0 close(3) = 0 fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 48), ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) \ = 0x40018000 write(1, "ltrace-ls.txt myfile.txt strac"..., 41) = 41 munmap(0x40018000, 4096) = 0 exit_group(0) = ? Por ejemplo, para saber cuántas veces se ha intentado abrir un archivo en concreto, utilice lo siguiente: $ strace -e open ls myfile.txt open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 open("/lib/tls/librt.so.1", O_RDONLY) = 3 open("/lib/libacl.so.1", O_RDONLY) = 3 open("/lib/libselinux.so.1", O_RDONLY) = 3 open("/lib/tls/libc.so.6", O_RDONLY) = 3 open("/lib/tls/libpthread.so.0", O_RDONLY) = 3 404 open("/lib/libattr.so.1", O_RDONLY) = open("/proc/mounts", O_RDONLY) = [...] open("/proc/filesystems", O_RDONLY) = open("/proc/self/attr/current", O_RDONLY) 3 3 3 = 4 Para efectuar un seguimiento de todos los procesos secundarios, utilice el parámetro -f. El comportamiento y el formato de salida de strace se pueden controlar exhaustivamente. Para obtener información, consulte man strace. 25.18 Llamadas de la biblioteca para ejecutar un programa: ltrace El comando ltrace le permite efectuar un seguimiento de las llamadas de la biblioteca a un proceso. Este comando se utiliza de un modo similar a strace. El parámetro -c genera el número y la duración de las llamadas de biblioteca que se han producido: $ ltrace -c find /usr/share/doc % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------86.27 1.071814 30 35327 write 10.15 0.126092 38 3297 getdents64 2.33 0.028931 3 10208 lstat64 0.55 0.006861 2 3122 1 chdir 0.39 0.004890 3 1567 2 open [...] 0.00 0.000003 3 1 uname 0.00 0.000001 1 1 time ------ ----------- ----------- --------- --------- ---------------100.00 1.242403 58269 3 total 25.19 Especificación de la biblioteca necesaria: ldd El comando ldd se puede utilizar para buscar qué bibliotecas cargarían el ejecutable dinámico especificado como argumento: $ ldd /bin/ls linux-gate.so.1 => (0xffffe000) Utilidades de monitorización del sistema 405 librt.so.1 => /lib/tls/librt.so.1 (0x4002b000) libacl.so.1 => /lib/libacl.so.1 (0x40033000) libselinux.so.1 => /lib/libselinux.so.1 (0x40039000) libc.so.6 => /lib/tls/libc.so.6 (0x40048000) libpthread.so.0 => /lib/tls/libpthread.so.0 (0x4015d000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) libattr.so.1 => /lib/libattr.so.1 (0x4016d000) Los binarios estáticos no requieren bibliotecas dinámicas: $ ldd /bin/sash not a dynamic executable $ file /bin/sash /bin/sash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), \ for GNU/Linux 2.2.5, statically linked, stripped 25.20 Información adicional acerca de los binarios ELF El contenido de los binarios se puede leer con la utilidad readelf. Esto funciona incluso con los archivos ELF creados para otras arquitecturas de hardware: $ readelf --file-header /bin/ls ELF Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class: ELF32 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: EXEC (Executable file) Machine: Intel 80386 Version: 0x1 Entry point address: 0x8049b40 Start of program headers: 52 (bytes into file) Start of section headers: 76192 (bytes into file) Flags: 0x0 Size of this header: 52 (bytes) Size of program headers: 32 (bytes) Number of program headers: 9 Size of section headers: 40 (bytes) Number of section headers: 29 Section header string table index: 26 406 25.21 Comunicación entre procesos: ipcs El comando ipcs produce una lista de los recursos IPC que se encuentran actualmente en uso: $ ipcs ------ Shared Memory Segments -------key shmid owner perms 0x000027d9 5734403 toms 660 0x00000000 5767172 toms 666 0x00000000 5799941 toms 666 bytes 64528 37044 37044 ------ Semaphore Arrays -------key semid owner perms 0x000027d9 0 toms 660 1 ------ Message Queues -------key msqid owner 25.22 perms nattch status 2 2 2 nsems used-bytes messages Medición del tiempo con time El tiempo que los comandos tardan se puede determinar con la utilidad time. Esta utilidad está disponible en dos versiones: como complemento del shell y como programa (/usr/bin/time). $ time find . > /dev/null real user sys 0m4.051s 0m0.042s 0m0.205s Utilidades de monitorización del sistema 407 Parte VIII. Sistema 26 Aplicaciones de 32 bits y de 64 bits en un entorno de sistema de 64 bits SUSE Linux es compatible con varias plataformas de 64 bits. Esto no significa necesariamente que todas las aplicaciones incluidas se hayan trasladado a plataformas de 64 bits. SUSE Linux admite aplicaciones de 32 bits en entornos de sistema de 64 bits. Este capítulo ofrece una breve descripción general acerca de cómo se implementa esta compatibilidad en las plataformas SUSE Linux de 64 bits y explica cómo ejecutar las aplicaciones de 32 bits (compatibilidad en tiempo de ejecución) y cómo se deben compilar las aplicaciones de 32 bits para que puedan ejecutarse tanto en entornos de sistema de 32 bits como de 64 bits. Además, encontrará información acerca de la API de núcleo y de cómo pueden ejecutarse aplicaciones de 32 bits en un núcleo de 64 bits. SUSE Linux para plataformas de 64 bits AMD64 y EM64T ha sido diseñado para poder ejecutar las aplicaciones de 32 bits existentes en los entornos de 64 bits “tal cual”. Esta compatibilidad hace posible que pueda seguir utilizando sus aplicaciones de 32 bits preferidas sin tener que esperar a que aparezca en el mercado el puerto de 64 bits correspondiente. 26.1 Asistencia sobre tiempo de ejecución IMPORTANTE: Conflictos entre diferentes versiones de aplicaciones Si hay una aplicación disponible tanto para entornos de 32 bits como de 64 y se instalan las dos versiones paralelamente, es inevitable que se produzcan Aplicaciones de 32 bits y de 64 bits en un entorno de sistema de 64 bits 411 problemas. En estos casos, tendrá que optar por instalar y utilizar sólo una de las dos versiones. Para que las aplicaciones se puedan ejecutar correctamente, es necesario disponer de ciertas bibliotecas. Desafortunadamente, los nombres de las versiones de 32 bits y 64 bits de estas bibliotecas son idénticos. Es necesario distinguirlos de otra forma. Para mantener la compatibilidad con la versión de 32 bits, las bibliotecas se almacenan en el mismo sitio del sistema que en el entorno de 32 bits. La versión de 32 bits de libc.so.6 se encuentra en /lib/libc.so.6 tanto en el entorno de 32 bits como en el de 64. Todas las bibliotecas de 64 bits y los archivos de objeto se ubican en directorios llamados lib64. Los archivos de objeto de 64 bits que normalmente se suelen encontrar en /lib, /usr/lib y /usr/X11R6/lib, están ahora en /lib64, /usr/lib64 y /usr/X11R6/lib64. Esto significa que habrá un lugar reservado para las bibliotecas de 32 bits en /lib, /usr/lib y /usr/X11R6/lib para que no sea necesario cambiar el nombre de archivo para las dos versiones. Los subdirectorios de los directorios de objeto cuyos datos no dependen del tamaño de palabra no se han cambiado de sitio. Por ejemplo, las fuentes X11 siguen estando en su ubicación habitual, /usr/X11R6/lib/X11/fonts. Este esquema sigue las directrices de los estándares LSB (base de estándares de Linux, del inglés Linux Standards Base) y FHS (estándar jerárquico del sistema de archivos, del inglés File System Hierarchy Standard). 26.2 Desarrollo de software Existe una cadena de herramientas de desarrollo de doble arquitectura que permite generar objetos de 32 bits y de 64 bits. La opción por defecto es compilar objetos de 64 bits, aunque es posible generar objetos de 32 bits mediante indicadores especiales. En GCC, este indicador especial es -m32. Todos los archivos de encabezado deben escribirse de forma independiente de la arquitectura. Las bibliotecas de 32 y 64 bits instaladas deben tener una API (interfaz de programación de aplicaciones) que coincida con los archivos de encabezado instalados. El entorno SUSE normal se ha diseñado siguiendo este principio. En las bibliotecas que haya actualizado manualmente tendrá que resolver estos problemas usted mismo. 412 26.3 Compilación de software en plataformas de doble arquitectura En una doble arquitectura, para poder desarrollar binarios para la otra arquitectura es necesario instalar adicionalmente las respectivas bibliotecas para la segunda arquitectura. Estos paquetes se denominan rpmname-32bit. También es necesario disponer de los respectivos encabezados y bibliotecas procedentes de los paquetes rpmname-devel y de las bibliotecas de desarrollo para la segunda arquitectura procedentes de rpmname-devel-32bit. La mayoría de los programas de código abierto utilizan una configuración basada en el comando autoconf. Para utilizar autoconf para configurar un programa para la segunda arquitectura, sobrescriba el compilador normal y los ajustes de enlazador de autoconf ejecutando el guión configure con variables de entorno adicionales. El ejemplo que sigue hace referencia a un sistema AMD64 o EM64T con x86 como segunda arquitectura: 1. Defina autoconf para utilizar el compilador de 32 bits: CC="gcc -m32" 2. Ordene al enlazador que procese objetos de 32 bits: LD="ld -m elf64_i386" 3. Defina el ensamblador para que genere objetos de 32 bits: AS="gcc -c -m32" 4. Indique que las bibliotecas para libtool etc. provienen de /usr/lib: LDFLAGS="-L/usr/lib" 5. Indique que las bibliotecas se almacenen en el directorio lib: --libdir=/usr/lib Aplicaciones de 32 bits y de 64 bits en un entorno de sistema de 64 bits 413 6. Indique que se utilicen las bibliotecas X de 32 bits: --x-libraries=/usr/X11R6/lib/ No todos los programas necesitan todas estas variables. Adáptelas al programa en cuestión. CC="gcc -m64" \ LDFLAGS="-L/usr/lib64;" \ .configure \ --prefix=/usr \ --libdir=/usr/lib64 make make install 26.4 Especificaciones de núcleo Los núcleos de 64 bits para AMD64 y EM64T ofrecen una interfaz ABI (interfaz binaria de aplicaciones) de núcleo tanto de 64 bits como de 32 bits. Esta última es idéntica a la ABI para el núcleo de 32 bits correspondiente. Esto significa que la aplicación de 32 bits se puede comunicar con el núcleo de 64 bits de la misma forma que con el núcleo de 32 bits. La emulación de 32 bits de las llamadas del sistema de un núcleo de 64 bits no es compatible con algunas interfaces API que emplean los programas de sistema. Esto dependerá de la plataforma. Por este motivo, un pequeño número de aplicaciones, como lspci o los programas de administración LVM, deben compilarse como programas de 64 bits para poder funcionar correctamente. Los núcleos de 64 bits sólo pueden cargar módulos de núcleos de 64 bits especialmente compilados para este núcleo. No es posible utilizar módulos de núcleos de 32 bits. SUGERENCIA Algunas aplicaciones exigen módulos de carga de núcleos independientes. Si tiene intención de utilizar una aplicación de 32 bits en un entorno de sistema de 64 bits, póngase en contacto con el proveedor de esta aplicación y de SUSE para asegurarse de que puede adquirir para este módulo la versión de 64 bits del módulo de carga de núcleos y la versión compilada de 32 bits de la API de núcleo. 414 Cómo trabajar con la shell 27 Las interfaces gráficas de usuario son cada vez más importantes para Linux, aunque el uso del ratón no es siempre la mejor manera de realizar las tareas diarias. La línea de comando ofrece gran flexibilidad y eficacia. Las aplicaciones basadas en texto son especialmente importantes para controlar los equipos por enlaces de red lentos o si desea realizar tareas como usuario Root en la línea de comando en xterm. La shell Bash es el que interpreta por defecto la línea de comando en SUSE Linux. Linux es un sistema multiusuario y el acceso a los archivos se controla mediante los permisos de usuario. Tanto si usa la línea de comando como si emplea una GUI (interfaz gráfica de usuario), es útil entender el concepto de "permiso". Cuando se usa la línea de comando, hay un buen número de comandos importantes. El editor de texto vi se usa con frecuencia al configurar un sistema desde la línea de comando. También es muy popular entre los administradores de sistemas y los desarrolladores. 27.1 Uso de la shell Bash en la línea de comando En la barra de tareas de KDE se encuentra un icono que representa un monitor con una concha. Al hacer clic en él, se abrirá una ventana de terminal en la que introducir los comandos. Konsole, el programa de terminal, normalmente ejecuta la shell Bash (Bourne again shell), un programa desarrollado como parte del proyecto GNU. En el escritorio de GNOME, haga clic en un icono con un monitor de PC en el panel superior para iniciar un terminal que normalmente ejecuta la shell Bash. Cómo trabajar con la shell 415 Una vez abierto la shell, vea el indicador de la primera línea. El indicador consiste normalmente en el nombre de usuario, el nombre del host y la vía actual, pero puede personalizarse. Cuando el cursor está situado después del indicador, puede enviar comandos directamente al equipo. 27.1.1 Introducción de comandos Los comandos están compuestos de varios elementos. El primero siempre es el propio comando, seguido de parámetros u opciones. Los comandos se ejecutan al pulsar Intro . Antes de hacerlo, edite la línea de comando, añada opciones o corrija errores de escritura. Uno de los comandos usados con más frecuencia es ls, que puede utilizarse con o sin argumentos. Si se introduce sólo el comando ls, se mostrará el contenido del directorio actual. Las opciones llevan delante un guión. El comando ls -l, por ejemplo, muestra los contenidos del mismo directorio con todos los detalles (formato de lista largo). Junto a cada nombre de archivo, está la fecha en la que se creó, el tamaño en bytes y algunos detalles más que se explicarán más adelante. Una opción importante que existe para muchos comandos es --help. Al introducir ls --help, se muestran todas las opciones del comando ls. Es importante colocar las “comillas” correctamente. Si un nombre de archivo tiene un espacio, evite el espacio mediante una barra invertida (\) o ponga el nombre del archivo entre comillas simples o dobles. De lo contrario la shell Bash interpretará un nombre de archivo como Mis documentos como los nombres de dos archivos o directorios. La diferencia entre comillas sencillas y dobles es que la expansión de las variables se produce con las dobles. Las sencillas aseguran que la shell interpreta la cadena entrecomillada literalmente. 27.1.2 Archivos y directorios Para usar la shell de manera eficiente, es muy útil contar con algún conocimiento de las estructuras de archivos y directorios de un sistema Linux. Puede pensar en los directorios como carpetas electrónicas en las que se almacenan archivos, programas y subdirectorios. El directorio de nivel superior en la jerarquía es el directorio raíz al que se hace referencia como /. Este es el lugar desde el que se puede acceder a todos los demás directorios. 416 El directorio /home contiene los directorios en los que los usuarios individuales pueden almacenar sus archivos personales. La Figura 27.1, “Extracto de un árbol de directorios estándar” (p. 417) muestra el árbol de directorios estándar en Linux, con los directorios personales de los usuarios de ejemplo xyz, linux y tux. El árbol de directorios de un sistema Linux cuenta con una estructura funcional que sigue el estándar jerárquico del sistema de archivos (FHS). En la siguiente lista se ofrece una breve descripción de los directorios estándar en Linux. Figura 27.1 Extracto de un árbol de directorios estándar / bin boot dev etc home lib mnt media vmlinuz kde opt proc root srv sbin sys tmp usr var gnome ld.so hda sda st0 yxz bin linux tux bin X11R6 test.c Mail bin xdm xterm etc lib local sbin share f2c lib xv man bin bin lib lib ftp pub man faq doc howto man packages / Directorio raíz, punto de inicio del árbol de directorios /home Directorios personales de los usuarios /dev Archivos de dispositivo que representan componentes de hardware /etc Archivos importantes para la configuración del sistema /etc/init.d Guiones de arranque Cómo trabajar con la shell 417 /usr/bin Programas a los que se accede con frecuencia /bin Programas que se necesitan primero en el proceso de arranque /usr/sbin Programas reservados para el administrador del sistema /sbin Programas reservados para el administrador del sistema y necesarios para el arranque /usr/include Archivos de encabezado para el compilador C /usr/include/g++ Archivos de encabezado para el compilador C++ /usr/share/doc Diversos archivos de documentación /usr/share/man Lista concisa de comandos del sistema (páginas Man) /usr/src Código fuente del software de sistema /usr/src/linux Código fuente del núcleo /tmp, /var/tmp Archivos temporales /usr Todos los programas de aplicaciones /var Archivos de configuración (como los enlazados desde /usr) /var/log Archivos de registro del sistema 418 /var/adm Datos de administración del sistema /lib Bibliotecas compartidas (para programas enlazados dinámicamente) /proc Sistema de archivos de proceso /sys Sistema de archivos del sistema en el que se reúne la información del dispositivo para el núcleo /usr/local Extensiones locales independientes de la distribución /opt Software opcional, paquetes de programas adicionales más grandes (como KDE, GNOME, Netscape) 27.1.3 Características de la shell Bash Hay dos características importantes de la shell que pueden hacer que su trabajo sea mucho más fácil: Histórico Para repetir un comando que se ha introducido anteriormente, pulse ↑ hasta que aparezca el comando anterior en el indicador. Desplácese por la lista de los comandos previamente introducidos pulsando ↓ . Para editar la línea de comando, mueva el cursor a la posición que quiera mediante las teclas de flecha y comience a escribir. Utilice Ctrl + R para buscar en el historial. Completar Completa el nombre del archivo en toda su extensión después de escribir las primera letras hasta que se identifica perfectamente. Para utilizar esta función, escriba las primeras letras y después pulse Tabul . Si hay varios nombres de archivos que empiezan por las mismas letras, obtenga una lista de ellos pulsando Tabul dos veces. Cómo trabajar con la shell 419 Primer ejemplo: Gestión de archivos Ahora que ya sabe cómo es un comando, los directorios que existen en SUSE Linux y cómo se pueden acelerar algunos procesos mediante la shell Bash, ponga en práctica este conocimiento con un pequeño ejercicio. 420 1. Abra una consola desde el escritorio de KDE o GNOME haciendo clic en el icono de la concha. 2. Escriba el comando ls para ver los contenidos del directorio personal. 3. Utilice el comando mkdir (que significa crear directorio) para crear un nuevo subdirectorio denominado test escribiendo mkdir test. 4. Ahora inicie un editor pulsando Alt + F2 y escriba kate para lanzar Kate en KDE y gedit para lanzar Gedit en GNOME. Escriba unas cuantas letras en el editor y guarde el archivo como Archivoprueba en el directorio personal. Linux distingue entre mayúsculas y minúsculas. Para este ejemplo, utilice una A mayúscula. 5. Vuelva a ver el contenido del directorio personal. En lugar de escribir ls de nuevo, pulse ↑ dos veces y el comando ls debería volver a aparecer en el indicador. Pare ejecutar el comando, pulse Intro . El directorio recién creado test debería aparecer con letras azules y Archivoprueba en negro. Esta es la forma en que directorios y archivos pueden distinguirse en la consola. 6. Mueva Archivoprueba al subdirectorio test con el comando mv. Para acelerar este proceso, utilice la función de expansión: escriba solamente mv A y pulse Tabul . Puesto que no hay ningún otro archivo que comience por esa letra en el directorio, la shell expandirá el nombre del archivo y añadirá la cadena rchivoprueba. Si no es así, añada una letra o dos y pruebe pulsando Tabul cada vez para ver si la shell puede expandir ahora el nombre. Finalmente, escriba un espacio, a continuación test después del nombre del archivo expandido y pulse Intro para ejecutar el comando. 7. En este momento, Archivoprueba no debería estar ya en el directorio. Compruébelo escribiendo ls de nuevo. 8. Para ver si el archivo se ha movido con éxito, cambie al directorio test con el comando cd test. Ahora introduzca ls de nuevo. Debería ver Archivoprueba en la lista. Vuelva a su directorio personal en cualquier momento escribiendo sólo cd. 9. Para hacer una copia de un archivo, utilice el comando cp. Por ejemplo, escriba cp Archivoprueba Copiaprueba para copiar Archivoprueba enCopiaprueba. Una vez más, el comando ls se puede emplear para ver si ambos archivos están en el directorio. 27.1.4 Especificación de vías Al trabajar con archivos o directorios, es importante especificar la vía correcta. Sin embargo, no necesita escribir la vía (absoluta) completa desde el directorio raíz hasta el archivo en concreto. Puede empezar desde el directorio actual. Diríjase al directorio personal directamente con ~. Esto quiere decir que hay dos formas de mostrar el archivo Archivoprueba en el directorio test: introduciendo la vía relativa con ls test o especificando la vía absoluta con ls ~/test. Para mostrar los contenidos de los directorios personales de los otros usuarios, introduzca ls ~nombre_usuario. En el árbol de directorios de ejemplo, unos de los usuarios de muestra es tux. En este caso, ls ~tux mostraría los contenidos del directorio personal de tux. Para referirse al directorio actual, utilice un punto (.). El siguiente nivel superior en el árbol está representado por dos puntos (..). Al introducir ls .., verá los contenidos del directorio padre correspondientes al directorio actual. El comando ls ../.. muestra los contenidos del directorio dos niveles por encima en la jerarquía. Segundo ejemplo: trabajo con vías A continuación se muestra otro ejemplo para ilustrar cómo moverse por los directorios del sistema SUSE Linux. 1. Cambie al directorio personal mediante el comando cd. Después cree un directorio en él con el nombre test2 introduciendo mkdir test2. 2. Cambie al nuevo directorio con cd test2 y cree un subdirectorio con el nombre subdirectorio. Para acceder a él, use la función de expansión: Cómo trabajar con la shell 421 escriba cd su y luego pulse directorio. 3. Tabul . La shell recuperará el resto del nombre del Ahora intente mover el archivo creado previamente Copiaprueba al directorio actual (subdirectorio) sin cambiar de directorio de nuevo. Para conseguirlo, especifique la vía relativa a ese archivo: mv ../../test/Copiaprueba . (tenga en cuenta el punto al final). El punto al final de este comando es necesario para indicar a la shell que el directorio actual es el destino al que desea mover el archivo. ../../, en este ejemplo, se refiere al directorio personal. 27.1.5 Comodines Otra característica que ofrece la shell son los comodines para la expansión del nombre de la vía. Existen tres tipos distintos de ellos en Bash: ? Coincide exactamente con un carácter arbitrario * Coincide con cualquier número de caracteres [set] Coincide con uno de los caracteres del grupo especificado dentro de los corchetes, que aquí está representado por la cadena set. Como parte de set también puede especificar clases de caracteres mediante la sintaxis [:clase:], donde una clase puede ser alnum, alpha, ascii, etc. Con el uso de ! o ^ al principio del grupo ([!set]) coincide con un carácter distinto de los identificados por set. Si suponemos que el directorio test contiene los archivos Archivoprueba, Archivoprueba1, Archivoprueba2 y archivodatos, el comando ls Archivoprueba? mostrará los archivos Archivoprueba1 y Archivoprueba2 . Con ls Archivo*, la lista también incluirá Archivoprueba. ls *prueb* mostrará todos los archivos de muestra. Finalmente puede usar el comodín set para buscar todos los archivos de muestra cuyo último carácter sea un número: ls Archivoprueba[1-9] o mediante la utilización de clases, ls Archivoprueba[[:digit:]]. 422 De los cuatro tipos de comodines, el más amplio es el asterisco. Puede usarse para copiar todos los archivos de un directorio en otro o suprimir todos los archivos con un comando. El comando rm *prueb*, por ejemplo, suprimiría todos los archivos del directorio actual cuyos nombres incluyan la cadena prueb. 27.1.6 Less y More Linux incluye dos pequeños programas para ver archivos de texto directamente en la shell. En lugar de iniciar un editor para leer un archivo como Leame.txt, simplemente introduzca less Leame.txt para mostrar el texto en la ventana de la consola. Utilice la barra espaciadora para bajar una página. Utilice Re Pág y Av Pág para avanzar o retroceder en el texto. Para salir de less, pulse Q . En lugar de less, también puede utilizar el programa más antiguo more. Sin embargo, es menos conveniente porque no le permite desplazarse hacia atrás. El programa less (menos) debe su nombre a la frase menos es más y puede usarse también para ver la salida de los comandos de una manera adecuada. Para ver cómo funciona, lea la Sección 27.1.7, “Conductos y redirección” (p. 423). 27.1.7 Conductos y redirección Normalmente, la salida estándar en la shell es la pantalla o la ventana de la consola y la entrada estándar es el teclado. Para remitir la salida de un comando a una aplicación como less, use un conducto. Para ver los archivos del directorio test, escriba el comando ls test | less. Los contenidos del directorio test se mostrarán con less. Sólo tiene sentido hacerlo de esta forma si la salida normal con ls es demasiado larga. Por ejemplo, si ve los contenidos del directorio dev con ls /dev, sólo verá una parte pequeña en la ventana. Vea la lista completa con ls /dev | less. También es posible guardar la salida de comandos en un archivo. Por ejemplo, echo "test uno" > Contenido genera un nuevo archivo denominado Contenido que incluye las palabras test uno. Vea el archivo con less Contenido. También puede usar un archivo como la entrada de un comando. Por ejemplo, con tr se sustituyen caracteres desde una entrada estándar que se ha redirigido desde el archivo Cómo trabajar con la shell 423 Contenido y se escribe el resultado en una salida estándar: sustituir t con x llamando tr t x < Contenido. La salida de tr se envía a la pantalla. Si necesita un archivo nuevo que contenga la salida, con la ayuda de un conducto lleve la salida de tr a un archivo. Para comprobarlo, cambie a test e introduzca el comando tr t x < ../Contenido > nuevo. Finalmente, vea nuevo con less nuevo. Al igual que la salida estándar, la salida de error estándar se enviará a la consola. Sin embargo, para redirigir la salida de error estándar a un archivo denominado errores, añada al final 2> errores al comando correspondiente. Tanto la salida como el error estándar se guardarán en un archivo denominado todasalida si añade al final >& todasalida. Finalmente, para unir la salida de un comando a un archivo ya existente, el comando debe ir seguido de >> en lugar de >. 27.1.8 Archivos de reserva y compresión de datos Ahora que ya ha creado un buen número de archivos y directorios, ha llegado el momento de saber más sobre los archivos de reserva y la compresión de datos. Supongamos que desea empaquetar todo el directorio test en un archivo que pueda guardar en un dispositivo de almacenamiento USB stick como copia de seguridad o enviarlo por correo electrónico. Para ello, use el comando tar (que corresponde a tape archiver, utilidad Tar). Con tar --help, verá todas las opciones del comando tar. Las opciones más importantes se explican a continuación: -c (que corresponde a "create", crear) Crea un archivo de reserva nuevo. -t (que corresponde a "table", tabla) Muestra los contenidos de un archivo de reserva. -x (que corresponde a "extract", extraer) Desempaqueta el archivo de reserva. -v (que corresponde a "verbose", detallado) Muestra todos los archivos en pantalla mientras crea el archivo de reserva. 424 -f (que corresponde a "file", archivo) Seleccione un nombre de archivo para el de reserva. Al crear un archivo de reserva, esta opción siempre debe ser la última. Para empaquetar el directorio test con todos sus archivos y subdirectorios en un archivo de reserva denominadoarchivoprueba.tar, utilice las opciones -c y -f. Para hacer comprobaciones, añada también -v para seguir el progreso del archivo de reserva aunque esta opción no es obligatoria. Después de usar cd para cambiar al directorio personal, donde está ubicado el directorio test, introduzca tar -cvf archivoprueba.tar test. Después, vea el contenido del archivo de reserva con tar -tf archivoprueba.tar. El directorio test con todos sus archivos y directorios permanece sin cambios en el disco duro. Para desempaquetar el archivo de reserva, introduzca tar -xvf archivoprueba.tar, pero no lo haga todavía. Para la compresión de archivos, la opción obvia es gzip o para obtener una mejor tasa de compresión bzip2. Sólo tiene que introducir gzip archivoprueba.tar (o bzip2 archivoprueba.tar, aunque en este ejemplo se usará gzip). Con el comando ls, compruebe que el archivo archivoprueba.tar ya no está ahí y que se ha creado en su lugar el archivo archivoprueba.tar.gz. Este archivo es mucho más pequeño y por tanto más adecuado para enviarlo por correo electrónico o almacenarlo en un dispositivo de almacenamiento USB stick. A continuación, desempaquete este archivo en el directorio test2 creado anteriormente. Para ello, introduzca cp archivoprueba.tar.gz test2 para copiar el archivo en ese directorio. Cambie al directorio con cd test2. Los archivos de reserva comprimidos con la extensión .tar.gz se pueden descomprimir con el comandogunzip. Introduzca gunzip archivoprueba.tar.gz, que dará como resultado el archivo archivoprueba.tar, que deberá extraerse o descomprimirse el archivo tar con tar -xvf archivoprueba.tar. También puede descomprimir y extraer un archivo de reserva comprimido en un único paso con tar -xvf archivoprueba.tar.gz (ya no es necesario añadir la opción -z). Con el comando ls, podrá ver que se ha creado un nuevo directorio test con el mismo contenido que el directorio test situado en el directorio personal. 27.1.9 mtools mtools es un conjunto de comandos para trabajar con sistemas de archivos MS-DOS. Los comandos incluidos en mtools le permiten dirigirse a la primera unidad de dis- Cómo trabajar con la shell 425 quetes como a:, igual que en MS-DOS. Los comandos son como los de MS-DOS excepto en el hecho de que llevan delante una m. mdir a: Muestra el contenido del disquete de la unidad a: mcopy Archivoprueba a: Copia el archivo Archivoprueba en el disquete mdel a:Archivoprueba Suprime Archivoprueba en a: mformat a: Da formato al disquete con formato de MS-DOS (mediante el comando fdformat) mcd a: Hace que a: sea el directorio actual mmd a:test Crea el subdirectorio test en un disquete mrd a:test Suprime el subdirectorio test del disquete 27.1.10 Limpieza Después de este curso intensivo, debería estar familiarizado con la parte básica de la shell de Linux o la línea de comando. Es posible que quiera limpiar el directorio personal suprimiendo los archivos y directorios de pruebas mediante los comandos rm y rmdir. En la Sección 27.3, “Comandos importantes de Linux” (p. 433), encontrará una lista de los comandos más importantes y una breve descripción de sus funciones. 27.2 Usuarios y permisos de acceso Desde su inicio a principios de 1990, Linux se ha desarrollado como un sistema multiusuario. Puede trabajar en él cualquier número de usuarios a la vez. Los usuarios tienen que iniciar la sesión en el sistema antes de iniciarla en sus estaciones de trabajo. Cada usuario tiene un nombre asignado y la contraseña correspondiente. Esta diferenciación 426 de usuarios garantiza que usuarios no autorizados no puedan ver archivos para los que no tienen permiso. De igual modo, los usuarios normales tampoco pueden realizar cambios importantes en el sistema (como la instalación de nuevos programas) o tienen restringida la capacidad de realizarlos. Sólo el usuario Root, o súperusuario, tiene una capacidad sin restricciones para realizar cambios al sistema y cuenta con acceso ilimitado a todos los archivos. Los usuarios que utilicen esta capacidad prudentemente iniciando sesión solamente con acceso completo de usuario Root cuando sea necesario, podrán reducir el riesgo de pérdida no intencionada de datos. Debido a que en circunstancias normales sólo el usuario Root puede suprimir archivos de sistema o dar formato a los discos duros, la amenaza de troyanos o la introducción accidental de comandos destructivos puede reducirse significativamente. 27.2.1 Permisos del sistema de archivos Fundamentalmente, cada archivo de un sistema de archivos Linux pertenece a un usuario o a un grupo. Tanto estos grupos exclusivos como todos los demás pueden tener autorización para modificar, leer o ejecutar estos archivos. Un grupo, en este caso, puede definirse como un conjunto de usuarios conectados con algunos derechos colectivos. Por ejemplo, supongamos que llamamos a un grupo que trabaja en un proyecto concreto el nombre de proyecto3. Cada usuario de un sistema Linux pertenece al menos a un grupo exclusivo, normalmente users. Puede haber tantos grupos como necesite un sistema pero sólo el usuario Root puede añadirlos. Todos los usuarios pueden emplear el comando groups para averiguar a qué grupo pertenecen. Acceso a archivos La organización de permisos en el sistema de archivos difiere para archivos y directorios. La información de los permisos de archivos puede mostrarse con el comando ls -l. La salida podría ser parecida al Ejemplo 27.1, “Salida de muestra en la que aparecen los permisos de archivos” (p. 427). Ejemplo 27.1 Salida de muestra en la que aparecen los permisos de archivos -rw-r----- 1 tux proyecto3 14197 Jun 21 15:03 Roadmap Tal y como se muestra en la tercera columna, este archivo pertenece al usuario tux. Está asignado al grupo proyecto3. Para descubrir los permisos de usuario del archivo Roadmap, hay que examinar la primera columna con detenimiento. Cómo trabajar con la shell 427 - rw- r-- --- Tipo Permisos de usuarios Permisos de grupo Permisos para otros usuarios Esta columna consiste en un carácter inicial seguido de nueve caracteres agrupados en árboles. La primera de las diez letras representa el tipo del componente del sistema de archivos. El guión (–) indica que es un archivo. También se podría indicar un directorio (d), un enlace (l), un dispositivo de bloque (b) o un dispositivo de caracteres. Los siguientes tres bloques siguen un patrón estándar. Los primeros tres caracteres indican si el archivo es legible (r) o no (–). Una w en la parte intermedia simboliza que el objeto correspondiente puede editarse y un guión (–) significa que no es posible escribir en el archivo. Una x en la tercera posición indica que el objeto puede ejecutarse. Debido a que el archivo de este ejemplo es un archivo de texto y no un ejecutable, no es necesario el acceso ejecutable para este archivo en concreto. En este ejemplo, tux tiene, como propietario del archivo Roadmap, acceso de lectura (r) y escritura (w) a él, pero no puede ejecutarlo (x). Los miembros del grupo proyecto3 pueden leer el archivo pero no pueden modificarlo ni ejecutarlo. Los otros usuarios no cuentan con ningún acceso a este archivo. Los otros permisos se pueden asignar por medio de las ACL (listas de control de acceso). Consulte la Sección 27.2.6, “Listas de control de acceso” (p. 432) para obtener información básica. Permisos de directorio Los permisos de acceso para directorios tienen el tipo d. En el caso de directorios, los permisos individuales tienen un significado ligeramente distinto. Ejemplo 27.2 Salida de muestra en el que aparecen los permisos de directorios drwxrwxr-x 1 tux proyecto3 35 Jun 21 15:15 ProjectData En el Ejemplo 27.2, “Salida de muestra en el que aparecen los permisos de directorios” (p. 428), el propietario (tux) y el grupo (proyecto3) que posee el directorio ProjectData son fáciles de reconocer. A diferencia de los permisos de acceso a los archivos de Acceso a archivos (p. 427), el permiso de lectura definido (r) significa que los contenidos del directorio pueden mostrarse. El permiso de 428 escritura (w) significa que se pueden crear nuevos archivos. El permiso ejecutable (x) significa que el usuario puede cambiar a este directorio. En el ejemplo anterior, el usuario tux además de los miembros del grupo proyecto3 pueden cambiar al directorio ProjectData (x), ver los contenidos (r) y añadir o suprimir archivos (w). Al resto de los usuarios, por otra parte, se les ha otorgado un nivel de acceso inferior. Pueden entrar en el directorio (x) y examinarlo (r), pero no insertar ningún nuevo archivo (w). 27.2.2 Modificación de los permisos de archivo Cambio de los permisos de acceso Tanto el propietario como, por supuesto, el usuario Root pueden cambiar los permisos de acceso de un archivo o directorio con el comando chmod seguido por los parámetros que cambian los permisos además de uno o varios nombres de archivos. Los parámetros forman distintas categorías: 1. Respecto a los usuarios • u (usuario): propietario del archivo • g (grupo): grupo al que pertenece el archivo • o (otros): usuarios adicionales (si no hay ningún parámetro, los cambios se aplicarán a todas las categorías) 2. Un carácter que suprimir (–), ajuste (=) o inserción (+) 3. Las abreviaturas • r: leer • w: escribir • x: ejecutar 4. Nombre o nombres de archivo separados por espacios Cómo trabajar con la shell 429 Si, por ejemplo, el usuario tux en el Ejemplo 27.2, “Salida de muestra en el que aparecen los permisos de directorios” (p. 428) también desea conceder a otros usuarios acceso de escritura (w) al directorio ProjectData, puede hacerlo mediante el comando chmod o+w ProjectData. Si, por el contrario, desea denegar a todos los usuarios excepto a sí mismo los permisos de escritura, puede hacerlo introduciendo el comando chmod go-w ProjectData. Para prohibir a todos los usuarios que puedan añadir un archivo nuevo a la carpeta ProjectData, introduzca chmod -w ProjectData. Ahora, ni siquiera el propietario podrá escribir en el archivo sin tener que restablecer primero los permisos de escritura. Cambio de los permisos de propiedad Otros comandos importantes para controlar la propiedad y permisos de los componentes del sistema de archivos son chown (cambiar propietario) y chgrp (cambiar grupo). Se puede usar el comando chown para transferir la propiedad de un archivo a otro usuario. Sin embargo, sólo el usuario Root tiene permiso para realizar este cambio. Supongamos que el archivo Roadmap del Ejemplo 27.2, “Salida de muestra en el que aparecen los permisos de directorios” (p. 428) ya no pertenece a tux, sino al usuario geeko. El usuario Root debería introducir chown geeko Roadmap. chgrp cambia la propiedad del grupo del archivo. Sin embargo, el propietario del archivo debe ser un miembro del grupo nuevo. De este modo, el usuario tux del Ejemplo 27.1, “Salida de muestra en la que aparecen los permisos de archivos” (p. 427) puede cambiar el grupo al que pertenece el archivo ProjectData a proyecto4 mediante el comando chgrp proyecto4 ProjectData, mientras sea un miembro de este nuevo grupo. 27.2.3 El bit setuid En algunos casos, los permisos de acceso pueden ser demasiado restrictivos. Por tanto, Linux cuenta con ajustes adicionales que permiten el cambio temporal del usuario y la identidad del grupo actuales para una acción en concreto. Por ejemplo, el programa passwd normalmente necesita permisos de usuario Root para acceder a /etc/passwd . Este archivo contiene información importante como los directorios personales de los usuarios o los ID de usuario y de grupo. Por tanto, un usuario normal no podría cambiar 430 passwd, porque sería demasiado peligroso otorgar a todos los usuarios acceso directo a este archivo. Una solución posible a este problema es el mecanismo setuid. setuid (definir ID de usuario) es un atributo de archivo especial que indica al sistema que debe ejecutar los programas marcados con un ID de usuario en concreto. Considere el comando passwd: -rwsr-xr-x 1 root shadow 80036 2004-10-02 11:08 /usr/bin/passwd Puede ver que la s indica que el bit setuid está definido para el permiso del usuario. Mediante el bit setuid, todos los usuarios que inician el comando passwd lo ejecutan como usuario Root. 27.2.4 El bit setgid El bit setuid se aplica a los usuarios. Sin embargo, hay también una propiedad equivalente para grupos: el bit setgid. Un programa para el que se ha definido este bit se ejecuta con el ID de grupo con el que se ha guardado, sin importar el usuario que lo inicia. Por tanto, en un directorio con el bit setgid, todos los archivos o subdirectorios recién creados se asignan al grupo al que pertenece el directorio. Considere el directorio de ejemplo siguiente: drwxrws--- 2 tux archive 48 Nov 19 17:12 backup Puede observar que la s indica que el bit setgid está definido para el permiso de grupo. El propietario del directorio y los miembros del grupo archive pueden acceder a este directorio. Los usuarios que no sean miembros de este grupo se “asignan” al grupo respectivo. El ID de grupo vigente de todos los archivos escritos será archive. Por ejemplo, un programa de copia de seguridad que se ejecuta con el ID de grupo archive es capaz de acceder a este directorio incluso sin privilegios de usuario Root. 27.2.5 El bit adhesivo Existe también el bit adhesivo. Es distinto si pertenece a un programa o a un directorio ejecutable. Si pertenece a un programa, un archivo marcado de esta forma se carga en la RAM para evitar la necesidad de obtenerlo del disco duro cada vez que se usa. Este atributo apenas se utiliza porque los discos duros modernos son lo suficientemente rápidos. Si este bit se asigna a un directorio, impide que los usuarios supriman los archivos de otros usuarios. Los ejemplos típicos incluyen los directorios /tmp y /var/tmp: Cómo trabajar con la shell 431 drwxrwxrwt 2 root root 1160 2002-11-19 17:15 /tmp 27.2.6 Listas de control de acceso El concepto tradicional de permiso para los objetos del sistema de archivos de Linux, como los archivos o directorios, se puede ampliar mediante las ACL (listas de control de acceso). Estas listas permiten la asignación de permisos para usuarios o grupos individuales distintos al propietario o grupo propietario originales de un objeto del sistema de archivos. Los archivos o directorios que llevan permisos de acceso extendidos pueden detectarse con un comando sencillo como ls -l: -rw-r--r--+ 1 tux proyecto3 14197 Jun 21 15:03 Roadmap Roadmap pertenece a tux que a su vez pertenece al grupo proyecto3. tux tiene acceso tanto de lectura como de escritura a este archivo. Tanto el grupo como el resto de usuarios cuentan con acceso de lectura. La única diferencia que distingue este archivo de uno sin ACL es el signo + adicional en la columna que incluye los bits de permisos. Obtenga información acerca de la ACL ejecutando getfacl Roadmap: # file: Roadmap # owner: tux # group: proyecto3 user::rwuser:jane:rwgroup::r-group:djungle:rwmask::r-other::--- effective: r-effective: r-- Las primeras tres líneas de la salida no retienen ninguna información que no esté disponible con ls -l. Estas líneas sólo detallan el nombre de archivo, el propietario y el grupo que lo posee. De la línea 4 a la 9 se retienen las entradas de la ACL. Los permisos de acceso convencionales representan un subconjunto de los posibles al usar las ACL. La ACL de ejemplo otorga acceso de lectura y escritura al propietario del archivo además de al usuario jane (líneas 4 y 5). El concepto convencional se ha expandido permitiendo el acceso a un usuario adicional. Lo mismo se aplica a la gestión del acceso de grupo. El grupo que posee el archivo tiene permisos de lectura (línea 6) y el grupo djungle tiene permisos de lectura y escritura. La entrada mask en la línea 8 reduce los permisos vigentes para el usuario jane y el grupo djungle al acceso de lectura. El resto de usuarios y grupos no obtienen ningún tipo de acceso al archivo (línea 9). 432 En este documento sólo se ha ofrecido información muy básica. Puede obtener información más detallada acerca de las ACL en el Capítulo 24, Listas de control de acceso en Linux (p. 377). 27.3 Comandos importantes de Linux En esta sección se describen los comandos más importantes del sistema SUSE Linux. Hay muchos más comandos que los mostrados en este capítulo. Junto a cada comando se presenta una lista de parámetros y, donde resulta preciso, un ejemplo típico de aplicación. Para obtener más información sobre los distintos comandos, utilice las páginas de manual (Man), a las que se accede con el comando man seguido del nombre del comando, por ejemplo, man ls. Desplácese en las páginas Man con las teclas Re Pág y Av Pág . Desplácese al principio o al final del documento con las teclas Inicio y Fin . Salga de este modo de visualización pulsando Q . Encontrará más información sobre el comando man indicando el propio comando man man. En la siguiente descripción general se utilizan distintas tipografías para los elementos de comandos individuales. El comando real y sus opciones obligatorias siempre se indican como comando opción. Las especificaciones o parámetros que no son necesarios se colocan entre [corchetes]. Puede configurar los ajustes según sus necesidades. No tiene sentido escribir ls archivo si no existe realmente ningún archivo llamado archivo. Normalmente es posible combinar varios parámetros, por ejemplo escribiendo ls -la en lugar de ls -l -a. 27.3.1 Comandos de archivos En la siguiente sección se describen los comandos más importantes para la gestión de archivos. Tratan desde la administración general de archivos a la manipulación de ACLs del sistema de archivos. Cómo trabajar con la shell 433 Administración de archivos ls [opciones] [archivos] Si ejecuta el comando ls sin ningún parámetro adicional, el programa muestra una lista del contenido del directorio actual en formato abreviado. -l Lista detallada. -a Muestra archivos ocultos. cp [opciones] origen destino Copia el origen en el destino. -i Espera que se produzca una confirmación, si es necesaria, antes de sobreescribir un destino existente. -r Copia repetidamente (incluidos los subdirectorios). mv [opciones] origen destino Copia el origen en el destino y borra el archivo de origen original. -b Crea una copia de seguridad del origen antes de moverlo. -i Espera confirmación, si es necesaria, antes de sobreescribir un destino existente. rm [opciones] archivos Borra los archivos indicados del sistema de archivos. Los directorios no se suprimen con el comando rm a no ser que se use la opción -r. 434 -r Suprime los subdirectorios existentes. -i Espera que se produzca una confirmación antes de borrar cada archivo. ln [opciones] origen destino Crea un enlace interno del origen al destino. Habitualmente, este enlace señala directamente al origen en el mismo sistema de archivos. No obstante, si se ejecuta el comando ln con la opción -s, se crea un enlace simbólico que sólo señala al directorio en el que se encuentra el origen, lo que permite enlazar con sistemas de archivos distintos. -s Crea un enlace simbólico. cd [opciones] [directorio] Cambia el directorio actual. Si no se indica ningún parámetro con el comando cd los cambios se realizan en el directorio personal del usuario. mkdir [opciones] [directorio] Crea un directorio nuevo. rmdir [opciones] [directorio] Suprime el directorio indicado, si ya está vacío. chown [opciones] nombre_usuario[:[grupo]] archivos Transfiere la propiedad de un archivo al usuario con el nombre de usuario indicado. -R Cambia los archivos y directorios de todos los subdirectorios. chgrp [opciones] nombre_grupo archivos Transfiere la propiedad de grupo de un archivo determinado al grupo con el nombre de grupo indicado. El propietario del archivo sólo puede cambiar la propiedad de grupo si es miembro tanto del grupo actual como del nuevo. Cómo trabajar con la shell 435 chmod [opciones] modo archivos Cambia los permisos de acceso. El parámetro de modo tiene tres partes: grupo, acceso y tipo de acceso. En grupo se aceptan los siguientes caracteres: u usuario g grupo o otros Para acceso, se otorga el acceso con + y se deniega con -. El tipo de acceso se controla con las siguientes opciones: r lectura w escritura x ejecución: para ejecutar archivos o cambiar al directorio. s bit de setuid: la aplicación o el programa se inician como si los hubiera abierto el propietario del archivo. Como alternativa, se puede utilizar un código numérico. Los cuatro dígitos de este código están compuestos por la suma de los valores 4, 2 y 1: el resultado decimal de una máscara binaria. El primer dígito define el ID del usuario (SUID) (4), el ID de grupo de conjunto (2) y los bits adhesivos (1). El segundo dígito define los permisos del propietario del archivo. El tercer dígito define los permisos de los miembros del grupo y el último dígito los permisos para todos los usuarios. El permiso de lectura se define con un 4, el de escritura con un 2 y el de ejecución con un 1. El 436 propietario de un archivo recibe normalmente un 6 o un 7 para los archivos ejecutables. gzip [parámetros] archivos Este programa comprime el contenido de los archivos mediante complejos algoritmos matemáticos. Los archivos comprimidos de esta forma reciben la extensión .gz y es preciso descomprimirlos antes de que se puedan utilizar. Para comprimir varios archivos, o incluso directorios, utilice el comando tar. -d Descomprime los archivos gzip empaquetados para que vuelvan a tener su tamaño original y puedan procesarse con normalidad (igual que el comando gunzip). tar opciones archivo_de_reserva archivos El comando tar coloca uno o más archivos en un archivo de reserva. La compresión es opcional. El comando tar es muy complejo y dispone de muchas opciones disponibles. Las usadas con más frecuencia son estas: -f Escribe el resultado en un archivo y no en la pantalla, como es habitual. -c Crea un archivo de reserva tar nuevo. -r Añade archivos a un archivo de reserva existente. -t Da como resultado el contenido de un archivo de reserva. -u Añade archivos, pero sólo si son más actuales que los que ya hay incluidos en el archivo de reserva. -x Desempaqueta los archivos de un archivo de reserva (extracción) -z Comprime el archivo de reserva resultante con gzip Cómo trabajar con la shell 437 -j Comprime el archivo de reserva resultante con bzip2 -v Muestra una lista de los archivos procesados Los archivos del archivo de reserva creados con tar terminan con la extensión .tar. Si el archivo de reserva tar también se ha comprimido usando gzip, la extensión es .tgz o .tar.gz. Si se ha comprimido usando bzip2, será .tar .bz2. Encontrará ejemplos de aplicación en la Sección 27.1.8, “Archivos de reserva y compresión de datos” (p. 424). locate patrones Este comando sólo está disponible si se ha instalado el paquete findutils-locate. El comando locate puede localizar en qué directorio se encuentra un archivo. Se pueden utilizar comodines para indicar los nombres de los archivos. El programa es muy rápido, ya que utiliza una base de datos creada específicamente para este propósito (en lugar de buscar en todo el sistema de archivos). Pero esta ventaja, no obstante, también tiene un grave inconveniente: locate no puede localizar archivos creados tras la última actualización de esta base de datos. El usuario Root puede generar la base de datos con el comando updatedb. updatedb [opciones] Este comando realiza una actualización de la base de datos utilizada por el comando locate. Para incluir los archivos de todos los directorios existentes, ejecute el programa como usuario Root. También resulta de utilidad colocarlo en segundo plano añadiendo un símbolo de unión (&) y poder así continuar de inmediato con el trabajo en la misma línea de comandos (updatedb &). Este comando se ejecuta normalmente como trabajo de cron diario (consulte cron.daily). find [opciones] Con el comando find se pueden buscar archivos en un directorio concreto. El primer argumento indica el directorio en el que iniciar la búsqueda. La opción -name debe ir seguida de una cadena de búsqueda, que también puede incluir comodines. A diferencia de locate, que utiliza una base de datos, el comando find busca en el directorio real. 438 Comandos para acceder al contenido de los archivos cat [opciones] archivos El comando cat muestra el contenido de un archivo, imprimiendo todo el contenido en la pantalla sin interrupciones. -n Numera el resultado en el margen izquierdo. less [opciones] archivos Este comando se puede utilizar para examinar el contenido del archivo indicado. Es posible saltar media pantalla hacia arriba o hacia abajo con las teclas Re Pág y Av Pág o una página completa de la pantalla con la barra espaciadora . También se puede ir al principio o al final del archivo con las teclas Inicio y Fin . Pulse Q para salir del programa. grep [opciones] cadena_de_búsqueda archivos El comando grep busca una cadena específica en los archivos indicados. Si se encuentra, se muestra la línea en la que se halla la cadena_de_búsqueda junto al nombre del archivo. -i No tiene en cuenta mayúsculas ni minúsculas. -H Muestra sólo los nombres de los archivos respectivos, pero no las líneas de texto. -n Muestra además los números de las líneas en las que se ha encontrado una coincidencia. -l Muestra sólo los archivos en los que no aparece la cadena_de_búsqueda. diff [opciones] archivo1 archivo2 El comando diff compara el contenido de dos archivos cualquiera. El resultado del programa muestra una lista de todas las líneas que no coinciden. Suelen utilizarlo Cómo trabajar con la shell 439 los programadores que sólo necesitan enviar los cambios realizados en los programas, y no todo el código fuente. -q Sólo informa de si dos archivos son distintos. -u Produce un archivo de diferencias “unificado” que resulta más fácil de leer. Sistemas de archivos mount [opciones] [dispositivo] punto_de_montaje Este comando se puede utilizar para montar cualquier soporte de datos, como discos duros, unidades de CD-ROM y otras unidades en un directorio del sistema de archivos Linux. -r El montaje es de sólo lectura. -t sistema_archivos Indica el sistema de archivos, habitualmente ext2 para los discos duros de Linux, msdos para los soporte MS-DOS, vfat para el sistema de archivos de Windows y iso9660 para CD. Para los discos duros no definidos en el archivo /etc/fstab, también es preciso indicar el tipo de dispositivo. En este caso, sólo el usuario Root podrá montarlos. Si otros usuarios también deben montar el sistema de archivos, escriba la opción user en la línea adecuada del archivo /etc/fstab (separada con comas) y guarde este cambio. Encontrará más información en la página Man mount(1). umount [opciones] punto_de_montaje Este comando desmonta una unidad montada del sistema de archivos. Para evitar la pérdida de datos, ejecute este comando antes de retirar el soporte de datos extraíble de la unidad. Normalmente, sólo el usuario Root tiene permiso para ejecutar los comandos mount y umount. Para permitir que otros usuarios pueden ejecutarlos, edite el archivo /etc/fstab para indicar la opción user para la unidad correspondiente. 440 27.3.2 Comandos del sistema En la siguiente sección se describen algunos de los comandos más importantes necesarios para recuperar información del sistema, realizar procesos y controlar redes. Información del sistema df [opciones] [directorio] El comando df (disk free, disco libre), cuando se usa sin ninguna opción, muestra información acerca del espacio total de disco, el espacio de disco en uso en la actualidad y el espacio libre en todas las unidades montadas. Si se indica un directorio, la información se limita a la unidad en la que se encuentra ese directorio. -h Muestra el número de bloques ocupados en gigabytes, megabytes o kilobytes: en formato legible para las personas. -T Tipo del sistema de archivos (ext2, nfs, etc.). du [opciones] [vía] Este comando, cuando se ejecuta sin parámetros, muestra el espacio total de disco ocupado por los archivos y subdirectorios del directorio actual. -a Muestra el tamaño de cada archivo individual. -h El resultado se genera en formato que pueden leer las personas. -s Muestra sólo el tamaño total calculado. free [opciones] El comando free muestra información sobre el uso de RAM y de espacio de intercambio presentando la cantidad total y usada en cada categoría. Si desea obtener más información, consulte Sección 30.1.6, “Comando free” (p. 499). Cómo trabajar con la shell 441 -b Resultado en bytes. -k Resultado en kilobytes. -m Resultado en megabytes. date [opciones] Este sencillo programa muestra la hora actual del sistema. Si lo ejecuta el usuario Root también se puede utilizar para cambiar la hora del sistema. Hay detalles sobre el programa disponibles en la página Man date(1). Procesos top [opciones] El comando top ofrece una descripción rápida de los procesos actualmente en ejecución. Pulse H para acceder a una página que explica brevemente las opciones principales para personalizar el programa. ps [opciones] [ID de proceso] Si se ejecuta sin opciones, este comando muestra una tabla de todos los programas o procesos propios: los que ha empezado el usuario. Las opciones de este comando no van precedidas de guión. aux Muestra una lista detallada de todos los procesos, independientemente del propietario. kill [opciones] ID de proceso Desafortunadamente, a veces un programa no se puede terminar de forma normal. En la mayoría de los casos, aún será posible detener estos programas rebeldes ejecutando el comando kill e indicando el ID de proceso respectivo (consulte los comandos top y ps). El comando kill envía una señal TERM que ordena al programa que se apague a sí mismo. Si esto no ayuda, se puede utilizar el siguiente parámetro: 442 -9 Envía una señal KILL en lugar de una señal TERM, lo que finaliza el proceso especificado en casi todos los casos. killall [opciones] nombre_proceso Este comando es similar a kill, pero utiliza el nombre del proceso (en lugar de su ID) como argumento, interrumpiendo todos los procesos con ese nombre. Redes ping [opciones] nombre de host o dirección IP El comando ping es la herramienta estándar para probar el funcionamiento básico de las redes TCP/IP. Envía un pequeño paquete de datos al host de destino y pide una respuesta inmediata. Si funciona, ping muestra un mensaje al respecto que indica que el enlace de red funciona. -c número Determina el número total de paquetes que se deben enviar y termina cuando se han enviado (por defecto, no se define límite). -f ping fluido: envía todos los paquetes de datos que puede. Se trata de un método muy popular, reservado al usuario Root, para probar redes. -i valor Indica el intervalo entre dos paquetes de datos en segundos (por defecto: un segundo). nslookup El sistema de nombres de dominios traduce nombres de dominios a direcciones IP. Con esta herramienta se envían consultas a los servidores de nombres (servidores DNS). telnet [opciones] nombre de host o dirección IP [puerto] Telnet es en realidad un protocolo de Internet que permite trabajar en hosts remotos a través de una red. Es también el nombre de un programa de Linux que utiliza este protocolo para permitir operaciones en equipos remotos. Cómo trabajar con la shell 443 AVISO No utilice telnet en redes en las que puedan “echar un vistazo” terceras partes. Particularmente en Internet, utilice métodos de transferencia cifrados, como ssh, para evitar el riesgo de un uso malicioso de las contraseñas (consulte la página Man para el comando ssh). Misceláneos passwd [opciones] [nombre_usuario] Los usuarios pueden cambiar sus propias contraseñas en cualquier momento mediante este comando. El administrador Root puede utilizar el comando para cambiar la contraseña de cualquier usuario del sistema. su [opciones] [nombre_usuario] El comando su hace posible iniciar sesión con un nombre de usuario distinto desde una sesión en ejecución. Indique un nombre de usuario y su correspondiente contraseña. El usuario Root no necesita indicar la contraseña, ya que está autorizado para asumir la identidad de cualquier usuario. Si se utiliza el comando sin indicar un nombre de usuario, se le preguntará la contraseña del Root y pasará a ser el superusuario (Root). Utilice su - para abrir una shell de inicio de sesión para el otro usuario. halt [opciones] Para evitar la pérdida de datos se debe usar siempre este programa para apagar el sistema. reboot [opciones] Tiene la misma función que el comando halt, solo que el sistema se vuelve a iniciar inmediatamente después. clear Este comando limpia el área visible de la consola. No dispone de opciones. 444 27.3.3 Información adicional Hay muchos más comandos que los mostrados en este capítulo. Para obtener más información acerca de otros comandos o información más detallada, se recomienda la publicación de O'Reilly Linux in a Nutshell (Linux en pocas palabras). 27.4 El editor vi Para muchas tareas de administración del sistema o de programación, todavía se usan los editores de texto. En el mundo de Unix, vi destaca como un editor que ofrece funciones de edición muy cómodas y es más ergonómico que muchos editores que admiten el ratón. 27.4.1 Modos operativos Básicamente, vi hace uso de tres modos operativos: modo de inserción, modo de comandos y modo extendido. Las teclas tienen distintas funciones según el modo que esté utilizando. Al iniciar, vi normalmente está definido en el modo de comandos. Lo primero que tiene que aprender es a cambiar entre los modos: Del modo de comandos al de inserción Hay muchas posibilidades entre las que se incluyen A para añadir al final, insertar u O para añadir una nueva línea debajo de la actual. I para Del modo de inserción al de comandos Pulse Esc para salir del modo de inserción. vi no puede cerrarse en el de inserción, por lo que es importante acostumbrarse a pulsar Esc . Del modo de comandos al extendido Se puede activar el modo extendido de vi mediante los dos puntos (:). El modo extendido o ex es similar a un editor independiente orientado a las líneas que puede usarse para varias tareas simples y más complejas. Del modo extendido al de comandos Después de ejecutar un comando en el modo extendido, el editor volverá automáticamente al modo de comandos. Si decide no ejecutar ningún comando en el modo extendido, suprima los dos puntos con . El editor vuelve al modo de comandos. Cómo trabajar con la shell 445 No es posible cambiar directamente del modo de inserción al extendido sin cambiar primero al modo de comandos. vi, como otros editores, tiene su propio procedimiento para finalizar el programa. No puede finalizar vi mientras está en el modo de inserción. Primero, salga del modo de inserción pulsando la tecla Esc . Tiene dos opciones: 1. Salir sin guardar: para finalizar el editor sin guardar los cambios, escriba : – Q – ! en el modo de comandos. El signo de exclamación de cierre (!) hace que vi omita los cambios. 2. Guardar y salir: existen varias posibilidades para guardar los cambios y finalizar el editor. En el modo de comandos utilice Shift + Z + Z . Para salir del programa guardando todos los cambios con el modo extendido, introduzca : – W – Q . En el modo extendido w quiere decir "escribir" y q "salir". 27.4.2 vi en acción vi se puede utilizar como un editor normal. En el modo de inserción, escriba y suprima texto con las teclas y Supr . Utilice las teclas de flecha para mover el cursor. Sin embargo, estas teclas de control con frecuencia causan problemas porque hay muchos tipos de terminales que usan códigos de teclas especiales. En esta situación es donde el modo de comandos entra en juego. Pulse Esc para cambiar del modo de inserción al de comandos. En el modo de comandos, mueva el cursor con H , J , K y L . Estas teclas tienen las siguientes funciones: H Mover un carácter a la izquierda J Mover a la línea de abajo K Mover a la línea de arriba L Mover un carácter a la derecha 446 Los comandos en el modo de comandos permiten distintas variaciones. Para ejecutar un comando varias veces, introduzca el número de repeticiones antes de introducir el comando en cuestión. Por ejemplo, introduzca 5 L para mover el cursor cinco caracteres a la derecha. La Tabla 27.1, “Comandos simples del editor vi” (p. 447) describe una selección de comandos importantes, aunque está lejos de ser completa. Encontrará listas más completas en la documentación de la Sección 27.4.3, “Información adicional” (p. 448). Tabla 27.1 Comandos simples del editor vi Esc Cambia al modo de comandos I Cambia al modo de inserción (los caracteres aparecen en la posición del cursor actual) A Cambia al modo de inserción (los caracteres se insertarán después de la posición del cursor actual) Shift + A Cambia al modo de inserción (los caracteres se añadirán al final de la línea) Shift + R Cambia al modo de sustitución (sobrescribe el texto antiguo) R Sustituye el carácter debajo del cursor O Cambia al modo de inserción (se inserta una línea nueva después de la actual) Shift + O Cambia al modo de inserción (se inserta una línea nueva antes de la actual) Suprime el carácter actual X D – D Suprime la línea actual D – W Suprime hasta el final de la palabra actual C – W Cambia al modo de inserción (las siguientes entradas de texto que realice sobrescribirán el resto de la palabra actual) Cómo trabajar con la shell 447 Deshace el último comando U Ctrl Shift . + + R J Rehace el cambio que se ha deshecho Une la línea siguiente con la actual Repite el último comando 27.4.3 Información adicional vi admite una amplia gama de comandos. Permite el uso de macros, accesos directos, buffers con nombre y muchas otras funciones útiles. Una descripción más detallada de las distintas opciones excedería el alcance de este manual. SUSE Linux incluye vim, una versión mejorada de vi. Hay numerosas fuentes de información sobre esta aplicación: • vimtutor es un tutor interactivo para vim. • En vim, introduzca el comando :help para obtener ayuda sobre muchos temas. • También existe un libro sobre vim disponible en línea en la dirección http:// www.truth.sk/vim/vimbook-OPL.pdf. • Las páginas Web del proyecto vim en http://www.vim.org presentan todo tipo de noticias, listas de distribución y otro tipo de documentación. • También tiene a su disposición un gran número de fuentes sobre vim en Internet: http://www.selflinux.org/selflinux/html/vim.html, http:// www.linuxgazette.com/node/view/9039 y http://www.apmaths .uwo.ca/~xli/vim/vim_tutorial.html. Consulte http:// linux-universe.com/HOWTO/Vim-HOWTO/vim-tutorial.html para obtener más enlaces a tutoriales. IMPORTANTE: La licencia de VIM vim es “charityware” lo que quiere decir que el software no cuesta nada pero los autores animan a apoyar un proyecto sin ánimo de lucro con una contribución monetaria. Este proyecto solicita ayuda para los niños pobres de Uganda. Hay más información disponible en línea en http://iccf-holland.org/ 448 index.html, http://www.vim.org/iccf/ y http://www.iccf.nl/ . Cómo trabajar con la shell 449 Arranque y configuración de un sistema Linux 28 El arranque de un sistema Linux incluye diferentes componentes. Este capítulo describe los principios subyacentes y destaca los componentes incluidos. En este capítulo también se describen el concepto de niveles de ejecución y la configuración del sistema SUSE mediante sysconfig. 28.1 Proceso de arranque de Linux El proceso de arranque de Linux consta de varios pasos cada uno de ellos representado por otro componente. La siguiente lista resume el proceso de arranque y las funciones de los principales componentes relacionados. 1. BIOS Después de haber encendido el equipo, la BIOS inicializa la pantalla y el teclado y comprueba la memoria principal. Hasta aquí, la máquina no tiene acceso a ningún medio de almacenamiento masivo. A continuación, la información de la fecha y hora actuales y de los principales periféricos se carga a partir de los valores CMOS. Una vez reconocido el disco duro principal y su geometría, el control de sistema pasa de la BIOS al cargador de arranque. 2. Cargador de arranque El primer sector de datos de 512 bytes físicos se carga en la memoria principal y el cargador de arranque ubicado al inicio de este sector prevalece. Los comandos ejecutados por el cargador de arranque determinan la parte restante del proceso de arranque. Por lo tanto, los primeros 512 bytes del primer disco duro se consideran como Registro de inicio principal (MBR). A continuación, el cargador de arranque traslada el control al sistema operativo actual, en este caso, el núcleo Linux. Puede encontrar más información Arranque y configuración de un sistema Linux 451 acerca de GRUB, el cargador de arranque de Linux, en el Capítulo 29, Cargador de arranque (p. 469). 3. Núcleo y initramfs Para pasar el control de sistema, el cargador de arranque carga en la memoria el núcleo y un sistema inicial de archivos basado en RAM (initramfs). El núcleo puede utilizar directamente el contenido del ramfs inicial. El ramfs inicial contiene un pequeño ejecutable denominado init que gestiona el montaje del sistema real de archivos raíz. En las primeras versiones de SUSE Linux, initrd y linuxrc gestionaban respectivamente estas tareas. Para obtener más información acerca de initramfs, consulte la Sección 28.1.1, “initramfs” (p. 452). 4. init en initramfs Este programa realiza todas las acciones necesarias para el montaje del sistema de archivos raíz correcto, como por ejemplo, proporcionar la función núcleo para el sistema de archivos necesario y los controladores de dispositivos para los controladores de almacenamiento masivo. Una vez encontrado el sistema de archivos raíz, se comprueban los errores y se realiza el montaje. Si este paso se ha realizado correctamente, initramfs se limpia y el programa init se ejecuta en el sistema de archivos raíz. Para obtener más información acerca de init, consulte la Sección 28.1.2, “init en initramfs” (p. 453). 5. init init gestiona el arranque actual del sistema mediante diferentes niveles que proporcionan varias funciones. init se describe en la Sección 28.2, “Proceso init” (p. 455). 28.1.1 initramfs initramfs es un pequeño sistema de archivos que el núcleo puede cargar en un disco RAM. Proporciona un entorno Linux mínimo que habilita la ejecución de programas antes de que se monte el sistema de archivos raíz. El entorno Linux mínimo se carga en la memoria mediante las rutinas de la BIOS y no necesita requisitos específicos de hardware, únicamente una memoria suficiente. initramfs siempre debe proporcionar un ejecutable denominado init que ejecuta el programa init actual en el sistema de archivos raíz para que se lleve a cabo el proceso de arranque. Antes de que el actual sistema de archivos raíz se pueda montar y de que el actual sistema operativo se pueda iniciar, el núcleo necesita los controladores correspondientes para acceder al dispositivo en el que se ubica el sistema de archivos raíz. Estos controladores pueden incluir controladores especiales para algunos tipos de unidades de disco 452 duro o controladores de red para acceder al sistema de archivos en red. Los módulos necesarios para el sistema de archivos raíz puede cargarse mediante init en initramfs. initramfs está disponible durante todo el proceso de arranque. Esto posibilita la gestión de todos los eventos hotplug generados durante el arranque. Si necesita cambiar el hardware (discos duros) en un sistema instalado y este hardware requiere controladores diferentes en el núcleo durante el arranque, deberá actualizar initramfs. Esto se realiza de la misma manera que con el predecesor de initramfs, initrd, es decir, llamando a mkinitrd. Al llamar a mkinitrd sin ningún argumento se crea un initramfs. Al llamar mkinitrd -R se crea un initrd. En SUSE Linux, los módulos para cargar se especifican mediante la variable INITRD_MODULES en /etc/ sysconfig/kernel. Después de la instalación, esta variable se establece en su valor correcto. Los módulos se cargan exactamente en el mismo orden en el que aparecen en INITRD_MODULES. Esto es especialmente importante si se utilizan varios controladores SCSI, porque, si no, los nombres de los discos duros cambiarían. Estrictamente hablando, sería suficiente cargar sólo los controladores necesarios para acceder al sistema de archivos raíz. Sin embargo, todos los controladores SCSI necesarios para la instalación se cargan mediante initramfs o initrd porque si no, después, la carga podría generar problemas. IMPORTANTE: Actualización de initramfs o initrd El cargador de arranque carga initramfs o initrd de la misma manera que el núcleo. No es necesario volver a instalar GRUB después de actualizar initramfs o initrd, puesto que, al arrancar, GRUB busca en el directorio el archivo correcto. 28.1.2 init en initramfs El propósito principal de init en initramfs es preparar el montaje y el acceso al sistema de archivos raíz real. En función de la configuración del sistema actual, init es responsable de las tareas siguientes. Carga de módulos de núcleo En función de la configuración de hardware, se necesitarán controladores especiales para acceder a los componentes de hardware de su equipo (el componente más importante es la unidad de disco duro). Para acceder al sistema de archivos raíz final, el núcleo necesita cargar los controladores del sistema de archivos correctos. Arranque y configuración de un sistema Linux 453 Gestión de las configuraciones RAID y LVM Si configura el sistema para almacenar el sistema de archivos raíz en RAID o LVM, init configura LVM o RAID para habilitar el posterior acceso al sistema de archivos raíz. Se puede encontrar información acerca de RAID en la Sección 2.3, “Configuración de RAID de software” (p. 69). Se puede encontrar información acerca de LVM en la Sección 2.2, “Configuración de LVM” (p. 62). Gestión de la configuración de red Si ha configurado el sistema para utilizar un sistema de archivos raíz montado en red (montado mediante NFS), init debe comprobar que los controladores de red adecuados estén cargados y configurados para permitir el acceso al sistema de archivos raíz. Cuando se llama a init durante el arranque inicial como parte del proceso de instalación, sus tareas son diferentes de las mencionadas anteriormente: Búsqueda del medio de instalación Al iniciar el proceso de instalación, la máquina carga un núcleo de instalación y un initrd especial mediante el instalador YaST y a partir del medio de instalación. El instalador YaST, que se ejecuta en un sistema de archivos RAM, necesita información acerca de la ubicación actual del medio de instalación para acceder a él e instalar el sistema operativo. Inicio del reconocimiento de hardware y carga de los módulos de núcleo adecuados Tal y como se ha mencionado en la Sección 28.1.1, “initramfs” (p. 452), el proceso de arranque se inicia con un conjunto mínimo de controladores que se pueden utilizar con casi todas las configuraciones de hardware. init inicia un proceso de escaneo de hardware inicial que determina el conjunto de controladores adecuado para la configuración del hardware. A continuación, estos valores se escriben en INITRD_MODULES en /etc/sysconfig/kernel para permitir que cualquier proceso de arranque posterior utilice un initrd personalizado. Durante el proceso de instalación, init carga este conjunto de módulos. Carga del sistema de instalación o del sistema de rescate En cuanto se haya reconocido correctamente el hardware y se hayan cargado los controladores adecuados, init inicia el sistema de rescate o el sistema de instalación, que contiene el instalador YaST actual. 454 Inicio de YaST Por último, init inicia YaST, que inicia la instalación del paquete y la configuración del sistema. 28.2 Proceso init El programa init es el proceso cuyo número de proceso es el 1 y es responsable de la inicialización del sistema del modo requerido, asimismo desempeña un papel especial. Se inicia directamente mediante el núcleo y resiste la señal 9, que generalmente cierra todos los procesos. Los demás programas se inician directamente mediante init o mediante uno de sus subprocesos. init se configura en el archivo /etc/inittab en el que están definidos los niveles de ejecución (consulte la Sección 28.2.1, “Niveles de ejecución” (p. 455)). El archivo también especifica qué servicios y daemons están disponibles para cada uno de los niveles. En función de las entradas en /etc/inittab, init ejecutará varios guiones. Por razones de claridad, estos guiones, denominados init scripts, están ubicados en el directorio /etc/init.d (consulte la Sección 28.2.2, “Guiones init” (p. 458)). init se encarga de todo el proceso de encendido y apagado del sistema. Desde este punto de vista, el núcleo se puede considerar un proceso en segundo plano cuya tarea es mantener el resto de procesos y ajustar el tiempo de la CPU y el acceso de hardware en función de las peticiones de otros programas. 28.2.1 Niveles de ejecución En Linux, los niveles de ejecución definen cómo se inicia el sistema y qué servicios están disponibles en el sistema en funcionamiento. Después del arranque, el sistema se inicia tal y como se ha explicado en /etc/inittab en la línea initdefault. Generalmente, esto es 3 o 5. Consulte Tabla 28.1, “Niveles de ejecución disponibles” (p. 456). Como alternativa, el nivel de ejecución se puede especificar durante el arranque (por ejemplo, en el indicador de inicio). Los parámetros que el núcleo no evalúa directamente pasan a init. Arranque y configuración de un sistema Linux 455 Tabla 28.1 Niveles de ejecución disponibles Nivel de ejecución Descripción 0 Parada del sistema S Modo monousuario; en el indicador de inicio, sólo para asignaciones de teclado de EE.UU. 1 Modo monousuario 2 Modo multiusuario local sin red remota (NFS, etc.) 3 Modo multiusuario completo con red 4 No utilizado 5 Modo multiusuario completo con red y gestor de pantalla X—KDM, GDM o XDM 6 Reinicio del sistema IMPORTANTE: Evite el nivel de ejecución 2 con una partición /usr montada a través de NFS No se debe utilizar el nivel de ejecución 2 si el sistema monta la partición /usr a través de NFS. El directorio /usr almacena programas esenciales para el correcto funcionamiento del sistema. Dado que el servicio NFS no está disponible en el nivel de ejecución 2 (modo multiusuario local sin red remota), el sistema se restringirá de forma drástica. Para cambiar los niveles de ejecución durante el funcionamiento del sistema, introduzca init y el número correspondiente como argumento. Únicamente el administrador del sistema tiene permiso para realizar esta operación. La siguiente lista resume los comandos más importantes del área de niveles de ejecución. init 1 o shutdown now El sistema cambia a modo monousuario. Este modo se utiliza para las tareas de administración y mantenimiento del sistema. 456 init 3 Todos los programas y servicios fundamentales (incluida la red) se inician y los usuarios normales pueden iniciar sesión y trabajar en el sistema sin necesidad de un entorno gráfico. init 5 Se habilita el entorno gráfico. Puede ser un escritorio (GNOME o KDE) o cualquier gestor de ventanas. init 0 o shutdown -h now El sistema se detiene. init 6 o shutdown -r now El sistema se detiene y, a continuación, se reinicia. El nivel de ejecución 5 es el nivel por defecto en todas las instalaciones estándar SUSE Linux. Los usuarios deben iniciar sesión con una interfaz gráfica. El nivel de ejecución por defecto es 3, X Window System debe configurarse correctamente, tal y como se describe en el Capítulo 35, Sistema X Window (p. 561), antes de que el nivel de ejecución pase a 5. A continuación, compruebe el funcionamiento del sistema introduciendo init 5. Si todo funciona tal y como se espera, puede utilizar YaST para establecer el nivel de ejecución por defecto en 5. AVISO: Si se producen errores en /etc/inittab, se puede producir un arranque incorrecto del sistema Si /etc/inittab está dañado, puede que el sistema no arranque correctamente. Por lo tanto, tenga mucho cuidado al editar /etc/inittab y conserve siempre una copia de seguridad de una versión intacta. Si desea reparar los daños, introduzca init=/bin/sh después del nombre del núcleo en el indicador de inicio para arrancar directamente en una shell. A continuación, habilite el permiso de escritura en el sistema de archivos raíz con el comando mount -o remount,rw / y sustituya /etc/inittab con la versión de la copia de seguridad mediante cp. Para evitar errores en el sistema de archivos, cambie el sistema de archivos raíz a sólo lectura antes de reiniciar mediante mount -o remount,ro /. Generalmente, ocurren dos cosas al cambiar los niveles de ejecución. En primer lugar, se inician los guiones de detención del nivel de ejecución actual al mismo tiempo que se cierran algunos programas fundamentales para el nivel de ejecución. A continuación, Arranque y configuración de un sistema Linux 457 se inician los guiones de inicio del nuevo nivel de ejecución. En este paso y en la mayoría de los casos, se inician algunos programas. Por ejemplo, al cambiar del nivel de ejecución 3 al 5, sucede lo siguiente: 1. El administrador (root) solicita a init que cambie a un nivel de ejecución diferente introduciendo init 5. 2. init consulta su propio archivo de configuración (/etc/inittab) y determina si debe iniciar /etc/init.d/rc con el nuevo nivel de ejecución como parámetro. 3. Ahora rc llama a todos los guiones de detención del nivel de ejecución actual, pero en el nivel de ejecución nuevo, sólo a aquéllos para los que no existe un guión de inicio. En este ejemplo, aparecen todos los guiones ubicados en /etc/ init.d/rc3.d (el nivel de ejecución antiguo era 3) y que comiencen por la letra K. El número que sigue a la letra K especifica el orden de inicio, puesto que es necesario tener en cuenta algunas dependencias. 4. Los últimos elementos que se inician son los guiones de inicio del nivel de ejecución nuevo. En este ejemplo, éstos se ubican en /etc/init.d/rc5.d y comienzan con S. Aquí, también se aplica el mismo procedimiento para el orden en el que se inician. Al cambiar al mismo nivel de ejecución que el actual, init sólo comprueba si existen cambios en /etc/inittab y lleva a cabo los pasos adecuados, por ejemplo, para iniciar un getty en otra interfaz. 28.2.2 Guiones init Existen dos tipos de guiones en /etc/init.d: Guiones ejecutados directamente por init Únicamente durante el proceso de arranque o si el sistema se ha apagado de forma inmediata (debido a un fallo en la alimentación o si el usuario ha pulsado Ctrl + Alt + Del ). La ejecución de estos guiones se describe en /etc/inittab. 458 Guiones ejecutados indirectamente por init Se ejecutan al cambiar el nivel de ejecución y siempre llaman al guión maestro /etc/init.d/rc, que garantiza el orden correcto de los guiones correspondientes. Todos los guiones se ubican en /etc/init.d. En esta ubicación también se encuentran los guiones de cambio del nivel de ejecución a los que se llama mediante enlaces simbólicos desde un subdirectorio (/etc/init.d/rc0.d a /etc/init.d/rc6 .d). Esto se debe a razones de claridad y evita la creación de guiones duplicados al utilizarlos en varios niveles de ejecución. Puesto que cada guión se puede ejecutar como guión de inicio o de detención, estos guiones deben poder admitir los parámetros de start y stop. Los guiones también admiten las opciones restart (reiniciar), actualizar, force-reload (forzar-actualizar) y estado. Estas opciones se explican en la Tabla 28.2, “Posibles opciones del guión init” (p. 459). Los guiones ejecutados directamente mediante init no disponen de estos enlaces. Cuando sea necesario, se ejecutan de forma independiente desde el nivel de ejecución. Tabla 28.2 Posibles opciones del guión init Opción Descripción start (iniciar) Inicia el servicio. stop (detener) Detiene el servicio. restart (reiniciar) Si el servicio está en funcionamiento, lo detiene y, a continuación, lo reinicia. Si no está en funcionamiento, lo inicia. actualizar Actualiza la configuración sin detener ni reiniciar el servicio. force-reload (forzar-actualizar) Actualiza la configuración si el servicio es compatible con esta función. De lo contrario, realiza lo mismo que si la opción fuese restart (reiniciar). estado Muestra el estado actual del servicio. Arranque y configuración de un sistema Linux 459 Los enlaces de cada subdirectorio específico del nivel de ejecución permiten asociar guiones a diferentes niveles de ejecución. Al instalar o desinstalar los paquetes, estos enlaces se agregan y se eliminan mediante el insserv del programa (o utilizando /usr/ lib/lsb/install_initd, guión que ejecuta este programa). Para obtener más información, consulte la página Man de insserv(8). A continuación, se ofrece una introducción corta de los guiones de arranque y detención ejecutados en primer o último lugar, así como una explicación del guión de mantenimiento. boot Ejecutado al iniciar el sistema directamente mediante init. Es independiente del nivel de ejecución seleccionado y sólo se ejecuta una vez. Aquí, se montan los sistemas de archivos proc y pts y se activa blogd (daemon de inicio de sesión de arranque). Si se arranca el sistema por primera vez después de una actualización o una instalación, se inicia la configuración del sistema inicial. El daemon blogd es un servicio iniciado por boot y rc antes que cualquier otro. Se detiene una vez completadas las acciones originadas por los guiones anteriores (por ejemplo, ejecución de varios guiones). blogd escribe cualquier salida de pantalla en el archivo de registro /var/log/boot.msg, pero sólo si /var está montado en lectura-escritura. De lo contrario, blogd mantiene en el búfer todos los datos de la pantalla hasta que /var esté disponible. Puede obtener más información acerca de blogd en la página Man de blogd(8). El guión boot también se encarga del inicio de todos los guiones en /etc/init .d/boot.d con un nombre que empieza por S. Los sistemas de archivos se comprueban y los dispositivos loop se configuran si fuese necesario. También se establece la hora del sistema. Si se produce un error durante la comprobación y la reparación automática del sistema de archivos, el gestor del sistema puede intervenir después de haber introducido la contraseña root. El último guión ejecutado es el boot.local. boot.local Introduzca aquí los comandos adicionales para ejecutar durante el arranque antes de cambiar a un nivel de ejecución. Se puede comparar a AUTOEXEC.BAT en sistemas DOS. 460 boot.setup Este guión se ejecuta al cambiar del modo monousuario a cualquier otro nivel de ejecución y es responsable de varios ajustes básicos, como la distribución del teclado y la inicialización de las consolas virtuales. halt Este guión sólo se ejecuta durante el cambio al nivel de ejecución 0 o 6. Se ejecuta como halt o como reboot. El apagado o la reinicialización del sistema dependen de como se ha ejecutado halt. rc Este guión ejecuta los guiones adecuados del nivel de ejecución actual e inicia los guiones del nuevo nivel de ejecución seleccionado. Puede crear sus propios guiones e integrarlos fácilmente en el esquema descrito anteriormente. Si desea obtener instrucciones sobre el formato, el nombre y la organización de guiones personalizados, consulte las especificaciones de LSB y las páginas Man de init, init.d e insserv. También puede consultar las páginas Man de startproc y killproc. AVISO: Los guiones init incorrectos pueden detener el sistema. Los guiones init incorrectos pueden bloquear la máquina. Edite esos guiones con cuidado y, si es posible, realice una comprobación exhaustiva en el entorno multiusuario. Puede encontrar información útil acerca de los guiones init en la Sección 28.2.1, “Niveles de ejecución” (p. 455). Para crear un guión init personalizado para un determinado programa o servicio, utilice como plantilla el archivo /etc/init.d/skeleton. Guarde una copia de este archivo con un nombre nuevo y edite el programa y los nombres de archivos, las vías y otros detalles correspondientes si fuese necesario. Puede que necesite mejorar el guión con código propio, por lo que las acciones correctas se originan mediante el procedimiento init. El bloque INIT INFO de la parte superior es un componente necesario del guión y debe editarse. Consulte el Ejemplo 28.1, “Bloque INIT INFO mínimo” (p. 462). Arranque y configuración de un sistema Linux 461 Ejemplo 28.1 Bloque INIT INFO mínimo ### BEGIN INIT INFO # Provides: # Required-Start: # Required-Stop: # Default-Start: # Default-Stop: # Description: ### END INIT INFO FOO $syslog $remote_fs $syslog $remote_fs 3 5 0 1 2 6 Start FOO to allow XY and provide YZ En la primera línea del bloque INFO, después de Provides:, especifique el nombre del programa o servicio controlado por el guión init. En las líneas Required-Start: y Required-Stop:, especifique todos los servicios que deban iniciarse o detenerse antes de que se inicie o se detenga el propio servicio. Esta información se utilizará más adelante para generar la numeración de los nombres de guiones, tal y como aparecen en los directorios del nivel de ejecución. Después de Default-Start: y Default-Stop:, especifique los niveles de ejecución en los que el servicio debería iniciarse o detenerse automáticamente. Por último, en Description:, proporcione una descripción corta del servicio en cuestión. Para crear los enlaces desde los directorios de nivel de ejecución (/etc/init.d/rc ?.d/) a los guiones correspondientes en /etc/init.d/, introduzca el comando insserv new-script-name. El programa insserv evalúa el encabezado INIT INFO para crear los enlaces necesarios para iniciar y detener guiones en los directorios de nivel de ejecución (/etc/init.d/rc?.d/). El programa también se encarga del orden de inicio y detención correcto de cada nivel de ejecución al incluir los números necesarios en los nombres de los enlaces. Si prefiere una herramienta gráfica para crear dichos enlaces, utilice el editor de niveles de ejecución proporcionado por YaST, tal y como se describe en la Sección 28.2.3, “Configuración de los servicios de sistema (nivel de ejecución) mediante YaST” (p. 463). Si un guión que ya aparece en /etc/init.d/ debe integrarse en el esquema de nivel de ejecución existente, cree los enlaces en los directorios de nivel de ejecución mediante insserv o habilitando el correspondiente servicio en el editor de niveles de ejecución de YaST. Los cambios que haya realizado se aplicarán durante el siguiente arranque; el nuevo servicio se iniciará automáticamente. No establezca estos enlaces de forma manual. Si algo no funciona en el bloque INFO, surgirán problemas cuando se ejecute insserv en otro servicio. 462 28.2.3 Configuración de los servicios de sistema (nivel de ejecución) mediante YaST Después de iniciar el módulo YaST mediante YaST → Sistema → Servicios del sistema (niveles de ejecución), éste muestra una descripción general que enumera todos los servicios disponibles y el estado actual de cada servicio (inhabilitado o habilitado). Decida si desea utilizar el módulo en Modo simple o en Modo avanzado. El Modo simple por defecto debe ser suficiente para la mayoría de finalidades. La columna de la izquierda muestra el nombre del servicio, la columna del centro indica su estado actual y la de la derecha proporciona una descripción corta. Para el servicio seleccionado, se proporciona una descripción detallada en la parte inferior de la ventana. Para habilitar un servicio, selecciónelo en la tabla y, a continuación, elija Habilitar. Se aplican los mismos pasos para inhabilitar un servicio. Figura 28.1 Servicios de sistema (nivel de ejecución) Para llevar a cabo un control detallado de los niveles de ejecución en los que se inicia o se detiene el servicio, o para cambiar el nivel de ejecución por defecto, primero seleccione Modo avanzado. En la parte superior aparecerá el nivel de ejecución por defecto en curso o “initdefault” (el nivel de ejecución en el que se arranca por defecto el sistema). Arranque y configuración de un sistema Linux 463 Generalmente, el nivel de ejecución por defecto de un sistema SUSE Linux es el 5 (modo multiusuario completo con red y X). Otra opción podría ser el nivel de ejecución 3 (modo multiusuario completo con red). El cuadro de diálogo YaST permite seleccionar uno de los niveles de ejecución (tal y como aparecen en la lista de la Tabla 28.1, “Niveles de ejecución disponibles” (p. 456)) como el nuevo nivel por defecto. Además, utiliza la tabla de esta ventana para habilitar o inhabilitar servicios y daemons individuales. La tabla enumera los servicios y daemons disponibles, muestra si están actualmente habilitados en el sistema y, si es así, en qué niveles de ejecución. Después de haber seleccionado una de las filas con el ratón, haga clic en las casillas de verificación que representan los niveles de ejecución (B, 0, 1, 2, 3, 5, 6 y S) para definir los niveles en los que el servicio o daemon seleccionado debería ejecutarse. El nivel de ejecución 4 no está inicialmente definido para permitir la creación de un nivel personalizado. A continuación, en la descripción general de la tabla, se proporciona una descripción corta del actual servicio o daemon seleccionado. Mediante Start (Iniciar), Detener o Actualizar, decida si se debe activar un servicio. Refrescar estado comprueba el estado actual. Set or Reset (Ajustar o Reajustar) le permite seleccionar si desea aplicar los cambios al sistema o restaurar los ajustes existentes antes de iniciar el editor de nivel de ejecución. Al seleccionar Finalizar se guardarán los ajustes modificados en el disco. AVISO: Los ajustes de nivel de ejecución incorrectos pueden dañar el sistema. Los ajustes de nivel de ejecución incorrectos pueden inhabilitar el sistema. Antes de aplicar los cambios, asegúrese de que conoce las consecuencias. 28.3 Configuración del sistema mediante /etc/sysconfig La configuración principal de SUSE Linux está controlada mediante los archivos de configuración de /etc/sysconfig. Sólo los guiones correspondientes pueden leer los archivos individuales de /etc/sysconfig. Esto garantiza que la configuración de la red, por ejemplo, sólo necesite ser analizada por los guiones relacionados a la red. Otros archivos de configuración de sistema se generan en función de la configuración de /etc/sysconfig. SuSEconfig lleva a cabo esta tarea. Por ejemplo, si modifica 464 la configuración de red, SuSEconfig también podrá realizar cambios en el archivo /etc/host.conf, puesto que es uno de los archivos correspondientes para la configuración de la red. Este concepto le permite realizar cambios básicos en la configuración sin necesidad de reiniciar el sistema. Existen dos modos de editar la configuración del sistema. Mediante el editor YaST sysconfig o editando los archivos de configuración de forma manual. 28.3.1 Cambio de la configuración del sistema mediante el editor YaST sysconfig El editor YaST sysconfig proporciona una interfaz de la configuración del sistema fácil de utilizar. No son necesarios conocimientos previos de la ubicación actual de la variable de configuración que necesite modificar, puede utilizar la función de búsqueda incorporada de este módulo, cambiar el valor de la variable de configuración y dejar que YaST se encargue de aplicar los cambios al actualizar las configuraciones que dependen de los valores establecidos en sysconfig y al reinicializar los servicios. AVISO: La modificación de archivos /etc/sysconfig/* puede dañar la instalación No modifique los archivos /etc/sysconfig si no dispone de la experiencia ni de los conocimientos necesarios. Puede provocar daños considerables en el sistema. Los archivos de /etc/sysconfig incluyen un comentario corto para cada variable que explica el efecto que ésta provoca. Arranque y configuración de un sistema Linux 465 Figura 28.2 Configuración del sistema mediante el editor sysconfig El cuadro de diálogo YaST sysconfig está dividido en tres partes. La parte izquierda del cuadro de dialogo muestra una vista de árbol de todas las variables de configuración. Al seleccionar una variable, la parte de la derecha muestra la selección actual y la configuración actual de la variable. Debajo, una tercera ventana muestra una descripción corta del propósito de la variable, de los valores posibles, del valor por defecto y del archivo de configuración actual que origina la variable. El cuadro de diálogo también muestra información acerca de qué guión de configuración se ejecuta después de cambiar la variable y qué nuevo servicio se inicia como resultado del cambio. YaST le solicita que confirme los cambios y le informa de los guiones que se ejecutarán después de salir del cuadro de dialogo al seleccionar Finalizar. También selecciona los servicios y guiones que se van a omitir de momento, por lo que se iniciarán más tarde. YaST aplica todos los cambios de forma automática y reinicia cualquier servicio relacionado para que los cambios surtan efecto. 28.3.2 Cambio de la configuración del sistema de forma manual Para cambiar la configuración del sistema de forma manual, siga estos pasos 466 1 Convierta el sistema en root. 2 Ponga el sistema en modo monousuario (nivel de ejecución 1) mediante init 1. 3 Cambie los archivos de configuración como desee mediante un editor de su elección. Si no utiliza YaST para cambiar los archivos de configuración en /etc/ sysconfig, asegúrese de que los valores de variables vacías están representados por comillas (KEYTABLE="") y que los valores con espacios incluidos en estas variables están entre comillas. Los valores que se componen de una sola palabra no necesitan comillas. 4 Ejecute SuSEconfig para asegurarse de que se realizan los cambios. 5 Vuelva a pasar el sistema al nivel de ejecución anterior mediante un comando de tipo init default_runlevel. Sustituya default_runlevel por el nivel de ejecución por defecto del sistema. Seleccione 5 si desea volver al modo multiusuario completo con red y X o elija 3 si prefiere trabajar en modo multiusuario con red. Este procedimiento es importante al cambiar la configuración de systemwide, así como la configuración de red. Los pequeños cambios no requieren que se cambie el sistema al modo monousuario, pero puede hacerlo si desea asegurarse de que todos los programas relacionados se reinicien correctamente. SUGERENCIA: Establecimiento de la configuración automática del sistema Para inhabilitar la configuración automática del sistema mediante SuSEconfig, establezca la variable ENABLE_SUSECONFIG de /etc/sysconfig/ suseconfig en no. No inhabilite SuSEconfig si desea utilizar el soporte de instalación SUSE. También es posible inhabilitar la configuración automática de forma parcial. Arranque y configuración de un sistema Linux 467 29 Cargador de arranque Este capítulo describe cómo configurar GRUB (Gran gestor de arranque unificado), el cargador de arranque utilizado en SUSE Linux. Hay un módulo YaST especial disponible para llevar a cabo toda la configuración. Si no está familiarizado con el arranque en Linux, lea las siguientes secciones para adquirir información general. Este capítulo también describe algunos de los problemas que se encuentran frecuentemente al arrancar con GRUB y sus soluciones. Este capítulo se centra en la gestión del arranque y en la configuración del cargador de arranque GRUB. El procedimiento de arranque en su totalidad se explica en el Capítulo 28, Arranque y configuración de un sistema Linux (p. 451). Un cargador de arranque representa la interfaz entre la máquina (BIOS) y el sistema operativo (SUSE Linux). La configuración del cargador de arranque tiene un impacto directo en el inicio del sistema operativo. Los siguientes términos aparecen con frecuencia en este capítulo y pueden necesitar alguna explicación: Registro de arranque principal La estructura del MBR está definida por una convención independiente del sistema operativo. Los primeros 446 bytes se reservan para el código del programa. Normalmente, contienen el programa del cargador de arranque, en este caso, GRUB. Los siguientes 64 bytes proporcionan espacio para una tabla de partición de hasta cuatro entradas (consulte la “Tipos de partición” (Capítulo 1, Instalación mediante YaST, ↑Inicio)). La tabla de partición contiene información acerca del particionamiento del disco duro y del tipo de sistema de archivos. El sistema operativo necesita esta tabla para gestionar el disco duro. Los dos últimos bytes del MBR deben contener Cargador de arranque 469 un “número mágico” estático (AA55). El BIOS y todos los sistemas operativos de los equipos consideran inválido el MBR que contenga un valor diferente. Sectores de arranque Los sectores de arranque son los primeros sectores de las particiones del disco duro, con la excepción de la partición extendida, que sirve sólo de “contenedor” para las demás particiones. Estos sectores de arranque tienen 512 bytes de espacio para el código utilizado para arrancar un sistema operativo instalado en su partición respectiva. Esto se aplica a los sectores de arranque de particiones formateadas de DOS, Windows y OS/2, que también contienen algunos datos básicos importantes del sistema de archivos. Por el contrario, los sectores de arranque de las particiones de Linux están al principio vacías después de configurar un sistema de archivos. Por tanto, una partición de Linux no se arranca por sí misma, incluso aunque contenga un núcleo y un sistema válido de archivos raíz. Un sector de arranque con código válido para arrancar el sistema MBR tiene el mismo número mágico que el MBR en sus últimos dos bytes (AA55). 29.1 Gestión de arranque En el caso más sencillo (si sólo hay instalado un sistema operativo en el equipo), la gestión de arranque se lleva a cabo como se describe anteriormente. Si en un equipo hay instalados varios sistemas operativos, estarán disponibles las siguientes opciones: Arranque de sistemas adicionales desde medios externos Uno de los sistemas operativos se arranca desde el disco duro. Los demás sistemas operativos se arrancan mediante un gestor de arranque instalado en un medio externo (disquete, CD o medio de almacenamiento USB). Instalación de un gestor de arranque en el MBR Un gestor de arranque permite la instalación simultánea y el uso alterno de varios sistemas en un equipo. Los usuarios pueden seleccionar el sistema por arrancar durante el proceso de arranque. Para cambiar a otro sistema, se debe volver a arrancar el equipo. Esto sólo es posible si el gestor de arranque seleccionado es compatible con los sistemas operativos instalados. GRUB, gestor de arranque utilizado en SUSE Linux. 470 29.2 Selección de un cargador de arranque Por defecto, en SUSE Linux, se utiliza el cargador de arranque GRUB. Sin embargo, en algunos casos y para constelaciones especiales de hardware y software, LILO puede ser más adecuado. Si actualiza una versión más antigua de SUSE Linux que utiliza LILO, se instala LILO. La información relativa a la instalación y a la configuración de LILO se puede buscar en la base de datos de asistencia mediante la palabra LILO y en /usr/share/doc/ packages/lilo. 29.3 Arranque con GRUB GRUB consta de dos archivos denominados stage1 y stage2. stage1 consta de 512 bytes y se escribe en el MBR o en el sector de arranque de una partición de disco duro o de un disquete. Posteriormente, se carga stage2. Este archivo contiene el código real del programa. La única tarea del primer archivo es cargar el segundo archivo del cargador de arranque. stage2 es capaz de acceder a los sistemas de archivos. Actualmente, son compatibles Ext2, Ext3, ReiserFS, Minix y el sistema de archivos DOS FAT utilizado por Windows. Hasta cierto punto, también son compatibles JFS, XFS y UFS y FFS utilizados por los sistemas BSD. A partir de la versión 0.95, GRUB también puede arrancar desde un CD o un DVD que contenga un sistema de archivos que cumpla la norma ISO 9660 de acuerdo con las especificaciones de “El Torito”. Incluso antes de arrancar el sistema, GRUB puede acceder a los sistemas de archivos de dispositivos de disco de BIOS (disquetes o discos duros, unidades de CD y unidades de DVD detectados por el BIOS). Por tanto, los cambios realizados en el archivo de configuración de GRUB (menu.lst) no exigen que se vuelva a instalar el gestor de arranque. Cuando se arranca el sistema, GRUB vuelve a cargar el archivo del menú con las vías válidas y los datos de partición del núcleo o del disco RAM inicial (initrd) y ubica estos archivos. La configuración real de GRUB está basada en tres archivos que se describen a continuación: Cargador de arranque 471 /boot/grub/menu.lst Este archivo contiene toda la información acerca de las particiones o de los sistemas operativos que se pueden arrancar con GRUB. Sin esta información, el control del sistema no se puede pasar al sistema operativo. /boot/grub/device.map Este archivo traduce los nombres de los dispositivos desde GRUB y la notación del BIOS a nombres de dispositivos Linux. /etc/grub.conf Este archivo contiene los parámetros y las opciones que necesita GRUB para instalar el cargador de arranque de forma correcta. GRUB se puede controlar de varias maneras. Las entradas de arranque a partir de una configuración existente se pueden seleccionar en el menú gráfico (pantalla de inicio). La configuración se carga desde el archivo menu.lst. En GRUB, se pueden cambiar todos los parámetros de arranque antes de arrancar. Por ejemplo, los errores cometidos al editar el archivo del menú se pueden corregir de este modo. Los comandos de arranque se pueden introducir también mediante un tipo de indicador de entrada (consulte la “Edición de entradas de menú durante el procedimiento de arranque” (p. 477)). GRUB ofrece la posibilidad de determinar la ubicación del núcleo y del initrd antes de arrancar. De este modo, puede arrancar incluso un sistema operativo instalado para el que no existe ninguna entrada en la configuración del cargador de arranque. El shell de GRUB proporciona una emulación de GRUB en el sistema instalado. Se puede utilizar para instalar GRUB o para probar la configuración nueva antes de aplicarla. Consulte la Sección 29.3.4, “Shell de GRUB” (p. 480). 29.3.1 Menú de arranque de GRUB La pantalla gráfica de inicio con el menú de arranque está basada en el archivo de configuración de GRUB /boot/grub/menu.lst, que contiene toda la información acerca de las particiones o de los sistemas operativos que se pueden arrancar mediante el menú. 472 Siempre que se arranca el sistema, GRUB carga el archivo de menú a partir del sistema de archivos. Por este motivo, no es necesario volver a instalar GRUB después de efectuar cada cambio realizado al archivo. Utilice el cargador de arranque de YaST para modificar la configuración de GRUB, como se describe en la Sección 29.4, “Configuración del Cargador de arranque con YaST” (p. 482). El archivo de menú contiene comandos. La sintaxis es muy sencilla. Todas las líneas contienen un comando seguido de parámetros opcionales separados por espacios, como en el shell. Por razones históricas, algunos comandos permiten un = delante del primer parámetro. Los comentarios se introducen con una almohadilla (#). Para identificar los elementos del menú en la descripción general del menú, especifique un title para cada entrada. El texto (incluidos los espacios) que sigue a la palabra title se muestra como opción seleccionable en el menú. Todos los comandos hasta el siguiente title se ejecutan cuando se selecciona este elemento del menú. El caso más sencillo es el redireccionamiento a los cargadores de arranque de otros sistemas operativos. El comando es chainloader y el argumento suele ser el bloque de arranque de otra partición en la notación de bloque de GRUB. Por ejemplo: chainloader (hd0,3)+1 Los nombres de los dispositivos de GRUB se explican en la “Convenciones de nomenclatura para los discos duros y las particiones” (p. 474). El ejemplo anterior especifica el primer bloque de la cuarta partición del primer disco duro. Utilice el comando kernel para especificar una imagen de núcleo. El primer argumento es la vía a la imagen del núcleo de una partición. Los demás argumentos se pasan al núcleo de la línea de comandos. Si el núcleo no tiene controladores incorporados para acceder a la partición raíz, initrd se debe especificar con un comando de GRUB diferente cuyo único argumento es la vía al archivo initrd. Como la dirección de carga del initrd se escribe en la imagen cargada del núcleo, el comando initrd debe seguir inmediatamente al comando kernel. El comando root simplifica la especificación del núcleo y de los archivos initrid. El único argumento de root es un dispositivo GRUB o una partición de un dispositivo GRUB. Este dispositivo se utiliza para todos los núcleos, initrd y para las demás vías de archivos para las que no se especifica ningún dispositivo de forma explícita Cargador de arranque 473 hasta el siguiente comando root. Este comando no se utiliza en el archivo menu.lst generado durante la instalación. Simplemente facilita la edición manual. El comando boot está implícito al final de todas las entradas de menú, de modo que no es necesario escribirlo en el archivo del menú. Sin embargo, si utiliza GRUB de forma interactiva para arrancar, debe introducir el comando boot al final. El comando no tiene argumentos. Sólo arranca la imagen cargada del núcleo o el cargador de cadena especificado. Después de escribir todas las entradas de menú, defina una de ellas como entrada default (por defecto). De lo contrario, se utilizará la primera (entrada 0). También es posible especificar un tiempo límite (time-out) en segundos después del cual la entrada por defecto debe arrancar. Normalmente, las entradas de menú van precedidas de timeout y default. En la “Archivo de menú de ejemplo” (p. 475) se describe un archivo de ejemplo. Convenciones de nomenclatura para los discos duros y las particiones Las convenciones de nomenclatura que utiliza GRUB para los discos duros y las particiones son diferentes de las que se utilizan para los dispositivos normales de Linux. En GRUB, la numeración de las particiones empieza por cero. Por tanto, (hd0,0) es la primera partición del primer disco duro. En un equipo de escritorio estándar con un disco duro conectado como maestro principal, el nombre del dispositivo Linux correspondiente es /dev/hda1. A las cuatro particiones primarias posibles se les asignan los números de partición de 0 a 3. Las particiones lógicas se numeran a partir de 4: (hd0,0) (hd0,1) (hd0,2) (hd0,3) (hd0,4) (hd0,5) first primary partition of the first hard disk second primary partition third primary partition fourth primary partition (usually an extended partition) first logical partition second logical partition GRUB no distingue entre dispositivos IDE, SCSI y RAID. Todos los discos duros reconocidos por el BIOS o por otros controladores se numeran de acuerdo con la secuencia de arranque predefinida en el BIOS. 474 Desafortunadamente, GRUB no es capaz de asignar nombres de dispositivos Linux a nombres de dispositivos BIOS de forma exacta. Genera esta asignación con la ayuda de un algoritmo y la guarda en el archivo device.map, que se puede editar en caso de ser necesario. La información relativa al archivo device.map está disponible en la Sección 29.3.2, “Archivo device.map” (p. 479). Una vía completa de GRUB consta de un nombre de dispositivo escrito entre parántesis y la vía del archivo en el sistema de archivos de la partición especificada. La vía comienza con una barra inclinada. Por ejemplo, el núcleo arrancable se podría especificar del siguiente modo en un sistema con un único disco duro IDE que contenga Linux en la primera partición: (hd0,0)/boot/vmlinuz Archivo de menú de ejemplo El siguiente ejemplo muestra la estructura de un archivo de menú GRUB. La instalación de ejemplo consta de una partición de arranque Linux en /dev/hda5, una partición raíz en /dev/hda7 y una instalación de Windows en /dev/hda1. gfxmenu (hd0,4)/message color white/blue black/light-gray default 0 timeout 8 title linux kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791 initrd (hd0,4)/initrd title windows chainloader(hd0,0)+1 title floppy chainloader(fd0)+1 title failsafe kernel (hd0,4)/vmlinuz.shipped root=/dev/hda7 ide=nodma \ apm=off acpi=off vga=normal nosmp maxcpus=0 3 initrd (hd0,4)/initrd.shipped El primer bloque define la configuración de la pantalla de inicio: gfxmenu (hd0,4)/message La imagen de fondo message se ubica en /dev/hda5. Cargador de arranque 475 color white/blue black/light-gray Asignación de colores: blanco (primer plano), azul (fondo), negro (selección) y gris claro (fondo de la selección). La asignación de colores no tiene ningún efecto en la pantalla de inicio, sólo en el menú de GRUB personalizable al que es posible acceder saliendo de la pantalla de inicio con Esc . default 0 La primera entrada del menú title linux es la que se arranca por defecto. timeout 8 Si durante ocho segundos no se produce ninguna entrada por parte del usuario, GRUB arranca de forma automática la entrada por defecto. Para desactivar el arranque automático, elimine la línea timeout. Si define timeout 0, GRUB arranca la entrada por defecto de forma inmediata. El segundo y mayor bloque enumera los distintos sistemas operativos que se pueden arrancar. Las secciones de cada sistema operativo se introducen por title. • La primera entrada (title linux) se encarga de arrancar SUSE Linux. El núcleo (vmlinuz) se ubica en la primera partición lógica (partición de arranque) del primer disco duro. Los parámetros del núcleo, como la partición raíz y el modo VGA, se añaden aquí. La partición raíz se especifica según la convención de nomenclatura de Linux (/dev/hda7/), porque esta información se lee por el núcleo y no tiene nada que ver con GRUB. El initrd también se ubica en la primera partición lógica del primer disco duro. • La segunda entrada se encarga de cargar Windows. Windows se arranca desde la primera partición del primer disco duro (hd0,0). El comando chainloader +1 hace que GRUB lea y ejecute el primer sector de la partición especificada. • La siguiente entrada habilita el arranque desde el disquete sin modificar la configuración del BIOS. • La opción de arranque failsafe arranca Linux con una selección de parámetros de núcleo que habilita Linux para arrancar incluso en sistemas que presenten problemas. El archivo del menú se puede cambiar siempre que sea necesario. Durante el siguiente arranque, GRUB utilizará la configuración modificada. Edite el archivo de forma permanente mediante YaST o mediante el editor que prefiera. Como alternativa, realice 476 cambios temporales de forma interactiva mediante la función de edición de GRUB. Consulte la “Edición de entradas de menú durante el procedimiento de arranque” (p. 477). Edición de entradas de menú durante el procedimiento de arranque En el menú gráfico de arranque de GRUB, seleccione el sistema operativo por arrancar con las teclas de flechas. Si selecciona un sistema Linux, puede introducir parámetros de arranque adicionales en el indicador de inicio. Para editar entradas de menú por separado directamente, pulse Esc para salir de la pantalla de inicio y, a continuación, pulse E . Los cambios realizados de este modo sólo se aplican al procedimiento de arranque actual, no se adoptan de forma permanente. IMPORTANTE: Distribución del teclado durante el procedimiento de arranque La distribución del teclado americano es la única disponible al arrancar. Después de activar el modo de edición, utilice las teclas de flecha para seleccionar la entrada del menú cuya configuración se va a editar. Para que la configuración sea editable, pulse E una vez más. De este modo, edite las particiones incorrectas o las especificaciones de vías antes de que tengan un efecto negativo en el proceso de arranque. Pulse Intro para salir del modo de edición y volver al menú. A continuación, pulse B para arrancar esta entrada. Las acciones que se pueden llevar a cabo a continuación se muestran en el texto de ayuda que aparece al final. Para introducir las opciones de arranque cambiadas de forma permanente y pasarlas al núcleo, abra menu.lst como usuario root y añada los parámetros respectivos del núcleo a la línea existente, separados por espacios: title linux kernel (hd0,0)/vmlinuz root=/dev/hda3 additional parameter initrd (hd0,0)/initrd La siguiente vez que se arranca el sistema, GRUB adopta de forma automática los parámetros nuevos. Como alternativa, este cambio también se puede realizar con el módulo del cargador de arranque YaST. Añada los parámetros nuevos a la línea existente, separados por espacios. Cargador de arranque 477 Utilización de comodines para seleccionar el núcleo de arranque Sobre todo al desarrollar o utilizar núcleos personalizados, debe cambiar las entradas de menu.lst o editar la línea de comandos para reflejar el núcleo actual y los nombres de archivo initrd. Para simplificar este procedimiento, utilice comodines para actualizar la lista de núcleos de GRUB de forma dinámica. Todas las imágenes del núcleo que coinciden con un patrón específico se añaden de forma automática a la lista de imágenes que se van a arrancar. Tenga en cuenta que no hay compatibilidad con esta función. Active la opción de caracteres comodín añadiendo una entrada de menú a menu.lst. Para que sea útil, todas las imágenes de núcleo e initrd deben tener un nombre de base común y un identificador que coincida con el initrd asociado. Tenga en cuenta la siguiente configuración: initrd-default initrd-test vmlinuz-default vmlinuz-test En este caso, debe añadir las dos imágenes de arranque a una configuración GRUB. Para obtener las entradas de menú linux-default y linux-test, se necesitaría la siguiente entrada menu.lst: title linux-* wildcard (hd0,4)/vmlinuz-* kernel (hd0,4)/vmlinuz-* root=/dev/hda7 vga=791 initrd (hd0,4)/initrd-* En este ejemplo, GRUB busca la partición (hd0,4) para las entradas que corresponden con el comodín. Estas entradas se utilizan para generar nuevas entradas de menú de GRUB. En el ejemplo anterior, GRUB se comporta como si las siguientes entradas existieran en menu.lst: title linux-default wildcard (hd0,4)/vmlinuz-default kernel (hd0,4)/vmlinuz-default root=/dev/hda7 vga=791 initrd (hd0,4)/initrd-default title linux-test wildcard (hd0,4)/vmlinuz-test kernel (hd0,4)/vmlinuz-test root=/dev/hda7 vga=791 initrd (hd0,4)/initrd-test 478 Si los nombres de archivo no se utilizan de forma coherente con esta configuración o falta uno de los archivos ampliados, como una imagen initrd, esta configuración puede ocasionar problemas. 29.3.2 Archivo device.map El archivo device.map asigna nombres de dispositivos de GRUB a los nombres de dispositivos Linux. En un sistema mixto que contenga discos duros IDE y SCSI, GRUB debe tratar de determinar la secuencia de arranque mediante un procedimiento especial porque GRUB no tiene acceso a la información del BIOS en la secuencia de arranque. GRUB guarda el resultado de este análisis en el archivo /boot/grub/device.map. Para un sistema en el que la secuencia de arranque del BIOS se define como IDE antes de SCSI, el archivo device.map podría aparecer de la siguiente forma: (fd0) (hd0) (hd1) /dev/fd0 /dev/hda /dev/sda Como el orden de IDE, SCSI y los demás discos duros dependen de varios factores y Linux no es capaz de identificar la asignación, la secuencia del archivo device.map se puede definir de forma manual. Si encuentra problemas al arrancar, compruebe si la secuencia de este archivo corresponde a la secuencia del BIOS y utiliza el shell de GRUB, descrito en la Sección 29.3.4, “Shell de GRUB” (p. 480), para modificarlo de forma temporal cuando sea necesario. Una vez que el sistema Linux ha arrancado, el archivo device.map se puede editar de forma permanente con el módulo del cargador de arranque YaST o con el editor que desee. Después de cambiar de forma manual device.map, ejecute el siguiente comando para volver a instalar GRUB. Este comando hace que el archivo device.map se vuelva a cargar y que los comandos escuchados en grub.conf se ejecuten: grub --batch < /etc/grub.conf 29.3.3 Archivo /etc/grub.conf El tercer archivo importante de configuración de GRUB aparte de menu.lst y device .map es /etc/grub.conf. Este archivo contiene los parámetros y las opciones que necesita el comando grub para instalar el cargador de arranque de forma correcta: Cargador de arranque 479 root (hd0,4) install /grub/stage1 d (hd0) /grub/stage2 0x8000 (hd0,4)/grub/menu.lst quit Significado de las entradas individuales: root (hd0,4) Este comando le dice a GRUB que aplique los siguientes comandos a la primera partición lógica del primer disco duro (la ubicación de los archivos de arranque). parámetro install El comando grub debe ejecutarse con el parámetro install. stage1 del cargador de arranque debe instalarse en el MBR del primer disco duro (/grub/stage1 d (hd0)). stage2 debe cargarse en la dirección de memoria 0x8000 (/grub/stage2 0x8000). La última entrada ((hd0,4)/grub/menu.lst) le dice a GRUB dónde buscar el archivo del menú. 29.3.4 Shell de GRUB GRUB existe en dos versiones: como cargador de arranque y como programa normal de Linux en /usr/sbin/grub. Este programa se denomina shell de GRUB. La funcionalidad para instalar GRUB como cargador de arranque en un disco duro o en un disquete está integrada en GRUB con la forma de los comandos install y setup. Ésta está disponible en el shell de GRUB cuando se carga Linux. Sin embargo, los comandos setup e install también están disponibles durante el procedimiento de arranque antes de iniciar Linux. Esto facilita la reparación de un sistema defectuoso que ya no se puede arrancar porque el archivo de configuración defectuoso del cargador de arranque se puede eludir introduciendo los parámetros de forma manual. La introducción de los parámetros de forma manual durante el procedimiento de arranque también es útil para probar la configuración nueva sin dañar el sistema original. Sólo tiene que introducir el archivo de configuración experimental con una sintaxis similar a la de menu.lst. A continuación, pruebe la funcionalidad de esta entrada sin cambiar el archivo de configuración existente. Por ejemplo, para probar el nuevo núcleo, introduzca el comando kernel y la vía del nuevo núcleo. Si el procedimiento de arranque falla, puede continuar utilizando el archivo intacto menu.lst la siguiente vez que arranque. De forma similar, la interfaz de la línea de comandos también se puede utilizar para arrancar un sistema en lugar de un archivo menu.lst introduciendo los parámetros corregidos. En el sistema instalado, los parámetros correctos se pueden introducir en menu.lst para que el sistema se pueda arrancar siempre. 480 La asignación de dispositivos GRUB a los nombres de dispositivos Linux sólo es relevante cuando se ejecuta el shell de GRUB como programa de Linux (introduciendo grub, como se describe en la Sección 29.3.2, “Archivo device.map” (p. 479)). Con este propósito, el programa lee el archivo device.map. Para obtener más información, consulte el Sección 29.3.2, “Archivo device.map” (p. 479). 29.3.5 Configuración de una contraseña de arranque Incluso antes de que se arranque el sistema operativo, GRUB habilita el acceso a los sistemas de archivos. Los usuarios sin permisos root pueden acceder a los archivos del sistema Linux a los que no tienen acceso una vez arrancado el sistema. Para bloquear este tipo de acceso o impedir que los usuarios arranquen ciertos sistemas operativos, defina una contraseña de arranque. IMPORTANTE: Contraseña de arranque y pantalla de inicio Si utiliza una contraseña de inicio para GRUB, no se muestra la pantalla de inicio habitual. Como usuario root, realice lo siguiente para definir una contraseña de arranque: 1 En el indicador de root, introduzca grub. 2 Cifre la contraseña en la shell del GRUB: grub> md5crypt Password: **** Encrypted: $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/ 3 Pegue la cadena cifrada en la sección global del archivo menu.lst: gfxmenu (hd0,4)/message color white/blue black/light-gray default 0 timeout 8 password --md5 $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/ Ahora los comandos GRUB sólo se pueden ejecutar en el indicador de inicio después de pulsar P e introducir la contraseña. Sin embargo, los usuarios aún pueden arrancar los sistemas operativos desde el menú de arranque. Cargador de arranque 481 4 Para evitar que uno o varios sistemas operativos se arranquen desde el menú de arranque, añada la entrada lock a todas las secciones de menu.lst que no deberían poder arrancarse sin introducir una contraseña. Por ejemplo: title linux kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791 initrd (hd0,4)/initrd lock Después de volver a arrancar el sistema y seleccionar la entrada Linux en el menú de arranque, aparece el siguiente mensaje de error: Error 32: Debe autenticarse Pulse Intro para entrar en el menú. A continuación, pulse P para obtener un indicador de contraseña. Después de introducir la contraseña y pulsar Intro , debería arrancarse el sistema operativo seleccionado (en este caso, Linux). 29.4 Configuración del Cargador de arranque con YaST La forma más sencilla de configurar el cargador de arranque en el sistema SUSE Linux es mediante el módulo YaST. En el Centro de control de YaST, seleccione System (Sistema) → Configuración del cargador de arranque. Se muestra la configuración actual del cargador de arranque, lo que le permite efectuar los cambios deseados. Consulte la Figura 29.1, “Configuración del Cargador de arranque con YaST” (p. 483). 482 Figura 29.1 Configuración del Cargador de arranque con YaST La ventana principal consta de dos pestañas: Gestión de secciones Utilice esta pestaña para editar, cambiar y suprimir las secciones del cargador de arranque para los sistemas operativos individuales. Para añadir una opción, haga clic en Añadir. Para cambiar el valor de una opción existente, selecciónelo con el ratón y haga clic en Editar. Si no desea utilizar un opción existente, selecciónela y haga clic en Suprimir. Si no está familiarizado con las opciones del cargador de arranque, lea la sección Sección 29.3, “Arranque con GRUB” (p. 471) en primer lugar. Instalación del cargador de arranque Utilice esta pestaña para ver y cambiar los ajustes relacionados con el tipo, la ubicación u otros elementos de los ajustes del cargador de arranque. 29.4.1 Tipo del cargador de arranque El tipo del cargador de arranque se establece en la pestaña Instalación del cargador de arranque. GRUB es, por defecto, el cargador de arranque que se utiliza en SUSE Linux. Para usar LILO, siga los pasos que se especifican a continuación: Cargador de arranque 483 Procedimiento 29.2 Cambio del tipo del cargador de arranque 1 Abra la pestaña Instalación del cargador de arranque. 2 En el panel Tipo, haga clic en el menú Gestor de arranque y seleccione LILO. 3 Elija una de las siguientes acciones del menú emergente: Proponer nueva configuración YaST proposes a new configuration (YaST propone nueva configuración). Convertir la configuración actual. YaST converts the current configuration (YaST convierte la configuración actual). Algunos ajustes pueden perderse al convertir la configuración. Iniciar nueva configuración desde cero. Utilice esta opción para establecer una configuración personalizada. Esta acción no se encuentra disponible durante la instalación de SUSE Linux. Cargar la configuración guardada en el disco Utilice esta opción para cargar su propio /etc/lilo.conf. Esta acción no se encuentra disponible durante la instalación de SUSE Linux. 4 Haga clic en Aceptar para guardar los cambios 5 Haga clic en Finalizar en la ventana principal del cuadro de diálogo para activar los cambios. Tras efectuar la conversión, la antigua configuración de GRUB se guarda en disco. Para utilizarlo, tan sólo se debe volver a cambiar el tipo de cargador de arranque a GRUB y elegir Restablecer configuración guardada antes de la conversión en el menú emergente. Esta acción está disponible únicamente en un sistema instalado. NOTA: Cargador de arranque personalizado Si desea utilizar un cargador de arranque distinto a GRUB o LILO, haga clic en la opción No instalar ningún cargador de arranque. Lea con atención la documentación del cargador de arranque antes de seleccionar esta opción. 484 29.4.2 Ubicación del cargador de arranque Es posible que necesite cambiar la ubicación del cargador de arranque. Este módulo YaST le ayuda a realizar este cambio. Procedimiento 29.3 Cambio de la ubicación del cargador de arranque 1 Para cambiar la ubicación del cargador de arranque, haga clic en la pestaña Instalación del cargador de arranque y, a continuación, seleccione una de las opciones siguientes del menú Instalación del cargador de arranque. Registro de inicio principal de /dev/hdX Arranque principal de un disco Esto es recomendable siempre que SUSE determine que el sistema puede arrancarse de este modo. La X identifica el disco duro; en otras palabras, puede ser a, b, c y d: hda => ide0 hdb => hdc => hdd => master ide0 slave ide1 master ide1 slave Sector de arranque de la partición de arranque /dev/hdXY El sector de arranque de la partición /boot. Esta opción se establece por defecto si se dispone de varios sistemas operativos instalados en el disco duro. La Y hace referencia a la partición, es decir, 1, 2, 3, 4, 5, etc. Por lo tanto, la entrada puede presentar el siguiente aspecto: /dev/hda1 Sector de arranque de la partición raíz /dev/hdXY El sector de arranque de la partición (raíz) /. Esta opción también se utiliza si se dispone de varios sistemas operativos instalados en el disco duro y se quiere seguir utilizando el antiguo gestor de arranque. Otra Esta opción permite especificar la ubicación del cargador de arranque. 2 Haga clic en Finalizar para hacer efectivos los cambios. Cargador de arranque 485 29.4.3 Sistema por defecto Para cambiar el sistema por defecto, siga los pasos que se especifican a continuación: Procedimiento 29.4 Configuración del sistema por defecto 1 Abra la pestaña Gestión de secciones. 2 Seleccione el sistema deseado de la lista mediante el ratón o haciendo clic en Arriba o Abajo. 3 Haga clic en Definir como opción por defecto. 4 Haga clic en Finalizar para hacer efectivos los cambios. 29.4.4 Tiempo límite del cargador de arranque El cargador de arranque no inicia el sistema por defecto de forma inmediata. Durante este tiempo límite, puede detener el arranque del sistema por defecto y cambiar el sistema que desea arrancar o escribir algunos parámetros de núcleo. Para aumentar o disminuir el tiempo límite del cargador de arranque, siga los pasos que se especifican a continuación: Procedimiento 29.5 Cambio del tiempo límite del cargador de arranque 1 Abra la pestaña Instalación del cargador de arranque. 2 Haga clic en Opciones del cargador de arranque. 3 Marque Modo de arranque. 4 En Menú de arranque, cambie el valor de Boot Menu Time-Out (Tiempo límite del menú de arranque) escribiendo un nuevo valor, haciendo clic con el ratón en la flecha apropiada o utilizando las teclas de flecha del teclado. 5 Haga clic en Aceptar. 486 6 Haga clic en Finalizar para hacer efectivos los cambios. Haciendo clic en el cuadro Continue Booting after a Time-Out (Continuar arranque tras tiempo límite), puede decidir si el menú de arranque debe visualizarse de forma permanente sin que se tenga en cuenta el tiempo límite. 29.4.5 Ajustes de seguridad También puede utilizar este módulo YaST para definir una contraseña para la protección del cargador de arranque. Con esto, se alcanza un nivel superior de seguridad. Procedimiento 29.6 Definición de contraseña del cargador de arranque 1 Abra la pestaña Instalación del cargador de arranque. 2 Haga clic en Opciones del cargador de arranque. 3 En Protección de contraseña, marque Introduzca contraseña del proveedor y defina la contraseña. 4 Haga clic en Aceptar. 5 Haga clic en Finalizar para hacer efectivos los cambios. 29.4.6 Orden de los discos Si su equipo tiene más de un disco duro, puede especificar la secuencia de arranque de los discos como se define en la configuración del BIOS la máquina (consulte la Sección 29.3.2, “Archivo device.map” (p. 479)). Para ello, siga los pasos que se especifican a continuación: Procedimiento 29.7 Configuración del orden de los discos 1 Abra la pestaña Instalación del cargador de arranque. 2 Haga clic en Detalles de la instalación del cargador de arranque. Cargador de arranque 487 3 Si aparecen enumerados varios discos duros, seleccione uno de ellos y haga clic en Arriba o Abajo. 4 Haga clic en Aceptar para guardar los cambios. 5 Haga clic en Finalizar para hacer efectivos los cambios. También puede sustituir el registro de arranque principal con código genérico (que arranca la partición activa) utilizando este módulo. Haga clic en Replace MBR with Generic Code (Sustituir MBR con código genérico) en Actualización del área del sistema del disco. Para activar la partición que contiene el cargador de arranque, también puede hacer clic en Activar la partición del cargador de arranque del mismo panel. Haga clic en Finalizar para hacer efectivos los cambios. 29.5 Desinstalación del cargador de arranque de Linux YaST se puede utilizar para desinstalar el cargador de arranque de Linux y restaurar el estado que el MBR tenía antes de instalar Linux. Durante la instalación, YaST crea de forma automática una copia de seguridad del MBR original y lo restaura cuando se le solicita, sobrescribiendo GRUB. Para desinstalar GRUB, inicie el módulo del cargador de arranque de YaST (Sistema → Configuración del cargador de arranque). En el primer cuadro de diálogo, seleccione Reset (Restablecer) → Restore MBR of Hard Disk (Restablecer MBR de disco duro) y salga del cuadro de diálogo mediante Finalizar. En el MBR, GRUB se sobrescribe con los datos del MBR original. 29.6 Crear un CD de arranque En caso de que tenga problemas al arrancar el sistema instalado con un gestor de arranque o bien no quiera o pueda instalar el cargador de arranque en el MBR de su ordenador o en un disquete, puede crear un CD de arranque en el que haya grabado los archivos de inicio de Linux. Para ello es necesario que el ordenador disponga de una grabadora de CDs configurada. 488 Para crear un CD-ROM arrancable con GRUB, tan solo necesita una forma especial de stage2 llamada stage2_eltorito y, de manera opcional, un archivo menu.lst personalizado. Los archivos stage1 y stage2 clásicos no son necesarios. Cree un directorio en el que fabricar la imagen ISO, por ejemplo con cd /tmp y mkdir iso. También puede crear un subdirectorio para GRUB con mkdir -p iso/boot/grub. A continuación copie el archivo stage2_eltorito en el directorio grub: cp /usr/lib/grub/stage2_eltorito iso/boot/grub Copie también el kernel (/boot/vmlinuz), initrd (/boot/initrd) y el archivo /boot/message en el directorio iso/boot/: cp /boot/vmlinuz iso/boot/ cp /boot/initrd iso/boot/ cp /boot/message iso/boot/ A fin de que GRUB pueda encontrar estos archivos, copie menu.lst en el directorio iso/boot/grub y modifique las rutas para que se puedan leer los archivos en el CD. Para ello sustituya en la ruta el nombre de dispositivo del disco duro (por ejemplo (hd*)) por el nombre de dispositivo de la unidad de CD-ROM (cd): gfxmenu (cd)/boot/message timeout 8 default 0 title Linux kernel (cd)/boot/vmlinuz root=/dev/hda5 vga=794 resume=/dev/hda1 splash=verbose showopts initrd (cd)/boot/initrd Finalmente, ejecute el siguiente comando para crear una imagen ISO: mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot \ -boot-load-size 4 -boot-info-table -o grub.iso iso Grabe el archivo resultante grub.iso en un CD con un programa de grabación cualquiera. 29.7 Pantalla gráfica de SUSE A partir de SUSE Linux 7.2, la pantalla gráfica de SUSE se muestra en la primera consola si la opción “vga=<value>” se utiliza como parámetro del núcleo. Si lleva a Cargador de arranque 489 cabo la instalación mediante YaST, esta opción se activa de forma automática de acuerdo con la resolución seleccionada y con la tarjeta gráfica. Hay tres modos de inhabilitar la pantalla de SUSE, si se desea: Inhabilitación de la pantalla de SUSE en caso necesario. Introduzca el comando echo 0 >/proc/splash en la línea de comandos para inhabilitar la pantalla gráfica. Para volver a activarla, introduzca echo 1 >/proc/splash. Inhabilitación de la pantalla de SUSE por defecto. Añada el parámetro del núcleo splash=0 a la configuración del cargador de arranque. Capítulo 29, Cargador de arranque (p. 469) proporciona más información acerca de esto. Sin embargo, si prefiere el modo de texto, que era el modo por defecto en versiones anteriores, defina vga=normal. Inhabilitación completa de la pantalla de SUSE. Recopile un núcleo nuevo e inhabilite la opción Use splash screen instead of boot logo (Utilizar la pantalla de inicio en lugar del logotipo de arranque) en framebuffer support (asistencia de framebuffer). SUGERENCIA Si se inhabilita la asistencia de framebuffer en el núcleo, también se inhabilita de forma automática la pantalla de inicio. Si ejecuta el sistema con un núcleo personalizado, SUSE no proporciona asistencia. 29.8 Solución de problemas En esta sección se enumeran algunos de los problemas que se encuentran habitualmente al arrancar con GRUB y una descripción breve de las posibles soluciones. Algunos de los problemas se tratan en artículos de la base de datos de asistencia en http:// portal.suse.de/sdb/en/index.html. Si su problema en concreto no aparece en esta lista, utilice el cuadro de búsqueda de la base de datos de asistencia de https://portal.suse.com/PM/page/search.pm para buscar palabras clave como GRUB, arrancar y cargador de arranque. 490 GRUB y XFS XFS no deja espacio para stage1 en el bloque de arranque de la partición. Por tanto, no especifique una partición de XFS como ubicación del cargador de arranque. Este problema se puede solucionar creando una partición de arranque separada que no se formatea con XFS. GRUB y JFS Aunque técnicamente es posible, la combinación de GRUB con JFS presenta problemas. En este caso, cree una partición de arranque separada (/boot) y formatéela con Ext2. Instale GRUB en esta partición. GRUB informa de un error de geometría de GRUB GRUB comprueba la geometría de los discos duros conectados cuando se arranca el sistema. Algunas veces, el BIOS devuelve información no coherente y GRUB informa de un error de geometría de GRUB. En este caso, utilice LILO o actualice el BIOS. La información detallada acerca de la instalación, de la configuración y del mantenimiento de LILO está disponible en la base de datos de asistencia si se busca con la palabra clave LILO. GRUB también devuelve este mensaje de error si Linux se instaló en un disco duro adicional no registrado en el BIOS. stage1 del cargador de arranque se encuentra y se carga de forma correcta, pero stage2 no se encuentra. Este problema se puede solucionar registrando el disco duro nuevo en el BIOS. El sistema que contiene los discos duros IDE y SCSI no arranca Durante la instalación, puede que YaST haya determinado de forma incorrecta la secuencia de arranque de los discos duros (y puede que no se haya corregido). Por ejemplo, GRUB puede considerar /dev/hda as hd0 y /dev/sda como hd1, aunque la secuencia de arranque del BIOS esté invertida (SCSI antes de IDE). En este caso, corrija los discos duros durante el proceso de arranque con la ayuda de la línea de comandos de GRUB. Una vez que el sistema ha arrancado, edite el archivo device.map para aplicar la nueva asignación de forma permanente. A continuación, busque los nombres de dispositivos de GRUB en los archivos/boot/ grub/menu.lst y /boot/grub/device.map y vuelva a instalar el cargador de arranque con el siguiente comando: grub --batch < /etc/grub.conf Cargador de arranque 491 Arranque de Windows desde el segundo disco duro Algunos sistemas operativos, como Windows, sólo pueden arrancar desde el primer disco duro. Si uno de esos sistemas operativos está instalado en un disco duro que no sea el primero, puede llevar a cabo un cambio lógico en la entrada de menú respectiva. ... title windows map (hd0) (hd1) map (hd1) (hd0) chainloader(hd1,0)+1 ... En este ejemplo, Windows se inicia desde el segundo disco duro. Para ello, el orden lógico de los discos duros se cambia con map. Este cambio no afecta a la lógica del archivo del menú de GRUB. Por tanto, el segundo disco duro se debe especificar con chainloader. 29.9 Información adicional La información detallada acerca de GRUB se encuentra disponible en http://www .gnu.org/software/grub/. Si tiene texinfo instalado en su máquina, vea las páginas de información de GRUB en un shell introduciendo info grub. También puede buscar la palabra clave “GRUB” en la base de datos de asistencia en http:// portal.suse.de/sdb/en/index.html para obtener información acerca de asuntos especiales. 492 30 Funciones especiales de SUSE Linux Este capítulo incluye información acerca de varios paquetes de software, las consolas virtuales y el formato del teclado. Se describen componentes de software como, por ejemplo, bash, cron, y logrotate, ya que han experimentado mejoras o cambios en las últimas versiones. Aunque dichos cambios sean pequeños o tengan una importancia menor, es posible que los usuarios deseen cambiar su comportamiento por defecto, ya que estos componentes están a menudo muy vinculados al sistema. El capítulo finaliza con un apartado sobre los ajustes regionales y de idioma (I18N y L10N). 30.1 Información acerca de paquetes especiales de software Los programas bash, cron, logrotate, locate, ulimit y free, así como el archivo resolv.conf, revisten gran importancia, tanto para los administradores de los sistemas como para muchos usuarios. Las páginas de manual (Man) y las de información (Info) constituyen dos útiles fuentes de información sobre comandos, si bien a veces no están las dos disponibles. GNU Emacs es un editor de texto muy utilizado y con muchas opciones de configuración. Funciones especiales de SUSE Linux 493 30.1.1 Paquete bash y /etc/profile Bash es la shell por defecto de SUSE Linux. Cuando se utiliza como shell de inicio de sesión, lee varios archivos de inicialización y los procesa en el orden en el que aparecen en la lista. 1. /etc/profile 2. ~/.profile 3. /etc/bash.bashrc 4. ~/.bashrc En ~/.profile y en ~/.bashrc se pueden aplicar ajustes personalizados. Para garantizar que estos archivos se procesen correctamente, es necesario copiar los ajustes básicos desde /etc/skel/.profile o /etc/skel/.bashrc en el directorio personal del usuario. Se recomienda copiar los ajustes de /etc/skel tras una actualización. Ejecute los siguientes comandos shell para evitar que se pierdan ajustes personales: mv cp mv cp ~/.bashrc ~/.bashrc.old /etc/skel/.bashrc ~/.bashrc ~/.profile ~/.profile.old /etc/skel/.profile ~/.profile A continuación, copie los ajustes personales otra vez de los archivos *.old. 30.1.2 Paquete cron Si desea ejecutar comandos de forma regular y automática en segundo plano a horas predefinidas, cron es la herramienta tradicional que utilizar. Funciona mediante tablas horarias con un formato especial para ello. Algunas de estas tablas acompañan al sistema y, si así lo desean o si es necesario, los usuarios pueden escribir sus propias tablas. Las tablas cron se encuentran en /var/spool/cron/tabs. /etc/crontab sirve como tabla cron para todo el sistema. Introduzca el nombre del usuario que debe ejecutar el comando directamente después de la tabla horaria. En el Ejemplo 30.1, “Entrada en /etc/crontab” (p. 495), se ha introducido Root. Las tablas específicas del paquete, ubi- 494 cadas en /etc/cron.d, comparten el mismo formato. Consulte la página Man sobre cron (man cron). Ejemplo 30.1 1-59/5 * * * * Entrada en /etc/crontab root test -x /usr/sbin/atrun && /usr/sbin/atrun No es posible editar /etc/crontab ejecutando el comando crontab -e. Este archivo se debe cargar directamente en un editor, después modificarse y finalmente guardarse. Hay varios paquetes que instalan guiones shell en los directorios /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly y /etc/cron.monthly, cuyas instrucciones se controlan a través de /usr/lib/cron/run-crons. /usr/lib/ cron/run-crons se ejecuta cada 15 minutos desde la tabla principal (/etc/ crontab). Esto garantiza que los procesos que se hayan podido descuidar puedan ejecutarse en el momento adecuado. Para ejecutar los guiones hourly (cada hora), daily (cada día), u otros guiones de mantenimiento periódicos en momentos personalizados, elimine los archivos de marca horaria de forma regular mediante entradas /etc/crontab [consulte el Ejemplo 30.2, “/etc/crontab: eliminación de archivos de marca horaria” (p. 495), donde se elimina el guión hourly (cada hora) antes de la hora en punto y el guión daily (cada día) una vez al día a las 2:14 a.m., etc.]. Ejemplo 30.2 /etc/crontab: eliminación de archivos de marca horaria 59 14 29 44 root root root root * 2 2 2 * * * 1 * * * * * * 6 * rm rm rm rm -f -f -f -f /var/spool/cron/lastrun/cron.hourly /var/spool/cron/lastrun/cron.daily /var/spool/cron/lastrun/cron.weekly /var/spool/cron/lastrun/cron.monthly Los trabajos de mantenimiento del sistema diarios se han distribuido entre varios guiones para conseguir una mayor claridad. Estos trabajos están dentro del paquete aaa_base. /etc/cron.daily contiene, por ejemplo, los componentes suse .de-backup-rpmdb, suse.de-clean-tmp o suse.de-cron-local. Funciones especiales de SUSE Linux 495 30.1.3 Archivos de registro: paquete logrotate Ciertos servicios del sistema (daemons), junto con el núcleo en sí, registran en archivos de registro y de forma regular el estado del sistema y eventos concretos. Así, el administrador puede comprobar con regularidad el estado del sistema en un momento concreto, reconocer errores o funciones defectuosas y repararlos con precisión. Estos archivos de registro generalmente se almacenan en /var/log, tal y como especifique el estándar FHS, y van creciendo cada día. El paquete logrotate ayuda a controlar el crecimiento de estos archivos. Configuración Configure logrotate con el archivo /etc/logrotate.conf. En concreto, la especificación include (incluir) configura principalmente los archivos adicionales que se deben leer. SUSE Linux garantizará que los programas que generan archivos de registro instalen archivos de configuración individuales en /etc/logrotate.d. Por ejemplo, estos programas incluyen los paquetes apache2 (/etc/logrotate.d/ apache2) y syslogd (/etc/logrotate.d/syslog). 496 Ejemplo 30.3 Ejemplo para /etc/logrotate.conf # see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create # uncomment this if you want your log files compressed #compress # RPM packages drop log rotation information into this directory include /etc/logrotate.d # no packages own lastlog or wtmp - we'll rotate them here #/var/log/wtmp { # monthly # create 0664 root utmp # rotate 1 #} # system-specific logs may be also be configured here. logrotate se controla mediante cron y se ejecuta a diario a través de /etc/cron .daily/logrotate. IMPORTANTE La opción create (crear) lee todos los ajustes realizados por el administrador en /etc/permissions*. Asegúrese de que no se produzcan conflictos a raíz de posibles modificaciones personales. 30.1.4 Comando locate El comando locate, que permite buscar archivos de forma rápida, no está incluido en el ámbito estándar del software instalado. Si lo desea, instale el paquete find-locate. El proceso updatedb se inicia automáticamente cada noche o alrededor de 15 minutos después de iniciar el sistema. Funciones especiales de SUSE Linux 497 30.1.5 Comando ulimit El comando ulimit (límites de usuario) permite definir límites para el uso de recursos del sistema, así como para que se puedan mostrar estos recursos. El comando ulimit resulta especialmente útil para limitar la memoria disponible para las distintas aplicaciones. Con este comando se puede hacer que una aplicación no utilice demasiada memoria por sí sola, una situación que podría detener el sistema. ulimit se puede utilizar con varias opciones. Para limitar el uso de memoria, utilice las opciones que se muestran en la Tabla 30.1, “ulimit: definición de recursos para el usuario” (p. 498). Tabla 30.1 ulimit: definición de recursos para el usuario -m Tamaño máximo de memoria física -v Tamaño máximo de memoria virtual -s Tamaño máximo del stack -c Tamaño máximo de los archivos de núcleo central -a Visualización de límites En /etc/profile se pueden realizar ajustes en todo el sistema. Habilite aquí la creación de archivos de núcleo central que necesitan los programadores para poder realizar operaciones de depuración. Un usuario normal no puede aumentar los valores que haya especificado el administrador del sistema en /etc/profile, pero puede crear entradas especiales en ~/.bashrc. Ejemplo 30.4 ulimit: ajustes en ~/.bashrc # Limits of physical memory: ulimit -m 98304 # Limits of virtual memory: ulimit -v 98304 La cantidad de memoria se debe especificar en KB. Para obtener más información, consulte man bash. 498 IMPORTANTE No todas las shells admiten las directivas ulimit. PAM (por ejemplo pam_limits) ofrece un completo elenco de posibilidades de ajuste en caso de que se deban abarcar ajustes para estas restricciones. 30.1.6 Comando free El comando free resulta en cierta manera engañoso si el objetivo es saber cuánta memoria RAM se está utilizando en esos momentos. Esa información se puede consultar en /proc/meminfo. En la actualidad, los usuarios con acceso a un sistema operativo moderno, como Linux, no deberían necesitar preocuparse demasiado sobre el uso de memoria. El concepto de RAM disponible se remonta a los días anteriores a la gestión de la memoria unificada. La frase memoria libre es memoria mala se aplica también en Linux. Así, Linux se ha esforzado siempre en equilibrar las cachés sin permitir que haya memoria libre o no utilizada. Básicamente, el núcleo no tiene conocimiento directo de ninguna aplicación ni de ningún dato del usuario, sino que gestiona las aplicaciones y los datos del usuario en una caché de páginas. Si la memoria se queda corta, se escriben partes de ella en la partición de intercambio o en archivos desde los cuales se podrá leer con ayuda del comando mmap (consulte man mmap). El núcleo también contiene otras cachés, como la caché de tablas, donde se almacenan la cachés utilizadas para acceder a la red. Esto puede explicar las diferencias entre los contadores en /proc/meminfo. A la mayoría de ellas, pero no a todas, se puede acceder a través de /proc/slabinfo. 30.1.7 Archivo /etc/resolv.conf La resolución del nombre de dominio se gestiona a través del archivo /etc/resolv .conf. Consulte el Capítulo 40, DNS (Domain Name System) (p. 651). Este archivo se actualiza con el guión /sbin/modify_resolvconf de forma exclusiva, ningún otro programa dispone de permiso para modificar /etc/resolv .conf directamente. Aplicar esta regla es la única manera de garantizar que la configuración de red del sistema y los archivos relevantes se guardan en un estado coherente. Funciones especiales de SUSE Linux 499 30.1.8 Páginas Man y páginas Info Para algunas aplicaciones de GNU (como tar), las páginas Man correspondientes han dejado de publicarse. Para estos comandos, utilice la opción --help y obtendrá una descripción general de las páginas Info, las cuales proporcionan instrucciones más detalladas a través del sistema de hipertexto de GNU. Lea una introducción a este sistema escribiendo info info. Las páginas Info se pueden ver con Emacs escribiendo emacs -f info, o directamente en una consola con info. También podrá ver páginas Info con tkinfo, xinfo o el sistema de ayuda de SUSE. 30.1.9 Ajustes para GNU Emacs GNU Emacs es un entorno de trabajo complejo. En las siguientes secciones se describen los archivos de configuración que se procesan al iniciar GNU Emacs. Encontrará más información en http://www.gnu.org/software/emacs/. Al iniciarse, Emacs lee varios archivos que contienen los ajustes para el usuario, el administrador del sistema y el distribuidor de personalización o configuración previa. El archivo de inicio ~/.emacs se instala en los directorios personales de cada usuario desde /etc/skel. .emacs, a su vez, lee el archivo /etc/skel/.gnu-emacs. Para personalizar el programa, copie .gnu-emacs en el directorio personal (con cp /etc/skel/.gnu-emacs ~/.gnu-emacs) y aplique allí los ajustes que desee. .gnu-emacs define el archivo ~/.gnu-emacs-custom como custom-file (archivo personalizado). Si el usuario desea efectuar ajustes con las opciones customize (personalizar) en Emacs, dichos ajustes se guardarán en ~/ .gnu-emacs-custom. Con SUSE Linux, el paquete emacs instala el archivo site-start.el en el directorio /usr/share/emacs/site-lisp. El archivo site-start.el se carga antes que el archivo de inicio ~/.emacs. Entre otros aspectos, site-start.el se ocupa de que los archivos de configuración distribuidos con los paquetes complementarios de Emacs como, por ejemplo, psgml, se carguen automáticamente. Tales archivos de configuración se encuentran también en /usr/share/emacs/site-lisp y comienzan siempre con suse-start-. El administrador local del sistema puede definir ajustes de configuración válidos para todo el sistema con default.el. 500 Encontrará más información acerca de estos archivos en el archivo de información de Emacs en Init File: info:/emacs/InitFile. Aquí también encontrará información acerca de cómo evitar la carga de estos archivos cuando sea necesario. Los componentes de Emacs están distribuidos en varios paquetes: • Paquete básico emacs. • emacs-x11: se instala normalmente e incluye compatibilidad con X11. • emacs-nox: programa sin compatibilidad con X11. • emacs-info: documentación en línea en formato info. • emacs-el: contiene archivos de bibliotecas sin compilar en Emacs Lisp. No son necesarios para el tiempo de ejecución. • Se pueden instalar numerosos paquetes complementarios si es necesario: emacs-auctex (para LaTeX), psgml (para SGML y XML), gnuserv (para el uso del cliente y el servidor), etc. 30.2 Consolas virtuales Linux es un sistema multiusuario y multitarea. Las ventajas que presentan estas características se pueden apreciar incluso en un sistema autónomo. El modo de texto presenta seis consolas virtuales. Cambie de una a otra pulsando las combinaciones de teclas de Alt + F1 a Alt + F6 . La séptima consola se reserva para X, y la décima muestra los mensajes del núcleo. Se podrán asignar más o menos consolas modificando el archivo /etc/inittab. Para cambiar a una consola desde X sin cerrar, utilice las combinaciones de teclas de Ctrl + Alt + F1 a Ctrl + Alt + F6 . Para volver a X, pulse Alt + F7 . 30.3 Distribución del teclado Para estandarizar la distribución del teclado de los distintos los programas, se han hecho cambios en los siguientes archivos: Funciones especiales de SUSE Linux 501 /etc/inputrc /usr/X11R6/lib/X11/Xmodmap /etc/skel/.Xmodmap /etc/skel/.exrc /etc/skel/.less /etc/skel/.lesskey /etc/csh.cshrc /etc/termcap /usr/lib/terminfo/x/xterm /usr/X11R6/lib/X11/app-defaults/XTerm /usr/share/emacs/<VERSION>/site-lisp/term/*.el Estas modificaciones sólo tienen efecto sobre aplicaciones que usan las entradas terminfo o cuyos archivos de configuración se modificaron directamente (vi, less, etc.). Se recomienda adaptar otras aplicaciones que no sean de SUSE Linux a estas definiciones por defecto. En el entorno X, se puede acceder a la tecla Compose (tecla compuesta) mediante la combinación de teclas Ctrl + Mayús (derecha). También puede consultar la entrada correspondiente en /usr/X11R6/lib/X11/Xmodmap. X Keyboard Extension (XKB) permite acceder a ajustes de configuración avanzados. Esta extensión la usan también los escritorios GNOME (gswitchit) y KDE (kxkb). SUGERENCIA: Información adicional Puede obtener información adicional sobre XKB en el archivo /etc/X11/ xkb/README y en los documentos ahí mencionados. Puede encontrar información sobre la entrada de los idiomas chino, japonés y coreano (CJK) en la página de Mike Fabian: http://www.suse.de/ ~mfabian/suse-cjk/input.html. 30.4 Ajustes de idioma y país Gracias a su gran nivel de internacionalización, SUSE Linux es muy flexible para adaptarse a las necesidades locales. En otras palabras, la internacionalización (I18N) permite implementar localizaciones (L10N) específicas. Las abreviaturas I18N y L10N hacen referencia a los términos ingleses "internationalization" y "localization" respectivamente: mencionan la letra inicial y final de cada palabra y el número de caracteres que se han omitido en medio. 502 Los ajustes se realizan mediante las variables LC_ que se definen en el archivo /etc/ sysconfig/language. No afectan sólo a la compatibilidad con el idioma nativo, sino también a las categorías de mensajes (idioma), conjunto de caracteres, criterios de ordenación, fecha y hora, números y moneda. Todas estas categorías se pueden definir directamente con su propia variable o de forma indirecta con una variable principal en el archivo language (consulte la página Man locale). RC_LC_MESSAGES, RC_LC_CTYPE, RC_LC_COLLATE, RC_LC_TIME, RC_LC_NUMERIC, RC_LC_MONETARY Estas variables se pasan a la shell sin el prefijo RC_ y representan las categorías indicadas arriba. A continuación, se describen los perfiles de shell en cuestión. El ajuste actual se puede mostrar con el comando locale. RC_LC_ALL Esta variable, si se define, sobrescribe los valores de las variables mencionadas anteriormente. RC_LANG Si no se define ninguna de las variables anteriores, ésta se usa como alternativa. Por defecto, SUSE Linux sólo define RC_LANG, lo que facilita el procedimiento a los usuarios a la hora de especificar sus propios valores. ROOT_USES_LANG Se trata de una variable cuyos valores son yes (sí) y no. Si se define como no, el usuario Root funcionará siempre en el entorno POSIX. Las demás variables se definen mediante el editor sysconfig de YaST (consulte la Sección 28.3.1, “Cambio de la configuración del sistema mediante el editor YaST sysconfig” (p. 465)). El valor de una variable de este tipo incluye el código del idioma, el código del país, el tipo de codificación y el modificador. Todos estos componentes individuales se conectan mediante caracteres especiales: LANG=<idioma>[[_<PAÍS>].<Codificación>[@<Modificador>]] 30.4.1 Ejemplos Los códigos de idioma y país se deben definir juntos. El idioma sigue la norma ISO 639, que está disponible en http://www.evertype.com/standards/iso639/ iso639-en.html y en http://www.loc.gov/standards/iso639-2/. Los códigos de países están definidos en la norma ISO 3166, que está disponible en Funciones especiales de SUSE Linux 503 http://www.din.de/gremien/nas/nabd/iso3166ma/codlstp1/en _listp1.html. Sólo se pueden definir valores para los que haya archivos de descripción en /usr/ lib/locale que se puedan utilizar. Se pueden crear archivos de descripción adicionales a partir de los archivos de /usr/share/i18n usando el comando localedef. Los archivos de descripción forman parte del paquete glibc-i18ndata. Se puede crear un archivo de descripción para es_ES.UTF-8 (para el español de España) con: localedef -i es_ES@euro -f UTF-8 [email protected] LANG=es_ES.UTF-8 Éste es el ajuste por defecto si se selecciona el español de España durante la instalación. Si selecciona otro idioma, se habilitará dicho idioma, pero UTF-8 seguirá siendo el tipo de codificación de caracteres. LANG=es_ES.ISO-8859-1 De este modo se configura el idioma español para España con el juego de caracteres ISO-8859-1. Este juego de caracteres no admite el símbolo del euro, pero puede ser útil para los programas que no se hayan actualizado todavía para usar UTF-8. La cadena que define el conjunto de caracteres (ISO-8859-1, en este caso) la utilizan programas como Emacs. LANG=es_ES@euro Este ejemplo incluye explícitamente el símbolo del euro en los ajustes del idioma. En realidad, este ajuste está obsoleto porque UTF-8 incluye también el símbolo del euro. Es útil sólo para las aplicaciones que no admitan UTF-8, sino ISO-8859-15. SuSEconfig lee las variables de /etc/sysconfig/language y escribe los cambios necesarios en /etc/SuSEconfig/profile y en /etc/SuSEconfig/csh .cshrc. /etc/profile lee el archivo /etc/SuSEconfig/profile (lo usa como fuente), mientras que /etc/csh.cshrc usa como fuente /etc/ SuSEconfig/csh.cshrc. De esta forma, los ajustes están disponibles para todo el sistema. Los usuarios pueden modificar los valores por defecto del sistema editando convenientemente el archivo ~/.bashrc. Por ejemplo, si la configuración del sistema es español de España (es_ES) pero el usuario no desea que los mensajes de los programas se muestren en este idioma, deberá incluir, por ejemplo, LC_MESSAGES=en_US para que los mensajes se muestren en inglés de Estados Unidos. 504 30.4.2 Ajustes para la compatibilidad con el idioma Los archivos de la categoría de mensajes normalmente se almacenan sólo en el directorio de idioma correspondiente (por ejemplo, en) para tener una alternativa. Si establece LANG en en_US y el archivo de mensajes de /usr/share/locale/en_US/LC _MESSAGES no existe, se usará como alternativa /usr/share/locale/en/LC _MESSAGES. También se puede definir una cadena alternativa por ejemplo, para el bretón (en el caso del francés) o para el gallego (en el caso del español y el portugués): LANGUAGE="br_FR:fr_FR" LANGUAGE="gl_ES:es_ES:pt_PT" Si lo desea, también puede usar las variantes noruegas nynorsk y bokmål (usando no como alternativa): LANG="nn_NO" LANGUAGE="nn_NO:nb_NO:no" o LANG="nb_NO" LANGUAGE="nn_NO:nb_NO:no" En el caso del noruego, hay que tener en cuenta que LC_TIME también se trata de forma diferente. Un problema que puede surgir es que el separador utilizado para delimitar grupos de dígitos no se reconozca correctamente. Esto ocurre si LANG está establecido sólo como un código de idioma de dos letras como, por ejemplo, de, y la definición que utiliza glibc se encuentra en /usr/share/lib/de_DE/LC_NUMERIC. En este caso, LC_NUMERIC debe configurarse como de_DE para que la definición del separador sea evidente para el sistema. Funciones especiales de SUSE Linux 505 30.4.3 Información adicional • El GNU C Library Reference Manual (Manual de referencia sobre la biblioteca C de GNU), capítulo “Locales and Internationalization” (Configuraciones regionales e internacionalización). Se incluye en glibc-info. • Markus Kuhn, UTF-8 and Unicode FAQ for Unix/Linux (Preguntas frecuentes sobre Unicode y UTF-8 para Unix y Linux), en http://www.cl.cam.ac.uk/ ~mgk25/unicode.html. • Bruno Haible, Unicode-Howto (Procedimientos de Unicode): /usr/share/doc/ howto/en/html/Unicode-HOWTO.html. 506 Funcionamiento de la impresora 31 CUPS es el sistema de impresión estándar de SUSE Linux. CUPS está muy orientado al usuario. En muchos casos, es compatible con LPRng o puede adaptarse de forma relativamente fácil. LPRng se incluye en SUSE Linux únicamente por razones de compatibilidad. Las impresoras pueden distinguirse por la interfaz, como de puerto USB o de red, y por el lenguaje de impresión. Al comprar una impresora, asegúrese de que tiene una interfaz compatible con el hardware y un lenguaje de impresión adecuado. Las impresoras se pueden clasificar en función de los tres lenguajes de impresión siguientes: Impresoras PostScript PostScript es el lenguaje de impresión en el que la mayor parte de los trabajos de impresión de Linux y Unix se generan y se procesan por el sistema de impresión interno. Es un lenguaje ya bastante antiguo y, aun así, muy eficaz. Si la impresora puede procesar directamente documentos PostScript y no es necesaria una conversión posterior de éstos en el sistema de impresión, se reduce el número de fuentes de errores posibles. Puesto que las impresoras PostScript están sujetas a cuantiosos costes de licencia, normalmente su precio es superior al del resto de impresoras que no disponen de un intérprete PostScript. Impresora estándar (lenguajes como PCL y ESC/P) Aunque estos lenguajes de impresión son bastante antiguos, continúa su expansión para hacer frente a las nuevas funciones de las impresoras. En el caso de lenguajes de impresión conocidos, el sistema de impresión puede convertir trabajos PostScript al lenguaje correspondiente con la ayuda de Ghostscript. Esta fase del proceso se denomina "interpretación". Los lenguajes más conocidos son PCL, que se utiliza sobre todo con impresoras HP y sus clónicas, y ESC/P, que utilizan las impresoras Funcionamiento de la impresora 507 Epson. Estos lenguajes de impresión son, por lo general, compatibles con Linux y tienen como resultado una impresión de notable calidad. Es posible que Linux no admita algunas funciones de impresoras extremadamente nuevas y sofisticadas, ya que los desarrolladores de código abierto pueden estar trabajando aún en ellas. A excepción de los controladores hpijs desarrollados por HP, actualmente no hay ningún fabricante de impresoras que desarrolle controladores Linux y los ponga a disposición de los distribuidores de Linux con licencia de código abierto. La mayor parte de estas impresoras tienen un precio medio. Impresoras con lenguaje de impresión propio (normalmente impresoras GDI) Normalmente, tan sólo hay uno o varios controladores de Windows disponibles para las impresoras con lenguaje de impresión propio. Son impresoras que no admiten ninguno de los lenguajes de impresión habituales y que utilizan un lenguaje sujeto a cambio al iniciarse una nueva versión del modelo en cuestión. Si desea obtener más información, consulte la Sección 31.7.1, “Impresoras sin compatibilidad con lenguaje de impresión estándar” (p. 524). Antes de comprar una nueva impresora, compruebe su compatibilidad en las siguientes fuentes: • http://cdb.suse.de/ (base de datos de impresoras de SUSE Linux) • http://www.linuxprinting.org/ (base de datos de impresoras de LinuxPrinting.org) • http://www.cs.wisc.edu/~ghost/ (página web de Ghostscript) • /usr/share/doc/packages/ghostscript/catalog.devices (lista de controladores incluidos) Las bases de datos en línea siempre especifican el estado de compatibilidad con Linux más actualizado. No obstante, una distribución Linux tan sólo puede integrar los controladores disponibles en el momento de producción. Por lo tanto, es posible que una impresora que tenga, en un momento dado, el estado “perfectly supported” (compatibilidad perfecta) no tuviera este estado cuando se inició la última versión de SUSE Linux. De este modo, las bases de datos no indican necesariamente el estado correcto, sino que sólo proporcionan una aproximación. 508 31.1 Flujo de trabajo del sistema de impresión El usuario crea un trabajo de impresión. Este trabajo consta de datos que van a imprimirse, junto con información para el gestor de cola, como el nombre de la impresora o el nombre de la cola de impresión y, de forma opcional, información para el filtro, como las opciones de la impresora específica. Hay una cola de impresión específica para cada impresora. El gestor de cola puede mantener el trabajo de impresión en la cola hasta que la impresora deseada se encuentre preparada para la recepción de datos. Cuando esté lista, el gestor de cola enviará a la impresora los datos mediante el filtro y el sistema secundario. El filtro convierte los datos que el usuario desea imprimir (ASCII, PostScript, PDF, JPEG, etc.) a los datos de la impresora específica (PostScript, PCL, ESC/P, etc.). Las funciones de la impresora se describen en los archivos PPD. Un archivo PPD contiene las opciones de impresora específica con los parámetros necesarios para habilitarlas en la impresora. El sistema de filtros comprueba que las opciones seleccionadas por el usuario estén habilitadas. Si utiliza una impresora PostScript, el sistema de filtros convierte los datos a PostScript de la impresora específica. Para ello, no se necesita un controlador de impresora. Si utiliza una impresora que no sea PostScript, el sistema de filtros convierte los datos a los de la impresora específica mediante Ghostscript. Para ello, se necesita un controlador de impresora Ghostscript adecuado para su impresora. El sistema secundario recibe del filtro los datos de la impresora específica y los transfiere a la impresora. 31.2 Métodos y protocolos de conexión de impresoras Hay varias posibilidades de conexión de una impresora al sistema. La configuración del sistema de impresión CUPS no distingue entre una impresora local y una impresora conectada al sistema a través de la red. Las impresoras locales, en Linux, deben conectarse de la forma descrita en el manual del fabricante de la impresora. CUPS admite conexiones en serie, USB, paralelas y SCSI. Para obtener más información sobre la conexión de impresoras, consulte el artículo CUPS in a Nutshell (CUPS en pocas palaFuncionamiento de la impresora 509 bras) en la base de datos de asistencia en http://portal.suse.com. Para encontrar el artículo, escriba cups en el cuadro de diálogo de búsqueda. AVISO: Conexión por cable a la máquina Al conectar la impresora a la máquina, recuerde que tan sólo los dispositivos USB pueden conectarse y desconectarse durante el funcionamiento. El sistema debería cerrarse antes de cambiar otro tipo de conexiones. 31.3 Instalación del software PPD (Descripción de impresora PostScript) es el lenguaje que describe las propiedades, como la resolución, y las opciones, como la disponibilidad de unidad dúplex. Estas descripciones son necesarias para utilizar varias opciones de impresora en CUPS. Sin un archivo PPD, los datos de impresión serán reenviados a la impresora “en bruto”, lo que no resulta conveniente. A lo largo de la instalación de SUSE Linux, muchos archivos PPD se preinstalan para que puedan usarse incluso en impresoras que no admitan PostScript. Para configurar una impresora PostScript, el mejor método es conseguir un archivo PPD. Hay muchos archivos PPD disponibles en el paquete manufacturer-PPDs, que se instala automáticamente aun con una instalación estándar. Consulte la Sección 31.6.3, “Archivos PPD en varios paquetes” (p. 521) y la Sección 31.7.2, “Inexistencia de archivo PPD adecuado para una impresora PostScript” (p. 525). Los archivos PPD nuevos pueden almacenarse en el directorio /usr/share/cups/ model/ o añadirse al sistema de impresión con YaST (consulte la “Configuración manual” (p. 512)). Posteriormente, el archivo PPD podrá seleccionarse durante la instalación. Tenga cuidado en el caso de que un fabricante de impresoras le indique que instale paquetes de software completos y que, además, modifique los archivos de configuración. En primer lugar, este tipo de instalación tendría como resultado la pérdida de la compatibilidad que SUSE Linux proporciona; y, en segundo lugar, es posible que los comandos de impresión funcionaran de forma distinta y que dispositivos de otros fabricantes dejaran de funcionar en el sistema. Por esta razón, no se recomienda efectuar la instalación del software del fabricante. 510 31.4 Configuración de la impresora Tras conectar la impresora al equipo e instalar el software, instale la impresora en el sistema. Esta instalación debería llevarse a cabo utilizando las herramientas que se distribuyen con SUSE Linux. Dado que SUSE Linux hace especial hincapié en la seguridad, las herramientas de otros fabricantes a menudo presentan ciertas dificultades con respecto a las restricciones de seguridad y, con ello, dan lugar a más problemas que ventajas. Consulte la Sección 31.6.1, “Servidor y cortafuegos CUPS” (p. 518) y la Sección 31.6.2, “Cambios en el servicio de impresión CUPS” (p. 520) para obtener más información sobre la solución de problemas. 31.4.1 Impresoras locales Si se detecta una impresora local sin configurar al iniciar sesión, YaST comienza a configurarla. Para ello, se utilizan los mismos cuadros de diálogo que en la descripción de la configuración siguiente. Para configurar la impresora, seleccione Hardware → Printer (Impresora) en el centro de control de YaST. Con esto, se abre la ventana principal de configuración de la impresora, en cuya parte superior se enumeran los dispositivos detectados. En la parte inferior se enumeran todas las colas configuradas hasta ese momento. Si no se ha detectado la impresora, configúrela manualmente. IMPORTANTE Si la entrada Printer (Impresora) no se encuentra disponible en el centro de control de YaST, es probable que el paquete yast2-printer no esté instalado. Para solucionar este problema, instale el paquete yast2-printer y reinicie YaST. Configuración automática YaST podrá configurar la impresora de forma automática si el puerto paralelo o USB puede configurarse automáticamente y se puede detectar la impresora conectada. La base de datos de la impresora también debe contener la cadena de ID de la impresora que YaST recupera durante la detección automática de hardware. Si el ID del hardware no coincide con la designación del modelo, seleccione este último manualmente. Funcionamiento de la impresora 511 Para asegurarse de que todo funciona correctamente, todo valor de configuración debe comprobarse con la función de prueba de impresión de YaST. La página de prueba también proporciona información relevante sobre la configuración sobre la que se ha efectuado la prueba. Configuración manual Si no se cumplen los requisitos de la configuración automática o si desea una personalizada, configure la impresora manualmente. Es posible que YaST sea capaz de determinar automáticamente los ajustes correctos o, al menos, hacer una selección previa razonable en función de la corrección de la detección automática y la cantidad de información sobre el modelo de impresora que se encuentre en la base de datos. Deben configurarse los siguientes parámetros: Hardware Connection (Port) (Conexión de hardware [Puerto]) La configuración de la conexión de hardware depende de que YaST haya sido capaz de hallar la impresora durante la detección automática del hardware. Si YaST ha sido capaz de detectar el modelo de impresora automáticamente, se puede suponer que la conexión de la impresora funciona en el nivel de hardware y los ajustes no necesitan cambios al respecto. Si YaST no es capaz de detectar el modelo de la impresora, puede haber algún problema con la conexión en el nivel de hardware. En tal caso, la configuración de la conexión exige cierta intervención manual. En el cuadro de diálogo Printer Configuration (Configuración de la impresora), pulse Configure (Configurar) para iniciar el flujo de trabajo de configuración manual. En el mismo cuadro, seleccione el valor Printer Type (Tipo de impresora) que le corresponda (por ejemplo USB printer [Impresora USB]) y, mediante Next (Siguiente), especifique el valor de Printer Connection (Conexión de la impresora) y seleccione el dispositivo. Name of the Queue (Denominación de la cola) El nombre de la cola se utiliza con los comandos de impresión. Este nombre debería ser relativamente corto y estar formado exclusivamente por letras minúsculas y números. En el cuadro de diálogo siguiente (Queue name [Nombre de la cola]), especifique el valor de Name for printing (Nombre para la impresión). Printer Model and PPD File (Modelo de impresora y archivo PPD) Todos los parámetros de la impresora específica, como el controlador Ghostscript que se va a utilizar y los parámetros del filtro de la impresora, se almacenan en un 512 archivo PPD (Descripción de impresora PostScript). Para obtener más información sobre los archivos PPD, consulte la Sección 31.3, “Instalación del software” (p. 510). Para muchos modelos de impresora, están disponibles varios archivos PPD (por ejemplo, en el caso de que varios controladores Ghostscript funcionen en el modelo en cuestión). Al seleccionar un fabricante y un modelo en el cuadro de diálogo siguiente (Printer model [Modelo de impresora]), seleccione el archivo PPD que le corresponde a la impresora. Si varios archivos PPD se encuentran disponibles para ese modelo, YaST establece uno de ellos por defecto (normalmente, el que aparece marcado como recommended [recomendado]). Puede cambiar el archivo PPD seleccionado en el siguiente cuadro de diálogo con Edit (Editar). Para los modelos que no sean PostScript, el controlador Ghostscript crea todos los datos de la impresora específica. Por esta razón, la configuración del controlador es el factor individual de mayor importancia en la determinación de la calidad de impresión. El tipo de controlador Ghostscript (archivo PPD) seleccionado y las opciones que para él se especifican determinan la calidad de impresión. En caso necesario, cambie las opciones adicionales (que el archivo PPD pone a su disposición) tras seleccionarEdit (Editar). Figura 31.1 Selección del modelo de la impresora Funcionamiento de la impresora 513 Imprima siempre la página de prueba para comprobar que los ajustes funcionan como es debido. Si el resultado no es el esperado (con varias páginas casi vacías, por ejemplo), debería poder interrumpir el funcionamiento de la impresora retirando todo el papel y, a continuación, deteniendo la prueba desde YaST. Si la base de datos de la impresora no incluye ninguna entrada para su modelo, puede añadir un archivo PPD nuevo (seleccionando Add PPD File to Database [Añadir archivo PPD a la base de datos]) o utilizar un conjunto de archivos PPD genéricos para hacer que la impresora funcione con uno de los lenguajes de impresión estándar. Para ello, seleccione UNKNOWN MANUFACTURER (Fabricante desconocido) como su fabricante de impresora. Advanced Settings (Ajustes avanzados) Por lo general, no necesita efectuar ningún cambio en estos ajustes. 31.4.2 Impresoras de red Una impresora de red admite varios protocolos, algunos de ellos incluso de forma simultánea. Aunque la mayor parte de los protocolos admitidos son estandarizados, algunos fabricantes pueden expandir (modificar) el estándar porque llevan a cabo pruebas en sistemas que aún no lo aplican correctamente o porque quieren proporcionar ciertas funciones que no están disponibles con el estándar en cuestión. Los fabricantes proporcionan controladores únicamente para unos pocos sistemas operativos, con lo que eliminan las dificultades que surgen con esos sistemas. Desafortunadamente, en contadas ocasiones se proporcionan controladores para Linux. La situación actual impide dar por sentado que todo protocolo funciona sin problemas en Linux. Por lo tanto, es posible que necesite probar con varias opciones para lograr una configuración funcional. CUPS admite los protocolos LPD, IPP y SMB y de socket. A continuación se presenta información detallada sobre estos protocolos: Socket (zócalo) Socket (zócalo) hace referencia a una conexión que permite el envío de datos a un zócalo de Internet sin efectuar antes un acuerdo de datos. Algunos de los números de puerto de zócalos usados con mayor frecuencia son 9100 o 35. Un ejemplo de URI de dispositivo es socket://host-printer:9100/. 514 LPD (daemon de impresora de línea) El protocolo LPD probado se describe en RFC 1179. Bajo este protocolo, algunos datos relacionados con trabajos, como el ID de la cola de impresión, se envían antes que propios datos de impresión. Por lo tanto, debe especificarse una cola de impresión al configurar el protocolo LPD para la transmisión de datos. Los productos de varios fabricantes de impresoras son lo suficientemente flexibles como para aceptar cualquier nombre para la cola de impresión. Si fuera necesario, el manual de la impresora debería indicar qué nombre utilizar. A menudo se utilizan nombres como LPT, LPT1, LP1 o similares. También puede configurarse una cola LPD en un host Linux o Unix diferente en el sistema CUPS. El número de puerto de un servicio LPD es 515. Un ejemplo de URI de dispositivo es lpd://host-printer/LPT1. IPP (Protocolo de impresión de Internet) IPP es un protocolo relativamente nuevo (1999) basado en el protocolo HTTP. Con IPP, se transmite una cantidad mayor de datos relacionados con el trabajo que con otros protocolos. CUPS utiliza IPP para la transmisión de datos internos. Este es el protocolo más utilizado para el reenvío de colas entre dos servidores CUPS. El nombre de la cola de impresión es necesario para la configuración correcta de IPP. El número de puerto para SIP es el 631. Dos ejemplos de URI de dispositivo son ipp://host-printer/ps y ipp://host-cupsserver/printers/ps. SMB (Recurso compartido de Windows) CUPS también admite la impresión en impresoras conectadas a recursos compartidos de Windows. El protocolo que se utiliza para tal propósito es SMB. SMB utiliza los números de puerto 137, 138 y 139. smb://user:password@workgroup/server/printer, smb://user:password@host/printer y smb://server/printer son varios ejemplos de URI de dispositivo. El protocolo que admite la impresora debe determinarse antes de la configuración. Si el fabricante no proporciona la información necesaria, el comando nmap, que viene con el paquete nmap, puede utilizarse para averiguar el protocolo. nmap comprueba todos los puertos abiertos de un host. Por ejemplo: nmap -p 35,137-139,515,631,9100-10000 printerIP Configuración de CUPS en una red mediante YaST Las impresoras de red deben configurarse mediante YaST. YaST facilita el procedimiento de configuración y está óptimamente equipado para vencer las restricciones de segu- Funcionamiento de la impresora 515 ridad de CUPS (consulte la Sección 31.6.2, “Cambios en el servicio de impresión CUPS” (p. 520)). Para informarse sobre las directrices de instalación de CUPS en una red, consulte el artículo CUPS in a Nutshell (CUPS en pocas palabras) en la base de datos de asistencia en http://portal.suse.com. Select Other (not detected) (Seleccionar otro [no detectado]) y haga clic en Configure (Configurar). Salvo que el administrador de red especifique lo contrario, pruebe con la opción Print Directly to a Network Printer (Imprimir directamente en impresora de red) y siga el procedimiento local correspondiente. Configuración mediante herramientas de líneas de comando De forma alternativa, CUPS puede configurarse con herramientas de línea de comando como lpadmin y lpoptions. Se necesita un URI (Identificador de recurso uniforme) que conste de un sistema secundario, como usb, además de parámetros como /dev/ usb/lp0. Por ejemplo, el URI completo podría ser parallel:/dev/lp0 (impresora conectada al primer puerto paralelo) o usb:/dev/usb/lp0 (primera impresora detectada, conectada al puerto USB). Con lpadmin, el administrador de servidor CUPS puede añadir, eliminar o gestionar colas de clase y de impresión. Para añadir una cola de impresión, utilice la siguiente sintaxis: lpadmin -p queue -v device-URI \ -P PPD-file -E Con ello, el dispositivo (-v) se encontrará disponible como queue (-p) mediante el archivo PPD especificado (-P). Esto significa que debe saber cuál es el archivo PPD y el nombre del dispositivo si desea configurar la impresora manualmente. No utilice -E como primera opción. Para todos los comandos CUPS, si -E se utiliza como primer argumento, se establece una conexión cifrada. Para habilitar la impresora, debe utilizarse -E como se muestra en el siguiente ejemplo: lpadmin -p ps -v parallel:/dev/lp0 -P \ /usr/share/cups/model/Postscript.ppd.gz -E El siguiente ejemplo ilustra la cómo configurar una impresora de red: lpadmin -p ps -v socket://192.168.1.0:9100/ -P \ /usr/share/cups/model/Postscript-level1.ppd.gz -E 516 Para conocer más opciones de lpadmin, consulte la página Man de lpadmin(1). Durante la instalación del sistema, algunas opciones se establecen como por defecto. Estas opciones pueden modificarse en cada trabajo de impresión (en función del uso de la herramienta de impresión). También es posible cambiar con YaST estas opciones por defecto. Mediante herramientas de línea de comando, establezca las opciones como por defecto como se especifica a continuación: 1 En primer lugar, enumere todas las opciones: lpoptions -p queue -l Ejemplo: Resolution/Output Resolution: 150dpi *300dpi 600dpi La opción por defecto activada se marca anteponiendo un asterisco (*). 2 Cambie la opción con lpadmin: lpadmin -p queue -o Resolution=600dpi 3 Compruebe el nuevo ajuste: lpoptions -p queue -l Resolution/Output Resolution: 150dpi 300dpi *600dpi Cuando un usuario normal ejecuta lpoptions, los ajustes se escriben en ~/ .lpoptions. Los ajustes root se escriben en /etc/cups/lpoptions. 31.5 Configuración para aplicaciones Las aplicaciones utilizan las colas de impresión existentes del mismo modo en que lo hacen las herramientas de línea de comandos. Normalmente, no es necesario volver a configurar la impresora para una aplicación concreta, puesto que debería ser capaz de imprimir desde aplicaciones utilizando las colas disponibles. Para imprimir desde la línea de comandos, escriba lp -d nombredecola nombredearchivo, sustituyendo nombredecola y nombredearchivo por los nombres correspondientes. Funcionamiento de la impresora 517 Algunas aplicaciones utilizan el comando lp para llevar a cabo la impresión. En estos casos, escriba el comando correcto en el cuadro de diálogo de impresión de la aplicación (normalmente sin especificar nombredearchivo); por ejemplo, lp -d nombredecola. Para hacer esto con programas de KDE, habilite Print through an external program (Imprimir mediante programa externo). En caso contrario, no podrá introducir el comando de impresión. Herramientas como xpp y kprinter del programa de KDE proporcionan una interfaz gráfica para elegir entre colas y definir las opciones estándar de CUPS y las opciones de la impresora específica que se habilitan gracias al archivo PPD. Puede utilizar kprinter como la interfaz de impresión estándar de las aplicaciones que no sean de KDE, especificando kprinter o kprinter --stdin como el comando de impresión en los cuadros de diálogo de las aplicaciones en cuestión. El comportamiento mismo de la aplicación determina cuál de estos dos comandos utilizar. Si se configura correctamente, la aplicación debería llamar al cuadro de diálogo de kprinter siempre que la primera dé lugar a un trabajo de impresión. De este modo, puede utilizar el cuadro de diálogo para seleccionar una cola y definir otras opciones de impresión. Esto requiere que la propia configuración de impresión de la aplicación no entre en conflicto con la de kprinter y que las opciones de impresión tan sólo se cambien mediante kprinter después de su habilitación. 31.6 Funciones especiales en SUSE Linux Se ha llevado a cabo una adaptación de varias funciones de CUPS para SUSE Linux. Aquí se tratan algunos de los cambios más importantes. 31.6.1 Servidor y cortafuegos CUPS Hay varias formas de configurar CUPS como cliente de un servidor de red. 1. 518 Para cada cola en un servidor de red, puede configurar una cola local mediante la que reenviar todos los trabajos al servidor de red correspondiente. Por lo general, no se recomienda hacer esto, puesto que todas las máquinas clientes deben configurarse nuevamente siempre que cambie la configuración del servidor de red. 2. Los trabajos de impresión también pueden reenviarse directamente a un servidor de red. Para este tipo de configuración, no ejecute un daemon CUPS local. lp o las llamadas a las bibliotecas correspondientes a otros programas pueden enviar trabajos directamente al servidor de red. No obstante, esta configuración no funciona si también desea imprimir en una impresora local. 3. El daemon CUPS puede escuchar a los paquetes de difusión IPP que envían otros servidores de red para anunciar las colas disponibles. Para utilizar este método, debe abrirse el puerto 631/UDP para los paquetes entrantes. Esta es la mejor configuración CUPS para imprimir en servidores CUPS remotos. No obstante, existe el riesgo de que un atacante envíe difusiones IPP con colas y de que el daemon local acceda a la cola falsa. Si entonces se muestra la cola con el mismo nombre que el de otra cola del servidor local, es posible que el propietario del trabajo crea que éste se ha enviado a un servidor local, cuando en realidad se ha enviado al servidor del atacante. YaST puede hallar servidores CUPS explorando todos los host de la red para ver si ofrecen este servicio y escuchando las difusiones IPP. El segundo método se utiliza durante la instalación del sistema para encontrar servidores CUPS para este propósito. Se requiere que el puerto 631/UDP esté abierto para los paquetes entrantes. La utilización del segundo método para abrir un puerto para configurar el acceso a colas remotas puede suponer un riesgo para la seguridad, puesto que sería posible que un atacante difundiera un servidor que podrían aceptar los usuarios. El ajuste por defecto del cortafuegos que se muestra en el cuadro de diálogo es el de rechazar difusiones IPP en cualquier interfaz. En consecuencia, el segundo método de detección de colas remotas y el tercer método para obtener acceso a ellas no pueden funcionar. Por lo tanto, la configuración del cortafuegos debe modificarse marcando una de las interfaces como internal (Interna), con lo que el puerto se abre por defecto; o bien abriendo el puerto de una interfaz external (Externa) de forma explícita. Por razones de seguridad, ningún puerto está abierto por defecto. La configuración del cortafuegos propuesta debe configurarse para permitir que CUPS detecte colas remotas durante la instalación y acceda a servidores remotos desde el sistema local durante el funcionamiento normal. De forma alternativa, los usuarios pueden detectar servidores CUPS explorando activamente los hosts de red local o configurar todas las colas manualmente. No obstante, este método no se recomienda a causa de las razones que se mencionaron al comienzo de esta sección. Funcionamiento de la impresora 519 31.6.2 Cambios en el servicio de impresión CUPS Estos cambios se aplicaron inicialmente para SUSE Linux 9.1. Ejecución de cupsd el usuario lp Al iniciarse, cupsd cambia del usuario root al usuario lp. Con ello, se proporciona un nivel de seguridad muy superior, ya que el servicio de impresión CUPS no se ejecuta con permisos sin restricciones, sino únicamente con los permisos necesarios para el servicio de impresión. No obstante, la autenticación (comprobación de la contraseña) no puede efectuarse mediante /etc/shadow, puesto que lp no tiene acceso a /etc/shadow. En lugar de esto, debe utilizarse la autenticación del CUPS específico por medio de /etc/ cups/passwd.md5. Para ello, deben especificarse en /etc/cups/passwd.md5 un administrador CUPS con el grupo de administración CUPS sys y una contraseña CUPS. Esto se consigue escribiendo lo que aparece a continuación como root: lppasswd -g sys -a CUPS-admin-name Este ajuste también resulta esencial si se desea utilizar la interfaz Web de administración (CUPS) o la herramienta de administración de la impresora (KDE). Cuando cupsd se ejecuta como lp, /etc/printcap no puede generarse, puesto que no se le permite a lp crear archivos en /etc/. Por lo tanto, cupsd crea /etc/ cups/printcap. Para garantizar que las aplicaciones que sólo pueden leer nombres de cola de /etc/printcap sigan funcionando correctamente, /etc/printcap actúa como un enlace simbólico que apunta a /etc/cups/printcap. Cuando cupsd se ejecuta como lp, el puerto 631 no puede abrirse. Por lo tanto, cupsd no puede recargarse con rccups reload. En lugar de este comando, utilice rccups restart. 520 Funciones generalizadas para BrowseAllow y BrowseDeny Los permisos de acceso definidos para BrowseAllow y BrowseDeny se aplican a todos los tipos de paquetes enviados a cupsd. Los ajustes por defecto en /etc/cups/ cupsd.conf son los siguientes: BrowseAllow @LOCAL BrowseDeny All y <Location /> Order Deny,Allow Deny From All Allow From 127.0.0.1 Allow From 127.0.0.2 Allow From @LOCAL </Location> De este modo, tan sólo los hosts LOCAL pueden tener acceso a cupsd en un servidor CUPS. Los hosts LOCAL son hosts cuyas direcciones IP pertenecen a una interfaz que no es PPP (interfaces cuyos indicadores IFF_POINTOPOINT no se han establecido) y a la misma red que el servidor CUPS. Los paquetes de todos los otros hosts se rechazan inmediatamente. Activación por defecto de cupsd En una instalación estándar, cupsd se activa automáticamente, con lo que se habilita un acceso cómodo a las colas de los servidores de red CUPS sin ninguna acción manual adicional. Los elementos que aparecen en la “Ejecución de cupsd el usuario lp” (p. 520) y la “Funciones generalizadas para BrowseAllow y BrowseDeny” (p. 521) son condiciones previas fundamentales para esta función, puesto que, de lo contrario, la seguridad no sería suficiente como para efectuar una activación automática de cupsd. 31.6.3 Archivos PPD en varios paquetes La configuración de impresora YaST configura las colas para CUPS utilizando únicamente los archivos PPD instalados en /usr/share/cups/model/ en el sistema. Para encontrar los archivos PPD adecuados para el modelo de la impresora, YaST compara el proveedor y el modelo determinados a lo largo de la detección del hardware Funcionamiento de la impresora 521 con aquellos que figuran en todos los archivos PPD disponibles en /usr/share/ cups/model/ en el sistema. Para ello, la configuración de impresora YaST genera una base de datos a partir de la información del proveedor y del modelo extraída de los archivos PPD. Al seleccionar una impresora de la lista de proveedores y modelos, recibirá los archivos PPD que coincidan con el proveedor y el modelo. La configuración que utiliza únicamente archivos PPD y ninguna otra fuente de información distinta presenta la ventaja de que los archivos PPD en /usr/share/cups/ model/ pueden modificarse sin restricción alguna. La configuración de impresora YaST reconoce los cambios y regenera la base de datos de proveedores y modelos. Por ejemplo, si tan sólo se dispone de impresoras PostScript, por lo general no se necesitarán los archivos PPD Foomatic del paquete cups-drivers o los archivos PPD GimpPrint del paquete cups-drivers-stp. En lugar de esto, los archivos PPD para las impresoras PostScript pueden copiarse directamente en /usr/share/cups/model/ (si no existen ya en el paquete manufacturer-PPDs) para lograr una configuración óptima de las impresoras. Archivos PPD CUPS del paquete cups A los archivos PPD genéricos del paquete cups se les ha añadido, como complemento, archivos PPD Foomatic adaptados para impresoras PostScript de nivel 1 y nivel 2: • /usr/share/cups/model/Postscript-level1.ppd.gz • /usr/share/cups/model/Postscript-level2.ppd.gz Archivos PPD del paquete cups-drivers Por lo general, el filtro de impresora Foomatic foomatic-rip se utiliza junto con Ghostscript para impresoras que no son PostScript. Los archivos PPD Foomatic adecuados tienen las entradas *NickName: ... Foomatic/Ghostscript driver y *cupsFilter: ... foomatic-rip. Estos archivos PPD se encuentran en el paquete cups-drivers. YaST prefiere un archivo PPD Foomatic si un archivo PPD Foomatic con la entrada *NickName: ... Foomatic ... (recommended) coincide con el modelo de impresora y el paquete manufacturer-PPDs no contiene un archivo PPD más adecuado. 522 Archivos PPD Gimp-Print del paquete cups-drivers-stp En lugar de foomatic-rip, el filtro CUPS rastertoprinter de Gimp-Print puede utilizarse para varias impresoras que no sean PostScript. Este filtro y los archivos PPD de Gimp-Print adecuados están disponibles en el paquete cups-drivers-stp. Los archivos PPD de Gimp-Print se encuentran en /usr/share/cups/model/ stp/ y tienen las entradas *NickName: ... CUPS+Gimp-Print y *cupsFilter: ... rastertoprinter. Archivos PPD de fabricantes de impresoras del paquete manufacturer-PPDs El paquete manufacturer-PPDs contiene archivos PPD de fabricantes de impresoras que se comercializan con una licencia de carácter suficientemente liberal. Las impresoras PostScript deberían configurarse con el archivo PPD adecuado del fabricante de impresoras, puesto que este archivo permite utilizar todas las funciones de la impresora PostScript. YaST prefiere un archivo PPD del paquete manufacturer-PPDs siempre que se cumplan las siguientes condiciones: • El proveedor y el modelo determinados a lo largo de la detección del hardware coincide con el proveedor y el modelo que figura en un archivo PPD del paquete manufacturer-PPDs. • El archivo PPD del paquete manufacturer-PPDs es el único disponible para el modelo de impresora o hay un archivo PPD Foomatic con una entrada *NickName: ... Foomatic/Postscript (recommended) que también coincide con el modelo de impresora. En consecuencia, YaST no utiliza ningún archivo PPD del paquete manufacturer-PPDs en los siguientes casos: • El archivo PPD del paquete manufacturer-PPDs no coincide con el proveedor y el modelo. Esto puede ocurrir si el paquete manufacturer-PPDs contiene únicamente un archivo PPD para los modelos similares; por ejemplo, en el caso de que no haya ningún archivo PPD separado para los modelos particulares de una serie determinada, pero el nombre del modelo se especifique (como Funprinter 1000 series, por ejemplo) en el archivo PPD. Funcionamiento de la impresora 523 • No se recomienda el archivo PPD PostScript de Foomatic. Puede que la causa de esto radique en que el modelo de impresora no funciona con suficiente eficacia en el modo PostScript; por ejemplo, la impresora puede ser poco fiable en este modo por tener demasiado poca memoria, o ser demasiado lenta a causa de la excesiva debilidad de su procesador. Además, es posible que la impresora no admita PostScript por defecto; por ejemplo, puede ocurrir que la compatibilidad con PostScript tan sólo esté disponible gracias a un módulo opcional. Si un archivo PPD del paquete manufacturer-PPDs es adecuado para una impresora PostScript, pero YaST no puede configurarla por las razones indicadas, seleccione manualmente en YaST el modelo respectivo de impresora. 31.7 Solución de problemas Las secciones siguientes se ocupan de algunos de los problemas relacionados con el software y el hardware de la impresora que aparecen con más frecuencia y ofrece propuestas para solucionarlos o eludirlos. 31.7.1 Impresoras sin compatibilidad con lenguaje de impresión estándar Las impresoras que no admiten ningún lenguaje de impresión habitual y con las que tan sólo es posible comunicarse mediante secuencias de control especiales se denominan impresoras GDI. Estas impresoras sólo pueden funcionar con las versiones del sistema operativo para las que exista un controlador comercializado por el fabricante. GDI es una interfaz de programación desarrollada por Microsoft para dispositivos de gráficos. El verdadero problema no radica en la interfaz de programación, sino en el hecho de que sólo es posible comunicarse con las impresoras GDI mediante el lenguaje de impresión propio del modelo de impresora específica. En el caso de algunas impresoras, puede cambiarse del funcionamiento en modo GDI a uno de los lenguajes de impresión estándar. Algunos fabricantes proporcionan controladores propios para sus impresoras GDI. El inconveniente que presenta este tipo de controladores es que no se garantiza su funcionamiento con el sistema de impresión instalado, además de que no resultan adecuados para las distintas plataformas de hardware. Por contra, las impresoras que admiten un lenguaje de impresión estándar no 524 dependen de una versión del sistema de impresión ni de una plataforma de hardware especiales. En lugar de dedicar el tiempo a intentar hacer funcionar un controlador Linux para una marca concreta, podría resultar más rentable adquirir una impresora compatible. Esto resolvería el problema con el controlador de una vez por todas, con lo que se eliminaría la necesidad de instalar y configurar el software especial del controlador, junto con la de conseguir las actualizaciones de éste que podrían precisarse a raíz de desarrollos posteriores del sistema de impresión. 31.7.2 Inexistencia de archivo PPD adecuado para una impresora PostScript Si el paquete manufacturer-PPDs no contiene ningún archivo PPD adecuado para una impresora PostScript, debería ser posible utilizar el archivo PPD desde el CD del controlador del fabricante de la impresora, o descargar un archivo PPD adecuado de la página Web del fabricante. Si el archivo PPD se suministra en formato zip (.zip) o como archivo zip de extracción automática (.exe), descomprímalo mediante unzip. En primer lugar, revise las cláusulas de la licencia del archivo PPD. A continuación, utilice la utilidad cupstestppd para comprobar si el archivo PPD cumple la “Adobe PostScript Printer Description File Format Specification, version 4.3.” (Versión 4.3 de la Especificación de formato de archivo de descripción de impresora PostScript de Adobe). Si la utilidad devuelve el valor “FAIL”, hay errores serios en los archivos PPD y es probable que causen problemas importantes. Los problemas de los que informe cupstestppd deben eliminarse. En caso necesario, solicite un archivo PPD adecuado al fabricante de la impresora. 31.7.3 Puertos paralelos El procedimiento más seguro consiste en conectar directamente la impresora al primer puerto paralelo y seleccionar los ajustes de puerto paralelo siguientes en el BIOS: • I/O address: 378 (hexadecimal) Funcionamiento de la impresora 525 • Interrupt: irrelevante • Mode: Normal, SPP o Output Only • DMA: inhabilitado Si, pese a estos ajustes, no es posible la comunicación con la impresora mediante el puerto paralelo, especifique explícitamente la dirección de entrada o salida de datos (I/O address) de acuerdo con el ajuste del BIOS como 0x378 en /etc/modprobe .conf. Si hay dos puertos paralelos cuyas direcciones de entrada o salida son 378 y 278 (hexadecimal), especifique estas últimas como 0x378,0x278. Si la interrupción (Interrupt) 7 se encuentra libre, puede activarse con la cadena que se muestra en el Ejemplo 31.1, “/etc/modprobe.conf: Modo de interrupción para el primer puerto paralelo” (p. 526). Antes de activar el modo de interrupción, compruebe si el archivo /proc/interrupts ya se está utilizando. Tan sólo aparecen las interrupciones que se utilizan en ese momento. Es posible que esto cambie en función de los componentes de hardware activos. Ningún otro dispositivo debe hacer uso de la interrupción para el puerto paralelo. Si no está seguro, utilice el modo de sondeo mediante irq=none. Ejemplo 31.1 paralelo /etc/modprobe.conf: Modo de interrupción para el primer puerto alias parport_lowlevel parport_pc options parport_pc io=0x378 irq=7 31.7.4 Conexiones de impresora de red Identificación de problemas de red Conecte directamente la impresora al equipo. Si desea realizar pruebas, configure la impresora como impresora local. Si esto funciona, los problemas están relacionados con la red. Comprobación de la red TCP/IP La red TCP/IP y la resolución de nombres deben ser funcional. Comprobación de lpd remotos Utilice el siguiente comando para comprobar si puede establecerse una conexión TCP como lpd (puerto 515) en host: 526 netcat -z host 515 && echo ok || echo failed Si la conexión con lpd no puede establecerse, es posible que lpd no se encuentre activo o que haya problemas básicos de red. Como usuario root, utilice el siguiente comando para consultar un informe de estado (posiblemente muy largo) para cola en host remoto, siempre que el lpd respectivo se encuentre activo y el host admita consultas: echo -e "\004queue" \ | netcat -w 2 -p 722 host 515 Si lpd no responde, es posible que no esté activo o que haya problemas básicos de red. Si lpd responde, la respuesta debería mostrar por qué la impresión no es posible en la cola en host. Si recibe una respuesta como la que aparece en el Ejemplo 31.2, “Mensaje de error desde lpd” (p. 527), el problema está causado por el lpd remoto. Ejemplo 31.2 Mensaje de error desde lpd lpd: your host does not have line printer access lpd: queue does not exist printer: spooling disabled printer: printing disabled Comprobación de cupsd remotos Por defecto, el servidor de red CUPS debería difundir sus colas cada 30 segundos en puerto UDP 631. En consecuencia, el siguiente comando puede utilizarse para comprobar si hay un servidor de red CUPS en la red. netcat -u -l -p 631 & PID=$! ; sleep 40 ; kill $PID Si existe una difusión de servidor de red CUPS, aparece la salida como se muestra en el Ejemplo 31.3, “Difusión desde el servidor de red CUPS” (p. 527). Ejemplo 31.3 Difusión desde el servidor de red CUPS ipp://host.domain:631/printers/queue Utilice el siguiente comando para comprobar si puede establecerse una conexión TCP como lpd (puerto 631) en host: netcat -z host 631 && echo ok || echo failed Si no puede establecerse la conexión con cupsd, es posible que cupsd no esté activo o que haya problemas básicos de red. lpstat -h host -l -t devuelve Funcionamiento de la impresora 527 un informe de estado (posiblemente muy largo) para todas las colas en host, siempre que el cupsd respectivo se encuentre activo y el host admita consultas. El siguiente comando puede utilizarse para comprobar si la cola en host acepta un trabajo de impresión que conste de un solo carácter de retorno de carro. No debería imprimirse nada. Es posible que salga una página en blanco. echo -en "\r" \ | lp -d queue -h host Solución de problemas de impresoras de red o servidores de impresión dedicados A veces, los gestores de cola que se ejecutan en un servidor de impresión dedicado pueden ocasionar problemas cuando tienen que hacer frente a muchos trabajos de impresión. Puesto que el gestor de cola del servidor de impresión dedicado es el causante de esto, no hay nada que el usuario pueda hacer. Como solución, eluda el gestor de cola del servidor de impresión dedicado dirigiendo la comunicación a la impresora conectada en el servidor de impresión dedicado directamente a través del zócalo TCP. Consulte la Sección 31.4.2, “Impresoras de red” (p. 514). De esta forma, la función del servidor de impresión dedicado queda relegada a la de un convertidor de las distintas formas de transferencia de datos (red TCP/IP y conexión de impresora local). Para utilizar este método, necesita saber el puerto TCP del servidor de impresión dedicado. Si la impresora está conectada al servidor de impresión dedicado y encendida, normalmente este puerto TCP puede determinarse con la utilidad nmap del paquete nmap cierto tiempo después de haber encendido el servidor de impresión dedicado. Por ejemplo, nmap dirección IP puede dar el siguiente resultado para un servidor de impresión dedicado: Port 23/tcp 80/tcp 515/tcp 631/tcp 9100/tcp State open open open open open Service telnet http printer cups jetdirect Esta salida indica que la comunicación con impresora conectada al servidor de impresión dedicado puede realizarse a través del zócalo TCP en el puerto 9100. Por defecto, nmap tan sólo comprueba varios puertos comúnmente conocidos que se enumeran en /usr/share/nmap/nmap-services. Para comprobar todos los puertos posibles, utilice el comando nmap -p de_puerto-a_puerto dirección IP. Esto podría llevar cierto tiempo. Para obtener más información, consulte la página Man de nmap. 528 Escriba un comando como: echo -en "\rHello\r\f" | netcat -w 1 IP-address port cat file | netcat -w 1 IP-address port para enviar directamente cadenas de caracteres o archivos al puerto respectivo para comprobar si puede establecer comunicación con la impresora en este puerto. 31.7.5 Impresión defectuosa sin mensajes de error El trabajo de impresión finaliza para el sistema de impresión cuando el sistema secundario CUPS completa la transferencia de datos al destinatario (impresora). Si el procesamiento posterior en el destinatario falla (por ejemplo, si la impresora no es capaz de imprimir los datos de la impresora específica), el sistema de impresión no registra este hecho. Si la impresora no es capaz de imprimir los datos específicos de impresora, seleccione un archivo PPD distinto que sea más adecuado para la impresora. 31.7.6 Colas inhabilitadas Si falla completamente la transferencia de datos al destinatario tras varios intentos, el sistema secundario CUPS, como usb o socket, informa de un error al sistema de impresión (a cupsd). El sistema secundario decide si los intentos tienen sentido hasta que la transferencia de datos se notifica como imposible, y también cuántos intentos han de llevarse a cabo. Puesto que estos intentos se llevarían a cabo en vano, cupsd inhabilita la impresión para la cola respectiva. Tras eliminar la causa del problema, el administrador del sistema debe rehabilitar la impresión con el comando /usr/bin/enable. 31.7.7 Exploración de CUPS: Supresión de trabajos de impresión Si un servidor de red CUPS difunde sus colas a los hosts clientes mediante la exploración y se encuentra activo un cupsd local adecuado en los hosts clientes, el cupsd cliente acepta trabajos de impresión de las aplicaciones y las reenvía al cupsd del servidor. Cuando cupsd acepta un trabajo de impresión, se le asigna un nuevo número de trabajo. Funcionamiento de la impresora 529 Por lo tanto, el número de trabajo del host cliente difiere del número de trabajo que figura en el servidor. Puesto que, normalmente, un trabajo de impresión se reenvía inmediatamente, no puede suprimirse con el número de trabajo que figura en el host cliente, puesto que el cupsd cliente considera el trabajo de impresión como completado al reenviarse al servidor cupsd. Para suprimir un trabajo de impresión que se encuentra en el servidor, utilice un comando como lpstat -h print-server -o para determinar el número de trabajo que figura en el servidor, siempre que éste no haya completado ya el trabajo de impresión (es decir, siempre que no la haya enviado a la impresora). El trabajo de impresión que se encuentra en el servidor puede suprimirse mediante este número de trabajo: cancel -h print-server queue-jobnnumber 31.7.8 Trabajos de impresión defectuosos y errores de transferencia de datos Los trabajos de impresión permanecen en las colas y la impresión se retoma si se apaga la impresora o si el equipo se apaga y rearranca durante el proceso de impresión. Los trabajos de impresión defectuosos pueden eliminarse de la cola mediante cancel. Si un trabajo de impresión es defectuoso o tiene lugar un error en la comunicación entre el host y la impresora, ésta imprime numerosas hojas con caracteres ininteligibles, puesto que no es capaz de procesar los datos correctamente. Para solucionar este problema, proceda como sigue: 1 Para detener la impresión, retire todo el papel de las impresoras de inyección de tinta o abra las bandejas del papel de las impresoras láser. Las impresoras de alta calidad tienen un botón para cancelar la impresión en curso. 2 Es posible que el trabajo de impresión permanezca en cola, puesto que los trabajos tan sólo se eliminan tras haberse enviado completamente a la impresora. Utilice lpstat -o o lpstat -h servidor-de-impresión -o para comprobar la cola cuya impresión está en curso. Suprima el trabajo de impresión mediante cancel cola-númerodeimpresión o cancel -h servidor-de-impresión cola-númerodetrabajo. 3 Es posible que algunos datos se transfieran a la impresora aun cuando el trabajo de impresión se ha suprimido de la cola. Compruebe si el proceso del sistema 530 secundario CUPS continúa ejecutándose para la cola respectiva y finalícelo. Por ejemplo, para una impresora conectada al puerto paralelo, el comando fuser -k /dev/lp0 puede utilizarse para finalizar todos los procesos que aún acceden a la impresora (o, en términos más precisos, al puerto paralelo). 4 Restaure completamente la impresora apagándola durante cierto tiempo. A continuación, introduzca el papel y enciéndala. 31.7.9 Depuración del sistema de impresión CUPS Utilice el procedimiento genérico siguiente para localizar problemas en el sistema de impresión CUPS: 1 Establezca LogLevel debug en /etc/cups/cupsd.conf. 2 Detenga cupsd. 3 Elimine /var/log/cups/error_log* para evitar tener que buscar entre archivos de registro muy grandes. 4 Inicie cupsd. 5 Repita la acción en la que apareció el problema. 6 Compruebe los mensajes que aparecen en /var/log/cups/error_log* para identificar la causa del problema. 31.7.10 Información adicional En la base datos de asistencia podrán encontrarse soluciones para muchos problemas específicos. Si experimenta problemas con las impresoras, consulte los artículos de la base de datos de asistencia Installing a Printer (Instalación de impresoras) y Printer Configuration from SUSE Linux 9.2 (Configuración de impresoras en SUSE Linux 9.2), que encontrará efectuando una búsqueda mediante la palabra clave printer (impresora). Funcionamiento de la impresora 531 Sistema HotPlug 32 El sistema HotPlug controla el inicio de casi todos los dispositivos del equipo. No sólo se usa para los dispositivos que se pueden insertar y retirar durante la operación, sino para todos los que se detectan mientras el sistema se arranca. Funciona en estrecha colaboración con el sistema de archivos sysfs y el comando udev, que se describen en el Capítulo 33, Nodos de dispositivo dinámicos con udev (p. 541). Hasta que el núcleo se arranca, sólo se inician los dispositivos absolutamente necesarios, como el sistema bus, los discos de arranque y el teclado. El núcleo activa eventos HotPlug para todos los dispositivos detectados. El daemon udevd escucha estos eventos y ejecuta el comando udev para crear el nodo del dispositivo y configurarlo. Para los dispositivos que no se pueden detectar automáticamente, como las tarjetas ISA antiguas, se utiliza una configuración estática. Aparte de las escasas excepciones históricas, la mayoría de los dispositivos se inician inmediatamente en cuando se puede acceder a ellos, bien durante el arranque del sistema, bien cuando se conectan "en caliente". Durante el inicio, las interfaces se registran en el núcleo. Este registro activa nuevos eventos HotPlug que provocan la configuración automática de la interfaz respectiva. En versiones anteriores de SUSE Linux se usaba un conjunto estático de datos de configuración como base para iniciar los dispositivos. Los eventos HotPlug se gestionaban con guiones distintos, denominados agentes. En esta versión de SUSE Linux el subsistema HotPlug está integrado en udev y las reglas de udev ofrecen la funcionalidad de los antiguos agentes HotPlug. Los ajustes generales del subsistema HotPlug se encuentran en /etc/sysconfig/ hotplug. Se comentan todas las variables. La configuración general del dispositivo Sistema HotPlug 533 se realiza de acuerdo a las reglas coincidentes de /etc/udev/rules.d (véase el Capítulo 33, Nodos de dispositivo dinámicos con udev (p. 541)). Los archivos de configuración para los dispositivos específicos se encuentran en /etc/sysconfig/ hardware. La devolución de llamada del evento HotPlug que se usaba en versiones anteriores de SUSE Linux, /proc/sys/kernel/hotplug, suele estar vacía porque udevd recibe los mensajes HotPlug mediante un zócalo de enlace de red. 32.1 Dispositivos e interfaces El sistema HotPlug configura interfaces además de dispositivos. Un dispositivo suele estar conectado a un bus y ofrece la funcionalidad requerida por una interfaz. Una interfaz representa la abstracción visible para el usuario de un dispositivo completo o de un subconjunto concreto de éste. Los dispositivos suelen requerir de controladores en forma de módulos del núcleo para funcionar correctamente. Además, puede que se necesiten algunos controladores de nivel superior para poner la interfaz a disposición del usuario. Las interfaces se representan casi siempre con nodos de dispositivo creados por udev. Esta distinción entre dispositivos e interfaces es importante para comprender el concepto general. Los dispositivos introducidos en el sistema de archivos sysfs se encuentran en /sys/ devices. Las interfaces se pueden encontrar en /sys/class o en /sys/block. Todas las interfaces de sysfs deben contar con un enlace a sus dispositivos. No obstante, aún hay algunos controladores que no añaden automáticamente este enlace. Sin él, no se sabe a qué dispositivo pertenece esta interfaz y no es posible encontrar una configuración adecuada. Las direcciones de los dispositivos se definen mediante una descripción de dispositivo. Puede tratarse de la vía al dispositivo en sysfs (/sys/devices/pci0000:00/ 0000:00:1e.0/0000:02:00.0), una descripción del punto de conexión (bus-pci-0000:02:00.0), un ID individual (id-32311AE03FB82538) o algo similar. En el pasado, las direcciones de la interfaces se definían mediante sus nombres. Estos nombres representaban una numeración simple de los dispositivos existentes y podían cambiar al añadir o eliminar dispositivos. Las direcciones de las interfaces también se pueden definir mediante una descripción del dispositivo asociado. Normalmente, el contexto indica si la descripción hace referencia al propio dispositivo o a su interfaz. Entre los ejemplos típicos de dispositivos, interfaces y descripciones están los siguientes: 534 Tarjeta de red PCI Se trata de un dispositivo conectado al bus PCI (/sys/devices/pci0000: 00/0000:00:1e.0/0000:02:00.0 o bus-pci-0000:02:00.0) y que tiene una interfaz de red (eth0, id-00:0d:60:7f:0b:22 o bus-pci-0000: 02:00.0). La interfaz de red es utilizada por los servicios de red o se conecta a un dispositivo de red, como un túnel o VLAN, que a su vez cuenta con una interfaz. Controlador SCSI PCI Es un dispositivo (/sys/devices/pci0000:20/0000:20:01.1/host1/ 1:0:0:0 o bus-scsi-1:0:0:0) que dispone varias interfaces físicas en forma de bus (/sys/class/scsi_host/host1). Disco duro SCSI Es un dispositivo (/sys/devices/pci0000:20/0000:20:01.1/host1/ 1:0:0:0 o bus-scsi-1:0:0:0) con varias interfaces (/sys/block/sda*). 32.2 Eventos HotPlug Cada dispositivo y cada interfaz tienen asociados un evento HotPlug, que se procesa con el comando udev. El núcleo activa los eventos HotPlug cuando se establece o se elimina un enlace a un dispositivo o cuando un controlador registra o suprime una interfaz. Desde SUSE Linux 9.3, udevd recibe y procesa eventos HotPlug. El comando udevd puede escuchar directamente a los mensajes del enlace de red del núcleo, o bien se deberá especificar /sbin/udevsend en /proc/sys/kernel/hotplug. El comando udevd configura el dispositivo según un conjunto de reglas (consulte el Capítulo 33, Nodos de dispositivo dinámicos con udev (p. 541)). 32.3 Configuración del dispositivo HotPlug Los agentes HotPlug se han desechado en SUSE Linux 10.0. Toda la configuración de los dispositivos se debe hacer ahora mediante reglas de udev. El comando udev ofrece una regla de compatibilidad para llamar a los agentes personalizados existentes. No obstante, puede resultar conveniente convertir los agentes personalizados en reglas de udev. Sistema HotPlug 535 Un agente HotPlug es un programa ejecutable que realiza acciones adecuadas para un evento. Los agentes para los eventos de dispositivos se encuentran en /etc/hotplug .d/nombre del evento y en /etc/hotplug.d/default. Todos los programas de estos directorios que cuentan con el sufijo .hotplug se ejecutan en orden alfabético. Para facilitar la configuración de los dispositivos, suele ser suficiente con cargar un módulo del núcleo. En algunos casos hay que llamar comandos adicionales para poder llevar a cabo una configuración correcta. En SUSE Linux esto se gestiona habitualmente mediante reglas de udev. No obstante, si se necesita una configuración personalizada de dispositivo, se puede realizar mediante /sbin/hwup o /sbin/hwdown. Estos programas buscan una configuración adecuada para el dispositivo en el directorio /etc/sysconfig/hardware y la aplican. Por ejemplo, para impedir que un dispositivo específico se inicie, cree un archivo de configuración con un nombre adecuado y defina el modo de inicio como manual o desactivado. Si /sbin/hwup no encuentra ninguna configuración, busca la variable de entorno MODALIAS. Si existe, modprobe carga automáticamente el módulo correspondiente. Los eventos HotPlug del núcleo generan automáticamente la variable MODALIAS para los dispositivos que requieren que se cargue un módulo. Para obtener más información, consulte la Sección 32.4, “Carga de módulos automática” (p. 537). Hay disponible más información acerca de /sbin/hwup en el archivo /usr/share/doc/packages/ sysconfig/README y en la página Man man hwup. Antes de llamar a los agentes de interfaz, udev suele generar un nodo de dispositivo al que puede acceder el sistema. El comando udev habilita la asignación de nombres persistentes a las interfaces. Para obtener más información, consulte el Capítulo 33, Nodos de dispositivo dinámicos con udev (p. 541). Las propias interfaces se configuran entonces de acuerdo a las reglas de udev respectivas. A continuación se describen los procedimientos para algunas interfaces. 32.3.1 Activación de interfaces de red Las interfaces de red se inician con /sbin/ifup y se desactivan con /sbin/ifdown. En el archivo /usr/share/doc/packages/sysconfig/README y en la página Man ifup se incluye más información. Si un equipo dispone de varios dispositivos de red con distintos controladores, las designaciones de la interfaz pueden cambiar si se carga otro controlador más rápido durante el arranque del sistema. SUSE Linux procura conservar la numeración: los dispo536 sitivos retienen el nombre de interfaz que se les ha asignado durante la configuración. Esta asignación se realiza mediante reglas de udev. Para cambiar la asignación posteriormente, se deben cambiar las reglas de udev. La mejor solución, no obstante, consiste en utilizar designaciones de interfaz persistentes. Es posible indicar los nombres de las interfaces individuales en los archivos de configuración. Puede obtener información adicional sobre este método en el archivo /usr/ share/doc/packages/sysconfig/README. Desde SUSE Linux 9.3, udev también gestiona las interfaces de red, aunque no se trata de nodos de dispositivos. De esta forma se permite el uso de nombres de interfaz persistentes de forma más estandarizada. 32.3.2 Activación de dispositivos de almacenamiento Las interfaces para los dispositivos de almacenamiento deben estar montadas para que sea posible acceder a ellas. Esta característica se puede automatizar o preconfigurar completamente. Asimismo, SUSE Linux distingue entre dispositivos del sistema y dispositivos del usuario. Los dispositivos del sistema sólo se pueden montar automáticamente creando una entrada en /etc/fstab. Los dispositivos del usuarios se gestionan por defecto mediante el comando hal. Si se precisa una configuración distinta para los dispositivos del usuario, es posible introducir estos dispositivos en /etc/ fstab. También es posible modificar la gestión de este dispositivo en el comando hal. Para obtener más información acerca de hal, consulte /usr/share/doc/ packages/hal/hal-spec.html. Se recomienda el uso de nombres de dispositivos persistentes, dado que los nombres tradicionales pueden cambiar según la secuencia de inicio. En el Capítulo 33, Nodos de dispositivo dinámicos con udev (p. 541) se ofrecen detalles sobre los nombres de dispositivos persistentes. 32.4 Carga de módulos automática Si el comando /sbin/hwup no detecta un archivo de configuración, modprobe buscará un módulo correspondiente basado en el contenido de la variable de entorno MODALIAS. El núcleo genera esta variable de entorno para el evento HotPlug corres- Sistema HotPlug 537 pondiente. Para utilizar un controlador distinto al estándar para el núcleo, se debe crear un archivo de configuración de hardware adecuado en /etc/sysconfig/hardware. 32.5 Guión de arranque ColdPlug El comando boot.coldplug es el responsable de iniciar todos los dispositivos que no se han configurado durante el arranque. Llama al comando hwup para cada configuración de dispositivo estática designada como /etc/sysconfig/hardware/ hwcfg-static-*. Después, vuelve a reproducir todos los eventos almacenados en /lib/klibc/events para iniciar todos los dispositivos. 32.6 Análisis de errores 32.6.1 Archivos de registro A no ser que se indique lo contrario, el comando hotplug sólo envía unos pocos mensajes importantes a syslog. Para obtener más información, defina la variable HOTPLUG_DEBUG en el archivo /etc/sysconfig/hotplug como sí. Si define esta variable con el valor máx, todos los comandos de la shell se registrarán para todos los guiones HotPlug. Esto significa que /var/log/messages, el archivo donde syslog almacena todos los mensajes, se hará mucho más grande. Dado que syslog se abre durante el proceso de arranque después de hotplug y de coldplug, es posible que los primeros mensajes no se registren. Si estos mensajes son importantes, deberá indicar un archivo de registro distinto mediante la variable HOTPLUG_SYSLOG. Hay información disponible acerca de este tema en /etc/sysconfig/hotplug. 32.6.2 Problemas de arranque Si el equipo se bloquea durante el proceso de arranque, inhabilite los comandos hotplug o coldplug escribiendo NOHOTPLUG=yes o NOCOLDPLUG=yes en el indicador de arranque. Debido a la desactivación de HotPlug, el núcleo no emite ningún evento de este tipo. En el sistema en ejecución es posible activar HotPlug introduciendo el comando /etc/init.d/boot.hotplug start. Todos los eventos generados hasta ese momento se emitirán entonces y se procesarán. Para rechazar los eventos de 538 la cola, introduzca primero /bin/true en /proc/sys/kernel/hotplug y restablezca la entrada en /sbin/hotplug tras un tiempo. Debido a que ColdPlug está desactivado, las configuraciones estáticas no se aplicarán. Para aplicarlas, introduzca más adelante /etc/init.d/boot.coldplug start. Para averiguar si un módulo concreto cargado por hotplug es el responsable del problema, escriba HOTPLUG_TRACE=<N> en el indicador de arranque. Aparecerá una lista en la pantalla con los nombres de todos los módulos que se van a cargar antes de que se carguen en la práctica tras N segundos. No es posible intervenir mientras se desarrolla este proceso. 32.6.3 Grabadora de eventos Una regla de udev ejecuta el guión /sbin/hotplugeventrecorder para cada evento. Si ya existe un directorio /events, todos los eventos HotPlug se almacenarán como archivos individuales en este directorio. Por lo tanto, los eventos se pueden volver a generar para realizar pruebas. Si este directorio no existe, no se graba nada. Sistema HotPlug 539 33 Nodos de dispositivo dinámicos con udev La versión 2.6 del núcleo de Linux presenta una nueva solución de espacio del usuario para un directorio de dispositivo dinámico /dev con designaciones de dispositivo permanentes: udev. Ofrece sólo los archivos para dispositivos que en realidad están presentes. Crea o elimina archivos de nodos de dispositivo normalmente ubicados en el directorio /dev y, además, es capaz de renombrar las interfaces de red. La aplicación previa de un /dev dinámico con devfs se ha sustituido por udev. Tradicionalmente, los nodos de dispositivo se almacenaban en el directorio /dev en los sistemas Linux. Había un nodo por cada tipo de dispositivo posible, sin tener en cuenta si existían realmente en el sistema. Como resultado, este directorio contenía miles de archivos sin utilizar. Antes de que se pudiera usar un subsistema recién añadido o un dispositivo de núcleo, había que crear los nodos correspondientes con una aplicación especial. El sistema de archivos devfs trajo consigo una mejora significativa porque sólo se les proporcionaba un nodo de dispositivo en /dev a los dispositivos que realmente existían y que el núcleo conocía. udev introduce una nueva forma de crear nodos de dispositivo. El núcleo exporta su estado interno en sysfs y, cada vez que el núcleo reconoce un dispositivo, actualiza la información en sysfs y envía un evento al espacio del usuario. Con la información que sysfs ha puesto a disposición, udev hace coincidir una sintaxis de regla sencilla con los atributos de dispositivo proporcionados y crea o elimina los nodos de dispositivo correspondientes. No es necesario que el usuario cree ninguna regla de udev para nuevos dispositivos. Si hay un dispositivo conectado, se crea automáticamente el nodo de dispositivo apropiado. Sin embargo, las reglas introducen la posibilidad de definir una directiva para controlar la asignación de nombres de dispositivos. También se añade la posibilidad de sustituir Nodos de dispositivo dinámicos con udev 541 un nombre de dispositivo cifrado con un nombre que sea fácil de recordar, o bien tener nombres de dispositivo permanentes en los que dos dispositivos del mismo tipo se han conectado a la vez. Imaginemos que dispone de dos impresoras: una impresora láser de alta calidad y otra de inyección de tinta en blanco y negro, ambas conectadas mediante USB. Aparecen como /dev/usb/lpX, donde X representa un número según el orden en el que se hayan conectado. Empleando udev, cree reglas de udev personalizadas dando a una impresora el nombre /dev/lasercolor y a la otra /dev/inyeccion. Puesto que udev crea estos nodos de dispositivo según las características del dispositivo, siempre señalarán al dispositivo correcto, sin tener en cuenta el orden de conexión ni el estado. 33.1 Creación de reglas Antes de crear nodos de dispositivo debajo de /dev, udev lee todos los archivos de /etc/udev/rules.d que tengan el sufijo .rules en orden alfabético. Se usa la primera regla que coincide con un dispositivo, aunque existan otras reglas aplicables. Los comentarios se introducen mediante el signo almohadilla (#). Las reglas tienen la siguiente forma: key, [key,...] NAME [, SYMLINK] Debe especificarse al menos una clave, porque las reglas se asignan a los dispositivos según estas claves. También es fundamental especificar un nombre. El nodo del dispositivo creado en /dev llevará este nombre. El parámetro opcional symlink permite que los nodos se creen en otros lugares. Una regla para la impresora podría tener la siguiente forma: BUS=="usb", SYSFS{serial}=="12345", NAME="lp_hp", SYMLINK+="printers/hp" En este ejemplo, hay dos claves, BUS y SYSFS{serial}. udev compara el número de serie con el del dispositivo que está conectado al bus USB. Para asignar el nombre lp_hp al dispositivo en el directorio /dev, todas las claves deben ser idénticas. Además, se creará un enlace simbólico /dev/printers/hp que hace referencia al nodo del dispositivo. De igual forma, se crea automáticamente el directorio printers . Los trabajos de impresión pueden enviarse a /dev/printers/hp o a /dev/lp _hp. 542 33.2 Sustitución del espacio reservado Los parámetros NAME y SYMLINK permiten el uso de espacios reservados para sustituir valores especiales. El procedimiento se va a ilustrar con un sencillo ejemplo: BUS=="usb", SYSFS{vendor}=="abc", SYSFS{model}=="xyz", NAME="camera%n" Se sustituirá el operador %n del nombre por el número de dispositivo de la cámara como camera0 o camera1. Otro operador útil es %k que se sustituirá por el nombre del dispositivo estándar del núcleo, por ejemplo, hda1. También puede llamar a un programa externo en las reglas de udev y usar la cadena que se devuelva en los valores NAME y SYMLINK. La lista completa de posibles espacios reservados está descrita en la página Man de udev. 33.3 Concordancia de patrones en claves En las claves de las reglas de udev puede usar la concordancia de patrones de estilo shell, conocida como "comodines". Por ejemplo, el carácter * se puede usar como espacio reservado de cualquier carácter mientras que ? puede emplearse para un carácter arbitrario. KERNEL="ts*", NAME="input/%k" Esta regla asigna el nombre del núcleo estándar en el directorio estándar a un dispositivo cuya designación comienza con las letras “ts”. Puede encontrar información detallada sobre el uso de la concordancia de patrones en las reglas de udev en la página Man de udev. 33.4 Selección de claves Para identificar un dispositivo de manera única y distinguir varios dispositivos unos de otros, es esencial que haya una propiedad exclusiva para cada regla de udev en funcionamiento. A continuación se enumeran algunos ejemplos de claves estándar: Nodos de dispositivo dinámicos con udev 543 SUBSYSTEM Subsistema del que el dispositivo forma parte BUS Tipo de bus del dispositivo KERNEL Nombre del dispositivo que usa el núcleo ID Número del dispositivo en el bus (por ejemplo, PCI bus ID) SYSFS{...} Atributos del dispositivo sysfs como la etiqueta, el proveedor o el número de serie Las claves SUBSYSTEM e ID pueden ser útiles pero normalmente las que se usan son BUS, KERNEL y SYSFS{...}. La configuración de udev también ofrece claves que llaman a guiones externos y evalúan sus resultados. Podrá obtener información detallada sobre esto en la página Man de udev. El sistema de archivos sysfs muestra información sobre el hardware en el árbol de directorios. Cada archivo normalmente contiene una parte de información como el nombre, el proveedor o el número de serie del dispositivo. Cada uno de estos archivos se puede usar para que concuerde con una clave. Sin embargo, para emplear varias claves SYSFS en una regla, sólo puede usar archivos en el mismo directorio que los valores de la clave. La herramienta udevinfo puede ayudar a encontrar valores de clave útiles y únicos. Debe buscar un subdirectorio de /sys que se refiere al dispositivo en cuestión y que contiene un archivo dev. Estos directorios se encuentran debajo de /sys/block o /sys/class. Si ya existe un nodo de dispositivo para el dispositivo, udevinfo podrá encontrar el subdirectorio correcto. El comando udevinfo -q path -n /dev/sda muestra como resultado /block/sda. Esto quiere decir que el directorio deseado es /sys/block/sda. Ahora llame a udevinfo con el comando udevinfo -a -p /sys/block/sda. Los dos comandos también pueden combinarse, como en udevinfo -a -p `udevinfo -q path -n /dev/sda`. A continuación se muestra un extracto de la información de salida: BUS=="scsi" ID=="0:0:0:0" SYSFS{detach_state}=="0" SYSFS{type}=="0" 544 SYSFS{max_sectors}=="240" SYSFS{device_blocked}=="0" SYSFS{queue_depth}=="1" SYSFS{scsi_level}=="3" SYSFS{vendor}==" " SYSFS{model}=="USB 2.0M DSC" SYSFS{rev}=="1.00" SYSFS{online}=="1" En la información de salida, busque las claves adecuadas que no cambian. Recuerde que no puede usar claves desde directorios distintos en una regla. 33.5 Nombres permanentes para dispositivos de almacenamiento masivos SUSE Linux incorpora reglas predefinidas que permiten asignar siempre las mismas designaciones a los discos duros y otros dispositivos de almacenamiento, sin tener en cuenta el orden en que se han inicializado. Los atributos de dispositivos únicos, como los números de serie del hardware, los UUID (ID exclusivo universal) o las etiquetas del sistema de archivos, pueden leerse con pequeños programas de ayuda que vienen con udev. Los programas de ayuda proporcionan información de dispositivo específica para el procesado de reglas de udev. Un ejemplo sencillo es que la primera regla importa los valores recopilados desde el dispositivo SCSI en el entorno udev. La segunda regla usa los valores importados para crear un symlink permanente. KERNEL="sd*[!0-9]", IMPORT="/sbin/scsi_id -g -x -s $p -d %N" KERNEL="sd*[!0-9]", SYMLINK+="$env{ID_TYPE}/by-id/$env{ID_BUS}-$env{ID_SERIAL}" Tan pronto como un controlador de dispositivo de almacenamiento masivo se ha cargado, registra todos los discos duros disponibles en el núcleo. Cada uno de ellos activa un evento de bloque HotPlug que llama a udev. A continuación, udev lee las reglas para determinar si es necesario crear un symlink. Si se carga el controlador mediante initrd, se pierden los eventos de HotPlug. Sin embargo, toda la información se almacenará en sysfs. La utilidad udevstart encuentra todos los archivos de dispositivo debajo de /sys/block y /sys/class e inicia udev. Nodos de dispositivo dinámicos con udev 545 Hay también un guión de inicio, boot.udev, que recrea todos los nodos de dispositivo durante el proceso de arranque. Sin embargo, el guión de inicio debe activarse mediante el editor de nivel de ejecución YaST o con el comando insserv boot.udev. 546 Sistemas de archivos en Linux 34 Linux soporta una gran variedad de sistemas de archivos. Este capítulo ofrece una breve introducción a los sistemas de archivos más conocidos en Linux, prestando una especial atención a su estructura y ventajas así como a sus campos de aplicación. Asimismo se ofrece información sobre el soporte de archivos grandes o “Large File Support”. 34.1 Glosario Metadatos Estructura interna de los datos de un sistema de archivos que garantiza el orden de la estructura y la disponibilidad de los datos del disco duro. En resumidas cuentas, se trata de los “datos sobre los datos”. Todo sistema de archivos posee su propia estructura de metadatos. Aquí es donde se encuentra en parte la causa de las diferencias en cuanto a rendimiento de los sistemas de archivos. Es extremadamente importante mantener intactos los metadatos, ya que de lo contrario se podría dañar todo el sistema de archivos. Inode Los inodes contienen toda la información sobre un archivo: el nombre, el tamaño, el número de enlaces, la fecha, la hora en que fue creado, modificaciones, accesos como “señalador” (pointer) de los bloques del disco duro y dónde se encuentra grabado. Sistemas de archivos en Linux 547 Journal En relación a un sistema de archivos, un journal o diario es una estructura interna del disco con un tipo de protocolo en el que el controlador del sistema de archivos introduce los (meta)datos del sistema de archivos que van a ser modificados. El “journaling” reduce enormemente el tiempo de elaboración de un sistema Linux, ya que de este modo el controlador del sistema de archivos no debe iniciar una búsqueda de los metadatos modificados en todo el disco. En vez de eso, basta con ver las entradas del diario. 34.2 Los sistemas de archivos más importantes en Linux Contrariamente a lo que ocurría hace dos o tres años, la elección de un sistema de archivos en Linux ya no es una cuestión de segundos (¿Ext2 o ReiserFS?). A partir de la versión 2.4, el kernel ofrece una gran selección de sistemas de archivos. A continuación le mostramos un resumen de las funciones básicas de estos sistemas de archivos y sus ventajas. Tenga siempre en cuenta que no existe ningún sistema de archivos que pueda funcionar del mismo modo con todas las aplicaciones. Cada sistema de archivos tiene puntos fuertes y débiles que se deben de tener presentes. Ni el sistema de archivos más desarrollado de todo el mundo puede sustituir a la copia de seguridad. Los conceptos “integridad de los datos” o “coherencia de los datos” no se refieren en este capítulo a la coherencia de los datos que un usuario tiene guardados (los datos que una aplicación escribe en los archivos). La coherencia de estos datos debe quedar asegurada por las aplicaciones mismas. IMPORTANTE: Configuración de sistemas de archivos Mientras no se indique lo contrario explícitamente, todas las acciones de particionamiento así como de creación y edición de sistemas de archivos pueden llevarse a cabo cómodamente con YaST. 548 34.2.1 ReiserFS Aunque oficialmente se trata de una de las prestaciones principales de la versión 2.4 del kernel, ReiserFS ha estado disponible desde la versión 6.4 de SUSE Linux como parche para el kernel de SUSE 2.2.x. ReiserFS es producto de la labor de Hans Reiser y del equipo de desarrollo Namesys. ReiserFS se ha perfilado como una alternativa poderosa a Ext2. Sus grandes ventajas son: una mejor administración de la memoria del disco duro, un rendimiento optimizado del acceso al disco y una recuperación más rápida después de una caída del sistema. Las principales ventajas de ReiserFS son: Mejor administración de la memoria del disco duro En ReiserFS, todos los datos se organizan en una estructura llamada B*-balanced tree. La estructura de árbol contribuye a una mejor administración de la memoria del disco duro, ya que los archivos pequeños se pueden guardar directamente en las hojas del B*tree (árbol), en lugar de guardarlos en otro lugar y luego tener que administrar el puntero (pointer) para que apunte al sitio indicado. Además, la memoria no se asignará en unidades de 1 a 4 Kb, sino en la unidad exactamente necesaria. Otra ventaja es el proceso dinámico de inodes. Esto dota al sistema de archivos de una gran flexibilidad frente a los sistemas convencionales, como por ejemplo Ext2, en el que se debe indicar la densidad del inode en el momento de crear el sistema de archivos. Mejor rendimiento del acceso al disco duro En los archivos pequeños, tanto los datos del archivo como la información (inode) de “stat_data” se guardan uno al lado del otro. Basta con un único acceso al disco duro para suministrar toda la información necesaria. Rápida recuperación tras una caída del sistema Desde el contenido de un diario al seguimiento de las pequeñas modificaciones de metadatos, la comprobación del sistema de archivos se reduce a unos pocos segundos incluso en sistemas de archivos grandes. Fiabilidad gracias al registro de datos (data journaling) ReiserFS también soporta el registro de datos y los modos “ordered” de datos (ambos conceptos se explican con más detalle en la Sección 34.2.3, “Ext3” (p. 550)). El modo predeterminado es data=ordered, lo que garantiza la integridad tanto de los datos como de los metadatos. No obstante, el registro se utiliza sólo para los metadatos. Sistemas de archivos en Linux 549 34.2.2 Ext2 El origen de Ext2 se remonta a los primeros días de Linux. Su antecesor, el Extended File System fue implementado en abril de 1992 e integrado en Linux 0.96c. Este sufrió una serie de modificaciones y durante años se le conoció como Ext2 a la vez que se le consideró el sistema de archivos más popular de Linux. Con la introducción del sistema Journaling File y de su tiempo de elaboración tan sorprendentemente corto, Ext2 perdió importancia. Puede que le sirva de ayuda un pequeño resumen de los puntos fuertes de Ext2 para que comprenda su popularidad entre los usuarios de Linux, que en cierta medida aún hoy lo prefieren como sistema de archivos. Estabilidad Con el correr del tiempo, Ext2 ha sufrido muchas mejoras que le han hecho ganarse la reputación de ser “sólido como una roca”. En caso de una caída del sistema en la que el sistema de archivos no puede desmontarse adecuadamente, e2fsck inicia un análisis de los datos del sistema de archivos. Los metadatos se reconstruyen y los archivos o bloques de datos que quedan sueltos se guardan en un directorio denominado lost+found. En contraposición a (la mayoría) de los sistemas de archivos transaccionales o journaling, e2fsck analiza todo el sistema de archivos y no sólo los bits de metadatos modificados. Esto lleva más tiempo que la comprobación de los datos de protocolo de un sistema journaling. Dependiendo del tamaño del sistema de archivos, puede llegar a durar más de media hora. Por esta razón, Ext2 no se escoge para ningún servidor que deba tener un alto rendimiento. Debido a que Ext2 no debe hacerse cargo de ningún diario y a la vez necesita poca memoria, a menudo es más rápido que otros sistemas de archivos. Fácil actualización Tomando como base la fortaleza de Ext2, Ext3 podría llegar a convertirse en el sistema de archivos de la próxima generación. Su fiabilidad y estabilidad se complementarían perfectamente con las ventajas de los sistemas de archivos journaling. 34.2.3 Ext3 Ext3 fue concebido por Stephen Tweedie. A diferencia del resto de los sistemas de archivos de “última generación”, no está basado en un nuevo diseño, sino en Ext2. Ambos sistemas de archivos están estrechamente vinculados. Un sistema de archivos Ext3 se 550 puede montar fácilmente sobre un sistema Ext2. La diferencia fundamental entre ambos radica en que Ext3 también soporta journaling. Estas son brevemente las tres ventajas de Ext3: Actualización sencilla y muy fiable de Ext2 Ya que Ext3 se basa en el código de Ext2, a la vez que comparten formato tanto para el disco como para los metadatos, las actualizaciones no son complicadas. Incluso se pueden llevar a cabo mientras el sistema de archivos Ext2 está montado. El proceso de cambio a otro sistema de archivos journaling, como por ejemplo ReiserFS, JFS, o XFS, puede llegar a ser muy trabajoso debido a que se deben realizar copias de seguridad de todo el sistema de archivos y después instalarlo desde cero. Sin embargo, el cambio a Ext3 puede ser una cuestión de minutos. Además es muy seguro, ya que resulta difícil que la reelaboración de todo un sistema de archivos desde cero no tenga errores. Si se tiene en cuenta la cantidad de sistemas Ext2 disponibles que esperan una actualización a un sistema de archivos journaling, se puede imaginar fácilmente el significado de Ext3 para muchos administradores de sistemas. El pasar de Ext3 a Ext2 es tan fácil como la actualización en sentido contrario. Tan sólo se tiene que desmontar el sistema Ext3 y montarlo como Ext2. Fiabilidad y rendimiento Otros sistemas de archivos journaling siguen el principio journaling de “sólo metadatos” (metadata-only). Esto significa que los metadatos permanecen en un estado coherente, lo que sin embargo no puede garantizarse automáticamente para los datos del sistema de archivos. Ext3 tiene capacidad para cuidar tanto de los metadatos como de los datos mismos. Se puede configurar individualmente el detalle con el que Ext3 debe ocuparse de los datos y metadatos. El grado más alto de seguridad (es decir, integridad de los datos) se consigue al arrancar Ext3 en modo data=journal; esto puede hacer que el sistema sea más lento, ya que se guardarán en el diario tanto los datos como los metadatos. Una posibilidad relativamente nueva consiste en la utilización del modo data=ordered, que garantiza la integridad tanto de los datos como de los metadatos a pesar de que sólo realiza journaling para los metadatos. El controlador del sistema de archivos reúne todos los bloques de datos relacionados con la actualización de los metadatos. Estos bloques de datos se escriben en el disco antes de que los metadatos sean actualizados. Con esto se consigue la coherencia de datos y metadatos sin pérdida de rendimiento. Un tercer tipo de modo es data=writeback. De esta forma se puede escribir datos en el sistema de archivos principal después de que los metadatos hayan pasado al diario. Para muchos, esta opción es la mejor configuración en cuanto a rendimiento. Sin embargo, con esta opción puede ocurrir que aparezcan viejos datos en los archivos después de haberse producido una caída del sistema mientras se garantiza la integriSistemas de archivos en Linux 551 dad del sistema de archivos. Mientras no se indique otra opción, Ext3 arrancará con la opción predeterminada data=ordered. 34.2.4 Conversión de un sistema de archivos Ext2 a Ext3 Crear el diario (journal): Ejecute el comando tune2fs -j como usuario root. tune2fs se encarga de crear el diario Ext3 con parámetros estándar. Si por el contrario prefiere definir usted mismo con qué tamaño y en qué dispositivo debe crearse el diario, ejecute tune2fs -J con los parámetros size= y device=. Puede obtener información adicional sobre tune2fs en las páginas del manual. Determinar el tipo de sistema de archivos en /etc/fstab Para que el sistema de archivos Ext3 sea detectado como tal, abra el archivo /etc/ fstab y cambie el tipo de sistema de archivos de la partición correspondiente de ext2 a ext3. La modificación se aplicará tras reiniciar el sistema. Uso de Ext3 para el sistema de archivos raíz Para arrancar el sistema de archivos raíz (root) en ext3, hace falta integrar adicionalmente los módulos ext3 y jbd en el RAM disk inicial initrd. A continuación introduzca estos dos módulos en el archivo /etc/sysconfig/kernel bajo INITRD_MODULES. Posteriormente ejecute el comando mk_initrd. 34.2.5 Reiser4 Inmediatamente después de que el kernel 2.6 viera la luz, un nuevo miembro se sumó a la familia de sistemas de archivos transaccionales: Reiser4. Reiser4 se diferencia sustancialmente de su predecesor ReiserFS (versión 3.6). Introduce el concepto de plugins para configurar las funciones del sistema de archivos y un concepto de seguridad más elaborado. Concepto de seguridad muy elaborado Durante el diseño de Reiser4, los desarrolladores pusieron especial énfasis en la implementación de funciones relacionadas con la seguridad. Como consecuencia, Reiser4 incorpora un conjunto de plugins de seguridad dedicados, el más importante de los cuales introduce el concepto de elementos de archivo o “items”. Actualmente, 552 el control de acceso a los archivos se define en función del archivo. Si existe un archivo muy grande que contiene información relevante para varios usuarios, grupos o aplicaciones, los permisos de acceso deben ser poco precisos para incluir a todos los interesados. En Reiser4 es posible dividir este tipo de archivos en porciones más pequeñas (“items”). Los permisos de acceso pueden definirse para cada elemento y usuario, permitiendo una gestión de seguridad de archivos mucho más precisa. El archivo /etc/passwd constituye un ejemplo perfecto. Actualmente, root es el único que puede leer y editar este archivo mientras que el resto de usuarios sólo tiene permiso de lectura. El concepto de “items” de Reiser4 hace que sea posible dividir este archivo en un conjunto de elementos (un “item” por cada usuario) y permitir a usuarios o aplicaciones modificar sus propios datos sin acceder a los datos de otros usuarios. Este concepto favorece tanto la seguridad como la flexibilidad. Extensiones a través de plugins Muchas de las funciones inherentes a un sistema de archivos o externas pero usadas normalmente por sistemas de archivos se han implentado en Reiser4 en forma de plugins. Si desea enriquecer el sistema de archivos con nuevas funciones, estos plugins pueden añadirse fácilmente al sistema base sin necesidad de volver a compilar el kernel o reformatear el disco duro. Estructura mejorada del sistema de archivos gracias a la asignación retardada Al igual que XFS, Reiser4 soporta la asignación retardada (ver Sección 34.2.7, “XFS” (p. 554)). El uso de la asignación retardada incluso para metadatos puede resultar en una estructura global mejorada. 34.2.6 JFS JFS, “Journaling File System”, fue desarrollado por IBM para AIX. La primera versión beta de JFS portada a Linux llegó al entorno Linux en el verano del año 2000. La versión 1.0.0 salió a la luz en el año 2001. JFS está diseñado para cumplir las exigencias del entorno de un servidor de alto rendimiento. Al ser un sistema de archivos de 64 bits, JFS soporta archivos grandes y particiones LFS (Large File Support), lo cual es una ventaja más para los entornos de servidor. Un vistazo más detallado a JFS muestra por qué este sistema de archivos es una buena elección para su servidor Linux: Sistemas de archivos en Linux 553 Journaling eficaz JFS sigue el principio de “metadata only”. En vez de una comprobación completa, sólo se tienen en cuenta las modificaciones en los metadatos provocadas por las actividades del sistema. Esto ahorra una gran cantidad de tiempo en la fase de recuperación del sistema tras una caída. Las actividades simultáneas que requieren más entradas de protocolo se pueden unir en un grupo en el que la pérdida de rendimiento del sistema de archivos se reduce en gran medida gracias a múltiples procesos de escritura. Eficiente administración de directorios JFS abarca diversas estructuras de directorios. En pequeños directorios se permite el almacenamiento directo del contenido del directorio en su inode. En directorios más grandes se utilizan B+trees, que facilitan considerablemente la administración del directorio. Mejor utilización de la memoria mediante la asignación dinámica de inodes En Ext2 es necesario indicar el grosor del inode (la memoria ocupada por la información de administración) por adelantado. Con ello se limita la cantidad máxima de archivos o directorios de su sistema de archivos. Esto no es necesario en JFS, puesto que asigna la memoria inode de forma dinámica y la pone a disposición del sistema cuando no se está utilizando. 34.2.7 XFS Pensado originariamente como sistema de archivos para sistemas operativos IRIX, SGI comenzó el desarrollo de XFS ya a principios de la década de los noventa. Con XFS consigue un sistema de archivos journaling de 64 bits de gran rendimiento adaptado a las necesidades extremas de hoy en día. XFS también está indicado para el trabajo con archivos grandes y ofrece un buen rendimiento en hardware de última generación. Sin embargo XFS, al igual que ReiserFS, tiene la desventaja de conceder mucha importancia a la integridad de los metadatos y muy poca a la de los datos: Un breve resumen de las funciones clave de XFS aclarará por qué puede llegar a convertirse en un fuerte competidor de otros sistemas de archivos journaling en el tratamiento de datos. Manejo de “grupos de asignación” (allocation groups) En el momento de la creación de un sistema de archivos XFS, el dispositivo de bloque (block-device) que sirve de base al sistema de archivos se divide en ocho o 554 más campos lineales de igual tamaño denominados grupos de asignación. Cada grupo de asignación administra inodes así como memoria libre. Se puede considerar a estos grupos prácticamente como sistemas de archivos dentro de sistemas de archivos. Puesto que estos grupos de asignación son bastante independientes, el kernel puede dirigirse a más de uno simultáneamente. Este concepto de grupos de asignación independientes satisface los requisitos de los sistemas con varios procesadores. Alto rendimiento con eficiente administración de la memoria del disco B+trees administran la memoria libre y los inodes dentro de los grupos de asignación. El manejo de B+trees contribuye al gran rendimiento de XFS. Una característica de XFS es la llamada asignación retardada. XFS realiza la asignación de la memoria mediante la división en dos de los procesos. Una transacción “en suspenso” queda guardada en RAM y el espacio en la memoria queda reservado. XFS aún no decide dónde exactamente (en qué bloque del sistema de archivos) se almacenan los datos. Esta decisión se retrasará hasta el último momento. Con esto, algunos datos temporales no quedan nunca almacenados en el disco, ya que cuando llegue el momento de decidir el lugar de almacenamiento ya estarán obsoletos. Así, XFS aumenta el rendimiento y disminuye la fragmentación del sistema de archivos. Debido a que una asignación retardada tiene como consecuencia menos procesos de escritura que en otros sistemas de archivos, es probable que la pérdida de datos tras una caída del sistema durante el proceso de escritura sea mayor. Preasignación para evitar la fragmentación del sistema de archivos Antes de la escritura de los datos en el sistema de archivos, XFS reserva el espacio de memoria necesario para un archivo que vaya a ser asignado. De esta forma se reduce enormemente la fragmentación del sistema de archivos y el rendimiento aumenta, ya que el contenido de los archivos no queda dividido por todo el sistema de archivos. 34.3 Otros sistemas de archivos soportados En la Tabla 34.1, “Sistemas de archivos en Linux” (p. 556) se incluyen otros sistemas de archivos soportados por Linux. Principalmente se soportan para garantizar la compatibilidad y el intercambio de datos entre distintos medios o sistemas operativos. Sistemas de archivos en Linux 555 Tabla 34.1 556 Sistemas de archivos en Linux cramfs Compressed ROM file system: un sistema de archivos comprimido con permiso de lectura para ROMs. hpfs High Performance File System: el sistema de archivos estándar de IBM OS/2 sólo se soporta en modo de lectura. iso9660 sistema de archivos estándar en CD-ROMs. minix este sistema de archivos tiene su origen en la universidad y fue el primero empleado en Linux. Hoy en día se utiliza como sistema de archivos para discos flexibles. msdos fat, el sistema de archivos empleado originariamente por DOS, es utilizado en la actualidad por varios sistemas operativos. ncpfs sistema de archivos que permite montar volúmenes Novell a través de una red. nfs Network File System: posibilita el almacenamiento de datos en el ordenador que se elija dentro de una red y permite garantizar el acceso a través de la red. smbfs Server Message Block: utilizado por productos como por ejemplo Windows para el acceso de archivos a través de una red. sysv utilizado en SCO UNIX, Xenix y Coherent (sistemas UNIX comerciales para PCs). ufs utilizado en BSD, SunOS y NeXTstep. Sólo se soporta en modo de lectura. umsdos UNIX on MSDOS: sistema de archivos basado en fat que emula las características de Unix (derechos, enlaces, nombres de archivo largos) mediante archivos especiales. vfat Virtual FAT: extensión del sistema de archivos fat (soporta nombres de archivo largos). Windows NT file system, sólo permiso de lectura. ntfs 34.4 Soporte de archivos grandes en Linux Al principio, Linux sólo soportaba archivos con un tamaño máximo de 2 Gb. Debido a la creciente utilización de Linux por ejemplo en la administración de bases de datos o en la edición de datos de audio y vídeo, se ha hecho necesario el modificar el kernel y la librería GNU C (glibc) para que soporten archivos mayores de 2 Gb y se han introducido nuevas interfaces que pueden ser utilizadas por las aplicaciones. Hoy en día (casi) todos los sistemas de archivos importantes soportan LFS (Large File System – sistema de archivos grandes), lo que permite la edición de datos de gama alta. La Tabla 34.2, “Tamaño máximo de sistemas de archivos (formato en disco)” (p. 557) incluye un resumen de las limitaciones actuales de los archivos y sistemas de archivos bajo Linux. Tabla 34.2 Tamaño máximo de sistemas de archivos (formato en disco) Sist. de archivos Tamaño máx. archivo [Byte] Tamaño máx.sist.arch.[Byte] Ext2 o Ext3 (1 kB tamaño bloque) 234 (16 GB) 241 (2 TB) Ext2 o Ext3 (2 kB tamaño bloque) 238 (256 GB) 243 (8 TB) Ext2 o Ext3 (4 kB tamaño bloque) 241 (2 TB) 244 (16 TB) Ext2 o Ext3 (8 kB tamaño bloque) 246 (64 TB) (sistema con páginas de 8 kB como Alpha) 245 (32 TB) ReiserFS v3 246 (64 GB) 245 (32 TB) XFS 263 (8 EB) 263 (8 EB) JFS (512 Bytes tamaño bloque) 263 (8 EB) 249 (512 TB) Sistemas de archivos en Linux 557 Sist. de archivos Tamaño máx. archivo [Byte] Tamaño máx.sist.arch.[Byte] JFS (4 kB tamaño bloque) 263 (8 EB) 252 (4 PB) NFSv2 (lado del cliente) 231 (2 GB) 263 (8 EB) NFSv3 (lado del cliente) 263 (8 EB) 263 (8 EB) IMPORTANTE: Límites del kernel de Linux La Tabla 34.2, “Tamaño máximo de sistemas de archivos (formato en disco)” (p. 557) describe los límites del formato en disco. El tamaño máximo de un archivo y un sistema de archivos para que puedan ser procesados correctamente por el kernel no ha de superar los siguientes límites (en el kernel 2.6): Tamaño de los archivos 41 en los sistemas de 32 bits, los archivos no pueden ser mayores de 2 TB (2 bytes). Tamaño de los sistemas de archivos 73 los sistemas de archivos pueden tener un tamaño de hasta 2 bytes, si bien todavía no existe ningún hardware que llegue hasta este límite. 34.5 Información adicional Cada proyecto de sistema de archivos descrito arriba cuenta con su propia página web en la que puede encontrar información adicional y listas de correo, así como FAQs. • http://e2fsprogs.sourceforge.net/ • http://www.zipworld.com.au/~akpm/linux/ext3/ • http://www.namesys.com/ • http://oss.software.ibm.com/developerworks/opensource/ jfs/ 558 • http://oss.sgi.com/projects/xfs/ Un completo tutorial sobre sistemas de archivos en Linux se encuentra en IBM developerWorks: http://www-106.ibm.com/developerworks/library/l-fs .html Comparación entre los distintos sistemas de archivos journaling en Linux en un artículo de Juan I. Santos Florido en Linuxgazette: http://www.linuxgazette .com/issue55/florido.html. Un detallado trabajo sobre LFS en Linux está disponible en la página de Andreas Jaeger: http://www.suse.de/~aj/linux _lfs.html Sistemas de archivos en Linux 559 Sistema X Window 35 El sistema X Window (X11) es el estándar de facto para las interfaces gráficas de usuario en UNIX. X está basado en red, lo que permite que las aplicaciones iniciadas en un host se muestren en otro host conectado mediante cualquier tipo de red (LAN o Internet). En este capítulo se describe la configuración y la optimización del entorno del sistema X Window, se ofrece información general sobre el uso de fuentes en SUSE Linux y se explica la configuración de OpenGL y 3D. 35.1 Configuración de X11 con SaX2 La interfaz gráfica de usuario, o el servidor, X, gestiona la comunicación entre el hardware y el software. Los escritorios, como KDE y GNOME, y la gran variedad de gestores de ventanas utilizan el servidor X para interactuar con el usuario. La interfaz gráfica de usuario se configura durante la instalación. Para cambiar la configuración más adelante, utilice el correspondiente módulo del Centro de control de YaST o ejecute SaX2 manualmente desde la línea de comandos mediante el comando sax2. La ventana principal de SaX2 aglutina todos módulos individuales del Centro de control de YaST. Sistema X Window 561 Figura 35.1 Ventana principal de SaX2 En la barra de navegación situada a la izquierda, existen seis elementos, y cada uno de ellos muestra el correspondiente cuadro de diálogo de configuración del Centro de control de YaST. La secciones anteriormente mencionadas se encuentran en el Capítulo Configuración del sistema con YaST (↑Inicio). Monitor Para obtener una descripción de la configuración de la tarjeta gráfica y del monitor, consulte Sección “Propiedades de la tarjeta y el monitor” (Capítulo 3, Configuración del sistema con YaST, ↑Inicio). Ratón Para obtener una descripción de la configuración del ratón en el entorno gráfico, consulte Sección “Propiedades del ratón” (Capítulo 3, Configuración del sistema con YaST, ↑Inicio). Teclado Para obtener una descripción de la configuración del teclado en el entorno gráfico, consulte Sección “Propiedades del teclado” (Capítulo 3, Configuración del sistema con YaST, ↑Inicio). 562 Tableta Para obtener una descripción de la configuración de la tableta gráfica, consulte Sección “Propiedades de la tableta” (Capítulo 3, Configuración del sistema con YaST, ↑Inicio). Pantalla táctil Para obtener una descripción de la configuración de la pantalla táctil, consulte Sección “Propiedades de la pantalla táctil” (Capítulo 3, Configuración del sistema con YaST, ↑Inicio). VNC Para obtener una descripción de la configuración de VNC, consulte Sección “Propiedades de acceso remoto” (Capítulo 3, Configuración del sistema con YaST, ↑Inicio). 35.2 Optimización de la configuración de X X.Org es una implementación de código abierto del sistema X Window. Lo desarrolla la X.Org Foundation, que es responsable también de desarrollar nuevas tecnologías y estándares para el sistema X Window. Para sacar el máximo partido al hardware disponible (el ratón, la tarjeta gráfica, el monitor y el teclado, entre otros), se puede optimizar manualmente la configuración. A continuación, se explican algunos aspectos de dicha optimización. Para obtener información detallada sobre la configuración del sistema X Window, consulte los diferentes archivos del directorio /usr/share/doc/packages/Xorg, así como man xorg.conf. AVISO Tenga mucha precaución a la hora de configurar el sistema X Window. No inicie jamás el sistema X Window hasta haber completado la configuración. Un sistema mal configurado puede provocar daños irreparables en el hardware (en particular, en los monitores de frecuencia fija). Ni los autores de este libro ni SUSE Linux pueden considerarse responsables de tales daños. La información que se ofrece ha sido cuidadosamente contrastada, pero no se garantiza que todos Sistema X Window 563 los métodos aquí expuestos sean correctos ni que no vayan a dañar su hardware. Los programas SaX2 y xorgconfig crean el archivo xorg.conf, por defecto, en /etc/X11. Éste es el archivo principal de configuración del sistema X Window. Aquí se encuentran los ajustes referentes a la tarjeta gráfica, al ratón y al monitor. A continuación, se describe la estructura del archivo de configuración /etc/X11/ xorg.conf. Este archivo se compone de diferentes secciones, cada una de las cuales hace referencia a un aspecto determinado de la configuración. Cada sección comienza con la palabra clave Section <nombre> y termina con EndSection. Las secciones tienen la siguiente forma: Section designation entry 1 entry 2 entry n EndSection Los tipos de sección disponibles aparecen en la Tabla 35.1, “Secciones de /etc/X11/xorg.conf” (p. 564). Tabla 35.1 564 Secciones de /etc/X11/xorg.conf Tipo Significado Files Esta sección describe las vías que se utilizan para las fuentes y la tabla de colores RGB. ServerFlags Aquí se establecen las opciones generales. InputDevice En esta sección se configuran los dispositivos de entrada, tales como teclados y dispositivos de entrada especiales (touchpads, joysticks, etc.). Los parámetros más importantes de esta sección son Driver y las opciones que definen Protocol y Device. Monitor Describe el monitor que se utiliza. Los elementos de esta sección son un nombre, al que más adelante hace referencia la definición Screen, bandwidth y los límites de frecuencia de sincronización (HorizSync y VertRefresh). Los ajustes se establecen en MHz, kHz y Hz. Normalmente, el servidor rechaza las modelines que no se correspondan con las características del Tipo Significado monitor. Esto evita que se envíen por error al monitor frecuencias demasiado altas. Modes Aquí se almacenan los parámetros de modeline para resoluciones de pantalla determinadas. SaX2 calcula estos parámetros basándose en los valores introducidos por el usuario y, en general, no es necesario cambiarlos. Intervenga en este punto si, por ejemplo, desea conectar un monitor de frecuencia fija. Encontrará más detalles sobre el significado de cada valor numérico en el archivo de ayuda /usr/share/doc/howto/en/ XFree86-Video-Timings-HOWTO.gz. Device Esta sección define una tarjeta gráfica determinada. Se hace referencia a la tarjeta mediante su nombre descriptivo. Screen Esta sección reúne un Monitor y un Device para conformar el conjunto de ajustes necesarios para X.Org. En la subsección Display, especifique el tamaño de la pantalla virtual (Virtual), ViewPort, y Modes que se utilizarán con esta pantalla. ServerLayout Esta sección define la disposición en uno o varios monitores. En ella se relaciona los dispositivos de entrada InputDevice con los dispositivos de visualización Screen. Monitor, Device y Screen se explican con más detalle a continuación. Hay más información sobre las demás secciones en las páginas Man de X.Org y xorg.conf. Es posible encontrar varias secciones Monitor y Device diferentes en xorg.conf. Incluso es posible que aparezca más de una sección Screen. La sección ServerLayout que figura a continuación es la que determina cuál se utilizará. 35.2.1 Sección Screen En primer lugar, observaremos la sección screen, en la que se combina una sección Monitor con una sección Device y se determina la resolución y la profundidad de color Sistema X Window 565 que se utilizarán. El aspecto de una sección Screen puede ser similar al del Ejemplo 35.1, “Sección Screen del archivo /etc/X11/xorg.conf” (p. 566). Ejemplo 35.1 Sección Screen del archivo /etc/X11/xorg.conf Section "Screen" DefaultDepth 16 SubSection "Display" Depth 16 Modes "1152x864" "1024x768" "800x600" Virtual 1152x864 EndSubSection SubSection "Display" Depth 24 Modes "1280x1024" EndSubSection SubSection "Display" Depth 32 Modes "640x480" EndSubSection SubSection "Display" Depth 8 Modes "1280x1024" EndSubSection Device "Device[0]" Identifier "Screen[0]" Monitor "Monitor[0]" EndSection La línea Identifier (en este ejemplo, Screen[0]) proporciona un nombre concreto mediante el cual se puede hacer referencia a ella en la sección ServerLayout que sigue. Las líneas Device y Monitor especifican la tarjeta gráfica y el monitor que pertenecen a esta definición. Son simples enlaces a las secciones Device y Monitor con el correspondiente nombre o identifier. Dichas secciones se describen en detalle a continuación. Utilice el ajuste DefaultDepth para seleccionar la profundidad de color por defecto que debe utilizar el servidor si no se inicia con una específica. Existe una subsección Display para cada profundidad de color. La palabra clave Depth asigna la profundidad de color válida para esta subsección. Los valores posibles de Depth son 8, 15, 16 y 24. Algunos módulos del servidor X no admiten todos los valores. Después de la profundidad de color, se define una lista de resoluciones en la sección Modes. El servidor X lee la lista de izquierda a derecha. Para cada resolución, el servidor X busca un Modeline en la sección Modes. La Modeline depende de la capacidad 566 del monitor y de la tarjeta gráfica. Los ajustes de Monitor determinan la Modeline que se obtiene como resultado. La primera resolución que se encuentra es la de Default mode. Se puede cambiar a la siguiente resolución hacia la derecha de la lista mediante Ctrl + Alt + + (del teclado numérico). Para cambiar a la siguiente resolución hacia la izquierda de la lista, use Ctrl + Alt + – (del teclado numérico). De esta manera, es posible cambiar la resolución mientras se ejecuta X. La última línea de la subsección Display con Depth 16 hace referencia al tamaño de la pantalla virtual. El tamaño máximo de la pantalla virtual depende de la cantidad de memoria instalada en la tarjeta gráfica y de la profundidad de color deseada, no de la resolución máxima del monitor. Puesto que las tarjetas gráficas modernas disponen de una gran cantidad de memoria de vídeo, se pueden crear escritorios virtuales muy grandes. Sin embargo, si se ocupa mucha memoria de vídeo con un escritorio virtual, es posible que ya no se puedan aprovechar las funciones 3D. Si, por ejemplo, la tarjeta dispone de 16 MB de RAM para vídeo, la pantalla virtual puede llegar a los 4096 x 4906 píxeles de tamaño con una profundidad de color de 8 bits. Sin embargo, en especial en el caso de tarjetas con aceleración, no se recomienda utilizar toda la memoria para la pantalla virtual, ya que la memoria de la tarjeta se utiliza para diferentes cachés de fuentes y gráficos. 35.2.2 Sección Device Cada sección device describe una tarjeta gráfica determinada. Es posible incluir en xorg.conf tantas entradas device como se desee, siempre que se distingan sus nombres mediante la palabra clave Identifier. En general, si hay más de una tarjeta gráfica instalada, las secciones simplemente se numeran de forma correlativa. La primera se llama Device[0], la segunda Device[1] y así sucesivamente. El siguiente archivo muestra un extracto de la sección Device de un equipo con una tarjeta gráfica PCI Matrox Millennium: Section "Device" BoardName "MGA2064W" BusID "0:19:0" Driver "mga" Identifier "Device[0]" VendorName "Matrox" Option "sw_cursor" EndSection Sistema X Window 567 Si se utiliza SaX2 para la configuración, la sección device debería tener un aspecto similar al del ejemplo anterior. Tanto Driver como BusID dependen del hardware instalado en el equipo; SaX2 los detecta automáticamente. BusID define la ranura PCI o AGP en la que está instalada la tarjeta. Esto corresponde al ID que muestra el comando lspci. El servidor X requiere que los valores estén en forma decimal, pero lspci los muestra en hexadecimal. Mediante el parámetro Driver, especifique el parámetro que se utilizará para la tarjeta gráfica. Si la tarjeta es una Matrox Millennium, el módulo del controlador se llama mga. El servidor X buscará en la vía ModulePath definida en la sección Files del subdirectorio drivers. En una instalación estándar, se trata del directorio /usr/ X11R6/lib/modules/drivers. Al nombre indicado se le añade _drv.o, de manera que, en el caso del controlador mga, se cargará el archivo mga_drv.o. El comportamiento del servidor X y del controlador se puede modificar mediante opciones adicionales. Un ejemplo de ello es la opción sw_cursor, que se define en la sección device. Esta opción desactiva el cursor del ratón creado por hardware y lo dibuja mediante software. Hay varias opciones disponibles en función del módulo del controlador, que se pueden encontrar en los archivos de descripción de los módulos del controlador, en el directorio /usr/X11R6/lib/X11/doc. Las opciones válidas en general también se encuentran en las páginas Man (man xorg.conf y man X.Org). 35.2.3 Secciones Monitor y Modes Al igual que las secciones Device, cada sección Monitor y Modes describe un monitor. El archivo de configuración /etc/X11/xorg.conf puede contener tantas secciones Monitor como se desee. La sección ServerLayout especifica qué sección Monitor es la relevante. Las definiciones de Monitor sólo deben ser ajustadas por usuarios experimentados. Las modelines constituyen una parte importante de las secciones Monitor. Las modelines establecen la sincronización horizontal y vertical de la resolución respectiva. Las propiedades del monitor, en especial las frecuencias permitidas, se almacenan en la sección Monitor. 568 AVISO No cambie ningún parámetro de las modelines a menos que tenga un conocimiento profundo del funcionamiento del monitor y de la tarjeta gráfica, ya que podrían producirse daños graves en el monitor. Para el desarrollo de descripciones de monitor propias, es necesario conocer la documentación de /usr/X11/lib/X11/doc. Cabe destacar el apartado dedicado a los modos de vídeo. En él, se describe en detalle el funcionamiento del hardware y la manera de crear modelines. Hoy en día, la especificación manual de modelines no suele ser necesaria. Si se utiliza un monitor multifrecuencia actual, generalmente el servidor X puede obtener las frecuencias permitidas y las resoluciones óptimas directamente del monitor por medio de DDC, tal y como se describe en la sección de configuración de SaX2. Si, por cualquier razón, no fuera posible obtenerlas, utilice uno de los modos VESA que se incluyen en el servidor X. Esto funcionará con prácticamente todas las combinaciones de tarjetas gráficas y monitores. 35.3 Instalación y configuración de fuentes La instalación de fuentes adicionales en SUSE Linux es un proceso sencillo. Sólo tiene que copiar las fuentes en cualquier directorio ubicado en la vía de fuente X11 (consulte la Sección 35.3.2, “Fuentes centrales X11” (p. 573)). Para habilitar la utilización de fuentes, el directorio de instalación debe ser un subdirectorio de los directorios configurados en /etc/fonts/fonts.conf (consulte la Sección 35.3.1, “Xft” (p. 570)). Los archivos de fuentes se pueden copiar de forma manual (como root) en un directorio adecuado, por ejemplo, /usr/X11R6/lib/X11/fonts/truetype. Si no, la tarea se puede realizar mediante el instalador de fuentes KDE en el Centro de control de KDE. El resultado es el mismo. En lugar de copiar las fuentes actuales, también puede crear enlaces simbólicos. Por ejemplo, puede realizar esto si dispone de fuentes con licencia en una partición Windows montada y desea utilizarlas. A continuación, ejecute SuSEconfig --module fonts. Sistema X Window 569 SuSEconfig --module fonts ejecuta el guión /usr/sbin/fonts-config, que gestiona la configuración de las fuentes. Para ver lo que realiza este guión, consulte la página del manual del guión (man fonts-config). El procedimiento es el mismo para fuentes de mapa de bits y fuentes TrueType, OpenType y Type1 (PostScript). Todos estos tipos de fuentes se pueden instalar en cualquier directorio. Únicamente las fuentes con clave CID requieren que se lleve a cabo un proceso ligeramente diferente. Para ello, consulte la Sección 35.3.3, “Fuentes con clave CID” (p. 575). X.Org contiene dos sistemas de fuentes completamente diferentes: el sistema central de fuentes X11 antiguo y el recién diseñado sistema Xft y fontconfig. Las secciones siguientes describen brevemente ambos sistemas. 35.3.1 Xft Para empezar, los programadores de Xft deben asegurarse de que las fuentes ampliables con suavización de contornos sean compatibles. Si se utiliza Xft, las fuentes se procesan por la aplicación que las utilice, no por el servidor X, como sucedía en el sistema central de fuentes X11. De este modo, la aplicación correspondiente tiene acceso a los archivos de fuentes actuales y control completo sobre el procesamiento de los glifos. Esto constituye las bases para la correcta visualización de texto en varios idiomas. El acceso directo a los archivos de fuente resulta útil en fuentes insertadas para impresión para asegurarse de que el resultado de la impresión sea igual que el que aparece en pantalla. En SUSE Linux, los dos entornos de escritorio KDE y GNOME, Mozilla y otras aplicaciones utilizan por defecto Xft. Ya existen más aplicaciones que utilizan Xft en lugar del antiguo sistema central de fuentes X11. Xft utiliza la biblioteca fontconfig para buscar fuentes e influir en su procesamiento. Las propiedades de fontconfig están controladas por el archivo de configuración global /etc/fonts/fonts.conf y por el archivo de configuración específico del usuario ~/.fonts.conf. Cada uno de estos archivos de configuración fontconfig debe comenzar por <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> y finalizar por 570 </fontconfig> Si desea agregar directorios para buscar fuentes, introduzca líneas como la siguiente: <dir>/usr/local/share/fonts/</dir> Sin embargo, esto no suele ser necesario. Por defecto, el directorio específico del usuario ~/.fonts ya está incluido en /etc/fonts/fonts.conf. Por lo tanto, lo único que necesita para instalar fuentes adicionales es copiarlas en ~/.fonts. También puede insertar reglas que afecten a la apariencia de las fuentes. Por ejemplo, introduzca <match target="font"> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match> para inhabilitar la suavización de contornos de todas las fuentes o <match target="font"> <test name="family"> <string>Luxi Mono</string> <string>Luxi Sans</string> </test> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match> para inhabilitar la suavización de contornos de fuentes específicas. Por defecto, la mayoría de aplicaciones utilizan los nombres de fuente sans-serif (o el equivalente sans), serif o monospace. Éstas no son fuentes reales, sino alias que se traducen a una fuente adecuada en función de la configuración de idioma. Los usuarios pueden agregar fácilmente reglas a ~/.fonts.conf para traducir estos alias a sus fuentes favoritas: <alias> <family>sans-serif</family> <prefer> <family>FreeSans</family> </prefer> </alias> <alias> <family>serif</family> <prefer> Sistema X Window 571 <family>FreeSerif</family> </prefer> </alias> <alias> <family>monospace</family> <prefer> <family>FreeMono</family> </prefer> </alias> Puesto que casi todas las aplicaciones utilizan estos alias por defecto, esto afecta a casi todo el sistema. Por lo tanto, puede utilizar fácilmente sus fuentes favoritas en casi todo el sistema sin necesidad de modificar la configuración de fuente de cada aplicación. Utilice el comando fc-list para encontrar las fuentes instaladas y disponibles para su uso. Por ejemplo, el comando fc-list proporciona una lista de todas las fuentes. Para buscar en las fuentes ampliables disponibles (:outline=true) las que contienen todos los glifos requeridos para hebreo (:lang=he), los nombres de fuente (family), el estilo (style), el tamaño (weight) y el nombre de los archivos que contienen las fuentes, introduzca el comando siguiente: fc-list ":lang=he:outline=true" family style weight La salida de este comando aparece del siguiente modo: FreeSansBold.ttf: FreeSans:style=Bold:weight=200 FreeMonoBoldOblique.ttf: FreeMono:style=BoldOblique:weight=200 FreeSerif.ttf: FreeSerif:style=Medium:weight=80 FreeSerifBoldItalic.ttf: FreeSerif:style=BoldItalic:weight=200 FreeSansOblique.ttf: FreeSans:style=Oblique:weight=80 FreeSerifItalic.ttf: FreeSerif:style=Italic:weight=80 FreeMonoOblique.ttf: FreeMono:style=Oblique:weight=80 FreeMono.ttf: FreeMono:style=Medium:weight=80 FreeSans.ttf: FreeSans:style=Medium:weight=80 FreeSerifBold.ttf: FreeSerif:style=Bold:weight=200 FreeSansBoldOblique.ttf: FreeSans:style=BoldOblique:weight=200 FreeMonoBold.ttf: FreeMono:style=Bold:weight=200 Parámetros importantes que se pueden consultar con fc-list: Tabla 35.2 572 Parámetros de fc-list Parámetro Significado y valores posibles family Nombre de la familia de la fuente, por ejemplo, FreeSans. Parámetro Significado y valores posibles foundry Fabricante de la fuente, por ejemplo, urw. style Estilo de la fuente, por ejemplo, Medium, Regular, Bold, Italic, Heavy. lang Idioma compatible con la fuente, por ejemplo, de para alemán, ja para japonés, zh-TW para chino (Rep. Popular China) o zh-CN para chino (Taiwán). weight Tamaño de la fuente, por ejemplo, 80 para letra redonda y 200 para negrita. slant Inclinación, generalmente 0 para ninguna inclinación y 100 para cursiva. file Nombre del archivo que contiene la fuente. outline true para fuentes con contorno, false para el resto. scalable true para fuentes ampliables, false para el resto. bitmap true para fuentes de mapa de bits, false para el resto. pixelsize Tamaño de la fuente en píxeles. En una conexión con fc-list, esta opción sólo es útil para fuentes de mapa de bits. 35.3.2 Fuentes centrales X11 Hoy en día, el sistema central de fuentes X11 es compatible con fuentes de mapa de bits y también con fuentes ampliables, como Type1, TrueType y OpenType, así como con fuentes con clave CID. También existía compatibilidad para fuentes Unicode. En 1987, el sistema central de fuentes X11 se desarrolló para X11R1 con el propósito de procesar fuentes de mapas de bits monocromos. Todas las extensiones mencionadas anteriormente se agregaron después. Sistema X Window 573 Las fuentes ampliables sólo son compatibles sin suavización de contornos ni procesamiento de subpíxeles; el inicio de fuentes ampliables grandes con glifos para varios idiomas puede tardar mucho tiempo. La utilización de fuentes Unicode también puede tardar y requiere más memoria. El sistema central de fuentes X11 tiene algunos puntos débiles inherentes. Está obsoleto y no se puede ampliar de manera significativa. Sin embargo, debe conservarse por razones de compatibilidad retroactiva; si es posible, deben utilizarse los sistemas Xft y fontconfig, que son más modernos. Para su funcionamiento, el servidor X necesita saber las fuentes que están disponibles y la parte del sistema en la que puede encontrarlas. Esto se gestiona mediante una variable FontPath, que contiene la vía de todos los directorios de fuente de sistema válidos. En cada uno de estos directorios, un archivo denominado fonts.dir muestra las fuentes disponibles en el directorio. El servidor X genera FontPath durante el inicio. Busca un archivo fonts.dir válido en cada entrada FontPath del archivo de configuración /etc/X11/xorg.conf. Estas entradas se encuentran en la sección Files. Muestre el FontPath actual mediante xset q. Esta vía se puede modificar durante el tiempo de ejecución mediante xset. Para agregar una vía adicional, utilice xset +fp <path>. Para eliminar una vía no deseada, utilice xset -fp <path>. Si el servidor X ya está activo, las fuentes recién instaladas en los directorios montados estarán disponibles mediante el comando xset fp rehash. Este comando se ejecuta mediante SuSEconfig --module fonts. Puesto que el comando xset necesita acceder al servidor X en funcionamiento, esto sólo funciona si SuSEconfig --module fonts se inicia desde un shell que tenga acceso al servidor X en funcionamiento. La manera más fácil de llevar esto a cabo es adoptar los permisos root introduciendo su y la contraseña root. su transfiere los permisos de acceso del usuario que ha iniciado el servidor X al shell root. Para comprobar que las fuentes se han instalado correctamente y que están disponibles a través del sistema central de fuentes X11, utilice el comando xlsfonts para mostrar todas las fuentes disponibles. Por defecto, SUSE Linux utiliza configuraciones regionales UTF-8. Por lo tanto, se preferirán fuentes Unicode (nombres de fuente que finalicen por iso10646-1 en la salida xlsfonts). xlsfonts | grep iso10646-1 enumera todas las fuentes Unicode disponibles. Aproximadamente todas las fuentes Unicode disponibles en SUSE Linux contienen por lo menos los glifos necesarios para idiomas europeos (anteriormente codificados como iso-8859-*). 574 35.3.3 Fuentes con clave CID A diferencia de otros tipos de fuentes, no puede instalar fuentes con clave CID en cualquier directorio. Las fuentes con clave CID deben instalarse en /usr/share/ ghostscript/Resource/CIDFont. Esto no es relevante para Xft y fontconfig, pero es necesario para Ghostscript y para el sistema central de fuentes X11. SUGERENCIA Consulte http://www.xfree86.org/current/fonts.html para obtener más información acerca de las fuentes que se ejecutan en X11. 35.4 Configuración 3D de OpenGL 35.4.1 Hardware soportado SUSE Linux incluye varios controladores OpenGL para el soporte de hardware 3D. La Tabla 35.3, “Hardware 3D soportado” (p. 575) le proporciona un resumen de los mismos. Tabla 35.3 Hardware 3D soportado Controlador OpenGL Hardware soportado nVidia Chips nVidia: todos excepto Riva 128(ZX) DRI 3Dfx Voodoo Banshee, 3Dfx Voodoo-3/4/5, Intel i810/i815/i830M, Intel 845G/852GM/855GM/865G/915, Matrox G200/G400/G450/G550, ATI Rage 128(Pro)/Radeon (hasta 9250) Sistema X Window 575 Si está realizando una nueva instalación con YaST, puede activar el soporte 3D durante la instalación siempre y cuando YaST detecte dicho soporte. Los chips gráficos nVidia son la única excepción; en este caso es necesario instalar previamente el controlador nVidia. Para ello seleccione durante la instalación el parche del controlador nVidia en YOU (YaST Online Update). Por motivos de licencia no podemos incluir el controlador de nVidia con la distribución. Si va a realizar una actualización, el soporte de hardware 3D tendrá que configurarse de manera diferente. El método depende del controlador OpenGL que esté utilizando y se describe con más detalle en la siguiente sección. 35.4.2 Controladores OpenGL Estos controladores OpenGL pueden instalarse muy fácilmente utilizando SaX2. Tenga en cuenta que, si dispone de una tarjeta nVidia, el controlador de nVidia ha de ser instalado previamente como se describe en las líneas superiores. El comando 3Ddiag le permite comprobar si nVidia o DRI están configurados correctamente. Por razones de seguridad, sólo los usuarios que pertenecen al grupo video pueden tener acceso al hardware 3D. Compruebe que todos los usuarios que trabajan localmente en la máquina pertenecen a ese grupo. De no ser así, cuando intente ejecutar aplicaciones OpenGL se ejecutará el Software Rendering Fallback del controlador OpenGL, que es más lento. Utilice el comando id para comprobar si el usuario actual pertenece al grupo video. Si este no es el caso, utilice YaST para añadirlo al grupo. 35.4.3 Herramienta de diagnóstico 3Ddiag Puede verificar la configuración 3D en SUSE Linux con la herramienta de diagnóstico 3Ddiag incluida en el sistema. Se debe ejecutar este comando desde una terminal de línea de comandos. Introduzca 3Ddiag -h para mostrar las opciones posibles de 3Ddiag. La aplicación examinará, por ejemplo, la configuración de X.Org para verificar que los paquetes de soporte de 3D están instalados y las librerías OpenGL están siendo utilizadas con la extensión GLX. Siga las instrucciones de 3Ddiag si aparecen mensajes de failed. Si todo ha ido a la perfección, verá en la pantalla el mensaje done. 3Ddiag -h proporciona información sobre las opciones admitidas por 3Ddiag. 576 35.4.4 Aplicaciones de prueba OpenGL Para probar OpenGL puede utilizar juegos como tuxracer o armagetron (del paquete del mismo nombre) así como glxgears. Si el soporte 3D ha sido activado, estos juegos funcionarán correctamente en ordenadores medianamente actuales. Sin soporte 3D, esta prueba no tiene sentido (efecto de diapositivas). La salida del comando glxinfo le informará de si el soporte 3D está activado. En caso afirmativo, la variable direct rendering tendrá el valor Yes. 35.4.5 Resolución de problemas Si los resultados de la prueba de 3D de OpenGL han sido negativos (los juegos no se han visualizado adecuadamente), utilice 3Ddiag para asegurarse de que no existen errores en la configuración (mensajes de failed). Si la corrección de estos no ayuda o no han aparecido mensajes de error, mire los archivos log de X.Org. A menudo, encontrará aquí la línea DRI is disabled en el archivo de X.Org /var/log/Xorg .0.log. Se puede descubrir la causa exacta examinando con detalle los archivos log, lo que quizá sea demasiado complicado para un usuario no experimentado. En estos casos, lo normal es que no exista ningún error en la configuración, puesto que ya habría sido detectado por 3Ddiag. Por lo tanto sólo queda el Software Rendering Fallback del controlador DRI, el cual no ofrece soporte de hardware 3D. Prescinda también del soporte 3D en caso de fallos de representación en OpenGL o problemas generales de estabilidad. Puede desactivar el soporte 3D con SaX2. 35.4.6 Soporte de instalación Excepto el Software Rendering Fallback del controlador DRI, todos los controladores de Linux están en fase de desarrollo y por tanto se consideran en pruebas. Los controladores se incluyen en la distribución debido a la alta demanda de aceleración de hardware 3D en Linux. Considerando el estado experimental de los controladores de OpenGL, no podemos ofrecer un soporte de instalación para configurar la aceleración de hardware 3D o proporcionar ningún otro tipo de ayuda. La configuración básica de la interfaz gráfica X11 no incluye la configuración de la aceleración de hardware 3D. No obstante, esperamos que este capítulo responda a muchas preguntas relacionadas con este tema. En caso de problemas con el soporte de hardware 3D le recomendamos en última instancia prescindir de este soporte. Sistema X Window 577 35.4.7 Documentación adicional en línea Para ver información sobre DRI, consulte /usr/X11R6/lib/X11/doc/README .DRI (paquete Xorg-x11-doc). Puede obtener información adicional sobre la instalación de controladores nvidia en http://ftp.suse.com/pub/suse/i386/ supplementary/X/nvidia-installer-HOWTO.html. 578 Autenticación con PAM 36 Linux utiliza PAM (módulos de autenticación conectables, del inglés Pluggable Authentication Modules) en el proceso de autenticación como una capa que media entre el usuario y la aplicación. Los módulos PAM están disponibles para todo el sistema, por lo que los puede solicitar cualquier aplicación. Este capítulo describe cómo funciona el mecanismo de autenticación modular y cómo se configura. Los administradores de sistemas y los programadores suelen restringir el acceso a ciertas partes del sistema o limitar el uso de ciertas funciones de una aplicación. Sin PAM, sería necesario adaptar las aplicaciones cada vez que se introdujera un nuevo mecanismo de autenticación, como LDAP o SAMBA. Sin embargo, este proceso lleva bastante tiempo y tiende a producir errores. Una manera de evitar estos inconvenientes es separar las aplicaciones del mecanismo de autenticación y delegar este último a módulos gestionados centralmente. Cuando sea necesario utilizar un nuevo esquema de autenticación, bastará con adaptar o escribir un módulo PAM adecuado para que el programa en cuestión pueda utilizarlo. Todos los programas que se sirven del mecanismo PAM tienen su propio archivo de configuración en el directorio /etc/pam.d/nombreprograma. Estos archivos definen los módulos PAM empleados en el proceso de autenticación. Además, existen archivos de configuración globales para la mayoría de los módulos PAM en /etc/ security, los cuales definen el comportamiento exacto de estos módulos (por ejemplo pam_env.conf, pam_pwcheck.conf, pam_unix2.conf y time .conf). Todas las aplicaciones que utilicen un módulo PAM llamarán a un conjunto de funciones PAM, las cuales procesarán después la información en los distintos archivos de configuración y devolverán el resultado a la aplicación que ha realizado la llamada. Autenticación con PAM 579 36.1 Estructura de archivos de configuración PAM Cada línea dentro de un archivo de configuración PAM contiene un máximo de cuatro columnas: <Tipo de módulo> <Indicador de control> <Vía al módulo> <Opciones> Los módulos PAM se procesan en stacks. Los distintos tipos de módulos sirven a propósitos distintos, por ejemplo, un módulo comprueba la contraseña, otro verifica la ubicación desde la que se accede al sistema y otro lee los ajustes específicos del usuario. PAM reconoce cuatro tipos de módulos diferentes: auth El objetivo de este tipo de módulo es comprobar la autenticidad del usuario. Esto se hace tradicionalmente solicitando una contraseña, si bien también se puede conseguir con la ayuda de una tarjeta de chip o mediante biométrica (huellas digitales o exploración de retina). account Los módulos de este tipo comprueban que el usuario tenga permiso general para utilizar el servicio solicitado. Por ejemplo, deberá realizarse esta comprobación para garantizar que nadie inicie sesión con el nombre de usuario de una cuenta caducada. password El propósito de este tipo de módulo es permitir modificar un testigo de autenticación. En la mayoría de los casos, se trata de una contraseña. session Los módulos de este tipo son responsables de gestionar y configurar sesiones de usuario. Estos módulos se inician antes y después de la autenticación para registrar intentos de inicio de sesión en los registros del sistema y para configurar el entorno específico del usuario (cuentas de correo, directorio personal, límites del sistema, etc.). La segunda columna contiene indicadores de control para influir en el comportamiento de los módulos iniciados: 580 required Los módulos con este indicador se deben procesar correctamente antes de proceder con la autenticación. Si falla un módulo con el indicador required, se procesará el resto de módulos de este tipo antes de que el usuario reciba un aviso de que se ha producido un fallo durante el intento de autenticación. requisite Los módulos con este indicador tienen que ser procesados correctamente, igual que los módulos con el indicador required. No obstante, si se produce un fallo en un módulo con este indicador, el usuario recibirá una notificación inmediata y no se procesarán más módulos. En caso de que no haya errores, se seguirá procesando el resto de los módulos, al igual que en el caso de los módulos con el indicador required. El indicador requisite se puede utilizar como un filtro simple con el objeto de comprobar el cumplimiento de determinadas condiciones necesarias para una correcta autenticación. sufficient Si se procesa correctamente un modulo con este indicador, la aplicación que lo ha iniciado recibe inmediatamente una notificación de proceso correcto y no se procesa ningún otro módulo, siempre y cuando anteriormente no haya fallado la ejecución de ningún módulo con el indicador required. El fallo de un módulo con indicador sufficient no tiene consecuencias directas y los módulos siguientes se seguirán procesando según el orden correspondiente. optional Que el proceso de un módulo con este indicador se lleve a cabo correctamente o haya errores no tiene consecuencias directas. Esta opción puede ser útil, por ejemplo, para módulos cuyo único cometido es mostrar un mensaje (por ejemplo informando al usuario acerca de la recepción de un mensaje de correo electrónico), sin realizar ninguna otra acción. include Si se da este indicador, el archivo especificado como argumento se inserta en este lugar. La vía al módulo no tiene por qué especificarse de forma explícita siempre que el módulo se encuentre en el directorio por defecto /lib/security (en todas las plataformas de 64 bits compatibles con SUSE Linux, el directorio es /lib64/security). La cuarta columna puede contener una opción para el módulo, como debug (activa la depuración) o nullok (permite utilizar contraseñas vacías). Autenticación con PAM 581 36.2 Configuración PAM para sshd Tomemos la configuración PAM para sshd para demostrar la teoría con un ejemplo práctico de funcionamiento: Ejemplo 36.1 Configuración PAM para sshd #%PAM-1.0 auth include common-auth auth required pam_nologin.so account include common-account password include common-password session include common-session # Habilite la siguiente línea para obtener compatibilidad de resmgr con # sesiones ssh (consulte /usr/share/doc/packages/resmgr/README.SuSE) #session optional pam_resmgr.so nombretty_simulado La configuración típica PAM de una aplicación (sshd en este caso) contiene instrucciones que hacen referencia a los archivos de configuración de cuatro tipos de módulos: common-auth, common-account, common-password y common-session. Estos cuatro archivos contienen la configuración predeterminada para cada tipo de módulo. Si se incluyen estos archivos en lugar de llamar a cada módulo por separado para cada aplicación PAM, se obtendrá automáticamente una configuración PAM actualizada cuando el administrador cambie los ajustes por defecto. Antiguamente, era necesario ajustar todos los archivos de configuración manualmente en todas las aplicaciones cuando se producían cambios en PAM o cuando se instalaba una aplicación nueva. Ahora, la configuración PAM se lleva a cabo mediante archivos de configuración centrales y todos los cambios se heredan automáticamente en la configuración PAM de cada servicio. El primer archivo incluido (common-auth) llama a dos módulos del tipo auth: pam_env y pam_unix2. Consulte Ejemplo 36.2, “Configuración por defecto de la sección auth” (p. 582). Ejemplo 36.2 auth auth Configuración por defecto de la sección auth required required pam_env.so pam_unix2.so El primero, pam_env, carga el archivo /etc/security/pam_env.conf para definir las variables de entorno tal y como se especifique en este archivo. Esto se puede utilizar para definir la variable DISPLAY con el valor adecuado, ya que el módulo pam _env conoce la ubicación desde la cual se está iniciando sesión. El segundo, pam 582 _unix2, comprueba el inicio de sesión del usuario y su contraseña comparándolos con /etc/passwd y /etc/shadow. Una vez iniciados correctamente los módulos especificados en common-auth, un tercer módulo llamado pam_nologin comprueba si existe el archivo /etc/nologin. Si existe, sólo podrá iniciar sesión el usuario Root. El stack entero de módulos auth se procesará antes de que sshd obtenga información alguna acerca de si se ha podido iniciar correctamente la sesión. Dado que todos los módulos del stack tienen el indicador de control required, deberán procesarse correctamente todos para que sshd reciba un mensaje notificándole que el resultado ha sido correcto. Aunque alguno de los módulos no llegase a procesarse correctamente, el resto del stack de módulos sí continuaría procesándose y, sólo entonces, sshd recibiría notificación acerca del resultado incorrecto. Si se procesan correctamente todos los módulos del tipo auth, se procesará otra declaración de inclusión, en este caso, la que parece en Ejemplo 36.3, “Configuración por defecto de la sección account” (p. 583). common-account contiene sólo un módulo, pam_unix2. Si pam_unix2 indica como resultado que el usuario existe, sshd recibe un mensaje de notificación al respecto y se pasa a procesar el siguiente stack de módulos (password), los cuales se describen en Ejemplo 36.4, “Configuración por defecto de la sección password” (p. 583). Ejemplo 36.3 Configuración por defecto de la sección account account required Ejemplo 36.4 pam_unix2.so Configuración por defecto de la sección password password required password required #password required pam_pwcheck.so pam_unix2.so pam_make.so nullok nullok use_first_pass use_authtok /var/yp De nuevo, la configuración PAM de sshd lleva sólo una declaración de inclusión que hace referencia a la configuración por defecto de los módulos password del archivo common-password. Estos módulos deben completarse correctamente (indicador de control required) siempre que la aplicación solicite que se cambie un testigo de autenticación. Cambiar una contraseña u otro testigo de autenticación exige realizar una comprobación de seguridad. Ésta la lleva a cabo el módulo pam_pwcheck. El módulo pam_unix2 que se utiliza posteriormente lleva consigo todas las contraseñas antiguas y nuevas de pam_pwcheck para que el usuario no tenga que volver a autenticarlas. Esto también evita que se puedan saltar las comprobaciones que lleva a cabo pam _pwcheck. Los módulos del tipo password deben utilizarse siempre que los módulos Autenticación con PAM 583 precedentes del tipo account o auth estén configurados para emitir quejas en caso de que las contraseñas hayan caducado. Ejemplo 36.5 Configuración por defecto de la sección session session required session required pam_limits.so pam_unix2.so En el último paso, se ordena a los módulos del tipo session, incluidos en el archivo common-session que configuren la sesión según los ajustes del usuario en cuestión. Si bien pam_unix2 se vuelve a procesar, no tiene consecuencias prácticas debido a su opción none, especificada en el correspondiente archivo de configuración de este módulo, pam_unix2.conf. El módulo pam_limits carga el archivo /etc/ security/limits.conf, el cual puede definir los límites de uso de ciertos recursos del sistema. Cuando el usuario termina la sesión, se vuelve a llamar a los módulos session. 36.3 Configuración de módulos PAM Algunos de los módulos PAM se pueden configurar. Los archivos de configuración correspondientes se encuentran en /etc/security. Esta sección describe brevemente los archivos de configuración relevantes para el ejemplo de sshd: pam_unix2.conf, pam_env.conf, pam_pwcheck.conf y limits.conf. 36.3.1 pam_unix2.conf El método tradicional de autenticación basada en contraseña está controlado a través del módulo PAM pam_unix2. Este módulo puede leer los datos necesarios desde /etc/passwd, /etc/shadow, mapas NIS, tablas NIS+ o bases de datos LDAP. El comportamiento de este módulo puede manipularse configurando las opciones PAM de la aplicación en sí o bien de manera global en /etc/security/pam_unix2 .conf. En el caso más sencillo, este archivo de configuración tiene el aspecto mostrado en Ejemplo 36.6, “pam_unix2.conf” (p. 584). 584 Ejemplo 36.6 pam_unix2.conf auth: nullok account: password: session: nullok none La opción nullok de los tipos de módulos auth y password especifica que es posible incluir contraseñas vacías en el tipo de cuentas correspondiente. Los usuarios también pueden cambiar las contraseñas de sus cuentas. La opción none en el tipo de módulo session especifica que no se registran mensajes en su nombre (se trata de la opción por defecto). Puede obtener información acerca de otras opciones de configuración a través de los comentarios dentro del propio archivo y a través de la página de manual pam_unix2(8). 36.3.2 pam_env.conf Este archivo se puede utilizar para definir un entorno estandarizado para usuarios, el cual se establecerá cada vez que se llame al módulo pam_env. Si se utiliza este archivo, las variables de entorno deberán predefinirse con la sintaxis siguiente: VARIABLE [DEFAULT=[valor]] [OVERRIDE=[valor]] VARIABLE Nombre de la variable de entorno que definir. [DEFAULT=[valor]] Valor por defecto que desea definir el administrador. [OVERRIDE=[valor]] Valores que se pueden consultar y definir mediante pam_env, sustituyendo al valor por defecto. Un ejemplo típico de cómo se podría utilizar pam_env sería adaptar la variable DISPLAY, que se podría cambiar cuando se inicie sesión de forma remota. Este ejemplo se muestra en Ejemplo 36.7, “pam_env.conf” (p. 585). Ejemplo 36.7 REMOTEHOST DISPLAY pam_env.conf DEFAULT=localhost OVERRIDE=@{PAM_RHOST} DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY} La primera línea define el valor de la variable REMOTEHOST en localhost, la cual se utilizará cada vez que pam_env no pueda determinar ningún otro valor. La variable DISPLAY, a su vez, contiene el valor de REMOTEHOST. Podrá obtener más información a través de los comentarios del archivo /etc/security/pam_env.conf. Autenticación con PAM 585 36.3.3 pam_pwcheck.conf Este archivo de configuración corresponde al módulo pam_pwcheck, que lee las opciones que incluye para todos los módulos del tipo password. Los ajustes almacenados en este archivo tienen preferencia sobre los ajustes PAM de una aplicación individual. Si no se han definido los ajustes específicos de la aplicación, ésta utiliza los ajustes globales. Ejemplo 36.8, “pam_pwcheck.conf” (p. 586) le indica a pam_pwcheck que permita que se utilicen contraseñas vacías, así como que se modifiquen las contraseñas. El archivo /etc/security/pam_pwcheck.conf menciona otras opciones disponibles para el módulo. Ejemplo 36.8 password: pam_pwcheck.conf nullok 36.3.4 limits.conf Se pueden definir límites del sistema para usuarios o para grupos en el archivo limits .conf, el cual lee el módulo pam_limits. Este archivo le permite definir límites rígidos, que no se podrán sobrepasar en absoluto, y límites flexibles, que sí se pueden sobrepasar temporalmente. Lea los comentarios incluidos en el archivo para obtener más información sobre la sintaxis empleada y las opciones disponibles. 36.4 Información adicional En el directorio /usr/share/doc/packages/pam del sistema instalado encontrará la siguiente documentación adicional: Archivos README (LÉAME) El nivel superior de este directorio incluye archivos README generales. El subdirectorio modules tiene archivos README sobre los módulos PAM disponibles. The Linux-PAM System Administrators' Guide (Guía del administrador del sistema Linux-PAM) Este documento incluye todo aquello que un administrador del sistema debería saber sobre PAM. Todo explicado a través de una amplia gama de temas, desde la sintaxis de los archivos de configuración a cuestiones de seguridad relacionadas con los 586 módulos PAM. Este documento está disponible en formato PDF, HTML y sólo texto. The Linux-PAM Module Writers' Manual (Manual del desarrollador de módulos Linux-PAM) Este documento resume los datos desde el punto de vista del desarrollador e incluye información acerca de cómo desarrollar módulos PAM que cumplan con los estándares. El documento está disponible en formato PDF, HTML y sólo texto. The Linux-PAM Application Developers' Guide (Guía del desarrollador de aplicaciones Linux-PAM) Este documento incluye todo lo que debe saber el desarrollador de aplicaciones que quiera utilizar las bibliotecas PAM. El documento está disponible en formato PDF, HTML y sólo texto. Thorsten Kukuk ha desarrollado una serie de módulos PAM para SUSE Linux y ha dejado información al respecto en http://www.suse.de/~kukuk/pam/. Autenticación con PAM 587 Virtualización mediante Xen 37 Xen hace posible ejecutar varios sistemas Linux en una máquina física. El hardware para los distintos sistemas se proporciona de forma virtual. Este capítulo ofrece una descripción general de las posibilidades y limitaciones de esta tecnología. Las secciones sobre la instalación, configuración y ejecución de Xen completan esta introducción. Por lo general, las máquinas virtuales necesitan imitar el hardware que un sistema necesita. El inconveniente es que el hardware emulado es mucho más lento que el real. Xen adopta una perspectiva diferente, puesto que restringe la emulación al número mínimo posible de partes. Para lograrlo, Xen utiliza la paravirtualización. Esta técnica presenta máquinas virtuales de forma similar, aunque no idéntica, al hardware subyacente. Por lo tanto, los sistemas operativos del host y del invitado se adaptan al nivel del núcleo. El espacio de usuario permanece sin cambios. Xen controla el hardware con un hipervisor y un invitado controlador (también denominado "dominio-0"), que proporcionan los dispositivos virtuales de bloque y de red necesarios. Los sistemas invitados utilizan estos dispositivos para ejecutar el sistema y realizar la conexión con otros invitados o con la red local. Cuando varias máquinas físicas que ejecutan Xen se configuran de tal forma que los dispositivos virtuales de bloque y de red se encuentran disponibles, también resulta posible migrar un sistema invitado de un elemento de hardware a otro durante su ejecución. Originariamente, Xen se desarrolló para funcionar hasta con 100 sistemas invitados en un solo equipo; no obstante, este número presenta una fuerte dependencia de los requisitos del sistema de los sistemas invitados en ejecución (sobre todo del uso de la memoria). Para limitar el uso de la CPU, el hipervisor de Xen ofrece tres planificadores distintos. El planificador también puede cambiarse durante la ejecución del sistema invitado, con lo que se posibilita el cambio de prioridad del sistema invitado en ejecución. En un nivel Virtualización mediante Xen 589 más alto, la migración de un invitado también puede utilizarse para ajustar los recursos disponibles de la CPU. El sistema de virtualización Xen también presenta algunas desventajas relacionadas con el hardware admitido: • varios controladores de origen cerrado, como los de Nvidia o ATI, no funcionan como deberían. En estos casos, deben utilizarse los controladores de origen cerrado si se encuentran disponibles, aun si no admiten todas las capacidades de los chips. Al utilizar Xen, tampoco se admiten varios chips de WLAN y bridges Cardbus. • En la versión 2, Xen no admite PAE (Extensión de dirección física), lo que significa que no admite más de 4 GB de memoria. • No es compatible con la ACPI (Interfaz avanzada de configuración y energía). La gestión de energía y otros modos que dependen de la ACPI no funcionan. 590 Figura 37.1 Descripción general de Xen Aplicación de gestión Gestión SO del host espacio de usuario aplicaciones Servicio SO del invitado Servicio SO del invitado espacio de usuario aplicaciones espacio de usuario aplicaciones Núcleo de Linux Núcleo de Linux Núcleo de NetWare (paravirtual) (paravirtual) (paravirtual) Controladores del dispositivo físico E/S E/S Xen Consola virtual CPU virtual Memoria virtual CPU Red virtual Dispositivo de bloque virtual Memoria Hardware físico (CPU, memoria, red, dispositivos de bloque) 37.1 Instalación de Xen El procedimiento de instalación de Xen implica la configuración de un dominio dominio0 y la instalación de clientes Xen. En primer lugar, asegúrese de que los paquetes necesarios se encuentren instalados. Estos paquetes son python, bridge-utils, xen y un paquete kernel-xen. Al utilizar paquetes SUSE, Xen se añade a la configuración de GRUB. En otros casos, cree en boot/grub/menu.lst una entrada similar a la siguiente: title Xen2 kernel (hd0,0)/boot/xen.gz dom0_mem=458752 module (hd0,0)/boot/vmlinuz-xen <parameters> module (hd0,0)/boot/initrd-xen Virtualización mediante Xen 591 Sustituya (hd0,0) por la partición en la que se encuentre el directorio /boot. Consulte también el Capítulo 29, Cargador de arranque (p. 469). Modifique la cantidad de dom0_mem para que coincida con la de su sistema. El valor máximo es el de la memoria del sistema, expresado en KB, menos 65.536. Sustituya <parameters> por los parámetros que se utilizan normalmente en un núcleo Linux. A continuación, rearranque en modo Xen. Esto arranca el hipervisor de Xen y un núcleo Linux ligeramente modificado como dominio-0 que ejecuta la mayor parte del hardware. Aparte de las excepciones que ya se han mencionado, todo debería funcionar normalmente. 37.2 Instalación de dominios La instalación y configuración de un dominio invitado implica varios procedimientos. A continuación, se explica la instalación de un primer dominio invitado y cómo completar la totalidad de las distintas tareas que hay que llevar a cabo para crear una primera conexión de red. Para instalar un sistema invitado, el usuario debe proporcionar un sistema de archivos raíz en un dispositivo de bloque o en una imagen del sistema de archivos, lo cual requiere llevar a cabo una configuración. Para acceder a este sistema posteriormente, utilice una consola emulada o configure una conexión de red para este invitado. YaST admite la instalación de SUSE Linux en un directorio. Los requisitos del hardware de este invitado son parecidos a los de una instalación normal de Linux. Los dominios pueden compartir sistemas de archivos montados en sólo lectura desde todos los dominios, como /usr o /opt. Nunca debe compartirse un sistema de archivos montado en lectura-escritura. Para compartir datos que pueden escribirse entre varios dominios invitados, utilice NFS u otros sistemas de archivos estructurados en red o en clústeres. AVISO: Inicio de un dominio invitado Al iniciar un dominio invitado, asegúrese de que un instalador o el dominio-0 controlador no vuelva a llevar a cabo el montaje de los sistemas de archivos del invitado. El primer paso es la creación de una imagen del sistema de archivos en la que se instale Linux para el invitado. 592 1 Para crear una imagen vacía con el nombre guest1 en el directorio /var/ tmp/ y con un tamaño de 4 GB, utilice el siguiente comando: dd if=/dev/zero of=/var/tmp/guest1 seek=1M bs=4096 count=1 2 La imagen no es más que un gran archivo vacío sin ningún tipo de información. Para poder escribir archivos en él, se necesita un sistema de archivos: mkreiserfs -f /var/tmp/guest1 El comando mkreiserfs informa al usuario de que éste no es un dispositivo especial de bloque y solicita confirmación. Para continuar, escriba Y y, a continuación, pulse Intro . 3 La instalación propiamente dicha se efectúa en un directorio. Por lo tanto, la imagen del sistema de archivos /var/tmp/guest1 debe montarse en un directorio: mkdir -p /var/tmp/dirinstall mount -o loop /var/tmp/guest1 /var/tmp/dirinstall IMPORTANTE Cuando finalice la instalación, desmonte esta imagen del sistema de archivos. Cuando se lleva a cabo la instalación, YaST también monta el sistema de archivos /proc, que también debe desmontarse. umount /var/tmp/dirinstall/proc umount /var/tmp/dirinstall 37.2.1 Instalación de dominios invitados mediante YaST Para instalar un dominio invitado mediante YaST, se necesita la imagen del sistema de archivos preparada con anterioridad para el nuevo invitado. Inicie YaST y seleccione Software → Installation into Directory for XEN (Instalación en directorio para XEN). El módulo YaST para la instalación de directorios dispone de varias opciones que deben definirse en función de las necesidades del usuario: • Target Directory (Directorio de destino): /var/tmp/dirinstall Virtualización mediante Xen 593 Defina esta opción como el punto de montaje de la imagen del sistema de archivos que va a utilizarse. Por lo general, el valor que aparece por defecto es aceptable. • Run YaST and SuSEconfig at First Boot (Ejecutar YaST y SuSEconfig en el primer arranque): Yes (Sí) Defina esta opción como Yes (Sí). Al iniciar el invitado, se le solicitará una contraseña root y un primer usuario. • Create Image (Crear imagen): No La imagen que se crea con esta opción es un archivo tar del directorio de instalación, y no resulta de utilidad en este punto. • Software Seleccione el tipo de instalación que va a utilizar. Cualquiera de las opciones por defecto deberían suponer un buen inicio. Haga clic en Next (Siguiente) para iniciar la instalación. En función del número de paquetes, la instalación lleva más o menos tiempo. Una vez concluida la instalación, las bibliotecas deben retirarse: mv /var/tmp/dirinstall/lib/tls /var/tmp/dirinstall/lib/tls.disabled Xen utiliza uno de los núcleos instalados en el dominio-0 para iniciar el dominio invitado. Para poder utilizar las funciones de red en el invitado, éste también debe tener acceso a los módulos de este núcleo. cp -a /lib/modules/$(rpm -qf --qf %{VERSION}-%{RELEASE}-xen \ /boot/vmlinuz-xen) /var/tmp/dirinstall/lib/modules Para evitar errores del sistema de archivos, la imagen de éste debe desmontarse tras la instalación: umount /var/tmp/dirinstall/proc umount /var/tmp/dirinstall/ Sería posible crear núcleos especializados para el dominio-0 y para los sistemas invitados por separado. La diferencia principal son los controladores de hardware, que no resultan necesarios en los sistemas invitados. Puesto que estos controladores son modulares y no se utilizan en los sistemas invitados, SUSE tan sólo proporciona un núcleo para ambas tareas. 594 37.2.2 Configuración de un sistema de rescate para funcionar como dominio invitado La forma más sencilla de conseguir que un sistema se ejecute con rapidez es volver a utilizar el sistema de archivos raíz, como el sistema de rescate de SUSE Linux. Básicamente, se debe intercambiar la imagen del núcleo y los controladores de dispositivos virtuales de bloque y de red en esta imagen. Para hacer más fácil esta tarea, el guión mk-xen-rescue-img.sh se encuentra disponible en /usr/share/doc/ packages/xen/. El inconveniente de utilizar el método de rescate de construcción de un sistema de archivos raíz es que el resultado no cuenta con una base de datos RPM, de modo que no se puede utilizar RPM para añadir paquetes con facilidad. Como aspecto positivo, cabe destacar que el resultado es relativamente pequeño aunque disponga de la mayor parte de los elementos que se necesitan para iniciar los trabajos de red. Para ejecutar el guión mk-xen-rescue-img.sh, se necesita, al menos, el directorio con la imagen de rescate y una ubicación de destino para la imagen resultante. Por defecto, el directorio se encuentra en el DVD de arranque, en el directorio /boot. cd /usr/share/doc/packages/xen ./mk-xen-rescue-img.sh /media/dvd/boot /usr/local/xen 64 El primer parámetro del guión es el directorio de la imagen de rescate. El segundo es el destino del archivo de la imagen. Los requisitos de espacio en disco del dominio invitado recién generado y la versión del núcleo que se va a utilizar son parámetros opcionales. A continuación, el guión copia la imagen en la nueva ubicación, sustituye el núcleo y varios de sus módulos e inhabilita el directorio tls del sistema. Como último paso, genera un archivo de configuración para la nueva imagen en /etc/xen/. Virtualización mediante Xen 595 37.3 Configuración de dominios invitados Xen La documentación sobre la configuración de un dominio invitado no es muy exhaustiva. La mayor parte de la información disponible al respecto puede encontrarse en el archivo de configuración de ejemplo /etc/xen/config. Se explican las opciones necesarias, además de un valor por defecto o, al menos, una configuración de ejemplo. Para la instalación que se describe en la Sección 37.2.1, “Instalación de dominios invitados mediante YaST” (p. 593), cree un archivo /etc/xen/guest1 que tenga el siguiente contenido: kernel = "/boot/vmlinuz-xen" ❶ ramdisk = "/boot/initrd-xen" ❷ memory = 128 ❸ name = "guest1" ❹ nics = "1" ❺ vif = [ 'mac=aa:cc:00:00:00:ab, bridge=xen-br0' ] ❻ disk = [ 'file:/var/tmp/guest1,hda1,w' ] ❼ root = "/dev/hda1 ro" ❽ extra = "3" ❾ 596 ❶ Especifique la vía hasta el núcleo Xen en el dominio-0. Este núcleo se ejecutará posteriormente en el sistema invitado. ❷ Seleccione el disco RAM inicial apropiado que contiene los controladores del dispositivo para el núcleo Xen. Si no se hace esto, el núcleo suele dejar de funcionar correctamente, al ser incapaz de montar su sistema de archivos raíz. ❸ Defina la cantidad de memoria que debería asignarse al dominio invitado. Esto no puede llevarse a cabo si el sistema no dispone de suficiente memoria disponible para sus invitados. ❹ El nombre para este invitado. ❺ El número de interfaces de redes virtuales para el dominio invitado. ❻ La configuración de la interfaz de red virtual, en la que se incluye su dirección MAC y el bridge al que está conectada. ❼ Establezca los dispositivos de bloques virtuales para el invitado Xen. Para utilizar los dispositivos de bloques reales, cree entradas como ['phy:sdb1,hda1,w', 'phy:system/swap1,hda2,w']. ❽ Define el dispositivo raíz para el núcleo. Éste debe ser el dispositivo virtual tal y como lo ve el invitado. ❾ Aquí puede añadir parámetros de núcleo adicionales. El ejemplo 3 significa que el invitado se ha iniciado en nivel de ejecución 3. 37.4 Inicio y control de dominios Xen Antes de que pueda iniciarse el dominio invitado, el hipervisor de Xen debe tener suficiente memoria libre para el nuevo invitado. En primer lugar, compruebe la cantidad de memoria utilizada. xm list Name Domain-0 Id 0 Mem(MB) 458 CPU 0 State r---- Time(s) 181.8 Console Si éste es un equipo con 512 MB, el hipervisor de Xen ocupa 64 MB y el dominio-0, el resto. Para liberar parte de la memoria para el nuevo invitado, se utiliza xm balloon. Para definir el tamaño del dominio-0 como 330 MB, establezca lo siguiente como root: xm balloon 0 330 En la siguiente ejecución de xm list, el uso de la memoria del dominio-0 debería haber descendido a 330 MB. En ese momento habrá memoria disponible suficiente para iniciar un invitado con 128 MB. El comando xm start guest1 -c inicia el invitado y enlaza la consola de éste con el terminal actual. Si ésta es la primera vez que se inicia este invitado, finalice la instalación con YaST. Siempre es posible desconectar esta consola o volver a conectarla desde otro terminal. Para llevar a cabo la desconexión, utilice Ctrl + ] . Para volver a conectarla, compruebe en primer lugar el ID del invitado necesario mediante xm list y realice la conexión con ese ID mediante xm console ID. La herramienta xm de Xen tiene muchos parámetros posibles. Escriba xm help para visualizar una lista con una breve explicación. La Tabla 37.1, “Comandos xm” (p. 598) proporciona algunos de los comandos más importantes útiles como punto de partida. Virtualización mediante Xen 597 Tabla 37.1 Comandos xm xm help Imprime una lista de los comandos disponibles para la herramienta xm. xm console ID Efectúa la conexión con la primera consola (tty1) del invitado con el ID ID. xm balloon ID Mem Establece el tamaño de la memoria del dominio con el ID ID como Mem, expresado este último valor en MB. xm create nombredom [-c] Inicia el dominio con el archivo de configuración nombredom. El elemento opcional -c enlaza el terminal actual con el primer tty del nuevo invitado. xm shutdown ID Apaga el invitado con el ID ID de la forma habitual. xm destroy ID Finaliza inmediatamente el invitado con el ID ID. xm list Imprime una lista de todos los dominios en ejecución con sus IDs, memoria y valores temporales de la CPU. xm info Muestra información sobre el host Xen, incluida la relativa a la memoria y a la CPU. 37.5 Información adicional Puede encontrarse más información sobre Xen en los siguientes sitios Web: • file:/usr/share/doc/packages/xen/user/html/index.html: información oficial para usuarios de Xen. Se necesita el paquete xen-doc-html. • file:/usr/share/doc/packages/xen/interface/html/index .html: algo más de documentación técnica sobre la interfaz. También se necesita el paquete xen-doc-html. • http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index .html: página inicial de Xen con varios enlaces de documentación. 598 • http://lists.xensource.com/: varias listas de correos sobre Xen. Virtualización mediante Xen 599 Parte IX. Servicios Trabajo en red básico 38 Linux ofrece las herramientas y funciones necesarias para trabajar en red que se integran en todos los tipos de estructuras de red. El protocolo tradicional de Linux, TCP/IP, dispone de varios servicios y funciones especiales que se tratan aquí. El acceso a la red mediante una tarjeta de red, un módem u otro dispositivo se puede configurar con YaST. También es posible la configuración manual. En este capítulo, sólo se explican los mecanismos fundamentales y los archivos de configuración de red relevantes. Linux y otros sistemas operativos de Unix utilizan el protocolo TCP/IP. No se trata de un único protocolo de red, sino de una familia de protocolos de red que ofrece varios servicios. Los protocolos enumerados en la Tabla 38.1, “Algunos protocolos de la familia de protocolos TCP/IP” (p. 604) se proporcionan con el fin de intercambiar datos entre dos máquinas mediante TCP/IP. Las redes combinadas por TCP/IP que forman una red mundial se denominan en su totalidad “Internet”. RFC significa petición de comentario. Las RFC (Peticiones de comentarios) son documentos que describen varios protocolos y procedimientos de implementación de Internet para el sistema operativo y sus aplicaciones. Los documentos RFC describen la configuración de los protocolos de Internet. Para ampliar sus conocimientos acerca de cualquiera de los protocolos, consulte los documentos RFC apropiados. Están disponibles en línea en la dirección http://www.ietf.org/rfc.html. Trabajo en red básico 603 Tabla 38.1 Algunos protocolos de la familia de protocolos TCP/IP Protocolo Descripción TCP Protocolo de control de transmisión: Protocolo seguro orientado a la conexión. Los datos que se van a transmitir se envían primero a la aplicación como flujo de datos y, a continuación, el sistema operativo los convierte al formato apropiado. Los datos llegan a la aplicación correspondiente del host de destino en el formato original del flujo de datos en el que se enviaron al principio. TCP determina si se ha perdido algún dato durante la transmisión y que no se han mezclado. TCP se implementa donde la secuencia de datos es relevante. UDP Protocolo de datagramas de usuario: Protocolo inseguro y sin conexión. Los datos que se van a transmitir se envían en forma de paquetes generados por la aplicación. No se garantiza el orden en el que los datos llegan al destinatario y es posible que los datos se pierdan. UDP es apropiado para las aplicaciones orientadas al registro. Presenta un período de latencia menor que el TCP. ICMP Protocolo de mensajes de control de Internet: Fundamentalmente, no se trata de un protocolo para el usuario final, sino de un protocolo especial de control que genera informes de errores y que controla el comportamiento de las máquinas que participan en la transferencia de datos mediante TCP/IP. Además, ofrece un modo especial de eco que se puede visualizar mediante el programa ping. IGMP Protocolo de gestión de grupos de Internet: Este protocolo controla el comportamiento de la máquina cuando se lleva a cabo la multidifusión de IP. Como se muestra en la Figura 38.1, “Modelo simplificado de capa para TCP/IP” (p. 605), el intercambio de datos se lleva a cabo en diferentes capas. La capa de red es la transferencia de datos insegura mediante IP (Protocolo de Internet). Además del IP, el TCP (protocolo de control de transmisión) garantiza, hasta cierto punto, la seguridad de la transferencia de datos. El protocolo subyacente que depende del hardware, como ethernet, admite la capa IP. 604 Figura 38.1 Modelo simplificado de capa para TCP/IP Host sun Host earth Capa de aplicaciones Aplicaciones Capa de aplicaciones Capa de transporte TCP, UDP Capa de transporte Capa de transporte IP Capa de transporte Capa de enlaces de datos Ethernet, FDDI, RDSI Capa de enlaces de datos Capa física Cable, fibra de vidrio Capa física = Transferencia de datos En el diagrama se ofrecen uno o dos ejemplos de cada capa. Las capas de ordenan de acuerdo con los niveles de abstracción. La capa inferior está íntimamente relacionada con el hardware. La capa superior, sin embargo, es casi una abstracción completa del hardware. Todas las capas tienen su propia función. Las funciones especiales de cada capa están en su mayoría implícitas en la descripción. El enlace a los datos y las capas físicas representan la red física utilizada, como ethernet. Casi todos los protocolos de hardware funcionan por paquetes. Los datos que se van a transmitir se agrupan por paquetes, porque no se pueden enviar todos de una vez. El tamaño máximo de un paquete TCP/IP es aproximadamente 64 KB. Los paquetes suelen ser bastante más pequeños porque el hardware de la red puede ser un factor restrictivo. El tamaño máximo de un paquete de datos en una ethernet es aproximadamente de cien bytes. El tamaño de un paquete TCP/IP está limitado a esta cantidad cuando los datos se envían por ethernet. Si se transfieren más datos, el sistema operativo tiene que enviar más paquetes de datos. Para que las capas cumplan las funciones designadas, se debe guardar más información relativa a cada capa en el paquete de datos. Esto se lleva a cabo en el encabezado del paquete. Cada capa añade un pequeño bloque de datos, denominado encabezado de protocolo, a la parte superior de cada paquete emergente. En la Figura 38.2, “Paquete Trabajo en red básico 605 Ethernet TCP/IP” (p. 606), se muestra un paquete de datos TCP/IP de muestra que se transmite por un cable ethernet. Esta suma de prueba se ubica al final del paquete, no al principio. Esto simplifica las cosas para el hardware de red. Figura 38.2 Paquete Ethernet TCP/IP Datos de uso (máximo 1460 bytes) (Capa 4) Encabezado de protocolo TCP (aprox. 20 bytes) (Capa 3) Encabezado de protocolo IP (aprox. 20 bytes) (Capa 2) Encabezado de protocolo (aprox. 14 bytes) Ethernet + suma de comprobación (2 bytes) Cuando una aplicación envía datos a través de la red, los datos pasan por cada capa, todos implementados en el núcleo de Linux excepto la capa física. Cada capa se encarga de preparar los datos de modo que se puedan pasar a la siguiente capa. La capa inferior es la responsable en último lugar de enviar los datos. El procedimiento entero se invierte cuando se reciben los datos. En cada capa, los encabezados del protocolo se eliminan de los datos transportados de arriba abajo. Finalmente, la capa de transporte se encarga de hacer que los datos estén disponibles para que las aplicaciones los utilicen en el destino. De este modo, una capa sólo se comunica con la inmediatamente superior o inferior. Para las aplicaciones, no es relevante si los datos se transmiten mediante una red FDDI de 100 MBit/s o mediante una línea de módem de 56 kbit/s. De forma similar, el tipo de datos que se transmite es irrelevante para la línea de datos, siempre que los paquetes tengan el formato correcto. 38.1 Direcciones IP y encaminamiento Esta sección está limitada a las redes IPv4. Para obtener información acerca del protocolo IPv6, sucesor de IPv4, consulte la Sección 38.2, “IPv6: Internet de la próxima generación” (p. 609). 606 38.1.1 Direcciones IP Cada equipo de Internet tiene una dirección única de 32 bits. Estos 32 bits (o 4 bytes) se escriben normalmente como se ilustra en la segunda fila del Ejemplo 38.1, “Escritura de direcciones IP” (p. 607). Ejemplo 38.1 Escritura de direcciones IP IP Address (binary): 11000000 10101000 00000000 00010100 IP Address (decimal): 192. 168. 0. 20 En formato decimal, los cuatro bytes se escriben en el sistema de numeración decimal, separados por puntos. La dirección IP se asigna a un host o a una interfaz de red. No se puede utilizar en ningún sitio más. Hay excepciones a esta regla, pero éstas no son relevantes en los siguientes pasajes. Los puntos de las direcciones IP indican el sistema jerárquico. Hasta 1990, las direcciones IP se clasificaban por clases de forma estricta. Sin embargo, se observó que este sistema era demasiado inflexible y se dejó de utilizar. Ahora se utiliza encaminamiento sin clase (CIDR, encaminamiento entre dominios sin clase). 38.1.2 Máscaras de red y encaminamiento Las máscaras de red se utilizan para definir el rango de direcciones de una subred. Si dos hosts se encuentran en la misma subred, pueden llegar el uno al otro directamente, si no se encuentran en la misma subred, necesitan la dirección de una gateway que gestione todo el tráfico entre la subred y el resto del mundo. Para comprobar si dos direcciones IP se encuentran en la misma subred, UNA ambas direcciones con la máscara de red.“” Si el resultado es el mismo, las dos direcciones IP se encuentran en la misma red local. Si hay diferencias, sólo será posible acceder a la dirección IP remota y, por tanto a la interfaz remota, a través de una gateway. Para entender cómo funciona la máscara de red, consulte el Ejemplo 38.2, “Enlace de direcciones IP a la máscara de red” (p. 608) La máscara de red consta de 32 bits que identifican qué parte de la dirección IP pertenece a la red. Todos los bits 1 marcan el bit correspondiente de la dirección IP como perteneciente a la red. Todos los bits 0 marcan los bits que se encuentran en la subred. Esto significa que cuantos más bits sean 1, menor será la subred. Como la máscara de red consta siempre de varios bits 1 sucesivos, también es posible contar sólo el número de bits de la máscara de red. En el Trabajo en red básico 607 Ejemplo 38.2, “Enlace de direcciones IP a la máscara de red” (p. 608), la primera red con 24 bits también se podría escribir como 192.168.0.0/24. Ejemplo 38.2 Enlace de direcciones IP a la máscara de red IP address (192.168.0.20): 11000000 10101000 00000000 00010100 Netmask (255.255.255.0): 11111111 11111111 11111111 00000000 --------------------------------------------------------------Result of the link: 11000000 10101000 00000000 00000000 In the decimal system: 192. 168. 0. 0 IP address (213.95.15.200): 11010101 10111111 00001111 11001000 Netmask (255.255.255.0): 11111111 11111111 11111111 00000000 --------------------------------------------------------------Result of the link: 11010101 10111111 00001111 00000000 In the decimal system: 213. 95. 15. 0 Éste es otro ejemplo: todas las máquinas conectadas con el mismo cable ethernet se ubican normalmente en la misma subred, y puede accederse a ellas directamente. Incluso aunque la subred esté físicamente dividida por conmutadores o bridges, es posible acceder a estos hosts directamente. Sólo se puede llegar a las direcciones IP externas a la subred local si se configura una gateway para la red de destino. Normalmente, sólo hay una gateway que gestiona todo el tráfico externo. Sin embargo, también es posible configurar varias gateways para subredes diferentes. Si se ha configurado una gateway, todos los paquetes IP externos se envían a la gateway apropiada. A continuación, esta gateway trata de enviar estos paquetes del mismo modo (de host a host), hasta que llega al host de destino o hasta que se agota el TTL ("tiempo de vida") del paquete. Tabla 38.2 Direcciones específicas Tipo de dirección Descripción Dirección de red bá- La máscara de red UNE las direcciones de la red, como se sica muestra en el Ejemplo 38.2, “Enlace de direcciones IP a la máscara de red” (p. 608) en Result. Esta dirección no se puede asignar a todos los hosts. Dirección de difusión 608 En general, esto significa “Acceder a todos los hosts de esta subred”. Para generar esto, la red se invierte en formato binario Tipo de dirección Descripción y se une a la dirección de red básica con un OR lógico. Por tanto, el ejemplo anterior da como resultado 192.168.0.255. Esta dirección no se puede asignar a todos los hosts. Host local La dirección 127.0.0.1 se asigna al “dispositivo de retrobucle” de cada host. Puede configurar una conexión en su propia máquina con esta dirección. Como las direcciones IP deben ser únicas en todo el mundo, no debe seleccionar sólo direcciones aleatorias. Si desea configurar una red privada basada en IP, puede utilizar tres dominios de direcciones. Éstos no obtienen ninguna conexión del resto de Internet, porque no se pueden transmitir por Internet. Estos dominios de direcciones se especifican en RFC 1597 y se enumeran en la Tabla 38.3, “Dominios de direcciones IP privadas” (p. 609). Tabla 38.3 Dominios de direcciones IP privadas Subred/Máscara de red Dominio 10.0.0.0/255.0.0.0 10.x.x.x 172.16.0.0/255.240.0.0 172.16.x.x – 172.31.x.x 192.168.0.0/255.255.0.0 192.168.x.x 38.2 IPv6: Internet de la próxima generación Debido al surgimiento de la WWW (World Wide Web), Internet ha crecido de forma fulminante con un número de equipos que se comunican mediante TCP/IP que durante los últimos quince años va en constante aumento. Desde que Tim Berners-Lee, del CERN, (http://public.web.cern.ch) inventó la WWW en 1990, el número de hosts de Internet ha crecido de unos cientos a cien millones aproximadamente. Trabajo en red básico 609 Como se ha mencionado, una dirección IPv4 consta sólo de 32 bits. Además, se pierden bastantes direcciones IP (que no se pueden utilizar debido al modo en que se organizan las redes). El número de direcciones disponibles en la subred es dos veces la capacidad del número de bits, menos dos. Una subred tiene, por ejemplo, 2, 6 ó 14 direcciones disponibles. Para conectar 128 hosts a Internet, por ejemplo, se necesita una subred con 256 direcciones IP, de las que son utilizables 254 porque se necesitan dos direcciones IP para la estructura de la subred en sí misma: la dirección de red básica y la dirección de difusión. En el protocolo IPv4 actual, DHCP o NAT (traducción de direcciones de red) son los mecanismos típicos utilizados para eludir la posible falta de direcciones. Combinados con la convención de mantener los espacios de las direcciones públicas y de las privadas separados, estos métodos pueden mitigar la falta. El problema reside en su configuración, que es una instalación ardua y una carga que mantener. Para configurar un host en una red IPv4, se necesitan varios elementos de direcciones, como la propia dirección IP del host, la subred, la dirección de gateway y quizás la dirección de un servidor de nombres. Todos estos elementos deben conocerse y no se pueden derivar de ningún otro sitio. Con IPv6, tanto la falta de direcciones como la configuración complicada se relegan al pasado. En las siguientes secciones se ofrece más información acerca de las mejoras y ventajas que ofrece IPv6 y acerca de la transición del protocolo antiguo al nuevo. 38.2.1 Ventajas La mejora más importante y más visible que ofrece el protocolo nuevo es la enorme ampliación del espacio de direcciones disponible. Una dirección IPv6 está formada por valores de 128 bits en lugar de los 32 bits tradicionales. Esto proporciona varios cuatrillones de direcciones IP. Sin embargo, las direcciones IPv6 no son diferentes de sus predecesoras en cuanto a la longitud. También tienen una estructura interna diferente que puede contener más información específica acerca de los sistemas y de las redes a las que pertenecen. En la Sección 38.2.2, “Tipos de direcciones y estructura” (p. 612) encontrará más información acerca de esto. A continuación, se muestra una lista con algunas otras ventajas del nuevo protocolo: 610 Configuración automática IPv6 proporciona a la red una capacidad “plug and play”, lo que significa que un sistema configurado recientemente se integra en la red local sin que haya que configurarlo de forma manual. El host nuevo utiliza el mecanismo de configuración automática para extraer su propia dirección a partir de la información que los routers vecinos ponen a su disposición, mediante un protocolo denominado protocolo ND descubrimiento de vecino. Este método no requiere intervención por parte del administrador y no es necesario mantener un servidor central para asignar direcciones (una ventaja adicional respecto al IPv4), donde la asignación automática de direcciones requiere un servidor DHCP. Movilidad IPv6 hace posible asignar varias direcciones a una interfaz de red al mismo tiempo. Esto permite a los usuarios acceder a varias redes fácilmente, algo que podría compararse con los servicios internacionales de itinerancia que ofrecen las compañías de telefonía móvil: si lleva el teléfono móvil al extranjero, el teléfono se registra en un servicio de dicho país en cuanto entra en el área correspondiente, de modo que podrá llamar y recibir llamadas desde el mismo número en todas partes, como si estuviera en su país. Comunicación segura Con IPv4, la seguridad de la red es una función complementaria. IPv6 incluye IPSec como una de sus funciones principales, lo que permite que los sistemas se comuniquen a través de un túnel de seguridad para evitar que los intrusos vean la información en Internet. Compatibilidad inversa Para ser realistas, sería imposible cambiar todo Internet de IPv4 a IPv6 a la vez. Por tanto, es fundamental que los dos protocolos puedan coexistir no sólo en Internet, sino también en un sistema. Esto se garantiza con direcciones compatibles (las direcciones IPv4 se pueden traducir en direcciones IPv6) y con el uso de varios túneles. Consulte la Sección 38.2.3, “Coexistencia de IPv4 y IPv6” (p. 616). Además, los sistemas se pueden basar en una técnica de IP de stack dual para admitir los dos protocolos al mismo tiempo, lo que significa que tienen dos stacks de red completamente separados, de modo que no hay interferencias entre las dos versiones del protocolo. Servicios personalizados mediante multidifusión Con IPv4, algunos servicios como MIB tienen que difundir los paquetes a todos los hosts de la red local. IPv6 permite un enfoque mucho más preciso al habilitar los Trabajo en red básico 611 servidores para dirigirse a los hosts mediante la multidifusión, es decir, llegando a varios hosts como partes de un grupo (lo que es diferente de llegar a todos a través de la difusión o a cada host por separado a través de la monodifusión). Los hosts a los que se llega como grupo pueden depender de la aplicación en concreto. Hay algunos grupos predefinidos para llegar a todos los servidores de nombres (el grupo de multidifusión a todos los servidores de nombres), por ejemplo, o a todos los routers (el grupo de multidifusión a todos los routers). 38.2.2 Tipos de direcciones y estructura Como ya se ha mencionado, el protocolo IP actual tiene dos deficiencias importantes: cada vez faltan más direcciones IP y la configuración de la red y el mantenimiento de las tablas de encaminamiento son tareas cada vez más complejas y costosas. IPv6 soluciona el primer problema ampliando el espacio de las direcciones hasta 128 bits. El segundo se contrarresta introduciendo una estructura jerárquica de direcciones, combinada con sofisticadas técnicas para asignar direcciones de red, además de multinodo (capacidad de asignar varias direcciones a un dispositivo, lo que proporciona acceso a varias redes). Al utilizar IPv6, resulta útil conocer tres tipos de direcciones diferentes: Monodifusión Las direcciones de este tipo se asocian exactamente a una interfaz de red. Los paquetes con una dirección de este tipo se entregan sólo a un destino. Por tanto, las direcciones de monodifusión se utilizan para transferir paquetes a hosts por separado en la red local o en Internet. Multidifusión Las direcciones de este tipo están relacionadas con un grupo de interfaces de red. Los paquetes con direcciones de ese tipo se entregan en todos los destinos que pertenecen al grupo. Las direcciones de multidifusión las utilizan principalmente algunos servicios de red para comunicarse con ciertos grupos de hosts de una forma precisa. Cualquier difusión Las direcciones de este tipo están relacionadas con un grupo de interfaces. Los paquetes con una dirección de ese tipo se entregan al miembro del grupo más cercano al remitente, de acuerdo con los principios del protocolo subyacente de encaminamiento. Las direcciones de cualquier difusión se utilizan para facilitar que los hosts encuentren servidores que ofrezcan ciertos servicios en el área de red en cuestión. 612 Todos los servidores del mismo tipo tienen la misma dirección de cualquier difusión. Siempre que un host solicita un servicio, recibe una respuesta del servidor más cercano, como determina el protocolo de encaminamiento. Si por algún motivo el servidor fallara, el protocolo selecciona de forma automática el segundo servidor más cercano, a continuación, el tercero, etc. Una dirección IPv6 está formada por ocho campos de cuatro dígitos, cada uno de los cuales representa 16 bits escritos en notación hexadecimal. También se separan mediante dos puntos (:). Los bytes de ceros situados al principio de un campo se pueden eliminar, pero los ceros del campo o del final, no. Otra convención es que más de cuatro bytes consecutivos de ceros se pueden colapsar en dos signos de dos puntos. Sin embargo, sólo se permite :: por dirección. Este tipo de notación abreviada se muestra en el Ejemplo 38.3, “Dirección IPv6 de muestra” (p. 613), donde las tres líneas representan la misma dirección. Ejemplo 38.3 Dirección IPv6 de muestra fe80 : 0000 : 0000 : 0000 : 0000 : 10 : 1000 : 1a4 fe80 : 0 : 0 : 0 : 0 : 10 : 1000 : 1a4 fe80 : : 10 : 1000 : 1a4 Cada parte de una dirección IPv6 tiene una función definida. Los primeros bytes forman el prefijo y especifican el tipo de dirección. La parte central es la parte de red de la dirección, pero puede no utilizarse. El final de la dirección forma la parte del host. Con IPv6, la máscara de red se define indicando la longitud del prefijo después de una barra al final de la dirección. Una dirección, como se muestra en el Ejemplo 38.4, “Dirección IPv6 encargada de especificar la longitud del prefijo” (p. 613), contiene información para que los primeros 64 bits formen la parte de red de la dirección y para que los últimos 64 formen la parte del host. En otras palabras, el 64 significa que la máscara de red se rellena con 64 valores de 1 bit de izquierda a derecha. Al igual que sucede con IPv4, la dirección IP se combina con AND con los valores de la máscara de red para determinar si el host se ubica en la misma red o en otra. Ejemplo 38.4 Dirección IPv6 encargada de especificar la longitud del prefijo fe80::10:1000:1a4/64 IPv6 reconoce varios tipos predefinidos de prefijos. Algunos de ellos se muestran en la Tabla 38.4, “Varios prefijos IPv6” (p. 614). Trabajo en red básico 613 Tabla 38.4 Varios prefijos IPv6 Prefijo (hex.) Definición 00 Direcciones de compatibilidad para direcciones IPv4 y para direcciones IPv4 sobre IPv6. Éstas se utilizan para mantener la compatibilidad con IPv4, pero, para utilizarlas, sigue siendo necesario un router con capacidad para traducir paquetes IPv6 en paquetes IPv4. Varias direcciones especiales, como la del dispositivo de retrobucle, también tienen este prefijo. 2 ó 3 como primer dígito Direcciones globales de monodifusión agregables. Como sucede con IPv4, se puede asignar una interfaz para que forme parte de una cierta subred. Actualmente, existen los siguientes espacios de direcciones: 2001::/16 (espacio de dirección de calidad de producción) y 2002::/16 (espacio de direcciones 6to4). fe80::/10 Direcciones locales de enlace. Las direcciones con este prefijo no deberían encaminarse y, por tanto, sólo se debería llegar a ellas desde la misma subred. fec0::/10 Direcciones locales de sitio. Éstas se pueden encaminar, pero sólo en la red de la organización a la que pertenecen. En efecto, son el equivalente de IPv6 del espacio actual de direcciones de red privada, como 10.x.x.x. ff Éstas son direcciones de multidifusión. Una dirección de monodifusión consta de tres componentes básicos: Topología pública La primera parte (que contiene también uno de los prefijos mencionados anteriormente) se utiliza para encaminar paquetes a través de Internet. Incluye información acerca de la compañía o de la institución que proporciona el acceso a Internet. Topología del sitio La segunda parte contiene información de encaminamiento acerca de la subred en la que se va a entregar el paquete. 614 ID de interfaz La tercera parte identifica la interfaz en la que se va a entregar el paquete. Esto también permite que el identificador MAC forme parte de la dirección. Como el MAC es un identificador único y flexible codificado en el dispositivo por el fabricante de hardware, el procedimiento de configuración se simplifica de forma sustancial. De hecho, los primeros 64 bits de las direcciones se consolidan para formar el testigo EUI-64. De ellos, los últimos 48 bits se toman del MAC y los 24 restantes contienen información especial acerca del tipo de testigo. Esto también hace que sea posible asignar un testigo EUI-64 a las interfaces que no disponen de un MAC, como las basadas en PPP o en RDSI. Además de esta estructura básica, IPv6 distingue entre cinco tipos diferentes de direcciones de monodifusión: :: (no especificada) El host utiliza esta dirección como dirección de origen cuando la interfaz se inicializa por primera vez, cuando la dirección no se puede determinar por otros medios. ::1 (retrobucle) Dirección del dispositivo de retrobucle. Direcciones compatibles con IPv4 La dirección IPv6 está formada por la dirección IPv4 y un prefijo que consiste en 96 bits cero. Este tipo de dirección de compatibilidad se utiliza para formar túneles (consulte la Sección 38.2.3, “Coexistencia de IPv4 y IPv6” (p. 616)) para permitir que los hosts IPv4 y IPv6 se comuniquen con otros que funcionan en un entorno IPv4 puro. Direcciones IPv4 asignadas a IPv6 Este tipo de dirección especifica una dirección IPv4 pura en notación IPv6. Direcciones locales Éstos son dos tipos de direcciones para uso local: local de enlace Este tipo de dirección sólo se puede utilizar en la subred local. Los paquetes con una dirección de origen o de destino de este tipo no deberían encaminarse a Internet ni a otras subredes. Estas direcciones contienen un prefijo especial (fe80::/10) y el ID de interfaz de la tarjeta de red, cuya parte central consiste en bytes ceros. Las direcciones de este tipo se utilizan durante la configuración automática para comunicarse con otros hosts que pertenecen a la misma subred. Trabajo en red básico 615 local de sitio Los paquetes que tienen este tipo de dirección se pueden encaminar a otras subredes, pero no a Internet: deben permanecer dentro de la propia red de la organización. Dichas direcciones se utilizan para las intrarredes y son un equivalente del espacio de direcciones privadas definido por IPv4. Contienen un prefijo especial (fec0::/10), el ID de interfaz y un campo de 16 bits que especifica el ID de subred. De nuevo, el resto se rellena con bytes ceros. IPv6 introduce una función completamente nueva que consiste en que cada interfaz de red consigue normalmente varias direcciones IP, con la ventaja de que se puede acceder a varias redes a través de la misma interfaz. Una de estas redes se puede configurar de forma completamente automática mediante el MAC y un prefijo conocido que hace que se pueda llegar a todos los hosts de la red local en cuanto se habilita IPv6 (mediante la dirección local de enlace). Cuando el MAC forma parte de la dirección, ésta es única en el mundo. Las únicas partes variables de la dirección son las que especifican la topología del sitio y la topología pública, en función de la red en la que funcione el host. Para que un host retroceda y avance entre redes diferentes, necesita al menos dos direcciones. Una de ellas, la dirección personal, no sólo contiene el ID de interfaz, sino también un identificador de la red personal a la que pertenece normalmente (y el prefijo correspondiente). La dirección personal es una dirección estática y, como tal, no suele cambiar. Aún así, todos los paquetes destinados al host móvil se le pueden entregar, independientemente de si funciona en la red personal o fuera de ella. Esto es posible gracias a las funciones completamente nuevas introducidas con IPv6 como la configuración automática sin estado y el descubrimiento de vecino. Además de la dirección personal, un host móvil consigue una o varias direcciones adicionales que pertenecen a las redes externas en las que está en itinerancia. Éstas se denominan direcciones de auxilio. La red personal tiene un componente que envía los paquetes destinados al host cuando está en itinerancia. En un entorno IPv6, esta tarea la lleva a cabo el agente personal, que lleva todos los paquetes destinados a la dirección personal y los transmite a través de un túnel. Por otro lado, los paquetes destinados a la dirección de auxilio se transfieren directamente al host móvil sin ninguna desviación especial. 38.2.3 Coexistencia de IPv4 y IPv6 La migración de todos los hosts conectados a Internet de IPv4 a IPv6 es un proceso gradual. Los dos protocolos coexistirán durante algún tiempo. La coexistencia en un sistema se garantiza donde se produce una implementación de stack dual en los dos protocolos. Aún queda pendiente la cuestión de cómo debería comunicarse un host ha- 616 bilitado con IPv6 con un host IPv4 y cómo deberían transportarse los paquetes IPv6 por las redes actuales, que normalmente están basadas en IPv4. Las mejores soluciones ofrecen túneles y direcciones de compatibilidad (consulte la Sección 38.2.2, “Tipos de direcciones y estructura” (p. 612)). Los hosts IPv6 más o menos aislados en la red (mundial) IPv4 se pueden comunicar a través de túneles: Los paquetes IPv6 se agrupan como paquetes IPv4 para desplazarlos a través de una red IPv4. Dicha conexión entre dos hosts IPv4 se denomina túnel. Para lograrlo, los paquetes deben incluir la dirección de destino IPv6 (o el prefijo correspondiente) y la dirección IPv4 del host remoto situado en el extremo receptor del túnel. Un túnel básico se puede configurar de forma manual con un acuerdo entre administradores de los hosts. También se denomina túnel estático. Sin embargo, la configuración y el mantenimiento de los túneles estáticos suelen llevar demasiado trabajo como para utilizarlos en la comunicación diaria. Por tanto, IPv6 proporciona tres métodos diferentes de túnel dinámico: 6over4 Los paquetes IPv6 se agrupan de forma automática como paquetes IPv4 y se envían a través de una red IPv4 con capacidad de multidifusión. IPv6 se truca para ver la red entera (Internet) como una red de área local enorme (LAN). Esto hace posible determinar el extremo receptor del túnel IPv4 de forma automática. Sin embargo, el proceso de escalación de este método no es demasiado sencillo y se ve dificultado por el hecho de que la difusión múltiple IP está poco extendida en Internet. Por tanto, sólo proporciona una solución para redes corporativas o institucionales más pequeñas en las que se puede habilitar la multidifusión. Las especificaciones para este método se exponen en RFC 2529. 6to4 Con este método, las direcciones IPv4 se generan de forma automática a partir de direcciones IPv6, lo que permite a los hosts IPv6 comunicarse a través de una red IPv4. Sin embargo, se han detectado varios problemas relativos a la comunicación entre hosts IPv6 aislados e Internet. El método se describe en RFC 3056. Tunnel Broker para IPv6 Este método se lleva a cabo en servidores especiales que proporcionan túneles específicos para los hosts IPv6. Se describe en RFC 3053. Trabajo en red básico 617 IMPORTANTE: Iniciativa 6bone Como vestigio del “antiguo” Internet, ya existe una red distribuida en todo el mundo de subredes IPv6 conectadas mediante túneles. Ésta es la red 6bone (http://www.6bone.net), un entorno de prueba IPv6 que los programadores y los proveedores de Internet pueden utilizar para desarrollar y ofrecer servicios basados en IPv6 y adquirir la experiencia necesaria para implementar el nuevo protocolo. Encontará más información en el sitio de Internet del proyecto. 38.2.4 Configuración de IPv6 Para configurar IPv6, normalmente no es necesario realizar cambios en cada estación de trabajo. Sin embargo, se debe cargar la compatibilidad con IPv6. Para hacerlo, introduzca modprobe ipv6 como root. Gracias al concepto de configuración automática de IPv6, a la tarjeta de red se le asigna una dirección en la red local de enlace. Normalmente, en las estaciones de trabajo no se lleva a cabo la gestión de tablas de encaminamiento. La estación de trabajo puede consultar a los routers de red, mediante el protocolo de anuncio de servicios, qué prefijo y gateways deberían implementarse. El programa radvd se puede utilizar para configurar un router IPv6. Este programa informa a las estaciones de trabajo acerca de qué prefijo y qué routers se deben utilizar para las direcciones IPv6. Como alternativa, utilice zebra para la configuración automática de las direcciones y del encaminamiento. Consulte la página Man de ifup(8) para obtener información acerca de cómo configurar varios tipos de túneles mediante los archivos /etc/sysconfig/network. 38.2.5 Información adicional La descripción anterior no explica el IPv6 exhaustivamente. Para obtener información más detallada acerca del nuevo protocolo, consulte la siguiente documentación en línea y los siguientes libros: http://www.ngnet.it/e/cosa-ipv6.php Serie de artículos que proporciona una introducción bien escrita a los aspectos fundamentales de IPv6. Buen manual para obtener las nociones básicas. 618 http://www.bieringer.de/linux/IPv6/ Aquí encontrará la ayuda de Linux IPv6 y muchos enlaces relacionados con el tema. http://www.6bone.net/ Visite este sitio si desea entrar a formar parte de una red IPv6 con túneles. http://www.ipv6.org/ Punto de partida para todo lo relacionado con IPv6. RFC 2640 RFC fundamental acerca de IPv6. IPv6 Essentials Un libro que describe todos los aspectos importantes del asunto es IPv6 Essentials, escrito por Silvia Hagen (ISBN 0-596-00125-8). 38.3 Resolución de nombres DNS ayuda a asignar una dirección IP a uno o varios nombres y a asignar un nombre a una dirección IP. En Linux, esta conversión la suele llevar a cabo un tipo especial de software denominado "Bind". La máquina que se encarga de esta conversión se denomina servidor de nombres. Los nombres forman un sistema jerárquico en el que el componente de cada nombre se separa mediante puntos. La jerarquía de nombres es, sin embargo, independiente de la jerarquía de direcciones IP descrita anteriormente. Tomemos como ejemplo un nombre completo, como earth.example.com, escrito en formato hostname.domain. Un nombre completo, denominado FDQN (Nombre de dominio completo), consta de un nombre de host y un nombre de dominio (example.com). El último incluye también el dominio de nivel superior o TLD (com). Por razones históricas, la asignación de TLD se ha convertido en algo bastante confuso. Tradicionalmente, los nombres de dominios de tres letras se utilizan en EE.UU. En el resto del mundo, el estándar son los códigos nacionales ISO de dos letras. Además de esto, en 2000 se introdujeron TLDs mayores que representan ciertas esferas de actividad (por ejemplo, .info, .name, .museum). En los comienzos de Internet (antes de 1990), el archivo /etc/hosts se utilizó para almacenar los nombres de todas las máquinas representadas en Internet. Esto resultó ser poco práctico debido al creciente número de equipos conectados a Internet. Por esta Trabajo en red básico 619 razón, se desarrolló una base de datos descentralizada para almacenar los nombres de hosts de un modo ampliamente distribuido. Esta base de datos, similar al servidor de nombres, no tiene los datos que pertenecen a todos los hosts de Internet disponibles, pero puede enviar peticiones a otros servidores de nombres. La parte superior de la jerarquía la ocupan los servidores de nombres de root. Estos servidores de nombres de root gestionan los dominios del nivel superior y se ejecutan en el NIC (Centro de información de red). Cada servidor de nombres de root reconoce los servidores de nombres encargados de un dominio de nivel superior dado. La información acerca de los NIC de dominios de nivel superior está disponible en la dirección http://www.internic.net. DNS puede hacer más que simplemente resolver nombres de host. El servidor de nombres también reconoce qué host recibe mensajes de correo electrónico para un dominio entero (intercambiador de correo (MX). Para que la máquina resuelva una dirección IP, debe reconocer al menos un servidor de nombres y sus direcciones IP. Especifique de forma sencilla un servidor de nombres con la ayuda de YaST. Si dispone de una conexión de marcación por módem, puede que no tenga que configurar un servidor de nombres de forma manual. El protocolo de marcación proporciona la dirección del servidor de nombres a medida que se realiza la conexión. La configuración del acceso del servidor de nombres con SUSE Linux se describe en el Capítulo 40, DNS (Domain Name System) (p. 651). El protocolo whois está íntimamente relacionado con DNS. Con este programa, encontrará rápidamente quién es el responsable de un dominio en cuestión. 38.4 Configuración de una conexión de red con YaST Linux es compatible con muchos tipos de red. La mayoría utiliza nombres de dispositivo diferentes y sus archivos de configuración están repartidos por diferentes ubicaciones del sistema de archivos. Para ver una descripción general de los diferentes aspectos de la configuración manual de redes, consulte la Sección 38.5, “Configuración manual de una conexión de red” (p. 631). Durante la instalación, se puede utilizar YaST para configurar automáticamente todas las interfaces que se hayan detectado. El resto del hardware se puede configurar en 620 cualquier momento después de instalarlo en el sistema instalado. En las siguientes secciones se describe la configuración de la red para todos los tipos de conexiones de red admitidos por SUSE Linux. 38.4.1 Configuración de la tarjeta de red con YaST Después de iniciar el módulo, YaST muestra un cuadro de diálogo de configuración general de la red. La parte superior muestra una lista de las tarjetas de red que aún no se han configurado. Las tarjetas de red detectadas correctamente aparecen con su nombre. Los dispositivos que no se han podido detectar pueden configurarse con Otro (no detectado) tal y como se describe en la “Configuración manual de una tarjeta de red no detectada” (p. 621). En la parte inferior, el cuadro de diálogo muestra una lista de los dispositivos configurados hasta el momento, con su tipo de red y su dirección. En este punto se puede configurar una nueva tarjeta de red o modificar una configuración existente. Configuración manual de una tarjeta de red no detectada La configuración de una tarjeta de red que no se ha detectado (mostrada como Otro) incluye los elementos siguientes: Configuración de red Seleccione el tipo de dispositivo de la interfaz entre las opciones disponibles y establezca el nombre de la configuración. Encontrará información sobre las convenciones de nomenclatura de los nombres de configuración en la página Man de getcfg(8). Módulo del núcleo Nombre de la configuración de hardware especifica el nombre del archivo /etc/ sysconfig/hardware/hwcfg-* que contiene los ajustes de hardware de la tarjeta de red. En él se indica el nombre del módulo del núcleo adecuado así como las opciones necesarias para inicializar el hardware. Normalmente, YaST sugiere nombres útiles para hardware PCMCIA y USB. Para el resto de hardware, hwcfg-static-0 sólo tiene sentido si la tarjeta se ha configurado con el nombre de configuración 0. Trabajo en red básico 621 Si la tarjeta de red es un dispositivo PCMCIA o USB, active las casillas de verificación correspondientes y salga del cuadro de diálogo mediante Siguiente. En caso contrario, seleccione el modelo de la tarjeta de red con Seleccionar de la lista. YaST seleccionará automáticamente el módulo del núcleo adecuado para la tarjeta. Salga del cuadro de diálogo mediante Siguiente. Figura 38.3 Configuración de la tarjeta de red Configuración de la dirección de red Seleccione el tipo de dispositivo de la interfaz y establezca el nombre de la configuración. Seleccione el tipo de dispositivo entre los ofrecidos. Especifique un nombre de configuración según sus necesidades. No obstante, los ajustes por defecto sirven y se pueden aceptar. Encontrará información sobre las convenciones de nomenclatura de los nombres de configuración en la página Man de getcfg(8). Si ha seleccionado Wireless (Inalámbrico) como tipo de dispositivo de la interfaz, configure el modo de funcionamiento, el nombre de la red (ESSID) y el cifrado en el siguiente cuadro de diálogo, Configuración de la tarjeta de red inalámbrica. Haga clic en Aceptar para completar la configuración de la tarjeta. En la Sección 22.1.3, “Configuración con YaST” (p. 318) se ofrece una descripción detallada de la configuración de 622 tarjetas WLAN. Para los demás tipos de interfaz, continúe con la configuración de la dirección de red: Automatic Address Setup (via DHCP) (Configuración automática de direcciones [mediante DHCP]) Si la red cuenta con un servidor DHCP, puede delegar en él la configuración automática de la dirección de red. También se debe seleccionar esta opción si se utiliza una línea DSL pero el ISP no le asigna una IP estática. Si decide utilizar DHCP, seleccione Opciones del cliente DHCP y configure los detalles. Especifique si el servidor DHCP debería responder siempre a las peticiones y el identificador que debe utilizarse. Por defecto, los servidores DHCP utilizan la dirección de hardware de la tarjeta para identificar una interfaz. Si existe una configuración de host virtual en la que varios hosts se comunican por medio de la misma interfaz, será necesario un identificador para distinguirlos. Configuración de la dirección estática Si dispone de una dirección estática, habilite esta opción. A continuación, introduzca la dirección y la máscara de subred de la red. La máscara de subred predefinida suele ser adecuada para las necesidades de una red doméstica típica. Abandone el cuadro de diálogo seleccionando Siguiente o continúe con la configuración del nombre de host, del servidor de nombres y de los detalles de encaminamiento (consulte la Servidor DNS (↑Inicio) y la Encaminamiento (↑Inicio)). Avanzado permite especificar ajustes más complejos. En Detailed Settings (Configuración detallada), utilice User Controlled (Controlada por el usuario) para delegar el control de la tarjeta de red del administrador (usuario root) en el usuario normal. En movilidad, esto permite que el usuario se adapte a los cambios en las conexiones de red de una manera más flexible, ya que puede controlar la activación y la desactivación de la interfaz. En este cuadro de diálogo también pueden establecerse la MTU (Unidad máxima de transmisión) y el tipo de Activación del dispositivo. 38.4.2 Módem En el Centro de control de YaST, acceda a la configuración del módem en Dispositivos de red. Si el módem no se ha detectado automáticamente, abra el cuadro de diálogo de configuración manual. En el cuadro de diálogo que se abrirá, introduzca la interfaz a la que está conectado el módem en Módem. Trabajo en red básico 623 Figura 38.4 Configuración del módem Si le suministra el servicio una central telefónica (PBX), es posible que sea necesario introducir un prefijo de marcado. A menudo, se trata de un cero. Consulte las instrucciones de la PBX para averiguarlo. Seleccione también si se utilizará marcado por tonos o por impulsos, si el altavoz debe estar conectado y si el módem debe esperar hasta que detecte el tono de marcado. No debe habilitarse esta última opción si el módem está conectado a una central telefónica. En Detalles, establezca la velocidad en baudios y las cadenas de inicialización del módem. Cambie estos ajustes sólo si el módem no se ha detectado automáticamente o si son necesarios ajustes especiales para que funcione la transmisión de datos. Éste es en general el caso de los adaptadores de terminal RDSI. Salga del cuadro de diálogo haciendo clic en Aceptar. Para delegar el control del módem en el usuario normal sin permisos de usuario root, active Controlado por el usuario. Así, un usuario sin permisos de administrador puede activar y desactivar la interfaz. En Expresión regular para el prefijo de marcado, especifique una expresión regular. El Prefijo de marcado de KInternet, que puede ser modificado por el usuario, debe coincidir con esta expresión regular. Si el campo se deja vacío, el usuario no podrá definir otro Prefijo de marcado sin permisos de administrador. En el siguiente cuadro de diálogo, seleccione el ISP (Internet service provider) (Proveedor de servicios de Internet). Para elegirlo en una lista predefinida de IPS que opere en 624 su país, seleccione País. Como alternativa, haga clic en Nuevo para abrir un cuadro de diálogo e introducir los datos de su ISP. Esto incluye un nombre para la conexión de acceso telefónico y el ISP, además del nombre de usuario y la contraseña proporcionados por el ISP. Habilite Pedir siempre la contraseña para que se pida siempre la contraseña al conectar. En el último cuadro de diálogo, especifique las opciones de conexión adicionales. Llamada bajo demanda Si habilita la llamada bajo demanda, establezca al menos un servidor de nombres. Modificar DNS si conectado Esta opción se encuentra habilitada por defecto; como resultado, la dirección del servidor de nombres se actualiza cada vez que se realiza la conexión a Internet. Obtención automática de DNS Si el proveedor no transmite su servidor de nombres de dominio al conectar, desactive esta opción e introduzca manualmente los datos del DNS. Modo estúpido Esta opción está habilitada por defecto. Con ella, no se tienen en cuenta los indicadores de entrada enviados por el servidor del ISP para evitar que interfieran con el proceso de conexión. Interfaz externa del cortafuegos y Reiniciar cortafuegos La selección de estas opciones habilita SUSEfirewall2, el cual ofrece protección ante ataques externos durante la conexión a Internet. Tiempo de inactividad (segundos) Especifique mediante esta opción el periodo de inactividad de la red tras el cual el módem se desconectará automáticamente. IP Details (Detalles IP) Esto abre el cuadro de diálogo de configuración de la dirección. Si el ISP no asigna una dirección IP dinámica al host, deshabilite Dirección IP dinámica e introduzca la dirección IP del host local y la dirección IP remota. Solicite esta información al ISP. Deje Ruta predeterminada habilitada y cierre el cuadro de diálogo seleccionando Aceptar. Con Siguiente se vuelve al cuadro de diálogo original, que muestra un resumen de la configuración del módem. Cierre el cuadro de diálogo con Finalizar. Trabajo en red básico 625 38.4.3 RDSI Este módulo se utiliza para configurar una o varias tarjetas RDSI para el sistema. Si YaST no ha detectado la tarjeta RDSI, selecciónela manualmente. Son posibles múltiples interfaces, pero se pueden configurar varios ISP para una interfaz. En los cuadros de diálogo siguientes, establezca las opciones RDSI necesarias para el funcionamiento adecuado de la tarjeta. Figura 38.5 Configuración de RDSI En el siguiente cuadro de diálogo, que se muestra en la Figura 38.5, “Configuración de RDSI” (p. 626), seleccione el protocolo que se utilizará. La opción por defecto es EuroISDN (EDSS1), pero para centrales grandes o antiguas, seleccione 1TR6. Si se encuentra en los Estados Unidos, seleccione NI1. Seleccione su país en el campo correspondiente. El código del país aparecerá en el campo adyacente. Por último, introduzca el Prefijo y el Prefijo de marcado si es necesario. Modo de inicio define cómo debe iniciarse la interfaz RDSI: Durante el arranque hace que el controlador RDSI se inicialice cada vez que arranque el sistema. Manualmente le solicita que cargue el controlador RDSI como usuario root mediante el comando rcisdn start. Hotplug, que se utiliza para dispositivos PCMCIA y USB, carga el controlador al enchufar el dispositivo. Cuando haya terminado con los ajustes, seleccione Aceptar. 626 En el siguiente cuadro de diálogo, especifique el tipo de interfaz de la tarjeta RDSI y añada ISP a una interfaz existente. Las interfaces pueden ser del tipo SyncPPP o RawIP, pero la mayoría de los ISP trabajan con el modo SyncPPP, que se describe a continuación. Figura 38.6 Configuración de la interfaz RDSI El número que hay que introducir en Mi número de teléfono depende de cada configuración concreta: Tarjeta RDSI conectada directamente a la toma de teléfono Una línea RDSI estándar ofrece tres números de teléfono (los llamados números múltiples de suscriptor o MSN). Si el suscriptor solicitó más, pueden ser hasta 10. En este campo debe introducirse uno de estos MSN, pero sin el prefijo. Si se introduce un número incorrecto, el operador de telefonía volverá automáticamente al primer MSN asignado a la línea RDSI. Tarjeta RDSI conectada a una central telefónica De nuevo, la configuración puede variar en función de los equipos instalados: 1. Las centrales telefónicas pequeñas diseñadas para uso doméstico utilizan en su mayoría el protocolo Euro-ISDN (EDSS1) para las llamadas internas. Estas centrales tienen un bus S0 interno y utilizan números internos para los equipos conectados a ellas. Trabajo en red básico 627 Utilice uno de los números internos como MSN. Debería poder utilizar al menos uno de los MSN de la central que se hayan habilitado para el marcado directo al exterior. Si no funciona, inténtelo con un único cero. Para obtener más información, consulte la documentación de la central. 2. Las centrales telefónicas grandes diseñadas para empresas utilizan normalmente el protocolo 1TR6 para las llamadas internas. Su MSN se llama EAZ y normalmente corresponde al número de marcación directa. Para la configuración en Linux, debería ser suficiente introducir el último número del EAZ. Como último recurso, vaya intentando con los dígitos del 1 al 9. Para que la conexión finalice justo antes de que se cargue la siguiente unidad de pago, habilite ChargeHUP (ChargeHUP). No obstante, recuerde que quizá no funcione con todos los ISP. También puede habilitar la unión de canales (multilink PPP) seleccionando la opción correspondiente. Finalmente, puede habilitar SuSEfirewall2 para el enlace seleccionando Interfaz externa del cortafuegos y Reiniciar cortafuegos. Para permitir que el usuario normal sin permisos de administrador active y desactive la interfaz, seleccione Controlado por el usuario. Detalles abre un cuadro de diálogo en el que se pueden implementar esquemas de conexión más complejos, que no son importantes para usos domésticos. Salga del cuadro de diálogo Detalles seleccionando Aceptar. En el siguiente cuadro de diálogo, realice los ajustes de la dirección IP. Si el proveedor no le ha suministrado una dirección IP estática, seleccione Dirección IP dinámica. De lo contrario, utilice los campos que aparecen para introducir la dirección IP del host local y la dirección IP remota, de acuerdo con las indicaciones del ISP. Si la interfaz debe ser la vía a Internet por defecto, seleccione Ruta predeterminada. Cada host sólo puede tener una interfaz configurada como vía por defecto. Salga del cuadro de diálogo seleccionando Siguiente. El siguiente cuadro de diálogo permite establecer el país y seleccionar un ISP. Los ISP incluidos en la lista son sólo proveedores que ofrecen servicios de cobro por llamada. Si su ISP no se encuentra en la lista, seleccione Nuevo. Se abrirá el cuadro de diálogo Parámetros del proveedor en el que se introducen los datos del ISP. Al introducir el número de teléfono, no incluya espacios ni comas entre los dígitos. Para terminar, introduzca el nombre de usuario y la contraseña proporcionados por el ISP. Cuando acabe, seleccione Siguiente. 628 Para utilizar Llamada bajo demanda en una estación de trabajo independiente, especifique también el servidor de nombres (servidor DNS). La mayoría de los ISP admiten DNS dinámico, lo que significa que el ISP envía la dirección IP del servidor de nombres cada vez que se realiza la conexión. Para una única estación de trabajo, sin embargo, sigue siendo necesario introducir una dirección cualquiera, por ejemplo 192.168.22.99. Si el ISP no admite DNS dinámico, especifique las direcciones IP de los servidores de nombres del ISP. Si lo desea, especifique un tiempo límite para la conexión (el periodo de inactividad de la red [en segundos] tras el cual la conexión finalizará automáticamente). Confirme sus ajustes con Siguiente. YaST mostrará un resumen de las interfaces configuradas. Para activar todos los ajustes, seleccione Finalizar. 38.4.4 Módem de cable En algunos países, como Austria o los Estados Unidos, es muy común acceder a Internet por medio de la red de televisión por cable. El suscriptor de la televisión por cable recibe normalmente un módem que se conecta a la toma de salida del cable de televisión por un extremo y a la tarjeta de red del ordenador por el otro (mediante un cable de par trenzado 10Base-TG). El módem de cable proporciona entonces una conexión dedicada a Internet con una dirección IP fija. En función de las instrucciones proporcionadas por el ISP, seleccione Automatic Address Setup (via DHCP) (Configuración automática de direcciones [mediante DHCP]) o bien Configuración de la dirección estática cuando configure la tarjeta de red. Hoy en día, la mayoría de los proveedores utilizan DHCP. La dirección IP fija suele formar parte de una suscripción especial para empresas. 38.4.5 DSL Para configurar un dispositivo DSL, seleccione el módulo ADSL de la sección Dispositivos de red de YaST. Este módulo de YaST consta de varios cuadros de diálogo en los que se establecen los parámetros de los enlaces DSL basados en uno de los siguientes protocolos: • PPP a través de Ethernet (PPPoE) • PPP a través de ATM (PPPoATM) • CAPI para ADSL (Fritz Cards) Trabajo en red básico 629 • Point-to-Point Tunneling Protocol (PPTP) (Austria) Para la configuración de una conexión DSL basada en PPPoE o PPTP es necesario que la tarjeta de red correspondiente ya esté correctamente configurada. Si aún no lo ha hecho, configure en primer lugar la tarjeta seleccionando Configurar tarjetas de red (consulte la Sección 38.4.1, “Configuración de la tarjeta de red con YaST” (p. 621)). En el caso de los enlaces DSL, las direcciones pueden asignarse automáticamente, pero no mediante DHCP, por lo que no debe habilitarse la opción Automatic address setup (via DHCP) (Configuración automática de direcciones [mediante DHCP]). En lugar de ello, introduzca una dirección estática cualquiera, por ejemplo 192.168.22.1. En Máscara de subred, introduzca 255.255.255.0. Si está configurando una estación de trabajo independiente, deje vacío Gateway por defecto. SUGERENCIA Los valores de Dirección IP y Máscara de subred son sólo de relleno. Sólo son necesarios para inicializar la tarjeta de red y no representan el enlace DSL como tal. Figura 38.7 Configuración DSL Para comenzar la configuración DSL (consulte la Figura 38.7, “Configuración DSL” (p. 630)), seleccione en primer lugar el modo PPP y la tarjeta ethernet a la que está co- 630 nectado el módem DSL (en la mayoría de los casos, se trata de eth0). A continuación, utilice Activación del dispositivo para especificar si el enlace DSL debe establecerse durante el proceso de arranque. Haga clic en Controlado por el usuario para autorizar al usuario normal sin permisos de usuario root a que active y desactive la interfaz mediante KInternet. El cuadro de diálogo también permite seleccionar el país y elegir entre muchos de los ISP que operan en él. Los detalles de los siguientes cuadros de diálogo para la configuración DSL dependen de las opciones establecidas hasta el momento, por lo que sólo se mencionarán brevemente en los próximos párrafos. Para obtener más detalles acerca de las opciones disponibles, consulte la ayuda de los propios cuadros de diálogo. Para utilizar Llamada bajo demanda en una estación de trabajo independiente, especifique también el servidor de nombres (servidor DNS). La mayoría de los ISP admiten DNS dinámico (el ISP envía la dirección IP del servidor de nombres cada vez que se realiza la conexión). Para una única estación de trabajo, sin embargo, sigue siendo necesario introducir una dirección cualquiera, por ejemplo 192.168.22.99. Si el ISP no admite DNS dinámico, introduzca la dirección IP del servidor de nombres proporcionada por el ISP. Tiempo de inactividad (en segundos) define el periodo de inactividad de la red tras el que la conexión se terminará automáticamente. Un valor razonable para el tiempo límite es de entre 60 y 300 segundos. Si se inhabilita Llamada bajo demanda, puede ser útil establecer el valor del tiempo límite en cero para evitar que se cuelgue automáticamente. La configuración de T-DSL es muy similar a la de DSL. Simplemente seleccione TOnline como proveedor y YaST abrirá el cuadro de diálogo de configuración de T-DSL. En este cuadro de diálogo, introduzca la información adicional necesaria para T-DSL (el ID de la línea, el número de T-Online, el código de usuario y la contraseña). Todo ello debería aparecer en la información que recibió al contratar T-DSL. 38.5 Configuración manual de una conexión de red La configuración manual del software de red siempre debe ser la última alternativa. Se recomienda utilizar YaST. Sin embargo, la información básica acerca de la configuración de red también puede serle útil cuando trabaje con YaST. Trabajo en red básico 631 Todas las tarjetas de red y de red hotplug integradas (PCMCIA, USB y algunas tarjetas PCI) se detectan y se configuran mediante hotplug. El sistema detecta una tarjeta de red de dos maneras: primero como un dispositivo físico y, después, como una interfaz. La inserción o detección de un dispositivo activa un evento hotplug. Este evento hotplug activa la inicialización del dispositivo mediante el guión hwup. Cuando la tarjeta de red se inicializa como una nueva interfaz de red, el núcleo genera otro evento hotplug que origina la configuración de la interfaz mediante ifup. El núcleo numera los nombres de la interfaz en función del orden temporal del registro. La secuencia de inicialización es fundamental para la asignación de nombres. Si falla una de las tarjetas, se modificará la numeración de todas las que se inicien después. Para tarjetas hotplug reales, lo que importa es el orden en el que se conectan los dispositivos. Para llevar a cabo una configuración flexible, la configuración del dispositivo (hardware) y de la interfaz debe realizarse por separado y la asignación de configuraciones a los dispositivos e interfaces no se gestiona mediante los nombres de interfaz. Las configuraciones del dispositivo se ubican en /etc/sysconfig/hardware/hwcfg-*. Las configuraciones de la interfaz se ubican en /etc/sysconfig/network/ ifcfg-*. Los nombres de las configuraciones se asignan de modo que describan los dispositivos e interfaces a los que están asociados. Puesto que la primera asignación de controladores al nombre de la interfaz requería nombres de interfaz estáticos, esta asignación ya no se realizará en /etc/modprobe.conf. En el nuevo concepto, las entradas de alias en este archivo pueden causar efectos secundarios no deseados. Los nombres de configuración, es decir, todo lo que aparece después de hwcfg- o de ifcfg-, pueden describir los dispositivos mediante la ranura, el ID específico del dispositivo o el nombre de la interfaz. Por ejemplo, el nombre de configuración para una tarjeta PCI puede ser bus-pci-0000:02:01.0 (ranura PCI) o vpid-0x8086-0x1014-0x0549 (ID del producto o del proveedor). El nombre de la interfaz asociada puede ser bus-pci-0000:02:01.0 o wlan-id-00:05:4e:42:31:7a (dirección MAC). Para asignar una configuración de red específica a una tarjeta de un tipo determinado (o del que sólo se ha insertado uno) en lugar de una tarjeta determinada, seleccione un número menor de nombres de configuración específicos. Por ejemplo, bus-pcmcia se utilizará para todas las tarjetas PCMCIA. Por otro lado, los nombres pueden estar limitados por un tipo de interfaz precedente. Por ejemplo, wlan-bus-usb se asignará a las tarjetas WLAN conectadas a un puerto USB. 632 El sistema siempre utiliza la configuración que mejor describa una interfaz o el dispositivo que suministre la interfaz. La búsqueda de la configuración más adecuada se gestiona mediante getcfg. La salida de getcfg proporciona toda la información que se puede utilizar para describir un dispositivo. Los detalles acerca de la especificación de los nombres de configuración están disponibles en la página del manual de getcfg. Con el método descrito, una interfaz de red se establece con la configuración correcta incluso si los dispositivos de red no siempre se inicializan en el mismo orden. Sin embargo, el nombre de la interfaz sigue dependiendo de la secuencia de inicialización. Existen dos maneras de garantizar un acceso fiable a la interfaz de una determinada tarjeta de red: • getcfg-interface nombre de configuración devuelve el nombre a la interfaz de red asociada. Sin embargo, el nombre de configuración, como por ejemplo cortafuegos, dhcpd, encaminamiento o varias interfaces de red virtuales (túneles), se puede introducir en algunos archivos de configuración en lugar del nombre de la interfaz, que no es permanente. • Los nombres de interfaces permanentes se pueden asignar a todas las interfaces cuyas configuraciones no incluyen nombres de interfaz. Esto se puede realizar mediante entradas PERSISTENT_NAME=pname en una configuración de interfaz (ifcfg-*). Sin embargo, el nombre permanente pname no debe ser el mismo que el nombre que el núcleo asignará automáticamente. Sin embargo, nombres como eth*, tr*, wlan* no están permitidos. En su lugar, utilice net* o nombres descriptivos como externo, interno o dmz. Un nombre permanente sólo se puede asignar a una interfaz inmediatamente después de su registro, lo que quiere decir que el controlador de la tarjeta de red debe volver a cargarse o que hwup descripción de dispositivo debe ejecutarse. El comando rcnetwork restart (reiniciar) es insuficiente para este propósito. IMPORTANTE: Uso de nombres de interfaces permanentes El uso de nombres de interfaces permanentes se ha comprobado en todas las áreas. Sin embargo, puede que algunas aplicaciones no puedan gestionar nombres de interfaces seleccionados libremente. ifup requiere que exista la interfaz, puesto que no inicializa el hardware. La inicialización del hardware se gestiona mediante el comando hwup (ejecutado por hotplug o coldplug). Cuando se inicializa un nuevo dispositivo, ifup se ejecuta de forma Trabajo en red básico 633 automática para la nueva interfaz mediante hotplug y la interfaz se configura si el modo de inicio es onboot, hotplug o auto y si se ha iniciado el servicio de red. Anteriormente, el comando ifup nombre de interfaz activaba la inicialización del hardware. Ahora, el procedimiento se ha invertido. Primero, se inicializa un componente de hardware y, a continuación, lo hacen el resto de aplicaciones. De este modo, siempre se puede configurar un número variable de dispositivos de la mejor manera posible mediante un conjunto de configuraciones existentes. La Tabla 38.5, “Guiones de configuración manual de red” (p. 634) resume los guiones más importantes implicados en la configuración de red. Cuando sea posible, los guiones se distinguen por el hardware y la interfaz. Tabla 38.5 634 Guiones de configuración manual de red Fase de configuración Comando Función Hardware hw{up,down,status} El subsistema hotplug ejecuta los guiones hw* para inicializar un dispositivo, deshacer la inicialización o consultar el estado de un dispositivo. Existe más información disponible en la página del manual de hwup. Interfaz getcfg Interfaz if{up,down,status} Los guiones if* inician las interfaces de red existentes o vuelven al estado de la interfaz especificada. Existe más información disponible en la página del manual de hwup. getcfg se puede utilizar para consultar el nombre de la interfaz asociado a un nombre de configuración o a una descripción de hardware. Existe más información disponible en la página del manual de getcfg. Existe información disponible acerca de hotplug y de los nombres permanentes de dispositivos en Capítulo 32, Sistema HotPlug (p. 533) y Capítulo 33, Nodos de dispositivo dinámicos con udev (p. 541). 38.5.1 Archivos de configuración Esta sección proporciona una descripción general de los archivos de configuración de red, así como su propósito y el formato utilizado. /etc/syconfig/hardware/hwcfg-* Estos archivos contienen las configuraciones de hardware de las tarjetas de red y de otros dispositivos. Asimismo, también contienen los parámetros necesarios, como el módulo del núcleo, el modo de inicio y las asociaciones de guiones. Para obtener más detalles, consulte la página del manual de hwup. Independientemente del hardware existente, las configuraciones hwcfg-static-* se aplican cuando se inicia coldplug. /etc/sysconfig/network/ifcfg-* Estos archivos contienen las configuraciones para la interfaz de red. Incluyen información como el modo de inicio y la dirección IP. Los posibles parámetros se describen en la página del manual de ifup. Además, si se tiene que utilizar una configuración general para una única interfaz, todas las variables de los archivos dhcp, wireless y config se pueden utilizar en los archivos ifcfg-*. /etc/sysconfig/network/config, dhcp, wireless El archivo config contiene la configuración general para el comportamiento de ifup, ifdown e ifstatus. dhcp contiene la configuración de DHCP y wireless para las tarjetas LAN inalámbricas. Las variables de los tres archivos de configuración se describen y se pueden utilizar en los archivos ifcfg-*, cuando disponen de la máxima prioridad. Trabajo en red básico 635 /etc/sysconfig/network/routes,ifroute-* Aquí se determina el encaminamiento estático de los paquetes TCP/IP. Todas las rutas estáticas requeridas por las diferentes tareas del sistema se pueden introducir en el archivo /etc/sysconfig/network/routes: rutas al host, rutas al host mediante gateway y rutas a una red. Para cada interfaz que necesite una ruta individual, defina un archivo de configuración adicional: /etc/sysconfig/network/ifroute-*. Sustituya * con el nombre de la interfaz. Las entradas de los archivos de configuración del encaminamiento se presentan de la manera siguiente: # Destination # 127.0.0.0 204.127.235.0 default 207.68.156.51 192.168.0.0 Dummy/Gateway Netmask Device 0.0.0.0 0.0.0.0 204.127.235.41 207.68.145.45 207.68.156.51 255.255.255.0 255.255.255.0 0.0.0.0 255.255.255.255 255.255.0.0 lo eth0 eth0 eth1 eth1 El destino de la ruta se encuentra en la primera columna. Esta columna puede contener la dirección IP de red o host o, en el caso de servidores de nombre accesibles, la red o nombre de host completo. La segunda columna contiene un gateway por defecto a través del cual se puede acceder a un host o a una red. La tercera columna contiene la máscara de red de redes o hosts tras un gateway. Por ejemplo, la máscara es 255.255.255.255 para un host tras un gateway. La cuarta columna sólo es relevante para redes conectadas al host local como loopback, Ethernet, RDSI, PPP y dispositivo fantasma. Aquí se debe introducir el nombre del dispositivo. Una quinta columna (opcional) se puede utilizar para especificar el tipo de ruta. Las columnas que no se necesiten deben contener un signo menos - para garantizar que el analizador interpreta correctamente el comando. Para obtener más detalles, consulte la página Man de routes(5). /etc/resolv.conf En este archivo se especifica el dominio al que pertenece el host (contraseña search [buscar]). También se enumera el estado de la dirección del servidor de nombre al que se desea acceder (contraseña nameserver [servidor de nombre]). Se pueden especi- 636 ficar varios nombres de dominio. Al resolver un nombre incompleto, se realiza un intento de generar uno agregando entradas search (buscar) individuales. Utilice varios servidores de nombre introduciendo varias líneas, cada una de las cuales debe comenzar por nameserver (servidor de nombre). Anteponga signos # a los comentarios. YaST introduce el servidor de nombre especificado en este archivo. El Ejemplo 38.5, “/etc/ resolv.conf” (p. 637) muestra la forma de /etc/resolv.conf. Ejemplo 38.5 /etc/resolv.conf # Our domain search example.com # # We use sun (192.168.0.20) as nameserver nameserver 192.168.0.20 Algunos servicios, como pppd (wvdial), ipppd (isdn), dhcp (dhcpcd y dhclient), pcmcia y hotplug modifican el archivo /etc/resolv.conf mediante el guión modify_resolvconf. Si el archivo /etc/resolv.conf se ha modificado de forma temporal mediante este guión, entonces incluirá un comentario predefinido que proporciona información acerca del servicio que lo modifica, la ubicación en la que se ha realizado la copia de seguridad del archivo original y el modo de desactivar el mecanismo de modificación automático. Si /etc/resolv.conf se modifica varias veces, el archivo incluirá modificaciones en un formulario anidado. Estas modificaciones se pueden invertir incluso si el orden de la inversión es diferente del orden de la introducción de las modificaciones. Los servicios que incluyen esta flexibilidad incluyen isdn, pcmcia y hotplug. Si no se ha terminado un servicio de forma normal y limpia, modify_resolvconf se puede utilizar para restaurar el archivo original. Incluso durante el arranque del sistema, se realiza una comprobación para localizar un resolv.conf sin limpiar y modificado, por ejemplo, después de un fallo del sistema, en cuyo caso se restaurará el resolv.conf original (sin modificar). YaST utiliza el comando modify_resolvconf check para saber si resolv.conf se ha modificado y, a continuación, advierte al usuario de que se perderán los cambios después de restaurar el archivo. Además de esto, YaST no se basa en modify _resolvconf, lo que significa que el impacto del cambio de resolv.conf mediante YaST es el mismo que para cualquier cambio manual. En ambos casos, el efecto de los cambios es permanente. Las modificaciones solicitadas por los servicios mencionados son sólo temporales. Trabajo en red básico 637 /etc/hosts En este archivo, que se muestra en el Ejemplo 38.6, “/etc/hosts” (p. 638), las direcciones IP están asignadas a nombres de host. Si no se implementa ningún servidor de nombre, deberá aparecer una lista de todos los hosts para los que se va a configurar una conexión IP. Para cada host, introduzca una línea que conste de la dirección IP, del nombre de host completo y del nombre de host en el archivo. La dirección IP debe ubicarse al principio de la línea y las entradas deben estar separadas por espacios y pestañas. Los comentarios siempre van precedidos de #. Ejemplo 38.6 /etc/hosts 127.0.0.1 localhost 192.168.0.20 sun.example.com sun 192.168.0.0 earth.example.com earth /etc/networks Aquí, los nombres de red se convierten en direcciones de red. El formato es similar al del archivo hosts, excepto que los nombres de red van situados delante de la dirección. Consulte el Ejemplo 38.7, “/etc/networks” (p. 638). Ejemplo 38.7 loopback localnet /etc/networks 127.0.0.0 192.168.0.0 /etc/host.conf La resolución de nombre, es decir, la traducción de los nombres de red y de host mediante la biblioteca resolver está controlada por este archivo. Este archivo sólo se utiliza para programas relacionados con libc4 o libc5. Para los programas glibc en curso, consulte la configuración de /etc/nsswitch.conf. Siempre debe haber un único parámetro en su propia línea. Los comentarios van precedidos de #. La Tabla 38.6, “Parámetros para /etc/host.conf” (p. 639) muestra los parámetros disponibles. En Ejemplo 38.8, “ /etc/host.conf ” (p. 639) se muestra el ejemplo de /etc/host .conf. 638 Tabla 38.6 Parámetros para /etc/host.conf order hosts, bind Especifica el orden de acceso a los servicios para la resolución de nombre. Los argumentos disponibles son (separados por espacios y comas) los siguientes: hosts: Busca el archivo /etc/hosts bind: Accede a un servidor de nombre nis: Utiliza NIS Define si un host introducido en /etc/hosts puede tener varias direcciones IP. multi on/off nospoof on spoofa- Estos parámetros determinan el servidor de nombre spoofing, pero no la configuración de red. lert on/off trim domainname Ejemplo 38.8 El nombre del dominio especificado se separa del nombre de host después de la resolución de nombre (siempre que el nombre de host incluya el nombre del dominio). Esta opción resulta útil sólo si los nombres del dominio local se incluyen en el archivo /etc/hosts, pero deben seguir reconociéndose con los nombres del dominio adjunto. /etc/host.conf # We have named running order hosts bind # Allow multiple addrs multi on /etc/nsswitch.conf La introducción a GNU C Library 2.0 va acompañada de la introducción de Conmutador de servicio de nombre (NSS). Para obtener más información, consulte la página Man de nsswitch.conf(5) y GNU C Library Reference Manual (Manual de referencia de la biblioteca GNU C). Trabajo en red básico 639 El orden de las consultas se define en el archivo /etc/nsswitch.conf. En el Ejemplo 38.9, “/etc/nsswitch.conf” (p. 640) se muestra un ejemplo de nsswitch.conf. Los comentarios van precedidos de #. En este ejemplo, cuando se introduce un elemento en la base de datos hosts, se envía una petición a /etc/hosts (files) mediante DNS (consulte el Capítulo 40, DNS (Domain Name System) (p. 651)). Ejemplo 38.9 /etc/nsswitch.conf passwd: group: compat compat hosts: networks: files dns files dns services: protocols: db files db files netgroup: automount: files files nis Las “bases de datos” disponibles en NSS se enumeran en Tabla 38.7, “Bases de datos disponibles mediante /etc/nsswitch.conf” (p. 640). Además, automount, bootparams, netmasks y publickey están previstas en un futuro próximo. Las opciones de configuración para las bases de datos NSS se enumeran en Tabla 38.8, “Opciones de configuración para las “bases de datos” NSS” (p. 641). Tabla 38.7 640 Bases de datos disponibles mediante /etc/nsswitch.conf aliases Alias de correo implementados por sendmail; consulte man 5 aliases. ethers Direcciones Ethernet. group Para grupos de usuarios, utilizado por getgrent. Consulte también la página Man de group. hosts Para nombres de host y direcciones IP, utilizado en gethostbyname y en funciones similares. netgroup Host válido y listas de usuarios en la red para controlar los permisos de acceso; consulte la página Man de netgroup(5). networks Nombres y direcciones de red, utilizado por getnetent. passwd Contraseñas de usuario, utilizado en getpwent; consulte la página Man de passwd(5). protocols Protocolos de red, utilizado en getprotoent; consulte la página Man de protocols(5). rpc Nombres y direcciones de llamadas de procedimientos remotos, utilizado en getrpcbyname y en funciones similares. services Servicios de red, utilizados por getservent. shadow Contraseñas shadow de usuarios, utilizadas en getspnam; consulte la página Man de shadow(5). Tabla 38.8 Opciones de configuración para las “bases de datos” NSS files Archivos de acceso directo, por ejemplo, /etc/aliases db Acceso mediante la base de datos nis, nisplus NIS, consulte también el Capítulo 41, Uso de NIS (p. 673) dns Sólo se puede utilizar como una extensión para hosts y networks compat Sólo se puede utilizar como una extensión de passwd, shadow y group /etc/nscd.conf Este archivo se utiliza para configurar nscd (daemon NSC). Consulte las páginas Man de nscd(8) y nscd.conf(5). Por defecto, nscd almacena en caché las entradas de sistema de passwd y groups. Esto es importante para el funcionamiento de los servicios del directorio, como NIS y LDAP, puesto que si no, se necesitará la conexión de red para cada acceso a los nombres o grupos. hosts no se almacena en caché por Trabajo en red básico 641 defecto, puesto que el mecanismo de nscd para almacenar los hosts en caché no posibilita que el sistema local certifique comprobaciones de búsqueda adelante y atrás. En lugar de solicitar que nscd almacene nombres en caché, configure un servidor DNS de almacenamiento en caché. Si el almacenamiento en caché para passwd está activado, por general, transcurrirán quince segundos hasta que se reconozca un nuevo usuario local agregado. Reduzca este tiempo límite reiniciando nscd con el comando rcnscd restart (reiniciar). /etc/HOSTNAME Contiene el nombre de host sin el nombre de dominio adjunto. Varios guiones pueden leer este archivo mientras la máquina está arrancando. Puede contener una única línea en la que se establece el nombre de host. 38.5.2 Guiones de inicio Además de los archivos de configuración descritos anteriormente, también existen varios guiones para cargar los programas de red durante el arranque de la máquina. Éstos se inician en cuanto el sistema cambia a uno de los niveles de ejecución multiusuario. Algunos de estos guiones se describen en la Tabla 38.9, “Guiones de inicio para programas de red” (p. 642). Tabla 38.9 Guiones de inicio para programas de red /etc/init.d/network Este guión gestiona la configuración de las interfaces de red. El hardware ya se debe haberse inicializado con /etc/init.d/coldplug (mediante hotplug). Si el servicio network no se ha iniciado, no se implementarán interfaces de red cuando se inserten mediante hotplug. /etc/init.d/inetd 642 Inicia xinetd. xinetd y se pueden utilizar para que los servicios del servidor estén disponibles en el sistema. Por ejemplo, puede iniciar vsftpd siempre que se inicie una conexión FTP. /etc/init.d/portmap Inicia el portmap necesario para el servidor RPC, como por ejemplo un servidor NFS. /etc/init.d/ nfsserver Inicia el servidor NFS. /etc/init.d/ sendmail Controla el proceso de envío de correo. /etc/init.d/ypserv Inicia el servidor NIS. /etc/init.d/ypbind Inicia el servidor NIS. 38.6 Uso de smpppd como asistente de acceso telefónico La mayoría de los usuarios particulares no disponen de una línea dedicada de conexión a Internet. En su lugar, utilizan conexiones de acceso telefónico. En función del método de acceso telefónico (RDSI o DSL), la conexión se controla por ipppd o por pppd. En términos generales, lo único que se necesita hacer para obtener una conexión en línea es iniciar correctamente los programas. Si dispone de una conexión de tarifa plana que no genera ningún coste adicional para la conexión de acceso telefónico, sólo tiene que iniciar el correspondiente daemon. Controle la conexión de acceso telefónico con un applet KDE o con una interfaz de línea de comando. Si el gateway de Internet no es el host utilizado por el usuario, éste podrá controlar la conexión de acceso telefónico mediante un host de red. Aquí es donde interviene smpppd. Proporciona una interfaz uniforme para programas auxiliares y funciona en dos direcciones. En primer lugar, programa el pppd ó ipppd requerido y controla sus propiedades de acceso telefónico. En segundo lugar, facilita varios proveedores a los programas de usuario y transmite información acerca del estado actual de la conexión. Como smpppd se puede controlar también mediante la red, es adecuado para controlar las conexiones de acceso telefónico a Internet desde una estación de trabajo en una subred privada. Trabajo en red básico 643 38.6.1 Configuración de smpppd YaST configura automáticamente las conexiones proporcionadas por smpppd. Los programas de acceso telefónico KInternet y cinternet también están configurados previamente. Sólo se requiere la configuración manual para configurar las funciones adicionales de smpppd, como por ejemplo, el control remoto. El archivo de configuración de smpppd es /etc/smpppd.conf. Por defecto, no habilita el control remoto. Las opciones más importantes de este archivo de configuración son las siguientes: open-inet-socket = yes|no Para controlar smpppd a través de la red, está opción debe establecerse en yes. El puerto en el que smpppd escucha es 3185. Si se establece este parámetro en yes, los parámetros bind-address, host-range y password deben establecerse según corresponda. bind-address = ip Si un host tiene varias direcciones IP, utilice este parámetro para determinar en qué dirección IP debe aceptar conexiones smpppd. host-range = min ip max ip El parámetro host-range define el rango de la red. Los hosts cuya dirección IP se encuentra en este rango tienen autorizado el acceso a smpppd. Todos los hosts que no se encuentren en este rango tienen el acceso denegado. password = password La asignación de una contraseña permite a los clientes acceder solo a los hosts autorizados. Como se trata de una contraseña de sólo texto, no se debe sobreestimar la seguridad que proporciona. Si no hay ninguna contraseña asignada, todos los clientes tienen permitido el acceso a smpppd. slp-register = yes|no Con este parámetro, el servicio smpppd se anuncia en la red a través de SLP. Existe más información disponible acerca de smpppd en las páginas Man de smpppd(8) y smpppd.conf(5). 644 38.6.2 Configuración de KInternet, cinternet y qinternet para uso remoto KInternet, cinternet y qinternet se pueden utilizar para controlar un smpppd local o remoto. cinternet es la línea de comandos correspondiente para el KInternet gráfico. qinternet es prácticamente igual que KInternet, pero no utiliza bibliotecas KDE, por lo que se puede utilizar sin KDE y debe instalarse aparte. Para preparar estas utilidades para su uso con un smpppd remoto, edite manualmente el archivo de configuración /etc/ smpppd-c.conf o utilice KInternet. Este archivo sólo utiliza tres opciones: sites = list of sites Especifica a las interfaces dónde deben buscar smpppd. Las interfaces prueban las opciones en el orden que se especifica a continuación. La opción local ordena el establecimiento de una conexión al smpppd local. gateway indica un smpppd en el gateway. La conexión debe establecerse tal y como se especifica en server en config-file. slp ordena a las interfaces que se conecten al smpppd encontrado a través de SLP. server = server Especifique el host en el que se ejecuta smpppd. password = password Introduzca la contraseña seleccionada para smpppd. Si smpppd está activo, puede intentar acceder a él, por ejemplo, mediante cinternet --verbose --interface-list. Si tiene dificultades, consulte las páginas Man de smpppd-c.conf(5) y cinternet(8). Trabajo en red básico 645 39 Servicios SLP en la red El protocolo de ubicación de servicios (SLP) se ha desarrollado para simplificar la configuración de los clientes de red en una red local. Para configurar un cliente de red, incluyendo todos los servicios requeridos, el administrador necesita un conocimiento detallado de los servidores disponibles en la red. SLP permite la disponibilidad de un determinado servicio conocido por todos los clientes de la red local. Las aplicaciones compatibles con SLP pueden utilizar la información distribuida y se pueden configurar de forma automática. SUSE Linux es compatible con la instalación que utiliza fuentes de instalación proporcionadas por SLP y contiene servicios de sistema con compatibilidad integrada para SLP. YaST y Konqueror contienen las interfaces adecuadas para SLP. Puede utilizar SLP para proporcionar a los clientes de red funciones centrales, como por ejemplo, servidores de instalación, servidores YOU, de archivos o de impresión en SUSE Linux. 39.1 Registro de sus propios servicios Existen muchas aplicaciones que se ejecutan en SUSE Linux que ya disponen de compatibilidad para SLP integrada mediante la utilización de la biblioteca libslp. Si un servicio no se ha compilado con la compatibilidad para SLP, utilice uno de los métodos siguientes para que esté disponible con SLP: Servicios SLP en la red 647 Registro estático mediante /etc/slp.reg.d Cree un archivo de registro separado para cada servicio nuevo. A continuación, se muestra un ejemplo de archivo para registrar un servicio de escáner: ## Register a saned service on this system ## en means english language ## 65535 disables the timeout, so the service registration does ## not need refreshes service:scanner.sane://$HOSTNAME:6566,en,65535 watch-port-tcp=6566 description=SANE scanner daemon La línea más importante de este archivo es la URL de servicio, que comienza por service:. Contiene el tipo de servicio (scanner.sane) y la dirección para la que el servicio está disponible en el servidor. $HOSTNAME se reemplaza automáticamente con el nombre de host completo. Detrás de éste aparece, separado por dos puntos, el nombre del puerto TCP en el que se puede encontrar el servicio correspondiente. A continuación, introduzca el idioma del servicio y la duración del registro en segundos. Estos datos deben separase de la URL de servicio por comas. Establezca el valor de la duración del registro entre 0 y 65535. 0 evita el registro. 65535 elimina todas las restricciones. El archivo de registro también contiene las dos variables watch-tcp-port y description. La primera variable relaciona el aviso del servicio SLP allí donde el servicio correspondiente esté activo utilizando slpd para comprobar el estado del servicio. La segunda variable contiene una descripción más precisa del servicio que aparece en los navegadores correspondientes. Registro estático mediante /etc/slp.reg La única diferencia con el procedimiento descrito anteriormente es la agrupación de todos los servicios en un archivo central. Registro dinámico mediante slptool Si un servicio debe registrarse en SLP a partir de guiones patentados, utilice la interfaz de línea de comandos slptool. 39.2 Interfaces SLP en SUSE Linux SUSE Linux contiene varias interfaces que habilitan la selección y la utilización de información SLP mediante una red: 648 slptool slptool es un programa de línea de comandos sencillo que puede utilizarse para anunciar búsquedas SLP en la red o servicios patentados. slptool --help muestra todas las opciones y funciones disponibles. También se puede llamar a slptool desde guiones que procesan información SLP. Navegador SLP de YaST YaST contiene un navegador SLP separado que muestra todos los servicios de la red local anunciados a través de SLP en un diagrama en árbol en Servicios de red → Navegador SLP. Konqueror Si se utiliza como navegador de red, Konqueror muestra todos los servicios SLP disponibles de la red local en slp:/. Haga clic en los iconos de la ventana principal para obtener información detallada acerca del servicio correspondiente. Si utiliza Konqueror con service:/, haga clic en el icono correspondiente de la ventana del navegador para configurar una conexión con el servicio seleccionado. 39.3 Activación de SLP Si desea ofrecer servicios, debe ejecutar slpd en el sistema. No es necesario iniciar el daemon sólo para realizar búsquedas de servicio. Como casi todos los servicios que se ejecutan en SUSE Linux, el daemon slpd se controla mediante un guión init diferente. Por defecto, el daemon está inactivo. Si desea activarlo durante el tiempo que dura una sesión, ejecute rcslpd start como root para iniciarlo y rcslpd stop para detenerlo. Reinicie el sistema o compruebe el estado mediante restart o status. Si slpd debería estar activa por defecto, ejecute el comando insserv slpd una sola vez como root. Esto incluye automáticamente slpd en el conjunto de servicios que se inician cuando un sistema arranca. 39.4 Información adicional Las siguientes fuentes proporcionan información adicional acerca de SLP: Servicios SLP en la red 649 RFC 2608, 2609, 2610 RFC 2608 describe, de forma general, la definición de SLP. RFC 2609 describe detalladamente la sintaxis de la URL de servicio utilizada y RFC 2610 describe DHCP mediante SLP. http://www.openslp.com Página principal del proyecto OpenSLP. file:/usr/share/doc/packages/openslp/* Este directorio contiene toda la documentación disponible para SLP, además incluye un archivo README (LÉAME).SUSE que contiene los detalles de SUSE Linux, de los RFC mencionados anteriormente y dos documentos HTML introductorios. Los programadores que deseen utilizar las funciones SLP deben instalar el paquete openslp-devel para consultar la Programmers Guide (Guía de programadores) que se incluye. 650 DNS (Domain Name System) 40 El servicio DNS (Domain Name System) se encarga de convertir nombres de dominio y nombres de ordenadores en direcciones IP. Así, por ejemplo, la dirección IP 192.168.0.0 se asigna al nombre del ordenador host earth. Antes de configurar un DNS propio consulte la información general sobre DNS en la Sección 38.3, “Resolución de nombres” (p. 619). Los siguientes ejemplos de configuración se refieren a BIND. 40.1 Introducción a DNS 40.2 Configuración con YaST El módulo DNS de YaST sirve para realizar la configuración de un servidor DNS dentro de la propia red local. Esta configuración basada en propuestas requiere que el administrador del servidor tome algunas decisiones básicas. Después de la configuración inicial, el servidor ya dispone de una configuración básica y en principio está listo para el uso. El modo experto puede usarse para tratar con tareas de configuración avanzada. 40.2.1 Configuración con asistente Las propuestas del asistente o wizard se dividen en tres diálogos con la posibilidad de acceder a la configuración experta en puntos adecuados. DNS (Domain Name System) 651 Instalación del servidor DNS: redireccionadores El diálogo de la Figura 40.1, “Instalación del servidor DNS: redireccionadores” (p. 652) aparece al iniciar el módulo por primera vez. Decida si la lista de redireccionadores debe ser transmitida por el daemon PPP al conectar con DSL o RDSI (Redireccionadores definidos por el daemon PPP) o si desea introducirla manualmente (Definir redireccionadores manualmente). Figura 40.1 Instalación del servidor DNS: redireccionadores Instalación del servidor DNS: zonas DNS El significado de los parámetros de este módulo se explica en la instalación para expertos (ver Servidor DNS: zonas DNS (p. 655)). 652 Figura 40.2 Instalación del servidor DNS: zonas DNS Instalación del servidor DNS: finalizar asistente Puesto que el cortafuegos está activado durante la instalación, al completar la misma puede abrir el puerto DNS en el cortafuegos (puerto 53). También puede determinar el comportamiento de inicio del servidor DNS o acceder desde aquí a la configuración experta (ver Figura 40.3, “Instalación del servidor DNS: finalizar asistente” (p. 654)). DNS (Domain Name System) 653 Figura 40.3 Instalación del servidor DNS: finalizar asistente 40.2.2 Configuración experta Al iniciar el módulo por primera vez, YaST abre una ventana con diferentes posibilidades de configuración. Una vez concluida esta configuración, el servidor DNS funciona básicamente: Servidor DNS: inicio Bajo el título Arranque defina si el servidor DNS debe iniciarse cuando el sistema arranque (durante el arranque del sistema) o manualmente. Para iniciar el servidor DNS inmediatamente, seleccione Iniciar servidor DNS ahora. Para detenerlo, seleccione Detener servidor DNS ahora. La opción Guardar la configuración y reiniciar el servidor DNS ahora le permite guardar la configuración actual. La opción Puerto abierto en el cortafuegos le permite abrir el puerto DNS en el cortafuegos y con Configuración del cortafuegos puede modificar las diversas opciones de configuración del cortafuegos. Servidor DNS: redireccionadores Este diálogo es idéntico al que aparece cuando se inicia la configuración con el asistente (ver Instalación del servidor DNS: redireccionadores (p. 652)). 654 Servidor DNS: registro En este apartado permite determinar lo que debe protocolizar el servidor DNS y cómo debe hacerlo. En Tipo de registro se especifica dónde guarda sus mensajes el servidor. Puede escribirlos en el archivo de registro del sistema en /var/log/ messages (Registrar al registro del sistema) o en un archivo de registro determinado explícitamente (Registrar a archivo). Seleccionando la última opción, se puede limitar el tamaño del archivo de registro y la cantidad de los mismos. Registro adicional ofrece opciones complementarias. Registrar todas las consultas DNS guarda en el registro todas las consultas, motivo por el que el archivo de registro puede llegar a ser muy voluminoso. Utilice esta opción solamente para encontrar errores. Para realizar una actualización de zona entre servidor DHCP y servidor DNS, seleccione Protocolar actualización de zona. Al activar esta opción se registra el flujo de datos de maestro a esclavo a la hora de transferir los datos de zona (ver Figura 40.4, “Servidor DNS: registro” (p. 655)). Figura 40.4 Servidor DNS: registro Servidor DNS: zonas DNS Este diálogo, que se encarga de la administración de los archivos de zona, se divide en varias secciones (ver Sección 40.5, “Sintaxis de los archivos de zona” (p. 666)). En Nombre de zona puede introducir el nombre nuevo de una zona. Para crear zonas inversas, el nombre de la zona tiene que acabar en .in-addr.arpa. El tipo de zona (maestro o esclavo) se selecciona con Tipo de zona. En Editar zona... puede DNS (Domain Name System) 655 definir opciones adicionales para una zona existente. Para eliminar una zona seleccione la opción Borrar zona. Servidor DNS: editor de zonas esclavas Esta ventana de diálogo aparece cuando se selecciona esclava como tipo de zona en el paso descrito en Servidor DNS: zonas DNS (p. 655). En Servidor DNS maestro indique el servidor maestro que debe ser consultado por el esclavo. Para restringir el acceso, se pueden seleccionar de la lista las ACLs creadas anteriormente (ver Figura 40.5, “Servidor DNS: editor de zonas esclavas” (p. 656)). Figura 40.5 Servidor DNS: editor de zonas esclavas Servidor DNS: editor de zonas maestras Este diálogo aparece después de seleccionar maestra como tipo de zona en el paso descrito en Servidor DNS: zonas DNS (p. 655) y está dividido en varias partes: fundamentos (la ventana actual), registros NS, registros MX, SOA y registros. Servidor DNS: editor de zonas (registros NS) Con este diálogo se puede determinar servidores de nombre alternativos para cada zona. El servidor de nombres propio tiene que estar incluido en esta lista. Para crear una nueva entrada, introduzca en Servidor de nombres que desea añadir el nombre del servidor y pulse Añadir (ver Figura 40.6, “Servidor DNS: editor de zonas (registros NS)” (p. 657)). 656 Figura 40.6 Servidor DNS: editor de zonas (registros NS) Servidor DNS: editor de