115
LE- 201 - Linux Enterprise administración de servidores

LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Embed Size (px)

Citation preview

Page 1: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

LE- 201 - Linux Enterprise administración de servidores

Page 2: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Tabla de contenido

Instalación del sistema operativo CentOS Linux.............................................................7Aspectos básicos del hardware.........................................................................................8

La CPU..........................................................................................................................8

El kernel de Linux y Multi-core......................................................................................9

Memoria.......................................................................................................................10

Buses...........................................................................................................................11

Controladores y periféricos.........................................................................................11

Espacios de direcciones..............................................................................................12

Cronómetros................................................................................................................12

Interrupciones..............................................................................................................13

Información de hardware adicional.............................................................................13

Instalación de CentOS Linux...........................................................................................13

Nombres de Dispositivo en Linux................................................................................13

Crear un CD-ROM de arranque de instalación...........................................................14

Arranque de la instalación desde un USB pen drive.................................................. 14

Interfaz gráfica de usuario del programa de instalación.............................................15

Nota sobre las consolas virtuales................................................................................15

Opciones de arranque adicionales..............................................................................15

Opciones del kernel.....................................................................................................16

Selección de un método de instalación.......................................................................17

Instalación desde un CD-ROM....................................................................................17

Instalación desde un disco duro..................................................................................17

Preparación para la instalación de red........................................................................18

Instalación a través de NFS........................................................................................18

Instalación a través de FTP.........................................................................................18

Instalación a través de HTTP......................................................................................18

Particionamiento automático de discos...........................................................................19

Esquema de particionamiento recomendado..............................................................19

Configuración del gestor de arranque.............................................................................20

Primer arranque...............................................................................................................21

Configuración del cortafuegos.....................................................................................21

Configuración de Kdump.............................................................................................21

Configuración de SELinux...........................................................................................22

Page 3: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El archivo anaconda-ks.cfg..............................................................................................22

Administración del sistema de archivos.........................................................................23El sistema de ficheros......................................................................................................24

El Second Extended File system (EXT2)....................................................................24

El inodo EXT2..............................................................................................................25

El Superbloque............................................................................................................26

El descriptor de grupo ................................................................................................27

El sistema de archivos EXT3......................................................................................28

Gestión de particiones.....................................................................................................29

Cantidad máxima de particiones.................................................................................29

Numeración de particiones..........................................................................................29

Usando fdisk................................................................................................................30

Creación del sistema de archivos....................................................................................31

Ajustando parámetros del sistema de archivos ext2/ext3...........................................31

Montado de sistemas de archivos ..............................................................................32

Ejemplo de la adición de un disco con sistema de archivos ext3...............................35

Verificación y reparación del sistema de archivos ext2/ext3...................................... 38

Gestión del espacio Swap...............................................................................................39

Añadir el espacio Swap...............................................................................................40

Utilización de autofs.........................................................................................................41

Proceso de arranque, inicio y cierre del sistema...........................................................43Proceso de arranque.......................................................................................................44

Vista detallada del proceso de arranque.....................................................................44

El BIOS........................................................................................................................45

El gestor de arranque..................................................................................................45

Gestores de arranque para otras arquitecturas..........................................................46

El kernel.......................................................................................................................46

Programa /sbin/init.......................................................................................................47

Ejecutar programas adicionales en el momento de arranque.................................... 49

Uso de sysctl ...................................................................................................................49

Niveles de ejecución de SysV Init...................................................................................50

Niveles de ejecución....................................................................................................50

Utilidades de los niveles de ejecución........................................................................51

Cierre del sistema............................................................................................................52

Administración de usuarios..............................................................................................53

Page 4: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Usuarios y grupos............................................................................................................54

Herramientas de administración de usuarios y grupos...............................................54

Configuración de usuarios desde la línea de comandos................................................ 55

Añadir un usuario........................................................................................................55

Añadir un grupo...........................................................................................................56

Vencimiento de la contraseña.....................................................................................56

El archivo /etc/passwd.................................................................................................57

El archivo /etc/group....................................................................................................58

Grupos de usuario privado..........................................................................................58

Directorios de grupos..................................................................................................59

Contraseñas Shadow......................................................................................................60

El archivo /etc/shadow.................................................................................................61

Configuración de la autenticación...................................................................................62

Métodos de autenticación...........................................................................................62

Instalación y gestión de paquetes...................................................................................64Gestión de paquetes........................................................................................................65

Metas de diseño RPM.................................................................................................65

Instalación de paquetes RPM.....................................................................................66

Paquete ya instalado...................................................................................................67

Archivos en conflicto....................................................................................................67

Dependencias no resueltas.........................................................................................68

Desinstalación.............................................................................................................68

Actualización...............................................................................................................69

Refrescamiento...........................................................................................................69

Consultas.....................................................................................................................70

Verificación..................................................................................................................71

Verificando la firma del paquete......................................................................................72

Importar claves............................................................................................................73

Verificación de la firma de paquetes...........................................................................73

Técnicas de uso de rpm..................................................................................................74

Yellowdog Updater Modified (YUM)................................................................................76

Configuración de YUM................................................................................................76

Utilización de YUM......................................................................................................79

Creación de un repositorio yum local..........................................................................80

Creación del repositorio base para YUM....................................................................80

Page 5: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Creación del repositorio updates para YUM...............................................................81

Configuración de los equipos para utilizar el repositorio YUM local...........................81

Configuración de impresoras ..........................................................................................83Configuración de la impresora.........................................................................................84

Añadir una impresora local..........................................................................................84

Añadir una impresora IPP...........................................................................................85

Añadir una impresora UNIX (LPD) remota..................................................................86

Añadir una impresora Samba (SMB)..........................................................................86

Añadir una impresora JetDirect...................................................................................87

Selección del modelo de impresora............................................................................88

Administración de trabajos de impresión........................................................................ 88

Deshabilitando las impresoras y las colas de impresión.................................................89

Compartir una impresora.................................................................................................90

El sistema X Window.........................................................................................................91El lanzamiento X11R7.1..................................................................................................92

Entornos de escritorio......................................................................................................93

Gestores de ventanas......................................................................................................94

Archivos de configuración del servidor X........................................................................95

El archivo xorg.conf.....................................................................................................95

La estructura de Xorg..............................................................................................95Sección ServerFlags...............................................................................................96Sección ServerLayout.............................................................................................96Sección Files...........................................................................................................97Sección Module.......................................................................................................98Sección InputDevice...............................................................................................99Sección Monitor.....................................................................................................100

Sección Device..........................................................................................................101

Sección Screen.....................................................................................................102DRI.............................................................................................................................103

Fuentes..........................................................................................................................104

Fontconfig..................................................................................................................104

Añadir fuentes a Fontconfig......................................................................................104

Añadir fuentes TrueType...........................................................................................105

Sistema de fuentes base de X..................................................................................105

Configuración de xfs..................................................................................................106

Añadir fuentes a xfs...................................................................................................107

Fuentes Liberation.....................................................................................................107

Niveles de ejecución y X................................................................................................108

Page 6: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Nivel de ejecución 3..................................................................................................108

Nivel de ejecución 5..................................................................................................109

Ejecutando aplicaciones remotas con X11...................................................................110

Utilización de X remoto con telnet.............................................................................112

Utilización de X remoto con SSH..............................................................................112

Sesiones gráficas remotas (XDMCP).......................................................................112

Sesión gráfica remota con GDM...............................................................................113

Configuración de gdm para aceptar conexiones XDMCP........................................ 113

Escritorio Remoto......................................................................................................114

Configuración de las preferencias de vino................................................................114

Cambiando la resolución de la pantalla desde la línea de comandos..........................115

Page 7: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

1

Instalación del sistema operativo CentOS Linux

Page 8: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación del sistema operativo CentOS Linux

Instalación de CentOS Linux

Aspectos básicos del hardware

Un sistema operativo debe trabajar íntimamente con el hardware que le sirve de cimientos. El sistema operativo necesita ciertos servicios que solo pueden suministrar el hardware. Para entender totalmente el sistema operativo Linux, se necesita entender los aspectos básicos del hardware que hay debajo.

La CPU

La CPU, o mejor, microprocesador, es el corazón de cualquier computadora. El microprocesador calcula, realiza operaciones lógicas y gestiona flujos de datos leyendo instrucciones desde la memoria y ejecutándolas. En los primeros días de la informática los componentes funcionales del microprocesador eran unidades separadas (y grandes físicamente). Fue entonces cuando se acuñó el término Unidad Central de Proceso (Central Processing Unit). El microprocesador moderno combina esos componentes en un circuito integrado, grabado en una pequeña pieza de silicio. Los términos CPU, microprocesador y procesador se usan de manera intercambiable en este libro.

Los microprocesadores operan sobre datos binarios; estos son datos compuestos de unos y ceros. Estos unos y ceros corresponden a interruptores eléctricos que están encendidos o apagados. Igual que 42 es un número decimal que significa ``4 decenas y 2 unidades'', un número binario es una serie de dígitos binarios, cada uno representando una potencia de 2.

Los microprocesadores pueden realizar operaciones aritméticas como sumar, multiplicar y dividir, y operaciones lógicas como “¿es X mayor que Y?'”.

La ejecución del procesador viene gobernada por un reloj externo. Este reloj, el reloj del sistema, envía pulsos de reloj regulares al procesador y, a cada pulso de reloj, el procesador hace algún trabajo. Por ejemplo, un procesador podría ejecutar una instrucción a cada pulso de reloj. La velocidad del procesador se describe en términos de la frecuencia de pulsos del reloj del sistema. Un procesador de 100Mhz recibirá 100 000 000 pulsos de reloj cada segundo. Puede llevar a confusión describir la potencia de una CPU por su frecuencia de reloj ya que diferentes procesadores realizan diferentes cantidades de trabajo a cada pulso de reloj. De todos modos, si el resto de las características son iguales, una mayor velocidad de reloj significa un procesador más potente.

Las instrucciones ejecutadas por el procesador son muy simples; por ejemplo “copia en el registro Y el contenido de la posición X de la memoria”. Los registros son el almacén interno del microprocesador, se usan para almacenar datos y

Red Hat Certified Engineer 8

Page 9: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación del sistema operativo CentOS Linux

realizar operaciones sobre ellos. Las operaciones realizadas pueden hacer que el procesador deje de hacer los que estaba haciendo y salte a otra instrucción en otra parte de la memoria. Estos pequeños ladrillos dan al microprocesador moderno un poder casi ilimitado ya que puede ejecutar millones o incluso miles de millones de instrucciones por segundo.

Las instrucciones deben ser obtenidas de la memoria para ejecutarlas. Las propias instrucciones pueden hacer referencia a datos en la memoria, y esos datos deben ser obtenidos de la memoria y guardados en ella cuando se requiera.

Para obtener información de la CPU que está utilizando el sistema ejecute el comando:

# cat /proc/cpuinfo

El kernel de Linux y Multi-core

En plataformas basadas en procesadores multi-core, más de un núcleo de ejecución reside en un paquete físico. Cada núcleo tiene recursos propios y compartidos los cuales varian dependiendo de la implementación. Las implementaciones mas típicas de multi-core comparten al menos un nivel de cache y el bus frontal (front side bus – FSB).

Múltiples hilos lógicos (Hyper-threading – HT) o núcleos de ejecución (Multi-core – MC) en un paquete físico aparece al sistema operativo como múltiples procesadores lógicos, similar a los entornos de multi procesamiento simétrico (SMP). Por ejemplo, un procesador físico podría visualizarse como cuatro procesadores lógicos, si este utiliza tecnología dual-core y HT habilitado.

El archivo /proc/cpuinfo contiene información acerca de las CPU del sistema. Este archivo además exporta la información de multi-core y hyper-threading al sistema operativo.

El valor “ht” en el campo “flags” de /proc/cpuinfo indican que el procesador soporta los registros para reportar HT o MC. Los campos adicionales en los registros de /proc/cpuinfo dará información más precisa acerca de la topología de la CPU vista por el sistema operativo:

● physical id – Identificador del paquete físico de la CPU lógica. Varias CPU lógicas puede tener el mismo physical id.

● siblings – Numero total de procesadores lógicos (incluye tanto hilos y núcleos) en el paquete físico.

● cpu cores – El numero total de núcleos en el paquete físico actualmente en uso por el sistema operativo.

9 Ing. Iván Ferreira

Page 10: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación del sistema operativo CentOS Linux

● core id – El identificador del núcleo de la CPU lógica.

Los Kernels de Linux más recientes (> 2.6.17) reportan la topología de la CPU en sysfs además. Este mecanismo es más simple y rápido comparado con /proc.

Los campos exportados bajo /sys/devices/system/cpu/cpuX/topology proporcionan la información completa de la topología:

● physical_package_id - Identificador del paquete físico de la CPU lógica.

● core_id - El identificador del núcleo de la CPU lógica.

● core_siblings – Máscara de todas las CPUs en el paquete físico.

● thread_siblings – Máscara de todas las CPU lógicas un núcleo de CPU.

Obteniendo el Hamming Weight (número de bits activos) de la máscara proporcionará las capacidades del paquete físico.

Memoria

Todos los sistemas tienen una jerarquía de memoria, con memoria de diferentes velocidades y tamaños en diferentes puntos de la jerarquía. La memoria más rápida se conoce como memoria caché y es una memoria que se usa para almacenar temporalmente contenidos de la memoria principal. Este tipo de memoria es muy rápida pero cara, por tanto la mayoría de los procesadores tienen una pequeña cantidad de memoria caché en el chip y más memoria caché en el sistema (en la placa). Algunos procesadores tienen una caché para contener instrucciones y datos, pero otros tienen dos, una para instrucciones y la otra para datos. El procesador Alpha tiene dos memorias caché internas; una para datos (la Caché-D) y otra para instrucciones (la Caché-I). La caché externa (o Caché-B) mezcla los dos juntos. Finalmente está la memoria principal, que comparada con la memoria caché externa es muy lenta. Comparada con la caché en la CPU, la memoria principal se arrastra.

Las memorias caché y principal deben mantenerse sincronizadas (coherentes). En otras palabras, si una palabra de memoria principal se almacena en una o más posiciones de la caché, el sistema debe asegurarse de que los contenidos de la caché y de la memoria sean los mismos. El trabajo de coherencia de la caché es llevado a cabo parcialmente por el hardware y parcialmente por el sistema operativo. Esto es cierto también para un número de tareas principales del sistema, donde el hardware y el software deben cooperar íntimamente para alcanzar sus objetivos.

Puede obtener información de la memoria del sistema ejecutando el comando:

# cat /proc/meminfo

Red Hat Certified Engineer 10

Page 11: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación del sistema operativo CentOS Linux

Buses

Los componentes individuales de la placa del sistema están conectados entre sí por sistemas de conexión múltiple conocidos como buses. El bus de sistema está dividido en tres funciones lógicas; el bus de direcciones, el bus de datos y el bus de control. El bus de direcciones especifica las posiciones de memoria (direcciones) para las transferencias de datos. El bus de datos contiene los datos transferidos El bus de datos es bidireccional; permite escribir datos en la CPU y leerlos desde la CPU. El bus de control contiene varias lineas que se usan para dirigir señales de sincronismo y control a través del sistema. Existen muchos tipos de bus, por ejemplo los buses ISA y PCI son formas populares de conectar periféricos al sistema.

Para obtener información del bus pci ejecute:

# cat /proc/pci

Información de los dispositivos existentes en los demás buses del sistema, pueden ser obtenidos consultando el directorio:

/proc/bus

Controladores y periféricos

Los periféricos son dispositivos reales, como tarjetas gráficas o discos controlados por chips controladores que se encuentran en la placa del sistema, o en tarjetas conectadas a ella. Los discos IDE son controlados por el chip controlador IDE, y los discos SCSI por los chips controladores de disco SCSI, y así sucesivamente. Estos controladores están conectados a la CPU y entre ellos por una variedad de buses. La mayoría de los sistemas construidos actualmente usan buses PCI e ISA para conectar entre sí los principales componentes del sistema. Los controladores son procesadores como la propia CPU, se pueden ver como asistentes inteligentes de la CPU. La CPU tiene el control sobre todo el sistema.

Todos los controladores son diferentes, pero usualmente tienen registros que los controlan. El software que se ejecute en la CPU debe ser capaz de leer y escribir en esos registros de control. Un registro puede contener un estado que describa un error. Otro puede ser usado para propósitos de control; cambiando el modo del controlador. Cada controlador en un bus puede ser accedido individualmente por la CPU, esto es así para que el software gestor de dispositivos pueda escribir en sus registros y así controlarlo, La banda IDE es un buen ejemplo, ya que ofrece la posibilidad de acceder a cada unidad en el bus por separado. Otro buen ejemplo es el bus PCI, que permite acceder a cada dispositivo (por ejemplo una tarjeta gráfica) independientemente.

11 Ing. Iván Ferreira

Page 12: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación del sistema operativo CentOS Linux

Espacios de direcciones

El bus del sistema conecta la CPU con la memoria principal y está separado de los buses que conectan la CPU con los periféricos. El espacio de memoria en el que existen los periféricos hardware se conoce colectivamente como espacio de I/O (por Input/Output, Entrada/Salida). El espacio de I/O puede estar subdividido a su vez, pero no nos preocuparemos demasiado sobre eso de momento. La CPU puede acceder a la memoria en el espacio del sistema y a la memoria en el espacio de I/O, mientras que los controladores sólo pueden acceder a la memoria en el espacio del sistema indirectamente, y sólo con la ayuda de la CPU. Desde el punto de vista del dispositivo, digamos un controlador de disquetes, verá sólo el espacio de direcciones en el que se encuentran sus registros de control (ISA) y no la memoria del sistema.

Típicamente, una CPU tendrá instrucciones separadas para acceder al espacio de memoria y al espacio de I/O. Por ejemplo, puede haber una instrucción que signifique “lee un byte de la dirección de I/O 0x3f0 y ponlo en el registro X”. Así es exactamente como controla la CPU a los periféricos hardware del sistema, leyendo y escribiendo en sus registros en el espacio de I/O. En qué lugar del espacio I/O tienen sus registros los periféricos comunes (controlador IDE, puerta serie, controlador de disco flexible, y demás) ha sido definido por convenio a lo largo de los años conforme la arquitectura del PC se ha desarrollado. Sucede que la dirección 0x3f0 del espacio I/O es la dirección de uno de los registros de control de la puerta serie (COM1).

Existen ocasiones en las que los controladores necesitan leer o escribir grandes cantidades de datos directamente desde o a la memoria del sistema. Por ejemplo, cuando se escriben datos del usuario al disco duro. En este caso, se usan controladores de Acceso Directo a Memoria (Direct Memory Access - DMA) para permitir que los periféricos hardware accedan directamente a la memoria del sistema, pero este acceso está bajo el estricto control y supervisión de la CPU.

Para obtener información del espacio de direcciones ejecute el comando:

# cat /proc/ioports

Cronómetros

Todos los sistemas operativos necesitan saber la hora, y así, la placa madre incluye un dispositivo especial llamado el Reloj de Tiempo Real (Real Time Clock - RTC). Este dispositivo suministra dos cosas: una hora del día fiable y un cronómetro preciso. El RTC tiene su propia batería, de forma que siga funcionado incluso cuando el PC no esté encendido, así es como el equipo “sabe”' siempre la fecha y hora correctas. El cronómetro permite que el sistema operativo planifique de manera precisa el trabajo esencial.

Red Hat Certified Engineer 12

Page 13: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación del sistema operativo CentOS Linux

Interrupciones

Linux usa distintos componentes físicos para llevar a cabo trabajos muy diferentes. El dispositivo de vídeo maneja el monitor, el dispositivo IDE maneja los discos, y así sucesivamente. Puede manejar estos dispositivos de forma sincronizada, es decir, puede enviar una petición de alguna operación (como escribir un bloque de memoria a disco) y luego esperar que la operación se complete. Este método, aunque funciona, es muy poco eficiente y el sistema operativo pasaría mucho tiempo «ocupado sin hacer nada» mientras espera que cada operación finalice. Una manera mejor y más eficiente sería realizar la petición y luego realizar otra, un trabajo más útil que luego se interrumpiría cuando el dispositivo haya finalizado la petición. Con este esquema puede haber muchas peticiones pendientes hacia los dispositivos en el sistema, todas al mismo tiempo.

Algunas interrupciones son fijas por convenio de la arquitectura del hardware y entonces el controlador simplemente pide esa interrupción cuando se haya inicializado. Esto es lo que hace el controlador de la disquetera; siempre pide la IRQ 6 (IRQ = Interrupt ReQuest, petición de Interrupción). Puede haber ocasiones en las que un controlador no sepa qué interrupción va a usar el dispositivo. Esto no es un problema para los controladores de dispositivos PCI ya que siempre saben cual es su número de interrupción. Desafortunadamente no hay ninguna manera fácil de que los controladores de dispositivos ISA encuentren su número de interrupción.

Para obtener información de las interrupciones utilizadas ejecute el comando:

# cat /proc/interrupts

Información de hardware adicional

Otros comandos que permiten obtener información del equipo son dmesg, lshal, lspci, lsusb y hwbrowser.

Instalación de CentOS Linux

Antes de instalar CentOS Linux verifique que cumple los requisitos de espacio en disco para la instalación.

La instalación de CentOS Linux requiere de una partición utilizada como área de intercambio de memoria (swap) de al menos el mismo tamaño que la memoria RAM. Los archivos del sistema operativo requieren entre 500 M a 5 GB dependiendo de los paquetes seleccionados.

Nombres de Dispositivo en Linux

13 Ing. Iván Ferreira

Page 14: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación del sistema operativo CentOS Linux

En Linux, los nombres de disco y de particiones pueden ser diferentes de otros sistemas operativos. Para crear y montar particiones, necesita conocer los nombres que utiliza Linux. Este es el esquema básico de nomenclatura:

● La primera unidad de disquete se llama /dev/fd0.

● La segunda unidad de disquete se llama /dev/fd1.

● El primer disco SCSI se llama /dev/sda.

● El segundo disco SCSI se llama /dev/sdb, etc.

● El primer CD-ROM SCSI se llama /dev/scd0.

● El disco maestro de la controladora IDE primaria se llama /dev/hda. El disco esclavo de la controladora IDE primaria se llama /dev/hdb.

● El disco maestro de la controladora IDE secundaria se llama /dev/hdc. El disco esclavo de la controladora IDE secundaria se llama /dev/hdd.

● Los dispositivos USB son reconocidos como dispositivos SCSI, por tanto su nombre de dispositivo será /dev/sd<x>. Siendo <x> una letra disponible dependiendo de la cantidad de discos SCSI existentes en el sistema.

Las particiones de cada disco se representan añadiendo un número decimal al nombre del disco: sda1 y sda2 representan la primera y segunda partición del la primera unidad de disco SCSI de su sistema.

He aquí un ejemplo de la vida real. Supongamos que tiene un sistema con dos discos SCSI. El primer disco se llama por tanto sda, y el segundo sdb. Si la unidad sda tiene 3 particiones, éstas se llamarán sda1, sda2 y sda3. Lo mismo se aplica para el disco sdb y sus particiones.

En versiones más recientes de Linux, los dispositivos IDE utilizan también la nomenclatura /dev/sd.

Crear un CD-ROM de arranque de instalación

En el directorio images/ encontrará el archivo boot.iso. Este archivo ISO puede ser usado para iniciar el programa de instalación. Deberá quemar el archivo boot.iso a un CD grabable y la máquina debe estar configurada para arrancar desde el CD-ROM.

Arranque de la instalación desde un USB pen drive

Red Hat Certified Engineer 14

Page 15: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación del sistema operativo CentOS Linux

Si no puede arrancar desde el CD-ROM, pero puede iniciar desde un dispositivo USB, como un USB pen drive, la siguiente alternativa de inicio esta disponible.

Para iniciar desde un USB pen drive, utilice el comando dd para copiar la imagen diskboot.img desde el directorio /images/ del CD-ROM 1. Por ejemplo:

dd if=diskboot.img of=/dev/sda

El BIOS debe soportar iniciar desde un dispositivo USB.

Interfaz gráfica de usuario del programa de instalación

Si ha utilizado la interfaz de usuario en modo gráfico (GUI) con anterioridad, este proceso le será muy familiar. Use el ratón para navegar por las pantallas, pulse los botones o rellene los campos de texto. Puede también utilizar las teclas [Tab] y [ENTER] para navegar.

Si no quiere utilizar el programa de instalación GUI, está disponible el programa de instalación en modo texto. Para utilizarlo, ejecute el siguiente comando de arranque:

boot: linux text

Nota sobre las consolas virtuales

El programa de instalación de CentOS Linux ofrece más que las ventanas de diálogo del proceso de instalación. Además de darle la posibilidad de insertar comandos desde el intérprete de comandos de la shell, tiene a su disponibilidad muchos tipos diferentes de mensajes. El programa de instalación despliega estos mensajes en cinco consolas virtuales, entre las que puede cambiarse usando una combinación de teclas.

Consola Combinación de teclas Contenido1 [Ctrl]-[Alt]-[F1] Diálogo de instalación2 [Ctrl]-[Alt]-[F2] Intérprete de comandos de la shell3 [Ctrl]-[Alt]-[F3] Log de instalación 4 [Ctrl]-[Alt]-[F4] Mensajes de sistema5 [Ctrl]-[Alt]-[F5] Otros mensajes7 [Ctrl]-[Alt]-[F7] Pantalla gráfica de X

Opciones de arranque adicionales

15 Ing. Iván Ferreira

Page 16: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación del sistema operativo CentOS Linux

Aunque para un usuario resulta más sencillo arrancar desde un CD-ROM y ejecutar una instalación gráfica, en ocasiones hay instalaciones en las que puede ser necesario realizar el arranque con un método distinto. En esta sección se describen las opciones de arranque adicionales que hay disponibles para el sistema CentOS Linux.

Si no desea realizar una instalación gráfica, puede iniciar una instalación en modo texto mediante el siguiente comando de arranque:

boot: linux text

as imágenes ISO ahora tienen un md5sum integrado. Para probar la integridad checksum de una imagen ISO, en el indicador de comandos de arranque de la instalación, escriba:

boot: linux mediacheck

Si el programa de instalación no detecta correctamente el hardware instalado, probablemente deberá reiniciar la instalación en modo experto. Para usar el modo experto, escriba el siguiente comando de arranque:

boot: linux noprobe

Para ejecutar la instalación en modo texto en modo experto utilice:

boot: linux text noprobe

Si necesita realizar una instalación en modo serie, escriba el siguiente comando:

boot: linux console=<dispositivo>

Si tiene un disco de controlador de dispositivo (driver disk), especialmente para controladoras de disco, puede informar al programa de instalación con la opción. Se solicitará el disco controlador durante la instalación del sistema:

boot: linux dd

Para ejecutar la instalación en modo texto a través del puerto serie, utilice:

boot: linux text console=<dispositivo>

En el comando anterior, <dispositivo> es el dispositivo que está utilizando (como ttyS0 o ttyS1). Por ejemplo, linux text console=ttyS0,115200n8. Esto es especialmente útil para servidores sin tarjeta de video incorporada.

Opciones del kernel

Estas opciones se pueden transmitir directamente al kernel. Si por ejemplo, se desea que el kernel utilice toda la RAM en un sistema de 2 GB, introduzca:

Red Hat Certified Engineer 16

Page 17: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación del sistema operativo CentOS Linux

boot: linux mem=2048M

Esto puede ser útil especialmente en sistemas que comparten la memoria RAM con la tarjeta de video.

Selección de un método de instalación

Es posible iniciar el programa de instalación desde la unidad de CD y continuarla a partir de otra fuente de instalación. Para seleccionar el método de instalación utilice la siguiente opción de arranque:

boot: linux askmethod

La instalación puede ser realizada desde:

● CD-ROM: Si posee un lector de CD-ROM y tiene el CD-ROM de CentOS Linux, puede utilizar este método.

● Disco duro: Si ha copiado las imágenes ISO de CentOS Linux en el disco duro local, puede utilizar este método.

● Imagen NFS: Si está realizando la instalación desde un servidor NFS utilizando imágenes ISO o una imagen réplica de CentOS Linux, puede utilizar este método.

● FTP: Si está realizando la instalación directamente desde un servidor FTP, utilice este método.

● HTTP: Si está realizando la instalación directamente desde un servidor Web HTTP, utilice este método.

Instalación desde un CD-ROM

Para instalar CentOS Linux desde un CD-ROM, escoja CD-ROM y seleccione OK. Cuando el programa se lo indique, inserte el CD de CentOS Linux en el lector de disco (si no arrancó desde una unidad de CD). Una vez que el CD esté en la unidad de CD-ROM, seleccione OK, y presione [Enter].

Instalación desde un disco duro

Las instalaciones desde un disco duro solamente funcionan con los sistemas de archivos ext2, ext3 o FAT. Si tiene un sistema de archivos diverso de los que aparecen aquí como reiserfs, no podrá llevar a cabo este tipo de instalación.

17 Ing. Iván Ferreira

Page 18: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación del sistema operativo CentOS Linux

Las instalaciones desde el disco duro usan imágenes ISO (o de CD-ROM).

La pantalla “Selección de la partición” se puede aplicar sólo si está realizando la instalación desde una partición del disco (es decir, si ha seleccionado Disco duro en el Método de instalación. Esta ventana de diálogo le permite nombrar la partición del disco y el directorio desde el que está instalando CentOS Linux.

Introduzca el nombre del dispositivo de la partición que contiene las imágenes ISO. También hay un campo etiquetado Directorio que contiene imágenes. Si las imágenes ISO no se encuentran en el directorio root de esa partición introduzca el recorrido hacia las imágenes ISO (por ejemplo, si las imágenes ISO están en /iso/CentOS, introduzca /iso/CentOS).

Preparación para la instalación de red

Si está llevando a cabo una instalación de red, la ventana de diálogo Configurar TCP/IP aparecerá. Este diálogo le pedirá su IP y otras direcciones de red. Puede escoger configurar la dirección IP y la máscara del dispositivo a través de DHCP o manualmente.

Instalación a través de NFS

La ventana de NFS aparece solamente si está realizando una instalación desde un servidor NFS.

Introduzca el nombre de dominio completo o la dirección IP del servidor NFS.

A continuación, introduzca el nombre del directorio exportado. Introduzca el directorio que contiene el directorio RPMS/.

Instalación a través de FTP

La ventana de FTP aparece solamente si está realizando una instalación desde un servidor FTP si seleccionó FTP en el Método de instalación). Esta pantalla le permite identificar el servidor FTP desde el que está realizando la instalación de CentOS Linux.

Introduzca el nombre o la dirección IP del sitio FTP desde el que está instalando y el nombre del directorio que contiene los archivos de instalación CentOS para su arquitectura.

Instalación a través de HTTP

Red Hat Certified Engineer 18

Page 19: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación del sistema operativo CentOS Linux

La ventana de HTTP aparece solamente si está realizando una instalación desde un servidor HTTP si seleccionó HTTP en la ventana Método de instalación). Esta pantalla le pedirá información sobre el servidor HTTP desde el que está realizando la instalación de CentOS Linux.

Introduzca el nombre o la dirección IP del sitio HTTP desde el que está instalando y el nombre del directorio que contiene los archivos de instalación CentOS para su arquitectura.

Particionamiento automático de discos

El particionamiento automático le permite tener control de los datos que se han eliminado en su sistema. Tiene las siguientes opciones:

● Eliminar todas las particiones Linux del sistema: seleccione esta opción para eliminar tan sólo las particiones Linux (particiones creadas en una instalación Linux previa). No borrará el resto de particiones que tenga en el disco(s) duro(s) (tal como VFAT o particiones FAT32).

● Eliminar todas las particiones del sistema: seleccione esta opción para eliminar todas las particiones de su disco duro (esto incluye las particiones creadas por otros sistemas operativos tales como Windows).

● Mantener todas las particiones y usar el espacio libre existente: seleccione esta opción para conservar los datos y las particiones actuales, presumiendo que tiene suficiente espacio disponible en los discos duros.

Para revisar y realizar los cambios necesarios en las particiones creadas con el particionamiento automático, seleccione la opción Revisar.

Esquema de particionamiento recomendado

A no ser que tenga razones para hacerlo de otro modo, le recomendamos que cree las siguientes particiones:

● Una partición /boot (100MB – 150MB) la partición montada sobre /boot contiene el kernel del sistema operativo (que permitirá al sistema arrancar CentOS Linux), junto a otros archivos utilizados para el proceso de arranque. Debido a las limitaciones de la mayoría de las BIOS de los ordenadores, se aconseja crear una partición pequeña para guardar estos archivos. Para la mayoría de los usuarios, una partición de arranque de 100 MB es suficiente.

● Una partición swap Las particiones swap se usan para soportar la memoria virtual. En otras palabras, los datos se escriben en la partición swap cuando no hay suficiente RAM para almacenar los datos que su sistema está

19 Ing. Iván Ferreira

Page 20: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación del sistema operativo CentOS Linux

procesando. El tamaño mínimo de la partición swap debería ser igual al de la memoria RAM que tiene el sistema.

Hasta CentOS 2.1 existía una limitación del tamaño de la partición de swap hasta 2 GB para cada espacio swap. Esto era debido a que el comando mkswap no soportaba la creación de áreas de swap mayores a 2 GB. En CentOS Enterprise Linux 3 y superior, el comando mkswap permite la creación de particiones swap mayores a 2 GB.

CentOS Enterprise Linux 2.1 soporta hasta 32 particiones de 2 GB. Total 64 GB.CentOS Enterprise Linux 3 y superiores soportan particiones de swap mas grandes y esta dado por el límite del tamaño del dispositivo de bloques. CentOS Enterprise Linux tiene 1 TB como límite del tamaño de los dispositivos de bloques, por tanto es 1 TB.

● Una partición root (500MB - 6.0GB) aquí es donde se ubica "/" (el directorio raíz). En esta instalación, todos los archivos (excepto los almacenados en /boot) se encuentran en la partición raíz. Una partición raíz de 500 MB permitirá una instalación mínima, mientras que una partición de 5.0GB le permitirá instalar todos los paquetes.

● Una partición /home (Tamaño variable) Una partición independiente para los directorios HOME de los usuarios es una buena practica, permitiendo independizar el sistema de archivos raíz de los datos de usuarios, y también permite especificar opciones de montaje adicionales para mayor control del sistema de archivos (ej. nosuid, quota, etc).

● Una partición /var (Tamaño variable) Una partición independiente para el directorio /var es una buena practica, permitiendo independizar el sistema de archivos raíz de los datos de logs y spool, y también permite especificar opciones de montaje adicionales para mayor control del sistema de archivos (ej. nosuid, noexec, etc).

Configuración del gestor de arranque

El gestor de arranque es el primer software que se ejecuta cuando se arranca el ordenador. Es responsable de la carga y de la transferencia del control al software del sistema operativo del kernel. El kernel, por otro lado, inicializa el resto del sistema operativo.

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

Red Hat Certified Engineer 20

Page 21: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación del sistema operativo CentOS Linux

Puede instalar el gestor de arranque en uno de los dos sitios siguiente:

● El master boot record (MBR) Este es el sitio recomendado para instalar un gestor de arranque, a no ser que el MBR esté ocupado por el gestor de arranque de otro sistema operativo. El MBR es un área especial del disco duro que la BIOS de su ordenador carga automáticamente y el punto más próximo en el que el gestor de arranque puede tomar el control de la secuencia de arranque. Si lo instala en el MBR, al arrancar su máquina, GRUB presentará un indicador de comandos de arranque. Podrá entonces iniciar CentOS Linux o cualquier otro sistema operativo que le haya indicado al gestor de arranque.

● El primer sector de la partición raíz Se recomienda si está utilizando otro gestor de arranque en su sistema. En este caso, el otro gestor de arranque tendrá el control en un primer momento. Podrá configurar ese gestor de arranque para que inicie GRUB, que iniciará a su vez CentOS Linux.

Primer arranque

Durante el primer arranque del sistema operativo, deberá realizar ciertas configuraciones adicionales básicas, tales como fecha y hora, creación de usuarios regulares, prueba de tarjeta de sonido, configuración del cortafuegos, kdump y SELinux.

Configuración del cortafuegos

Un cortafuegos permite proteger al servidor de posibles ataques o accesos de intrusos a servicios proporcionados por el equipo a través de la red. Es recomendado que en esta etapa de la instalación del equipo deshabilite el firewall y lo habilite posteriormente, una vez que todos los servicios hayan sido configurados y probados.

Para detalles acerca de configuración de firewalls, infórmese acerca del curso “LE-302 – Netfilter/IPTables”.

Configuración de Kdump

Kdump es un mecanismo de volcado del kernel en caso de fallo. Si el sistema se cuelga, un archivo del kernel puede ser capturado utilizando kdump. La captura del archivo de kernel puede ayudar a determinar las causas principales del falla en el sistema. Tenga en cuenta que kdump requiere una porción de la memoria del sistema que no podrá ser usada por ningún otro usuario.

Es recomendado que habilite Kdump en servidores de tal forma a tener la

21 Ing. Iván Ferreira

Page 22: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación del sistema operativo CentOS Linux

información necesaria para diagnosticar problemas en caso de problemas con el sistema.

Configuración de SELinux

SELinux proporciona un sistema flexible de control de acceso obligatorio (mandatory access control, MAC) incorporado en el kernel. Bajo el Linux estándar se utiliza el control de acceso a discreción (discretionary access control, DAC), en el que un proceso o aplicación ejecutándose como un usuario (UID o SUID) tiene los permisos y de ese usuario en los objetos, archivos, sockets y otros procesos. Al ejecutar un kernel SELinux MAC se protege al sistema de aplicaciones maliciosas o dañadas que pueden perjudicar o destruir el sistema. SELinux define el acceso y los derechos de transición de cada usuario, aplicación, proceso y archivo en el sistema.

Es recomendado que en esta etapa de la instalación del equipo deshabilite SELinux y lo habilite únicamente si entiende las implicancias de ello. Para detalles acerca de SELinux, infórmese acerca del curso “LE-301 – Seguridad Local”.

El archivo anaconda-ks.cfg

El programa de instalación de CentOS Linux también crea un archivo kickstart de muestra basado en las opciones que seleccionó durante la instalación. Se escribe al archivo /root/anaconda-ks.cfg. Debería ser capaz de modificarlo en cualquier editor de texto o procesador de texto que pueda guardar archivos como texto ASCII. También podrá usar la herramienta system-config-kickstart para realizar modificaciones al archivo desde la GUI.

Red Hat Certified Engineer 22

Page 23: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

2

Administración del sistema de archivos

Page 24: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración del sistema de archivos

Administración del sistema de archivos

El sistema de ficheros

Una de los rasgos más importantes de Linux es su soporte para diferentes sistemas de ficheros. Ésto lo hace muy flexible y bien capacitado para coexistir con muchos otros sistemas operativos. Linux soporta los sistemas de ficheros; ext2, ext3, minix, umsdos, msdos, vfat, proc, smb, ncp, iso9660, sysv, hpfs, affs and ufs, ntfs, jfs, ReiserFS entre otros.

Un importante desarrollo tuvo lugar cuando se añadió en sistema de ficheros EXT en Linux. El sistema de ficheros real se separó del sistema operativo y servicios del sistema a favor de un interfaz conocido como el sistema de Ficheros Virtual, o VFS.

VFS permite a Linux soportar muchos, incluso muy diferentes, sistemas de ficheros, cada uno presentando un interfaz software común al VFS. Todos los detalles del sistema de ficheros de Linux son traducidos mediante software de forma que todo el sistema de ficheros parece idéntico al resto del kernel de Linux y a los programas que se ejecutan en el sistema. La capa del sistema de Ficheros Virtual de Linux permite al usuario montar de forma transparente diferentes sistemas de ficheros al mismo tiempo.

El Second Extended File system (EXT2)

El sistema de ficheros EXT2, como muchos sistemas de ficheros, se construye con la premisa de que los datos contenidos en los ficheros se guarden en bloques de datos.

Estos bloques de datos son todos de la misma longitud y, si bien esa longitud puede variar entre diferentes sistemas de ficheros EXT2 el tamaño de los bloques de un sistema de ficheros EXT2 en particular se decide cuando se crea (usando mke2fs).

El tamaño de cada fichero se redondea hasta un numero entero de bloques. Si el tamaño de bloque es 1024 bytes, entonces un fichero de 1025 bytes ocupará dos bloques de 1024 bytes. Desafortunadamente esto significa que por media se desperdicia un bloque por fichero.

No todos los bloques del sistema de ficheros contienen datos, algunos deben usarse para mantener la información que describe la estructura del sistema de ficheros.

EXT2 define la topología del sistema de ficheros describiendo cada fichero del sistema con una estructura de datos inodo. Un inodo describe que bloques ocupan

Red Hat Certified Engineer 24

Page 25: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración del sistema de archivos

los datos de un fichero y también los permisos de acceso del fichero, las horas de modificación del fichero y el tipo del fichero. Cada fichero en el sistema de ficheros EXT2 se describe por un único inodo y cada inodo tiene un único número que lo identifica. Los inodos del sistema de ficheros se almacenan juntos en tablas de inodos. Los directorios EXT2 son simplemente ficheros especiales (ellos mismos descritos por inodos) que contienen punteros a los inodos de sus entradas de directorio.

En la figura de abajo se presenta la organización del sistema de archivos EXT2:

El sistema de ficheros EXT2 divide las particiones lógicas que ocupa en Grupos de Bloque (Block Groups). Cada grupo duplica información crítica para la integridad del sistema de ficheros ya sea valiéndose de ficheros y directorios como de bloques de información y datos. Esta duplicación es necesaria por si ocurriera un desastre y el sistema de ficheros necesitara recuperarse.

El inodo EXT2

En el sistema de ficheros EXT2, el inodo es el bloque de construcción básico; cada

25 Ing. Iván Ferreira

Page 26: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración del sistema de archivos

fichero y directorio del sistema de ficheros es descrito por un y sólo un inodo. Los inodos EXT2 para cada Grupo de Bloque se almacenan juntos en la table de inodos con un mapa de bits que permite al sistema seguir la pista de inodos reservados y libres.

El inodo proporciona la siguiente información del archivo:

● Modo Esto mantiene dos partes de información; qué inodo describe y los permisos que tienen los usuarios. Para EXT2, un inodo puede describir un ficheros, directorio, enlace simbólico, dispositivo de bloque, dispositivo de caracter o FIFO.

● Información de propietario Los identificadores de usuario y grupo de los dueños de este fichero o directorio. Esto permite al sistema de ficheros aplicar correctamente el tipo de acceso,

● Tamaño El tamaño en del fichero en bytes,

● Marcas de tiempo La hora en la que el inodo fue creado y la última hora en que se modificó,

● Bloques de datos Punteros a los bloques que contienen los datos que este inodo describe. Los doce primeros son punteros a los bloques físicos que contienen los datos descritos por este inodo y los tres últimos punteros contienen más y más niveles de indirección. Por ejemplo, el puntero de doble indirección apunta a un bloque de punteros que apuntan a bloques de punteros que apuntan a bloques de datos. Esto significa que ficheros menores o iguales a doce bloques de datos en longitud son más fácilmente accedidos que ficheros más grandes. Si el archivo ocupa más de doce bloques de datos, se utilizan los punteros indirectos para permitir referenciar a más bloques de datos que conforman el archivo.

El Superbloque

El Superbloque contiene una descripción del tamaño y forma base del sistema de ficheros (Tipo de sistema de archivos). La información contenida permite al administrador del sistema de ficheros usar y mantener el sistema de ficheros.

Normalmente sólo se lee el Superbloque del Grupo de Bloque 0 cuando se monta el sistema de ficheros pero cada Grupo de Bloque contiene una copia duplicada en caso de que se corrompa sistema de ficheros. Entre otra información contiene el:

● Magic Number Esto permite al software de montaje comprobar que es realmente el Superbloque para un sistema de ficheros EXT2.

● Revision Level Los niveles de revisión mayor y menor permiten al código de montaje determinar si este sistema de ficheros soporta o no características

Red Hat Certified Engineer 26

Page 27: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración del sistema de archivos

que sólo son disponibles para revisiones particulares del sistema de ficheros. También hay campos de compatibilidad que ayudan al código de montaje determinar que nuevas características se pueden usar con seguridad en ese sistema de ficheros,

● Mount Count and Maximum Mount Count Juntos permiten al sistema determinar si el sistema de ficheros fue comprobado correctamente. El contador de montaje se incrementa cada vez que se monta el sistema de ficheros y cuando es igual al contador máximo de montaje se ejecuta la comprobación del sistema de archivos,

● Block Group Number El número del Grupo de Bloque que tiene la copia de este Superbloque,

● Block Size El tamaño de bloque para este sistema de ficheros en bytes, por ejemplo 1024 bytes,

● Blocks per Group El número de bloques en un grupo. Como el tamaño de

bloque éste se fija cuando se crea el sitema de ficheros,

● Free Blocks EL número de bloques libres en el sistema de ficheros,

● Free Inodes El número de Inodos libres en el sistema de ficheros,

● First Inode Este es el número de inodo del primer inodo en el sistema de ficheros. El primer inodo en un sistema de ficheros EXT2 raíz seria la entrada directorio para el directorio '/'.

El descriptor de grupo

Cada Grupo de Bloque tiene una estructura de datos que lo describe. Como el Superbloque, todos los descriptores de grupo para todos los Grupos de Bloque se duplican en cada Grupo de Bloque en caso de corrupción del sistema de fichero. Cada Descriptor de Grupo contiene la siguiente información:

● Blocks Bitmap El número del bloque que contiene el mapa de bits de bloques reservados para este Grupo de Bloque. Se usa durante la reserva y liberación de bloques,

● Inode Bitmap El número del bloque que contiene el mapa de bits de inodos reservados para este Grupo de Bloques. Se usa durante la reserva y liberación de inodos,

● Inode Table El número del bloque inicial para la tabla de inodos de este Grupo de Bloque. Cada tabla de inodos contiene un contador de inodos y bloques libres.

27 Ing. Iván Ferreira

Page 28: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración del sistema de archivos

El sistema de archivos EXT3

Básicamente, el sistema de archivos ext3 es una versión mejorada de ext2. Las mejoras introducidas proporcionan las siguientes ventajas:

● Disponibilidad Tras un corte eléctrico o una caída inesperada del sistema (también se denomina cierre no limpio del sistema), se debe comprobar con el programa e2fsck cada sistema de archivos ext2 montado en la máquina para ver si es consistente. El proceso de comprobación lleva mucho tiempo y puede prolongar el tiempo de arranque del sistema de un modo significativo, especialmente si hay grandes volúmenes que contienen un elevado número de archivos. Durante este proceso, no se puede acceder a los datos de los volúmenes.

Con la característica journaling del sistema de archivos ext3 ya no es necesario realizar este tipo de comprobación en el sistema de archivos después de un cierre no limpio del sistema. En el sistema ext3, únicamente se realiza una comprobación de consistencia en los casos puntuales en los que se producen determinados errores de hardware, como, por ejemplo, fallos en el disco duro. El tiempo empleado para recuperar un sistema de archivos ext3 tras un cierre no limpio del sistema no depende del tamaño del sistema de archivos ni del número de archivos, sino del tamaño del journal (diario), utilizado para mantener la consistencia en el sistema. Por defecto, la recuperación del tamaño del "journal" tarda alrededor de un segundo, según la velocidad del hardware.

● Integridad de los datos El sistema de archivos ext3 proporciona una integridad superior de los datos si se produce un cierre no limpio del sistema. El sistema de archivos ext3 le permite seleccionar el tipo y el nivel de protección de los datos. Por defecto, CentOS Linux configura los volúmenes ext3 para que el nivel de consistencia de los datos sea elevado en relación con el estado del sistema de archivos.

● Velocidad El sistema de archivos ext3, aparte de permitir escribir datos más de una vez, en la mayoría de los casos tiene un rendimiento superior al que proporciona ext2 porque los "journals" de ext3 optimizan el movimiento de los cabezales de los discos duros. Se pueden seleccionar tres modos de journaling para optimizar la velocidad, pero, como contrapartida, la integridad de los datos se verá afectada.

● Fácil transición La migración de ext2 a ext3 es muy sencilla y se pueden aprovechar las ventajas de un sólido sistema de archivos con journaling sin tener que volver a dar formato al sistema, simplemente con el comando tune2fs.

Red Hat Certified Engineer 28

Page 29: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración del sistema de archivos

Gestión de particiones

Un disco puede dividirse en diferentes particiones. Se puede acceder a cada partición como si fuera un disco separado. Además cada partición tiene un tipo que se usa para indicar como esta almacenada la información en la partición.

En el primer sector del disco está el registro de arranque maestro junto a la tabla de particiones. El registro de arranque (como su nombre indica) se usa para arrancar el sistema. La tabla de particiones contiene información acerca del lugar y el tamaño de cada partición. Hay tres clases de particiones:

● Primarias: Las más usadas, debido al límite del tamaño de la tabla de particiones, sólo pueden tenerse hasta cuatro particiones primarias en un disco.

● Extendidas: Una partición extendida no tiene datos ella misma; en su lugar, actúa como "soporte" de particiones lógicas; solo puede tenerse una partición extendida por disco y deberá ocupar todo el espacio restante disponible en el disco.

● Unidades Lógicas: Se puede crear cualquier número de particiones lógicas de un tamaño inferior o igual a la partición extendida.

Cantidad máxima de particiones

Un disco IDE puede tener como máximo 63 particiones, Un disco SCSI puede tener como máximo 15 particiones.

Numeración de particiones

Cada partición en Linux es representada por un número. Cada partición primaria y extendida se numera consecutivamente a partir del número uno. Las unidades lógicas siempre comienzan a enumerarse consecutivamente desde el número cinco. Es decir:

● <dispositivo>1 Es la primera partición primaria en dispositivo.

● <dispositivo>2 Es la segunda partición primaria o la partición extendida de dispositivo.

● <dispositivo>3 Es la tercera partición primaria o la partición extendida de dispositivo.

● <dispositivo>4 Es la cuarta partición primaria o la partición extendida de

29 Ing. Iván Ferreira

Page 30: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración del sistema de archivos

dispositivo.

● <dispositivo>5 Es la primera unidad lógica en dispositivo. El número de partición es independientemente de la cantidad de particiones primarias que se hayan creado. La primera unidad lógica siempre tendrá como número de partición 5.

● <dispositivo>6 Es la segunda unidad lógica en dispositivo.

Siendo <dispositivo> un dispositivo como /dev/hda o /dev/sda. Por ejemplo, si usted crea una partición primaria y una extendida con dos unidades lógicas tendría las particiones 1, 2, 5 y 6 respectivamente.

Usando fdisk

Esta es la herramienta tradicional de partición de disco de Linux. Este comando permite configurar las particiones de un disco por medio de la línea de comandos. Existen opciones que deben ser conocidas a modo de operar el comando fdisk. La sintaxis es la siguiente:

fdisk [-l] <dispositivo>

La opción -l indica a fdisk que simplemente muestre la tabla de particiones del dispositivo.

Una vez iniciado fdisk, puede utilizar los siguientes comandos:

Comando Descripción

m Manual - Muestra la ayuda.p Print - Muestra la tabla de particiones actual.n New - Crear una nueva partición. Primero le solicitará el número de

partición, luego el cilindro de inicio y final, el cilindro de inicio es recomendado que acepte el propuesto y el cilindro final puede especificar de la forma +(N)M, lo cual indica al comando fdisk que cree una partición de N MB.

d Delete - Borrar una partición. Le solicitará el número de la partición que desea borrar.

t Toogle – Cambia el tipo de partición. Deberá realizar este procedimiento por ejemplo para indicar que la partición creada será de tipo swap.

w Write - Guarda los cambios en la tabla de particiones de disco.q Quit - Sale sin guardar los cambios en la tabla de particiones del

disco.

Red Hat Certified Engineer 30

Page 31: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración del sistema de archivos

Comando Descripción

a Active - Activa o desactiva una partición para el arranque. La partición activa es aquella que contiene el cargador de arranque. Si el cargador de arranque está en el MBR, la partición activa será la primera.

Ejemplo:

# fdisk /dev/sdaCommand (m for help): pDisk /dev/sda: 255 heads, 63 sectors, 784 cylindersUnits = cylinders of 16065 * 512 bytesDevice Boot Begin Start End Blocks Id System/dev/sda1 * 1 1 26 208813+ 83 Linux native/dev/sda2 27 27 784 6088635 5 Extended/dev/sda5 27 27 645 4972086 83 Linux native/dev/sda6 646 646 776 1052226 83 Linux native/dev/sda7 777 777 784 64228+ 82 Linux swapCommand (m for help): q

Creación del sistema de archivos

Una vez creada la partición se debe crear el sistema de archivos en ella, para ello use el comando mkfs. La sintaxis del comando es como sigue:

mkfs -t tipo [opciones] dispositivo

En la actualidad mkfs es un front end para los varios tipos de creadores de sistemas de archivos (mkfs.tipofs).

Ejemplo: Para crear un sistema de archivos en la primera partición del primer disco scsi ejecute el comando:

# mkfs -t ext3 /dev/sda1

Ajustando parámetros del sistema de archivos ext2/ext3

El comando tune2fs es usado para modificar parámetros del sistema de archivos ext2/ext3. La sintaxis es la siguiente:

tune2fs [opciones] filesystem

Las opciones mas comunes para el comando tune2fs son:

31 Ing. Iván Ferreira

Page 32: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración del sistema de archivos

Opción Descripción

-c Ajusta el contador de montaje máximo entre verificaciones del sistema de archivos. Si es 0 se deshabilita esta opción.

-i Ajusta el intervalo de tiempo entre verificaciones, por defecto cada 6 meses se realizará una verificación del sistema de archivos al momento de montado.

-j Agrega un diario (journal) convirtiendo un sistema de archivos ext2 en ext3.

-L Establece una etiqueta para el volúmen.-m Especifica el porcentaje de espacio reservado en el sistema de

archivos para el usuario root. Este espacio permite que el sistema de archivos se llene por completo y el usuario root pueda realizar tareas de recuperación. Por defecto 5 %.

Ejemplo:

Para migrar un filesystem de tipo ext2 a ext3, sin destruir los datos, ejecute el siguiente comando:

# tune2fs -j /dev/sda1

# tune2fs -c0 -i0 -m0 /dev/sda1

Para mostrar los parámetros actuales del sistema de archivos utilice el comando:

dumpe2fs [-h] filesystem

Montado de sistemas de archivos

Como se explicó anteriormente las particiones de los discos en Linux se montan en directorios como /, /home y /usr. El sistema tiene un fichero llamado /etc/fstab en el cual se especifican dónde y en que forma se montan los diferentes dispositivos. Cada línea en este fichero describe un dispositivo, indicando los siguientes aspectos para cada uno:

● Nombre del dispositivo o etiqueta: Ejemplos: /dev/hda1, /dev/sdc1, /dev/fd0, LABEL=/home, LABEL=/cursos, etc.

● Directorio donde se monta: Ejemplos: /, /mnt/floppy, /tmp, etc.

● Sistema de ficheros: Ejemplos: ext3, vfat, nfs, swap, iso9660, auto, etc.

Red Hat Certified Engineer 32

Page 33: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración del sistema de archivos

● Opciones de montaje: Ejemplos: ro, rw, exec, auto, user, etc.

● Dos valores númericos: el primero toma los valores 0 ó 1 indicando si al dispositivo se le hará dump o no, esta opción es obsoleta. El segundo número expresa la prioridad que tiene el dispositivo cuando se chequea la integridad del file system durante el inicio del sistema.

Las opciones de montaje son numerosas. Las más usadas se listan a continuación:

Opción Descripción

auto Indica que el dispositivo se monta siempre que se inicie el sistema. La opuesta es noauto.

rw Indica que el dispositivo se monta con permisos de lectura y escritura.

ro Indica que el dispositivo se monta con permisos de lectura solamente.

owner Indica que el primer usuario distinto de root conectado al sistema localmente tiene derechos a montar y desmontar el dispositivo (se adueña de este).

user Indica que cualquier usuario puede montar y solo el mismo usuario podrá desmontar el dispositivo. La opción opuesta es nouser.

users Indica que cualquier usuario puede montar y cualquiera también, puede desmontar el dispositivo.

suid Indica que el permiso “s” tenga efecto para los ejecutables presentes en el dispositivo. La opción opuesta es nosuid.

exec Indica que los binarios ejecutables almacenados en el dispositivo se pueden ejecutar. La opción opuesta es noexec.

async Expresa que todas las operaciones de entrada y salida se hacen de forma asíncrona, o sea, no necesariamente en el momento en que se invocan. La opción opuesta es sync.

dev Indica que se interprete como tal a los dispositivos especiales de bloques y de caracteres presentes en el dispositivo. La opción opuesta es nodev.

defaults es una opción equivalente a la unión de rw, suid, dev, exec, auto, nouser y async.

Actualmente para cada dispositivo con sistema de ficheros ext3 en lugar de especificar su nombre en el fichero fstab se puede indicar una etiqueta o identificador asociado. La forma utilizada es LABEL=<etiqueta> o UUID=<uuid>. Esta posibilidad hace más robusta la configuración ante la realización de cambios en los discos duros ya sea porque se incluyan nuevos o se

33 Ing. Iván Ferreira

Page 34: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración del sistema de archivos

reordenen los existentes. Para ver o cambiar la etiqueta de un dispositivo se puede emplear el comando e2label.

Ejemplos de líneas en el fichero /etc/fstab son:

LABEL=/ / ext2 defaults 1 1/dev/sda7 /home ext3 defaults 1 2/dev/cdrom /media/cdrom iso9660 noauto,owner,ro 0 0/dev/fd0 /media/floppy auto noauto,owner 0 0/dev/sda2 swap swap defaults 0 0/dev/sdc1 /d0 ext3 ro,noexec,owner,noauto 1 0

Para montar y desmontar los dispositivos se emplean los comandos mount y umount respectivamente. Estos mantienen una lista de los dispositivos montados en el fichero /etc/mtab.

Sintaxis:

mount [opciones] [dispositivo] [punto_montaje]

umount [opciones] <punto_montaje>|<dispositivo>

Algunas opciones:

Opción Descripción

-a En el caso de mount monta todos los dispositivos que tienen la opción auto en el fichero fstab, y para umount desmonta todo lo que está en el fichero /etc/mtab.

-t <tipo> Indica el tipo de sistema de archivos a montar.-o <opciones> Especifica las opciones de montaje (separadas por comas).

Cuando se especifican en el fichero fstab las características del montaje de un dispositivo, para montarlo no es necesario indicarlo todo, basta con poner el nombre del dispositivo o el directorio donde se monta por defecto.

Ejemplos:

Monta todos los dispositivos con sistemas de archivos ext3 y con la opción auto en el fichero /etc/fstab# mount -a -t ext2

Monta un pen drive en el directorio /media/usbdisk # mount /dev/sdb1 /media/usbdisk

Red Hat Certified Engineer 34

Page 35: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración del sistema de archivos

Monta el cdrom. Toma las especificaciones del fichero /etc/fstab# mount /dev/cdrom

O

# mount /media/cdrom

Desmonta todo los dispositivos con sistema de archivos NFS especificados en /etc/mtab# umount -a -t nfs

Desmonta el cdrom

# umount /media/cdrom

Siempre que un dispositivo esté siendo utilizado por el sistema no se podrá desmontar. Este emitirá un mensaje de error como en el siguiente ejemplo:

# umount /media/cdrom umount: /media/cdrom: device is busy

Un dispositivo puede estar ocupado por el simple hecho de tener posicionado un shell en el directorio donde se montó, haber lanzado un ejecutable en segundo plano desde ese directorio, o haber montado otro dispositivo en un subdirectorio del mismo. Para lograr el objetivo será necesario eliminar todos estos casos.

Para identificar si un sistema de archivos está siendo utilizado por algún proceso, ejecute el comando fuser o lsof.

Ejemplo de la adición de un disco con sistema de archivos ext3

1. Particionar el disco, en este ejemplo se crearán una partición primaria de 2GB, una partición extendida con 2 unidades lógicas de 1GB.

# fdisk /dev/sdb

El número de cilindros para este disco está establecido en 1940.No hay nada malo en ello, pero es mayor que 1024, y en algunos casospodría causar problemas con:1) software que funciona en el inicio (p.ej. versiones antiguas de LILO)2) software de arranque o particionamiento de otros sistemas operativos (p.ej. FDISK de DOS, FDISK de OS/2)

Orden (m para obtener ayuda): pDisco /dev/sdb: 15.0 GB, 15020457984 bytes240 cabezas, 63 sectores/pista, 1940 cilindrosUnidades = cilindros de 15120 * 512 = 7741440 bytes

Disposit. Inicio Principio Fin Bloques Id Sistema/dev/sdb1 1 555 4195768+ b Win95 FAT32

35 Ing. Iván Ferreira

Page 36: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración del sistema de archivos

Orden (m para obtener ayuda): dSe ha seleccionado la partición 1

Orden (m para obtener ayuda): p

Disco /dev/sdb: 15.0 GB, 15020457984 bytes240 cabezas, 63 sectores/pista, 1940 cilindrosUnidades = cilindros de 15120 * 512 = 7741440 bytes

Disposit. Inicio Principio Fin Bloques Id Sistema

Orden (m para obtener ayuda): nAcción de la ordene Partición extendidap Partición primaria (1-4)pNúmero de partición (1-4): 1Primer cilindro (1-1940, valor predeterminado 1): [ENTER]Último cilindro o +tamaño o +tamañoM o +tamañoK (1-1940, valor predeterminado 1940): +2048M

Orden (m para obtener ayuda): nAcción de la ordene Partición extendidap Partición primaria (1-4)eNúmero de partición (1-4): 2Primer cilindro (267-1940, valor predeterminado 267): [ENTER]Último cilindro o +tamaño o +tamañoM o +tamañoK (267-1940, valor predeterminado 1940): [ENTER]

Orden (m para obtener ayuda): pDisco /dev/sdb: 15.0 GB, 15020457984 bytes240 cabezas, 63 sectores/pista, 1940 cilindrosUnidades = cilindros de 15120 * 512 = 7741440 bytes

Disposit. Inicio Principio Fin Bloques Id Sistema/dev/sdb1 1 266 2010928+ 83 Linux/dev/sdb2 267 1940 12655440 5 Extendida

Orden (m para obtener ayuda): nAcción de la ordenl Partición lógica (5 o superior) p Partición primaria (1-4)lPrimer cilindro (267-1940, valor predeterminado 267): [ENTER]Último cilindro o +tamaño o +tamañoM o +tamañoK (267-1940, valor predeterminado 1940): +1024MOrden (m para obtener ayuda): nAcción de la ordenl Partición lógica (5 o superior)p Partición primaria (1-4)lPrimer cilindro (400-1940, valor predeterminado 400): [ENTER]Último cilindro o +tamaño o +tamañoM o +tamañoK (400-1940, valor predeterminado 1940): +1024MOrden (m para obtener ayuda): pDisco /dev/sdb: 15.0 GB, 15020457984 bytes240 cabezas, 63 sectores/pista, 1940 cilindros

Red Hat Certified Engineer 36

Page 37: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración del sistema de archivos

Unidades = cilindros de 15120 * 512 = 7741440 bytes

Disposit. Inicio Principio Fin Bloques Id Sistema/dev/sdb1 1 266 2010928+ 83 Linux/dev/sdb2 267 1940 12655440 5 Extendida/dev/sdb5 267 399 1005448+ 83 Linux/dev/sdb6 400 532 1005448+ 83 Linux

Orden (m para obtener ayuda): w¡Se ha modificado la tabla de particiones!

Llamando a ioctl() para volver a leer la tabla de particiones.Se están sincronizando los discos.

2. Crear el sistema de archivos.

# mkfs -t ext3 /dev/sdb1mke2fs 1.34 (25-Jul-2003)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)251392 inodes, 502732 blocks25136 blocks (5.00%) reserved for the super userFirst data block=016 block groups32768 blocks per group, 32768 fragments per group15712 inodes per groupSuperblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912

Writing inode tables: doneCreating journal (8192 blocks): doneWriting superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 32 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.

Repita el comando para cada una de las particiones primarias o unidades lógicas de tipo Linux (83) creadas.

3. Ajustar los parámetros para el sistema de archivos creado.

# tune2fs -c0 -i0 -m0 /dev/sdb1tune2fs 1.34 (25-Jul-2003)Setting maximal mount count to -1Setting interval between check 0 secondsSetting reserved blocks percentage to 0 (0 blocks)

Repita el comando para cada uno de los sistemas de archivos ext3 creados.

6. Creamos los puntos de montaje para cada sistema de archivos.

# mkdir /d0# mkdir /d1...

Repita el comando para cada una de los sistemas de archivos creados. Seleccione el nombre que desee para el directorio el cual será el punto de montaje. No es

37 Ing. Iván Ferreira

Page 38: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración del sistema de archivos

requisito que el directorio se encuentre en la raíz del sistema.

7. Editamos el archivo /etc/fstab para el montado al inicio de los sistemas de archivos.

# vi /etc/fstab

/dev/hda1 /d0 ext3 defaults 0 0/dev/hda2 /d1 ext3 defaults 0 0...

8. Montamos los sistemas de archivos.

# mount /d0# mount /d1...

Verificación y reparación del sistema de archivos ext2/ext3

El comando fsck permite hacer una verificación y reparación del sistema de archivos ext2/ext3. Si el sistema de archivos es ext3, fsck normalmente aplicará el journal y terminará.

El comando fsck verificará que:

● Que todos los bloques sean referenciados en al menos una lista, ninguno se encuentre duplicado en una lista o sea referenciado por más de una lista.

● Que un inodo utilizado tenga una entrada en un directorio, y que los directorios no referencien a inodos libres.

● Que el tamaño del archivo y la cantidad de bloques que ocupa concuerden.

El comando fsck no realiza una verificación de la superficie del disco duro, es decir, no buscará bloques defectuosos que no puedan ser leídos o escritos. Sin embargo, puede instruirse al comando fsck que utilice el comando badblocks para actualizar la tabla de bloques dañados con la opción -c. Nunca es requerido ejecutar badblocks sobre discos SCSI.

La sintaxis del comando fsck es la siguiente:

fsck [opciones] [filesystem]

Entre las opciones más comunes se encuentran:

Red Hat Certified Engineer 38

Page 39: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración del sistema de archivos

Opción Descripción

-s Serializar operaciones. Es útil para cuando se realizan verificaciones múltiples.

-A ntenta verificar todos los sistemas de archivos definidos en el /etc/fstab.

-C Despliega una barra de progreso para aquellos sistemas de archivos que están siendo verificados.

-y Responder Si a todas las preguntas.

Sólo el usuario root puede ejecutar el comando fsck y debe ser corrido sobre sistemas de archivos que no estén montados, de lo contrario, puede provocar corrupción de datos. Para verificar el sistema de archivos root “/”, deberá montarlo como sólo lectura.

El fsck devuelve los siguientes códigos de salida (exit code):

Código Descripción

0 Sin errores1 Errores corregidos2 El sistema debería ser reiniciado4 Errores de sistemas de archivos no corregidos8 Error operacional16 Error de sintaxis32 Cancelado por petición del usuario

128 Error de bibliotecas compartidas

Los códigos de error pueden ser visualizados ejecutando man fsck.

Gestión del espacio Swap

El Espacio swap en Linux es usado cuando la cantidad de memoria física (RAM) está llena. Si el sistema necesita más recursos de memoria y la memoria física está llena, las páginas inactivas de la memoria se mueven al espacio swap. Mientras que el espacio swap puede ser de ayuda para las máquinas con poca memoria RAM, no debería considerarse como algo que pueda sustituir a más RAM. El espacio Swap se encuentra en discos duros, que tienen un tiempo de acceso más lento que la memoria física.

El espacio Swap puede ser una partición swap dedicada (recomendable), un archivo swap o una combinación de particiones y archivos swap.

39 Ing. Iván Ferreira

Page 40: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración del sistema de archivos

Añadir el espacio Swap

A veces es necesario añadir más espacio swap después de la instalación. Por ejemplo, puede actualizar la cantidad de RAM en su sistema de 1 GB a 2 GB, pero hay tan sólo 1 GB de espacio swap. Sería conveniente aumentar la cantidad de espacio swap hasta 2 GB sobre todo si lleva a cabo operaciones de uso intensivo de memoria o si ejecuta aplicaciones que requieran gran cantidad de memoria.

Tiene dos opciones: añadir una partición swap o un archivo swap. Se recomienda que añada una partición swap, pero a veces no resulta fácil si no cuenta con espacio libre disponible.

Para añadir una partición swap ( asumiendo que /dev/sdb2 es la partición que quiere agregar):

1. El disco duro no puede estar en uso (no puede tener particiones montadas, y no se puede tener activado el espacio swap)

2. Cree la partición swap usando fdisk. Ejecute el comando:

# fdisk /dev/sdb2

Cree la partición (n), cambie el tipo de sistema de archivos a linux swap (t) ID 82 y salga guardando las modificaciones (w)

3. Ahora que tiene la partición swap, use el comando mkswap para configurar la partición swap. En el indicador de comandos shell como root, escriba lo siguiente:

# mkswap /dev/sdb2

4. Para activar la partición swap inmediatamente, escriba el comando siguiente:

# swapon /dev/sdb2

5. Para activarlo cuando se arranca, edite /etc/fstab para incluir:

/dev/sdb2 swap swap defaults 0 0

La próxima vez que se arranque el sistema, activará la nueva partición swap.

6. Después de añadir la nueva partición swap y de haberla activado, asegúrese de que está activa visualizando el resultado del comando cat /proc/swaps, free o swapon -s.

Para añadir un archivo swap:

Red Hat Certified Engineer 40

Page 41: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración del sistema de archivos

1. Determine el tamaño del nuevo archivo swap.

2. En el intérprete de comandos, como root, cree un archivo lleno de ceros, indicando un tamaño de bloque de 1 MB (1024k). El valor de count indica cuantas veces 1 MB serán escritos, para el siguiente ejemplo, 1024 veces 1 MB representan a 1 GB:

# dd if=/dev/zero of=/d0/swapfile bs=1024k count=1024

3. Configure el archivo swap con el comando:

# mkswap /d0/swapfile

4. Para activar el archivo swap inmediatamente pero no automáticamente cuando se arranca:

# swapon /d0/swapfile

5. Para activarlo cuando se arranca, edite /etc/fstab para incluir:

/d0/swapfile swap swap defaults 0 0

La próxima vez que se arranque el sistema, se activará el nuevo archivo swap.

6. Después de haber añadido el nuevo archivo swap y de haberlo activado, asegúrese de que está activado visualizando el resultado del comando cat /proc/swaps, free o swapon -s.

Utilización de autofs

Autofs controla la operación de los demonios automount, normalmente es invocado al inicio.

Autofs consultará el archivo de configuración /etc/auto.master para encontrar puntos de montaje del sistema. El auto.master define los puntos de montaje y apunta a otro archivo describiendo los sistemas de archivos a ser montados en ese punto de montaje.

El formato del archivo /etc/auto.master es el siguiente:

/punto_montaje mapa opciones

El primer campo es el punto de montaje a ser monitoreado, el segundo campo es el archivo mapa a consultar para este punto de montaje, y el tercer campo especifica las opciones de montaje para todos los sistemas de archivos en ese punto de montaje.

41 Ing. Iván Ferreira

Page 42: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración del sistema de archivos

Ejemplo del archivo /etc/auto.master:

# /misc /etc/auto.misc --timeout=60

El directorio misc será monitoreado y se montarán automáticamente los sistemas de archivos especificados en el archivo mapa /etc/auto.misc y se desmontarán luego de sesenta segundos.

El formato del archivo mapa es el siguiente:

clave [-opciones] ubicación

Campo Descripción

clave Subdirectorio dentro del directorio especificado en /etc/auto.master que actuarán como punto de montaje para el sistema de archivos especificado.

opciones Opciones de montado del sistema de archivos.ubicación De dónde los sistemas de archivos serán montados.

Ejemplo del archivo mapa /etc/auto.misccdrom -fstype=iso9660,ro :/dev/cdromusbdisk -fstype=auto :/dev/fd0

De la configuración de los archivos /etc/auto.master y /etc/auto.misc obtenemos que el directorio /misc será monitoreado. Si se realiza una solicitud al directorio /misc/cdrom se montará automáticamente el dispositivo /dev/cdrom como sólo lectura en ese directorio y se desmontará luego de sesenta segundos. Si se realiza una solicitud al directorio /misc/usbdisk se montará automáticamente el dispositivo /dev/sdb1 en ese directorio.

Red Hat Certified Engineer 42

Page 43: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

3

Proceso de arranque, inicio y cierre del sistema

Page 44: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Proceso de arranque, inicio y cierre del sistema

Proceso de arranque, inicio y cierre del sistema

Una de las características más importantes y poderosas de CentOS Linux es el método abierto y configurable para el inicio y cierre del sistema operativo. Los usuarios son libres de configurar muchos aspectos del proceso de arranque, incluyendo qué programas se lanzarán al momento de arranque. De forma parecida, el cierre del sistema finaliza los procesos de forma organizada y configurable, aunque la personalización de este proceso casi nunca es necesaria.

Entender el funcionamiento del proceso de arranque y cierre no solo le permitirá personalizar fácilmente CentOS Linux, sino que también le facilitará resolver problemas relacionados con el inicio y el cierre del sistema.

Proceso de arranque

A continuación obtendrá las etapas básicas del proceso de arranque para un sistema x86:

● La BIOS del sistema comprueba y lanza la primera etapa del gestor de arranque del MBR del disco duro primario.

● La primera etapa del gestor de arranque se autocarga en memoria y lanza la segunda etapa del gestor de arranque desde la partición /boot/.

● La segunda etapa del gestor de arranque carga el kernel en memoria, lo cual en su momento carga los módulos necesarios y monta la partición root para sólo-lectura.

● El kernel transfiere el control del proceso de arranque al programa /sbin/init.

● El programa /sbin/init carga todos los servicios y herramientas de espacio del usuario y monta todas las particiones listadas en /etc/fstab.

● El usuario se presenta con un intérprete de comandos de registro para el sistema Linux apenas arrancado.

Ya que la configuración del proceso de arranque es más común que la del proceso de cierre, en el resto de la sección se discutirá el modo en el que el proceso de arranque funciona y cómo se puede personalizar para satisfacer sus necesidades.

Vista detallada del proceso de arranque

Red Hat Certified Engineer 44

Page 45: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Proceso de arranque, inicio y cierre del sistema

El inicio del proceso de arranque varía dependiendo de la plataforma de hardware usada. Sin embargo, una vez que se encuentra el kernel y se carga el sistema, el proceso de arranque por defecto es idéntico a través de todas las arquitecturas. Esta sección se basa en la arquitectura x86.

El BIOS

Cuando un ordenador x86 se carga, el procesador busca al final de la memoria del sistema por Basic Input/Output System o el programa BIOS y lo ejecuta. El BIOS controla no sólo el primer paso del proceso de arranque, sino que también proporciona una interfaz de bajo nivel para dispositivos periféricos. Por este motivo se escribe tan sólo en modo lectura, memoria permanente y está siempre disponible para el uso.

Otras plataformas usan programas diferentes para ejecutar tareas a bajo nivel equivalentes a aquellas del BIOS en el sistema x86. Por ejemplo, los ordenadores basados en Itanium usan Interfaz de Firmware extensible (EFI) Shell.

Una vez que se haya cargado, la BIOS chequea los periféricos y localiza un dispositivo con el que arrancar el sistema. Habitualmente, en primer lugar comprueba cualquier disquete y unidades de CD-ROM presente por los medios de arranque, y a continuación si esto falla, echa un vistazo a las unidades de disco duro del sistema. El orden de las unidades necesario para arrancar puede ser controlado con una configuración del BIOS. El BIOS carga en memoria cualquier programa que resida en el primer sector de este dispositivo, llamado Master Boot Record o MBR. La MBR sólo tiene 512 bytes de tamaño y contiene las instrucciones de código de máquina para el arranque del equipo, llama un gestor de arranque así como también la tabla de particiones. Una vez que el BIOS haya encontrado y cargado el gestor de arranque en memoria, le deja el control del proceso de arranque a éste.

El gestor de arranque

Esta sección revisa los gestores de arranque para la plataforma x86. Dependiendo de la arquitectura del sistema, el proceso de arranque diferirá ligeramente.

Bajo CentOS Linux están disponibles dos gestores de arranque: GRUB o ELILO para plataformas Itanium.

Los gestores de arranque de Linux para la plataforma x86 se dividen en dos etapas. La primera es un código binario de máquina pequeña en el MBR. Su única función es la de localizar el gestor de arranque de la segunda etapa y cargar la primera parte de éste en memoria.

GRUB es el gestor de arranque más nuevo y tiene la ventaja de ser capaz de leer

45 Ing. Iván Ferreira

Page 46: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Proceso de arranque, inicio y cierre del sistema

particiones ext2 y ext3 y cargar su archivo de configuración /boot/grub/grub.conf al momento de arranque.

Una vez que el gestor de arranque de la segunda etapa está en memoria, presenta al usuario con la pantalla inicial, gráfica de CentOS Linux mostrando los diferentes sistemas operativos o kernels que para los que ha sido configurado para arrancar. En esta pantalla el usuario puede usar las flechas de dirección para escoger el sistema operativo o kernel con el que desea arrancar y presione la tecla [ENTER]. Si no se presiona ninguna tecla, el gestor de arranque carga la selección predeterminada luego de un período de tiempo de espera (también configurable).

Una vez que el gestor de arranque de la segunda etapa haya determinado qué kernel arrancar, localizará el binario del kernel correspondiente en el directorio /boot/. El kernel binario es llamado usando el siguiente formato /boot/vmlinuz-<kernel-version> (donde <kernel-version> corresponde a la versión del kernel especificada en las configuraciones del gestor de arranque).

El gestor de arranque luego coloca la imagen apropiada de initial RAM disk, conocida como initrd, en la memoria. El initrd es usado por el kernel para cargar controladores necesarios para arrancar el sistema. Esto es muy importante si posee unidades de disco duro SCSI o si está usando el sistema de ficheros ext3.

Una vez que el kernel y la imagen initrd se cargan en memoria, el gestor de arranque controla el proceso de arranque para el kernel.

Gestores de arranque para otras arquitecturas

Una vez que el kernel de CentOS Linux arranca y pasa el proceso de arranque al comando init, los mismos acontecimientos suceden en cada arquitectura exactamente en el mismo modo. La única diferencia entre el proceso de arranque de cada arquitectura está en la aplicación que se usa para encontrar y cargar el kernel.

El kernel

Cuando el kernel se carga, inmediatamente se inicializa y configura la memoria del ordenador y los diferentes hardware conectado al sistema, incluyendo procesadores, subsistemas de entrada/salida y dispositivos de almacenamiento. A continuación buscará la imagen initrd en una ubicación predeterminada en memoria, la descomprimirá, la montará y cargará todos los controladores necesarios. A continuación inicializa los dispositivos virtuales relacionados con el sistema de ficheros, tal como LVM o software RAID antes de desmontar la imagen del disco initrd y liberar toda la memoria que la imagen del disco ocupó anteriormente.

Red Hat Certified Engineer 46

Page 47: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Proceso de arranque, inicio y cierre del sistema

El kernel luego crea un dispositivo root, monta la partición root como sólo lectura y libera cualquier memoria no utilizada.

Llegados a este punto, el kernel está cargado en memoria y operativo. Sin embargo, como no hay aplicaciones de usuario que permitan la entrada significativa de datos al sistema, no se puede hacer mucho más.

Para configurar el entorno de usuario, el kernel inicia el programa /sbin/init.

Programa /sbin/init

El programa /sbin/init (también llamado init) coordina el resto del proceso de arranque y configura el ambiente del usuario.

Cuando el comando init arranca, se vuelve el padre o abuelo de todos los procesos que comienzan automáticamente en el sistema CentOS Linux. Primero, ejecuta el script /etc/rc.d/rc.sysinit, que establece la ruta a otros programas, activa el swap, controla los sistemas de archivos y y se encarga de todo lo que el sistema necesita tener hecho al momento de la inicialización.

El comando init luego ejecuta el script /etc/inittab, que describe cómo el sistema debería configurarse en cada nivel de ejecución de SysV init. Entre otras cosas, /etc/inittab configura el nivel de ejecución por defecto y establece que /sbin/update debería de ejecutarse cuando se arranque un nivel de ejecución en concreto.

A continuación, el comando init configura la librería de función de fuente, /etc/rc.d/init.d/functions, para el sistema. Esto indica el modo en que empezar o matar un programa y cómo determinar el PID del programa.

El programa init inicia todos los procesos de fondo buscando en el directorio apropiado rc por el nivel de ejecución especificado por defecto en /etc/inittab. Los directorios rc están numerados para corresponder al nivel de ejecución que represente. Por ejemplo, /etc/rc.d/rc5.d/ es el directorio para el nivel de ejecución 5.

Cuando se arranca el nivel de ejecución 5, el programa init consulta el directorio /etc/rc.d/rc5.d/ para determinar qué procesos iniciar o parar.

A continuación un ejemplo de listado del directorio /etc/rc.d/rc5.d/:

K05innd->../init.d/inndK05saslauthd->../init.d/saslauthdK10psacct->../init.d/psacct..

47 Ing. Iván Ferreira

Page 48: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Proceso de arranque, inicio y cierre del sistema

.S95atd->../init.d/atdS97rhnsd->../init.d/rhnsdS99local->../rc.localS99mdmonitor->../init.d/mdmonitor Como puede ver, ninguno de los scripts que inician y cierran los servicios están localizados en el directorio /etc/rc.d/rc5.d/. Casi todos los ficheros en /etc/rc.d/rc5.d/ son enlaces simbólicos apuntando a los scripts localizados en el directorio /etc/rc.d/init.d/. Los enlaces simbólicos se usan en cada uno de los directorios rc de manera que los niveles de ejecución puedan ser reconfigurados al crear, modificar y eliminar los enlaces simbólicos sin que afecte a los scripts actuales a los que se refiere.

El nombre de cada enlace simbólico inicia con K o S. Los enlaces K son procesos eliminados en ese nivel de ejecución, mientras que aquellos que inician por S son procesos iniciados.

El comando init en primer lugar detiene todos los enlaces simbólicos de K en el directorio mediante la ejecución del comando /etc/rc.d/init.d/<command> stop, en el que <command> es el proceso a matar. A continuación inicia todos los enlaces simbólicos S al ejecutar /etc/rc.d/init.d/<command> start.

Cada uno de los enlaces simbólicos se numera para dictaminar el orden de inicio. Puede cambiar el orden en el que los servicios inician o paran al cambiar el número. Mientras más bajo es el número, más rápido se arrancará. Los enlaces simbólicos con el mismo número se inician de modo alfabético.

Después que el comando init ha progresado a través del directorio adecuado rc para el nivel de ejecución, el script /etc/inittab bifurca los procesos /sbin/mingetty para cada consola virtual (intérpretes de comando de registro, login) ubicada para el nivel de ejecución. Los niveles de ejecución del 2 al 5 obtienen todas las seis consolas virtuales, mientras que el nivel de ejecución 1 (modo usuario único) obtiene tan sólo uno y lo niveles de ejecución del 0 al 6 no obtienen ninguno. El proceso /sbin/mingetty abre las rutas de la comunicación para los dispositivos tty, establece sus modos, imprime el indicador de inicio de sesión, toma el nombre del usuario, e inicia el proceso de inicio de sesión para el usuario.

En el nivel de ejecución 5, el /etc/inittab ejecuta un script llamado /etc/X11/prefdm. El script ejecuta prefdm ejecuta su gestor de pantalla preferido para X gdm, kdm, o xdm, dependiendo de los contenidos del archivo /etc/sysconfig/desktop.

En este punto, el sistema está operando en el nivel de ejecución nivel 5 y mostrando la pantalla de inicio de sesión.

Red Hat Certified Engineer 48

Page 49: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Proceso de arranque, inicio y cierre del sistema

Ejecutar programas adicionales en el momento de arranque

El script /etc/rc.d/rc.local lo ejecuta el comando init en tiempo de arranque, o cuando se cambien niveles de ejecución. El agregar comandos a este script es una forma fácil de realizar tareas necesarias como arrancar servicios especiales o inicializar dispositivos sin tener que escribir scripts complejos de inicialización en el directorio /etc/rc.d/init.d/ y creando los enlaces simbólicos.

Uso de sysctl

El comando /sbin/sysctl es usado para visualizar, configurar y automatizar configuraciones del kernel en el directorio /proc/sys/.

Para tener una vista rápida de todas las variables configurables en el directorio /proc/sys/, escriba el comando /sbin/sysctl -a como root. Esto creará una lista grande y exhaustiva, de la cual le mostramos una pequeña parte:

net.ipv4.route.min_delay = 2kernel.sysrq = 0kernel.sem = 250 32000 32 128

Esta es la misma información que verla si echara un vistazo a cada uno de los archivos individualmente. La única diferencia es la localización del archivo. Por ejemplo, el archivo /proc/sys/net/ipv4/route/min_delay está representado por net.ipv4.route.min_delay, con las barras oblicuas del directorio sustituidas por puntos y la porción asumida proc.sys.

El comando sysctl se puede usar en vez de echo para asignar valores a los archivos en los que se puede escribir en el directorio /proc/sys/. Por ejemplo, en vez de usar el comando:

# echo 1 > /proc/sys/kernel/sysrq

Utilice el comando sysctl equivalente como se muestra:

sysctl -w kernel.sysrq="1"kernel.sysrq = 1

A pesar de que es muy útil durante las pruebas el poder rápidamente efectuar configuraciones de valores simples en /proc/sys/, esto no funciona bien en un ambiente de producción puesto que las configuraciones especiales en /proc/sys/ se pierden cuando se vuelve a arrancar el sistema. Para conservar las configuraciones personalizadas, agreguelas al archivo /etc/sysctl.conf.

Cada vez que el sistema arranque, el programa init ejecuta el script

49 Ing. Iván Ferreira

Page 50: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Proceso de arranque, inicio y cierre del sistema

/etc/rc.d/rc.sysinit. Este script contiene un comando para ejecutar sysctl mediante el uso de /etc/sysctl.conf para determinar los valores pasados al kernel. Cualquier valor añadido a /etc/sysctl.conf surtirá efecto cada vez que el sistema arranque.

Niveles de ejecución de SysV Init

El sistema de niveles de ejecución SysV init provee de un proceso estándar para controlar cuáles programas init lanza o detiene cuando se inicializa un nivel de ejecución. SysV init fue escogido porque es más fácil de usar y más flexible que el proceso tradicional init estilo BSD.

Los ficheros de configuración para SysV init están en el directorio /etc/rc.d/. Dentro de este directorio, se encuentran los scripts rc, rc.local, rc.sysinit y opcionalmente, los scripts rc.serial así como los siguientes directorios:

init.d/rc0.d/rc1.d/rc2.d/rc3.d/rc4.d/rc5.d/rc6.d/ El directorio init.d/ contiene los scripts usados por el comando /sbin/init cuando se controlan los servicios. Cada uno de los directorios numerados representa los seis niveles de ejecución predeterminados configurados por defecto bajo CentOS Linux.

Niveles de ejecución

Los niveles de ejecución son un estado, o modo, definido por los servicios listados en el SysV directorio /etc/rc.d/rc<x>.d/, donde <x> es el número de nivel de ejecución.

La idea detrás de los niveles de ejecución de SysV init gira alrededor del hecho que sistemas diferentes se pueden usar de formas diferentes. Por ejemplo, el servidor corre de forma más eficiente sin tener que arrastrar recursos del sistema creados por el sistema X. Otras veces, el administrador del sistema puede necesitar operar el sistema en un nivel más bajo de ejecución para realizar tareas de diagnóstico, como reparar corrupción del disco duro, cuando no es posible que ningún otro usuario esté usando el sistema.

Las características de un nivel de ejecución dado determinan qué servicios son

Red Hat Certified Engineer 50

Page 51: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Proceso de arranque, inicio y cierre del sistema

detenidos o iniciados por init. Por ejemplo, el nivel de ejecución 1 (modo único usuario) detiene cualquier servicio de red, mientras que el nivel 3 arranca estos servicios. Asignando servicios específicos a ser detenidos o arrancados en un nivel dado, init puede fácilmente cambiar el modo de la máquina sin que el usuario tenga que manualmente arrancar o detener servicios.

Los siguientes niveles de ejecución están definidos por defecto para CentOS Linux:

Nivel Descripción

0 Detener el sistema2 Sin usar (usuario-definible)3 Modo texto multiusuario completo4 Sin usar (usuario-definible) 5 Modo gráfico multiusuario completo (con una pantalla de inicio de

sesión basada en X) 6 Reiniciar

Generalmente, los usuarios utilizan CentOS Linux al nivel de ejecución 3 o nivel de ejecución 5 ambos modos multiusuario. Ya que los niveles de ejecución 2 y 4 no son usados, los usuarios a veces personalizan estos niveles para cubrir necesidades específicas.

El nivel de ejecución por defecto para el sistema está listado en /etc/inittab. Para saber el nivel de ejecución por defecto de un sistema, busque por la línea similar a la que se muestra abajo cerca de la parte superior de /etc/inittab:

id:5:initdefault: El nivel de ejecución predeterminado en el ejemplo de arriba es cinco, como indica el número después del punto y coma. Para cambiarlo, modifique /etc/inittab como usuario root.

Es posible cambiar al nivel de ejecución por defecto al momento de arranque modificando los argumentos pasados del gestor de arranque al kernel.

Utilidades de los niveles de ejecución

Una de las mejores formas de configurar los niveles de ejecución es usando las herramientas initscript. Estas herramientas están diseñadas para simplificar las tareas de mantener archivos en la jerarquía del directorio SysV init y descargan a los administradores de sistemas de tener que directamente manipular numerosos enlaces simbólicos en los subdirectorios de /etc/rc.d/.

51 Ing. Iván Ferreira

Page 52: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Proceso de arranque, inicio y cierre del sistema

CentOS Linux ofrece tres de tales utilidades:

● /sbin/chkconfig - La utilidad /sbin/chkconfig es una herramienta de línea de comandos sencilla para mantener la jerarquía del directorio /etc/rc.d/init.d.

● /sbin/ntsysv - La utilidad basada en ncurses /sbin/ntsysv provee de una interfaz interactiva basada en texto, que muchos encuentran más fácil de usar que chkconfig.

● Herramienta de configuración de servicios - El programa de interfaz gráfica Herramienta de configuración de servicios system-onfig-services es una utilidad flexible basada en GTK2 para la configuración de niveles de ejecución.

Cierre del sistema

Para apagar CentOS Linux, el usuario root puede ejecutar el comando /sbin/shutdown. La página man de shutdown tiene una lista completa de opciones, pero las dos más usadas son:

# /sbin/shutdown -h now# /sbin/shutdown -r now Después de apagar todo, la opción -h detendrá la máquina, y la opción -r la reiniciará.

Los usuarios no root pueden usar los comandos reboot y halt para apagar el equipo mientras se está en niveles de ejecución 1 hasta 5. Sin embargo, no todos los sistemas operativos Linux soportan esta característica.

Si la computadora no se apaga, tenga cuidado de no apagar la computadora hasta que aparezca un mensaje indicando que el sistema ha sido detenido.

Si no espera por este mensaje puede significar que no todas las particiones de discos duros han sido desmontadas, y puede llevar a un sistema de archivos corrupto.

Puede utilizar el comando last -x para identificar cuándo se apago, reinicio o cambió de nivel de ejecución el sistema.

Red Hat Certified Engineer 52

Page 53: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

4

Administración de usuarios

Page 54: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración de usuarios

Administración de usuarios

Usuarios y grupos

El control de los usuarios y grupos es un elemento clave en la administración de sistemas de CentOS Linux.

Los usuarios pueden ser gente real, es decir, cuentas ligadas a un usuario físico en particular o cuentas que existen para ser usadas por aplicaciones específicas. Los grupos son siempre expresiones lógicas de organización, reuniendo usuarios para un propósito común. Los usuarios dentro de un mismo grupo pueden leer, escribir o ejecutar archivos que pertenecen al grupo.

Cada usuario y grupo tiene un número de identificación único llamado user id (UID) y un group id (GID).

Cuando se crea un archivo se asigna a un usuario y a un grupo. De la misma manera se asignan los permisos de lectura, escritura y ejecución para el propietario del archivo, para el grupo y para cualquier otro usuario en un host. El usuario y el grupo de un archivo particular, así como los permisos en ese archivo, pueden ser cambiados por un root o, en la mayoría de los casos, por el creador del archivo.

Una de las tareas más importantes de cualquier administrador del sistema, es la de administrar adecuadamente usuarios y grupos, así como asignar y revocar permisos.

Herramientas de administración de usuarios y grupos

La gestión de usuarios y grupos ha sido tradicionalmente tediosa, pero CentOS Linux posee algunas herramientas y convenciones que facilitan a los administradores su gestión.

La forma más fácil de manejar usuarios y grupos es a través de la aplicación gráfica Administrador de usuarios, system-config-users.

Las siguientes herramientas de línea de comandos también se pueden utilizar para manejar usuarios y grupos:

● useradd, usermod y userdel — Métodos estándar de la industria para añadir, eliminar y modificar cuentas de usuarios.

● groupadd, groupmod y groupdel — Métodos estándar de la industria para añadir, eliminar y modificar grupos de usuarios.

Red Hat Certified Engineer 54

Page 55: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración de usuarios

● pwck, grpck — Herramientas para la verificación de contraseñas, grupo y archivos shadow asociados.

● pwconv, pwunconv — Herramientas para la conversión a contraseñas shadow y de vuelta a contraseñas estándar.

Configuración de usuarios desde la línea de comandos

Si prefiere las herramientas de línea de comandos o no tiene el sistema X Window instalado, use este capítulo para configurar usuarios y grupos.

Añadir un usuario

Para añadir un usuario al sistema ejecute el comando useradd para crear una cuenta de usuario bloqueada:

useradd <nombre_usuario>

Desbloquee la cuenta ejecutando el comando passwd para asignar una contraseña y configurar el vencimiento de la misma:

passwd <nombre_usuario>

Las opciones de línea de comandos más comunes son:

Opción Descripción

-c comentario Comentario para el usuario-d home-dir Directorio principal a ser usado en vez del directorio

predeterminado /home/nombredeusuario-e fecha Fecha en que la cuenta será desactivada usando el

formato de fecha YYYY-MM-DD-f días Número de días que pasarán después que la contraseña

ha caducado hasta que la cuenta se desactivará (Si se especifica 0, la cuenta será desactivada inmediatamente después que la contraseña expire. Si se especifica -1, la cuenta no se desactivará después que la contraseña caduque.)

-g nombredegrupo Nombre o número del grupo para el grupo predeterminado del usuario (El grupo debe existir.)

-G listadegrupo Lista de nombres de los grupos adicionales (además del predeterminado), separados por comas, de los cuales el

55 Ing. Iván Ferreira

Page 56: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración de usuarios

Opción Descripción

usuario es miembro (Los grupos deben existir.)-m Crea el directorio principal si no existe-M No crea el directorio principal-n No crea un grupo de usuario privado para el usuario-r Crea una cuenta de sistema con un UID menor que 500 y

dentro del directorio principal.-p contraseña La contraseña encriptada con crypt-s Línea de comando de conexión del usuario,

predeterminada a /bin/bash-u uid ID de usuario, el cual debe ser único y mayor que 499

Añadir un grupo

Para agregar un grupo al sistema, use el comando groupadd:

groupadd <nombre_grupo>

Las opciones de línea de comandos más comunes son:

Opción Descripción

-g gid ID para el grupo, el cual debe ser único y mayor que 499.-r Crea un grupo de sistema con un GID menor que 500.-f Sale con un error si el grupo ya existe. (El grupo no es alterado.) Si

se especifica -g y -f, pero el grupo ya existe, la opción -g es ignorada.

Vencimiento de la contraseña

Para configurar el vencimiento de la contraseña para un usuario desde el intérprete de comandos, use el comando chage, seguido de una opción:

Opción Descripción

-m días Especifica el número mínimo de días entre los cuales el usuario debe cambiar su contraseña. Si el valor es 0, la contraseña no caduca.

-M días Especifica el número máximo de días durante los cuales la contraseña es válida. Cuando el número de días especificado por

Red Hat Certified Engineer 56

Page 57: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración de usuarios

Opción Descripción

esta opción más el número de días especificado con la opción -d es menor que el día actual, el usuario debe cambiar su contraseña antes de usar la cuenta.

-d días Especifica el número de días desde Enero 1, 1970 que la contraseña fué cambiada.

-I días Especifica el número de días inactivos después de la expiración de la contraseña antes de bloquear la cuenta. Si el valor es 0, la cuenta no es bloqueada después que la contraseña caduca.

-E fecha Especifica la fecha en la cual la cuenta es bloqueada, en el formato YYYY-MM-DD. También se puede usar el número de días transcurridos desde Enero 1, 1970 en lugar de la fecha.

-W días Especifica el número de días antes de la fecha de expiración de la contraseña para advertir al usuario.

Si el administrador del sistema desea que un usuario configure su contraseña la primera vez que éste se conecte, la contraseña del usuario puede ser configurada a que expire de inmediato, obligando al usuario a cambiarla inmediatamente después de conectarse la primera vez.

El archivo /etc/passwd

El archivo /etc/passwd contiene la lista de usuarios en el sistema, una línea por usuario. Es consultado cuando el usuario ingresa al sistema para determinar su UID; en muchos casos, podría contener también la contraseña encriptada, aunque la tendencia actual es retener la contraseña encriptada en otro archivo, /etc/shadow, con permisos de acceso más restringidos. En este último caso, el proceso de login consulta ambos archivos, /etc/passwd y /etc/shadow.

Los campos de /etc/passwd y /etc/shadow están separados por ":", al igual que la mayoría de los archivos de configuración en UNIX.

Ejemplo de entradas en /etc/passwd:

root:x:0:0::/root:/bin/bashbin:x:1:1:bin:/bin:ftp:x:404:1::/home/ftp:/bin/bashdaemon:x:2:2:daemon:/sbin:

El archivo /etc/passwd contiene los siguientes campos, de izquierda a derecha:

● Nombre de login

● Contraseña encriptada

57 Ing. Iván Ferreira

Page 58: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración de usuarios

● Identificador del usuario (UID)

● Identificador de grupo primario (GID)

● Información de usuario (campo "GECOS") Se usa ahora, sin una sintaxis fija, para contener información del usuario. El comando finger interpreta este campo como una lista separada por comas conteniendo: 1) nombre en la vida real, 2) edificio y número de oficina, 3) teléfono interno, 4) teléfono domiciliario. El comando chfn permite al usuario cambiar su información propia.

● El directorio HOME del usuario

● Shell o programa inicial.

El archivo /etc/group

El archivo /etc/group contiene los nombres de los grupos UNIX definidos en el sistema y una lista de sus miembros. Hay una línea por cada grupo. Los campos están separados por ":".

Ejemplo de entradas en /etc/group:

root::0:rootbin::1:root,bin,daemondaemon::2:root,bin,daemonsys::3:root,bin,admadm::4:root,adm,daemo

Cada línea contiene:

● Nombre del grupo: algunos sistemas piden 8 caracteres o menos.

● Contraseña encriptada: histórico, no se usa.

● Número GID: número único identificador del grupo.

● Lista de integrantes: nombres de usuarios de los integrantes del grupo separados por comas, sin blancos.

Grupos de usuario privado

CentOS Linux utiliza un esquema de grupo de usuario privado (UPG), lo que hace más fácil de manejar los grupos de UNIX.

Red Hat Certified Engineer 58

Page 59: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración de usuarios

Se crea un UPG siempre que se añade un nuevo usuario al sistema. Un UPG tiene el mismo nombre que el usuario para el cual se crea y ese usuario es el único miembro de ese UPG.

Los UPGs hacen que sea más seguro configurar los privilegios por defecto para un nuevo archivo o directorio lo que permite a ambos, tanto el usuario como al grupo de ese usuario hacer modificaciones al archivo o directorio.

El parámetro que determina qué permisos son aplicados a un nuevo archivo o directorio es llamado un umask y es configurado en el archivo /etc/bashrc.

Tradicionalmente, en sistemas UNIX el umask es configurado a 022, lo que sólo permite al usuario que crea el archivo o directorio realizar modificaciones. Bajo este esquema, todos los demás usuarios incluyendo miembros del grupo del creador no tienen derecho a realizar ninguna modificación. Sin embargo, bajo el esquema UPG, esta "protección de grupo" no es necesaria puesto que cada usuario tiene su propio grupo privado.

Directorios de grupos

Muchas organizaciones de IT (del inglés Information Technologies) prefieren crear un grupo para cada proyecto importante y luego asignar personas al grupo si estos necesitan acceso a los archivos de ese proyecto. Usando este esquema tradicional, el manejo de archivos ha sido difícil pues cuando alguien crea un archivo, este es asociado con el grupo primario al cual pertenece. Cuando una persona individual trabaja en múltiples proyectos, se hace difícil asociar los archivos correctos con el grupo correcto. Usando el esquema UPG, sin embargo, los grupos son automáticamente asignados a archivos creados dentro de un directorio con el bit SGID configurado, lo que hace muy simple el manejo de proyectos de grupos que comparten un directorio común.

Digamos, por ejemplo, que un grupo de personas trabajan con archivos en el directorio /datos/contabilidad/. Algunas personas son de confianza como para modificar el directorio, pero ciertamente no todos. Entonces primero cree un grupo contab, como se muestra en el siguiente comando:

# /usr/sbin/groupadd contab

Para poder asociar los contenidos del directorio con el grupo contab, escriba:

# chown -R root.contab /datos/contabilidad/

Ahora es posible añadir los usuarios adecuados al grupo con el comando gpasswd:

# /usr/bin/gpasswd -a <nombre_usuario> contab

59 Ing. Iván Ferreira

Page 60: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración de usuarios

Permita a los usuarios crear archivos dentro del directorio y configure el bit SGID, el cual asigna que todo lo que se cree en el directorio el mismo grupo del directorio padre (contab). Use el comando siguiente:

# chmod 2775 /datos/contabilidad

En este punto, puesto que cada usuario tiene por defecto su umask en 002, todos los miembros del grupo contab pueden crear y modificar archivos en el directorio /datos/contabilidad/ sin que el administrador tenga que cambiar los permisos de los archivos cada vez que un usuario escriba nuevos archivos.

Contraseñas Shadow

En entornos multiusuario es muy importante utilizar contraseñas shadow (proporcionadas por el paquete shadow-utils). Haciendo esto se mejora la seguridad de los archivos de autenticación del sistema. Por esta razón, el programa de instalación de CentOS Linux activa por defecto las contraseñas shadow.

Lo siguiente es una lista de las ventajas de las contraseñas shadow sobre el método antiguo de almacenar contraseñas en los sistemas basados en UNIX.

● Mejora la seguridad del sistema al mover las contraseñas encriptadas desde el archivo /etc/passwd que puede leer todo el mundo, a /etc/shadow, el cual sólo puede ser leído por el usuario root.

● Almacena información sobre la vigencias de las contraseñas.

● Permite el uso del archivo /etc/login.defs para reforzar las políticas de seguridad.

La mayoría de las utilidades proporcionadas por el paquete shadow-utils funcionan adecuadamente sin importar si las contraseñas shadow están activadas o no. Sin embargo, puesto que la información sobre la vigencia de las contraseñas es almacenada exclusivamente en el archivo /etc/shadow, cualquier comando que cree o modifique la información sobre la vigencia de las contraseñas, no funcionará.

Abajo se muestra una lista de los comandos que no funcionan a menos que se activen las contraseñas shadow:

● chage

● gpasswd

● Las opciones /usr/sbin/usermod -e o -f

Red Hat Certified Engineer 60

Page 61: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración de usuarios

● Las opciones /usr/sbin/useradd -e o -f

El archivo /etc/shadow

El archivo /etc/shadow contiene una línea por usuario y solo es visible por root. Provee además información relativa a cambio de contraseñas y expiración de la cuenta.

Ejemplo de entradas en /etc/shadow:

root:1eklLr8RdBuao:10461:0:::::bin:*:9797:0:::::ftp:*:9797:0:::::daemon:*:9797:0:::::

Contiene los siguientes campos:

● Nombre de login: el mismo nombre que en /etc/passwd;

● Contraseña encriptada: bajo las mismas condiciones que en /etc/passswd; la contraseña encriptada es desplazada del /etc/passwd al /etc/shadow, dejando en /etc/passwd una x en este campo.

● Fecha de úlimo cambio de contraseña: registra la fecha en que el usuario cambió por última vez su contraseña.

● Mínima cantidad de días entre cambios de contraseña: una vez cambiada una contraseña, el usuario no puede volver a cambiarla hasta que haya transcurrido esta cantidad de días como mínimo. No se recomienda fijar este valor; si ha habido una violación de seguridad puede ser necesario cambiar la contraseña de inmediato, sin tener que esperar.

● Máxima cantidad de días entre cambios de contraseña: obliga a los usuarios a cambiar su contraseña periódicamente. En Linux, este valor se suma al campo de inactividad antes de bloquear la cuenta.

● Cantidad de días de adelanto para avisar expiración de contraseña: avisa al usuario de la necesidad del cambio de contraseña, a partir de esta cantidad de días antes de la fecha límite.

● Cantidad de días de inactividad antes de expirar la cuenta: Linux, son días de gracia después del máximo sin cambiar contraseña y antes de bloquear la cuenta.

● Fecha de expira de la contraseña: día contado a partir del 1-1-1970, en que la cuenta expirará. Si el campo está en blanco, la cuenta no expira nunca. Si ha transcurrido esta fecha, el campo debe ser repuesto por el

61 Ing. Iván Ferreira

Page 62: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración de usuarios

administrador para rehabilitar la cuenta.

● Banderas: reservado para usos futuros.

Configuración de la autenticación

Para cambiar la configuración de autenticación después de finalizar la instalación, use el comando system-config-authentication, authconfig o authconfig-tui.

Escriba el comando authconfig en la línea de comandos. Si no es usuario root, se le pedirá la contraseña root para continuar.

Métodos de autenticaciónLas opciones de autenticación que puede seleccionar son:

● Habilitar contraseñas MD5 le permite usar una contraseña larga (de hasta 256 caracteres), en vez de las ocho letras.

● Habilitar contraseñas shadow proporciona un método seguro para conservar contraseñas. Las contraseñas se almacenan en /etc/shadow, al que tan sólo se puede acceder como root.

● Habilitar NIS le permite ejecutar un grupo de ordenadores en el mismo dominio Network Information Service con una contraseña común y un fichero de grupo. Puede escoger desde las siguientes opciones:

– Dominio NIS le permitirá especificar el dominio o grupo de ordenadores al que pertenece su sistema.

– Usar broadcast para encontrar el servidor NIS le permitirá hacer un broadcast en su red local para encontrar el servidor NIS.

– Servidor NIS hace que su ordenador utilice un servidor NIS específico, en vez de enviar un broadcast a toda la red para encontrar el servidor NIS disponible.

● Activar LDAP le dice a su ordenador que utilice LDAP para algunas o todas las autenticaciones. LDAP consolida ciertos tipos de información en el seno de su organización. Por ejemplo, todas las diferentes listas de usuarios que puede haber en la organización se pueden unir en un sólo directorio LDAP.

– Servidor LDAP le permite acceder a un servidor específico (mediante su dirección IP) que esté ejecutando el protocolo LDAP.

Red Hat Certified Engineer 62

Page 63: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Administración de usuarios

– LDAP Base DN le permite buscar información acerca de los usuarios mediante su Distinguished Name (DN).

– Usar TLS (Transport Layer Security) esta opción permite a LDAP enviar información encriptada de nombres de usuario y contraseñas al servidor LDAP antes de la autenticación.

● Activar Kerberos Kerberos es un sistema de seguridad que proporciona servicios de autentificación en red. Puede elegir entre tres opciones:

– Reino esta opción le permite acceder a una red que utiliza Kerberos, compuesta por uno o varios servidores (también conocidos como KDCs) y un número potencialmente alto de usuarios.

– KDC Esta opción le permite acceder al Centro de Distribución de Claves (Key Distribution Center, KDC), una máquina que emite tickets de Kerberos (a veces se llama también Ticket Granting Server o TGS).

– Servidor de Administración Esta opción le permite acceder a un servidor que ejecute kadmind.

● Activar la autenticación SMB Configura PAM para usar un servidor SMB para la autenticación de usuarios. Deberá proporcionar dos tipos de información:

– Servidor SMB Indica qué servidor SMB contactará su estación de trabajo para la autenticación.

– Grupo de trabajo SMB Indica en qué grupo de trabajo están los servidores SMB.

63 Ing. Iván Ferreira

Page 64: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

5

Instalación y gestión de paquetes

Page 65: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación y gestión de paquetes

Instalación y gestión de paquetes

Gestión de paquetes

Todo el software en un sistema CentOS Linux está dividido en paquetes RPM los cuales pueden ser instalados, actualizados o eliminados. Esta parte describe como manejar los paquetes RPM en un sistema CentOS Linux usando herramientas gráficas y de línea de comandos.

El Administrador de paquetes (RPM) es un sistema de empaquetado abierto que trabaja en CentOS Linux además de otros sistemas Linux y UNIX y que está a la disposición de cualquiera. CentOS, Inc. fomenta el uso de RPM por parte de otros vendedores para sus propios productos. RPM se puede distribuir bajo los términos de GPL.

RPM facilita las actualizaciones de sistema para el usuario final. Es posible instalar, desinstalar y actualizar paquetes RPM por medio de comandos breves. RPM mantiene una base de datos de los paquetes instalados y de sus archivos, y usted puede hacer consultas y verificaciones poderosas en su sistema. Si prefiere una interfaz gráfica, puede utilizar la Herramienta de administración de paquetes system-config-packages o pirut para ejecutar muchos comandos RPM.

Durante las actualizaciones, RPM maneja cuidadosamente los archivos de configuración para que usted nunca pierda sus modificaciones de personalización algo que no lograra hacer con archivos .tar.gz normales.

RPM permite al desarrollador tomar el código fuente del software y empaquetarlo en paquetes binarios y de fuente para los usuarios finales. Este proceso es bastante sencillo y se controla desde un único archivo y parches opcionales creados por usted mismo. Esta clara delineación de fuentes originarias y sus parches y las instrucciones de construcción facilitan el mantenimiento del paquete al ir apareciendo nuevas versiones del software.

Metas de diseño RPM

Podría ser útil conocer las metas de diseño de RPM para poder aprender a usar RPM:

● Predisposición a la actualización Al usar RPM es posible actualizar componentes individuales de su sistema sin tener que reinstalarlos completamente. Cuando obtenga una versin nueva de un sistema operativo basado en RPM (como CentOS Linux), no es necesario efectuar reinstalaciones en su máquina (como debe hacerse con sistemas operativos basados en otros sistemas de empaquetado). RPM permite actualizaciones

65 Ing. Iván Ferreira

Page 66: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación y gestión de paquetes

inteligentes, in situ y completamente automatizadas en su sistema. Los archivos de configuración en los paquetes se conservan no obstante las actualizaciones, y as no perder sus personalizaciones. No existen archivos de actualización específicos para actualizar un paquete porque se utiliza el mismo archivo RPM para instalar y actualizar el paquete en su sistema.

● Consultas poderosas RPM fue ideado para proporcionar opciones de consulta poderosas. Se pueden efectuar búsquedas por toda su base de datos para encontrar un paquete o sólo algún archivo. También es posible averiguar a cual paquete pertenece un determinado archivo y de dónde proviene el paquete. Los archivos contenidos en el paquete RPM están en un archivo comprimido, con un encabezado binario personalizado que contiene información til sobre el paquete y su contenido, permitiéndole consultar paquetes individuales rápida y sencillamente.

● Verificación de sistema Otra característica poderosa es la de verificar paquetes. Si está preocupado porque borra un archivo importante para algún paquete, verifique el paquete. Se le notificar si hay anomalías. En este punto, puede reinstalar el paquete si es necesario. Cualquier archivo de configuración que haya modificado ser preservado durante la reinstalación.

● Fuentes originarias Un objetivo crucial ha sido el de permitir el uso de fuentes de software originario, tal y como ha sido distribuido por los autores originales del software. Con RPM tendrá las fuentes originarias junto con cualquier parche que haya sido usado además de las instrucciones de construcción completas. Esta es una ventaja importante por varios motivos. Si por ejemplo sale una versión nueva de un programa, no necesariamente necesita empezar desde cero para que se compile. Puede revisar el parche para ver lo que tal vez necesitara hacer. Usando esta técnica se ven fácilmente todos los elementos predeterminados y compilados en el programa y todos los cambios que se le han hecho al software para construir adecuadamente.

El objetivo de mantener las fuentes originarias podrá parecer importante sólo para los desarrolladores, pero el resultado también sera software de más alta calidad para los usuarios finales. Quisiéramos dar las gracias a la gente de distribución de BOGUS por haber ideado el concepto de la fuente originaria.

Instalación de paquetes RPM

Los paquetes RPM normalmente tienen nombres de archivo como foo-1.0-1.i386.rpm. El nombre de archivo incluye el nombre de paquete (foo), versión (1.0), lanzamiento (1) y arquitectura (i386). La instalación de un paquete es tan simple como teclear el siguiente comando en el intérprete de comandos de shell:

# rpm -ivh foo-1.0-1.i386.rpm

Red Hat Certified Engineer 66

Page 67: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación y gestión de paquetes

Si la instalación es correcta verá lo siguiente:

Preparing... ########################################### [100%] 1:foo ########################################### [100%]

Como podrá ver, RPM imprime el nombre del paquete y luego imprime una serie de símbolos de numeral (#) mientras se instala el paquete como una especie de medidor de progreso.

La firma del paquete se autentica en el momento de la instalación o de la actualización del paquete. Si la verificación de la firma falla, verá el siguiente mensaje de error:

error: V3 DSA signature: BAD, key ID 0352860f

Si se trata de una nueva firma en el cabezal, verá el siguiente error:

error: Header V3 DSA signature: BAD, key ID 0352860f

Si no tiene instalada la clave apropiada para verificar la firma, el mensaje dirá NOKEY y será como lo siguiente:

warning: V3 DSA signature: NOKEY, key ID 0352860f

Paquete ya instalado

Si ya está instalado un paquete de la misma versión, verá:

Preparing... ########################################### [100%]package foo-1.0-1 is already installed

Si desea instalar el paquete de todos modos y la versión que está intentando instalar ya está instalada, podrá usar la opción --replacepkgs, la cual le dirá a RPM que ignore el error:

# rpm -ivh --replacepkgs foo-1.0-1.i386.rpm

Esta opción es útil si se borraron los archivos instalados del RPM o si desea que se instalen los archivos de configuración originales del RPM.

Archivos en conflicto

Si intenta instalar un paquete que contiene un archivo que ya ha sido instalado por otro paquete o una versión más antigua del mismo paquete, verá lo siguiente:

Preparing... ########################################### [100%]file /usr/bin/foo from install of foo-1.0-1 conflicts with file from packagebar-2.0.20

67 Ing. Iván Ferreira

Page 68: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación y gestión de paquetes

Para hacer que RPM ignore este error, use la opción --replacefiles:

rpm -ivh --replacefiles foo-1.0-1.i386.rpm

Dependencias no resueltas

Los paquetes RPM pueden "depender" de otros paquetes, lo cual significa que requieren de la instalación de otros paquetes para poder ejecutarse adecuadamente. Si intenta instalar un paquete que tiene una dependencia no resuelta, verá lo siguiente:

Preparing... ########################################### [100%]error: Failed dependencies: bar.so.2 is needed by foo-1.0-1 Suggested resolutions: bar-2.0.20-3.i386.rpm

Si está instalando un paquete oficial de CentOS, se le sugerirá resolver la dependencia de este paquete. Encuentre este paquete en los CD-ROMs de CentOS Linux o en el sitio FTP (o espejo) y añádalo al comando:

# rpm -ivh foo-1.0-1.i386.rpm bar-2.0.20-3.i386.rpm

Si se realiza la instalación correctamente, verá lo siguiente:

Preparing... ########################################### [100%] 1:foo ########################################### [ 50%] 2:bar ########################################### [100%]

Si desea forzar la instalación de todas maneras (no es una buena idea ya que el paquete no funcionará correctamente), use la opción –nodeps.

Para resolver las dependencias, es preferible utilizar el comando yum para instalar los paquetes y configurar un repositorio local. El archivo /etc/yum.repos.d/CentOS-Media.repo permite configurar un repositorio local a partir del DVD de instalación.

Desinstalación

Desinstalar un paquete es tan simple como instalarlo. Teclee el siguiente comando en el intérprete de comandos de la shell:

# rpm -e foo

Podría encontrarse con un error de dependencia cuando esté desinstalando un paquete si otro paquete instalado depende del que está tratando de eliminar. Por ejemplo:

Red Hat Certified Engineer 68

Page 69: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación y gestión de paquetes

Preparing... ########################################### [100%]error: removing these packages would break dependencies: foo is needed by bar-2.0.20-3.i386.rpm

Para hacer que RPM ignore este error y desinstale el paquete de todos modos (que tampoco es buena idea ya que al hacerlo, el paquete que depende de él probablemente dejará de funcionar correctamente), use la opción --nodeps.

Actualización

Actualizar un paquete es parecido a instalarlo. Teclee el siguiente comando en un intérprete de comandos de la shell:

# rpm -Uvh foo-2.0-1.i386.rpm

Lo que no se ve arriba es que RPM ha desinstalado automáticamente cualquier versión antigua del paquete foo. De hecho, tal vez desee usar -U siempre para instalar paquetes, ya que funcionará aunque no haya versiones precedentes del paquete instaladas.

Ya que RPM lleva a cabo la actualización inteligente de paquetes con archivos de configuración, tal vez vea un mensaje como el siguiente:

saving /etc/foo.conf as /etc/foo.conf.rpmsave

Este mensaje significa que los cambios hechos al archivo de configuración podrían no ser "compatibles" con el archivo de configuración nuevo en el paquete, así que RPM ha almacenado su archivo original y ha instalado uno nuevo. Debería averiguar cuáles son las diferencias entre los dos archivos de configuración y resuelva el problema tan pronto como le sea posible para asegurarse que su sistema continúe funcionando correctamente.

La actualización es en realidad una combinación de las actividades de desinstalación e instalación, así que durante una actualización RPM, podrá encontrar errores de desinstalación e instalación, además de cualquier otro tipo de error. Si RPM cree que usted está tratando de actualizar a un número de versión de paquete más antiguo, aparecerá lo siguiente:

package foo-2.0-1 (which is newer than foo-1.0-1) is already installed

Para hacer que RPM "actualice" de todos modos, use la opción --oldpackage:

rpm -Uvh --oldpackage foo-1.0-1.i386.rpm

Refrescamiento

Refrescar un paquete es parecido a actualizarlo. Teclee el siguiente comando en

69 Ing. Iván Ferreira

Page 70: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación y gestión de paquetes

un intérprete de comandos shell:

# rpm -Fvh foo-1.2-1.i386.rpm

La opción de refrescamiento RPM compara las versiones de los paquetes especificados en la línea de comandos con las versiones de los paquetes que ya han sido instalados en su sistema. Cuando la opción de refrescamiento de RPM elabora una versión más reciente de un paquete ya instalado, éste será actualizado a la versión más reciente. Sin embargo, la opción de refrescamiento de RPM no instalará un paquete si no existe un paquete previamente instalado del mismo nombre. Esto no es igual a la opción de actualización de RPM, ya que una actualización sí instalará paquetes, no importa si ya esté instalada una versión más antigua de un paquete.

La opción de refrescamiento de RPM funciona ya sea para paquetes individuales que para un grupo de paquetes. Si usted acaba de descargar una gran cantidad de paquetes diferentes y sólo desea actualizar los paquetes que ya estaban instalados en su sistema, la solución es el refrescamiento. Si utiliza la opción de refrescamiento, antes de usar RPM no tendrá que eliminar ningún paquete indeseado del grupo que ha descargado.

En este caso, puede ejecutar el comando siguiente:

# rpm -Fvh *.rpm

RPM actualizará automáticamente sólo los paquetes que ya estén instalados.

Consultas

Use el comando rpm -q para hacer consultas a la base de datos de los paquetes instalados. El comando rpm -q foo imprimirá el nombre de paquete, versión y número de lanzamiento del paquete foo instalado:

foo-2.0-1

En vez de especificar el nombre del paquete, se pueden usar las siguientes opciones con -q para especificar lo(s) paquete(s) que desea consultar. Se llaman Opciones de especificación de paquetes:

Opción Descripción

-a Consulta todos los paquetes actualmente instalados.

-f <archivo> Consultará el paquete que posea <archivo>. Cuando especifique un archivo, deberá especificar la ruta completa del archivo (/usr/bin/ls, por ejemplo).

-p <paquete> Consulta un paquete rpm no instalado. Debe especificar la ruta

Red Hat Certified Engineer 70

Page 71: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación y gestión de paquetes

Opción Descripción

al archivo rpm.

Hay varias maneras de especificar qué información mostrar sobre los paquetes consultados. Las siguientes opciones sirven para seleccionar el tipo de información que usted está buscando. Se llaman Opciones de selección de información.

Opción Descripción

-i Muestra información del paquete como el nombre, la descripción, la versión, el tamaño, la fecha de construcción, la fecha de instalación, el distribuidor, y otra información miscelánea.

-l Muestra la lista de archivos contenidos en el paquete.-s Muestra el estado de todos los archivos en el paquete.-d Muestra una lista de archivos marcados como documentación

(páginas de manual, páginas de información, archivos LÉAME, etc.).

-c Muestra una lista de archivos marcados como archivos de configuración. Estos son los archivos que usted cambia después de la instalación para adaptar el paquete a su sistema.

Para acceder a opciones que muestran listas de archivos, puede añadir -v al comando para que muestre las listas en un formato ls -l conocido.

Verificación

La verificación de un paquete tiene que ver con comparar la información sobre archivos instalados de un paquete con la misma información del paquete original. Entre otras cosas, la verificación compara el tamaño, la suma MD5, los permisos, el tipo, el dueño y el grupo de cada archivo.

El comando rpm -V verifica un paquete. Usted puede utilizar cualquiera de las Opciones de selección de paquete de la lista para pedir que se especifiquen los paquetes que desea verificar. Un modo sencillo de verificar es rpm -V foo, que verifica si todos los archivos en el paquete foo se encuentran en el mismo estado en que estaban cuando originalmente fueron instalados. Por ejemplo:

Para verificar un paquete que contiene un determinado archivo:

# rpm -Vf /bin/vi

71 Ing. Iván Ferreira

Page 72: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación y gestión de paquetes

Para verificar TODOS los paquetes instalados:

# rpm -Va

Para verificar un paquete instalado contra un archivo de paquete RPM

# rpm -Vp foo-1.0-1.i386.rpm

Este comando puede ser útil si sospecha que sus bases de datos de RPM están dañadas.

Si todo fue verificado correctamente, no habrá salida. Si se encuentran discrepancias, serán mostradas. El formato de la salida es una cadena de ocho caracteres (una c identifica un archivo de configuración) seguido por el nombre del archivo. Cada uno de los ocho caracteres señala el resultado de una comparación entre un atributo del archivo al valor de ese atributo escrito en la base de datos de RPM. Un sólo . (punto) significa que ha pasado la prueba. Los siguientes caracteres señalan que ciertas pruebas no han sido pasadas:

Prueba Descripción

5 MD5 suma de verificaciónS Tamaño del archivoL Enlace simbólicoT Hora de modificación de archivoD Dispositivo U Usuario propietarioG Grupo propietarioM Modo? Archivo que no se puede leer

Si ve alguna salida, use su buen juicio para determinar si debería quitar o reinstalar el paquete o resolver el problema de otra manera.

Verificando la firma del paquete

Si desea verificar si algún paquete ha sido dañado o alterado examine sólo la suma md5 tecleando el siguiente comando en un intérprete de comandos de shell (sustituya <archivo-rpm> con el nombre de archivo de su paquete):

# rpm -K --nogpg <archivo-rpm>

Red Hat Certified Engineer 72

Page 73: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación y gestión de paquetes

Aparecerá el mensaje <archivo-rpm>: md5 OK. Este breve mensaje significa que el archivo no ha sido dañado al momento de la descarga. Si desea un mensaje más detallado, reemplace -K por -Kvv en el comando.

Por otra parte, ¿cuánto es de fiable el desarrollador que creó el paquete? Si el paquete está firmado con la clave GnuPG del desarrollador, sabrá que el desarrollador de verdad es quien dice ser.

Se puede firmar un paquete RPM usando la Gnu Privacy Guard (o GnuPG), para ayudarle a asegurarse que el paquete descargado es de fiar.

GnuPG es una herramienta para comunicación segura; reemplaza completa y gratuitamente la tecnología de encriptación de PGP, un programa electrónico de privacidad. Con GnuPG usted puede autentificar la validez de los documentos y encriptar/descifrar datos de y hacia otros destinatarios. Además, GnuPG es capaz de descifrar y verificar archivos PGP 5.x.

Durante la instalación de CentOS Linux, GnuPG está instalado por defecto. De este modo podrá usar inmediatamente GnuPG para verificar cualquier paquete que reciba desde CentOS. En primer lugar necesitará importar la clave pública privada de CentOS.

Importar claves

Para verificar los paquetes de CentOS tiene que importar las claves de GPG de CentOS. Para ello, ejecute el siguiente comando en el intérprete de comandos de la shell:

# rpm --import /usr/share/rhn/RPM-GPG-KEY

Para ver la lista de todas las claves instaladas para la verificación de RPM, ejecute el comando:

# rpm -qa gpg-pubkey*

Para la clave de CentOS, la salida incluye:

gpg-pubkey-db42a60e-37ea5438

Para mostrar más detalles sobre una clave determinada, use rpm -qi seguido de la salida del anterior comando:

# rpm -qi gpg-pubkey-db42a60e-37ea5438

Verificación de la firma de paquetes

73 Ing. Iván Ferreira

Page 74: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación y gestión de paquetes

Para controlar la firma GnuPG de un archivo RPM después de importar la clave del constructor GnuPG, use el siguiente comando (sustituya <archivo-rpm> con el nombre de archivo de su paquete RPM):

# rpm -K <archivo-rpm>

Si todo va bien, verá el siguiente mensaje: md5 gpg OK. Esto significa que el paquete no está dañado.

Técnicas de uso de rpm

RPM es una herramienta útil ya sea para administrar su sistema que para diagnosticar y solucionar problemas. La mejor manera de comprender todas sus opciones es viendo algunos ejemplos.

Tal vez usted haya borrado algunos archivos accidentalmente, pero no está seguro de lo que ha eliminado. Si desea verificar su sistema entero y ver lo que podría hacer falta, podría intentarlo con el siguiente comando:

# rpm -Va

Si faltan algunos archivos o parecen dañados, probablemente debería o reinstalar el paquete o desinstalarlo y luego reinstalarlo.

Tal vez alguna vez verá un archivo que no reconoce. Para saber a qué paquete pertenece, teclearía:

# rpm -qf /usr/X11R6/bin/ghostview

La salida es parecida a lo siguiente:

gv-3.5.8-22

Podemos combinar los dos ejemplos de arriba en la siguiente hipótesis. Digamos que está teniendo problemas con /usr/bin/paste. Le gustaría verificar el paquete al cual pertenece ese programa, pero no sabe a cuál paquete pertenece paste. Simplemente teclee el siguiente comando:

# rpm -Vf /usr/bin/paste

y se verificará el paquete correcto. ¿Desea encontrar más información sobre un determinado programa? Puede intentar el siguiente comando para localizar la documentación que acompañaba el paquete al cual pertenece ese programa:

# rpm -qdf /usr/bin/free

Red Hat Certified Engineer 74

Page 75: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación y gestión de paquetes

La salida debería ser parecida a la siguiente:

/usr/share/doc/procps-2.0.11/BUGS/usr/share/doc/procps-2.0.11/NEWS/usr/share/doc/procps-2.0.11/TODO/usr/share/man/man1/free.1.gz/usr/share/man/man1/oldps.1.gz/usr/share/man/man1/pgrep.1.gz/usr/share/man/man1/pkill.1.gz/usr/share/man/man1/ps.1.gz/usr/share/man/man1/skill.1.gz/usr/share/man/man1/snice.1.gz/usr/share/man/man1/tload.1.gz/usr/share/man/man1/top.1.gz/usr/share/man/man1/uptime.1.gz/usr/share/man/man1/w.1.gz/usr/share/man/man1/watch.1.gz/usr/share/man/man5/sysctl.conf.5.gz/usr/share/man/man8/sysctl.8.gz/usr/share/man/man8/vmstat.8.gz

Podría encontrar un RPM nuevo y no saber para qué sirve. Para encontrar información sobre él, use el siguiente comando:

# rpm -qip crontabs-1.10-5.noarch.rpm

La salida es parecida a lo siguiente:

Name : crontabs Relocations: (not relocateable)Version : 1.10 Vendor: CentOS, Inc.Release : 5 Build Date: Fri 07 Feb 2003 04:07:32 PM ESTInstall date: (not installed) Build Host: porky.devel.centos.orgGroup : System Environment/Base Source RPM: crontabs-1.10-5.src.rpmSize : 1004 License: Public DomainSignature : DSA/SHA1, Tue 11 Feb 2003 01:46:46 PM EST, Key ID fd372689897da07aPackager : CentOS, Inc.Summary : Root crontab files used to schedule the execution of programs.Description :The crontabs package contains root crontab files. Crontab is theprogram used to install, uninstall, or list the tables used to drive thecron daemon. The cron daemon checks the crontab files to see whenparticular commands are scheduled to be executed. If commands arescheduled, then it executes them.

Quizás desea ver qué archivos instala el RPM crontabs. Ingrese lo siguiente:

# rpm -qlp crontabs-1.10-5.noarch.rpm

La salida será de la siguiente manera:

Name : crontabs Relocations: (not relocateable)Version : 1.10 Vendor: CentOS, Inc.Release : 5 Build Date: Fri 07 Feb 2003 04:07:32 PM ESTInstall date: (not installed) Build Host: porky.devel.centos.orgGroup : System Environment/Base Source RPM: crontabs-1.10-5.src.rpmSize : 1004 License: Public DomainSignature : DSA/SHA1, Tue 11 Feb 2003 01:46:46 PM EST, Key ID fd372689897da07aPackager : CentOS, Inc.

75 Ing. Iván Ferreira

Page 76: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación y gestión de paquetes

Summary : Root crontab files used to schedule the execution of programs.Description :The crontabs package contains root crontab files. Crontab is theprogram used to install, uninstall, or list the tables used to drive thecron daemon. The cron daemon checks the crontab files to see whenparticular commands are scheduled to be executed. If commands arescheduled, then it executes them.

Estos son solamente algunos ejemplos. Al usarlo, descubrirá muchos más usos para RPM.

Yellowdog Updater Modified (YUM)

Yum es un actualizador automatico y administrador de paquetes para sistemas basados en rpm.

● Yum provee:

● Multiples repositorios.

● Archivo simple de configuracion.

● Calculo correcto de dependencias.

● Interface simple.

Configuración de YUM

Antes de utilizar yum y para obtener el potencial total de yum, debemos importar la clave GPG de CentOS. Para seguridad adicional, todos los paquetes del proyecto CentOS son firmados con la clave pública. Si intenta realizar una actualización sin importar la clave, vera lo siguiente:

# yum update

You have enabled checking of packages via GPG keys. This is a good thing.However, you do not have any GPG public keys installed. You need to downloadthe keys for packages you wish to install and install them.You can do that by running the command: rpm --import public.gpg.keyFor more information contact your distribution or package provider.

La clave GPG de CentOS ha sido instalado en el sistema durante la instalación inicial, de tal forma que importar la clave es un proceso simple:

# rpm --import /usr/share/{rhn,rpm-*}/RPM-GPG-KEY# rpm --import /usr/share/doc/centos-*/RPM-GPG-KEY

Ahora el comando yum update se ejecutará correctamente.

Red Hat Certified Engineer 76

Page 77: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación y gestión de paquetes

Es importante conocer como agregar repositorios de terceros quienes pueden ofrecer paquetes no disponibles directamente desde el proyecto CentOS. El archivo de configuración por defecto es /etc/yum.conf, el cual contiene la sección [main], y toda la información de los repositorios está almacenada en los archivos /etc/yum.repos.d como archivos .repo.

La configuración por defecto utiliza los siguientes sitios mirror:

# cat /etc/yum.repos.d/CentOS-Base.repo

[base]name=CentOS-$releasever - Basemirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/gpgcheck=1gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4priority=1protect=1

#released updates[update]name=CentOS-$releasever - Updatesmirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/gpgcheck=1gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4priority=1protect=1

#packages used/produced in the build but not released[addons]name=CentOS-$releasever - Addonsmirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/gpgcheck=1gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4priority=1protect=1

#additional packages that may be useful[extras]name=CentOS-$releasever - Extrasmirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/gpgcheck=1gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4priority=1protect=1enabled=1

#additional packages that extend functionality of existing packages[centosplus]name=CentOS-$releasever - Plusmirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/gpgcheck=1

77 Ing. Iván Ferreira

Page 78: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación y gestión de paquetes

enabled=1gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4priority=2protect=1

#contrib - packages by Centos Users[contrib]name=CentOS-$releasever - Contribmirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/gpgcheck=1enabled=0gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4priority=2protect=1

El archivo Centos-Media.repo permite configurar un repositorio local a partir del DVD de instalación.

# cat /etc/yum.repos.d/CentOS-Media.repo

[c4-media]name=CentOS-$releasever - Mediabaseurl=file:///media/cdrom/ file:///media/cdrecorder/gpgcheck=1enabled=0gpgkey=file:///usr/share/doc/centos-release-4/RPM-GPG-KEY-centos4

La configuración debería modificarse para utilizar sitios mirror que se encuentren geográficamente mas cerca o sean mas rápidos. Fíjese en los sitios mirror para los paquetes base y updates y seleccione el mas apropiado.

Las variables $releasever y $basearch son reemplazadas por la versión de Linux y arquitectura utilizada respectivamente.

El fuerte de yum es la facilidad con la que puede agregar repositorios de terceros. Para agregar un repositorio, simplemente agregue archivos .repo. He aquí unos archivos de configuración para unos repositorios comunes:

# cat /etc/yum.repos.d/Extras.repo

[dries]name=Extra CentOS rpms dries - $releasever - $basearchbaseurl=http://ftp.belnet.be/packages/dries.ulyssis.org/redhat/el$releasever/en/$basearch/dries/RPMS/enabled=1gpgcheck=0

[rpmforge]name = CentOS $releasever - RPMforge.net - dagmirrorlist = http://apt.sw.be/redhat/el$releasever/en/mirrors-rpmforgeenabled = 1protect = 0gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-daggpgcheck = 1

[kbs-CentOS-Extras]name=CentOS.Karan.Org-EL$releasever - Stable

Red Hat Certified Engineer 78

Page 79: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación y gestión de paquetes

gpgcheck=1gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txtenabled=1baseurl=http://centos.karan.org/el$releasever/extras/stable/$basearch/RPMS/

La opción enabled habilita el repositorio, la opción gpgcheck debería ser deshabilitada a menos que se cuente con la clave pública del sitio de descarga.

Utilización de YUM

Lo primero es actualizar la cabecera de rpms desde el repositorio.

# yum check-update

Para actualizar todo el sistema ejecute:

# yum update

Para actualizar un paquete especifico ejecute:

# yum update <paquete>

Para instalar un paquete que no tiene actualmente ejecute:

# yum install <paquete>

Para buscar un paquete puede utilizar el comando:

# yum search <texto_de_busqueda>

Suponiendo que una dependencia solicite una biblioteca que no es un paquete en si, como libc6.1-1.so.2, como lo obtiene?

Ejecute:

# yum provides libc6.1-1.so.2

Para desinstalar un paquete ejecute:

# yum remove <paquete>

Para eliminar paquetes en cache que son viejos y cabeceras no necesarias ejecute el comando:

# yum clean all

Para obtener informacion de un paquete ejecute el comando:

# yum info <paquete>

79 Ing. Iván Ferreira

Page 80: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación y gestión de paquetes

Creación de un repositorio yum local

Si se tienen varias computadoras que deben ser actualizadas vía yum, entonces debería considerar la creación de un repositorio local yum. Esto no solo conserva ancho de banda, sino mejora la respuesta de yum para instalar programas adicionales. Además, la ejecución de yum a través de LAN en lugar de WAN es mucho mas rápida. La desventaja es que probablemente este descargando actualizaciones no necesarias para sus máquinas.

Creación del repositorio base para YUM

Para crear un repositorio local yum, necesitará un servidor Web. La configuración por defecto proporcionada con CentOS es suficiente.

Cree una carpeta yum en el directorio especificado como DocumentRoot en el archivo de configuración del Apache, /etc/httpd/conf/httpd.conf. Por defecto es /var/www/html:

# mkdir /var/www/html/yum

Ahora, puede crear una estructura de directorios para almacenar los archivos. Yum soporta múltiples repositorios, de tal forma que puede actuar como servidor para cualquier versión de CentOS en el mismo servidor. La estructura utilizada para almacenar los archivos será:

/var/www/html/yum/CentOS/<version>/base

Siendo <version> un número entero correspondiente con la versión de CentOS utilizada.

Copie el contenido de cada CD de CentOS al directorio base.

# cp /media/cdrom/CentOS/RPMS/*.rpm /var/www/html/yum/CentOS/<version>/base

Ahora debe crear el archivo de metadatos XML para el repositorio, para ello necesitará el paquete createrepo.

# yum install createrepo

Para crear el archivo de metadatos XML para el directorio de RPMS base ejecute:

# createrepo /var/www/html/yum/CentOS/<version>/base

Si el comando se ejecuta correctamente, los archivos de metadatos serán creados en un directorio llamado /var/www/html/yum/CentOS/<version>/base/repodata.

Red Hat Certified Engineer 80

Page 81: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación y gestión de paquetes

Creación del repositorio updates para YUM

El tener su propio repositorio base es excelente para la instalación de software, pero puede sacar provecho de tener su propio repositorio de actualizaciones. La creación de uno es tan fácil como la creación de un directorio base. La estructura para el directorio de actualizaciones será:

/var/www/html/yum/CentOS/updates/<version>/

Luego, obtenga una copia de las actualizaciones, las cuales pueden ser obtenidas de cualquier servidor de descarga de archivos de CentOS, o algún mirror listado en http://www.centos.org/modules/tinycontent/index.php?id=13. Existen servidores identificados como rsync. Para descargar los archivos, puede utilizar el comando rsync.

Puede crear una tarea cron para mantener actualizado el repositorio updates.

Luego de descargar todos los paquetes a la carpeta updates, ejecute nuevamente el comando createrepo para generar los metadatos XML.

# createrepo /var/www/html/yum/CentOS/updates/<version>/

Si el comando se ejecuta correctamente, los archivos de metadatos serán creados en un directorio llamado /var/www/html/yum/CentOS/updates/<version>/repodata.

Una vez creados los repositorios asegúrese de iniciar el servicio httpd:

# service httpd start

Configuración de los equipos para utilizar el repositorio YUM local

Una vez creado el repositorio yum, es necesario indicar a los equipos que lo utilicen. Esto se hace configurando el archivo /etc/yum.repos.d/local.repo:

[base]name=CentOS $releasever - $basearch - Basebaseurl=http://nombre_servidor/CentOS/$releasever/base/

Luego configure el archivo /etc/yum.repos.d/local-updates.repo [updates-released]name=CentOS $releasever - $basearch - Released Updatesbaseurl=http://nombre_servidor/CentOS/updates/$releasever/

Ahora, simplemente ejecute el comando yum update para actualizar los sistemas.

81 Ing. Iván Ferreira

Page 82: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Instalación y gestión de paquetes

Si comparte los archivos a través de NFS, no necesita un servidor web para actuar como repositorio, puede configurar yum para que utilice el repositorio via NFS, utilizando como protocolo file://, por ejemplo, el archivo /etc/yum.repos.d/local_nfs.repo sería como sigue:

[base]name=CentOS $releasever - $basearch - Basebaseurl=file:///recurso_nfs/CentOS/$releasever/base/

El archivo /etc/yum.repos.d/local_nfs-updates.repo sería como sigue

[updates-released]name=CentOS $releasever - $basearch - Released Updatesbaseurl=file:///recurso_nfs/CentOS/updates/$releasever/

Red Hat Certified Engineer 82

Page 83: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

6

Configuración de impresoras

Page 84: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Configuración de impresoras

Configuración de impresoras

Configuración de la impresora

La Herramienta de configuración de impresoras permite a los usuarios configurar una impresora en CentOS Linux. Esta herramienta ayuda a mantener el archivo de configuración de la impresora, los directorios spool y los filtros de impresión.

En CentOS Linux, CUPS es el sistema de impresión predeterminado.

Para usar la Herramienta de configuración de impresoras debe tener privilegios como root. Para iniciar la aplicación, escriba el comando system-config-printer. Este comando determina automáticamente si ejecutará la versión gráfica o la versión basada en texto dependiendo de si el comando es ejecutado desde el ambiente gráfico X Window o desde una consola basada en texto.

Puede forzar a la Herramienta de configuración de impresoras a ejecutarse como una aplicación basada en texto usando el comando system-config-printer-tui desde el intérprete de comandos.

Se pueden configurar los siguientes tipos de colas de impresión:

● Conectada-localmente una impresora directamente conectada al computador a través de un puerto paralelo o USB.

● Conectada CUPS (IPP) una impresora conectada a un sistema CUPS diferente que puede ser accedida sobre una red TCP/IP (por ejemplo, una impresora conectada a otro sistema CentOS Linux corriendo CUPS en la red).

● Conectada UNIX (LPD) una impresora conectada a un sistema UNIX diferente que puede ser accedida sobre una red TCP/IP (por ejemplo, una impresora conectada a otro sistema CentOS Linux corriendo LPD en la red).

● Conectada Windows (SMB) una impresora conectada a un sistema diferente el cual está compartiendo una impresora sobre una red SMB (por ejemplo, una impresora conectada a una máquina Microsoft Windows.

● Conectada JetDirect una impresora conectada directamente a la red a través de HP JetDirect en vez de a un computador.

Añadir una impresora local

Red Hat Certified Engineer 84

Page 85: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Configuración de impresoras

Para añadir una impresora local, tal como una conectada al puerto paralelo o USB en su computador, haga clic el botón Nueva Impresora en la ventana principal de la Herramienta de configuración de impresoras. Haga clic en Siguiente para proceder.

Introduzca un nombre único para la impresora en el campo de texto Nombre de impresora. El nombre de la impresora no puede contener espacios y debe comenzar con una letra. El nombre de la impresora puede contener letras, números, guiones (-), y rayas (_). Opcionalmente, introduzca una descripción corta para la impresora, la cual puede contener espacios y la ubicación.

Haga clic en el botón Adelante. Seleccione el tipo de conexión de la impresora de la lista Seleccione Conexión.

El próximo paso es seleccionar el tipo de impresora.

Añadir una impresora IPP

Una impresora de red IPP es una impresora conectada a un sistema Linux diferente en la misma red ejecutando CUPS o una impresora configurada para usar IPP en otro sistema operativo. Por defecto, la Herramienta de configuración de impresoras navega la red en busca de impresoras compartidas IPP.

Si tiene un cortafuegos (firewall) configurado en el servidor de impresión, este debe ser capaz de enviar y recibir conexiones en el puerto de entrada UDP 631. Si tiene un cortafuegos configurado en el cliente (la computadora enviando la petición de impresión), se le debe permitir enviar y aceptar conexiones en el puerto 631.

Introduzca un nombre único para la impresora en el campo de texto Nombre de impresora. El nombre de la impresora no puede contener espacios y debe comenzar con una letra. El nombre de la impresora puede contener letras, números, guiones (-), y rayas (_). Opcionalmente, introduzca una descripción corta para la impresora, la cual puede contener espacios.

Después de hacer clic en Adelante. Seleccione Internet Printing Protocol (ipp) de la lista Seleccione Conexión.

Aparecen los campos de texto para las opciones siguientes:

● Nombre de Equipo El nombre de la máquina o dirección IP de la máquina remota a la cual la impresora está conectada.

● Nombre de la impresora El nombre de la impresora compartida en la máquina remota. Ej. hp2100.

85 Ing. Iván Ferreira

Page 86: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Configuración de impresoras

Añadir una impresora UNIX (LPD) remota

Para agregar una impresora UNIX remota, tal como una conectada a un sistema Linux diferente en la misma red, haga clic en el botón Nueva impresora en la ventana principal de la Herramienta de configuración de impresoras.

Introduzca un nombre único para la impresora en el campo de texto Nombre de impresora.. El nombre de la impresora no puede contener espacios y debe comenzar con una letra. El nombre de la impresora puede contener letras, números, guiones (-), y rayas (_). Opcionalmente, introduzca una descripción corta para la impresora, la cual puede contener espacios.

Seleccione LPR/LPD Host or Printer de la lista Seleccione Conexión.

Aparecen los campos de texto para las opciones siguientes:

● Nombre de Equipo El nombre de la máquina o dirección IP de la máquina remota a la cual la impresora está conectada.

● Nombre de la impresora El nombre de la impresora compartida en la máquina remota. Ej. lp.

Haga clic en Adelante para continuar.

El próximo paso es seleccionar el tipo de impresora.

Añadir una impresora Samba (SMB)

Para añadir una impresora que es accedida usando el protocolo SMB (tal como una impresora conectada a un sistema Microsoft Windows), haga clic en el botón Nueva impresora en la ventana principal de la Herramienta de configuración de impresoras.

Introduzca un nombre único para la impresora en el campo de texto Nombre de impresora.. El nombre de la impresora no puede contener espacios y debe comenzar con una letra. El nombre de la impresora puede contener letras, números, guiones (-), y rayas (_). Opcionalmente, introduzca una descripción corta para la impresora, la cual puede contener espacios.

Seleccione Windows Printer via SAMBA de la lista Seleccione Conexión.

Las impresoras SMB son detectadas automáticamente y listadas en la columna Compartir. Si la impresora que busca no se encuentra en la lista, ingrese la dirección SMB en el campo smb://. Utilice el formato equipo/impresora, por ejemplo pc01/hplj01.

Red Hat Certified Engineer 86

Page 87: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Configuración de impresoras

En el campo Nombre de usuario ingrese el nombre de usuario con el que debe conectarse para acceder a la impresora. Este usuario debe existir en el sistema Windows y el usuario debe tener permiso para acceder a la impresora. El nombre de usuario predeterminado es típicamente guest para los servidores Windows, o nobody para los servidores Samba.

Ingrese la Contraseña (si se necesita) para el usuario especificado en el campo Nombre de usuario.

Haga clic en Adelante para continuar.

El próximo paso es seleccionar el tipo de impresora.

Advertencia: Los nombres de usuarios y contraseñas se almacenan en el servidor de impresión como campos no encriptados con acceso de lectura para root y lpd. Por tanto, otros usuarios que tienen acceso como root al servidor de impresión pueden ver el usuario y la contraseña proporcionada para conectarse a la impresora.

Añadir una impresora JetDirect

Para agregar una impresora JetDirect, haga click en el botón Nueva impresora en la ventana principal de la Herramienta de configuración de impresoras.

Introduzca un nombre único para la impresora en el campo de texto Nombre. El nombre de la impresora no puede contener espacios y debe comenzar con una letra. El nombre de la impresora puede contener letras, números, guiones (-), y rayas (_). Opcionalmente, introduzca una descripción corta para la impresora, la cual puede contener espacios.

Seleccione AppSocket/HP JetDirect de la lista Seleccione Conexión.

Aparecerán los campos de texto para las siguientes opciones:

● Nombre de Equipo El nombre de la máquina o dirección IP de la impresora JetDirect.

● Puerto El puerto en la impresora JetDirect que está escuchando por trabajos de impresión. El puerto predeterminado es 9100.

Haga clic en Adelante para continuar.

El próximo paso es seleccionar el tipo de impresora.

87 Ing. Iván Ferreira

Page 88: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Configuración de impresoras

Selección del modelo de impresora

Después de seleccionar el tipo de cola de impresión, el próximo paso es seleccionar el modelo de la impresora.

Si no fue detectado automáticamente, seleccione el modelo de la lista. Las impresoras son divididas por fabricantes. Seleccione el nombre del fabricante desde el menú. Los modelos de impresoras son actualizados cada vez que un nuevo fabricante es seleccionado. Seleccione el modelo de impresora de la lista.

El controlador de la impresora recomendado es escogido basado en el modelo de impresora seleccionado. El controlador de la impresora procesa los datos que desea imprimir en un formato que la impresora pueda entender. Puesto que hay una impresora local conectada a su computador, necesita un controlador de impresora para procesar los datos que son enviados a la misma.

Si está configurando una impresora remota (IPP, LPD, SMB), el servidor de impresión remoto usualmente tiene su propio controlador de impresión. Si selecciona un controlador de impresión adicional en su computador local, los datos son filtrados múltiples veces y convertido a un formato que la impresora no puede entender.

Para asegurarse de que los datos no son filtrados más de una vez, primero trate de seleccionar Genérico como el fabricante e Impresora Postscript como el modelo de impresora. Después de aplicar los cambios, imprima una página de prueba para probar la nueva configuración. Si la prueba falla, el servidor de impresión remoto puede que no tenga un controlador de impresora configurado. Intente seleccionando un controlador de acuerdo al fabricante y modelo de la impresora remota, aplique los cambios e imprima una página de prueba.

También puede proporcionar un archivo PPD (PostScript Printer Description). Este archivo es normalmente proporcionado por el fabricante de la impresora.

Administración de trabajos de impresión

Cuando usted envía un trabajo de impresión al demonio de impresión, tal como imprimir un archivo de texto desde Emacs o imprimir una imagen desde El GIMP, el trabajo de impresión es añadido al spool de la cola de impresión. El spool de la cola de impresión es una lista de los trabajos de impresión que han sido enviados a la impresora e información acerca de cada petición de impresión, tal como el estado de la petición, el nombre del usuario de la persona que envió la petición, el nombre de la máquina que lo envió, el número de trabajo, etc.

Para ver una lista de los trabajos de impresión en el spool de impresión desde el intérprete de comandos, escriba el comando lpq. Las últimas pocas líneas de la salida de este comando, serán similares a lo siguiente:

Red Hat Certified Engineer 88

Page 89: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Configuración de impresoras

Rank Owner/ID Class Job Files Size Timeactive user@localhost+902 A 902 sample.txt 2050 01:20:46

Si desea cancelar un trabajo de impresión, encuentre el número del trabajo de la petición con el comando lpq y luego use el comando lprm y el número de trabajo. Ejemplo:

# lprm 902

Para borrar todos los trabajos ejecute el comando:

# lprm -

Deshabilitando las impresoras y las colas de impresión

Los comandos cupsenable y cupsdisable puede ser utilizado para controlar la impresión de los trabajos en la cola de impresión. La sintaxis del comando es la siguiente:

/usr/sbin/cupsdisable destino(s)/usr/sbin/cupsenable destino(s)

Las colas de impresión deshabilitadas aún aceptarán solicitudes de impresión pero no comenzarán a imprimir hasta que sean habilitadas.

Los comandos accept y reject permiten o deniegan trabajos de impresión. La sintaxis del comando es:

/usr/sbin/reject destinos(s)/usr/sbin/accept destino(s)

Con el comando reject la impresora no aceptará nuevos trabajos de impresión hasta que se ejecute el comando accept nuevamente.

Utilice el comando lpc stat para identificar el estado de la impresora:

# lpc stathp2100: printer is on device 'lpd' speed -1 queuing is enabled printing is enabled no entries daemon present

# disable hp2100

# lpc stathp2100: printer is on device 'lpd' speed -1 queuing is enabled printing is disabled no entries

89 Ing. Iván Ferreira

Page 90: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

Configuración de impresoras

daemon present

# lpc stathp2100: printer is on device 'lpd' speed -1 queuing is disabled printing is disabled no entries daemon present

En el ejemplo podemos observar que primeramente se detiene la cola de impresión, luego se detiene la recepción de nuevos trabajos de impresión.

Compartir una impresora

La habilidad de la Herramienta de configuración de impresoras de compartir las opciones de configuración sólo puede ser usada si está usando el sistema de impresión CUPS.

El permitir a otros usuarios en un computador diferente en la red imprimir a una impresora configurada para su sistema se llama compartir la impresora. Por defecto, las impresoras configuradas con la herramienta de configuración de impresoras están compartidas.

Para compartir o dejar de una impresora configurada, arranque la Herramienta de configuración de impresoras y seleccione una impresora desde la lista. Luego en la pestaña Configuración marque la opción Compartido en las opciones de Estado.

Red Hat Certified Engineer 90

Page 91: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

7

El sistema X Window

Page 92: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

El sistema X Window

Mientras que el corazón de CentOS Enterprise Linux es el kernel, para muchos usuarios, la cara del sistema operativo es el entorno gráfico proporcionando por el Sistema X Window, también llamado simplemente X.

En el mundo UNIX, los entornos de ventanas han existido desde hace décadas, siendo éstos precursores de muchos de los utilizados en los sistemas operativos actuales. A través de los años X se ha convertido en el entorno gráfico (GUI) predominante para sistemas operativos del tipo UNIX.

El entorno gráfico para CentOS Enterprise Linux es suministrado por la Fundación X.Org, una implementación de código abierto creada para manejar el desarrollo y la estrategia para el sistema X y sus tecnologías asociadas. X.Org es un proyecto de gran escala que se apoya en un gran número de desarrolladores en todo el mundo.

Presenta una amplia gama de soporte para diferentes dispositivos de hardware y arquitecturas, así como la posibilidad de ejecutarse en diferentes sistemas operativos y plataformas. La versión actual de CentOS Enterprise Linux incluye específicamente el lanzamiento X11R7.1 del sistema X Window.

El sistema X Window utiliza una arquitectura cliente-servidor. El servidor de X (el binario Xorg) escucha por conexiones desde las aplicaciones cliente X a través de la red o una interfaz local de loopback. El servidor gestiona la comunicación con el hardware, que puede ser una tarjeta gráfica, un monitor, un teclado o un ratón. Las aplicaciones cliente de X existen en el espacio del usuario, creando una interfaz gráfica del usuario (GUI) y pasando peticiones al servidor de X.

El lanzamiento X11R7.1

CentOS Enterprise Linux 5 utiliza el lanzamiento X11R7.1 del sistema de ventanas X. Este lanzamiento incluye varios controladores de vídeo, EXA, soporte mejorado de plataformas en comparación con versiones anteriores y otras características. Además, este lanzamiento incluye varias funciones de configuración automática para el servidor X.

En el lanzamiento X11R7.1, todas las bibliotecas, archivos de cabecera, y archivos binarios se encuentran en /usr/ y no en /usr/X11R6. El directorio /etc/X11/ contiene archivos de configuración para los clientes X y las aplicaciones del servidor. Entre estos archivos se encuentran los archivos de configuración del servidor mismo, del servidor de fuentes xfs, de los administradores de visualización X y de otros componentes base.

El archivo de configuración para la nueva arquitectura de fuentes basado en Fontconfig es /etc/fonts/fonts.conf.

Red Hat Certified Engineer 92

Page 93: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

Ya que el servidor X ejecuta tareas avanzadas sobre una amplia variedad de hardware, éste requiere información detallada sobre el hardware sobre el cual trabaja. El servidor X detecta automáticamente gran parte de esta información. Sin embargo, algunos detalles deben ser configurados.

El programa de instalación instala y configura X automáticamente, a menos que los paquetes del lanzamiento X11R7.1 no sean seleccionados para la instalación. Sin embargo, si la tarjeta de vídeo o el monitor cambian, X debe ser reconfigurado. La manera más apropiada de reconfigurar el servidor es a través de system-config-display, particularmente para dispositivos que no se detectan automáticamente.

En algunas circunstancias, la reconfiguración del servidor X puede requerir la edición manual del archivo de configuración, /etc/X11/xorg.conf.

Entornos de escritorio

Un entorno de escritorio une diferentes clientes de X, los cuales cuando se usan juntos crean un ambiente de usuario gráfico común y una plataforma de desarrollo.

Los entornos de escritorio tienen características avanzadas las cuales permiten a los clientes X y a otros procesos comunicarse unos con otros y permitir a todas las aplicaciones escritas para funcionar en ese ambiente a que realicen tareas avanzadas, tales como operaciones de arrastrar y soltar.

CentOS Linux proporciona dos entornos de escritorio:

● GNOME Es el entorno de escritorio por defecto en CentOS Linux basado en el conjunto de herramientas gráficas GTK+ 2.

● KDE Un entorno de escritorio alternativo basado en el conjunto de herramientas gráficas Qt 3.

Ambos entornos GNOME y KDE tienen aplicaciones de productividad avanzadas, tales como procesadores de palabras, hojas de cálculo y navegadores Web así como herramientas para personalizar la apariencia de la GUI. Adicionalmente, si ambas librerías están presentes, la GTK+ 2 y la Qt, las aplicaciones KDE pueden ejecutarse en GNOME y viceversa.

Puede utilizar el comando switchdesk para cambiar el entorno de escritorio utilizado.

La sintaxis del comando es:

switchdesk < KDE | GNOME | XFCE | FVWM | WindowMaker >

93 Ing. Iván Ferreira

Page 94: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

Gestores de ventanas

Los gestores de ventanas son programas clientes de X que son o parte del entorno de escritorio o, en otros casos, standalone. Su propósito principal es controlar la forma en que las ventanas gráficas son posicionadas, redimensionadas o movidas. Los manejadores de ventanas controlan las barras de títulos, el comportamiento del foco, los vínculos del botón del ratón y teclas especificadas por el usuario.

Se incluyen cuatro gestores de ventanas con CentOS Linux:

● kwin El gestor de ventanas KWin es el manejador por defecto para el entorno KDE. Es un manejador de ventanas que soporta temas personalizados.

● metacity El gestor de ventanas Metacity es el manejador por defecto del entorno GNOME. Es un manejador de ventanas simple y eficiente que también soporta temas personalizados.

● mwm El gestor de ventanas Motif, es un gestor básico tipo standalone. Puesto que está diseñado para ser un gestor standalone, no se debería utilizar en conjunto con los entornos de escritorios GNOME o KDE.

● twm El minimalista Administrador de pestañas de ventanas, el cual proporciona el conjunto de herramientas más básicas de cualquier gestor de ventanas y puede ser usado bien sea standalone o con un entorno de escritorio. Es instalado como parte del lanzamiento X11R7.1.

Estos gestores de ventanas pueden ejecutarse sin los entornos de escritorio para poder obtener una impresión de sus diferencias. Teclee el comando:

xinit -e <ruta-al-gestor-de-ventanas>

Donde <ruta-al-gestor-de-ventanas> es la ubicación del archivo binario de gestor de ventanas. El archivo binario puede ser encontrado escribiendo which <nombre-de-gestor-de-ventanas>. Por ejemplo:

# which twm/usr/bin/twm# xinit -e /usr/bin/twm

El primer comando retorna la ruta absoluta del gestor de ventanas twm, el segundo comando inicia twm.

Para salir de un gestor de ventanas, cierra la última ventana o presione Ctrl-Alt-Backspace. Una vez haya salido del gestor de ventanas, puede regresar al nivel de ejecución 5 escribiendo startx en el intérprete de comandos.

Red Hat Certified Engineer 94

Page 95: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

Archivos de configuración del servidor X

El servidor X es un binario ejecutable (/usr/bin/Xorg). Los archivos de configuración asociados se almacenan en el directorio /etc/X11/ (es un enlace simbólico — X — que apunta a /usr/bin/Xorg). El archivo de configuración para el servidor X es /etc/X11/xorg.conf.

El directorio /usr/lib/xorg/modules/ contiene los módulos del servidor X que pueden ser cargados dinámicamente en tiempo de ejecución. Por defecto, el servidor X sólo carga algunos de los módulos en /usr/lib/xorg/modules/.

Para cargar módulos opcionales, éstos deben ser especificados en el archivo de configuración del servidor X, /etc/X11/xorg.conf.

Cuando se instala CentOS Enterprise Linux, los archivos de configuración para X son creados con la información sobre el hardware del sistema reunida durante el proceso de instalación.

El archivo xorg.conf

Mientras que casi nunca se necesita editar manualmente el /etc/X11/xorg.conf, es muy útil conocer sobre las varias secciones y los parámetros opcionales disponibles, especialmente cuando se estén solucionando problemas.

La estructura de Xorg

El archivo /etc/X11/xorg.conf está formado de muchas secciones diferentes las cuales hacen referencia a aspectos específicos del hardware del sistema.

Cada sección comienza con una línea Section "<nombre-seccion>" (donde <nombre-seccion> es el título para la sección) y termina con una línea EndSection. Dentro de cada sección, hay líneas conteniendo nombres de opciones y al menos un valor de opción, ocasionalmente visto en comillas.

Las líneas que comienzan con un símbolo de numeral o almohadilla [#] no son leídas por el servidor y son usadas como comentarios.

Algunas opciones dentro del archivo de configuración aceptan un switch boleano el cual activa o desactiva la característica. Los valores boleanos son:

● 1, on, true, yes - Activa la opción.

● 0, off, false, no - Desactiva la opción.

95 Ing. Iván Ferreira

Page 96: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

Lo siguiente son algunas de las secciones más importantes ordenadas como aparecen en un archivo de configuración típico.

Sección ServerFlags

La sección opcional ServerFlags contiene varios parámetros globales del servidor. Cualquier parámetro en esta sección puede ser sobreescrito por opciones colocadas en la sección ServerLayout

Las entradas dentro de la sección ServerFlags están en sus propias líneas y comienzan con el término Option seguido por una opción encerrada en dobles comillas ["].

A continuación un ejemplo de la sección ServerFlags:

Section "ServerFlags" Option "DontZap" "true"EndSection

La siguiente es una lista de algunas de las opciones más útiles:

● "DontZap" "<booleano>" - Cuando el valor de <booleano> está configurado a verdadero, esta configuración previene el uso de la combinación de teclas [Ctrl]-[Alt]-[Retroceso] para terminar inmediatamente el servidor X.

● "DontZoom" "<booleano>" - Cuando el valor de <booleano> está

colocado a verdadero, esta configuración previene moverse a lo largo de las resoluciones de vídeo configuradas usando las combinaciones de teclas [Ctrl]-[Alt]-[Keypad-Mas] y [Ctrl]-[Alt]-[Keypad-Menos]

Sección ServerLayout

La sección ServerLayout vincula los dispositivos de entrada y salida controlados por el servidor X. Como mínimo, esta sección debe especificar un dispositivo de salida y al menos dos dispositivos de entrada (un teclado y un ratón).

El ejemplo siguiente ilustra una sección ServerLayout típica:

Section "ServerLayout" Identifier "Default Layout" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard"EndSection

Las entradas siguientes son usadas a menudo en la sección ServerLayout:

Red Hat Certified Engineer 96

Page 97: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

● Identifier - Especifica un nombre único para esta sección ServerLayout.

● Screen - Especifica el nombre de la sección Screen a ser usado con el servidor X. Pueden estar presentes más de una opción Screen.

Lo siguiente es un ejemplo de una entrada Screen típica:

Screen 0 "Screen0" 0 0

El primer número en esta entrada de ejemplo Screen (0) indica que el primer conector del monitor o head en la tarjeta de vídeo usa la configuración especificada en la sección Screen con el identificador "Screen0".

Si la tarjeta de vídeo tiene más de una cabeza, será necesaria otra entrada Screen con un número diferente y un identificador de sección Screen.

Los números a la derecha de "Screen0" proporcionan las coordenadas absolutas X y Y para la esquina superior izquierda de la pantalla (0 0 por defecto).

● InputDevice - Especifica el nombre de una sección InputDevice a ser usada con el servidor X.

Al menos deben haber dos entradas InputDevice: una para el ratón por defecto y una para el teclado por defecto. Las opciones CorePointer y CoreKeyboard indican que estos son el ratón y teclado principales.

● Option "<nombre-opcion>" - Una entrada opcional que especifica parámetros extra para esta sección. Cualquier sección listada aquí sobreescriben aquellas listadas en la sección ServerFlags.

Reemplace <nombre-opcion> con una opción válida listada para esta sección en la página man X.

Es posible crear más de una sección ServerLayout. Sin embargo, el servidor sólo leerá la primera sección que aparezca a menos que se especifique una sección ServerLayout alternativa como argumento en la línea de comandos cuando inicie la sesión X.

Sección Files

La sección Files configura la ruta para servicios vitales al servidor X, tal como la ruta de la fuente. Esta sección es opcional, estas rutas son normalmente detectadas de forma automática. Esta sección puede ser usada para sobreescribir

97 Ing. Iván Ferreira

Page 98: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

las rutas detectadas automáticamente.

El siguiente ejemplo ilustra una sección Files:

Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "unix/:7100"EndSection

Las siguientes entradas son usadas comúnmente en la sección Files:

● RgbPath - Especifica la ubicación de la base de datos de colores RGB. Esta base de datos define todos los esquemas de color en X y los junta para valores RGB específicos.

● FontPath - Especifica dónde el servidor X debe ser conectado para obtener las fuentes desde el servidor de fuentes xfs.

Por defecto, la FontPath es unix/:7100. Esto le dice al servidor X para obtener información de fuentes usando sockets de dominio UNIX para la comunicación entre procesos (IPC) en el puerto 7100.

● ModulePath - Un parámetro opcional el cual especifica directorios alternativos el cual almacena módulos de servidor X.

Sección Module

La sección Module especifica cuales módulos del directorio /usr/lib/xorg/modules/ cargará el servidor X. Los módulos añaden funcionalidad adicional al servidor X.

Por defecto, el servidor X carga automáticamente los siguientes módulos desde el directorio /usr/lib/xorg/modules/:

● extmod

● dbe

● glx

● freetype

● type1

● record

● dri

Red Hat Certified Engineer 98

Page 99: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

El ejemplo siguiente ilustra una sección Module típica:

Section "Module"Load "extmod"Load "dbe"Load "glx"Load "freetype"Load "type1"Load "record"Load "dri"

EndSection

El directorio predeterminado para cargar estos módulos puede modificarse a través del parámetro opcional ModulePath en la sección Files.

Si se añade una sección Module a /etc/X11/xorg.conf, el servidor X cargará los módulos listados en esta sección en vez de los módulos predeterminados.

Sección InputDevice

Cada sección InputDevice configura un dispositivo de entrada para el servidor X. Los sistemas típicamente tienen al menos dos secciones InputDevice, un teclado y un ratón.

El ejemplo siguiente ilustra una sección InputDevice típica para un teclado:

Section "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "XkbModel" "pc105" Option "XkbLayout" "es"EndSection

Las entradas siguientes son comúnmente usadas en la sección InputDevice:

● Identifier - Especifica un nombre único para esta sección InputDevice. Esto es una entrada requerida.

● Driver - Especifica el nombre del controlador del dispositivo que X debe cargar para el dispositivo.

● Option - Especifica las opciones necesarias pertinentes al dispositivo.

Para un ratón, estas opciones incluyen:

– Protocol - Indica el protocolo usado por el ratón, tal como IMPS/2.

– Device - Indica la ubicación del dispositivo físico.

– Emulate3Buttons - Especifica si se va a permitir a un ratón de dos

99 Ing. Iván Ferreira

Page 100: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

botones a que se comporte como uno de tres cuando se presionen ambos botones simultáneamente.

Consulte la página man xorg.conf para una lista de las opciones válidas para esta sección.

Sección Monitor

Cada sección Monitor configura un tipo de monitor utilizado por el sistema. Esta también es una entrada opcional, ya que la mayoría de monitores son detectados automáticamente.

La forma más sencilla de configurar un monitor es durante el proceso de instalación o usando system-config-display.

Este ejemplo muestra una sección de Monitor típica:

Section "Monitor"Identifier "Monitor0"VendorName "Monitor Vendor"ModelName "DDC Probed Monitor - ViewSonic G773-2"DisplaySize 320 240HorizSync 30.0 - 70.0VertRefresh 50.0 - 180.0

EndSection

Tenga cuidado cuando modifique manualmente valores en la sección Monitor de los archivos de configuración. Valores inapropiados pueden dañar o destruir su monitor. Consulte la documentación sobre monitores para un listado de parámetros seguros.

A continuación se muestran entradas comunes usadas en la sección Monitor:

● Identifier - Proporciona un nombre único para esta sección Monitor. Esta es una entrada requerida.

● VendorName - Parámetro opcional que muestra el nombre del fabricante del monitor.

● ModelName - Parámetro opcional que muestra el nombre del modelo del monitor.

● DisplaySize - Un parámetro opcional que especifica, en milímetros, el

tamaño físico del área de dibujo del monitor.

● HorizSync - Especifica el rango de la frecuencia de sincronización horizontal compatible con el monitor en kHz. Estos valores ayudan al servidor X a determinar la validez de las entradas Modeline especificadas

Red Hat Certified Engineer 100

Page 101: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

para el monitor.

● VertRefresh - Lista de los rangos de frecuencias de refresco verticales soportados por el monitor, en Hz. Estos valores se usan como referencia para que el servidor X sepa cuando deberá utilizar cada una de las entradas que aparecen en Modeline con este monitor.

● Modeline - Un parámetro opcional el cual especifica los modos de vídeo adicionales para el monitor en resoluciones particulares, con ciertas resoluciones de refrescamiento de sincronización horizontal y vertical. Vea la página man de X para una explicación más detallada de las entradas Modeline.

● Option "<nombre-opcion>" - Una entrada opcional la cual especifica parámetros extra para la sección. Reemplace <nombre-opcion> con una opción válida listada para esta sección en la página man de xorg.conf.

Sección Device

Cada sección Device configura una tarjeta de vídeo en el sistema. Mientras una sección Device es lo mínimo, instancias adicionales pueden ocurrir para cada tarjeta de vídeo instalada en la máquina.

El siguiente ejemplo ilustra una sección Device típica para una tarjeta de vídeo:

Section "Device"Identifier "Videocard0"Driver "mga"VendorName "Videocard vendor"BoardName "Matrox Millennium G200"VideoRam 8192

Option "dpms"EndSection

Las siguientes entradas son usadas comúnmente en la sección Device:

● Identifier - Especifica un nombre único para esta sección Device. Esta es una entrada requerida.

● Driver - Especifica cuál controlador debe cargar el servidor X para poder utilizar la tarjeta de vídeo. Se puede encontrar una lista de los controladores en /usr/X11R6/lib/X11/Cards, el cual es instalado con el paquete hwdata.

● VendorName - Un parámetro opcional el cual especifica el fabricante de la tarjeta de vídeo.

● BoardName - Un parámetro opcional el cual especifica el nombre de la

101 Ing. Iván Ferreira

Page 102: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

tarjeta de vídeo.

● VideoRam - Un parámetro opcional el cual especifica la cantidad de RAM disponible en la tarjeta de vídeo en kilobytes. Este valor sólo es necesario para tarjetas de vídeo que el servidor X no puede probar para detectar la cantidad de RAM.

● BusID - Una entrada opcional la cual especifica la ubicación del bus de la tarjeta de vídeo. Esta opción es necesaria solamente para sistemas con múltiples tarjetas.

● Screen - Una entrada opcional la cual especifica que conector de monitor o cabezal en la tarjeta de vídeo configura la sección Device. Esta opción es útil solamente para tarjetas de vídeo con múltiples cabezales.

Si múltiples monitores son conectados a diferentes cabezales en la misma tarjeta de vídeo, deben existir secciones Device separadas y cada una de estas secciones debe tener un valor Screen diferente.

Los valores para la entrada Screen deben ser enteros. El primer cabezal en la tarjeta de vídeo tiene un valor de 0. El valor para cada cabezal adicional incrementa este valor en uno.

● Option "<nombre-opcion>" - Una entrada opcional la cual especifica parámetros extra para la sección. Reemplace <nombre-opcion> con una opción válida listada para esta sección en la página man de X.

Una de las opciones más comunes es "dpms", la cual activa la conformidad de energía Service Star para el monitor.

Sección Screen

Cada sección Screen vincula una tarjeta de vídeo (o cabezal) a un monitor referenciando la sección Device y la sección Monitor para cada uno. Mientras que una sección Screen es lo mínimo, pueden ocurrir instancias adicionales para cada combinación de tarjeta de vídeo y monitor presente en la máquina.

El ejemplo siguiente ilustra una sección Screen típica:

Section "Screen"Identifier "Screen0"Device "Videocard0"Monitor "Monitor0"DefaultDepth 16SubSection "Display"

Depth 24Modes "1280x960" "1152x864" "1024x768" "800x600" "640x480"

EndSubSectionSubSection "Display"

Red Hat Certified Engineer 102

Page 103: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

Depth 16Modes "1152x864" "1024x768" "800x600" "640x480"

EndSubSectionEndSection

Las siguientes entradas son usadas a menudo en la sección Screen:

● Identifier - Especifica un nombre único para esta sección Screen. Esta es una entrada requerida.

● Device - Especifica el nombre único de una sección Device. Esta es una entrada requerida.

● Monitor - Especifica el nombre único de una sección Monitor. Esta es una entrada requerida.

● DefaultDepth - Especifica la profundidad del color por defecto en bits. En el ejemplo anterior, el valor por defecto es 16, lo que proporciona miles de colores. Múltiples entradas de DefaultDepth son permitidas, pero al menos una debe estar presente.

● SubSection "Display" - Especifica los modos de la pantalla disponibles en una profundidad de color particular. Una sección Screen puede tener múltiples subsecciones Display, pero debe haber al menos una para la profundidad de color especificada en la entrada DefaultDepth.

● Option "<option-name>" - Una entrada opcional que especifica parámetros extra para la sección. Reemplace <option-name> con una opción válida listada para esta sección en la página man.

DRI

La sección opcional DRI especifica parámetros para Direct Rendering Infrastructure (DRI). DRI es una interfaz que permite a las aplicaciones de software 3D sacar provecho de las capacidades de aceleración de hardware 3D incorporadas en la mayoría del hardware moderno de vídeo. Además, DRI puede mejorar el rendimiento de 2D a través de la aceleración de hardware, si es soportado por el controlador de la tarjeta.

Esta sección es ignorada a menos que DRI esté activada en la sección Module.

El ejemplo siguiente muestra una sección DRI típica:

Section "DRI" Group 0 Mode 0666EndSection

103 Ing. Iván Ferreira

Page 104: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

Puesto que tarjetas de vídeo diferentes utilizan DRI de formas diferentes, no modifique estos valores para esta sección sin primero referirse a http://dri.sourceforge.net/.

Fuentes

CentOS Linux utiliza dos métodos para manejar fuentes y mostrarlas bajo X. El subsistema de fuentes más nuevo Fontconfig simplifica la gestión de fuentes y proporciona características avanzadas, tales como anti-aliasing. Este sistema es usado automáticamente para aplicaciones programadas usando el conjunto de herramientas Qt 3 o GTK+ 2.

Por compatibilidad, CentOS Linux incluye el subsistema de fuentes original, llamado el subsistema de fuentes nucleo de X. Este sistema, el cual tiene más de 15 años, está basado en el Servidor de fuentes de X (xfs).

Esta sección discute cómo configurar fuentes para X usando ambos sistemas.

Fontconfig

El subsistema de fuentes Fontconfig permite a las aplicaciones accesar directamente fuentes en el sistema y usar Xft u otros mecanismos de traducción de fuentes para interpretar fuentes Fontconfig con anti-aliasing avanzados. Las aplicaciones gráficas pueden usar la librería Xft con Fontconfig para dibujar texto a la pantalla.

Con el tiempo, el subsistema de fuentes Fontconfig/Xft reemplazará el subsistema de fuentes base de X.

Es importante resaltar que Fontconfig comparte el archivo de configuración /etc/fonts/fonts.conf, el cual sustituye al /etc/X11/XftConfig. El archivo de configuración Fontconfig no debería se modificado manualmente.

Añadir fuentes a Fontconfig

Añadir fuentes al subsistema Fontconfig es un proceso bastante directo.

Para añadir fuentes para todo el sistema, copie las nuevas fuentes en el directorio /usr/share/fonts/local/.

Para añadir fuentes para un usuario individual, copie las nuevas fuentes en el directorio .fonts/ en el directorio principal del usuario.

Red Hat Certified Engineer 104

Page 105: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

Utilice el comando fc-cache para actualizar la información caché de la fuente, como en el ejemplo siguiente:

fc-cache <path-to-font-directory>

En este comando, sustituya <path-to-font-directory> con el directorio conteniendo las nuevas fuentes (bien sea /usr/share/fonts/local/ o ~/.fonts/).

Añadir fuentes TrueType

Mientras Linux viene con una selección de fuentes ya instalada, existe una selección mucho mayor de fuentes TrueType disponibles en la web e incluído con productos que cualquier otro tipo de fuente.

Inicialmente cree un directorio para almacenar las fuentes TrueType:

# mkdir /usr/X11R6/lib/X11/fonts/TTF

Copie las fuentes a ese directorio y ejecute los siguientes comandos:

# cd /usr/X11R6/lib/X11/fonts/TTF# ttmkfdir > fonts.scale# mkfontdir

Si verifica el contenido del directorio debería encontrar dos archivos además de los archivos de fuente, “fonts.scale” y “fonts.dir”. Estos archivos simplemente contienen una lista de los nombres de las fuentes para cada fuente TrueType.

Finalmente debe agregar el nuevo directorio a la lista de ubicaciones en la cual Xwindows buscará las fuentes:

chkfontpath -a /usr/X11R6/lib/X11/fonts/TTF

Para agregar nuevas fuentes repita el mismo procedimiento, sin embargo el comando chkfontpath se ejecuta una sola vez, solamente cada vez que se desea agregar un directorio.

Sistema de fuentes base de X

Por compatibilidad, CentOS Linux todavía proporciona el subsistema de fuentes base de X, el cual utiliza el servidor de fuentes X (xfs) para proporcionar fuentes a las aplicaciones clientes X.

El servidor X busca por un servidor de fuentes especificado en la entrada FontPath bajo la sección Files del archivo de configuración.

105 Ing. Iván Ferreira

Page 106: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

Configuración de xfs

El script /etc/rc.d/init.d/xfs inicia el servidor xfs. Se pueden configurar muchas opciones en el archivo /etc/X11/fs/config.

La siguiente es una lista de las opciones más usadas:

● alternate-servers - Configura una lista de servidores alternativos de fuentes que podrán ser utilizados en el caso de que el servidor actual no esté disponible. Los diferentes servidores deberán estar separados por comas.

● catalogue - Lista ordenada de rutas que contienen las fuentes a utilizar. Cada ruta hacia las fuentes deberá estar separada por una coma antes de que comience otra nueva ruta en la lista.

Puede utilizar la cadena :unscaled inmediatamente después de la ruta hacia las fuentes para hacer que las fuentes no escalables se carguen antes que el resto de las fuentes de la ruta. Entonces, podrá especificar la ruta completa de nuevo de tal forma que las otras fuentes que sean escalables puedan ser cargadas.

● client-limit - Configura el número de clientes que el servidor de fuentes podrá servir antes de comenzar a denegar las conexiones. El número por defecto es 10.

● clone-self Permite al servidor de fuentes clonar una nueva versión de sí mismo si se llega al límite definido por el parámetro client-limit. Por defecto, esta opción está configurada como on.

● default-point-size - Configura el tamaño de punto por defecto para cualquier fuente que no especifique este valor. El valor de esta opción está estimado en décimas de puntos. El valor por defecto de 120 se corresponde a fuentes de 12 puntos.

● default-resolutions - Especifica una lista de resoluciones soportadas por el servidor X. Cada resolución de la lista debe estar separada por una coma.

● deferglyphs - Especifica si retrasar la carga de glyphs (el gráfico usado para visualmente representar una fuente). Para desactivar esta característica utilice none, para activarla para todas las fuentes utilice all, o para activar esta característica solamente para fuentes de 16-bit use 16.

● error-file - Le permite especificar la ruta y el nombre de archivo donde

Red Hat Certified Engineer 106

Page 107: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

se almacenarán los informes de error de xfs.

● no-listen - Dice a xfs que no escuche utilizando un protocolo en particular. Por defecto, esta opción está configurada con tcp para evitar que xfs escuche utilizando puertos TCP, por motivos de seguridad. Si planea utilizarxfs para servir fuentes a estaciones de trabajo en red, deberá borrar esta línea.

● port - Especifica el puerto TCP en el cual xfs escuchará si no-listen no existe o está entre comentarios.

● use-syslog - Especifica si utilizar el registro de errores del sistema.

Añadir fuentes a xfs

Para añadir fuentes al subsistema base de fuentes de X (xfs), siga los pasos siguientes:

Si aún no existe, cree un directorio llamado /usr/share/fonts/local/ usando el comando siguiente como usuario root:

# mkdir /usr/share/fonts/local/

Si es necesario la creación del directorio /usr/share/fonts/local/, se debe añadir a la ruta xfs usando el comando siguiente como root:

# chkfontpath --add /usr/share/fonts/local/

Copie el nuevo archivo de fuente en el directorio /usr/share/fonts/local/

Actualice la información de la fuente emitiendo el siguiente comando como root:

# ttmkfdir -d /usr/share/fonts/local/ -o /usr/share/fonts/local/fonts.scale

Reinicie el servidor de fuentes xfs utilizando el comando siguiente como root:

# service xfs reload

Fuentes Liberation

En Mayo de 2007, CentOS anunció la liberación pública de estas fuentes bajo la marca registrada LIBERATION, para sustituir las privativas que vienen con los sistemas de Microsoft y que este no licencia a terceros, algo que facilitaría la compatibilidad y haría más sencillo a los usuarios cambiar de procesador de textos, por ejemplo.

107 Ing. Iván Ferreira

Page 108: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

Básicamente se trata de igualar las características principales de es espaciado horizontal y ancho para que al usar otro paquete de fuentes, el texto no se modifique ni cambie su posición.

Existen tres conjuntos: Sans (un substituto para Arial, Albany, Helvetica, Numbus Sans L y Bitstream Vera Sans), Serif (un sustituto para Times New Roman, Thornade, Nimbus Roman, y Bitstream Vera Serif) y Mono (un substituto para Courier New, Cumberland, Courier, Nimbus Mono L, y Bitstream Vera Sans Mono).

Están disponibles para su descarga como paquetes .RPM para CentOS Linux y como un archivo comprimido .TAR.GZ para instalarlas mediante los ficheros .TTF.

Niveles de ejecución y X

En la mayoría de los casos, la instalación por defecto de CentOS Linux configura una máquina para arrancar en un entorno de conexión gráfico, conocido como nivel de ejecución 5. Es posible, sin embargo, arrancar en el modo multiusuario de sólo texto llamado nivel de ejecución 3 y comenzar una sesión X desde allí.

Nivel de ejecución 3

Cuando estamos en el nivel de ejecución 3, la forma habitual de iniciar una sesión X es escribiendo el comando startx. El comando startx es un front-end del programa xinit el cual lanza el servidor X y conecta los clientes X al mismo. Ya que usted debe de haber entrado en el sistema con su usuario cuando realice este procedimiento a partir del nivel de ejecución 3, startx no lanzará un gestor de visualización o autenticará al usuario.

Cuando startx comienza, busca un archivo .xinitrc en el directorio principal del usuario para definir el entorno de escritorio y posiblemente otras aplicaciones clientes X a ejecutar. Si este archivo .xinitrc no se encuentra, se utilizará el archivo por defecto /etc/X11/xinit/xinitrc.

El script por defecto xinitrc luego buscará por los archivos definidos por el usuario y archivos de sistema por defecto, incluyendo .Xresources, .Xmodmap y .Xkbmap en el directorio principal del usuario y Xresources, Xmodmap y Xkbmap en el directorio /etc/X11/. Los archivos Xmodmap y Xkbmap, si existen, son usados por la utilidad xmodmap para configurar el teclado. Los archivos Xresources son leídos para asignar valores de preferencia específicos a aplicaciones.

Después de configurar estas opciones, el script xinitrc ejecuta todos los scripts localizados en el directorio /etc/X11/xinit/xinitrc.d/. Un script muy importante en este directorio es xinput, el cual configura los parámetros tales

Red Hat Certified Engineer 108

Page 109: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

como el idioma por defecto.

Luego, el script xinitrc intenta ejecutar .Xclients en el directorio principal del usuario y cambia a /etc/X11/xinit/Xclients si no lo puede encontrar. El propósito del archivo Xclients es arrancar el entorno de escritorio o posiblemente, sólo un gestor de ventanas básico. El script .Xclients en el directorio principal del usuario inicia el entorno de escritorio especificado por el usuario en el archivo .Xclients-default. Si .Xclients no existe en el directorio principal del usuario, el script estándar /etc/X11/init/Xclients intenta iniciar otro entorno de escritorio, intentando primero con GNOME y luego con KDE seguido por twm.

El usuario es devuelto a una sesión de modo texto después de desconectarse de X del nivel de ejecución 3.

Nivel de ejecución 5

Cuando el sistema arranca en el nivel de ejecución 5, se lanza una aplicación cliente de X especial, llamada un gestor de visualización. Un usuario debe autenticarse usando el gestor de visualización antes de que se inicien cualquier entorno de escritorio o gestores de ventanas.

Dependiendo de los entornos de escritorio instalados en su máquina, estan disponibles tres gestores de visualización diferentes para manejar la autenticación de los usuarios.

● gdm - Es el gestor de visualización por defecto para CentOS Linux y permite que los usuarios puedan configurar los parámetros de idioma, cierre del sistema, reinicio o conexión al sistema.

● kdm - es el gestor de visualización de KDE que permite a los usuarios apagar, reiniciar o conectarse al sistema.

● xdm - Este es un gestor de visualización muy básico que sólo permite que el usuario se conecte al sistema.

Cuando arranque en el nivel de ejecución 5, el script prefdm determina el gestor de visualización preferido haciendo referencia al archivo /etc/sysconfig/desktop. Refiérase al archivo /usr/share/doc/initscripts-<version-number>/sysconfig.txt (donde <version-number> es el número de la versión del paquete initscripts) para ver un listado de las opciones disponibles para este archivo.

Cada uno de los gestores de visualización hace referencia al archivo /etc/X11/xdm/Xsetup_0 para configurar la pantalla de conexión. Una vez que el usuario se conecte al sistema, el script /etc/X11/xdm/GiveConsole corre

109 Ing. Iván Ferreira

Page 110: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

para asignar la propiedad de la consola para el usuario. Luego, el script /etc/X11/xdm/Xsession se ejecuta para llevar a cabo muchas de las tareas que son normalmente realizadas por el script xinitrc cuando arranca X desde el nivel de ejecución 3, incluyendo la configuración del sistema y los recursos del usuario, así como también ejecutar los scripts en el directorio /etc/X11/xinit/xinitrc.d/.

El usuario puede especificar cuál entorno de escritorio desea utilizar cuando se autentican usando los gestores de visualización gdm o kdm seleccionándolo desde el menú Session (accesado al seleccionar Botón de menú principal [en el Panel] => Preferencias => Más Preferencias => Sesiones). Si el entorno de escritorio no es especificado en el gestor de visualización, el script /etc/X11/xdm/Xsession verificará los archivos .xsession y .Xclients en el directorio principal del usuario para decidir cuál entorno de escritorio cargar. Como último recurso el archivo /etc/X11/xinit/Xclients es usado para seleccionar un entorno de escritorio o gestor de ventanas para usarse de la misma forma que en el nivel de ejecución 3.

Cuando el usuario termina una sesión X en la visualización por defecto (:0) y se desconecta, el script /etc/X11/xdm/TakeConsole se ejecuta y vuelve a asignar la propiedad de la consola al usuario root. El gestor de visualización original, que continúa ejecutándose después que el usuario se conecta, toma el control liberando un nuevo gestor de visualización. Esto reinicia el servidor XFree86, despliega una nueva ventana de conexión y reinicia el proceso completo otra vez.

El usuario es devuelto al gestor de visualización después de desconectarse de X desde el nivel de ejecución 5.

Para más información sobre cómo los gestores de visualización controlan la autenticación de los usuarios, consulte /usr/share/doc/gdm-<version-number>/README (donde <version-number> es el número de la versión para el paquete gdm instalado) y la página man de xdm.

Ejecutando aplicaciones remotas con X11

Cada aplicación gráfica en X Window lee al iniciarse la variable de entorno DISPLAY para averiguar a qué pantalla debe enviar sus gráficos. Esto junto con la capacidad de red del Sistema X Window hace posible ejecutar aplicaciones gráficas remotamente. Es decir, se utiliza la capacidad de CPU de una máquina mientras se utiliza la aplicación desde otra máquina distinta. Todo el GUI (graphical user interface, interfaz gráfica de usuario) aparece en la máquina desde la que se opera. No se nota que se utilizan dos ordenadores.

Todas las aplicaciones X Window, realmente son clientes de red que se conectan a un servidor, el servidor X. La función de este servidor X es comunicarse con el hardware gráfico, dibujar las imágenes en la pantalla, leer las entradas del ratón y del teclado. Los clientes (sus programas como gimp, mozilla ...) envían al servidor

Red Hat Certified Engineer 110

Page 111: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

instrucciones sobre cómo pintar cuadros y botones. A cambio reciben del servidor los eventos de ratón y teclado. Obviamente se necesita algún tipo de autentificación, de otra forma cualquiera podría estropear la pantalla de cualquier otro.

Existen dos programas para controlar el acceso:

● xhost - usando este programa puede dar permiso a cualquier usuario en una máquina dada a escribir gráficos en su pantalla. Ejemplo: usted está sentado frente a una máquina llamada mercurio. Para permitir el acceso a cualquier programa en el host venus a su pantalla debería escribir el comando:

# xhost +venus

● xauth - es una autentificación basada en cookies y mucho más sofisticada. Con xauth se puede dar acceso a los usuarios de forma individual. Es mucho más seguro que xhost. La autentificación usa una cookie alojada en el fichero .Xauthority en el directorio personal de los usuarios. Si la máquina remota tiene una cookie válida en este fichero entonces se garantizará el acceso. Para copiar la cookie desde la máquina frente a la que está sentado (mercurio) al host desde donde quiere lanzar el programa (venus) puede usar uno de los siguientes métodos:

# xauth extract - mercurio:0.0 | ssh venus /usr/X11R6/bin/xauth merge

o

# scp ~/.Xauthority venus:

Al lanzar un programa (cliente) ocurre lo siguiente:

1. El cliente busca en la variable de entorno DISPLAY el servidor, si no intenta conectarse al servidor en este host.

2. El servidor comprueba si el cliente tiene permiso para enviarle "imágenes". Si el cliente está autorizado entonces el servidor dibujará la imagen en la pantalla.

La variable de entorno DISPLAY tiene la siguiente sintaxis:

# export DISPLAY=nombre_host:número_display.número_pantalla

Un ejemplo para podría ser:

# export DISPLAY=mercurio:0.0

111 Ing. Iván Ferreira

Page 112: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

Utilización de X remoto con telnet

Telnet es un protocolo obsoleto e inseguro. Es recomendado que utilice SSH en su lugar. Sin embargo, en caso de contar con un host antiguo que no soporte SSH, puede utilizar este procedimiento.

Suponiendo que se se encuentra actualmente con una sesión X en el equipo llamado mercurio.linux.com.py y desea ejecutar algo remotamente desde el equipo llamado venus.linux.com.py. Observe atentamente el nombre de host en el prompt.

Debe indicar a su servidor X que clientes desde venus.linux.com.py tienen permiso para dibujar imágenes en su pantalla:

[root@mercurio ~]# xhost +venus.linux.com.py

Conéctese al host remoto venus.linux.com.py:

[root@mercurio ~]# telnet venus.linux.com.py

Ahora ha iniciado sesión en venus, cada comando que ejecute será ejecutado en venus. Debe exportar la variable display indicando que la pantalla estará en el host mercurio.linux.com.py:0.0:

[root@venus ~]# export DISPLAY=mercurio.linux.com.py:0.0

Inicie el programa. Por ejemplo:

[root@venus ~]# xterm &

Como resultado, el programa estará ejecutándose en el host venus, pero la interfaz gráfica será mostrada en host mercurio.

Utilización de X remoto con SSH

La utilización de X remoto con SSH es mucho mas simple. Debe conectarse al equipo remoto utilizando la opción -X de ssh:

# ssh -X usuario@host

# xterm &

SSH se encarga de configurar automáticamente las variables y los permisos de seguridad requeridos.

Sesiones gráficas remotas (XDMCP)

Cuando se tienen distintas máquinas en una LAN y se desea aprovechar el poder y recursos de una de estas y ahorrar trabajó, una sesión gráfica remota será de gran

Red Hat Certified Engineer 112

Page 113: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

utilidad.

Sesión gráfica remota con GDM

GDM tiene una característica poco usada, pero muy útil. El método será de mucha utilidad suponiendo que se tiene un servidor central con buena cantidad de memoria y un buen microprocesador y lo más nuevo en software, y en la red de área local (LAN) se tienen una o varias máquinas con muy poco espacio en disco y/o poco poder en el microprocesador, o resulta mucho trabajo instalar todo un sistema optimizado y personalizado.

El objetivo será entonces querrás que los usuarios puedan utilizar el servidor con mayor poder y recursos para que se ejecuten ahí las sesiones gráficas y así tener un mayor control en toda la red.

Configuración de gdm para aceptar conexiones XDMCP

En el servidor, abra una terminal como root y ejecute el comando gdmsetup, vaya a la pestaña de Remota y seleccione de la lista desplegable Estilo: Igual que la entrada local.

Como medida de seguridad, deshabilite el acceso de root tanto local como remotamente en la pestaña seguridad, desmarcando la casilla Permitir la entrada

113 Ing. Iván Ferreira

Page 114: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

remota al administrador del sistema.

En los clientes, debe respaldarse y editarse el archivo /etc/X11/prefdm y debe hacerse que contenga únicamente lo siguiente, considerando que se debe poner la ruta completa de X:

#!/bin/sh/usr/bin/X -query <dirección_ip_del_Servidor>

Ejemplo:

#!/bin/sh/usr/bin/X -query 192.168.1.254

Deben reiniciarse los servidores X de las máquinas clientes.

Las máquinas clientes verán a GDM ejecutándose como si se estuviese en el mismo servidor, y permitirá iniciar GNOME o KDE o cualquier otro entorno gráfico utilizado. Si cuenta con buenos adaptadores de red, ni siquiera se notará si se está en un cliente o en el servidor.

Si lo prefiere, también puede iniciar el servidor de vídeo remoto simplemente ejecutando:

/usr/bin/X -query <dirección_ip_del_Servidor>

Desde el prompt de cualquier terminal.

Escritorio Remoto

En instalaciones empresariales los administradores de sistema típicamente tienen que lidiar con un gran número de problemas básicos en estaciones de trabajo de usuarios. Tomar el control remoto de una sesión de usuario para arreglar el problema al mismo tiempo que se entrena al usuario en cómo resolverlo por si mismos es una forma simple y eficiente de manejar este tipo de escenarios de soporte.

Vino es un servidor VNC para GNOME. Permite que usuarios remotos se conecten a una sesión ejecutando GNOME a través de VNC.

Configuración de las preferencias de vino

En una terminal, ejecute el comando vino-preferences.

# vino-preferences

Red Hat Certified Engineer 114

Page 115: LE201 Linux Enterprise Admin is Trac Ion de Servidores I

El sistema X Window

Marque la casilla de verificación Permitir a otros usuarios ver mi escritorio, si desea que los demás usuarios controlen la sesión, marque la casilla Permitir a otros usuarios controlar tu escritorio. En las opciones de seguridad, si lo desea, marque la casilla de verificación Pedir confirmación si desea que sea notificado antes de que su sesión sea controlada remotamente Requerir que el usuario introduzca una contraseña si desea que el usuario remoto introduzca una antes de conectarse a su escritorio.

Desde el equipo remoto, para conectarse a la sesión del usuario, debe ejecutar el comando:

# vncviewer mercurio.linux.com.py:0

Cambiando la resolución de la pantalla desde la línea de comandos

Si desea cambiar la resolución de la pantalla desde la línea de comandos, puede utilizar el comando xrandr.

Si ejecuta el comando xrandr sin argumentos, se mostrarán las opciones de resolución posibles. La resolución actual está indicada con un *.

Para cambiar la resolución, ejecute el comando xrandr con la opción -s <resolución>, por ejemplo:

# xrandr -s 800x600# xrandr -s 1024x768# xrandr -s 1280x1024

115 Ing. Iván Ferreira