SlideShare una empresa de Scribd logo
Software libre



                   Roger Baig Viñas
                 Francesc Aulí Llinàs

                        71Z799002MO




       Sistema operativo
       GNU/Linux básico


       U
Formación de Posgrado
David Megías Jiménez                                      Jordi Mas

   Coordinador                                               Coordinador

   Ingeniero en Informática por la UAB.                      Coordinador general de Softcatalà y
   Magíster en Técnicas Avanzadas de                         desarrollador del procesador de textos
   Automatización de Procesos por la                         libre Abiword.
   UAB.                                                      Miembro fundador de Softcatalà
   Doctor en Informática por la UAB.                         y de la red telemática RedBBS.

   Profesor de los Estudios de Informática                   En calidad de consultor, ha trabajado
   y Multimedia de la UOC.                                   en empresas como Menta, Telépolis,
                                                             Vodafone, Lotus, eresMas, Amena
                                                             y Terra España.



   Roger Baig i Viñas                                        Francesc Aulí Llinàs

   Autor                                                     Autor

   Ingeniero Técnico Superior Industrial                     Ing. Informática (UAB) - Premio
   (UPC) e Ingeniero en Electrónica y                        extraordinario. Concesión beca FPI
   Automática Industrial (UPC). Profesor                     (Generalitat de Catalunya)
   asociado Departamento de
   Telecomunicaciones e ingeniería
   de sistemas (UAB)




Primera edición: noviembre 2003
© Fundació per a la Universitat Oberta de Catalunya
Av. Tibidabo, 39-43, 08035 Barcelona
Material realizado por Eureca Media, SL
© Autores: Roger Baig i Viñas y Francesc Aulí Llinàs
Depósito legal: B-38.683-2003
ISBN: 84-9788-028-3


Se garantiza permiso para copiar, distribuir y modificar este documento según los términos de la GNU Free Documentation License,
Version 1.2 o cualquiera posterior publicada por la Free Software Foundation , sin secciones invariantes ni textos de cubierta
delantera o trasera. Se dispone de una copia de la licencia en el apéndice A, junto con una tradición no oficial en el Apéndice B.
Puede encontrarse una versión de la última versión de este documento en http://curso-sobre.berlios.de/introsobre.
Sistema operativo GNU/Linux básico                         © FUOC • 71Z799002MO
                                                                                            ©




Índice




Introducción ...................................................................   9



1. Presentación ..............................................................     11
   1.1. ¿Qué es el GNU? .................................................          11
   1.2. ¿Qué es el GNU/Linux? ........................................             14
   1.3. Distribuciones .......................................................     16
   1.4. Programas y documentación .................................                18



2. Conceptos y comandos básicos ................................                   23
   2.1. Introducción .........................................................     23
   2.2. Usuarios y grupos .................................................        24
   2.3. El sistema de ficheros ............................................        30
        2.3.1. La jerarquía del sistema de ficheros ..............                 30
        2.3.2. Directorios del sistema .................................           32
        2.3.3. Moviéndonos ..............................................          33
        2.3.4. Enlaces .......................................................     34
        2.3.5. Permisos .....................................................      35
        2.3.6. Manipulación, patrones y búsquedas ............                     38
        2.3.7. Tipos y contenido de ficheros .......................               40
   2.4. Los procesos .........................................................     41
   2.5. Otros comandos útiles ..........................................           45
        2.5.1. La ayuda del sistema ...................................            45
        2.5.2. Empaquetado y compresión .........................                  46
        2.5.3. Operaciones de disco ..................................             48
   2.6. Operaciones con comandos ..................................                50
        2.6.1. Redireccionamientos ....................................            50
        2.6.2. Comandos específicos del bash ...................                   52
                                                                                                            ANOTACIONES



        2.6.3. Shell scripts con bash ..................................           54



3. Taller de Knoppix ......................................................        57
   3.1. Introducción .........................................................     57
   3.2. Arranque del sistema ............................................          58
   3.3. Paro del sistema ...................................................       60
   3.4. Configuración del teclado .....................................            60
   3.5. Inspección del sistema ...........................................         62


                                                                                        3
© FUOC • 71Z799002MO
  ©                          Software libre



                                    3.6. Manejo de directorios y ficheros .............................           66
                                    3.7. Administración de usuarios ....................................          72
                                    3.8. Gestión de procesos ..............................................       76
                                    3.9. Activación y uso del ratón ......................................        78
                                    3.10. Otras operaciones ..............................................        80
                                    3.11. Conclusión .........................................................    82



                                4. Instalación de GNU/Linux .........................................             83
                                   4.1. Introducción ..........................................................   83
                                   4.2. Arrancando ...........................................................    83
                                   4.3. Fraccionando el disco ............................................        84
                                   4.4. Instalación de módulos ..........................................         87
                                   4.5. Configuración básica de la red ..............................             88
                                   4.6. Sistema de arranque .............................................         89
                                   4.7. Elección de paquetes .............................................        90
                                   4.8. Otros aspectos ......................................................     90



                                5. Taller de instalación de Debian Woody ....................                     93
                                   5.1. Introducción ..........................................................   93
                                        5.1.1. Sistemas de instalación ................................           94
                                        5.1.2. Tipos de paquetes ........................................         96
                                        5.1.3. Estado de desarrollo de los paquetes ............                  96
                                   5.2. Instalación de Debian Woody ................................              97
                                        5.2.1. Flavours de Debian Woody ...........................               98
                                        5.2.2. CD-ROM de Debian Woody
                                               y sus distintos flavours ..................................        98
                                        5.2.3. Installing Debian GNU/Linux 3.0
                                               For Intel x86 ................................................      99
                                   5.3. Instalación de Debian Woody mediante CD-ROM ...                            99
                                        5.3.1. Antes de empezar la instalación ...................                100
                                        5.3.2. Arranque del sistema de instalación ..............                 101
                                        5.3.3. Configuración del idioma de instalación .......                    103
                                        5.3.4. Menú principal de instalación .......................              103
                                        5.3.5. Configuración del teclado ............................             104
ANOTACIONES




                                        5.3.6. Partición del disco duro ................................          104
                                        5.3.7. Inicialización y activación
                                               de la partición swap ....................................          107
                                        5.3.8. Inicialización y activación
                                               de una partición Linux ..................................          107
                                        5.3.9. Inicialización y activación
                                               de otras particiones Linux .............................           108
                                        5.3.10. Instalación del kernel .................................          108
                                        5.3.11. Configuración de módulos .........................                109
                                        5.3.12. Configuración del hostname .......................                109

                         4
Sistema operativo GNU/Linux básico                           © FUOC • 71Z799002MO
                                                                                              ©




        5.3.13.Instalación del sistema base .......................                 109
        5.3.14.Creación de un disco de arranque ..............                      110
        5.3.15.Instalación de Lilo ......................................           110
        5.3.16.Reinicialización del sistema ........................                111
        5.3.17.Arranque del sistema base .........................                  111
        5.3.18.Configuración horaria ...............................                111
        5.3.19.Configuración geográfica ..........................                  112
        5.3.20.Establecimiento de la política
                 de passwords ............................................          112
        5.3.21.Últimas configuraciones .............................                113
        5.3.22.Configuración de apt .................................               114
        5.3.23.tasksel y dselect .........................................          114
   5.4. Instalación de Debian Woody por red ....................                    116
        5.4.1. Particularidades de una instalación
               por red .......................................................      116
        5.4.2. Aspectos comunes de los distintos
               métodos de instalación ................................              116
        5.4.3. Instalación del módulo de red ......................                 117
        5.4.4. Configuración de la red ...............................              119
        5.4.5. Configuración de apt ..................................              119
   5.5. Conclusión ...........................................................      120



6. Configuraciones básicas ...........................................              121
   6.1. El sistema de login ................................................        121
   6.2. Explorando el bash ...............................................          122
   6.3. El sistema de arranque ..........................................           124
        6.3.1. Lilo .............................................................   126
        6.3.2. Grub ..........................................................      130
   6.4. Acceso a otras particiones y dispositivos .................                 132
   6.5. Configuración de dispositivos ................................              136
        6.5.1. El teclado ....................................................      136
        6.5.2. Tarjeta de red (tipo Ethernet) ........................              138
        6.5.3. Tarjeta WiFi ................................................        140
        6.5.4. Módems .....................................................         141
        6.5.5. Tarjeta de sonido ........................................           143
                                                                                                              ANOTACIONES


        6.5.6. Impresora ...................................................        143



7. Daemons y runlevels .................................................            145
   7.1. Los daemons ........................................................        145
   7.2. Los runlevels .........................................................     148
   7.3. El arranque del sistema .........................................           152
   7.4. Daemons básicos ..................................................          152
        7.4.1. Logs de sistema (sysklogd) ...........................               153



                                                                                          5
© FUOC • 71Z799002MO
  ©                          Software libre



                                          7.4.2. Ejecuciones periódicas (cron) ........................ 155
                                          7.4.3. Ejecuciones retardadas (at y batch) ............... 157



                                8. Instalación de aplicaciones .......................................              159
                                   8.1. Introducción ..........................................................     159
                                   8.2. El sistema de paquetes Debian ...............................               160
                                   8.3. Compilación de nuevos programas ........................                    164



                                9. Taller de configuraciones básicas .............................                  169
                                   9.1. Introducción ..........................................................     169
                                   9.2. El gestor de arranque ............................................          169
                                        9.2.1. Instalación de Lilo ........................................         170
                                        9.2.2. Instalación de Grub .....................................            171
                                   9.3. El sistema de paquetes ..........................................           174
                                        9.3.1. /etc/apt/sources.list ........................                       175
                                        9.3.2. apt ..............................................................   177
                                        9.3.3. dpkg ..........................................................      182
                                        9.3.4. dselect ....................................................         183
                                        9.3.5. aptitude ..................................................          183
                                   9.4. locales: configuración regional ..............................              183
                                   9.5. Configuración de man y su pager ..........................                  184
                                   9.6. El archivo principal de arranque, /etc/inittab ..                           185
                                   9.7. Montaje de dispositivos, /etc/fstab ...................                     186
                                   9.8. Configuración de dispositivos ................................              188
                                        9.8.1. Configuración del ratón ...............................              189
                                        9.8.2. Configuración de módems ...........................                  191
                                        9.8.3. Configuración de módems DSL ....................                     194
                                        9.8.4. Configuración de tarjetas de red ..................                  194
                                        9.8.5. Configuración de impresoras .......................                  197
                                        9.8.6. Configuración de tarjetas de sonido .............                    199
                                   9.9. Conclusión ............................................................     199



                                10. Arquitectura X-Window ..........................................                201
                                    10.1. ¿Qué es X-Window? .........................................               201
ANOTACIONES




                                    10.2. Configuración ..................................................          206
                                    10.3. X display manager ............................................            210



                                11. Taller de X-windows ...............................................             215
                                    11.1. Introducción .....................................................        215
                                    11.2. Instalación del sistema básico ...........................                216
                                      11.2.1.Distintas estrategias para la instalación
                                              de los paquetes ............................................          216


                         6
Sistema operativo GNU/Linux básico                          © FUOC • 71Z799002MO
                                                                                            ©




            11.2.2. Instalación de paquetes básicos ............                  217
            11.2.3. Inicialización del servidor .....................             220
            11.2.4. El fichero de log ...................................         222
            11.2.5. El servidor de fuentes ...........................            222
      11.3. Window managers ...........................................           223
      11.4. X Session manager ...........................................         225
      11.5. X Display manager ...........................................         226
      11.6. Desktop managers ...........................................          227
            11.6.1. GNOME ..............................................          228
            11.6.2. KDE .....................................................     230
      11.7. Personalización de aspectos locales ..................                231
            11.7.1. Personalización de algunos aspectos .....                     231
            11.7.2. Personalización de aspectos de red .......                    233
      11.8. Configuración de impresoras ...........................               235
      11.9. OpenOffice .....................................................      235
      11.10. Conclusión ....................................................      237



A. Tablas de comandos .................................................           239
   A.1. Sistema de ficheros ...............................................       239
   A.2. Ayuda del sistema .................................................       239
   A.3. Permisos de los ficheros ........................................         240
   A.4. Copia y borrado de ficheros ..................................            240
   A.5. Parada o reinicio ..................................................      240
   A.6. Operaciones con ficheros ......................................           241
   A.7. Compresión de ficheros y copias de seguridad .......                      242
   A.8. Operaciones de disco ...........................................          242
   A.9. Usuarios y grupos .................................................       243
   A.10. Gestión de procesos ...........................................          243



B. El editor vi ................................................................. 245
   B.1. Introducción ......................................................... 245
   B.2. Modos del vi ......................................................... 245
                                                                                                            ANOTACIONES


C. Proceso de instalación de Red Hat Linux 9.0 ............                       249
   C.1.Introducción .........................................................     249
   C.2.Inicio de la instalación ...........................................       249
   C.3.RHinicioinst ...........................................................   249
   C.4.Primeros aspectos .................................................        250
   C.5.Tipo de instalación ................................................       250
   C.6.Partición del disco duro .........................................         250
   C.7.Gestor de arranque ..............................................          251
   C.8.Configuración de dispositivos ................................             251
   C.9.Configuración idiomática ......................................            251

                                                                                        7
© FUOC • 71Z799002MO
  ©                          Software libre



                                    C.10. Política de passwords ..........................................         252
                                    C.11. Selección de aplicaciones ....................................           252
                                    C.12. Boot disk ............................................................   252
                                    C.13. Configuración del sistema gráfico ........................               253
                                    C.14. Últimos pasos .....................................................      253



                                D. Herramientas de administración ...............................                  255
                                   D.1.Introducción ..........................................................     255
                                   D.2.Linuxconf ..............................................................    257
                                   D.3.Webmin ................................................................     259
ANOTACIONES




                         8
Sistema operativo GNU/Linux básico                 © FUOC • 71Z799002MO
                                                                             ©




 Introducción




Aunque ya hace más de veinte años que el software libre existe, hasta
los últimos tiempos no se ha perfilado como una alternativa válida
para muchos usuarios, empresas y, cada vez más, instituciones y go-
biernos. Actualmente, GNU/Linux es uno de los sistemas operativos
más fiables y eficientes que podemos encontrar. Aunque su natura-
leza de software libre creó inicialmente ciertas reticencias por parte
de usuarios y empresas, GNU/Linux ha demostrado estar a la altura
de cualquier otro sistema operativo existente.


El objetivo de este curso es iniciarnos en el mundo del GNU/Linux.
En él obtendremos las claves para entender la filosofía del código li-
bre, aprenderemos cómo usarlo y manipularlo a nuestro gusto y dis-
pondremos de las herramientas necesarias para poder movernos
fácilmente en este nuevo mundo. El documento tampoco pretende
ser un manual de referencia imprescindible para administradores y/
o usuarios; para ello ya existen centenares de manuales, HOWTOS
y multitud de otras referencias que nos ocuparían millares de pági-
nas. Aquí pretendemos aprender a dar los primeros pasos en esta
tierra poco explorada aún para demasiados usuarios y administra-
dores, a la vez que enseñaremos cómo plantear y resolver por noso-
tros mismos los problemas que puedan aparecer.


El curso no pretende basarse en ninguna distribución en particular,
pero en la mayoría de ejemplos y actividades es necesario concretar
específicamente algunas acciones y se utilizará Debian GNU/Linux
                                                                                             ANOTACIONES


(versión 3.0 -Woody-). Aunque no es una distribución tan intuitiva y
fácil de utilizar como algunas otras, nos servirá para explicar paso a
paso todas las características de un sistema operativo basado en
GNU/Linux. Además, su extraordinaria calidad, estabilidad y seguri-
dad la hacen una de las opciones actualmente más válidas. Por otra
parte, tampoco debemos olvidar el soporte (Debian está desarrolla-
da por voluntarios y no da ninguna clase de soporte) que se da en
otras distribuciones y que en el caso de muchas empresas es impres-
cindible. Por esta razón, hemos incluido un apéndice donde mostra-

                                                                         9
© FUOC • 71Z799002MO
  ©                           Software libre



                                mos el proceso de instalación y las principales características de
                                RedHat Linux (versión 9.0).


                                Esperamos que el curso sea de su agrado y sirva para abrirle las
                                puertas al mundo del software libre. Cuantos más usuarios seamos,
                                más software y de mejor calidad tendremos.


                                ¡Bienvenidos al GNU/Linux!
ANOTACIONES




                         10
Sistema operativo GNU/Linux básico                         © FUOC • 71Z799002MO
                                                                                      ©




 1. Presentación




 1.1. ¿Qué es el GNU?

Para entender todo el movimiento del software libre, debemos situar-
nos a finales de la década de los sesenta, principios de los setenta.
En aquellos tiempos las grandes compañías de ordenadores no da-
ban el valor que hoy día se da al software. En su gran mayoría eran
fabricantes de ordenadores que obtenían sus principales ingresos
vendiendo sus grandes máquinas, a las que incorporaban algún tipo
de sistema operativo y aplicaciones. Las universidades tenían permi-
so para coger y estudiar el código fuente del sistema operativo para
fines docentes. Los mismos usuarios podían pedir el código fuente de
drivers y programas para adaptarlos a sus necesidades. Se conside-
raba que el software no tenía valor por sí mismo si no estaba acom-
pañado por el hardware que lo soportaba. En este entorno, los
laboratorios Bell (AT&T) diseñaron un sistema operativo llamado
UNIX, caracterizado por la buena gestión de los recursos del siste-
ma, su estabilidad y su compatibilidad con el hardware de diferentes
fabricantes (para homogeneizar todos sus sistemas). Este último he-
cho fue importantísimo (hasta entonces todos los fabricantes tenían
sus propios operativos incompatibles con los otros), ya que devino el
factor que le proporcionó mucha popularidad.


Poco a poco, las grandes empresas empezaron a tomar conciencia                 Nota
del valor del software: primero fue IBM la que en 1965 dejó de dar             El mismo Stallman cuenta
el código fuente de su sistema operativo, a finales de los setenta Di-         como anécdota lo mucho
                                                                               que se enfadó al descubrir
                                                                                                            ANOTACIONES


gital Research empezó a vender el suyo, etc. Este hecho hizo que to-           que la compañía que les
das las compañías se dieran cuenta de que el software podía ser muy            había vendido una nueva
                                                                               impresora para el laborato-
rentable y les podía aportar grandes beneficios. A partir de este he-          rio donde trabajaba no le
cho, la mayoría de empresas empezaron a poner reticencias a dejar              quería facilitar el código
                                                                               fuente de los drivers. ¡Él sólo
el código fuente de sus programas y sistemas operativos y empeza-
                                                                               quería modificarlos para
ron a vender sus programas como un valor añadido a su hardware.                que le avisara automática-
En este entorno cada vez más cerrado, Richard Stallman (que traba-             mente cuando se atascaba
                                                                               el papel! La compañía se
jaba en el MIT, Massachusetts Institute of Technology) se sintió indig-        negó a proporcionárselos.
nado al comprobar que cada vez era más difícil conseguir el código

                                                                          11
© FUOC • 71Z799002MO
  ©                                               Software libre



                                                    fuente de los programas que utilizaba para adaptarlos a sus necesi-
                                                    dades, tal como había hecho hasta entonces.


                                                    A partir de ese momento, Stallman decidió ser consecuente con sus
        Contenido
                                                    ideales e iniciar un gran proyecto para intentar abrir otra vez el código
        complementario
                                                    fuente de los programas. Consciente de que no podría conseguir que
              El nombre que le dio al pro-
              yecto significa GNU, Not              las compañías cedieran en este punto, se propuso crear su propio siste-
              UNIX, añadiéndose a la mo-            ma operativo y aplicaciones iniciando un proyecto llamado GNU.
              da de los nombres/bromas
              recursivas de aquel tiempo.
                                                    De especial interés para entender los motivos que llevaron a Stall-
                                                    man a iniciar GNU es su primer manifiesto, el documento donde ex-
                                                    plicó a toda la comunidad en qué consistiría el proyecto, cómo lo
                                                    orientaría y por qué tenía que hacerlo. En él empezó a describir el
                                                    concepto de software libre y para qué creía necesario que programa-
                                                    dores y desarrolladores de alrededor del mundo contribuyeran con
                                                    él. Aunque en muchas ocasiones se confunde el concepto de soft-
                                                    ware libre con el de software gratuito (en inglés, free tiene los dos sig-
                                                    nificados), en posteriores documentos se ha dejado muy claro que el
                                                    software libre no debe por qué ser gratuito. Debemos entender como
                                                    software libre programas de los cuales podemos conseguir su código
                                                    fuente, estudiarlo, modificarlo y redistribuirlo sin que nos obliguen a
                                                    pagar por ello. Lo que debemos tener claro es que sí que podemos
                                                    pedir el dinero que queramos por los programas y su código fuente,
                                                    el soporte que podemos ofrecer a los usuarios, los libros que venda-
                                                    mos o el material que proporcionemos, tal y como muchas compa-
                                                    ñías que distribuyen GNU/Linux hacen. Sin embargo, en ningún
                                                    momento, podemos obligar a que los usuarios no distribuyan el soft-
                                                    ware que les hemos vendido. Éste debe poder ser distribuido de for-
                                                    ma libre. Es una forma diferente de entender el software a la que
                                                    estamos acostumbrados. En muchos de los textos de la FSF (Free
                                                    Software Foundation) se habla más de filosofía que de ingeniería.
ANOTACIONES




                                                    Debemos entender todo este movimiento más como una forma de
                                                    pensar o hacer las cosas que como una compañía más de software.


                                                    La filosofía que en la FSF se tiene del software lo define con las si-
                                                    guientes cuatro libertades:


                                                    • La libertad 0 se refiere a la libertad de poder usar el programa
                                                       para cualquier propósito.

                                             12
Sistema operativo GNU/Linux básico                           © FUOC • 71Z799002MO
                                                                                        ©




• La libertad 1 es la que permite estudiar cómo funciona el pro-
   grama y adaptarlo a las propias necesidades. El acceso al códi-
   go fuente es una condición necesaria para garantizar esta
   libertad.


• La segunda libertad es la que permite distribuir libremente copias
   del software, ayudando al vecino.


• La última libertad es la que permite mejorar el programa y hacer
   públicas las propias mejoras, en beneficio de toda la comunidad.
   El acceso al código fuente, asimismo, es un requisito imprescindi-
   ble para asegurar esta libertad.


Para dar todas estas libertades al software que se desarrollaba en el
proyecto y a los usuarios finales del mismo se escribió la licencia, con
la cual se ha protegido todo este tipo de programas, la GPL (General
Public License). Esta licencia pone por escrito las ideas anteriormente
comentadas.


El proyecto empezó a producir software a partir de 1984, co-
                                                                                Contenido
menzando con el desarrollo de todas la herramientas necesarias                  complementario
para poder implementar un sistema operativo completo. Aunque
                                                                                 Como su nombre indica, el
realizar un proyecto de estas características es un proceso largo                núcleo (kernel) de un siste-
y complejo, desde el principio muchos programadores y desarro-                   ma operativo es el corazón
                                                                                 con el cual puede funcionar.
lladores de software se vieron cautivados por la idea de Stallman y              Es el núcleo de software que
empezaron a colaborar con él de forma gratuita. La comunidad                     gestiona los recursos del or-
                                                                                 denador: se comunica con
no paró de crecer, y poco a poco empezaron a disponer de las
                                                                                 los dispositivos y aplicacio-
herramientas necesarias (editores, compiladores, etc.) para imple-               nes instalados, administra
                                                                                 la memoria adecuadamen-
mentar el núcleo del sistema operativo, que era la tarea que re-
                                                                                 te, reparte tiempo de proce-
quería las herramientas que se estaban desarrollando. Desde el                   samiento para todos los
                                                                                 programas, se comunica
                                                                                                            ANOTACIONES


primer momento se quiso crear un sistema operativo parecido a
                                                                                 con los dispositivos de al-
UNIX y siguiendo las normas POSIX (Portable Operating System                     macenamiento para guar-
Interface). Si bien UNIX también tenía sus problemas y caren-                    dar los archivos, etc.

cias, era, y sigue siendo, suficientemente bueno como para
adaptarse a la mayoría de las necesidades. La tarea de diseñar
y escribir el núcleo del sistema operativo fue la que se dejó para
el final del proceso. Aún actualmente está por finalizar definiti-
vamente y el núcleo del GNU, llamado Hurd, permanece en fase
de desarrollo.

                                                                           13
© FUOC • 71Z799002MO
  ©                                               Software libre



                                                                                                        Actividades

                                                             1. Leer el primer mensaje escrito por Stallman en 1983
                                                               anunciando su proyecto (traducido al castellano):
                                                               http://www.fsf.org/gnu/initial-announcement.es.html


                                                             2. Leer “El Manifiesto GNU” original de Stallman
                                                               (traducido al castellano): http://www.fsf.org/gnu/
                                                               manifesto.es.html


                                                             3. Leer la “General Public License”: http://www.fsf.org/
                                                               licenses/gpl.html




                                                     1.2. ¿Qué es el GNU/Linux?


                                                    En este contexto, y cuando la FSF todavía no tenía ningún núcleo
                                                    estable para su sistema operativo, un profesor de la Universidad
                                                    de Holanda, Andrew Tanenbaum, decidió escribir un sistema
                                                    operativo para que sus estudiantes pudieran estudiarlo. Igual que
                                                    Stallman, hasta el momento había podido utilizar el código fuente
                                                    del UNIX de AT&T para que sus alumnos aprendieran a diseñar
                                                    sistemas operativos. Su idea era escribir un sistema operativo que
                                                    pudiera ser estudiado y modificado por cualquiera que quisiera.
                                                    En 1987 se puso manos a la obra y llamó a su proyecto mini
        Contenido
                                                    UNIX, dando lugar a MINIX. Al no utilizar ni una sola línea de có-
        complementario
                                                    digo del UNIX de AT&T, no hay ninguna restricción en coger el có-
              La tecnología micro-kernel
              se basa en dividir las dife-          digo, utilizarlo y modificarlo libremente.
              rentes funcionalidades del
              núcleo de un sistema opera-
              tivo en programas total-              Tanenbaum quiso crear un sistema orientado a fines docentes,
              mente separados y que se
                                                    por lo que lo diseñó utilizando una arquitectura micro-kernel,
ANOTACIONES




              comunican entre sí. Esto lo
              hace muy modular, facili-             ideal para una fácil comprensión y aportando una tecnología
              tando muchísimo el test, de-          muy novedosa para la época que le permitía versatilidad, multi-
              tección y corrección de
              errores, mantenimiento, etc.          plataforma, etc. Éste ha sido uno de los puntos fuertes y débiles
              Actualmente, algunos siste-           a la vez del MINIX: aunque el sistema es una pequeña joya para
              mas      operativos   como
                                                    su estudio y diseño, es muy probable que nunca se pueda utilizar
              Amoeba, Chorus, Mach o
              WindowsNTTM han incorpo-              en entornos reales. Se optó por hacerlo entendedor, modular y
              rado este tipo de tecnolo-
                                                    muy pedagógico, pero no rápido. De todas formas, Tanenbaum
              gía.
                                                    tampoco pretendía eso; a lo largo de los años MINIX ha ido evo-

                                             14
Sistema operativo GNU/Linux básico                        © FUOC • 71Z799002MO
                                                                                    ©




lucionando y realmente hoy en día todavía sigue existiendo y
siendo estudiado por muchos alumnos de universidades de todo
el mundo.


Aquí es cuando entra en juego Linux. Mientras la FSF seguía con
su gran proyecto proporcionando herramientas para la construc-
ción de un sistema operativo, Tanenbaum orientaba MINIX para
fines docentes y muchas empresas seguían haciendo evolucionar
sus propias versiones de UNIX. Linus Torvalds, estudiante de la
Universidad de Helsinki, decide crear en agosto de 1991 su pro-
pio núcleo para un nuevo sistema operativo, Linux. Su idea era
crear un UNIX para PC para que todos los que quisieran lo pudie-
ran utilizar en su ordenador. La primera aparición en escena que
hizo fue en un debate sobre MINIX y sistemas operativos, donde
expuso las siguientes ideas:


 Newsgroups: comp.os.minix
 Asunto: What would you like to see most in minix?
 Fecha: 25 Aug. 91 20:57:08 GMT
 Organization: University of Helsinki
 Hello everybody out there using minix.
 I’m doing a (free) operating system (just a ho-
 bby, won’t be big and professional like gnu) for
 386(486) AT clones. This has been brewing since
 april, and is starting to get ready. I’d like any
 feedback on things people like/dislike in minix,
 as my OS resembles it somewhat (same physical la-
 yout of the file-system (due to practical rea-                             Contenido
                                                                            complementario
 sons) among other things).
 I’ve currently ported bash(1.08) and gcc(1.40),                             Linux, el núcleo de GNU/Li-
                                                                             nux, es de tipo monolítico.
 and things seem to work.                                                    Esto indica que no se sepa-
 This implies that I’ll get something practical                              ran sus diferentes funcionali-
                                                                                                         ANOTACIONES



                                                                             dades en distintos módulos,
 within a few months, and I’d like to know what
                                                                             sino que todo forma parte
 features most people would want. Any suggestions                            de un mismo programa. El
 are welcome, but I won’t promise I’ll implement                             principal inconveniente de
                                                                             este tipo de diseño es que
 them :-)
                                                                             la localización de errores y
                                                                             su mantenimiento son muy
                                                                             costosos. En contrapartida,
Si accediéramos al fórum de debate donde apareció este primer                el rendimiento que se con-
mensaje, veríamos cómo rápidamente gente de todo el mundo em-                sigue es mucho mayor que
                                                                             en otros tipos de diseño.
pezó a interesarse por este nuevo sistema, que al utilizar el compi-

                                                                       15
© FUOC • 71Z799002MO
  ©                                           Software libre



                                                lador e intérprete de comandos de GNU (gcc y bash) como piezas
                                                fundamentales, también tenía las características de software libre.
                                                Aunque en palabras del mismo Torvalds, si él hubiera sabido la
                                                cantidad de trabajo necesario para lograr que su idea funcionase,
                                                nunca lo hubiera hecho: esfuerzos de muchos expertos en informá-
                                                tica de todo el mundo hicieron posible este proyecto.


                                                De hecho, en los primeros años de su existencia, GNU/Linux se iden-
                                                tificaba como el sistema operativo de los hackers. Su difícil instala-
                                                ción, manipulación y falta de drivers lo hacían una herramienta apta
                                                únicamente para gente muy entendida en el tema. Fueron estos pri-
                                                meros usuarios los que diseñaron los drivers para los discos, impre-
                                                soras, tarjetas, etc. y los que empezaron a dar a conocer al mundo
                                                este sistema. Poco a poco, el número de usuarios empezó a crecer y
                                                actualmente ya existen muchas empresas y grupos de usuarios que
                                                crean sus propias distribuciones de GNU/Linux.




                                                 1.3. Distribuciones


                                                Actualmente, existen muchas distribuciones diferentes basadas en
                                                GNU/Linux. Las hay para toda clase de ordenadores y dispositivos
                                                electrónicos: ordenadores portátiles o de sobremesa, pocketPC o
                                                PDA, puntos de acceso de redes wireless, etc. La naturaleza del soft-
                                                ware libre permite esto: cualquiera puede coger el código desarro-
                                                llado hasta el momento y adaptarlo a sus propias necesidades. Es un
                                                hecho que, cada vez más, empresas y usuarios eligen sistemas ba-
                                                sados en GNU/Linux por sus elevadas prestaciones y la cantidad de
                                                software disponible.
      Contenido
      complementario
                                                De todos modos, aunque existen decenas de distribuciones, hay al-
ANOTACIONES




          Aunque muchas distribucio-
          nes de GNU/Linux se deno-             gunas más populares que se han extendido mucho. La filosofía de
          minan solamente Linux, es             software libre hace que muchas empresas que han creado sus pro-
          importante que diferencie-
                                                pias distribuciones de GNU/Linux no restrinjan el acceso a su código.
          mos que realmente Linux es
          el núcleo del sistema opera-          Aun así, el soporte que ofrecen y el material que venden les aporta
          tivo y que el proyecto GNU            beneficios, permitiendo su subsistencia. Asimismo cabe considerar
          es el que realmente ha
          aportado mucha de la es-              que en muchas de estas distribuciones se incluye software propietario
          tructura para el funciona-            que algunos usuarios prefieren, si bien en muchos casos existen pro-
          miento del mismo.
                                                gramas homólogos con licencia Free Software.

                                         16
Sistema operativo GNU/Linux básico                 © FUOC • 71Z799002MO
                                                                            ©




A continuación haremos una breve descripción de algunas de las dis-
tribuciones de GNU/Linux:


• Slackware: una de las primeras distribuciones que aparecieron.
  Fue creada por Patrick Volkerding y tuvo un gran éxito en sus pri-
  meros años de existencia.




• Debian GNU/Linux: una de las primeras distribuciones de GNU/
  Linux que aparecieron y aún siguen existiendo y evolucionado. El
  sistema de paquetes nos permite diferenciar claramente el soft-
  ware libre del que no lo es, permitiéndonos disponer de todo el
  sistema solamente con programas de licencia Free Software. Está
  desarrollada por un grupo de colaboradores distribuidos por todo
  el mundo y no cuenta con el respaldo de ninguna empresa. Aun-
  que es de las más estables y seguras que existen, su sistema de
  instalación y configuración necesita de conocimientos previos.




• RedHat Linux: junto con SuSE, es una de las distribuciones de ma-
  yor popularidad. Está creada por una empresa de EUA, aportan-
  do software de gran calidad. Tiene un entorno muy intuitivo que
  facilita mucho su instalación y configuración.
                                                                                            ANOTACIONES




• SuSE Linux: aunque es una distribución creada bastante reciente-
  mente, ha tenido una gran difusión. Está desarrollada por una

                                                                       17
© FUOC • 71Z799002MO
  ©                           Software libre



                                   empresa alemana, aportando mucho software propietario de ca-
                                   lidad. Es muy completa y fácil de instalar y mantener, aunque en
                                   algunos aspectos no se siguen algunos de los estándares de la co-
                                   munidad.




                                • Knoppix: distribución en un CD-live basada en Debian. Detecta
                                   automáticamente todo tipo de hardware y aporta el último escri-
                                   torio de KDE y la suite OpenOffice.org. Muy útil para demostra-
                                   ciones y usuarios noveles en el sistema.




                                Tampoco podemos olvidar que existen otros sistemas operativos com-
                                patibles con UNIX y los estándares que se siguen actualmente. Muchos
                                de los conceptos y herramientas que veremos a lo largo del curso tam-
                                bién servirán para estos otros. En especial debemos destacar GNU/
                                Hurd (núcleo desarrollado por el proyecto GNU) y FreeBSD.


                                                                                        Actividad

                                         4. Leer la descripción de algunas de las distribucio-
                                           nes actuales basadas en GNU/Linux:
                                           http://www.linuxhq.com/dist.html
ANOTACIONES




                                 1.4. Programas y documentación


                                Internet ha sido siempre el principal medio de comunicación entre los
                                desarrolladores y usuarios del software libre. Es por esta razón por lo
                                que ya desde el principio de la gran expansión de GNU/Linux se ha
                                podido encontrar en la Red muchísima información sobre el operativo.
                                La mayoría de los programas los podemos descargar de Internet, em-

                         18
Sistema operativo GNU/Linux básico                  © FUOC • 71Z799002MO
                                                                               ©




paquetados con alguno de los sistemas más comunes o bien directa-
mente a partir de su código fuente para que lo podamos compilar en
nuestro sistema. Además, la mayoría de las distribuciones también se
pueden descargar de la Red sin necesidad de comprar ningún pack
especial de las revistas especializadas o de las mismas empresas que
lo producen. También es cierto que si queremos el soporte que ofrecen
algunas de las distribuciones, lo mejor es comprar todo el material que
se proporciona (CD, manuales, etc.) y registrarse.


A medida que nos vayamos introduciendo en el mundo del software
libre y del GNU/Linux, veremos cómo uno de los aspectos clave para
moverse por él es saber encontrar la documentación que nos interesa.
Cuando nos encontramos ante un problema, antes de empezar a dar
vueltas sobre cómo resolverlo, debemos pensar que es muy probable
que otra gente como nosotros se haya encontrado con lo mismo o con
algo similar. Buscar y encontrar la documentación que se adapte me-
jor a los problemas que se nos vayan planteando nos ahorrará mucho
tiempo y esfuerzo. La comunidad del software libre genera centenares
de documentos que podemos descargarnos libremente de Internet,
además de los foros de discusión, páginas de rumores y noticias, etc.


Algunas de las referencias más populares y que más nos pueden
ayudar son:


• Documentación


http://www.tldp.org: The Linux Documentation Project. La mayoría
de guías, HOWTOS, FAQS, etc. existentes las podemos encontrar en
este sitio, que además está en varios idiomas.


http://lucas.linux.org.mx: LinUx en CAStellano. Gran proyecto de docu-
mentación en castellano para los HOWTOS, guías, etc. de GNU/Linux.
                                                                                               ANOTACIONES




http://www.linuxpowered.com/HOWTO/HOWTO-INDEX: El HOWTO
de los HOWTOS.


http://www.linux.com: Página con diferentes secciones de noticias,
documentación, etc.


http://www.debian.org/doc: Documentación para Debian GNU/Linux.

                                                                          19
© FUOC • 71Z799002MO
  ©                           Software libre



                                • Noticias


                                http://slashdot.com: Noticias y rumores del mundo GNU/Linux. En
                                inglés.


                                http://barrapunto.com: La réplica de slashdot en castellano.


                                http://puntbarra.com: La réplica de slashdot en catalán.


                                http://bulmalug.net: Bisoños usuarios de Linux de Mallorca y alrede-
                                dores. Noticias


                                y secciones dedicadas a temas concretos.


                                http://www.es.gnu.org/gnuticias: Noticias de GNU en español.


                                http://linuxtoday.com: Otra página de noticias muy práctica para es-
                                tar a la última.


                                http://libertonia.escomposlinux.org: Página de noticias. De especial
                                interés es su sección de “Fuentes de Noticias”, donde hay multitud de
                                otros enlaces a otras páginas del mismo estilo.


                                • Foros


                                http://www.foroslinux.org: Varios foros de GNU/Linux dedicados a
                                todo tipo de temas.


                                http://www.linuxsecurity.com/resources/forums-1.html: Foros cen-
                                trados en temas de seguridad y similares.
ANOTACIONES




                                • Búsqueda


                                http://www.google.com/linux: El mayor buscador del mundo tam-
                                bién para GNU/Linux.


                                http://www.buscadoc.org: Buscador de documentación informática
                                en castellano.

                         20
Sistema operativo GNU/Linux básico                 © FUOC • 71Z799002MO
                                                                             ©




• Distribuciones


http://www.fsf.org: La página oficial de la Free Software Foundation.


http://www.debian.org: Página oficial de debian GNU/Linux.


http://www.redhat.com: Página oficial de RedHat Linux.


http://www.suse.com: Página oficial de SuSE.


http://www.slackware.com: Página oficial de Slackware Linux.


http://www.knoppix.com: Página oficial de Knoppix.


• Descargas


http://sourceforge.net: La mayor página con proyectos de software
libre.


http://www.softonic.com/index.phtml?n id=4: Sección de descarga
para GNU/Linux de una de las múltiples páginas de downloading.


http://download.com: Página de descargas.


• Otras


http://www.linuxsecurity.com: Página muy actual centrada en todo
tipo de temas de seguridad en GNU/Linux.


http://www.linuxhq.com: Información general sobre distribuciones
de GNU/Linux, seguridad, etc.
                                                                                             ANOTACIONES



http://www.linuxjournal.org: Página de noticias y artículos sobre
GNU/Linux.


http://www.linuxgazette.com: Revista de GNU/Linux.


http://www.linux-mag.com: Revista de GNU/Linux.


http://www.xfree86.org: Página oficial del proyecto XFree86.

                                                                        21
Manual gnu linux_basico
Sistema operativo GNU/Linux básico                        © FUOC • 71Z799002MO
                                                                                    ©




 2. Conceptos y comandos básicos




 2.1. Introducción

En este capítulo aprenderemos las ideas e instrucciones básicas para
                                                                             Contenido
movernos adecuadamente por el sistema. Si no estamos acostum-                complementario
brados a utilizar la línea de comandos para manipular el sistema
                                                                              Un comando es un progra-
operativo, al principio puede parecernos un poco complicado, pero             ma que realiza una deter-
a medida que las vayamos utilizando veremos que son muy útiles y              minada acción relacionada
                                                                              con el sistema operativo.
nos permiten realizar cualquier tarea que queramos hacer. Además,
el hecho de saber utilizar correctamente los comandos nos será muy
útil cuando necesitemos conectarnos de forma remota a una máqui-
na y podremos diseñar, asimismo, pequeños programas (shell
scripts) para automatizar las tareas de administración más comunes.


La mayoría de los comandos que veremos en este capítulo forman
parte del estándar (normas IEEE POSIX) y son comunes a todos los
sistemas GNU/Linux y a UNIX. Aunque cada distribución tiene sus
propias aplicaciones de administración y gestión, muchas de las ac-
ciones que se realizan a partir de ellas también se pueden hacer con
los comandos que veremos. A partir de los mismos, podremos ma-
nipular casi todos los aspectos del sistema y movernos eficientemente
por él. Aprendiendo a utilizar correctamente estos comandos, apren-
deremos a navegar por cualquier sistema basado en GNU/Linux, sin
importar qué distribución estemos usando.

                                                                             Contenido
Cada uno de los comandos del sistema suele tener multitud de pa-             complementario
                                                                                                       ANOTACIONES


rámetros diferentes. Con la utilización de los parámetros podemos,            Un parámetro no es más
con un mismo comando, hacer muchas acciones diferentes, aunque                que una opción determina-
                                                                              da de un comando, que
todas sean de un mismo estilo. En este documento no especificare-
                                                                              añadimos a continuación
mos los diferentes parámetros de cada uno de los comandos que ve-             del mismo, precedido por
remos, ya que extenderíamos el texto más allá de lo permisible y              un espacio y, en muchas
                                                                              ocasiones, por un guión.
tampoco tiene sentido conocer exactamente la totalidad de los pará-           Por ejemplo, si un comando
metros posibles para cada uno. Todos ellos disponen de un amplio              fuera listar, podríamos pa-
                                                                              sarle un parámetro como
manual, donde se especifican todas sus opciones, de manera que                “listar -todo”.
siempre que necesitemos realizar alguna acción en concreto podre-

                                                                        23
© FUOC • 71Z799002MO
  ©                                               Software libre



                                                    mos recurrir a él. En los talleres distribuidos a lo largo del curso sí
                                                    que veremos algunas de estas opciones, aunque es importante saber
                                                    que con el manual siempre podremos descubrir muchas otras, que
                                                    nos pueden ayudar a realizar todo lo que necesitemos.




                                                     2.2. Usuarios y grupos


                                                    Actualmente, la mayoría de los sistemas operativos existentes son
              Nota
                                                    multiusuario y multitarea. Ello implica que más de un usuario puede
              Una política de nombres
                                                    trabajar en el sistema de forma simultánea a otros, ejecutando una
              muy utilizada suele ser po-
              ner como login la primera             o más tareas a la vez. Por este motivo, es muy importante que el mis-
              inicial del nombre del usua-          mo sistema operativo incorpore mecanismos para manipular y con-
              rio seguido de su apellido.
                                                    trolar correctamente a los usuarios: el sistema de entrada e
                                                    identificación (login), los programas que puede ejecutar cada uno,
                                                    mecanismos de seguridad para proteger el hardware del ordenador,
                                                    protección para los ficheros de los usuarios, etc.


                                                    Los sistemas operativos basados en UNIX organizan toda esta infor-
        Contenido
                                                    mación por usuarios y grupos. Al entrar en el sistema, debemos iden-
        complementario
                                                    tificarnos con un login y una contraseña. El login suele ser un nombre
              NIS son una serie de aplica-
              ciones que nos permiten               que identifica de forma inequívoca al usuario. En sistemas donde
              gestionar todos los usuarios          hay más que unos pocos usuarios, es importante disponer de una
              de un mismo laboratorio de
                                                    buena política de nombres para poderlos identificar a todos de for-
              forma centralizada en un
              solo servidor.                        ma clara. La contraseña debe ser una combinación de letras, núme-
                                                    ros y caracteres especiales. No debe estar formada por ninguna
                                                    palabra de diccionario o similares porque puede representar un pro-
                                                    blema de seguridad importante. El sistema de contraseñas es de tipo
                                                    unidireccional. Esto quiere decir que nuestra contraseña no es alma-
                                                    cenada como texto, sino que es cifrada y guardada tal como es.
                                                    Cuando entramos en el sistema y escribimos nuestra contraseña,
ANOTACIONES




                                                    ésta es cifrada y comparada con la que está almacenada. Si coinci-
                                                    den, la identificación es positiva, si no coinciden, no hay identifica-
                                                    ción. Lo importante de todo este sistema es que a partir del cifrado
                                                    no podemos conseguir, de ninguna manera, la clave original. Los
                                                    programas que intentan romper las contraseñas de los usuarios lo
                                                    único que pueden hacer es cifrar palabras a partir de diccionarios
                                                    (con sistemas automáticos para derivarlas y buscar variantes) y pro-
                                                    bar si coinciden con el cifrado de alguna de las contraseñas de usua-
                                                    rio. Es por este motivo por lo que debemos escoger cuidadosamente

                                             24
Sistema operativo GNU/Linux básico                          © FUOC • 71Z799002MO
                                                                                       ©




nuestras contraseñas; de otra forma comprometeremos toda la se-
guridad del sistema.


Actualmente, en los sistemas GNU/Linux podemos escoger dos tipos
de cifrado posibles para las contraseñas de usuario. El que se viene
usando desde los inicios de UNIX es el 3DES. El único inconveniente
de este tipo de cifrado es que sólo nos permite contraseñas de 8 le-
tras (si escribimos más, se ignoran), a diferencia del otro tipo de ci-
frado, llamado MD5, con el que podemos usar contraseñas de la
longitud que queramos (de hecho, MD5 es un sistema de hashing,
pero también se puede utilizar para cifrar contraseñas de forma uni-
direccional). Cuanto más larga sea la contraseña, más segura resul-
ta, con lo cual, se recomienda utilizar el segundo tipo de cifrado. De
todos modos debemos considerar que, si necesitamos usar algunos
programas especiales para la gestión de usuarios, como el NIS, pue-
de que no sean compatibles con MD5.


Si bien un usuario es un individuo particular que puede entrar en el
                                                                               Contenido
sistema, un grupo es un conjunto de usuarios con acceso al sistema             complementario
que comparten unas mismas características, de forma que nos es útil
                                                                                Un servidor es un programa
agruparlos para poder darles una serie de permisos especiales en el             que se encarga de propor-
                                                                                cionar algún tipo de servicio
sistema. Un usuario debe pertenecer, al menos, a un grupo, aunque
                                                                                (como servir páginas web,
puede ser de más de uno. El sistema también utiliza todo este meca-             dejar que los usuarios se co-
nismo de usuarios y grupos para gestionar los servidores de aplica-             necten remotamente, etc.),
                                                                                generalmente vinculado a
ciones instalados y otros mecanismos. Por esta razón, además de los             la Red.
usuarios reales, en un sistema habrá muchos otros vinculados a otras
tareas que se deben realizar en el operativo. Generalmente, este tipo
de usuario no podrá entrar (con un login normal) al sistema.


En todo sistema operativo debe haber un superusuario (root). Éste
será el usuario que contará con todos los permisos, el que tendrá los
                                                                                                           ANOTACIONES



privilegios máximos que le permitirán efectuar cualquier operación
sobre el sistema. Es necesario que éste exista, ya que será quien se
encargará de toda la administración y gestión de servidores, grupos,
etc. Esta cuenta no debe utilizarse para trabajar normalmente en el
sistema. Sólo deberíamos entrar como root cuando sea realmente
necesario, utilizando otras cuentas para el trabajo normal de los
usuarios. De este modo nunca podremos dañar el sistema con ope-
raciones erróneas o con la prueba de programas maliciosos, etc.

                                                                          25
© FUOC • 71Z799002MO
  ©                                           Software libre



                                                Toda la información de usuarios y grupos se guarda en los siguientes
    Contenido
                                                archivos:
    complementario

        También es posible configu-
        rar el sistema para que se              • /etc/passwd: información (nombre, directorio home, . . . ) del
        utilice un fichero shadow
                                                   usuario.
        para los grupos (en caso de
        que sea necesario ponerles
        contraseña). Este fichero se
                                                • /etc/group: información sobre los grupos de usuarios.
        nombraría /etc/gshadow.
        Generalmente, la configura-
        ción de contraseñas se indica
                                                • /etc/shadow: contraseñas cifradas de los usuarios y configura-
        al instalar el sistema, aunque
        todo se puede cambiar y                    ción para su validez, cambio, etc.
        adaptar a nuestro gusto uti-
        lizando los módulos PAM
        (Pluggable Authentication               Utilizar el archivo de shadow es opcional. En un principio, las con-
        Modules for Linux), que son
                                                traseñas cifradas de los usuarios se guardaban en el mismo fichero
        los programas que se encar-
        gan de todo el sistema de               de passwd, pero, por razones de seguridad (muchos mecanismos
        autentificación de usuarios.            deben poder leer este fichero, con lo cual era muy fácil hacerse con
                                                él e intentar “crackear” las contraseñas) se optó por cambiar este
    Contenido                                   mecanismo para hacer que el fichero de shadow sólo fuera accesi-
    complementario
                                                ble para algunos usuarios con privilegios especiales en el sistema.
        “Crackear” una contraseña
                                                Esta opción es configurable en el proceso de instalación del sistema
        significa conseguir la pala-
        bra clave utilizando progra-            y suele ser recomendable utilizarla. Todos estos ficheros están orga-
        mas especiales para ello.               nizados por líneas, donde cada una de ellas identifica a un usuario
        Estos programas también
        los usan los administrado-              o grupo (dependiendo del fichero). En cada línea hay diversos cam-
        res de sistemas para descu-             pos separados por el carácter “:”. En tareas de administración, es
        brir qué usuarios utilizan
        contraseñas demasiado fá-               importante saber qué son estos campos, por lo que vamos a explo-
        ciles de descubrir (las con-            rarlos con un poco más de detalle:
        traseñas buenas no se
        pueden romper de ningún
        modo sin utilizar grandes               • passwd
        supercomputadoras).

                                                1) Login: el nombre del usuario. No puede haber dos nombres igua-
                                                   les, aunque sí alguno que coincida con un grupo del sistema.
ANOTACIONES




                                                2) Contraseña cifrada: si no se utiliza el fichero de shadow, las con-
                                                   traseñas cifradas se almacenan en este campo. Si utilizamos el fi-
                                                   chero de shadow, todos los usuarios existentes en este fichero
                                                   deben existir también en el de shadow y en este campo se pone
                                                   el carácter “x”.

                                                3) User ID: número de identificación del usuario. Es el número con
                                                   el cual el sistema identifica al usuario. El 0 es el único que está
                                                   reservado para el root.

                                         26
Sistema operativo GNU/Linux básico                 © FUOC • 71Z799002MO
                                                                             ©




4) Group ID: el número de grupo al cual pertenece el usuario. Como
  un usuario puede pertenecer a más de un grupo, este grupo se
  denomina primario.

5) Comentarios: campo reservado para introducir los comentarios
  que queramos sobre el usuario. Se suele utilizar para poner el
  nombre completo o algún tipo de identificación personal.

6) Directorio home: el directorio home del usuario es donde éste po-
  drá guardar todos sus ficheros. Suelen ponerse todos en alguna
  carpeta del sistema (generalmente /home/) y organizados por
  grupos.

7) Intérprete de comandos: un intérprete de comandos (shell ) es
  un programa que se encarga de leer todo lo que escribimos en
  el teclado y ejecutar los programas o comandos que le indique-
  mos. Hay decenas de ellos, aunque el más utilizado es, sin du-
  da, el bash (GNU Bourne-Again SHell). Si en este campo
  escribimos /bin/false no permitiremos que el usuario ejecu-
  te ningún comando en el sistema, aunque esté dado de alta en
  el mismo.


• group


1) Nombre del grupo.

2) Contraseña cifrada: la contraseña de un grupo se utiliza para
  permitir que los usuarios de un determinado grupo se puedan
  cambiar a otro o para ejecutar algunos programas con permisos
  de otro grupo (siempre que se disponga de la contraseña).

3) Group ID: número de identificación del grupo. Es el número con
  el cual el sistema identifica internamente a los grupos. El 0 es el
                                                                                             ANOTACIONES



  único que está reservado para el grupo del root (los administra-
  dores).

4) Lista de usuarios: los nombres de los usuarios que pertenecen al
  grupo, separados por comas. Aunque todos los usuarios deben
  pertenecer a un determinado grupo (especificado en el cuarto
  campo del fichero de passwd), este campo se puede utilizar para
  que usuarios de otros grupos también dispongan de los mismos
  permisos que tiene el que se está referenciando.

                                                                        27
© FUOC • 71Z799002MO
  ©                                                Software libre



                                                     • shadow


                                                     1) Login: debe ser el mismo nombre que se utiliza en el fichero de
                                                        passwd.

                                                     2) Contraseña cifrada.

                                                     3) Días que han pasado, desde el 1 de enero de 1970, hasta que la
                                                        contraseña ha sido cambiada por última vez.

                                                     4) Días que deben pasar hasta que la contraseña pueda ser cam-
                                                        biada.

                                                     5) Días que han de pasar hasta que la contraseña deba ser cam-
                                                        biada.

                                                     6) Días antes de caducar la contraseña en el que se avisará al usua-
                                                        rio de que debe cambiarla.

                                                     7) Días que pueden pasar después de que la contraseña caduque,
        Contenido                                       antes de deshabilitar la cuenta del usuario (si no se cambia la
        complementario                                  contraseña).
              En sistemas UNIX es muy co-
              mún representar las fechas a           8) Días, desde el 1 de enero de 1970, desde que la cuenta está des-
              partir del número de segun-               habilitada.
              dos transcurridos desde el 1
              de enero de 1970.
                                                     9) Campo reservado.


                                                     Cuando un usuario entra en el sistema, se le sitúa en su directorio
        Contenido
        complementario                               home y se ejecuta el intérprete de comandos (shell) configurado. De
              En sistemas donde hay cente-           este modo ya puede empezar a trabajar. Sólo el root del sistema (o
              nares de usuarios, es usual            los usuarios de su grupo) tienen permiso para manipular la informa-
              poner algún tipo de mecanis-
                                                     ción de los usuarios y grupos, darlos de alta, de baja, etc. Existen mu-
              mo para restringir el espacio
              de disco que puede utilizar            chos comandos para manipular todo esto. Cada uno de ellos tiene,
              cada uno. En los sistemas
ANOTACIONES




                                                     además, varios parámetros diferentes para gestionar todos los cam-
              GNU/Linux este sistema se
              llama cuota.                           pos que hemos visto anteriormente de forma amena. A continuación
                                                     mostramos algunos de estos comandos:


                                                     • adduser: nos sirve para añadir un nuevo usuario al sistema. La
                                                        forma como éste se añade (si no le especificamos nada) se puede
                                                        configurar en el fichero /etc/adduser.conf. Se le pueden pa-
                                                        sar multitud de opciones diferentes para especificar el directorio
                                                        home, el shell que hay que utilizar, etc.

                                              28
Sistema operativo GNU/Linux básico                    © FUOC • 71Z799002MO
                                                                                 ©




• useradd: crea un nuevo usuario o cambia la configuración por
  defecto de los mismos. Este comando y el anterior nos pueden
  servir para realizar las mismas acciones.


• usermod: con este comando podemos modificar la mayoría de los
  campos que se encuentran en el fichero de passwd y shadow,
  como el directorio home, el shell, la expiración de la contraseña, etc.


• chfn: cambia la información personal del usuario, contenida en
  el campo de comentarios del fichero de passwd.


• chsh: cambia el shell del usuario.


• deluser: elimina un usuario del sistema, borrando o guardando
  todos sus ficheros según los parámetros que le pasemos, hacien-
  do copia de seguridad de los mismos o no, etc. La configuración
  que se utilizará por defecto con este comando está especificada
  en el fichero /etc/deluser.conf.


• userdel: comando con las mismas posibilidades que el anterior.


• passwd: nos sirve para cambiar la contraseña de un usuario, la
  información de expiración de las mismas o para bloquear o des-
  bloquear una determinada cuenta.


• addgroup: permite añadir un grupo al sistema.


• groupadd: lo mismo que el comando anterior, pero con diferen-
  tes parámetros.


• groupmod: nos permite modificar la información (nombre y GID)
                                                                                                 ANOTACIONES



  de un determinado grupo.


• delgroup: elimina un determinado grupo. Si algún usuario to-
  davía lo tiene como primario, no se podrá eliminar.


• groupdel: igual que en el caso anterior.


• gpasswd: nos sirve para cambiar la contraseña del grupo.

                                                                            29
© FUOC • 71Z799002MO
  ©                                                  Software libre



                                                       Para saber qué usuario somos, podemos utilizar el comando
        Contenido
        complementario                                 whoami, que nos mostrará nuestro login. groups nos sirve para sa-
                                                       ber a qué grupos pertenecemos e id nos mostrará usuario y grupos.
              Como vemos, en GNU/Linux
              tenemos más de una mane-                 También es interesante poder convertirnos en otro usuario sin tener
              ra para hacer una determi-
                                                       que salir de la sesión (comando login o su) o cambiarnos de gru-
              nada acción. Ésta es la
              tónica general que se sigue              po con el comando newgrp. Este último comando debemos utilizar-
              en el sistema: podemos edi-              lo sólo cuando no pertenecemos al grupo en cuestión y sabemos su
              tar directamente los ficheros
              y modificarlos nosotros mis-             contraseña (que debe estar activada en el fichero de group). Si sólo
              mos, utilizar algunos de los             necesitamos los permisos del grupo en cuestión para ejecutar un de-
              comandos que existen,
                                                       terminado comando, también podemos utilizar sg.
              creárnoslos nosotros mis-
              mos, etc. En definitiva, tene-
              mos la posibilidad de elegir
                                                       Tal como decíamos anteriormente, GNU/Linux es un sistema operativo
              qué es lo que más nos gusta.
                                                       multiusuario, por lo que en un mismo momento puede haber varios
                                                       usuarios conectados al sistema de forma simultánea. Para saber qué
                                                       usuarios hay en un determinado momento, podemos utilizar el coman-
                                                       do who, que nos muestra la lista de usuarios dentro del sistema. w, ade-
                                                       más, nos muestra qué es lo que están haciendo. Nos podemos
                                                       comunicar con ellos utilizando el comando write, con el cual aparece
                                                       el mensaje que hayamos escrito en la pantalla del usuario indicada o
                                                       wall, que escribe el contenido del fichero que hayamos especificado a
                                                       todos los usuarios dentro del sistema. Para activar o desactivar la opción
                                                       de recibir mensajes tenemos el comando mesg. También podemos ha-
                                                       cer un chat personal con algún usuario a partir del comando talk.




                                                        2.3. El sistema de ficheros



                                                       2.3.1. La jerarquía del sistema de ficheros
        Contenido
        complementario
                                                       Todo sistema operativo necesita guardar multitud de archivos: desde
              El sistema de ficheros es el
ANOTACIONES




                                                       los de la configuración del sistema, los de log, los de los usuarios, etc.
              programa (o módulos del
              núcleo del operativo) que se             En general, cada operativo utiliza su propio sistema de ficheros, carac-
              encarga de realizar todas las            terizándolo en muchos aspectos como pueden ser el rendimiento, la
              operaciones relacionadas
                                                       seguridad, la fiabilidad, etc. GNU/Linux es capaz de leer/escribir ar-
              con el almacenamiento y
              manipulación de los archi-               chivos con cualquiera de los sistemas de ficheros que actualmente
              vos. Son las funciones que               existen, aunque para su propia raíz y directorios principales es nece-
              tratan con los dispositivos fí-
              sicos de almacenamiento                  sario un sistema de ficheros que le permita ciertas operaciones. Gene-
              del ordenador, como el dis-              ralmente, se suele utilizar el tipo ext2, ext3 o ReiserFS. El ext2 es el más
              co duro.
                                                       típico y extendido. Su rendimiento es bastante bueno, incorpora todo

                                                30
Sistema operativo GNU/Linux básico                           © FUOC • 71Z799002MO
                                                                                        ©




tipo de mecanismos de seguridad y tunning y es muy fiable. ext3 es la
evolución del mismo, incorporando una tecnología llamada de jour-
naling. Una de las principales ventajas de esta tecnología es que si hay
un corte en el suministro de energía y el ordenador se apaga sin ce-
rrarse adecuadamente, los sistemas de recuperación de ficheros son
más efectivos. ReiserFS es un nuevo tipo de sistema que incorpora
nuevas tecnologías de diseño que le permiten ser más rápido. En el
proceso de instalación del sistema operativo se nos preguntará cuál de
estos tres queremos usar. Generalmente se suele utilizar ext2 o ext3
por estar más probados que el ReiserFS.


Una característica muy importante de todos los sistemas operativos
                                                                                Contenido
basados en UNIX es que todos los dispositivos del sistema se pueden             complementario
tratar como si fueran ficheros. Igualmente, cuando queramos acce-
                                                                                 El sistema de ficheros ext2 ha
der al contenido de un CD, disquete o cualquier otro dispositivo de              sido diseñado para manejar
almacenamiento, deberemos montarlo en un directorio ya existente                 de forma muy rápida ficheros
                                                                                 pequeños, que es lo que más
en el sistema y navegaremos por él como si se tratara de una carpeta             suele tener un sistema opera-
más (el uso de diferentes unidades -A:,B:,C:,D:,. . . es un esquema              tivo. Con el manejo y mani-
                                                                                 pulación de grandes ficheros
existente únicamente en sistemas operativos tipo WindowsTM).
                                                                                 multimedia, no se desenvuel-
                                                                                 ve tan bien, aunque siempre
Lo primero que debemos tener claro es que todo el sistema de ficheros            se puede hacer un poco de
                                                                                 tunning para adaptarlo más
parte de una misma raíz, a la cual nos referiremos con el carácter “/            a nuestras necesidades.
”. Es el origen de todo el sistema de ficheros y sólo existe una. Para
organizar los ficheros adecuadamente, el sistema proporciona lo que
llamaremos directorios (o carpetas), dentro de las cuales podemos po-
ner archivos y más directorios. De este modo conseguimos una orga-
nización jerárquica como la que vemos en la siguiente figura:

                                                                                                             ANOTACIONES




                                                                           31
© FUOC • 71Z799002MO
  ©                           Software libre



                                2.3.2. Directorios del sistema

                                La mayoría de los sistemas operativos del mercado siguen el están-
                                dar FHS (http://www.pathname.com/fhs/), donde se especifican las
                                principales características que debería tener cualquier sistema ope-
                                rativo. Entre ellas está la distribución en directorios que tenemos que
                                hacer de nuestros archivos para tenerlos correctamente organizados
                                y poder localizarlos de forma rápida y sencilla. En la mayoría de dis-
                                tribuciones basadas en GNU/Linux se siguen estas recomendacio-
                                nes, encontrando los siguientes directorios principales:


                                • /bin/: comandos básicos para todos los usuarios del sistema.


                                • /boot/: archivos estáticos necesarios para el arranque del sistema.


                                • /dev/: dispositivos del sistema.


                                • /etc/: archivos de configuración del sistema y de las aplicacio-
                                   nes instaladas en el mismo.


                                • /home/: directorio para poner las carpetas home de los usuarios.


                                • /lib/: librerías esenciales para el núcleo del sistema y módulos
                                   del mismo.


                                • /mnt/: punto de montaje temporal para dispositivos.


                                • /proc/: procesos y variables del núcleo del sistema.


                                • /root/: directorio home para el root del sistema.
ANOTACIONES




                                • /sbin/: comandos especiales para el root del sistema.


                                • /tmp/: archivos temporales. Según la distribución utilizada (o la
                                   configuración que utilicemos) se borran al arrancar el sistema o
                                   cada cierto período de tiempo.


                                • /usr/: segunda estructura jerárquica, utilizada para almacenar
                                   todo el software instalado en el sistema.

                         32
Sistema operativo GNU/Linux básico                             © FUOC • 71Z799002MO
                                                                                           ©




• /var/: directorio para los spoolers de impresión, ficheros de log,
   etc.


Es muy recomendable conservar y no eliminar ninguno de estos direc-
torios (o los que por defecto nos crea la distribución que utilizamos), ya
que son básicos para el buen funcionamiento del sistema. Generalmen-
te, los procesos de instalación de nuevas aplicaciones necesitan que
exista la organización dada y muchos de los archivos de configuración
de los programas deben estar en determinados directorios. Lo que sí
que podemos hacer sin ningún tipo de restricción es crear nuevos direc-
torios en la raíz del sistema o en cualquier otra carpeta.



2.3.3. Moviéndonos

Para movernos por la estructura de directorios debemos utilizar los co-
mandos para listar contenidos y cambiar de carpeta. Cuando entramos
en el sistema, es usual que el login nos sitúe en nuestro directorio home,
que generalmente se suele referenciar con el carácter “~”. Si queremos
ver lo que hay en el directorio donde estamos situados, podemos listar
los contenidos utilizando el comando ls. Debemos tener en cuenta que
por defecto el comando no nos muestra los archivos que empiezan por
un punto. Con el parámetro “-a” sí que nos mostraría absolutamente
todos los ficheros. En todos los directorios existe una entrada “.” y otra
“..”. El punto es la referencia al directorio actual, mientras que los dos
puntos seguidos hacen referencia al directorio inmediatamente superior
(en el árbol de jerarquías) al actual. Naturalmente, cuando estamos si-
tuados en la raíz del sistema de ficheros, la entrada “..” no existirá por-
que nos encontramos en el nivel superior.
                                                                                   Contenido
                                                                                   complementario
Para cambiar de directorio podemos utilizar el comando cd. Si no                    El hecho de que ls no nos
le pasamos ningún parámetro, por defecto nos situará en nuestro di-                 muestre (por defecto) los ar-
                                                                                    chivos que empiezan por
                                                                                                                ANOTACIONES


rectorio home. Generalmente, se le suele indicar dónde queremos ir,
                                                                                    punto, es para que cada vez
pasándolo de forma absoluta o relativa. De forma relativa significa                 que listamos el contenido
que partiremos del directorio donde estamos en el momento de eje-                   del directorio no tengamos
                                                                                    que ver los ficheros y direc-
cutar el comando. Por ejemplo, si estamos en el directorio /usr/                    torios de configuración de
bin/ y queremos ir al /root/, deberíamos introducir el siguiente                    las aplicaciones que utiliza-
                                                                                    mos (que suelen empezar
comando: “cd ../../root” (los dos primeros puntos indican /
                                                                                    por este carácter) y las en-
usr/ y los siguientes la raíz “/” del sistema, a partir de la cual ya               tradas del directorio actual y
podemos acceder a /root/). De forma absoluta siempre partimos                       anterior, que siempre exis-
                                                                                    ten.
de la raíz, de manera que el comando que utilizaríamos para el

                                                                              33
© FUOC • 71Z799002MO
  ©                           Software libre



                                ejemplo anterior sería: “cd /root”. Para saber en qué directorio es-
                                tamos, podemos utilizar el comando pwd.



                                2.3.4. Enlaces

                                Otros mecanismos que nos proporcionan la gran mayoría de sistemas
                                de ficheros son los que llamamos enlaces. Un enlace es un puente a un
                                archivo o directorio perteneciente al sistema; una referencia que pode-
                                mos poner en cualquier sitio que nos interese y que actúa como un ac-
                                ceso directo a cualquier otro. Este mecanismo nos permite acceder a
                                carpetas o archivos de forma más rápida y cómoda, sin tener que des-
                                plazarnos por la jerarquía de directorios. Vamos a verlo con un ejemplo:
                                imaginemos que somos un usuario (user1) que necesita acceder fre-
                                cuentemente al directorio /usr/share/man/man3/. En lugar de es-
                                cribir el largo comando que nos situaría en el directorio en cuestión
                                cada vez que necesitáramos desplazarnos a él, podemos crear un enla-
                                ce en nuestro propio directorio que nos redireccione directamente hacia
                                allí. El comando “ln -s /usr/share/man/man3 mmm” nos crearía
                                este puente, que hemos llamado “mmm”. El usuario sólo debería escribir
                                (desde su directorio home) “cd mmm” y automáticamente el sistema lo
                                redirigiría hacia /usr/share/man/man3/. Es importante tener en
                                cuenta que al hacer un “cd ..” para ir al directorio superior, volvería-
                                mos al directorio home y no a usr/share/man/, ya que hemos acce-
                                dido a él a partir de nuestro enlace. Podemos ver este esquema de
                                forma gráfica en la siguiente figura:
ANOTACIONES




                         34
Sistema operativo GNU/Linux básico                          © FUOC • 71Z799002MO
                                                                                      ©




Al crear el enlace del ejemplo anterior hemos pasado el paráme-
                                                                              Contenido
tro “-s” al comando. Ello indica que queremos crear un enlace                 complementario
simbólico. Los enlaces simbólicos significan que sólo estamos                  Un enlace fuerte sólo se
creando un apuntador o puente hacia el fichero o directorio, de                puede crear entre ficheros o
                                                                               directorios de una misma
forma que si borrásemos el fichero destino, el enlace no apuntaría
                                                                               unidad debido al mecanis-
a ninguna parte. Si no ponemos el parámetro “-s” se crearía lo                 mo interno que se utiliza
                                                                               para gestionarlos.
que llamamos un enlace fuerte (hard link) que, a diferencia del
anterior, hace un duplicado del fichero. De hecho, internamente
no es exactamente un duplicado, es como dos entradas que apun-
tan a los mismos datos. De este modo, si modificamos uno u otro,
los dos quedan iguales. La ventaja de este tipo de enlace es que
si borramos cualquiera de las dos copias del fichero la otra toda-
vía se conserva. Este tipo de enlace no se utiliza demasiado por-
que complica la gestión y manipulación de los ficheros (siempre
es mejor tener una sola copia de los archivos). Además, si hace-
mos un enlace fuerte de un directorio, todos los archivos y subdi-
rectorios que contuviera también se deberían referenciar. Por esta
razón sólo el root del sistema puede hacer enlaces fuertes de di-
rectorios. Otra diferencia es que con un enlace simbólico pode-
mos ver a qué fichero estamos apuntando, mientras que con uno
fuerte no podemos (debido al mecanismo que se utiliza interna-
mente para ellos).



2.3.5. Permisos

En cualquier sistema operativo multiusuario necesitamos que los fi-
cheros que guardamos en nuestro disco puedan tener una serie de
propiedades que nos permitan verlos, modificarlos o ejecutarlos
para los usuarios que nosotros definamos. Aunque hay varias alter-
nativas para hacer esto, GNU/Linux utiliza el sistema clásico de
UNIX, que, combinado con todos los mecanismos de gestión de
                                                                                                         ANOTACIONES



usuarios y grupos, nos permite cualquier configuración posible. Lo
que interesa es definir, para cada fichero o directorio, a qué usuario
y grupo pertenece y qué permisos tiene para cada uno de ellos, así
como para el resto de usuarios del sistema. Ejecutando “ls -l” ve-
remos cómo en cada archivo del directorio donde estamos aparece
una línea parecida a la siguiente:


-rwxr-xr-x 1 user1 grupo1 128931 Feb 19 2000 gpl.txt

                                                                         35
© FUOC • 71Z799002MO
  ©                                                Software libre



                                                     Los primeros diez caracteres (empezando por la izquierda) nos indi-
                                                     can los permisos del fichero de la siguiente manera:


                                                     • Carácter 1: esta entrada nos indica si es un fichero o un directo-
                                                        rio. En caso de ser un fichero, aparece el carácter “-”, mientras
                                                        que por los directorios aparece una “d”.


                                                     • Caracteres 2, 3, 4: nos indican, respectivamente, los permisos de
                                                        lectura, escritura y ejecución para el propietario del fichero. En
                                                        caso de no tener el permiso correspondiente activado, encontra-
                                                        mos el carácter “-” y si no “r”, “w” o “x”, según si lo podemos
                                                        leer (Read), escribir (Write) o ejecutar (eXecute). En el tercer carác-
                                                        ter, además, podemos encontrarnos una “s”, que nos indica si el
                                                        archivo es de tipo SetUserId, que quiere decir que al ejecutarlo
                                                        obtendrá los permisos del propietario del fichero. Si sólo tiene el
                                                        permiso “x”, cuando el programa se ejecuta lo hace con los per-
                                                        misos de quien lo haya lanzado.


                                                     • Caracteres 5, 6, 7: estos caracteres tienen exactamente el mismo
                                                        significado que anteriormente, pero hacen referencia a los permi-
                                                        sos concedidos a los usuarios del grupo al que pertenece el fichero.


                                                     • Caracteres 8, 9, 10: igual que en el caso anterior, pero para los
        Contenido
        complementario                                  otros usuarios del sistema.

              El mecanismo de SetUserId
              es muy útil cuando un pro-             Después de estos 10 caracteres encontramos una cifra que nos indi-
              grama necesita tener los
                                                     ca el número de enlaces fuertes que tiene el fichero. Para los direc-
              permisos de su propietario
              para acceder a ciertos ar-             torios, este número indica cuántas carpetas hay dentro de él además
              chivos o hacer algún tipo de           de los enlaces fuertes que tiene (cuando no hay ninguno, el número
              operación en el sistema. De
              todos modos, debemos vigi-             es 2, debido a la gestión interna del operativo). A continuación ve-
              lar mucho con este tipo de             mos el propietario y el grupo del archivo, seguido del tamaño (en
              ficheros porque pueden su-
                                                     bytes) que ocupa y la fecha de la ultima modificación. En todos los
ANOTACIONES




              poner fallos de seguridad
              en el sistema si son mal uti-          ficheros se guarda su fecha de creación, último acceso y modifica-
              lizados.                               ción, que podemos manipular con el comando touch. Al final hay
                                                     el nombre del fichero, dónde se diferencian minúsculas de mayúscu-
                                                     las y podemos tener todo tipo de caracteres sin ningún problema.


                                                     Para cambiar los permisos de un determinado archivo podemos uti-
                                                     lizar el comando chmod. Debemos tener en cuenta que sólo el pro-
                                                     pietario del archivo (o el root ) puede cambiar estos permisos, ya que

                                              36
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                                ©




si no, el mecanismo no tendría ningún sentido. Podemos utilizar este
comando de muchas maneras diferentes, pero las dos más frecuen-
tes son las siguientes:


• El primer modo de utilizarlo es del estilo “chmod XXX nombreAr-
   chivo”. Las “X” deben ser tres números entre 0 y 7. El primer nú-
   mero indica los permisos que queremos establecer para el
   usuario, el segundo, para el grupo y el tercero, para el resto. Para
   interpretar correctamente los permisos que daremos utilizando los
   números del 0 al 7, debemos hacer uso de la representación bi-
   naria del número en cuestión, de forma que el primer dígito indi-
   cará el permiso de escritura, el segundo, el de lectura y el tercero,
   el de ejecución. En cada caso un 0 indica que no se da el permiso
   en cuestión y el 1 indica que sí que se da. En la siguiente tabla
   podemos ver esta relación:


  Representación decimal     Representación binaria      Significado

             0                        000                   ---

             1                        001                   --x

             2                        010                   -w-

             3                        011                   -wx

             4                        100                   r--

             5                        101                   r-x

             6                        110                   rw-

             7                        111                   rwx



• El otro modo de utilizar el comando es indicando de forma explí-
   cita qué permiso queremos dar o eliminar del fichero. La manera
   de hacerlo es indicando, primero, si nos referimos a los permisos
                                                                                                ANOTACIONES



   del usuario, grupo o al resto con las letras “u”, “g” u “o” respec-
   tivamente. Seguidamente, debemos añadir un “+” o “-” según
   si queremos añadir o eliminar el atributo, que indicaremos con
   “r”, “w”, “x” o “s” (este último para el SetUserId). Además, po-
   demos hacer todas las combinaciones posibles, refiriéndonos a
   más de un permiso y/o usuarios. Por ejemplo, “chmod go+r
   gpl.txt”daría el permiso de lectura al grupo y a los otros usua-
   rios para el fichero gpl.txt.

                                                                           37
© FUOC • 71Z799002MO
  ©                                                 Software libre



                                                      Para cambiar el propietario de un fichero existe el comando chown,
        Contenido
        complementario                                que sólo puede utilizar el root por razones de seguridad. Para cam-
                                                      biar el grupo de un determinado archivo, se puede utilizar el coman-
              Si se permitiera a los usua-
              rios cambiar el propietario             do chgrp. Como podemos suponer, cuando un usuario crea un
              de sus ficheros, la seguri-             nuevo archivo, el sistema pone como propietario al usuario que lo
              dad del sistema quedaría
              comprometida, porque se                 ha creado y lo da como perteneciente al grupo primario del mismo
              podrían realizar acciones               usuario. Los permisos que se ponen por defecto al crear un nuevo ar-
              maliciosas y después cam-
                                                      chivo los podemos configurar con el comando umask, al que debe-
              biar el propietario de los ar-
              chivos utilizados inculpando            mos pasar la misma notación de tres números decimales entre 0 y 7
              a otros usuarios.                       que veíamos anteriormente pero complementados. Por ejemplo, si
                                                      queremos que nuestros ficheros se inicialicen con los permisos “rw-
                                                      r--r--”, deberíamos escribir “umask 133”.



                                                      2.3.6. Manipulación, patrones y búsquedas

                                                      Ahora que ya sabemos movernos correctamente por la jerarquía de
        Contenido
        complementario                                directorios, también necesitamos saber cómo copiar, eliminar y ma-
                                                      nipular correctamente otros aspectos de los ficheros. El comando rm
              La sintaxis de los patterns
              puede llegar a ser muy                  es el que se encarga de eliminar los archivos que le indiquemos. Para
              compleja, permitiéndonos                eliminar un directorio, podemos utilizar el comando rmdir, aunque
              referenciar cualquier con-
              junto de archivos que que-              sólo lo borrará cuando éste esté vacío (si quisiéramos borrar comple-
              ramos.                                  tamente un directorio y todo su contenido, podríamos utilizar “rm -
                                                      r”). Para copiar archivos de un lugar a otro tenemos el comando cp,
                                                      al que siempre debemos indicar el fichero o directorio origen y el lu-
                                                      gar o nombre de destino, aunque sea en el directorio actual. De este
                                                      modo, si queremos copiar el archivo /home/user1/gpl.txt en
                                                      el directorio actual (y con el mismo nombre) deberíamos escribir “cp
                                                      /home/user1/gpl.txt .”. Si en lugar de copiar los archivos
                                                      queremos moverlos de sitio, podemos utilizar el comando mv.


                                                      Un mecanismo muy útil que nos proporciona el sistema son los
ANOTACIONES




                                                      patterns (‘patrones’). Hasta ahora hemos visto cómo aplicar cier-
                                                      tas operaciones sobre un determinado archivo. Cuando estamos
                                                      manipulando un sistema, en muchos casos nos interesará aplicar
                                                      alguna de las operaciones que hemos visto pero sobre un grupo
                                                      grande de ficheros. Los patrones nos permitirán aplicar las ope-
                                                      raciones que queramos especificando en una sola instrucción va-
                                                      rios ficheros que cumplan con una serie de características
                                                      concretas. Debemos verlos como plantillas de nombres, de mane-
                                                      ra que el carácter “*” significa cualquier cadena de caracteres po-

                                               38
Sistema operativo GNU/Linux básico                                © FUOC • 71Z799002MO
                                                                                                          ©




sibles y el “?” nos sirve como comodín a cualquier carácter. De
este modo, si queremos listar todos los archivos que empiecen por
“s”, que después tengan cualquier otro carácter, les siga una “a”,
y después cualquier otra cadena, podríamos utilizar “ls s?a*”.
Entre “[]” podemos incluir otros caracteres, indicando que el pa-
trón tiene éxito si se encuentra alguno de ellos en el nombre. Por
ejemplo, si quisiéramos referenciar todos los archivos que empie-
cen por “a” o por “b” y que continúan con cualquier otra cadena,
podríamos escribir el pattern “[ab]*”. Si después de “[” pusié-
ramos el carácter “!” (“[!ab]*”) indicaríamos que el pattern co-
incide con cualquier archivo que no empiece por “ o “b”.
                                                a”
Finalmente, para facilitar ciertas búsquedas, dentro de “[]”pode-
mos especificar clases de caracteres de la siguiente manera:
“[:clase:]”, donde la “clase” puede ser cualquiera de las
nombradas en la siguiente tabla:


 clase               significado              clase                        significado

 alnum           [A-Za-z0-9]              alpha             [A-Za-z]

 blank           [ ]                     cntrl             cars de control

 digit           [0-9A-Fa-f]              graph             cars imprimibles (sin espacios)

 lower           [a-z]                    print             cars imprimibles (con espacios)

 punct           [.,¡!¿?:;] . . .         space             []

 upper           [A-Z]                    xdigit            [0-9A-Fa-f]

 A-Z indica caracteres de la A a la Z, t es el tabulador y n es un salto de línea.




Naturalmente, los patterns los podemos utilizar con cualquiera de los
comandos que hemos visto y la mayoría de los que veremos a con-
tinuación. Además, la mayor parte de los comandos de listado, eli-
minación, copia, etc. de ficheros también permiten que se les pase
un parámetro (generalmente “-r”) para realizar las acciones respec-
                                                                                                                           ANOTACIONES



tivas de forma recursiva. De este modo, se irá entrando y ejecutando
la instrucción correspondiente en todos los archivos y directorios, a
partir de donde nos encontramos y hasta llegar al último nivel de la
jerarquía.
                                                                                                   Nota
                                                                                                   Si queremos actualizar la
Otro tipo de operación muy útil es la búsqueda de ficheros. Tenemos                                base de datos interna que
varios comandos que nos permiten realizar búsquedas de diferentes                                  utiliza el comando locate,
                                                                                                   podemos utilizar updatedb.
tipos sobre todos los ficheros del sistema.

                                                                                              39
© FUOC • 71Z799002MO
  ©                                               Software libre



                                                                Es el comando más versátil para realizar esta acción. Nos
                                                                permite filtrar los ficheros para encontrar desde los que tienen
                                                                un determinado nombre, los modificados o creados a partir de
                                                     find       una cierta fecha, los que tienen ciertos permisos, etc. Su única
                                                                desventaja es que no utiliza ningún tipo de mecanismo para
                                                                acelerar la búsqueda, con lo cual, éstas pueden tardar
                                                                bastante.

                                                                Se trata de otro comando, pero, a diferencia del anterior, utiliza
                                                                una base de datos interna que se actualiza periódicamente y
                                                                nos permite hacer búsquedas bastante más rápidas. Debemos
                                                     locate
                                                                tener en cuenta, sin embargo, que los resultados no siempre
                                                                estarán actualizados, además de que no podemos realizar
                                                                búsquedas tan versátiles como con find.

                                                                Por último, whereis está orientado a la búsqueda de los
                                                     whereis    archivos binarios (los ejecutables), de ayuda o los de código
                                                                fuente de un determinado programa.




                                                    2.3.7. Tipos y contenido de ficheros


                                                    Los archivos que tenemos en nuestro sistema pueden ser de muchos
        Contenido
        complementario                              tipos diferentes: ejecutables, de texto, de datos, etc. A diferencia de
                                                    otros sistemas que utilizan la extensión del archivo para determinar
              Utilizar la extensión para
              determinar el tipo de un ar-          de qué tipo son, GNU/Linux utiliza un sistema denominado de magic
              chivo no es un sistema muy            numbers, determinando con un número mágico el tipo de fichero se-
              eficaz, ya que cualquiera
              puede cambiarla y generar             gún sus datos (se pasan una serie de tests que intentan determinar
              confusiones y errores en el           de qué tipo es el fichero). El comando file nos lo indica.
              sistema.


                                                    Si necesitamos ver el contenido de un fichero, uno de los comandos
                                                    básicos es el cat. Pasándole el nombre o nombres de los archivos
                                                    que queremos ver, se muestra por pantalla. Debemos intentar no
                                                    mostrar ficheros ejecutables o de datos por pantalla, ya que el vol-
                                                    cado de caracteres no imprimibles nos dejaría la consola con carac-
                                                    teres no comprensibles (siempre la podemos reiniciar tecleando
                                                    reset o tset). Para ficheros muy extensos, nos irán mucho mejor
                                                    los comandos less o more, que permiten desplazarnos por el fi-
                                                    chero de forma progresiva. Si el tipo de fichero es binario y queremos
ANOTACIONES




                                                    ver qué contiene, podemos utilizar los comandos hexdump u od
                                                    para ver el contenido de forma hexadecimal u otras representacio-
                                                    nes. strings nos buscará las cadenas de caracteres dentro de un
                                                    fichero binario y las mostrará por pantalla.


                                                    Otro tipo de comandos muy útiles son los que nos buscan un cierto
                                                    patrón en el contenido de los ficheros. Con el comando grep le po-
                                                    demos pasar como segundo parámetro el nombre del archivo y

                                             40
Sistema operativo GNU/Linux básico                       © FUOC • 71Z799002MO
                                                                                     ©




como primero el pattern que queramos buscar (con la sintaxis que
veíamos anteriormente, extendida a otras opciones). Además, el co-
mando nos permite otras múltiples acciones, como contar el número
de líneas donde aparece el patrón (parámetro “-c”), etc. Con cut
podemos separar en campos el contenido de cada línea del fichero
especificando qué carácter es el separador, muy útil en tareas de ad-
ministración del sistema para su automatización. También podemos
coger un determinado número de líneas del principio o fin de un ar-
chivo con los comandos head y tail respectivamente. Con wc po-
demos contar el número de líneas o palabras, la máxima longitud de
línea de un fichero, etc.


Finalmente, para acabar con esta sección de manipulación de fiche-
ros, lo único que nos falta por ver es cómo comparar diferentes ar-
chivos. Igual que con las otras operaciones, tenemos varios
comandos que nos permiten hacerlo. diff, cmp y comm realizan
comparaciones de diferentes formas y métodos en los ficheros que
indicamos. sdiff, además, permite mezclarlos a nuestra elección.




 2.4. Los procesos


El hecho de que el sistema operativo sea multitarea implica que po-
                                                                             Contenido
demos lanzar más de un programa a la vez. Un proceso no es más               complementario
que un programa o aplicación que se encuentra cargado en la me-               La gestión de procesos es
moria y en proceso de ejecución. Aunque nuestro ordenador sólo                un aspecto vital en todo
                                                                              sistema operativo, ya que
disponga de una CPU, el sistema operativo se encarga de repartir el
                                                                              determina el tiempo de res-
tiempo de procesamiento de la misma para que varios procesos pue-             puesta de nuestras aplica-
dan ir realizando sus operaciones, dando la sensación de que se es-           ciones, la eficiencia con que
                                                                              se utiliza la memoria y la
tán ejecutando todos a la vez.                                                CPU, etc.
                                                                                                         ANOTACIONES



Para identificar de forma inequívoca cada proceso, el núcleo del sis-
tema les asigna un número llamado PID (Process IDentification).
Aunque podríamos pensar que con solo el nombre ya los podríamos
referenciar, es imprescindible disponer de este número porque po-
demos ejecutar un mismo programa tantas veces como queramos,
al mismo tiempo que se ejecutan diferentes instancias del mismo.
Para saber qué procesos se están ejecutando, podemos utilizar el co-
mando ps. Para explorar un poco más todo este mecanismo de pro-

                                                                        41
© FUOC • 71Z799002MO
  ©                           Software libre



                                cesos, explicaremos con más detalle algunos de los parámetros que
                                le podemos pasar a este comando:


                                • “T”: esta opción viene por defecto y nos indica que sólo se mos-
                                   trarán los procesos que se están ejecutando en el terminal dónde
                                   nos encontramos o que se hayan lanzando a partir de él.


                                • “-a”: nos muestra los procesos de todos los terminales del siste-
                                   ma.


                                • “-A”: nos muestra todos los procesos del sistema. Si ejecutamos
                                   el comando, veremos que, aparte de los programas que los usua-
                                   rios ejecutan, hay otros. Muchos de ellos ejecutan las funciones
                                   necesarias para que el operativo funcione correctamente, otros
                                   son los servidores de aplicaciones configurados, etc.


                                • “-l”: enseña información extendida para cada proceso, como el
                                   tiempo de CPU que ha utilizado, el terminal donde se ejecuta, etc.
                                   En la segunda columna también podemos ver el estado del pro-
                                   ceso. Aunque el sistema tenga muchos procesos ejecutándose en
                                   un mismo instante de tiempo, ello no implica que todos necesiten
                                   tiempo de CPU constantemente. Por ejemplo, cuando un servidor
                                   de páginas web no tiene ninguna petición, no es necesario que
                                   haga absolutamente ninguna operación. Aunque esté en memo-
                                   ria preparado para ejecutarse al recibir una petición, es mejor
                                   que no pase en ningún momento por la CPU, ya que ésta puede
                                   utilizarse para otros procesos que sí que la necesitan. Internamen-
                                   te, el sistema operativo tiene implementados una serie de meca-
                                   nismos muy eficaces para gestionar toda esta clase de
                                   operaciones. De este modo, un proceso puede estar en los si-
                                   guientes estados (mostrados con el carácter correspondiente):
ANOTACIONES




                                – “D”: proceso ininterrumpible. Este tipo de proceso generalmente
                                   suele pertenecer a la entrada/salida de algún dispositivo que se
                                   dañaría si dejara de ser atendido.


                                – “R”: proceso que en el momento de ejecutar el comando también
                                   se está ejecutando, o sea, todos aquellos que están en cola de
                                   ejecución. La cola de ejecución de procesos es donde se ponen
                                   todos aquellos que se van repartiendo el tiempo de la CPU.

                         42
Sistema operativo GNU/Linux básico                         © FUOC • 71Z799002MO
                                                                                      ©




– “S”: proceso dormido o esperando que ocurra algún tipo de
   evento para que el sistema lo despierte y lo ponga en la cola de
   ejecución.


– “T”: proceso que ha sido detenido por el usuario o el sistema.


– “Z”: proceso zombie. Este estado indica que el proceso ha tenido
   algún fallo y no funciona correctamente. Generalmente es mejor
   eliminar este tipo de procesos.


Otro comando muy útil es el top, que nos informa de forma interac-
                                                                              Contenido
tiva de los procesos del sistema, del estado de utilización de la CPU,        complementario
la memoria utilizada y libre, la RAM que utiliza cada proceso, etc.            Con los comandos de ma-
Este programa es muy indicado cuando el sistema no responde ade-               nipulación de procesos po-
                                                                               demos realizar cualquier
cuadamente o notamos alguna disfunción extraña, ya que nos permite
                                                                               acción que nos interese:
localizar rápidamente qué proceso está afectando negativamente al              desde pausar los procesos
rendimiento del sistema.                                                       de un usuario concreto, eli-
                                                                               minar aquellos que no nos
                                                                               interesan o hacer que algu-
Como vemos, el sistema nos informa sobre todos los aspectos posi-              nos ocupen más tiempo la
                                                                               CPU para que vayan más
bles de los procesos del sistema. Además de esto, podemos enviar               rápido.
ciertas señales a los procesos para informarles de algún evento, po-
demos sacarlos de la cola de ejecución, eliminarlos, darles más prio-         Contenido
ridad, etc. Saber manipular correctamente todos estos aspectos                complementario
también es muy importante, ya que nos permitirá utilizar nuestro or-           Para tratar las señales en un
denador de forma más eficiente. Por ejemplo, si somos administra-              shell script (véase más ade-
                                                                               lante cómo programarlos),
dores de un centro de cálculo donde la mayoría de aplicaciones que             podemos utilizar el coman-
se ejecutan necesitan mucho tiempo de CPU, podríamos configurar                do trap.

el sistema para hacer que los más urgentes se ejecuten con más prio-
ridad que otros y acaben primero. El comando kill nos permite
enviar señales a los procesos que nos interese. En general, todos los
programas se diseñan para que puedan recibir este tipo de señales.
                                                                                                          ANOTACIONES


De este modo, según el tipo de señal recibido saben que deben rea-
lizar unas operaciones u otras. Hay muchos tipos diferentes de seña-
les, que podemos ver en el manual de kill, aunque las más
utilizadas son las que nos sirven para obligar a un proceso a que ter-
mine o pause su ejecución. Con la señal TERM (“kill -15 PID”),
le indicamos al proceso que queremos que termine, de modo que al
recibir la señal deberá guardar todo lo necesario y acabar su ejecu-
ción. Si hay algún tipo de problema o el programa no está prepara-
do para recibir este tipo de señal, podemos utilizar KILL (“kill -

                                                                         43
© FUOC • 71Z799002MO
  ©                           Software libre



                                9 PID”), que automáticamente lo expulsa de la cola de ejecución.
                                killall sirve para referirnos al nombre de varios procesos a la vez
                                en lugar de referenciarlos por su PID y, de esta forma, enviarles una
                                señal a todos a la vez. Con el comando skill también podemos
                                enviar señales a los procesos, pero con una sintaxis diferente. Por
                                ejemplo, si queremos detener todas las ejecuciones de un determi-
                                nado usuario, podríamos utilizar “skill -STOP -u nombreLo-
                                gin”, con lo que todos los procesos de dicho usuario se pararían.
                                Para reiniciarlos de nuevo, podríamos pasar la señal de CONT.
                                Cuando estamos ejecutando algún programa en una consola y que-
                                remos pasarle la señal de TERM, podemos utilizar la combinación
                                de teclas CTRL+C. Con CTRL+Z podemos pausar un programa y re-
                                vivirlo con fg.


                                Otra manera de ver los procesos es por su jerarquía. Igual que en el
                                sistema de ficheros, los procesos siguen una cierta jerarquía de pa-
                                dres a hijos. Todo proceso debe ser lanzado a partir de otro, sea el
                                propio intérprete de comandos, el entorno gráfico, etc., de manera
                                que se crea una relación de padres a hijos. Con el comando pstree
                                podemos ver esta jerarquía de forma gráfica. Si lo ejecutamos, vere-
                                mos cómo el padre de todos los procesos es uno llamado init. A
                                partir de éste parten todos los demás, que a la vez pueden tener más
                                hijos. Esta estructura jerárquica es muy útil, ya que, por ejemplo, ma-
                                tando a un proceso padre que contiene muchos otros hijos, también
                                matamos a todos sus hijos. También nos puede servir para identificar
                                de dónde parten ciertos procesos, etc. Si no le pasamos ningún pa-
                                rámetro al comando, por defecto compacta todos los procesos con
                                un mismo nombre para no mostrar una estructura demasiado gran-
                                de, aunque esto también es configurable a partir de sus parámetros.


                                Todos los procesos del sistema tienen una cierta prioridad. Como de-
                                cíamos antes, esta prioridad indica el tiempo de CPU que se le dejará
ANOTACIONES




                                al proceso. Cuanto más prioritario sea el proceso, más tiempo de
                                ejecución tendrá respecto a los otros. El rango de prioridades va des-
                                de el –20 al 19, de mayor a menor. Para lanzar un proceso con una
                                determinada prioridad, podemos utilizar el comando nice. Si que-
                                remos dar una prioridad diferente a un proceso que ya esté en eje-
                                cución, podemos utilizar renice. Sólo el root puede utilizar el rango
                                de prioridades negativas; así, el sistema se asegura de que el root
                                cuente siempre con la posibilidad de ejecutar procesos más rápida-
                                mente que los usuarios. Por defecto, la prioridad con que se ejecutan

                         44
Sistema operativo GNU/Linux básico                  © FUOC • 71Z799002MO
                                                                               ©




los programas es la 0. Un aspecto que habrá que considerar es que
con todo este mecanismo de prioridades no podemos medir el tiem-
po de ejecución real de un proceso porque la CPU se reparte entre
todos los que tengamos en la cola de ejecución. En centros de cálculo
donde se factura según el tiempo de utilización de las máquinas, es
muy importante poder medir adecuadamente este aspecto. Por este
motivo, el sistema nos proporciona el comando time, el cual, al pa-
sarle el programa que queremos medir, nos devuelve el tiempo real
de CPU que ha utilizado.




 2.5. Otros comandos útiles



2.5.1. La ayuda del sistema

Como hemos dicho a lo largo del documento, todos los comandos
tienen multitud de opciones y parámetros diferentes que nos permi-
ten manipularlos a nuestra elección. Desde el principio se tuvo muy
en cuenta que es imprescindible contar con una buena documenta-
ción para todos ellos. Igualmente, toda esta información es necesa-
ria para los ficheros de configuración del sistema, las nuevas
aplicaciones que utilizamos, etc. Por ello, el mismo sistema incorpora
un mecanismo de manuales con el que podemos consultar casi todos
los aspectos de los programas, utilidades, comandos y configuracio-
nes existentes. El comando más utilizado es el man, que nos enseña
el manual del programa que le indicamos como parámetro. Por de-
fecto, esta documentación se muestra por medio del programa
less, con el cual podemos desplazarnos hacia delante y hacia atrás
con las teclas de AVPÁG y REPÁG, buscar una palabra con el carác-
ter “/” seguido de la palabra (“n” nos sirve para buscar las siguientes
                                                                                               ANOTACIONES



ocurrencias y “N” para las anteriores), “q” para salir, etc. Los manua-
les del sistema están divididos en diferentes secciones según la natu-
raleza de los mismos:


1) Programas ejecutables (aplicaciones, comandos, etc.).

2) Llamadas al sistema proporcionadas por el shell.

3) Llamadas a librerías del sistema.

                                                                          45
© FUOC • 71Z799002MO
  ©                                              Software libre



                                                   4) Archivos especiales (generalmente los de dispositivo).

                                                   5) Formato de los archivos de configuración.

                                                   6) Juegos.

                                                   7) Paquetes de macro.

                                                   8) Comandos de administración del sistema (generalmente aquellos
                                                      que sólo el root puede utilizar)

                                                   9) Rutinas del núcleo.


                                                   Si hay más de un manual disponible para una misma palabra, po-
        Contenido
        complementario                             demos especificarlo pasándole el número correspondiente de la sec-
                                                   ción deseada antes de la palabra, por ejemplo “man 3 printf”.
              Para realizar sus búsquedas
              de forma rápida, la aplica-          Como los otros comandos, man tiene multitud de opciones diferen-
              ción man utiliza una base            tes documentadas en su propio manual (“man man”), a partir de las
              de datos interna que va a
              buscar por los archivos que          cuales podemos hacer búsquedas automáticas, crear un fichero del
              contienen los manuales y             manual en formato imprimible, etc. Una de estas opciones, que nos
              los indexa de forma ade-
                                                   puede ir muy bien en las ocasiones que no sepamos exactamente el
              cuada. Si queremos actuali-
              zar este manual (aunque              programa que estamos buscando, es “-k” (el comando apropos
              normalmente el mismo sis-            hace casi exactamente lo mismo). Con “man -k” seguido de una pa-
              tema ya lo hace automáti-
              camente), podemos utilizar           labra que haga referencia a la acción que queramos realizar se bus-
              el comando mandb.                    cará por entre todos los manuales del sistema y se mostrarán los que
                                                   en su descripción o nombre aparezca la palabra indicada. Así, po-
                                                   demos encontrar lo que queremos sin tener que recurrir a ningún li-
                                                   bro o referencia externa al sistema.


                                                   Si el manual no nos proporciona toda la información que necesita-
                                                   mos, podemos usar el comando info, que es lo mismo que el ma-
                                                   nual pero aún más extendido. Si lo único que queremos es tener una
                                                   breve referencia de lo que hace un determinado programa/librería/
                                                   etc., podemos utilizar el comando whatis.
ANOTACIONES




                                                   2.5.2. Empaquetado y compresión

                                                   Comprimir un archivo, agrupar varios en uno solo o ver qué con-
                                                   tiene un archivo comprimido son tareas que efectuaremos frecuen-
                                                   temente para hacer copias de seguridad, transportar archivos de
                                                   un sitio a otro, etc. Aunque existen multitud de programas diferen-
                                                   tes que nos permiten llevar a cabo esta clase de operaciones, ge-

                                            46
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                                ©




neralmente en todos los sistemas GNU/Linux encontraremos la
herramienta tar. Este programa nos permite manipular de cual-
quier manera uno o varios archivos para comprimirlos, agruparlos,
etc. Aunque sus múltiples opciones son inacabables y tiene muchí-
sima flexibilidad, aquí sólo explicaremos algunas de las más bási-
cas para hacernos una idea de lo que podemos hacer con él. La
sintaxis que utiliza es la siguiente: “tar opciones archivoDes-
tino archivosOrigen”, donde el archivo de destino será el nue-
vo fichero que queremos crear y los de origen serán los que se
agruparán o comprimirán. Es importante tener en cuenta que si
queremos agrupar toda una carpeta, por defecto el proceso es re-
cursivo, de forma que al empaquetarla ésta recorrerá todos sus ni-
veles y agrupará todo lo que contenga. Para crear un nuevo
archivo, debemos pasarle el parámetro “c”, y si lo queremos guar-
dar en un archivo, debemos pasarle el “f”. De este modo, “ tar cf
final.tar o*” empaquetará todos los archivos del directorio ac-
tual que empiecen por “o”. Si además quisiéramos comprimirlos,
podríamos utilizar “czf” con lo que se utilizaría el programa gzip
después de empaquetarlos. Para desempaquetar un determinado
archivo, el parámetro necesario es el “x”, de modo que debería-
mos escribir “tar xf” indicando el fichero empaquetado. Si estu-
viera comprimido, deberíamos pasar “xzf”.


Aunque con el mismo tar podemos comprimir archivos, la aplica-
ción en sí misma no es de compresión. Como hemos dicho, para ello
utiliza programas externos como el gzip. El gzip utiliza un formato
de compresión propio y diferente del tan popularizado zip, que
también podemos utilizar instalando la aplicación correspondiente.
Otra aplicación de compresión bastante utilizada y que proporciona
muy buenos resultados es el bzip2. En la siguiente tabla podemos
ver la extensión que se suele utilizar para identificar qué formato uti-
liza un archivo comprimido o empaquetado:
                                                                                                ANOTACIONES



                     extensión             formato

                      “.tar”                 tar

                       “.gz”                gzip

                      “.tgz”              tar + gzip

                      “.bz2”                bzip2

                       “.zip”                zip

                        “.z”              compress


                                                                           47
© FUOC • 71Z799002MO
  ©                                                Software libre



                                                     2.5.3. Operaciones de disco

                                                     La gestión y manipulación de los discos duros del ordenador es otro
        Contenido
        complementario                               aspecto fundamental en las tareas de administración del sistema.
                                                     Aunque más adelante veremos cómo configurar adecuadamente los
              El tamaño del bloque y otros
              muchos parámetros se pue-              discos que tengamos instalados en el ordenador, en esta sección ex-
              den configurar al formatear
                                                     plicaremos cuáles son los comandos necesarios para ver informa-
              una partición del disco duro
              (con el sistema ext2 o ext3).          ción relativa a los mismos. Todo disco duro está dividido en
              Estos parámetros se pueden             particiones, a las que podemos acceder como si de un dispositivo in-
              ajustar para hacer que el
              sistema se adapte mejor a              dependiente se tratara, y denominaremos unidad. Esto es muy útil
              nuestras necesidades y con-            porque nos permite separar de forma adecuada la información que
              seguir mayor eficiencia.
                                                     tengamos en el sistema, para tener más de un sistema operativo ins-
                                                     talado en el mismo disco, etc. El comando df nos muestra, de cada
                                                     unidad montada en el sistema, el espacio que se ha utilizado y el que
                                                     está libre. Vamos a interpretar la siguiente salida de df:


    Filesystem                    1k-blocks              Used             Available          Use%          Mounted on

    /dev/hda1                     7787712                421288           6970828            6%            /

    /dev/hdb1                     19541504               5742384          13799120           29%           /info

    /dev/hdc                      664432                 664432           0                  100%          /CD-ROM



                                                     Como podemos ver, por cada partición o dispositivo montado en el
                                                     sistema el comando nos muestra la cantidad de bloques disponibles
                                                     y utilizados. El bloque de disco es una unidad que se utiliza interna-
                                                     mente en los dispositivos de almacenamiento para que el manejo de
                                                     los mismos sea más efectivo. Por defecto, este comando nos enseña
                                                     la información por bloques de 1k, aunque pasándole el parámetro
                                                     “-h” (human readable) lo podríamos ver de forma más amena. La
                                                     primera línea siempre nos muestra la raíz del sistema de ficheros (el
                                                     root filesystem) y después los otros dispositivos. Fijémonos como
                                                     también nos muestra su punto de anclaje (en la última columna), que
ANOTACIONES




                                                     es la carpeta donde deberíamos ir para poder ver su contenido.


                                                     Otro comando muy útil es du, que nos muestra realmente lo que nos
                                                     ocupa un fichero en disco. Para entender claramente qué queremos
                                                     decir con esto, debemos profundizar un poco más en la organización
                                                     interna de los discos y en cómo el sistema operativo los manipula.
                                                     Tal como decíamos anteriormente, por razones de eficiencia el siste-
                                                     ma operativo divide el espacio del disco en pequeños trozos llama-

                                              48
Sistema operativo GNU/Linux básico                           © FUOC • 71Z799002MO
                                                                                        ©




dos bloques. El tamaño del bloque es configurable y generalmente
depende del tamaño del disco, aunque también lo podemos confi-
gurar para adaptarlo mejor a nuestras necesidades. Cada vez que
queremos añadir un nuevo archivo, el sistema operativo le asigna un
bloque. De este modo, al leer u operar sobre él, el operativo puede
leer directamente todo un bloque (del tamaño configurado) en un
solo paso. Cuando el fichero ocupa más de un bloque, se le asignan
más, intentando que queden lo más juntos posible, de modo que se
puedan leer consecutivamente e incrementando, así, la velocidad de
lectura. El único inconveniente de este sistema es el desaprovecha-
miento que se hace de los bloques cuando los ficheros son muy pe-
queños, ya que si un determinado archivo no ocupa todo el bloque,
el espacio restante no se puede aprovechar para ningún otro. De to-
dos modos, este tipo de organización es el que utilizan todos los sis-
temas de ficheros existentes, ya que es lo más rentable para
aprovechar el disco duro. El comando du, pues, nos muestra el nú-
mero de bloques que realmente utiliza un determinado archivo en el
disco.


Para saber los parámetros que tenemos configurados en nuestras
                                                                                Contenido
unidades de disco formateadas con ext2 o ext3, podemos utilizar el              complementario
comando dumpe2fs, pasándole la partición concreta. Veremos
                                                                                 La desfragmentación de un
cómo hay multitud de opciones diferentes que nos permiten ajustar                disco no es más que la reor-
muy bien el comportamiento del mismo (en el manual encontrare-                   ganización de los bloques
                                                                                 de los ficheros para que
mos qué significa cada opción). De todos modos, una vez hayamos                  queden en lugares consecu-
formateado una partición, ya no podremos modificar casi ninguna                  tivos y su acceso sea más
                                                                                 rápido. En los sistemas de
de estas opciones. Si quisiéramos cambiarlas, deberíamos copiar
                                                                                 ficheros que utilizamos con
toda la información de la partición, formatear de nuevo y volver a               GNU/Linux no hace falta
copiar los archivos originales.                                                  desfragmentar los discos
                                                                                 (aunque hay programas al
                                                                                 efecto) porque el sistema se
Las funciones del núcleo que se encargan de la gestión de ficheros               encarga automáticamente
                                                                                 de su buena organización.
utilizan una serie de métodos para agilizar los procesos de lectura y
                                                                                                           ANOTACIONES


escritura de los mismos. Uno de ellos es la utilización de una caché
de disco, de forma que no se haya de estar constantemente leyendo
y escribiendo en el dispositivo físico, que resulta un proceso lento y
costoso. Lo único que hace el mecanismo de caché es mantener una
copia del fichero con el que se está trabajando en la memoria RAM
(mucho más rápida), de modo que el proceso sea transparente para
el usuario (la copia a disco se realiza según algún tipo de política im-
plementada en el núcleo). El único problema de esta gestión es que
si tenemos un corte en la alimentación y no hemos cerrado correcta-

                                                                           49
© FUOC • 71Z799002MO
  ©                           Software libre



                                mente el sistema, es posible que algunos ficheros no se hayan podi-
                                do guardar en el disco físico y tengamos alguna inconsistencia en el
                                sistema de ficheros. El programa fsck comprueba y arregla un sis-
                                tema de ficheros que haya quedado en este estado. Aunque lo po-
                                demos ejecutar cuando queramos, generalmente el mismo sistema
                                operativo lo ejecuta cuando en el proceso de arranque detecta que
                                el sistema no se cerró adecuadamente (antes de apagar el ordena-
                                dor, debemos ejecutar el comando shutdown, que se encarga de
                                lanzar todos los procesos necesarios para que los programas aca-
                                ben, se desmonte el sistema de ficheros, etc.). En este sentido, el sis-
                                tema de ficheros ext3 es más eficaz que su predecesor, ya que el
                                journaling le permite recuperar más información de los ficheros per-
                                didos y más rápidamente.


                                Naturalmente, si los ficheros que tratamos en nuestro sistema son
                                muy críticos y no podemos, en ningún caso, permitirnos el hecho de
                                perderlos, también podemos configurar el operativo para que no uti-
                                lice el sistema de caché de disco. De todos modos, es muy recomen-
                                dable utilizar este mecanismo porque incrementa mucho el
                                rendimiento del sistema. Si en algún momento nos interesa sincroni-
                                zar la información de la caché de disco con el disco físico, podemos
                                utilizar el comando sync. Finalmente, también podemos comprobar
                                la integridad física de una partición utilizando el comando bad-
                                blocks, que lleva a cabo un chequeo sobre el dispositivo indicado
                                para comprobar que no haya ninguna zona dañada.


                                La mayoría de los comandos expuestos en esta sección necesitan de
                                permisos especiales para ejecutarse, de forma que sólo el root podrá
                                utilizarlos.
ANOTACIONES




                                 2.6. Operaciones con comandos



                                2.6.1. Redireccionamientos

                                Una vez hemos aprendido a utilizar algunos de los comandos del sis-
                                tema, es muy probable que en algunos casos nos interese utilizarlos
                                de forma simultánea para agilizar las acciones que queremos reali-
                                zar. Una operación muy interesante consiste en poder coger la salida

                         50
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                                 ©




de un comando para que sirva de entrada a otro y procesarla ade-
cuadamente. El sistema operativo utiliza un mecanismo de pipes (tu-
berías), que nos permite redirigir las salidas de cualquier comando
o programa hacia donde queramos. Su funcionamiento es muy sim-
ple: se trata de poner el carácter “|” entre los comandos, de manera
que la salida del primero sirve como entrada para el segundo. Va-
mos a verlo con un ejemplo: al escribir el comando “echo
campo1:campo2:campo3:campo4”, lo único que conseguiríamos
sería que por pantalla nos apareciera “campo1:campo2:campo3:
campo4”. Si de esta salida sólo quisiéramos coger el “ campo3”, po-
dríamos redirigirla con un pipe hacia el comando cut, para que se-
leccione únicamente el campo que nos interesa de la siguiente manera:
“echo campo1:campo2:campo3:campo4 | cut -d: -f 3”. En la
siguiente figura podemos ver este ejemplo de forma gráfica:




Naturalmente, podemos conectar tantos pipes como necesitemos
para realizar acciones más prácticas que la que acabamos de ver.
Otro tipo de redireccionamientos muy prácticos son aquellos que es-
                                                                                                 ANOTACIONES


tán relacionados con los ficheros. Este tipo de redireccionamiento
nos permite coger toda la salida de un comando o programa y guar-
darla en un fichero utilizando el carácter “>”, igual que hacíamos
con “|”. Por ejemplo, si queremos guardar en un nuevo fichero todo
lo que vayamos escribiendo hasta apretar CTRL+C, podríamos utili-
zar lo siguiente: “cat > prueba.txt”. Con “>>” podemos hacer
exactamente lo mismo, pero en lugar de crear siempre el nuevo fi-
chero, si éste ya existiera, se añadiría la información al final del mis-
mo. Con “<” el redireccionamiento se realiza en sentido contrario,

                                                                            51
© FUOC • 71Z799002MO
  ©                           Software libre



                                de modo que el contenido del fichero que le indicamos se dirigirá ha-
                                cia el comando o programa señalado.


                                Un aspecto muy interesante que debemos conocer es que en siste-
                                mas tipo UNIX se separa la salida normal de un programa con la de
                                los errores. Aunque por defecto las dos salidas están dirigidas a la
                                consola donde se ha ejecutado el programa, podemos manipularlas
                                para que se dirijan hacia donde queramos. Para ver esto de manera
                                práctica, probamos de borrar un fichero que no existe con la siguien-
                                te instrucción: “rm fichero > resultados”. Aunque estamos re-
                                direccionando la salida del comando hacia el fichero de resultados,
                                por pantalla nos aparecerá un mensaje de error indicando que no se
                                ha encontrado el fichero. Esto es debido a que por defecto los redi-
                                reccionamientos sólo aceptan la salida estándar del programa y no
                                la de error, que por defecto también se muestra por pantalla. Para
                                redirigir la salida de error, deberíamos indicar, antes del carácter “>”
                                el número “2”, que es la salida de error (la “1” es la normal). De esta
                                manera, ejecutando “rm fichero 2 > resultados” sí que con-
                                seguiríamos que la salida se redirigiera al archivo de resultados.
                                También podemos guardar la salida normal y la de errores en dos
                                ficheros diferentes: “rm fichero 1> resultados 2> errores”.
                                Si por el contrario quisiéramos que todas las salidas se dirigieran
                                hacia un mismo archivo, podríamos utilizar “>&”. Además, con el ca-
                                rácter “&” podemos encaminar salidas de un tipo hacia otras; por
                                ejemplo, si quisiéramos encaminar la salida de errores hacia la nor-
                                mal, podríamos indicarlo del siguiente modo: “2>&1”.


                                Es importante tener en cuenta que el orden de los redireccionamiento
                                es significativo: siempre se ejecutan de izquierda a derecha.



                                2.6.2. Comandos específicos del bash
ANOTACIONES




                                Aunque algunos de los comandos que hemos visto ya son específicos
                                del bash, este intérprete de comandos dispone de otros que nos pue-
                                den servir para realizar otras muchas operaciones interesantes. Un
                                mecanismo muy útil es el de ejecutar procesos en lo que se llama
                                modo background. Este modo indica sencillamente que el proceso
                                se está ejecutando, pero que el shell nos devuelve la línea de coman-
                                dos para poder seguir ejecutando otros programas. Para indicarle
                                esto al bash, debemos escribir el carácter “&” después del comando

                         52
Sistema operativo GNU/Linux básico                         © FUOC • 71Z799002MO
                                                                                      ©




o programa que vamos a ejecutar. Una vez se ha lanzado el proceso
en modo background, se muestra una línea donde se nos indica el
número de trabajo y PID del proceso lanzado.


Con el comando jobs podemos ver qué procesos están lanzados
en modo background (pasándole el parámetro “-l” también podre-
mos ver su PID). Si quisiéramos pasar uno de estos procesos a modo
foreground (como si lo hubiéramos lanzado desde la línea de co-
mandos sin el carácter “&”), podemos utilizar el comando fg indi-
cando el PID del proceso. También existe bg, que nos envía un
determinado proceso a modo background. Este último es útil cuan-
do, por ejemplo, ejecutamos un programa en modo foreground y lo
pausamos con CTRL+Z. Si después ejecutamos bg indicándole su
PID, el proceso continuará su ejecución en modo background. Tal
como veíamos en secciones anteriores, los procesos también tienen
un jerarquía de padres a hijos. Cuando ejecutamos algún programa
en modo background no estamos interfiriendo en esta jerarquía, de
modo que si salimos de la sesión, todos etos procesos se acabará
porque el padre (el intérprete de comandos desde donde los hemos
lanzado) ya no estaría en ejecución. Si queremos desvincular un pro-
ceso de su padre,podemos utilizar disown.


Otro mecanismo muy útil del bash es la historia de comandos. Es nor-
                                                                               Contenido
mal que utilizando el sistema debamos repetir muchas instrucciones             complementario
escritas anteriormente. Con las teclas del cursor arriba y abajo pode-          El bash nos proporciona in-
mos ir viendo todos los comandos que hemos ido utilizando y repetir             finitud de herramientas
                                                                                para regular cualquier as-
alguno apretando RETURN. También podemos utilizar history, con
                                                                                pecto del intérprete de co-
el cual se mostrarán por pantalla todos los comandos ejecutados, enu-           mandos. En su extenso
merados según su aparición. Escribiendo “!NUM” se ejecutará el que              manual podemos encontrar
                                                                                la documentación necesaria
se corresponda con esta historia. También podemos escribir “!” segui-           para aprender a manipular-
do de las letras iniciales de algún programa ejecutado anteriormente            las correctamente.
y el programa buscará el más reciente para ejecutarlo.
                                                                                                         ANOTACIONES




El bash dispone, asimismo, de teclas de acceso rápido que nos per-
miten ejecutar ciertas acciones sin ni siquiera escribirlas. Algunas de
las más frecuentes son:


• TAB: no es necesario escribir el nombre de un fichero, directorio
   o comando enteramente. Si escribimos los primeros caracteres y
   después apretamos la tecla del tabulador nos acabará de escribir

                                                                          53
© FUOC • 71Z799002MO
  ©                                               Software libre



                                                       el resto. Si hubiera más de una coincidencia nos mostraría las di-
                                                       ferentes posibilidades.


                                                    • CTRL+L: limpia la pantalla (igual que el comando clear).


                                                    • SHIFT+REPÁG: enseña media pantalla anterior.


                                                    • SHIFT+AVPÁG: enseña media pantalla posterior.


                                                    • CTRL+W: elimina la última palabra escrita.


                                                    • CTRL+T: intercambia el orden de los últimos caracteres.


                                                    • CTRL+U: borra todos los caracteres anteriores al cursor.


                                                    • CTRL+D: sale del intérprete de comandos (equivalente a hacer un
                                                       logout).


                                                    • ulimit es un comando que nos permite configurar algunos de
                                                       los aspectos internos relacionados con el bash. Por ejemplo, per-
                                                       mite indicar la cantidad de memoria que puede utilizar el intér-
                                                       prete de comandos, el número máximo de archivos que se
                                                       pueden abrir, etc. Este comando puede servirnos para restringir
                                                       un poco las acciones que pueden hacer los usuarios de nuestro
                                                       sistema (en caso de administrar servidores con muchos usuarios).



                                                    2.6.3. Shell scripts con bash

                                                    Los shell scripts son ficheros donde escribimos una serie de coman-
        Contenido
        complementario                              dos (cualquiera de los que hemos visto en este capítulo) para que
                                                    sean ejecutados. Aunque su sintaxis puede llegar a ser muy compleja
              El comando fc nos permite,
ANOTACIONES




              igual que los shell scripts,          y tendríamos que entrar en aspectos de programación para enten-
              escribir una serie de coman-          derla claramente, en esta sección explicaremos de forma resumida
              dos para que se ejecuten
              pero sin tener que guardar            algunas de sus características esenciales para que podamos enten-
              el archivo.                           derlos y utilizarlos mínimamente (si queremos profundizar más en
                                                    ellos, podemos recurrir al manual del bash). La primera línea del
                                                    shell script debe especificar el intérprete de comandos que se utiliza:


                                                    #!/bin/bash



                                             54
Sistema operativo GNU/Linux básico                 © FUOC • 71Z799002MO
                                                                              ©




Después de esta línea ya podemos empezar a escribir los comandos
que queremos ejecutar, uno en cada línea. Como en todo lenguaje
de programación, podemos utilizar variables, estructuras condicio-
nales y bucles. Para declarar una variable utilizaremos la siguiente
sintaxis:


nombreVariable=contenido


Si el contenido es una cadena de caracteres, debemos ponerlo entre
comillas, si es un número, no hace falta poner nada y si queremos
guardar en la variable la salida de un comando, deberíamos ponerlo
entre caracteres. Para referirnos al contenido de la variable en otras
instrucciones, siempre debemos preceder al nombre con el carácter
“$”. Para las instrucciones condicionales podemos utilizar las si-
guientes estructuras:


if condicion; then
     instrucciones
else
     instrucciones
fi


donde condición puede hacer referencia a un archivo, realizar al-
guna operación de comparación aritmética (entre caracteres “
                                                           ((
))”), etc. De especial utilidad es el comando test, que nos permite
hacer comprobaciones de archivos, directorios, etc. y nos devuelve
un booleano. De este modo, por ejemplo, si quisiéramos realizar
una acción u otra según si existiera un determinado archivo, podría-
mos utilizar la siguiente estructura:


if test -f /etc/inittab; then
   echo “El fichero inittab existe.”
                                                                                              ANOTACIONES



else
     echo “El fichero inittab NO existe.”
fi


Otra estructura condicional es la de selección:


case palabra in
   caso1)

                                                                         55
© FUOC • 71Z799002MO
  ©                                         Software libre



                                                     instrucciones
                                                     ;;
                                                caso2)
                                                     instrucciones
                                                     ;;
                                              *)
                                                     instrucciones
                                              esac


                                              En esta estructura se compara palabra con caso1, caso2, etc.,
    Contenido
    complementario                            hasta encontrar la que coincida, en la que se ejecutarán las instruc-
                                              ciones del caso. Si no se encontrara ninguna, se pasaría a la sección
        Para escribir comentarios
        en los shell scripts podemos          “*)”, que es opcional. Esta estructura puede irnos muy bien cuando,
        utilizar el carácter “#” se-          por ejemplo, queramos que un determinado script haga unas accio-
        guido del comentario que
        queramos. Éste será válido            nes u otras según el parámetro que le pasemos. Los parámetros los
        hasta final de línea.                 podemos referenciar a partir de “$1” para el primero, “$2” para el
                                              segundo y consecutivamente. Para los bucles podemos utilizar algu-
                                              na de las siguientes estructuras:


                                              #BUCLE TIPO FOR
                                              for i in lista; do
                                                   instrucciones
                                                   done
                                              #BUCLE TIPO WHILE
                                              while condición; do
                                                   instrucciones
                                              done


                                              Naturalmente, antes de poder ejecutar un shell script debemos dar
                                              el permiso de ejecución al fichero correspondiente (comando chmod
                                              750 nombreFichero).
ANOTACIONES




                                       56
Sistema operativo GNU/Linux básico                © FUOC • 71Z799002MO
                                                                            ©




 3. Taller de Knoppix




 3.1. Introducción


Este taller pretende llegar a ser vuestra primera experiencia con
un entorno UNIX. Por esta razón, su desarrollo es guiado paso a
paso, dejando, por supuesto, la puerta abierta a los más curiosos
para que investiguen por cuenta propia. Con él se pretende mos-
trar de forma práctica todo lo que se ha expuesto hasta ahora de
forma teórica.


Todo el taller puede desarrollarse sobre cualquier PC, ya que el
riesgo de dañar la información que podemos tener es mínimo. Se
ha escogido esta distribución porque para arrancarla no se re-
quieren conocimientos previos del sistema operativo, y porque,
una vez detenido el sistema, no deja rastro, a no ser que nosotros
lo forcemos (KNOPPIX, por defecto, no monta en el sistema los
discos duros, así que nuestros datos están a salvo), en el ordena-
dor por donde se ha hecho correr. Obviamente, si se dispone de
un sistema operativo tipo UNIX, se puede usar para hacer el se-
guimiento del taller.


El hecho de ser una distribución arrancable (bootable) desde un CD-
ROM y no dejar rastro en el ordenador donde se ha ejecutado, una
vez ha terminado el proceso de parada, hace que, aun estando ba-
sado en Debian, el sistema de ficheros no siga lo que marca la De-
bian Policy al respecto. No obstante, estas diferencias no afectarán
                                                                                            ANOTACIONES



al desarrollo del taller, y, todo lo que aprendamos será válido para
los posteriores. Además, es bueno que desde el principio nos acos-
tumbremos a trabajar con distintas distribuciones, y aprendamos a
distinguir entre lo que es común a todos los sistemas basados en
UNIX y lo que es propio de cada distribución.


Antes de empezar sólo un consejo: adelante con nuestras propias ini-
ciativas, intentemos responder nosotros mismos a nuestras inquietu-

                                                                       57
© FUOC • 71Z799002MO
  ©                           Software libre



                                des, consultemos los man, hagamos pruebas, fallemos y analicemos
                                el porqué lo hemos hecho, intentémoslo de nuevo, una y otra vez,
                                hasta conseguir los resultados deseados; es así como se aprende
                                UNIX, sin miedo, sacando partido de los propios fallos.




                                 3.2. Arranque del sistema


                                En primer lugar debemos asegurarnos de que nuestro ordenador
                                arrancará desde el CD-ROM. Para ello, entraremos en la BIOS (Basic
                                Input Output System), generalmente pulsando la tecla Supr durante
                                el proceso de chequeo de la memoria RAM, y comprobaremos que
                                el CD-ROM está configurado como primer dispositivo de arranque;
                                si es así, ya podemos salir de la BIOS sin necesidad de guardar nada
                                y poner el CD-ROM de KNOPPIX en el lector. Si no fuese el caso, ha-
                                ríamos los cambios pertinentes y los salvaríamos antes de salir de la
                                BIOS.


                                Tras reiniciar el ordenador, transcurridos unos segundos nos apare-
                                cerá la pantalla de arranque de KNOPPIX con las siguientes líneas
                                en la parte inferior:


                                F2 for help
                                boot:


                                Podemos pulsar la tecla F2 para entrar en la pantalla donde se nos
                                muestran las opciones que acepta KNOPPIX para arrancar. Podría-
                                mos, por ejemplo, arrancar con teclado español y lengua castellana
                                para la interacción, con GNOME como Windows manager y activar
                                el scroll wheel del ratón; para hacerlo, bastaría con teclear en la lí-
ANOTACIONES




                                nea de comandos ( oot:) lo siguiente “knoppix lang=es gnome
                                                b
                                wheelmouse”. Pero no es el caso; el ejemplo anterior era sólo para
                                mostrar la potencia de KNOPPIX; nosotros, después de insertar en la
                                disquetera un disquete nuevo formateado –sobre el que daremos
                                nuestros primeros pasos en Linux, garantizando así el resto de infor-
                                mación que podamos tener en nuestros discos duros– sólo escribire-
                                mos “knoppix 2” y pulsaremos INTRO para arrancar el sistema en
                                modo texto.

                         58
Sistema operativo GNU/Linux básico                © FUOC • 71Z799002MO
                                                                            ©




Inicialmente, el teclado está configurado para EUA (us), así que al-
gunos caracteres no se corresponden con el teclado español; esto lo
arreglaremos en seguida; aun así, puede ser de interés saber dónde
se encuentran algunos caracteres us en el teclado español: “=” está
en la tecla <>, “/” en -_ y “-” en la tecla ’?.


Una vez pulsado INTRO, KNOPPIX empezará a cargar el sistema
operativo, devolviendo por pantalla algunos de los resultados de los
tests que va ejecutando para la autoconfiguración.


Una vez terminado este proceso, se obtendrá la línea de comandos
root@tty1[/]#:


Welcome to the KNOPPIX live Linux-on-CD!


Found SCSI device(s) handled by atp870u.o.
 Accessing KNOPPIX CD-ROM at /dev/scd0...
Total memory found: 515888 kB
Creating /ramdisk (dynamic size=407928k) on /dev/shm...Done.
Creating directories and symlinks on ramdisk...Done.
Starting init process.
INIT: version 2.78-knoppix booting
 Processor 0 is AMD Athlon(TM) XP 2100+ 1732MHz, 256 KB Cache
 APM Bios found, power management functions enabled.
 USB found, managed by hotplug.
 Enabling hotplug manager.
Autoconfiguring devices...                           Done.
 Mouse is Generic 3 Button Mouse (PS/2) at /dev/psaux
 Soundcard: CM8738, driver=cmpci
 AGP bridge detected.
 Video is ATI|Radeon 7500 QW, using XFree86(radeon) Server
 Monitor is LTN 020e, H:31-60kHz, V:55-75Hz
 Using Modes “1024x768” “800x600” “640x480”
                                                                                            ANOTACIONES


Enabling DMA acceleration for: hde.
Scanning for Harddisk partitions and creating /etc/fstab... Done.
 Network device eth0 detected, DHCP broadcasting for IP.
   (Backgrounding)
 Automounter started for: floppy CD-ROM CD-ROM1.
INIT: Entering runlevel: 2
root@tty1[/]#



Ya estamos dentro del sistema. En este caso no ha hecho falta ni
usuario ni password, hemos entrado como root directamente; lo no-

                                                                       59
© FUOC • 71Z799002MO
  ©                           Software libre



                                tamos porque el prompt termina con el carácter “#”. Para cualquier
                                otro usuario distinto del de root, el último carácter sería “$”.




                                 3.3. Paro del sistema


                                Una vez dentro, lo primero que debemos saber, tal como ya se ha re-
                                marcado, es cómo pararlo. Recordemos una vez más que no pode-
                                mos parar el ordenador sin haber detenido antes el sistema operativo.
                                Hay múltiples maneras de hacerlo. Las más comunes son: pulsar la
                                combinación de teclas CTRL+ALT+Supr o mediante el comando
                                halt (hay muchas más, mediante el comando reboot, cambiando
                                de runlevel a 0 o 6, etc.). Una vez hayamos dado la orden al sistema
                                para que se detenga, éste empezará a ejecutar las instrucciones perti-
                                nentes de paro (desmontado de dispositivos, parada de procesos,
                                etc.), y al final de todo este proceso, KNOPPIX expulsará el CD-ROM ,
                                y nos pedirá que pulsemos INTRO para parar el ordenador.




                                 3.4. Configuración del teclado


                                Una vez sabemos cómo parar el sistema y volvemos a estar en él si-
                                guiendo los mismos pasos de arranque anteriores, lo primero que
                                debemos hacer es configurar el mapeo del teclado correctamente.
                                Hay dos formas de hacerlo, manualmente:



                                root@tty1[/]#loadkeys /usr/share/keymaps/i386/qwerty/es.kmap.gz
ANOTACIONES




                                o bien gráficamente con el comando kbdconfig y escogiendo la
                                opción “es         es”.


                                Es importante recordar que siempre tenemos la opción de autocom-
                                pletar pulsando TAB una vez, si sólo hay una opción posible, y que
                                se autocomplete; o dos veces seguidas, si hay más de una opción, y
                                que se nos muestren las posibilidades. Podemos probarlo con el co-
                                mando loadkeys mismo. Tecleamos sólo una “ y pulsamos TAB
                                                                          l”

                         60
Sistema operativo GNU/Linux básico                            © FUOC • 71Z799002MO
                                                                                        ©




una vez, el sistema emite un pitido; y una segunda para obtener lo
siguiente:


root@tty1[/]# l
Display all 143 possibilities? (y or n)


En este caso no queremos que se nos muestren las 143 posibilida-
des. Pulsamos, pues, “n”, añadimos una “o” y repetimos la opera-
ción anterior de pulsar dos veces TAB. Ahora obtenemos un resultado
distinto:


 root@tty1[/]# lo

 loadkeys                locale-gen       lockfile-create      logger         logredo          lookbib

 loadshlib               localedef        lockfile-remove      login          logresolve       lorder

 local                   locate           lockfile-touch       logname        logrotate        losetup

 locale                  lockfile         logdump              logout         look

 root@tty1[/]# lo



Vemos que sólo falta añadir “adk” y volver a pulsar TAB para que
funcione el autocompletado obteniendo:


root@tty1[/]# loadkeys


El autocompletado también sirve para hacer referencia a ficheros y di-
rectorios. Basta con teclear “loadkeys /u” y pulsar TAB para obtener:


root@tty1[/]# loadkeys /usr


y volver a pulsar TAB para obtener:
                                                                                                         ANOTACIONES




root@tty1[/]# loadkeys /usr/


El autocompletado es una herramienta muy útil, no sólo porque aho-
rra teclear, sino porque además sirve para verificar que hemos escri-
to correctamente tanto los comandos, como los directorios y ficheros.
Es una herramienta que, una vez acostumbrados a usarla, su ausen-
cia se hace notar.

                                                                         61
© FUOC • 71Z799002MO
  ©                           Software libre



                                 3.5. Inspección del sistema

                                Una vez tenemos el teclado configurado, podemos proceder a ins-
                                peccionar un poco el sistema. En primer lugar, ¿en qué sitio de la es-
                                tructura de directorios nos encontramos actualmente? Lo podemos
                                saber mediante el comando pwd:


                                root@tty1[/]# pwd
                                /


                                Estamos en la raíz del sistema, lo sabemos por el retorno del coman-
                                do pwd, pero también lo hubiéramos podido saber leyendo la infor-
                                mación que nos da el prompt: “root@tty1[/]#”. Anteriormente ya
                                hemos entendido el significado del carácter “#”, conozcamos ahora
                                el resto de información que éste nos da:


                                “root”, en este campo aparece el nombre de usuario, root en este
                                caso, información un tanto redundante, pues de la misma manera
                                indica el carácter “#”, pero para el resto de usuarios es interesante.


                                Después del carácter “@”, que simplemente sirve para separar cam-
                                pos, hay “tty1”, este campo nos indica en qué terminal nos encon-
                                tramos, y es que, tal como ya se ha dicho, Linux es multiusuario y
                                multiproceso; así pues, no es de extrañar que podamos acceder al
                                sistema desde varios terminales. Concretamente KNOPPIX ofrece,
                                por defecto, cuatro terminales, a los que podemos acceder mediante
                                las combinaciones de teclas ALT+F1 (tty1), ALT+F2 (tty2), ALT+F3
                                (tty3) y ALT+F4 (tty4); esto es extremadamente útil, ya que nos per-
                                mite tener hasta cuatro sesiones de trabajo, pudiendo, por ejemplo,
                                estar probando un comando en una, en otra tener el man del co-
                                mando en cuestión para ir leyendo sus opciones, mientras que en
ANOTACIONES




                                otra podemos tener un editor abierto para ir tomando nota de lo que
                                vamos haciendo (muchas distribuciones ofrecen seis terminales
                                modo texto, reservando el séptimo para el terminal gráfico; en KNO-
                                PPIX el terminal gráfico, si se ha habilitado, y no es nuestro caso, se
                                hallaría en el quinto terminal). Así pues, probamos la combinación
                                ALT+F2, observamos ahora que en el campo que estamos estudian-
                                do aparece “tty2”, y ejecutamos un comando, por ejemplo man
                                man, para leer el man de la aplicación man.

                         62
Sistema operativo GNU/Linux básico                         © FUOC • 71Z799002MO
                                                                                      ©




De momento la dejamos ahí y volvemos a la tty1, y comprobamos
que todo está como lo habíamos dejado.


Finalmente, y siguiendo con la interpretación del prompt, antes del
campo ya conocido “#”encontramos “[/]”: aquí se nos indica el di-
rectorio actual, el raíz en este caso, tal y como nos había informado el
comando pwd. La diferencia radica en que el prompt sólo nos informa
del directorio actual, mientras que pwd nos devuelve la ruta completa.


Podemos ahora listar los contenidos del directorio en el que estamos.
Para hacerlo, utilizaremos el comando ls, primero sin pasarle ningu-
na opción, y después dos para indicarle que nos devuelva informa-
ción más detallada (normalmente las opciones van precedidas de “-”,
aunque hay comandos que no lo exigen, y una vez puesto el “-” se
pueden concatenar como se hace en el ejemplo):



root@tty1[/]# ls

KNOPPIX bin boot CD-ROM dev etc home lib mnt opt proc
ramdisk sbin tmp usr var

root@tty1[/]# ls -la
total 45

drwxr-xr-x         9             root          root          1024 Mar 2 18:37 .
drwxr-xr-x         9             root          root          1024 Mar 2 18:37 ..

drwxr-xr-x         20            root          root          4096 Jan 18 18:05 KNOPPIX
lrwxrwxrwx         1             root          root          12 Jan 18 17:58 bin -> /KNOPPIX/bin

drwxr-xr-x         9             root          root          1024 Mar 2 18:37 .
lrwxrwxrwx         1             root          root          13 Jan 18 17:58 boot -> /KNOPPIX/boot
dr-xr-xr-x         5             root          root          2048 Jan 4 03:34 CD-ROM

drwxr-xr-x         3             root          root          29696 Mar 2 17:58 dev
drwxr-xr-x         139           root          root          6144 Mar 2 17:49 etc

lrwxrwxrwx         1             root          root          13 Mar 2 18:37 home -> /ramdisk/home
                                                                                                      ANOTACIONES



lrwxrwxrwx         1             root          root          12 Jan 18 17:58 lib -> /KNOPPIX/lib

drwxr-xr-x         13            root          root          1024 Mar 2 17:38 mnt
lrwxrwxrwx         1             root          root          12 Jan 18 17:58 opt -> /KNOPPIX/opt

dr-xr-xr-x         30            root          root          0 Mar 2 18:37 proc
drwxrwxrwt         4             root          root          80 Mar 2 18:37 ramdisk

lrwxrwxrwx         1             root          root          13 Jan 18 17:58 sbin ->/KNOPPIX/sbin
lrwxrwxrwx         1             root          root          8 Jan 18 17:58 tmp-> /var/tmp

lrwxrwxrwx         1             root          root          12 Jan 18 17:58 usr -> /KNOPPIX/usr


                                                                           63
© FUOC • 71Z799002MO
  ©                               Software libre



                                    Fijémonos en los distintos colores con los que se nos muestran los resul-
                                    tados (podemos observar los colores citados en nuestro PC a medida
                                    que vayamos progresando en el taller de Knoppix): azul marino para los
                                    directorios; magenta para los enlaces simbólicos, cuyo destino se nos
                                    muestra después de la combinación de caracteres “->”; verde para los
                                    scripts y ejecutables (aunque, obviamente, en el directorio raíz no espe-
                                    ramos encontrar ninguno de ellos, ya que, tal como hemos visto, en
                                    UNIX el orden dentro del sistema de ficheros es muy rígido), etc.


                                    Entremos en algún directorio donde seguro que encontraremos eje-
                                    cutables, por ejemplo /usr/bin/ (para hacerlo, ejecutemos “cd /
                                    usr/bin/”). El directorio /usr/ es en realidad un enlace simbó-
                                    lico sobre /KNOPPIX/usr/; podríamos, pues, acceder a sus conte-
                                    nidos entrando en él directamente mediante el comando cd, o bien
                                    seguir mediante el mismo comando el destino real. Sin embargo, es-
                                    cogemos la primera opción, pues cuando nos encontremos en un sis-
                                    tema UNIX instalado en un disco duro este directorio será un
                                    directorio real:


   root@tty1[bin]# ls -la

   total 171831
   drwxr-xr-x            2 root            root          311296 Jan 18 18:04 .

   drwxr-xr-x            14 root           root          2048 Aug 17 2002 ..
   -rwxr-xr-x            1 root            root          5380 Apr 1 2002 411toppm

   -rwxr-xr-x            1 root            root          1649 Sep 15 20:36 822-date
   -rwxr-xr-x            1 root            root          1971 Jun 5 2002 AbiWord

   .
   .

   .
   -rwxr-xr-x            1 root            root          17992 Sep 16 22:34 zsoelim

   -rwxr-xr-x            1 root            root          966 Sep 4 13:53 zxpdf
ANOTACIONES




                                    Probablemente no hayamos podido ver más que las últimas líneas
                                    de las que han cruzado la pantalla. Podemos visualizar algunos re-
                                    sultados más pulsando Shift+RePág para retroceder en listado y
                                    Shift+AvPág para avanzar; aun así, el búffer del terminal tiene un lí-
                                    mite, y probablemente tampoco podremos visualizar, mediante esta
                                    técnica, toda la información devuelta por el comando ls. Debemos,
                                    pues, recurrir a otras técnicas, el redireccionamiento de la salida (en

                            64
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                                ©




este caso sobre un fichero) o el uso de pipes “|” y paginadores ( less
en este caso, que usa las teclas RePág y AvPág para desplazar el con-
tenido mostrado por pantalla, y la tecla “q” para salir). Utilizaremos
esta última, ya que no nos interesa para nada guardar un listado del
contenido de un directorio, aprovecharemos, asimismo, para poner
en práctica otra utilidad que nos ahorrará teclear: pulsando los cur-
sores de arriba y abajo podemos desplazarnos por todas las líneas
de comandos que hemos pasado al sistema; así pues, para obtener
la línea deseada, “ls -la | less”, bastará con pulsar una vez el
cursor de arriba y añadir “| less”.


less es un paginador muy potente que KNOPPIX, y la mayoría de
distribuciones, usa para mostrar los contenidos de los man (aunque,
como la mayoría de servicios en Linux, lo podemos configurar a
nuestro gusto). Así pues, podemos hacer un “man less” para infor-
marnos un poco sobre este comando, y de paso irnos acostumbran-
do a la morfología de esta ayuda. Obviamente, ya que estamos bajo
less, para salir de man basta con pulsar la tecla “q”.


Fijémonos en que en todos los listados de contenidos de directorios
que hemos ido haciendo siempre aparecen, al principio de todo, dos
directorios un tanto especiales: “.” y “..”; al crear directorios, éstos
son creados automáticamente por el sistema como subdirectorios del
directorio creado, y contienen información muy especial: “ hace
                                                          .”
referencia al propio directorio (de modo que, si hacemos, por ejem-
plo, un “ls -la . ”,obtendremos la misma información que hacien-
do un “ls      -la”) y “..” hace referencia al directorio padre
(haciendo un “ls -la ..” obtendremos el listado de contenidos del
directorio padre).


                                                         Actividad

         5. Hacer un man del comando ls y entender qué fun-
                                                                                                ANOTACIONES



            ciones tienen los parámetros “-a” y “-l”.


¿Recordamos dónde estamos dentro del sistema de ficheros? ¿No?
Pues el comando pwd nos lo recordará. Volvamos al directorio raíz.
Hay básicamente dos formas de hacerlo, y otra especial para este
caso; de cualquier manera, todas se basan en el uso del comando
cd, diferenciándose entre ellas por el argumento que le pasamos en
cada uno de los casos. El primer modo de ir es volviendo a los direc-

                                                                           65
© FUOC • 71Z799002MO
  ©                           Software libre



                                torios padre paso a paso, mediante “cd ..” (atención, el sistema no
                                entiende “cd..”, ya que interpreta que estamos intentando ejecutar
                                un comando llamado “cd..”, que no existe), iterativamente hasta
                                llegar al directorio raíz (lo veremos en el prompt). La segunda es más
                                eficaz, ya que con una sola línea de comandos conseguiremos nues-
                                tro propósito, ir al directorio deseado, pasándolo como argumento
                                al comando cd, “cd / ” en este caso; esta segunda opción es mucho
                                más potente, ya que permite pasar directamente a directorios que
                                pertenecen a distintas ramas, podríamos, por ejemplo, haber hecho
                                “cd /etc/rcS.d/” (la última barra es opcional) para ir a este di-
                                rectorio, estando en /usr/bin/. Como hemos dicho, para este
                                caso hay una tercera opción para conseguir el mismo fin y con va-
                                riaciones: se trata de ejecutar cd sin pasarle ningún argumento, y
                                nos situaríamos directamente en la raíz del sistema, ya que éste es,
                                en el caso de KNOPPIX (caso excepcional y un tanto peculiar, ya que
                                en la mayoría de distribuciones, y según el Filesystem Hierarchy Stan-
                                dard (http://www.pathname.com/fhs), root debe tener un home pro-
                                pio /root), el directorio home de root; una variación de este método
                                es “cd        ”, ya que “ ” es equivalente al home del usuario, el direc-
                                torio raíz en este caso. Aún existe otra opción para volver al directorio
                                raíz, o mejor dicho, para volver al directorio del que venimos, el raíz,
                                ya que habíamos ejecutado “cd /usr/bin”, y que es “cd -”, ya
                                que en “-” se guarda el último directorio donde hemos estado antes
                                del actual.




                                 3.6. Manejo de directorios y ficheros


                                Una vez examinadas diferentes opciones para hacer lo mismo, nos
                                hallamos todavía en el directorio raíz. Podemos aprender ahora a
                                crear directorios y ficheros, moverlos, copiarlos, borrarlos, etc. Lo
ANOTACIONES




                                haremos sobre el disquete que hemos introducido al arrancar
                                KNOPPIX, y que el sistema mismo, al arrancar, lo ha automontado
                                (más adelante aprenderemos cómo montar y desmontar dispositi-
                                vos). Recordemos que en UNIX los dispositivos antes de poderse
                                usar deben ser montados, y que antes de retirar el soporte deben
                                ser desmontados. Este último punto es extremadamente importan-
                                te, ya que si no, la integridad de los datos no está en absoluto ga-
                                rantizada. Podemos, por ejemplo, antes de proceder a trabajar
                                sobre el disquete, intentar retirar el CD-ROM pulsando el botón de

                         66
Sistema operativo GNU/Linux básico                  © FUOC • 71Z799002MO
                                                                              ©




expulsión. ¡Oh, sorpresa!, no se puede; no pensemos que se ha es-
tropeado el dispositivo y menos que lo haya hecho Linux. Simple-
mente sucede que este dispositivo también ha sido montado
automáticamente por el sistema durante el arranque, y que, por
tanto, ha pasado a formar parte de éste; no tendría ningún sentido
que pudiésemos retirar el CD-ROM sin antes informar al sistema;
así pues, éste ha tomado el control de este dispositivo y, entre otras
cosas, ha deshabilitado el botón de expulsión del CD-ROM, preci-
samente con el fin de que accidentalmente éste sea retirado sin an-
tes ser desmontado. No sucede lo mismo con la disquetera: en este
dispositivo la expulsión se hace de forma puramente mecánica, así
que es imposible que el sistema pueda impedir que nosotros expul-
semos el disquete sin informarle antes, pero esto no es en absoluto
recomendable, tal como ya se ha dicho, porque esto puede supo-
ner la pérdida de todos los datos que pudiese contener. Así pues,
mientras no aprendamos a montar y desmontar dispositivos de so-
porte de datos, el disquete debe permanecer en la disquetera desde
que el sistema arranca hasta que está parado, ya que durante el
proceso de parada, entre otras operaciones, se efectuarán las de
desmontado de estos dispositivos. Vayamos al disquete: pero,
¿dónde está?, ¿dónde lo ha montado el sistema? Para responder a
estas preguntas ejecutamos el comando mount sin argumentos ni
opciones adicionales (precisamente éste es el comando que se uti-
liza para montar dispositivos, y umount para desmontarlos):


root@tty1[/]# mount
/dev/root on / type ext2 (rw)
/dev/CD-ROM on /CD-ROM type iso9660 (ro)
/dev/cloop on /KNOPPIX type iso9660 (ro)
/dev/shm on /ramdisk type tmpfs (rw,size=407928k)
none on /proc/bus/usb type usbdevfs (rw,devmode=0666)
automount(pid443) on /mnt/auto type autofs (rw,fd=6,pgrp=443,minproto=2,maxproto=4)
/dev/fd0 on /mnt/auto/floppy type vfat (rw,nosuid,nodev,uid=1000,gid=1000,umask=000)
                                                                                              ANOTACIONES



Este comando, llamado sin argumentos, nos muestra los disposi-
tivos montados en el sistema en el momento de ejecutarlo junto
con alguna información adicional acerca de ellos (esta misma in-
formación se puede encontrar en el fichero /etc/mtab; en con-
secuencia, haciendo un cat “
                           /etc/mtab” conseguiríamos los
mismos resultados). En la segunda línea retornada por el coman-
do ya podemos ver que, efectivamente, el CD-ROM, /dev/CD-
ROM, está montado en el sistema, y además podemos ver que está

                                                                         67
© FUOC • 71Z799002MO
  ©                           Software libre



                                montado sobre el directorio /CD-ROM/. La última línea retornada
                                responde a las preguntas que nos formulábamos anteriormente:
                                el sistema ha montado el disquete, /dev/fd0/, en /mnt/auto/
                                floppy/. Cambiamos pues a este directorio para empezar a tra-
                                bajar sobre el disquete y comprobamos que efectivamente está
                                vacío:


                                root@tty1[/]# cd /mnt/auto/floppy
                                root@tty1[floppy]# ls -la
                                total 8
                                drwxrwxrwx 3 knoppix knoppix 7168 Jan 1 1970 .
                                drwxr-xr-x 3 root    root    0 Mar 3 19:34 ..



                                Creamos nuestro primer directorio, entramos en él y creamos un par
                                de subdirectorios:


                                root@tty1[floppy]# mkdir dir00
                                root@tty1[floppy]# cd dir00/
                                root@tty1[dir00]# mkdir subdir00 subdir01
                                root@tty1[dir00]# ls
                                subdir00 subdir01



                                Entramos en el primer subdirectorio y creamos nuestro primer fi-
                                chero:


                                root@tty1[dir00]# cd subdir00
                                root@tty1[subdir00]# touch file00
                                root@tty1[subdir00]# ls -la
                                total 1
                                drwxrwxrwx 2 knoppix knoppix 512 Mar 3 20:21 .
                                drwxrwxrwx 4 knoppix knoppix 512 Mar 3 20:21 ..
                                -rwxrwxrwx 1 knoppix knoppix       0 Mar 3 20:21 file00



                                En realidad touch no sirve para crear ficheros vacíos, aunque lo hace
ANOTACIONES




                                si el fichero no existe, sino que sirve para cambiar las informaciones
                                relativas a fechas y horas de los archivos. Podemos poner algún con-
                                tenido a nuestro primer fichero y comprobar que efectivamente ha
                                quedado registrado:


                                root@tty1[subdir00]# echo “my fist hello world in Linux” > file00
                                root@tty1[subdir00]# cat file00
                                my first hello world in Linux


                         68
Sistema operativo GNU/Linux básico                          © FUOC • 71Z799002MO
                                                                                       ©




Le añadimos un poco más de texto:


root@tty1[subdir00]# echo “Nice to meet you, we’re gonna be good friends” >> file00
root@tty1[subdir00]# cat file00
my first hello world in Linux
Nice to meet you, we’re gonna be good friends



No olvidemos usar los cursores para ahorrarnos tecleo, ni del autocom-
pletado. Ahora podemos utilizar un editor de texto para crear nuestro
segundo fichero. Para ello usaremos el vi. Recordemos que este editor
tiene dos modos: el de comandos, en el que se entra cuando se arranca,
y el modo de edición. Para entrar en el modo de edición basta con pul-
sar la tecla “i”, y para pasar al modo de comandos hay que pulsar ESC.
Una vez en modo comando “w” para guardar y “q”, para salir (obvia-
mente, vi dispone de muchísimos más comandos, pero por ahora con
estos dos nos basta). Es muy interesante conocer estos comandos bási-
cos de vi, ya que este editor viene en casi todos los paquetes básicos
de instalación de cualquier distribución, y si ésta fallase en algún mo-
mento, nos puede ser útil para modificar algún fichero y proseguir dicha
instalación. Ejecutamos, pues, vi seguido del nombre que queremos
                                                                                Nota
dar a nuestro segundo fichero, pulsamos la tecla “i”, escribimos lo que
                                                                                En sistemas básicos tipo
nos parezca oportuno, pulsamos ESC y “:wq” para guardar y salir. Me-
                                                                                UNIX, si no se cuenta con
diante more, otro paginador, comprobamos que todo ha ido como es-               vi se puede probar si se en-
                                                                                cuentran instalados otros
perábamos:
                                                                                editores de texto más ele-
                                                                                mentales como pueden ser
root@tty1[subdir00]# vi file01                                                  nano, pico, etc.
it seems we’re on the right way, mate!!!
I agree.
˜
˜
˜
:wq
                                                                                                          ANOTACIONES


root@tty1[subdir00]# more file01
it seems we’re on the right way, mate!!!
I agree.



Ahora intentamos borrar nuestro primer fichero. Lo haremos me-
diante el comando rm:


root@tty1[subdir00]# rm file00
rm: remove regular file ‘file00’?

                                                                           69
© FUOC • 71Z799002MO
  ©                           Software libre



                                Lo cierto es que esta pregunta por parte del sistema no nos la espe-
                                rábamos. Pulsamos CTRL-C para cancelar, “n” para no borrar o “ y”
                                para hacerlo. Lo importante ahora es que entendamos por qué el sis-
                                tema nos ha formulado esta pregunta. Si leemos el man del coman-
                                do rm veremos que éste debería borrar el archivo sin hacer ninguna
                                pregunta (recordemos que podemos ejecutar dicho man en otra tty,
                                y que en la tty2 aún tenemos abierto el man de man, si no hemos
                                salido de él mediante “q”, o si no hemos apagado el ordenador des-
                                de que lo invocamos, y proseguir así nuestro trabajo en la tty en que
                                estábamos). Pero fijémonos en la explicación de la opción “-i” de
                                este mismo man. ¿Qué está pasando? Parece como si esta opción es-
                                tuviera activada por defecto. En realidad no es exactamente así, lo
                                que ocurre es que el sistema por defecto ha establecido unos alias;
                                para verlos todos, ejecutemos el comando alias:


                                root@tty1[etc]# alias
                                alias ..=’cd ..’
                                alias cp=’cp -i’
                                alias l=’ls -a --color=auto’
                                alias la=’ls -la --color=auto’
                                alias ll=’ls -l --color=auto’
                                alias ls=’ls --color=auto’
                                alias mv=’mv -i’
                                alias rm=’rm -i’
                                alias where=’type -all’
                                alias which=’type -path’


                                Aquí empezamos a entender muchas más cosas, como por ejemplo
                                por qué el retorno del comando ls es en colores, o que para hacer
                                un “ls -la” basta con teclear la. Y también entendemos por qué,
                                cuando hemos ejectuado el rm anterior, el sistema nos ha pregun-
                                tado si realmente queríamos hacerlo. Mediante alias podemos es-
                                tablecer y modificar el comportamiento por defecto de comandos o
ANOTACIONES




                                incluso crear otros nuevos:


                                root@tty1[subdir00]# alias hi=’echo¨I say hello”’
                                root@tty1[subdir00]# hi
                                I say hello


                                Continuando con el man del comando rm, nos disponemos a leer
                                para qué sirven las opciones -f y -r. La primera sirve para que el
                                comando se ejecute sin mostrar prompt, o lo que es lo mismo, des-

                         70
Sistema operativo GNU/Linux básico                  © FUOC • 71Z799002MO
                                                                              ©




obedeciendo la opción -i, así que, si no habíamos borrado nuestro
primer fichero, podemos hacerlo ahora mediante “rm -f file00”.
La segunda opción fuerza la recursividad, es decir, que la orden se
extienda sobre los posibles subdirectorios y sus contenidos. Estas op-
ciones son comunes a la mayoría de comandos básicos destinados
a la manipulación de directorios y ficheros; así pues, podemos crear
un segundo directorio en la raíz del disquete con todos los contenidos
del primero que hemos creado mediante el comando cp; para ha-
cerlo, debemos acudir a la recursividad:


root@tty1[subdir00]# cp /mnt/auto/floppy/dir00/ /mnt/auto/floppy/dir01 -r


En este caso hemos usado el direccionamiento absoluto –tanto para
especificar el origen como el destino– para realizar la operación; es
decir, hemos indicado, partiendo del directorio raíz, la ruta comple-
ta, tanto para el origen como para el destino. Del mismo modo, po-
dríamos haber utilizado el direccionamiento relativo para especificar
el origen de la operación, su destino o ambas cosas. Cuando usa-
mos el direccionamiento relativo, el origen del direccionamiento es
la posición actual dentro del filesystem. Como en la mayoría de las
ocasiones, el sistema nos ofrece la posibilidad de obtener los mismos
resultados empleando distintos métodos. Se trata de conocer cuantos
más mejor, y saber escoger el más efectivo para cada caso en parti-
cular. Así pues, hubiésemos obtenido el mismo resultado haciendo
“cp ../../dir00/ ../../dir01 -r”, es decir, comunicándole
a cp que el origen es el directorio /dir00/, el cual se encuentra
dos ramas por debajo de nuestra posición actual, y que el destino es
/dir01/, al que también queremos situar dos ramas por debajo
de nuestra posición. Asimismo, hubiese sido perfectamente válida la
línea “cp -r ../ ../../dir02/” para alcanzar los mismos fines.


                                                       Actividad
                                                                                              ANOTACIONES



         6. Explicar el porqué de esta última aseveración.


Ahora podemos descender un subdirectorio, con lo cual nos situare-
mos en /mnt/auto/floppy/dir00/ y podemos copiar el segun-
do fichero que hemos creado en el subdirectorio /subdir00 en este
mismo directorio:


root@tty1[dir00]# cp subdir00/file01.

                                                                         71
© FUOC • 71Z799002MO
  ©                                            Software libre



                                                 Debemos entender completamente el significado y el porqué de la lí-
                                                 nea anterior: en primer lugar especificamos el origen del fichero que
                                                 queremos copiar (también hubiese sido válido, entre muchas otras op-
                                                 ciones, “./subdir00/file00”), y en segundo lugar hay que espe-
                                                 cificar obligatoriamente el destino, siendo éste la posición actual, es
                                                 decir “.”. Mediante un ls podemos comprobar si hemos obtenido el
              Nota
                                                 resultado deseado. Ahora podemos situarnos en el directorio padre,
              Mucho cuidado al ejecutar          donde se halla montado el disquete, y borrar todo lo que hemos ge-
              el comando rm-rf* como
              root ya que puede tener            nerado hasta ahora. Para hacerlo, utilizaremos el wildcard “*” (existe
              consecuencias nefastas.            también el wildcard ?, el cual sirve para un solo carácter, así como dis-
                                                 tintos métodos para especificar rangos de caracteres, y para referirse,
                                                 en general, a más de un fichero o directorio) para ahorrar tecleo:


                                                 root@tty1[floppy]# rm -rf *


                                                                                                           Actividad

                                                          7. Leer el man de rm y entender porqué "rm-rf*" es tan
                                                             peligroso.




                                                  3.7. Administración de usuarios


                                                 Debe alarmarnos el hecho de haber estado realizando todas las ta-
                                                 reas anteriores como root, puesto que ya tenemos muy claro que este
                                                 usuario sólo debe emplearse en caso necesario.


                                                 No obstante, queda justificado, ya que hasta ahora no habíamos te-
                                                 nido ningún contacto directo con un sistema UNIX, y esto nos ha ser-
                                                 vido para familiarizarnos un poco con los comandos básicos y con
                                                 su sistema de ficheros. Ha llegado el momento de empezar a traba-
                                                 jar como hay que hacerlo siempre a partir de ahora, es decir, utili-
ANOTACIONES




                                                 zando la cuenta de root sólo cuando es estrictamente necesario,
                                                 como en el primer paso que daremos a continuación, crear un nuevo
                                                 usuario del sistema y asignarle una cuenta, ya que esta operación
                                                 sólo la puede realizar el root. Procedemos pues a crear un usuario.


                                                 root@tty1[etc]# useradd user00


                                                 Hemos creado nuestro primer usuario, pero el proceso ha sido un
                                                 tanto opaco pues el sistema no nos ha retornado ninguna informa-

                                          72
Sistema operativo GNU/Linux básico                 © FUOC • 71Z799002MO
                                                                             ©




ción respecto a este comando que acabamos de ejecutar. No sabe-
mos pues ni a qué grupo o grupos pertenece este usuario, dónde
tiene éste el home, qué shell se le ha asignado por defecto, etc. Mu-
cha de esta información la encontraremos en el fichero de pas-
swords, /etc/passwd, así que analicemos, por campos, su
contenido:


root@tty1[/]#cd /etc
root@tty1[etc]# cat passwd
root:x:0:0:root:/home/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
.
.
.
partimag:x:104:65534::/home/partimag:/bin/false
user00:x:1001:100::/home/user00:/bin/bash


La información deseada la encontramos en la última línea del fiche-
ro, pues nuestro usuario ha sido el último en añadirse. Analicemos
el contenido de esta línea:


• user00 es el nombre del usuario, que ya conocíamos, ya que lo
    hemos creado nosotros mismos.


• x su password se halla en el fichero de shadow, /etc/shadow.


• 1001 es su número de identificación como usuario (UID).


• No tiene ningún comentario asociado.
                                                                                             ANOTACIONES



• /home/user00 éste es su directorio home, tal como era de espe-
    rar, pues todos los usuarios tienen su home en /home/usuario.


• /bin/bash el shell con el cual el usuario se encontrará al iniciar
    la sesión es el bash, el mismo que hemos utilizado hasta ahora.


La pregunta que nos formulamos inmediatamente ante estas in-
formaciones es relativa al password del usuario. Debemos pues

                                                                        73
© FUOC • 71Z799002MO
  ©                           Software libre



                                consultar el fichero de shadow, ya que así lo indica el fichero /
                                etc/passwd. De paso, introduciremos un concepto nuevo, el de
                                filtro, que en este caso se materializa con el comando grep (ge-
                                neral regular expression processor). Los filtros son herramientas
                                extremadamente potentes y muy usadas en UNIX, y su campo de
                                acción se extiende mucho más allá de lo que comúnmente se en-
                                tiende por filtro. En este caso, pasaremos, mediante un pipe, la
                                salida de cat a grep, para que éste muestre por pantalla aque-
                                llas líneas que contengan la palabra que le pasamos como pará-
                                metro, user00:


                                root@tty1[etc]# cat shadow | grep user00
                                user00:!:12115:0:99999:7:::


                                A partir de ahora no debemos preocuparnos más: el segundo campo
                                nos indica que nuestro usuario no tiene password. Si lo hubiese teni-
                                do, no lo podríamos conocer, pues tal como se ha dicho, los pas-
                                swords se guardan encriptados y la encriptación es unidireccional.
                                Pero esto tampoco debería preocuparnos, ya que root, mediante el
                                comando passwd, puede cambiar el password de cualquier otro
                                usuario. Así pues, lo único que realmente debemos intentar es no ol-
                                vidar el password de root, que tampoco tiene password en este caso,
                                tal como shadow nos indica, aunque si esto sucediera, también tiene
                                solución. Continuemos con nuestra investigación acerca de las pro-
                                piedades de nuestro nuevo usuario. /etc/group nos ayudará a sa-
                                ber exactamente a qué grupos pertenece:


                                root@tty1[etc]# cat group | grep user00
                                root@tty1[etc]# cat group | grep 100
                                users:x:100:knoppix
                                knoppix:x:1000:
ANOTACIONES




                                Con la primera línea de comandos nos preguntamos, con respuesta
                                negativa, si /etc/group tiene alguna referencia explícita a user00
                                (también se podría haber hecho mediante el comando groups,
                                “groups user00”). Con la segunda buscamos el reverso del grupo
                                100, grupo primario de user00 según /etc/passwd, grupo que se
                                llama users en este caso. Así pues, ya podemos afirmar que nuestro
                                nuevo usuario pertenece a un solo grupo, y que éste es user. El fi-
                                chero /etc/group también se puede editar para añadir usuarios

                         74
Sistema operativo GNU/Linux básico                © FUOC • 71Z799002MO
                                                                              ©




a grupos y crear grupos nuevos, pero hay que remarcar que en nin-
gún caso en el campo de usuarios pertenecientes a un grupo en con-
creto se puede poner el nombre de otro grupo con la intención de
añadir todos los usuarios de este último al primero. Pero esta prácti-
ca no es demasiado recomendable, ya que existen comandos espe-
cíficos para trabajar con grupos (newgrp, addgroup, etc.)


Queda sólo una última cuestión a resolver: si listamos los contenidos
de /home/, veremos que el subdirectorio /user00/ no existe. De-
bemos, pues, crearlo y asignarle las propiedades y atributos perti-
nentes manualmente:


root@tty1[etc]#mkdir /home/user00
root@tty1[etc]#chown user00 -R /home/user00
root@tty1[etc]#chgrp users -R /home/user00
root@tty1[etc]# cd /home
root@tty1[home]# ls -la
total 0
drwxr-xr-x    5   root      root      100   Mar   4   08:12   .
drwxrwxrwt    4   root      root       80   Mar   4   08:35   ..
drwxr-xr-x    2   knoppix   knoppix    40   Mar   4   08:35   knoppix
drwxr-xr-x    2   root      root       40   Mar   4   08:35   root
drwxr-xr-x    2   user00    users      60   Mar   4   08:12   user00


                                                               Nota

          El proceso de adición de nuevos usuarios al sistema
          mediante Debian es mucho más sencillo, como se
          verá más adelante. Pero crear uno mediante KNOPPIX
          no ha sido una tarea en balde, pues nos ha servido
          para familiarizarnos con el sistema y aprender co-
          mandos nuevos.


                                                          Actividad

         8. Mediante man, comprender el funcionamiento de
             los comandos chown y chgrp.
                                                                                              ANOTACIONES




Ha llegado el momento de entrar en el sistema como nuevo usuario.
Lo haremos mediante el comando su, el cual abre un proceso hijo
con un login con el usuario que le hayamos pasado. Como root po-
demos utilizar siempre este mecanismo para entrar como otro usua-
rio sin necesidad de conocer su password, ya que al ejecutar su
como root éste no es necesario; además, se da el caso que el usuario
que hemos creado no tiene password, y por tanto éste nunca se pe-

                                                                         75
© FUOC • 71Z799002MO
  ©                                    Software libre



                                         dirá. Pero, si probásemos de ejecutar su en cualquier otra circuns-
                                         tancia sí que se nos pediría el password del usuario:

                                         root@tty1[home]# su user00
                                         su(pam_unix)[4312]: session opened for user user00 by (uid=0)
                                         user00@tty1[home]$



                                         Notemos primeramente el cambio de aspecto del prompt . Hemos de-
                                         jado de ser usuario root, para pasar a ser user00, por lo que hemos
                                         perdido los privilegios de root, hecho que se manifiesta por el cambio
                                         del último carácter del prompt. Podemos acceder ahora a entrar en
                                         nuestro directorio home, creemos un fichero y cambiémosle los atribu-
                                         tos para que tan sólo user00 pueda leerlo, ejecutarlo y escribir en él.
                                         De momento, el permiso de ejecución no tiene mucho sentido para
                                         nosotros, pues no sabemos aún crear ficheros ejecutables, pero es
                                         bueno conocerlo de antemano para cuando se precise de él:


              user00@tty1[home]$ cd
              user00@tty1[user00]$ echo “only user00 can read, write and execute this file.” > user00file
              user00@tty1[user00]$ chmod 700 user00file



                                                                                                 Actividad

                                                  9. Crear un nuevo usuario siguiendo los pasos ante-
                                                    riormente descritos, y comprobar que, efectivamen-
                                                    te, este nuevo usuario no puede ni leer el fichero
                                                    recién creado ni escribir en él.




                                          3.8. Gestión de procesos

                                         UNIX se caracteriza por una excelente gestión de los procesos que se
                                         ejecutan sobre el sistema. En primer lugar debemos aprender a de-
                                         tectar qué procesos están corriendo sobre el sistema y sus particula-
ANOTACIONES




                                         ridades (modo en que corren, recursos que consumen, quién los está
                                         ejecutando, etc.). Ejecutaremos el comando ps (process status) pa-
                                         sándole diversos parámetros para ver cómo inciden estos sobre la in-
                                         formación devuelta por el comando:

                                          root@tty1[/]# ps
                                          PID TTY TIME CMD
                                          481 tty1 00:00:00 bash
                                                   1559 tty1        00:00:00 ps


                                  76
Sistema operativo GNU/Linux básico                 © FUOC • 71Z799002MO
                                                                               ©




Sin argumentos ps nos informa sobre los procesos que corren sobre
el terminal donde se ejecuta; naturalmente el primer proceso siem-
pre corresponderá al shell.


Podríamos mandar ejecutar un proceso en background, sleep, por
ejemplo (proceso que simplemente espera que transcurra el número
de segundos que le pasemos como parámetro para terminar) y ob-
servar el retorno de ps:


root@tty1[/]# sleep 300 &
[1] 1703
root@tty1[/]# ps
  PID TTY           TIME CMD
  481 tty1 00:00:00 bash
 1703 tty1 00:00:00 sleep
 1705 tty1 00:00:00 ps


Podemos ahora preguntarnos por todos los procesos que están co-
rriendo sobre el sistema:


root@tty1[/]# ps aux
USER PID %CPU %MEM             VSZ    RSS    TTY    STAT   START     TIME   COMMAND
root 1    0.4 0.0              72     72     ?      S      15:41     0:07   init [2]
root 2    0.0 0.0              0      0      ?      SW     15:41     0:00   [keventd]
root 3    0.0 0.0              0      0      ?      SWN    15:41     0:00   [ksoftirqd_CPU0]
root 4    0.0 0.0              0      0      ?      SW     15:41     0:00   [kswapd]
root 5    0.0 0.0              0      0      ?      SW     15:41     0:00   [bdflush]
root 6    0.0 0.0              0      0      ?      SW     15:41     0:00   [kupdated]
root 52 0.0 0.0                0      0      ?      SW     15:41     0:00   [kapmd]
root 59 0.0 0.0                0      0      ?      SW     15:41     0:00   [khubd]
root 433 0.0 0.1               1368   616    ?      S      15:41     0:00   pump -i eth0
root 475 0.0 0.1               1316   596    ?      S      15:41     0:00   /usr/sbin/automount
root 481 0.0 0.3               2864   1988   tty1   S      15:41     0:00   /bin/bash -login
                                                                                               ANOTACIONES



root 482 0.0 0.3               2864   1988   tty2   S      15:41     0:00   /bin/bash -login
root 483 0.0 0.3               2856   1952   tty3   S      15:41     0:00   /bin/bash -login
root 484 0.0 0.3               2856   1976   tty4   S      15:41     0:00   /bin/bash -login
root 2086 0.0 0.3              3436   1552   tty1   R      16:06     0:00   ps aux



También puede ser interesante en determinadas situaciones ejecutar
el comando top, el cual nos muestra la actividad de la CPU, el uso
de memoria, etc. de forma interactiva.

                                                                     77
© FUOC • 71Z799002MO
  ©                           Software libre



                                Ahora vamos a arrancar un proceso, detenerlo, y mandarlo a ejecu-
                                tar en background. Para hacerlo, haremos un “sleep 20” y pulsa-
                                remos la combinación de teclas CTRL+Z antes de 20 segundos, para
                                pararlo, jobs para asegurarnos de que efectivamente está parado y
                                conocer su número de identificación, y bg junto a su número de
                                identificación para mandarlo ejecutar en modo background:


                                root@tty1[/]# sleep 20
                                <Ctrl+Z>
                                [1]+ Stopped                    sleep 20
                                intro

                                root@tty1[/]#jobs
                                [1]+ Stopped                    sleep 20
                                root@tty1[/]# bg 1
                                [1]+ sleep 20 &
                                [1]+ Done                       sleep 20
                                root@tty1[/]#


                                Tenemos que, al haber transcurrido los 20 segundos, el proceso ha
                                terminado estando aún en background, y se nos ha informado por
                                pantalla. Podemos comprobar mediante ps que efectivamente no
                                hay ningún proceso corriendo. En este punto, podemos parar un
                                proceso y devolverlo a foreground mediante fg:


                                root@tty1[/]# man ls


                                <Ctrl+z>
                                [1]+ Stopped                    man ls

                                root@tty1[/]# jobs
                                [1]+ Stopped                    man ls
                                root@tty1[/]# bg 1
ANOTACIONES




                                 3.9. Activación y uso del ratón


                                El ratón es una herramienta extremadamente útil para trabajar en
                                modo consola, ya que permite seleccionar un texto y pegarlo (así es
                                como se han capturado todas las entradas y salidas para redactar el
                                texto de este taller, por ejemplo).

                         78
Sistema operativo GNU/Linux básico               © FUOC • 71Z799002MO
                                                                              ©




Por lo tanto, lo primero que haremos es configurar el ratón, y lo ha-
remos con el programa más comúnmente utilizado, el gpm, el cual
automáticamente ya corre en modo background. (Esto es debido a
que gpm es un daemon, termino que se analiza con detalle en sec-
ciones posteriores.)


Hay muchos tipos de ratones, pero los más corrientes son los de tres
botones conectados al ordenador vía puerto serie o vía puerto PS2.
Si tenemos un ratón del primer tipo, ejecutaremos la línea siguiente
(se presupone que el ratón está conectado en el primer puerto serie
del ordenador, si no fuese así, soló habría que cambiar el device
ttyS0 (/dev/ttS0) por ttyS1 (/dev/ttS1) en caso de estar en el
segundo puerto, por ttyS2 para el tercer puerto o por ttyS3 para el
cuarto puerto):


#gpm -m /dev/ttyS0 -t msc


Si lo que tenemos es un ratón conectado al puerto PS2, para activarlo
se usará el mismo procedimiento anterior variando únicamente el
device y el tipo de ratón:


#gpm -m /dev/psaux -t ps2


En principio, después de ejecutar una de las dos líneas de comandos
anteriores, como root, moviendo el ratón deberíamos ver, en todos los
terminales, el indicador de posicionamiento del ratón, y al ejecutar:


$roger@etseisa7:˜$ ps aux | grep gpm


deberíamos obtener una respuesta del tipo
                                                                                              ANOTACIONES




root 182 0.0 0.1 1552 524 ? S Mar11 0:00 /usr/sbin/gpm -m /dev/psaux -t ps2



conforme gpm está corriendo en background.


Si no fuese así, es que nuestro ratón no es estándar. En este caso de-
beremos leer con atención el man de gpm y ejecutar “gpm -t

                                                                         79
© FUOC • 71Z799002MO
  ©                           Software libre



                                help” para tratar de identificar el tipo de ratón que se adapte al que
                                tenemos.


                                Una vez configurado mediante el botón de la izquierda, podemos
                                seleccionar la parte de texto que nos interese, y al pulsar el botón
                                del medio pegaremos el contenido seleccionado en la posición
                                actual del cursor. Si se está acostumbrado a usar el ratón para
                                marcar el posicionamiento del cursor, puede que los resultados
                                que obtengamos no sean precisamente los deseados, pero prac-
                                ticando un poco, enseguida nos acostumbraremos a este modo
                                de operar.


                                Hay que destacar que el contenido del búffer del ratón se conserva
                                al pasar de una tty a otra.



                                                                                        Actividad

                                         10. Sacando provecho del hecho de que el contenido
                                              del búffer del ratón se mantiene entre terminales,
                                              abrir en una sesión de vi y en otra situarse en la
                                              raíz del sistema de ficheros, listar sus contenidos
                                              con detalle, y portar estos datos al editor de texto.
                                              Salvar los contenidos del fichero de texto y mediante
                                              cat comprobar que efectivamente hemos obteni-
                                              do los resultados deseados.




                                 3.10. Otras operaciones


                                Para finalizar este primer taller, ejecutaremos una serie de comandos
ANOTACIONES




                                para seguir el proceso de familiarización con el sistema e ir adqui-
                                riendo recursos para poder solucionar futuros problemas que pue-
                                dan surgir.


                                Debemos informarnos acerca del sistema, el tipo de máquina sobre
                                el que corre, el hardware que tengamos instalado, etc. (los retornos
                                de los comandos que siguen serán, naturalmente, distintos para
                                cada caso en particular):

                         80
Sistema operativo GNU/Linux básico          © FUOC • 71Z799002MO
                                                                  ©




root@tty1[/]# uname -a
Linux Knoppix 2.4.20-xfs #1 SMP Die Dez 10 20:07:25 CET 2002 i686 AMD Athlon(TM) XP
                                                      2100+ AuthenticAMD GNU/Linux
root@tty1[/]# cat/proc/cpuinfo
processor      : 0
vendor_id      : AuthenticAMD
cpu family     : 6
model          : 8
model name     : AMD Athlon(TM) XP 2100+
stepping       : 1
cpu MHz        : 1732.890
cache size     : 256 KB
fdiv_bug       : no
hlt_bug        : no
f00f_bug       : no
coma_bug       : no
fpu            : yes
fpu_exception : yes
cpuid level    : 1
wp             : yes
flags          : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
                 cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow
bogomips       : 3460.30

root@tty1[/]# lspci
00:00.0 Host bridge: VIA Technologies, Inc. VT8367 [KT266]
00:01.0 PCI bridge: VIA Technologies, Inc. VT8367 [KT266 AGP]
00:05.0 Multimedia audio controller: C-Media Electronics Inc CM8738 (rev 10)
00:06.0 RAID bus controller: Promise Technology, Inc. PDC20276 IDE (rev 01)
00:07.0 FireWire (IEEE 1394): Texas Instruments TSB43AB22 1394a-2000 Controller
00:09.0 USB Controller: VIA Technologies, Inc. USB 6(rev 50)
00:09.1 USB Controller: VIA Technologies, Inc. USB (rev 50)
00:09.2 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 51)
00:0d.0 SCSI storage controller: Artop Electronic Corp AEC6712D SCSI (rev 01)
00:0f.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8029(AS)
00:11.0 ISA bridge: VIA Technologies, Inc. VT8233A ISA Bridge
00:11.1 IDE interface: VIA Technologies, Inc. Bus Master IDE (rev 06)
00:11.2 USB Controller: VIA Technologies, Inc. USB (rev 23)
                                                                                  ANOTACIONES


00:11.3 USB Controller: VIA Technologies, Inc. USB (rev 23)
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon 7500 QW

root@tty1[/]# df
Filesystem     1K-blocks      Used       Available    Use%      Mounted on
/dev/root      1971           1516       455          77%       /
/dev/CD-ROM    715744         715744     0            100%      /CD-ROM
/dev/cloop     1837536        1837536    0            100%      /KNOPPIX
/dev/shm       407928         40         407888       1%        /ramdisk
/dev/fd0       1424           56         1368         4%        /mnt/auto/floppy


                                                           81
© FUOC • 71Z799002MO
  ©                           Software libre



                                                                                      Actividad

                                         11. En el directorio virtual /proc/ y en sus subdirec-
                                             torios encontraremos mucha información relativa
                                             a nuestro sistema en ficheros de texto. Situarse en
                                             este directorio, y mediante more o cat explorar
                                             la información de estos ficheros.




                                 3.11. Conclusión

                                Éste ha sido nuestro primer contacto con un entorno UNIX. Ha servi-
                                do un poco para romper el mito de que trabajar en este tipo de sis-
                                temas operativos es complicado y difícil. Es más, ha servido para que
                                empecemos a intuir su potencia y versatilidad. Hemos aprendido a
                                movernos por su sistema de ficheros y a realizar operaciones con és-
                                tos, a buscar información, etc. Todo lo que hemos aprendido hasta
                                ahora nos será de gran utilidad de aquí en adelante, y nos servirá de
                                base para ampliar nuestros conocimientos.


                                Por otra parte, la gran potencia de autodetección y configuración de
                                hardware de KNOPPIX hace que éste nos pueda ser muy útil a la
                                hora de instalar Debian en el próximo taller si surgieran problemas
                                de hardware. Siempre podremos volver a arrancar KNOPPIX y estu-
                                diar cómo ha solucionado éste el problema (básicamente estudiando
                                los archivos de configuración).


                                Como última actividad del taller, podemos volver a arrancar KNOP-
                                PIX en modo gráfico, es decir, sin pasar el parámetro 2 al iniciarlo
                                (una manera de hacerlo puede ser pasando los parámetros ”knoppix
                                lang=es wheelmouse”).
ANOTACIONES




                         82
Sistema operativo GNU/Linux básico                         © FUOC • 71Z799002MO
                                                                                     ©




 4. Instalación de GNU/Linux




 4.1. Introducción

En este capítulo veremos los pasos esenciales que se siguen en la
mayoría de procesos de instalación de GNU/Linux. Aunque cada dis-
tribución tiene su propio entorno de instalación, en todas ellas deben
existir unos pasos básicos. En este capítulo veremos estos pasos, ex-
plicando los conceptos necesarios para superarlos correctamente. Es
importante que antes de instalar un nuevo sistema operativo conoz-
camos adecuadamente los componentes principales que tenemos
instalados en nuestro ordenador para poder configurarlo todo ade-
cuadamente, aun cuando la distribución que utilicemos incorpore
detección de hardware.


Es posible que en un solo disco duro tengamos instalados dos o más
                                                                              Nota
sistemas operativos totalmente independientes. Aunque el proceso
de instalación de otro operativo en el mismo disco (o en otro instala-        Antes de empezar el proce-
                                                                              so de instalación es aconse-
do en el ordenador) no debería interferir con las particiones de los          jable conocer la marca y
demás, es aconsejable hacer copias de seguridad de todos nuestros             modelo de la tarjeta gráfica
                                                                              y de sonido que tenemos
documentos. Sin embargo, si seguimos adecuadamente los pasos
                                                                              instalada, la tarjeta de red,
que detallaremos a continuación es prácticamente imposible perder             la marca, tipo y característi-
información, siempre es recomendable la prudencia y realizar copias           cas del monitor, y cualquier
                                                                              otro hardware especial que
de los archivos que realmente nos importan.                                   tengamos. Generalmente,
                                                                              para la placa base, la CPU
                                                                              y la memoria RAM, no suele
                                                                              ser necesario conocer sus
                                                                              características. Para obtener
 4.2. Arrancando
                                                                              esta información, podemos
                                                                                                         ANOTACIONES


                                                                              recurrir a los manuales en-
                                                                              tregados en la compra del
Generalmente, todas las distribuciones de GNU/Linux proporcionan al-          ordenador o, si tenemos
gún tipo de medio para el arranque del proceso de instalación. Actual-        otro sistema operativo insta-
                                                                              lado, recurrir a él para este
mente se suele proporcionar un CD o DVD de arranque o, en caso de
                                                                              fin (en sistemas WindowsTM
que nuestro ordenador no tenga el lector correspondiente o queramos           lo podemos conseguir a
realizar una instalación remota, se proporciona un disquete de arran-         partir del panel de control).

que. Para empezar con el proceso, debemos introducir el medio incluido
en su dispositivo y arrancar el ordenador, configurando su BIOS o EFI
para que arranque desde la unidad deseada.

                                                                         83
© FUOC • 71Z799002MO
  ©                                                Software libre



                                                     El primer paso del proceso suele ser escoger qué tipo de instala-
                                                     ción queremos realizar. Generalmente, la elección suele ser para
                                                     identificar qué tipo de usuario está instalando el sistema para, se-
                                                     gún éste, proporcionarle más o menos información y dejarle con-
                                                     figurar con más precisión el sistema o no. Si tenemos los
                                                     conocimientos suficientes, es recomendable hacer la instalación
                                                     en modo experto (o similar) para poder adaptar más el sistema a
                                                     nuestras necesidades específicas. En algunas distribuciones, este
                                                     primer paso sirve para seleccionar la versión del núcleo que que-
                                                     remos instalar o para configurar el proceso de instalación en
                                                     modo gráfico, texto, etc. Es imprescindible leer antentamente la
                                                     información que se nos proporciona en esta primera fase para
                                                     poder elegir adecuadamente lo que más se ajuste al destino que
                                                     queramos darle al sistema.


                                                     Seguidamente, la mayoría de distribuciones nos dejan elegir el
        Contenido
        complementario                               tipo de teclado (o configuración similar) que queremos utilizar. Si
                                                     bien los hay de muchas clases diferentes, los más frecuentes son
              Algunas distribuciones de
              GNU/Linux nos permiten                 los qwerty (los primeros caracteres empezando por arriba y la
              realizar la instalación desde          izquierda del teclado), con lo cual deberíamos seleccionar qwerty/
              cualquier medio: CD, DVD,
              FTP, HTTP, disco duro, NFS,            es (Spain).
              etc. También existen métodos
              de instalación que permiten
              arrancar el proceso desde
              otros sistemas operativos.
                                                      4.3. Fraccionando el disco


                                                     Fraccionar el disco duro es una de las partes más críticas de todo el
        Contenido
        complementario                               proceso. Este paso significa dividir el disco duro en varias secciones,
                                                     por lo que cada una de ellas se toma como unidad independiente.
              Aunque hay formas de ins-
              talar GNU/Linux utilizando             Si ya tenemos un sistema operativo instalado en nuestro ordenador,
              el sistema de ficheros de              el disco estará fraccionado en una o varias particiones, pero si el dis-
              otro operativo, no es reco-
              mendable utilizar este tipo            co es nuevo, generalmente no.
ANOTACIONES




              de instalación porque el
              rendimiento del sistema
              baja considerablemente.                Para instalar GNU/Linux debemos disponer de, al menos, una
                                                     partición para él. El hecho de que al modificar el tamaño de una
                                                     partición debemos eliminarla y crearla de nuevo implica perder
                                                     toda la información que tenemos en ella. Por éste y otros motivos,
                                                     existen programas que nos permiten modificar el tamaño de las
                                                     mismas sin tener que eliminarlas. El fips es un programa con
                                                     licencia GPL que nos permite redimensionar nuestras particiones
                                                     formateadas con FAT (para sistemas WindowsTM de la rama no

                                              84
Sistema operativo GNU/Linux básico                          © FUOC • 71Z799002MO
                                                                                       ©




NT) sin perder la información de las mismas. También existen
                                                                               Contenido
otros programas comerciales que nos permiten efectuar este tipo                complementario
de operación con cualquier otro sistema de ficheros, de forma que               Si bien con una o dos parti-
si no queremos perder la información de nuestros sistemas, debe-                ciones es suficiente para po-
remos utilizar alguno de ellos antes de empezar con todo el pro-                der instalar GNU/Linux, es
                                                                                interesante dividir el disco
ceso.                                                                           en más fragmentos y situar
                                                                                ciertos directorios en dife-
                                                                                rentes unidades para poder
Es recomendable que GNU/Linux utilice dos particiones en el disco du-           hacer una gestión más efi-
ro. Una servirá para guardar los ficheros del sistema y la otra para el         ciente de los recursos, evitar
                                                                                caídas del sistema por satu-
swap. El swap es una zona de intercambio entre la memoria RAM del               ración de disco, etc. De to-
ordenador y el disco duro. Sirve cuando el sistema operativo tiene toda         dos modos, estos aspectos
                                                                                los dejaremos para cursos
la memoria RAM ocupada y los programas en ejecución piden más. Es
                                                                                más avanzados de adminis-
en este momento cuando se empieza a utilizar el swap para guardar zo-           tración.
nas de RAM que no se están utilizando, intercambiándolas para que las
aplicaciones no se queden sin memoria disponible. También es posible
prescindir de swap, pero no es recomendable porque el sistema no po-
drá gestionar tan adecuadamente sus recursos; además, al utilizar si-
multáneamente muchas aplicaciones, éstas se quedarán sin memoria
con más facilidad. Aunque el tamaño del swap puede ser tan grande
como queramos, se recomienda que éste sea el doble de la RAM insta-
lada en el ordenador si tenemos 64MB o menos, y igual si tenemos más.
Estos cálculos están basados en pruebas de rendimiento del sistema que
nos demuestran que llega un punto en el que, si las aplicaciones nece-
sitan utilizar demasiada memoria swap, el rendimiento se decrementa
mucho, haciendo que el sistema quede prácticamente saturado (para
                                                                               Contenido
ver qué cantidad de memoria RAM y swap se está utilizando, el sistema          complementario
nos proporciona el comando free).                                               Para los ordenadores perso-
                                                                                nales existen dos clases de
                                                                                discos duros: los IDE y los SC-
Existen varias aplicaciones para fragmentar el disco. Una de las pri-           SI. Las controladoras IDE (In-
meras que apareció fue el fdisk, aunque actualmente existen otras,              tegrated Drive Electronics)
                                                                                son las que llevan la mayoría
como cfdisk, diskDruid, etc. En algunos procesos de instalación
                                                                                de placas base. Con este
se puede escoger cuál queremos utilizar, aunque todas permiten ha-              controlador podemos conec-
                                                                                                            ANOTACIONES



cer exactamente lo mismo cambiando, eso sí, la presentación, el en-             tar dos dispositivos compati-
                                                                                bles (discos, CD, etc.) en
torno, etc. La forma como GNU/Linux identifica los discos es /dev/              cada uno de los dos canales.
hdX para los discos IDE y /dev/sdX para los SCSI, donde en am-                  Las controladoras SCSI (Sma-
                                                                                ll/Smart Computer System In-
bos casos la “X” es una letra, correspondiente con el disco al que
                                                                                terface) permiten hasta 8
nos queramos referir de la siguiente manera:                                    dispositivos y tienen tasas de
                                                                                transferencia más altas, aun-
                                                                                que su precio también es
        dispositivo     significado                                             bastante más elevado que los
        /dev/hda        Maestro del primer canal IDE                            IDE.


                                                                          85
© FUOC • 71Z799002MO
  ©                                                Software libre



                                                           dispositivo     significado
        Contenido
        complementario                                     /dev/hdb        Esclavo del primer canal IDE

              Para guardar la informa-                     /dev/hdc        Maestro del segundo canal IDE
              ción de particiones y el pro-
              grama de arranque, los                       /dev/hdd        Esclavo del segundo canal IDE
              discos tienen una zona de                    /dev/sda        Primer disco de la controladora SCSI
              datos reservada llamada
              MBR (Master Boot Record).                    /dev/sdb        Segundo disco de la controladora SCSI

                                                           ...


                                                     Si tenemos más de un disco en nuestro ordenador, antes de entrar
                                                     en el programa de fraccionamiento podremos elegir sobre cuál de
                                                     ellos operar. Cuando creamos una partición se nos preguntará si
                                                     debe ser primaria o lógica. En un disco duro podemos tener hasta
                                                     cuatro particiones primarias y hasta 64 lógicas. Si no necesitamos
                                                     más de 4 particiones, podemos escoger cualquiera de los dos ti-
                                                     pos. Si necesitamos más, deberemos tener en cuenta que las ló-
                                                     gicas se sitúan dentro de una primaria (hasta un máximo de 16
                                                     para cada una), de forma que no podemos tener 4 particiones
                                                     primarias creadas y después añadir otras lógicas. En este caso,
                                                     deberíamos crear 3 primarias y hasta 16 lógicas en la cuarta par-
                                                     tición primaria. En la siguiente figura podemos ver un ejemplo de
                                                     manera gráfica:
ANOTACIONES




                                              86
Sistema operativo GNU/Linux básico                          © FUOC • 71Z799002MO
                                                                                       ©




Cuando creamos una partición, debemos indicar qué sistema de fi-
                                                                               Contenido
cheros utilizaremos para ésta (Linux ext2, Linux ext3 o Linux                  complementario
swap). Una vez realizadas las particiones, guardaremos la configu-
                                                                                De todas las particiones de
ración y debemos indicar al proceso de instalación dónde queremos               un disco duro podemos ele-
situar la raíz del sistema de ficheros ( oot filesystem ) y el swap del
                                       r                                        gir una para que sea la ac-
                                                                                tiva. Este flag sirve para
sistema. Una vez efectuados estos pasos, ya podremos continuar con              indicar a la BIOS o la EFI del
el resto del proceso de instalación.                                            sistema cuál es la partición
                                                                                que debe iniciar si en la
                                                                                MBR no encuentra ningún
                                                                                programa de arranque.

 4.4. Instalación de módulos


Los módulos del núcleo son partes de software especializadas en al-
guna tarea concreta. Al haber toda clase de dispositivos diferentes y
decenas de funciones para múltiples sistemas de ficheros, operacio-
nes de gestión en red, etc., se decidió no incluir de forma estándar
todos estos drivers y funciones. En las primeras versiones de Linux,
cuando el núcleo que teníamos no incluía alguna función, debíamos
recompilarlo completamente y generar uno nuevo adaptado a nues-
tras necesidades. Con la incorporación de los módulos, todo este
proceso no es necesario y podemos seleccionar directamente las fun-
ciones que necesitamos.


Generalmente, las distribuciones ya incorporan centenares de
módulos diferentes para el núcleo Linux. Se suelen organizar en
diferentes categorías para facilitar su localización y, normalmen-
te, con el mismo nombre del módulo o la breve descripción que
se facilita con el mismo ya sabremos para qué dispositivo está di-
señado o qué función realiza. Por esta razón decíamos anterior-
mente que era importante conocer el hardware de nuestro
ordenador: en este paso podremos elegir con más precisión los
módulos que necesitamos. En algunos de ellos es obligatorio pa-
                                                                                                            ANOTACIONES


sar algún parámetro especial (como la dirección de E/S, la inte-
rrupción que utiliza el dispositivo, etc.), información que podemos
obtener por medio de la BIOS o EFI del sistema o por los proce-
dimientos que anteriormente comentábamos.


También es cierto que si el proceso de instalación lleva algún tipo de
programa para el reconocimiento automático de hardware, todo el
proceso de selección y carga de módulos no es necesario porque ya
se realiza de forma automática. Sin embargo, es posible que no se

                                                                          87
© FUOC • 71Z799002MO
  ©                                                 Software libre



                                                      detecte adecuadamente alguno de los dispositivos que tengamos ins-
                                                      talados, en cuyo caso sí que debemos incluir manualmente el módu-
                                                      lo correspondiente.


                                                      Si en el momento de instalar el sistema nos olvidamos de incluir
        Contenido
        complementario                                algún módulo (o instalamos algún nuevo dispositivo) siempre po-

              El fichero de configuración de          demos recurrir a los comandos insmod (para agregar un nuevo
              los módulos se suele encon-             módulo), lsmod (para listar los instalados), rmmod (para elimi-
              trar en /etc/modules.
                                                      nar alguno) y modprobe (para probar alguno y, si funciona co-
                                                      rrectamente, incluirlo en el núcleo). Todos estos módulos no son
                                                      más que ficheros binarios que acostumbramos a encontrar en el
                                                      directorio /lib/modules/ del sistema.


                                                      Si tenemos problemas para descubrir qué hardware tenemos ins-
                                                      talado en el ordenador, una utilidad muy práctica que se suele in-
                                                      cluir en las distribuciones es discover. Con ésta, podremos
                                                      saber exactamente qué componentes tenemos y qué módulos les
                                                      corresponden.




                                                       4.5. Configuración básica de la red


                                                      Después de configurar los módulos que se incluirán en el núcleo del
                                                      sistema operativo deberemos configurar la red (si tenemos la tarjeta
                                                      necesaria). Aunque en este documento no entraremos en detalles so-
                                                      bre redes de computadores, daremos las ideas necesarias para po-
                                                      der realizar este paso sin complicaciones.


                                                      Lo primero que se pedirá es el nombre que queremos darle al siste-
    Contenido
    complementario                                    ma. Este nombre servirá para referirnos a él sin tener que recordar
ANOTACIONES




        Una dirección IP es la iden-                  siempre su dirección IP. Una vez entrado el nombre, se suele pedir si
        tificación de un ordenador                    en nuestra red utilizamos un mecanismo llamado DHCP o BOOTP,
        dentro de una red cuando
                                                      que consiste en tener un servidor especial que se encarga de asignar
        utilizamos el protocolo TCP/
        IP, el que más se utiliza en                  automáticamente las IP a los ordenadores que arrancan. Si utiliza-
        Internet.                                     mos este mecanismo, debemos indicarlo y si no, se nos preguntará
                                                      por la IP y máscara de nuestro ordenador. Si no conocemos estos da-
                                                      tos, debemos dirigirnos al administrador de nuestra red. Seguida-
                                                      mente debemos introducir la IP del gateway de nuestra red. El
                                                      gateway es un dispositivo u ordenador que actúa de puente entre

                                               88
Sistema operativo GNU/Linux básico                  © FUOC • 71Z799002MO
                                                                              ©




nuestra red local e Internet (si no tenemos ningún dispositivo de este
tipo, podemos dejar en blanco este campo). A continuación, debe-
mos especificar el (o los) servidores de nombres que utilizamos. Un
servidor de nombres (servidor DNS) es una máquina que nos propor-
ciona la equivalencia entre un nombre y una dirección IP. Si no sa-
bemos cuál usamos, también deberemos recurrir al administrador
de la red.


Si estamos en una red local, debemos consultar al administrador de
la misma para que nos proporcione toda la información necesaria al
respecto. Si tenemos otro operativo instalado en el ordenador, tam-
bién podemos acceder a su configuración para obtenerla. Sin em-
bargo, en ningún caso nos podemos inventar estos valores porque lo
más probable es que no se configure adecuadamente y provoque-
mos problemas en la red local.




 4.6. Sistema de arranque


Una vez configurados todos estos aspectos, debemos instalar un pe-
queño programa en el disco duro para que en el proceso de arran-
que del ordenador podamos elegir qué sistema operativo de los que
tenemos instalados queremos arrancar. Aunque sólo hayamos insta-
lado GNU/Linux, también tendremos que instalar este programa, ya
que el sistema de arranque del mismo lo necesita.


Existen varias aplicaciones para realizar este proceso. Las más
usuales son el Lilo (LInux LOader) y el Grub (GNU GRand Unified
Bootloader). Lo único que hacen estas aplicaciones es iniciar el
proceso de carga y ejecución del núcleo del sistema operativo que
                                                                                              ANOTACIONES


le indiquemos. Generalmente, todas las distribuciones detectan si
tenemos algún otro sistema operativo instalado en los discos du-
ros y nos configuran automáticamente el sistema de arranque. Lo
único que debemos tener en cuenta es que habrá que situar este
programa correctamente para que se ejecute al arrancar el orde-
nador. Normalmente se suele poner en la MBR del disco maestro
del primer canal IDE o SCSI, que es el primer sitio que la BIOS o
EFI del ordenador inspecciona buscando un programa de estas
características.

                                                                         89
© FUOC • 71Z799002MO
  ©                                                 Software libre



                                                       4.7. Elección de paquetes

                                                      La mayoría de procesos de instalación incluyen dos formas de selec-
        Contenido
        complementario                                cionar los programas que instalaremos en el sistema: básico o exper-
                                                      to. Con el proceso de selección básico generalmente se agrupan los
              Un paquete está formado
              por uno o varios progra-                paquetes disponibles por grandes grupos de programas: administra-
              mas/librerías/      relaciona-          ción, desarrollo de software, ofimática, matemáticas, etc. Si todavía
              dos entre sí, que se agrupan
              para formar un sólo bloque.             no conocemos exactamente los programas que vamos a utilizar, este
              La mayoría de distribucio-              tipo de instalación es el más adecuado porque podremos escoger,
              nes incluyen utilidades para
                                                      de manera muy general y sin entrar en detalles, qué tipo de progra-
              el manejo de paquetes (ins-
              talación, eliminación, confi-           mas utilizamos.
              guración, etc.). Esta clase de
              organización es muy útil
              porque al necesitar un pro-             Cuando conozcamos un poco más el sistema y sepamos qué es exac-
              grama/utilidad/etc. pode-
                                                      tamente lo que vamos a utilizar, es mejor la selección experta de pa-
              mos instalarlo todo a la vez.
                                                      quetes. Con este tipo de selección podremos ajustar mucho mejor
                                                      qué programas necesitamos, ahorrándonos espacio en el disco y evi-
        Contenido                                     tando que el sistema cargue más programas de los necesarios. Al
        complementario
                                                      instalar un sistema para un uso específico (servidor http, cvs, etc.) es
              RedHat también ha adopta-
                                                      muy recomendable escoger sólo aquellos programas que realmente
              do un sistema de descarga/
              actualización del mismo es-             utilizaremos para evitar problemas de seguridad (cuantas menos
              tilo que el apt de Debian.              puertas dejemos abiertas al exterior, más seguro será el sistema).


                                                      Algunas distribuciones también admiten la posibilidad de obtener los
                                                      paquetes desde ubicaciones diferentes, como uno o varios CD, desde
                                                      servidores en Internet, etc. Debian GNU/Linux fue la primera en tener
                                                      un sistema de este tipo, llamado apt. Este tipo de gestión es muy útil
                                                      porque nos proporciona mucha flexibilidad, y nos mantiene informa-
                                                      dos de las últimas correcciones y actualizaciones de los programas.




                                                       4.8. Otros aspectos
ANOTACIONES




                                                      Debemos saber qué hacer si hemos tenido algún problema con la
                                                      instalación o en algún momento el sistema de arranque no nos deja
                                                      cargar el sistema operativo. Generalmente, en el proceso de instala-
                                                      ción existe algún paso donde se nos pregunta si queremos crear un
                                                      disquete de recuperación. Siempre es muy recomendable generar
                                                      este disquete, ya que nos permite cargar el operativo y acceder al sis-
                                                      tema de ficheros para arreglar lo que haga falta.

                                               90
Sistema operativo GNU/Linux básico                  © FUOC • 71Z799002MO
                                                                              ©




En algunas distribuciones, con el mismo CD de arranque podremos
hacer lo mismo. En el caso de Debian, por ejemplo, con el mismo
proceso de arranque se incluye una consola (apretando CTRL+F2
podemos acceder a ella) con los comandos básicos para que poda-
mos realizar operaciones esenciales de recuperación. De todos mo-
dos, si nos encontramos con algún grave inconveniente que no nos
permite arrancar el sistema correctamente y queremos todas las he-
rramientas usuales, también podemos arrancar con un CD-live de
Knoppix o cualquier otra distribución y montar la unidad donde ten-
gamos instalado el sistema para arreglar la disfunción. Lo que sí que
es importante es disponer de alguna de estas herramientas y haberla
probado antes de que ocurra algún problema serio para estar siem-
pre preparados.


La mayoría de procesos de instalación utilizan una aplicación deno-
minada bootstrap, que también podemos instalar en el sistema
con el paquete correspondiente. Con ella podríamos crearnos nues-
tro propio proceso de instalación o ver cómo realiza realmente el sis-
tema estas operaciones de instalación y configuración. La mayoría
de ellas las podemos reproducir con el programa base-config o
alguno de los otros que él mismo llama (más información en su ma-
nual), aunque siempre podemos recurrir a los mismos ficheros de
configuración del operativo para realizarlo manualmente.




                                                                                              ANOTACIONES




                                                                         91
Manual gnu linux_basico
Sistema operativo GNU/Linux básico                  © FUOC • 71Z799002MO
                                                                               ©




 5. Taller de instalación de Debian Woody




 5.1. Introducción

Si el primer taller nos servía para dar nuestros primeros pasos so-
bre un sistema tipo UNIX, y para ello utilizábamos una distribu-
ción que no dejase rastro en nuestro PC, pues se arrancaba y se
ejecutaba desde CD-ROM, éste debe servirnos para aprender a
instalar un sistema básico GNU/Linux en nuestro ordenador. La
distribución escogida para el desarrollo del taller ha sido la De-
bian 3.0r1 (las versiones 3.0 también se conocen con el nombre
de Debian Woody).


La decisión de escoger Debian frente a RedHat para el desarrollo de
este taller, y de los dos restantes, no ha sido nada fácil, pues RedHat
ofrece productos comerciales que tienen muy buena acogida en el
mundo empresarial, y en general se considera mucho más sencillo
instalar una RedHat que una Debian. El hecho de que se haya opta-
do por Debian se debe principalmente: en primer lugar, a que esta
distribución es la que sigue más fielmente la filosofía GNU/Linux y
todo se hace gracias al trabajo voluntario de miles de personas; en
segundo lugar, porque probablemente es una de las distribuciones
que, tanto a la hora de instalar como de mantener, deja más libertad
a los usuarios; y como último punto fundamental, por su sistema de
paquetes, que probablemente es el más consistente que existe ac-
tualmente.
                                                                                               ANOTACIONES



Se ha optado, pues, por Debian; no porque se considere mejor
que RedHat, (seguro que existen tantas opiniones al respecto
como usuarios de ambas distribuciones), sino porque simplemen-
te se ha creído que su flexibilidad la convierte en una distribución
muy apta para fines didácticos. Pero siendo conscientes del fuerte
arraigo que tiene RedHat, se ha dedicado un apéndice a esta dis-
tribución, para que el lector pueda conocerla también y pueda
formarse su propia opinión.

                                                                          93
© FUOC • 71Z799002MO
  ©                                             Software libre



                                                  Tampoco hay que olvidar que, aparte de estas dos distribuciones,
        Lectura complementaria
                                                  existen muchas más. Pero creemos que, cuando ya se ha tenido un
              http://www.debian.org/doc/
                                                  primer contacto con alguna de ellas, es tarea de cada usuario ir pro-
              http://www.debian.org/dis-
              trib/cd                             bando distintas distribuciones e ir forjándose una opinión propia de
              http://www.debian.org/dis-          cuál es la que se adapta mejor a sus necesidades o exigencias. Por
              trib/netinst                        este motivo, una vez más animamos a hacer todo tipo de experimen-
                                                  tos y pruebas, y que cada cual dirija sus esfuerzos hacia donde crea
                                                  más interesante. GNU/Linux no es un sistema cerrado, sino todo lo
                                                  contrario, GNU/Linux es sinónimo de libertad, y por este motivo la
                                                  intención básica de este módulo es, en general, que una vez termi-
                                                  nado se hayan sentado las bases de conocimiento necesarias para
                                                  que se pueda ejercer sin ningún tipo de impedimento esta libertad,
                                                  con el beneficio de todas sus ventajas y asumiendo todas sus conse-
                                                  cuencias.


                                                                                                          Actividad

                                                           12. Ya que se va a instalar Debian, es recomendable
                                                               visitar su página web y familiarizarse un poco con
                                                               sus contenidos. Así pues, se propone visitar la web
                                                               http://www.debian.org y sus subapartados.
                                                               Una vez más se insta al lector a dejarse guiar por
                                                               su curiosidad y, en esta ocasión, a seguir los enla-
                                                               ces que le parezcan interesantes.



                                                  5.1.1. Sistemas de instalación

                                                  Por sistema de instalación se entiende qué recursos o dispositivos se
                                                  van a utilizar para hacer la instalación del sistema. Actualmente, casi
                                                  todas las distribuciones ofrecen diversas posibilidades para realizar-
                                                  la, pero esencialmente se puede distinguir entre dos sistemas de ins-
                                                  talación: mediante CD-ROM o por red. Además, es posible, en
ANOTACIONES




                                                  general, combinar distintos sistemas.


                                                  Debian ofrece tres tipos de instalación: mediante un juego de CD-
                                                  ROM, con un único CD-ROM, el cual contiene el software de instala-
                                                  ción y los paquetes básicos, dejando que el resto de la instalación se
                                                  haga por red, y exclusivamente por red. Aunque, obviamente, si se
                                                  opta por este último sistema, hará falta algún tipo de soporte inicial
                                                  para arrancar el sistema de instalación (normalmente un juego de

                                           94
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                                ©




disquetes, entre dos y diecisiete, dependiendo del tipo y sistema de
instalación escogidos, o un CD-ROM, del propio juego de CD de la
distribución, aunque también es posible usar otros métodos, como
DHCP para hacer una instalación completamente remota).


El grado de interacción que requiere una instalación también depende
del sistema y del tipo de instalación escogidos. Tal como es de esperar,
cada uno de estos sistemas tiene sus ventajas y sus inconvenientes:
mientras que una instalación estándar nos permite ir configurando paso
a paso, hecho que nos será extremadamente útil para adecuar el siste-
ma a nuestras necesidades y posibilidades, un sistema de instalación to-
talmente automático requiere de unas infraestructuras y de unos
conocimientos más avanzados, y por tanto de una inversión, tanto en
tiempo como en dinero, que queda justificada sólo si el número de sis-
temas a montar es muy grande (por ejemplo, se podría plantear la im-
plementación de este tipo de instalación en un departamento donde
convivieran ordenadores destinados a uso personal, con otros destina-
dos a la paralelización, y donde su número aumenta a menudo).


A la hora de escoger un sistema y tipo de instalación, debemos consi-
derar, pues, diversos factores, como son: ¿cuántas instalaciones va-
mos a realizar?, ¿cuántas instalaciones distintas vamos a realizar?,
¿qué grado de experiencia tenemos?, etc. El hecho de ser ésta nuestra
primera instalación nos lleva inmediatamente al tipo de instalación
más interactiva y más utilizada: la instalación interactiva estándar.
Ahora sólo falta por determinar el sistema de instalación, y esto de-
penderá fundamentalmente de si disponemos de conexión a Internet
y de la velocidad de la misma. Obviamente, si no disponemos de co-
nexión a Internet o la velocidad de acceso que tenemos es muy baja
(como la que ofrecen los módems estándares) no tenemos más opción
que escoger una instalación basada en un juego de CD-ROM; si por
el contrario disponemos de una velocidad de acceso a Internet media-
                                                                                                ANOTACIONES



namente aceptable (como la que pueden ofrecer las líneas basadas en
tecnología ADSL) o alta (conexión directa a Internet via gateway), la
mejor opción será decantarse por una instalación por red.


Una instalación efectuada por red supone muchas ventajas sobre
una efectuada mediante CD-ROM, y especialmente en Debian, ya
que ello nos permitirá instalar las últimas versiones disponibles de los
paquetes, y actualizar todos los paquetes instalados en el sistema

                                                                           95
© FUOC • 71Z799002MO
  ©                                                 Software libre



                                                      será tan simple como ejecutar una sola instrucción. Pero este hecho
                                                      no debe hacernos abandonar la instalación utilizando CD-ROM, si,
                                                      como hemos dicho, no disponemos de conexión a Internet o la que
                                                      tenemos es muy lenta (no hay que subestimar tampoco los paquetes
                                                      que contienen estos CD-ROM, ya que Debian se caracteriza por ser
                                                      una distribución donde sólo se incluyen paquetes que han sido pro-
                                                      bados exhaustivamente).



                                                      5.1.2. Tipos de paquetes

        Lectura complementaria                        A continuación nos centraremos en Debian y en su sistema de pa-

              http://www.debian.org/distrib/
                                                      quetes. Un paquete de Debian es identificable por su extensión
              packages                                .deb. La distribución Debian diferencia sus paquetes en cuatro cla-
              http://www.debian.org/social
              contract#guidelines                     ses diferentes. Los paquetes propios de la distribución están en la cla-
                                                      se main, mientras que las clases contrib, non-free y non-US los
                                                      provee la organización Debian para el beneficio de sus usuarios:


                                                      main. Paquetes que cumplen con las Debian Free Software Guidelines,
                                                      es decir, que se garantiza su uso y redistribución libre, tanto de todos los
                                                      binarios que los componen como de su código fuente completo.


                                                      contrib. Paquetes que, aun siendo libres, y por tanto aparte de los
                                                      binarios –también tienen disponible su código fuente–, dependen de
                                                      otros paquetes que no lo son.


                                                      non-free. Paquetes que, aun pudiendo no costar dinero, están bajo
                                                      condiciones onerosas que restringen de alguna forma su uso o redis-
                                                      tribución.


                                                      non-US/main non-US/non-free. Paquetes que no pueden ser ex-
                                                      portados fuera de EE.UU., por contener software de cifrado o soft-
                                                      ware que puede afectar a asuntos relacionados con patentes.
ANOTACIONES




                                                      5.1.3. Estado de desarrollo de los paquetes

                                                      El estado de desarrollo de los paquetes marcará el tipo de distribu-
                                                      ción que instalemos. Así pues, se habla de tres tipos de distribución:


                                                      stable. Distribución de los paquetes con la versión oficial más recien-
                                                      te de la distribución. Consta de softwre estable y bien probado, y

                                               96
Sistema operativo GNU/Linux básico                         © FUOC • 71Z799002MO
                                                                                      ©




cambia sólo al incorporar correcciones importantes de seguridad o
de usabilidad.


testing. Distribución que contiene los paquetes que se espera que             Lectura complementaria
formen parte de la próxima distribución estable. Hay una serie de re-          http://www.debian.org/
quisitos muy estrictos que debe cumplir cada paquete antes de dejar            releases/testing/

de ser unstable para pasar a ser testing.


unstable. En esta distribución son los paquetes más recientes de De-
bian y en consecuencia los menos probados. Por esta razón, pueden
contener problemas suficientemente graves como para afectar a la
estabilidad del sistema.
                                                                               Nota
                                                                               Es posible incorporar pa-
Aunque todos los paquetes tienen sus propias dependencias no hay               quetes a una instalación ba-
ningún problema en mezclar paquetes de distintas distribuciones.               sada en una distribución
                                                                               procedentes de otra distri-
Apt-pinning (man apt-pinning) facilita mucho esta tarea. Aún así, en
                                                                               bución, esto por lo general
sistemas críticos es recomendable utilizar solamente paquetes de la            implica serios problemas de
distribución estable, los más fiables.                                         compatibilidades y es por
                                                                               este motivo por lo que sólo
                                                                               se recurre a esta práctica en
                                                                               casos puntuales.

 5.2. Instalación de Debian Woody


Como se ha dicho, en esencia Debian presenta tres tipos de instala-
ción: vía juego de CD-ROM, vía CD-ROM mínimo, e instalación por
red. Si se dominan la primera y la última, utilizar la segunda es tri-
vial. Así pues, empezaremos por instalar nuestro primer sistema me-
diante el juego de CD-ROM facilitados paso a paso, y, una vez
terminado, analizaremos las diferencias entre este proceso y el de
instalación por red.
                                                                                                          ANOTACIONES


Hay que añadir que el método de instalación vía CD-ROM mínimo,
                                                                              Lectura complementaria
si bien está admitido como tal por parte de Debian, las imágenes de
                                                                               http://db.debian.org/
estos CD-ROM no son oficiales. Estas imágenes son creadas por
                                                                               http://www.debian.org/
cuenta propia, generalmente por gente perteneciente a la Debian                CD/netinst/
people, y sólo están referenciadas en la página oficial de Debian, en
el apartado de instalación mediante CD-ROM mínimo. Aun así, en
general este sistema de instalación es muy práctico, y ha sido proba-
do con buenos resultados, con imágenes de distintas fuentes, en di-
versos ordenadores.

                                                                         97
© FUOC • 71Z799002MO
  ©                           Software libre



                                5.2.1. Flavours de Debian Woody

                                Se conoce con el nombre de flavors o ‘sabores’, a los distintos kernels
                                precompilados, destinados a soportar distintos tipos de hardware de
                                las distribuciones. Debian Woody presenta cuatro flavors distintos:


                                vanilla. Este kernel está basado en la serie 2.2, en el cual se han in-
                                cluido muchos drivers destinados a soportar hardware antiguo (como
                                pueden ser los dispositivos ISA), además de dar soporte al puerto USB.


                                compact. Este kernel está basado en la serie 2.2 y principalmente
                                orientado a dar soporte a dispositivos PCI y sistemas IDE y SCSI.


                                idepci. Este kernel está basado en la serie 2.2 y está concebido para
                                dar soporte al mayor número de hardware posible. Por esta razón se
                                trata de un kernel bastante grande y poco optimizado.


                                bf24. Kernel basado en la serie 2.4 con soporte para ext3 y ReiserFS
                                orientado a dar soporte a hardware nuevo, como pueden ser los te-
                                clados USB. También da soporte a dispositivos SCSI e IDE ATA-100.


                                En este taller se hará la instalación utilizando el flavor bf24, ya que
                                la experiencia dice que da muy buenos resultados, aparte de usar un
                                kernel basado en la serie 2.4. Si con este flavor se diera el caso de
                                que durante el proceso de arranque el ordenador se quedara colga-
                                do o notáramos comportamientos extraños, como podría ser el no
                                reconocimiento de disco duro, deberíamos cambiar de flavour, in-
                                tentando hallar el que se adaptara mejor a nuestras necesidades, o
                                el que simplemente nos dejase arrancar sin problemas; en este caso
                                la primera opción que debería probarse es la idepci.
ANOTACIONES




                                5.2.2. CD-ROM de Debian Woody y sus distintos flavours

                                De los siete CD-ROM que componen Debian Woody, cinco llevan
                                asociados uno o más flavours, y por tanto se puede arrancar el sis-
                                tema de instalación desde ellos. La relación entre CD y flavours es la
                                siguiente:


                                CD1. Este CD-ROM es “multiboot”, es decir, al arrancar se le puede
                                pasar como parámetro, el flavor deseado entre otros. Si no se le

                         98
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                                ©




pasa ningún parámetro, transcurridos unos segundos arrancará
como idepci.


CD2. vanilla.


CD3. compact.


CD4. idepci.


CD5. bf24.


Así pues, para inicializar nuestra instalación bastará con “bootar” el
ordenador desde la unidad de CD-ROM con el CD1 y teclear bf24
o con el CD5 y pulsar INTRO.



5.2.3. Installing Debian GNU/Linux 3.0 For Intel x86


El documento básico que nos proporciona Debian para su instala-
ción es el Installing Debian GNU/Linux 3.0 For Intel x86, incluido en
el CD1 (/install/doc/install .en .html) disponible en distintos idiomas,
entre ellos el castellano (/install/doc/es/install.es.html). Es recomen-
dable leer este documento y tener una copia del mismo a mano por
si surgiera algún problema, como podría ser no disponer de una uni-
dad de CD-ROM bootable.




 5.3. Instalación de Debian Woody mediante CD-ROM


Esta instalación se hará en un PC estándar sobre un disco duro IDE
                                                                                                ANOTACIONES



conectado como máster sobre el puerto IED primario estándar. Si
se dispone de otro tipo de conectores en la placa base más rápidos
(ATA-100 o ATA-133), probablemente también sean soportados
por Debian, pero en general se requiere de configuraciones espe-
ciales y, en consecuencia, quedan fuera de este taller. Por lo que se
refiere a controladoras y discos SCSI, si éstos son medianamente
estándares, serán detectados sin ningún problema durante el pro-
ceso de arranque.

                                                                           99
© FUOC • 71Z799002MO
  ©                        Software libre



                               5.3.1. Antes de empezar la instalación


                               Antes de empezar la instalación propiamente dicha, habrá que cer-
                               ciorarse de que disponemos de un espacio mínimo en nuestro disco
                               duro donde realizarla (se recomienda disponer, como mínimo, de
                               entre dos y tres gigabytes de espacio libre). Si éste es nuevo, pode-
                               mos empezar directamente con la instalación, a pesar de que pen-
                               semos instalar también otro sistema operativo en él (bastará con
                               reservar el espacio que consideremos para éste con el tipo de parti-
                               ción que requiera).


                               Si disponemos de un espacio que previamente habíamos reservado
                               –pues ya teníamos en mente instalar GNU/Linux– o tenemos una
                               partición de cualquier otro sistema operativo donde deseamos insta-
                               larlo, también podemos proseguir con la instalación, es decir, arran-
                               car desde el CD-ROM.


                               Si por el contrario tenemos todo el disco duro ocupado y con una
                               sola partición (cosa muy poco recomendable, pues en general esto
                               hace disminuir sensiblemente el rendimiento de cualquier sistema
                               operativo, y en especial aquellos con sistemas de ficheros poco con-
                               sistentes), debemos liberar espacio para poder instalar Debian Wo-
                               ody. La dificultad de realizar esta operación dependerá estrictamente
                               de qué sistema de ficheros sea el que contenga dicha partición.


                               Probablemente, el sistema operativo en cuestión sea de la familia de
                               productos de MicrosoftTM ; si el sistema de ficheros es de tipo FAT o
                               FAT32 (utilizados por MSDOSTM, Windows95 TM y Windows98 TM)
                               el problema es relativamente sencillo de solventar, ya que con la mis-
                               ma distribución se nos facilita una aplicación (fips20.exe en el
                               CD1 (/tools/fips20.zip)) que nos asistirá en la repartición del disco
ANOTACIONES




                               duro y en la creación de espacio para instalar GNU/Linux (es muy
                               recomendable que antes de hacer correr fips se desfragmente el
                               disco). Si el sistema de ficheros es de tipo NTFS (WindosNTTM,
                               Windows2000TM o WindowsXPTM ), la cosa se complica, pues hasta
                               la fecha no se conoce ninguna aplicación GPL que pueda hacer par-
                               ticiones de este tipo de sistema de ficheros. Así pues, frente a esta si-
                               tuación, de momento sólo se puede recurrir a aplicaciones
                               comerciales (como puede ser PartitionMagicTM).

                         100
Sistema operativo GNU/Linux básico                 © FUOC • 71Z799002MO
                                                                             ©




5.3.2. Arranque del sistema de instalación

Llegados a este punto, podemos empezar la instalación propia-
mente dicha. Para ello, arrancaremos el ordenador, nos asegura-
remos de que el primer dispositivo a la hora de “bootar” sea la
unidad de CD-ROM (entrando en la BIOS), y pondremos el CD1 en
ella (dado que, en este caso concreto, vamos a usar el flavor bf24.
También podríamos haber arrancado con el CD5 con los mismos
resultados). Al cabo de unos momentos nos aparecerá una pantalla
de bienvenida como la siguiente:



                              Welcome to Debian GNU/Linux 3.0!


This is a Debian CD-ROM. Keep it available once you have installed
your system, as you can boot from it to repair the system on your hard
disk if that ever becomes necessary (press <F3>for details).


For a "safe" installation with kernel 2.2.20, you can press <ENTER> to begin.
If you want additional features like modern hardware support, specify a
different boot flavor at the boot prompt (press <F3> to get an overview).
If you run into trouble or if you already have questions, press <F1>
for quick installation help.


WARNING: You should completely back up all of your hard disks before
    proceeding. The installation procedure can completely and cirreversibly
    erase them! If you haven’t made backups yet, remove the CD-ROM
    from the drive and press <RESET> or <Control-Alt-Del> to get back
    to your old system.


Debian GNU/Linuxcomes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law. For copyright information, press <F10>.
                                                                                             ANOTACIONES



Press <F1> for help, or <ENTER> to boot.


boot:



Podemos pulsar F1, sin demorarnos demasiado tiempo, ya que si no,
la instalación empezará de forma automática y con el flavour idepci,
flavour que se usa por defecto para acceder al índice de ayuda:

                                                                       101
© FUOC • 71Z799002MO
  ©                               Software libre



 HELP INDEX:

 Press the function keys <F1> through <F10> for helpful information.

 KEY          TOPIC

 <F1>         This page, the help index.
 <F2>         Prerequisites for installing this system.
 <F3>         Boot methods for special ways of using this Rescue disk.
 <F4>         Special boot arguments, overview.
 <F5>         Special boot arguments for special machines.
 <F6>         Special boot arguments for selected disk controllers.
 <F7>         Special boot arguments for the install system.
 <F8>         How to get help.
 <F9>         Debian e-mail lists. <F10> Copyrights and warranties.

 Press <ENTER> or type boot method, arguments, and <ENTER> to boot.
 Press any of <F2> through <F10> for quick installation help.

 boot:



                                      Podemos pulsar cualquiera de las opciones que nos ofrece el menú,
                                      pero la más destacable es la F3, en la cual encontraremos los distin-
                                      tos flavours que admite el modo de arranque, y también cómo utili-
                                      zar este mismo CD1 para usarlo como disco de rescate:



 BOOT METHODS

 The Rescue disk can be used for system recovery as well as for installation.
 The rescue method will mount an existing root partition, while the other
 methods will give you a small, standalone root system.

 Available boot methods:
 linux or idepci
   Start the installation -this is the default.
 fbf24
   Start the installation with a Linux 2.4 kernel.
 compact
   Start the installation with a kernel including PCI SCSI and IDE drivers.
 vanilla
ANOTACIONES




   Start the installation with a kernel including many drivers for older hardware
   (such as systems with ISA-based hardware).
 rescue
   Boot and mount any root filesystem. The root filesystem must be given at
   the prompt, so e.g., type rescue root=/dev/hda1. (You can also use
   rescbf24, resccomp, or rescvanl.)

 Press <ENTER> or type boot method, arguments, and <ENTER> to boot.
 Press function key <F1> for the help index.

 boot:


                                102
Sistema operativo GNU/Linux básico                          © FUOC • 71Z799002MO
                                                                                       ©




Tecleemos pues bf24, y empecemos con la instalación.


Una vez hecho esto, se cargará el kernel (veremos durante unos ins-
tantes las salidas por pantalla de las distintas pruebas que se hacen)
e inmediatamente nos aparecerá una pantalla, Choose The Langua-
ge, para que mediante los cursores seleccionemos el idioma de ins-
talación.


A partir de ahora ya disponemos, pulsando la combinación de teclas
ALT+F2 e INTRO, de un shell, que, aunque muy básico, puede usar-
se en cualquier momento de la instalación.


En la tty3 (ALT+F3) el kernel va dejando sus mensajes (es decir, el
contenido del fichero /var/log/messages).



5.3.3. Configuración del idioma de instalación

Es muy recomendable seleccionar la opción en Choose this and
press Enter to proceed in English para evitar posibles
errores de traducción. En general, y si es posible, siempre es mejor
trabajar con el idioma original, y así se hará durante el resto del ta-
ller; si bien, una vez más, se deja libertad al lector para que decida
él mismo lo que le parece más adecuado; en este caso, que sea él
quien elija el idioma que va a utilizar durante la instalación.


Escogemos el idioma inglés y pulsamos INTRO. En la pantalla Cho-
ose Language Variant siguiente se puede escoger qué inglés se quie-             Nota

re utilizar, nosotros usaremos el americano English (United                     El idioma de instalación no
                                                                                condiciona en modo alguno
States).                                                                        ni la configuración del te-
                                                                                clado, el cual hasta el mo-
                                                                                                          ANOTACIONES


                                                                                mento es us, ni el idioma de
                                                                                interacción con el sistema ni
5.3.4. Menú principal de instalación                                            otras configuraciones. Esta
                                                                                opción sólo es válida duran-
                                                                                te el proceso de instalación.
Después de la pantalla de créditos Release Notes, y tras pulsar IN-
TRO, entraremos en la interfaz Debian GNU/Linux Installation Main
Menu, que nos servirá para configurar el resto de la instalación. Esta
interfaz opera según unos criterios preestablecidos; así, siempre se
nos sugerirá el próximo paso a dar para una instalación estándar,
seguido, si procede, de alternativas a esta opción. No obstante, me-

                                                                          103
© FUOC • 71Z799002MO
  ©                        Software libre



                               diante los cursores podemos desplazarnos y seleccionar cualquier
                               opción de las que se nos ofrecen tras una línea en blanco (aquí se
                               listan todas las opciones posibles de instalación, aunque algunas no
                               estarán disponibles si en primer lugar no hemos utilizado otras; en
                               principio, salvo casos excepcionales y por ser nuestra primera insta-
                               lación, nunca usaremos estas opciones y dejaremos que la misma in-
                               terfaz de instalación nos guíe por ellas mediante la sugerencia que
                               nos haga en cada momento).



                               5.3.5. Configuración del teclado

                               Como primera sugerencia, la interfaz de instalación nos propone
                               que configuremos el teclado Configure the Keyboard. Así lo
                               hacemos. Pulsamos INTRO para acceder a la pantalla Select a Key-
                               board, y seleccionamos el teclado, qwerty/es:Spanish; pulsa-
                               mos INTRO para que el dispositivo de entrada responda al mapeado
                               de caracteres del teclado español. En la tty2 podemos comprobar
                               que, efectivamente, ya disponemos de acentos, por ejemplo.



                               5.3.6. Partición del disco duro

                               Una vez seleccionado el teclado, el proceso de instalación nos de-
                               vuelve al menú principal y nos propone que procedamos a fraccio-
                               nar el disco duro, Partition a Hard Disk. Así lo hacemos.
                               Pulsamos INTRO y entramos en la pantalla de selección de dispo-
                               sitivos que hay que fraccionar, Select Disk Drive. Si disponemos de
                               más de un disco duro, mediante los cursores podremos seleccionar
                               sobre cuál de ellos queremos operar. Una vez hecha la selección,
                               pulsamos INTRO. Tras una pantalla de advertencia referente a las
                               limitaciones de Lilo, LILO Limitations, y pulsando INTRO entramos
                               en otra pantalla de consejo acerca de cómo se debe calcular el ta-
ANOTACIONES




                               maño de las particiones si se tiene intención de utilizar el Reiser fi-
                               lesystem, Note on additional space for Reiserfs Journal. Pulsamos
                               INTRO nuevamente y se arranca la aplicación cfdisk para crear
                               y gestionar las particiones.


                               Los tamaños, sus características y el número de particiones depen-
                               den en gran medida del tipo de uso y de la cantidad de disco duro
                               de que se disponga. Al tratarse de una instalación con fines educati-

                         104
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                               ©




vos, se facilita seguidamente la información sobre las particiones que
se crearán suponiendo que se trabaja sobre un espacio de entre los
cinco y los quince gigabytes destinados a la nueva instalación.


Como mínimo hay que crear dos particiones: una primera para
montar el sistema y otra de swap (es cierto que se puede hacer ins-
talaciones sin swap, pero, tal como ya se ha dicho, no es en absoluto
recomendable). Para aumentar la eficiencia del sistema, nosotros
crearemos cinco particiones. La primera destinada a albergar la root
partition; ésta no tiene que ser muy grande, por ello se le destinará
alrededor de un diez por ciento del disco duro, preferentemente en
una partición primaria; pero si no disponemos de ella, la podemos
crear como partición lógica sin darle más importancia. La segunda
se destinará a swap.


Se recomienda que ésta tenga un tamaño de entre 512kb y 1Mb;
con estas dimensiones nos aseguraremos, salvo en casos excepcio-
nales, de que nunca llegará a saturarse; esta partición también es
preferible que sea primaria, pero si tiene que ser lógica, tampoco
repercutirá en el rendimiento del sistema. La tercera partición esta-
rá destinada a albergar el directorio /home/, cuya finalidad es al-
macenar datos de usuario, y, dependiendo del tamaño del disco
duro, se le puede asignar entre un diez y un veinte por ciento del
disco duro, en función del número de usuarios y del uso que se va
hacer del sistema. La cuarta partición será para el directorio /usr/;
hay que tener presente que esta partición albergará gran parte del
software que se instale; por lo que deberá tener un tamaño signifi-
cativo, alrededor de un cuarenta por ciento del disco. El espacio
restante se destinará al directorio /var/, donde se alojan librerías,
ficheros de log, etc.
                                                                                               ANOTACIONES


La distribución de particiones anterior es sólo una propuesta que tie-
ne dos objetivos: por un lado, pretende mejorar el rendimiento que
ofrece una instalación basada únicamente en dos particiones y, por
otro lado, da más robustez al sistema. Entre otras ventajas, tener los
datos repartidos entre distintas particiones hace que la corrupción de
una de ellas no implique automáticamente la pérdida de toda la in-
formación del sistema. Obviamente, pueden crearse otras particio-
nes u omitir algunas de las propuestas. (El orden de las particiones
no afecta al comportamiento del sistema.)

                                                                         105
© FUOC • 71Z799002MO
  ©                        Software libre



                               Por lo que se refiere a cfdisk, su funcionamiento se basa en el
                               uso de los cursores, tanto para moverse por las particiones del dis-
                               co (parte superior de la pantalla, mediante los cursores Up y down),
                               como para seleccionar las posibles operaciones que se puedan
                               realizar en cada momento (parte inferior de la pantalla, con left
                               y right), ya que éstas irán variando según el estado de la parti-
                               ción seleccionada. Para crear una nueva partición, hay que selec-
                               cionar la opción [ New ]; a continuación, si aún se pueden crear
                               particiones primarias (el número máximo es cuatro), se nos pre-
                               guntará si la queremos crear como partición primaria o lógica;
                               después debemos especificar, en Mb, el tamaño de la partición; y
                               finalmente su ubicación física en el disco (es recomendable que
                               antes de empezar a fraccionar el disco hagamos un pequeño es-
                               quema de cómo lo queremos hacer y crear las particiones a partir
                               de éste, para poder así responder siempre [Beginning] a esta
                               pregunta).


                               Una vez se han creado las particiones, hay que asignarles el tipo de
                               sistema de ficheros. Por defecto las particiones se crean de tipo Linux,
                               es decir, con código 0x83; en general, pues, esta opción por defecto
                               ya nos será útil salvo para la partición destinada a swap. Para esta
                               partición en concreto habrá que seleccionar la opción [ Type ],
                               con lo que primero se nos mostrará, en hexadecimal, la relación en-
                               tre códigos y filesystem types, y después se nos preguntará qué tipo
                               de sistema de ficheros queremos asignarle a la partición selecciona-
                               da. Por defecto se nos propone la 0x82, es decir, Linux swap, que es
                               la opción deseada. Si tenemos más de una instalación de GNU/Li-
                               nux en el mismo ordenador, se puede utilizar la misma partición
                               swap para todas ellas, ya que la información que se pueda almace-
                               nar en ella durante el funcionamiento del sistema es totalmente vo-
                               látil. Bastará, pues, con pulsar INTRO y se nos retornará a la pantalla
                               principal de cfdisk mostrándonos que, efectivamente, se ha reali-
ANOTACIONES




                               zado el cambio.


                               Una vez tengamos construida la tabla de particiones a nuestra me-
                               dida, sólo habrá que seleccionar la opción [ Write ] para que
                               ésta, tras una pregunta de confirmación final a la que responde-
                               remos yes, se escriba en la MBR y poder hacer efectivos los cam-
                               bios. Ahora, pues, ya podemos abandonar cfdisk con la opción
                               [ Quit ] y proseguir con la instalación.

                         106
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                               ©




5.3.7. Inicialización y activación de la partición swap

Una vez hemos salido del cfdisk, retornamos al menú principal.
Esta vez se nos propone que inicialicemos y activemos la partición de
swap, Initialize an Activate a Swap Partition. Pulse-
mos INTRO para entrar en una pantalla, Scan fo Bad Blocks?, donde
se nos pregunta si deseamos chequear la partición en búsqueda de
posibles bloques defectuosos. Esta misma pantalla nos aparece cada
vez que inicializamos y activamos una partición. Hay que advertir
que el proceso de chequeo es lento, así pues, esta vez lo activaremos
para ver su modo de proceder, pero para el resto de particiones de-
jaremos que cada uno tome la decisión que estime más acertada. La
experiencia pone de manifiesto que para discos nuevos, o en buen
estado, no es necesario ejecutar este proceso de prueba, puesto que
los resultados siempre suelen ser positivos.


Una vez terminado el proceso de chequeo, entramos en una pantalla
de confirmación final, Are You Sure?, antes de proceder a la iniciali-
zación y a la activación de la partición. Pulsemos INTRO para llevar
a termino nuestro objetivo.



5.3.8. Inicialización y activación de una partición Linux

De vuelta al menú principal, éste nos sugiere que inicialicemos y ac-
tivemos una partición de Linux, Initialize and Active a Swap
Partition. Esta operación es indispensable, pues es en este punto,
cuando inicialicemos, activaremos y montaremos la partición root (/).
Pulsamos INTRO para entrar en la pantalla de selección del tipo de
sistema de ficheros que deseamos para esta partición, Choose Fi-
lesystem Type. Nosotros decidimos que sea de tipo ext3. Una vez he-
cha esta selección, entramos en la pantalla, donde elegiremos la
                                                                                               ANOTACIONES



partición sobre la que queremos operar, Select Partition. Como se
trata de montar la partición root, elegiremos la primera. Una vez he-
cho así, entraremos en la pantalla ya conocida de chequeo de blo-
ques defectuosos, y a continuación en la pantalla de confirmación de
operación. Tras la operación, el sistema de instalación nos pregunta
si queremos montar en esta partición el root filesystem, Mount as the
Root Filesystem?. Obviamente, pues así lo habíamos planeado, res-
ponderemos afirmativamente.

                                                                         107
© FUOC • 71Z799002MO
  ©                        Software libre



                               5.3.9. Inicialización y activación de otras particiones
                                      Linux

                               Ahora el menú principal nos sugiere, como opción principal, que
                               instalemos el kernel y sus módulos en la root partition, Install
                               Kernel and Driver Modules. Nosotros aún no lo haremos,
                               pues, tal como habíamos planeado, tenemos que inicializar, acti-
                               var y montar el resto de particiones que hemos creado. Elegimos,
                               pues, la primera alternativa que nos ofrece el menú principal
                               Initialize a Linux Partition. Hecho esto, entraremos en
                               la pantalla de selección de filesystem, ext3 nuevamente, y entramos
                               en la pantalla de selección de partición. Optamos por la primera
                               que se nos sugiere, y entramos en las pantallas de chequeo de blo-
                               ques y de confirmación. Una vez terminada la operación, se nos
                               pregunta qué partición queremos montar Select Mount Partition.
                               Aquí la primera vez optaremos por la de /home, siguiendo el plan-
                               teamiento inicial.


                               De nuevo en el menú principal, repetiremos las acciones anteriores
                               para montar las particiones de /usr y de /var.



                               5.3.10. Instalación del kernel

                               Una vez terminado con el proceso de inicialización, activación y
                               montaje de todas las particiones que habíamos creado, podemos
                               proceder al próximo paso que el menú de instalación hace ya rato
                               que nos sugiere, es decir, instalar el kernel y los módulos Install
                               kernel and Driver Modules. Entramos ahora en la pantalla de
                               selección del medio de instalación Select Installation Medium. Como
                               estamos instalando el sistema utilizando el juego de CD, elegimos la
                               primera opción. Se nos pide ahora el primer CD, Please insert the
ANOTACIONES




                               CD-ROM, pero como éste ya se halla en el lector, podemos continuar
                               el proceso.


                               Entramos ahora en una pantalla en la que se nos pide dónde debe
                               ir el sistema a buscar los ficheros del kernel para la instalación, pero
                               como estamos realizando la instalación desde CD-ROM, sólo se nos
                               da una opción. Así pues, pulsamos INTRO para instalar el kernel en
                               el disco duro, en la root partition.

                         108
Sistema operativo GNU/Linux básico                    © FUOC • 71Z799002MO
                                                                                 ©




5.3.11. Configuración de módulos

Llegados a este punto, el menú principal nos sugiere la configuración de
los módulos del kernel Configure Device Driver Modules. Si-
guiendo este paso, entramos en una pantalla de advertencia sobre los
módulos que ya lleva incorporado el kernel que se ha instalado Note
about loaded drivers, el cual nos indica que si no encontramos ningún
módulo que sea del todo necesario podemos proseguir con la instala-
ción. En principio no debemos preocuparnos demasiado por los módu-
los, pues por ahora nuestro objetivo principal es instalar un sistema
mínimo en nuestro PC, y luego ya lo iremos ampliando y mejorando. Así
pues, podemos dar un paseo por el menú de módulos con el fin de ad-
quirir conocimientos, pero, en principio, no activaremos ninguno (una
vez instalado el sistema básico, podremos entrar en este mismo menú y
activar cualquier módulo mediante el comando modconf).



5.3.12. Configuración del hostname

Es momento de dar un nombre al sistema que estamos instalando
Configure the hostname. Por defecto se nos sugiere el nombre
de Debian, Choose the Hostname. Podemos borrar esta sugerencia y
dar un nombre que nos guste más compuesto de una sola palabra,
brau, por ejemplo. (En este punto sólo hay que especificar el nombre
local del sistema. Si éste va a formar parte de una red, y por tanto ne-
cesita de dominio, éste ya se especificará en el apartado de configura-
ción de la red.)



5.3.13. Instalación del sistema base


Con toda esta información, el sistema ya puede hacer la instalación
del sistema base; es lo que nos propone el menú principal, Install
                                                                                                 ANOTACIONES



the System Base. Aceptamos pues esta propuesta. Nuevamente
se nos pregunta por el medio de instalación, CD-ROM, la opción por
defecto y seguidamente se nos requiere de nuevo el CD1 para pro-
seguir; pulsamos, pues, INTRO y dejamos que el sistema lea los fi-
cheros necesarios.


El siguiente paso es especificar el directorio desde donde se va a ins-
talar el sistema base Select Archive Path. Sólo se nos muestra una op-

                                                                           109
© FUOC • 71Z799002MO
  ©                        Software libre



                               ción, instmnt, que es el directorio virtual que se ha creado para tal
                               fin (en realidad esta información se obtendrá del CD1, a partir de
                               enlaces simbólicos de este directorio al directorio /CD-ROM/). Así
                               pues, pulsemos INTRO y dejemos que finalmente empiece la instala-
                               ción del sistema base en el disco duro.



                               5.3.14. Creación de un disco de arranque

                               Una vez terminado el proceso de instalación del sistema base, el
                               menú principal nos sugiere hacer el sistema bootable, Make System
                               Bootable. Sin embargo, como medida de seguridad nos decidimos
                               por la primera alternativa que se nos ofrece, es decir, crear un disco
                               de arranque. Así pues seleccionamos esta opción, Make a Boot
                               Floppy, y pulsamos INTRO. Insertamos un disquete virgen en la dis-
                               quetera y procedemos a crear dicho disco.



                               5.3.15. Instalación de Lilo

                               Una vez creado el disco de arranque, el menú principal nos sugiere
                               que “rebootemos” el sistema. Pero también podemos hacer el siste-
                               ma bootable, como se nos sugería anteriormente, es decir, dejar que
                               escriba en la MBR la información necesaria para que se pueda
                               arrancar la instalación que acabamos de realizar desde el propio
                               disco duro. Para ello, debemos seleccionar la opción Make System
                               Bootable y contestar afirmativamente, por lo general, a las pro-
                               puestas que nos hace el sistema de instalación.


                               Realizar esta operación en este momento está plenamente justificada
                               si en nuestro PC sólo hemos instalado GNU/Linux, o si creemos que el
                               gestor de arranque Lilo será capaz de “bootar” otros posibles sistemas
ANOTACIONES




                               operativos que tengamos instalados (en el caso de tratarse de sistemas
                               MicrosoftTM , puede instalarse Lilo, ya que la experiencia muestra que
                               Lilo es perfectamente capaz de gestionar su arranque). Pero no debe-
                               mos realizar esta operación, si ya disponemos de otro gestor de arran-
                               que (el cual habrá que configurar para que pueda arrancar el sistema
                               que acabamos de instalar), o si queremos instalar otro gestor de
                               arranque como puede ser gups, o si no estamos plenamente seguros
                               de que Lilo será capaz de gestionar correctamente el arranque del res-
                               to de sistemas operativos que tengamos instalados.

                         110
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                                ©




Si no hemos instalado Lilo, de momento podemos arrancar el siste-
ma operativo mediante el disquete que hemos creado anteriormente,
y en el próximo taller evaluaremos la posibilidad de instalar el gestor
de arranque desde el propio sistema.



5.3.16. Reinicialización del sistema

Ha llegado el momento de reinicializar el sistema para arrancar el
sistema base que hemos instalado en nuestro disco duro, y a partir
de él empezar a personalizar nuestra primera instalación de GNU/
Linux. Así pues, retiramos el CD1, o cuando se produzca la reinicia-
lización, entramos en la BIOS para reestablecer la secuencia de dis-
positivos de arranque, preferiblemente disquetera, disco duro, CD-
ROM, etc. para un sistema estándar), y el disquete si hemos instalado
Lilo, y seleccionamos la opción Reboot the System. Tras una
pantalla final de advertencias y recomendaciones que debemos leer
atentamente, podemos proceder a la reinicialización. Si no se ha ins-
talado Lilo, el disquete deberá permanecer en la disquetera, y debe-
mos asegurarnos de que el PC arrancará desde él.



5.3.17. Arranque del sistema base

Si todo ha ido como es debido, tras reiniciar el sistema observare-
mos, tanto si hemos arrancado íntegramente desde el disco duro,
como si se ha hecho inicialmente mediante disquete, que el sistema,
al arrancar, ya usa información del disco duro. Transcurridos unos
momentos, en los cuales irán apareciendo por pantalla los resulta-
dos de los distintos procesos que se ejecutan durante el arranque, el
sistema entrará en una pantalla de bienvenida, y nos invitará a pro-
seguir la instalación, recordándonos que podremos repetir este pro-
                                                                                                ANOTACIONES


ceso en cualquier momento ejecutando el comando base-config
como root. Pulsamos INTRO y proseguimos.



5.3.18. Configuración horaria

Inmediatamente después de la pantalla inicial de configuración,
entramos en la de la configuración horaria del sistema, Iime Zone
Configuration. En ésta se nos mostrará la hora de la BIOS. Si esta hora

                                                                          111
© FUOC • 71Z799002MO
  ©                        Software libre



                               coincide con la hora de nuestro huso horario, debemos contestar que
                               no; por el contrario, si esta hora está establecida respecto al meridiano
                               de Greenwich, debemos contestar que sí, para que el sistema haga los
                               cálculos necesarios para situarnos en la hora de nuestro huso horario.



                               5.3.19. Configuración geográfica

                               Una vez establecido el criterio para el cálculo horario, debemos especi-
                               ficar, en las dos pantallas siguientes, Time Zone Configuration, nuestro
                               emplazamiento geográfico. Si la hora de la BIOS está sintonizada según
                               la hora local, y así lo hemos especificado en el apartado anterior, las
                               respuestas a estas preguntas no tendrán ninguna relevancia. Sí que es
                               importante contestar correctamente a estas preguntas si el horario de la
                               BIOS se ha establecido según el criterio GTM. (Siempre es posible recon-
                               figurar estos parámetros mediante el comando tzconfig).



                               5.3.20. Establecimiento de la política de passwords

                               Una vez terminados los procedimientos para la configuración hora-
                               ria del sistema, ha llegado el turno de establecer la política de pas-
                               swords, Password Setup. Ésta se compone de posible habilitación de
                               los sistemas md5 y shadow, y del establecimiento del password de
                               root, y de la creación de una cuenta de usuario.



                               Sistema md5

                               En primer lugar el sistema nos pregunta si queremos instalar el siste-
                               ma de passwords md5. Si no tenemos sospecha de problemas de in-
                               compatibilidades (NIS, etc.), podemos contestar que sí, ya que es
ANOTACIONES




                               buena idea poder usar passwords con más de ocho caracteres.



                               Sistema shadow

                               Una vez más, si no tenemos sospecha de posibles incompatibilidades
                               (este sistema no suele implicar problemas de incompatibilidades), es
                               bueno habilitar esta opción, ya que así nos aseguramos de que el fi-
                               chero que contiene los passwords encriptados (/etc/shadow) sólo

                         112
Sistema operativo GNU/Linux básico                          © FUOC • 71Z799002MO
                                                                                       ©




será accesible por el root. Esto supone una medida más de protec-
ción para nuestro sistema.



Password de root

Ahora debemos entrar el password de root. Es importante seguir las
                                                                                Nota
recomendaciones para seleccionar este password y acordarse de él.
                                                                                Frente al olvido del password
Con el objetivo de confirmar que se ha entrado el password deseado              de root, hay distintas estrate-
y no ha habido posibles errores de tecleo, se nos pide que lo volva-            gias a seguir. Una de ellas
                                                                                puede ser utilizar el CD-ROM
mos a escribir a modo de confirmación.
                                                                                de instalación, inicializar una
                                                                                instalación y, justo después
                                                                                de haber configurado el te-
Creación de una cuenta de usuario                                               clado, acceder a la tty2; una
                                                                                vez allí, podemos montar la
                                                                                root partition de nuestro disco
Tal como ya se ha remarcado, trabajar siempre como root es una                  duro y mediante un editor eli-
                                                                                minar el contenido del cam-
mala política por distintos motivos. A consecuencia de ello, el sistema
                                                                                po de password encriptado
nos recomienda crear una cuenta de usuario normal. Se nos pedirá                del fichero /etc/passwd.
el nombre de esta cuenta, si queremos añadir datos suplementarios               Cuando volvamos a reiniciar
                                                                                el sistema, el superusuario no
de la misma (por defecto Debian user), y su password , que, por la              tendrá password, por esta ra-
misma razón, debemos escribirlo dos veces.                                      zón, lo primero que debemos
                                                                                hacer es asignarle inmedia-
                                                                                tamente uno.

5.3.21. Últimas configuraciones


Paquetes PCMCIA

Una vez creado el usuario normal, si no disponemos de dispositivos
PCMCIA (típicos en ordenadores portátiles), el sistema lo detectará
automáticamente y nos sugerirá que confirmemos que los paquetes
asociados a estos dispositivos pueden ser eliminados.
                                                                                                            ANOTACIONES



Configuración de un sistema PPP

Si disponemos de un módem, puede ser buena idea que proceda-
mos a su configuración, aunque también se puede hacer una vez es-
temos en el sistema mediante la aplicación pppconfig ejecutada
como root. Obviamente, si no disponemos de este dispositivo, respon-
deremos negativamente a esta pregunta. Si no requerimos de los servi-
cios de PPP, podemos desinstalar sus paquetes: ppp, pppconfig,
pppoe y pppoeconf.

                                                                          113
© FUOC • 71Z799002MO
  ©                        Software libre



                               5.3.22. Configuración de apt

                               En esta sección se nos pregunta acerca de las fuentes donde apt de-
                               berá ir a buscar la información para construir su base de datos sobre
                               los paquetes (dependencias, estado de instalación, etc.). Al estar ha-
                               ciendo una instalación íntegramente basada en CD-ROM, escogemos
                               la primera opción, y, tras poner el CD1 en el lector, aceptamos la ruta
                               que nos sugiere para acceder a él. Transcurridos unos momentos en
                               los cuales apt extrae la información relativa a los paquetes que contie-
                               ne este CD, se nos preguntará si queremos añadir el contenido de otro
                               CD a la base de datos. Una vez hayamos introducido el CD2 en el lec-
                               tor, contestamos yes a esta pregunta. Repetimos esta operación has-
                               ta que apt haya procesado el contenido del séptimo CD-ROM. Las
                               operaciones sobre la gestión de contenidos de los CD-ROM se pueden
                               hacer también desde el sistema mediante la aplicación aptCD-ROM.


                               Una vez finalizado el escaneo de los contenidos de los siete CD-
                               ROM, se nos preguntará si queremos añadir alguna otra fuente de
                               donde apt pueda obtener paquetes. De momento contestaremos
                               que no, al igual que a la siguiente pregunta respecto al chequeo de
                               seguridad de los contenidos de los paquetes (no es necesario de mo-
                               mento, ya que, al estar usando únicamente paquetes de la distribu-
                               ción oficial, en principio sus contenidos ya son seguros).



                               5.3.23. tasksel y dselect

                               A continuación se nos pregunta si queremos que se ejecuten los pro-
                               gramas de selección de paquetes, primero tasksel y luego dse-
                               lect. Responderemos que no, pues estos programas también los
                               podremos ejecutar desde la línea de comandos una vez hayamos
                               terminado la instalación.
ANOTACIONES




                               Aquí termina la instalación básica, como último punto, y ya respon-
                               diendo a preguntas formuladas por apt, se nos informará de los pa-
                               quetes que se van a instalar y los que se van a desinstalar. Una vez
                               aceptado este proceso, se nos preguntará si queremos borrar los pa-
                               quetes .deb de nuestro disco duro. (Estos archivos se almacenan en
                               /var/cache/). Al disponer de ellos en CD-ROM, podemos contestar
                               que sí, ya que su presencia sólo implica la ocupación de espacio en el
                               disco duro.

                         114
Sistema operativo GNU/Linux básico                     © FUOC • 71Z799002MO
                                                                                   ©




Automáticamente, se arranca el programa de configuración de exim.
Al no ser objeto de este taller la configuración de este programa de ges-
tión de correo, escogemos la opción 5 para salir del programa. Final-
mente, tras unos momentos nos aparecerá por pantalla:


Debian GNU/Linux 3.0 brau tty1
brau login:


Así, tenemos instalado un sistema básico estándar en nuestro orde-
nador. Ahora empieza la tarea de construir un sistema a nuestra me-
dida. Es muy importante, llegados a este punto, distinguir entre dos
tipos de sistemas: los de desarrollo y los de producción.


Un sistema de desarrollo es aquel que está destinado a experimen-
tación, donde se hacen pruebas y experimentos, y donde no priman
ni la estabilidad ni la eficiencia, es, en definitiva, un sistema destina-
do a la adquisición de conocimientos sobre el propio sistema. Con-
trariamente, en un sistema destinado a producción la eficiencia y la
estabilidad son las características que más peso tienen. Así pues, de-
bemos asegurarnos de que contenga única y exclusivamente aque-
llos paquetes estrictamente necesarios, ya que el hecho de tener
paquetes innecesarios instalados va en detrimento de la eficiencia.
La estrategia que habrá que seguir antes de montar un sistema de
producción (un servidor de web, un servidor de aplicaciones, etc.)
pasa siempre por trabajar primero sobre un sistema de desarrollo,
donde se ensayarán y probarán distintas tácticas para poder sacar
conclusiones de cara a montar el sistema de producción.


Nuestro primer sistema será, evidentemente, un sistema de desarrollo,
tanto porque no tenemos en mente que sirva para cubrir ninguna ne-
cesidad en concreto, como porque es nuestra primera experiencia de
                                                                                                   ANOTACIONES



montaje de un sistema, cuya finalidad es, únicamente, la obtención de
conocimientos. Instalaremos y desinstalaremos distintos paquetes, ha-
remos pruebas con distintas configuraciones, etc. y esto, claro está,
perjudica directamente la eficiencia y la estabilidad del sistema. Así
pues, animamos al lector, a que, una vez finalizado el módulo y haya
obtenido ya una idea global de lo que es instalar un sistema, con todo
lo que ello implica, reinstale de nuevo todo el sistema partiendo de
cero para adaptarlo estrictamente a sus necesidades.

                                                                             115
© FUOC • 71Z799002MO
  ©                        Software libre



                                5.4. Instalación de Debian Woody por red

                               Muchos de los pasos para realizar una instalación por red son comu-
                               nes a los de una instalación mediante CD-ROM, así pues, destaca-
                               remos y nos centraremos en aquellos aspectos que difieren del
                               proceso anteriormente descrito.



                               5.4.1. Particularidades de una instalación por red

                               La diferencia básica entre una instalación hecha mediante un juego de
                               CD-ROM y una por red radica en la ubicación de los paquetes a la
                               hora de instalarlos. Mientras que en una instalación hecha a partir de
                               CD-ROM, habrá que insertar en el lector al menos uno de ellos cada
                               vez que se instale un paquete nuevo para poder extraer de él los datos
                               necesarios. En una instalación por red los paquetes se obtienen remo-
                               tamente, hecho que nos permite, en primer lugar, acceder a la última
                               versión de éstos, y poder actualizar todos los que tengamos instalados
                               con una simple línea de comandos. (apt-get upgrade)


                               Por otro lado, para realizar una instalación por red, generalmente basta
                               con un juego de disquetes, o con un único CD-ROM, que contenga la
                               información necesaria para poder arrancar un sistema operativo básico
                               sobre el cual se hará correr el programa de instalación (que ya está in-
                               cluido en el juego de disquetes o en el CD-ROM, junto con los módulos
                               que nos puedan ser necesarios para configurar el acceso a la red), y a
                               partir de aquí, el resto de información se obtendrá remotamente.



                               5.4.2. Aspectos comunes de los distintos métodos
                                      de instalación
ANOTACIONES




                               Como ya se ha dicho, muchos de los pasos a seguir para hacer una ins-
                               talación por red son comunes a los datos para hacer una instalación
                               mediante el juego de CD-ROM de la distribución. Así pues, entramos en
                               el programa de instalación del mismo modo en que lo hemos hecho an-
                               teriormente ([5.3.1.] y [5.3.2.]) e inicialmente seguimos los mismos pa-
                               sos para configurar el idioma de instalación, el teclado, fraccionar el
                               disco duro y activar las particiones ([5.3.3.], [5.3.5.], [5.3.6.], [5.3.7.],
                               [5.3.8.] y [5.3.9.]), y para instalar el kernel ([5.3.10.]). En el apartado
                               Select Installation Médium optamos por la opción /dev/

                         116
Sistema operativo GNU/Linux básico                    © FUOC • 71Z799002MO
                                                                                 ©




fd0, e inmediatamente se nos pedirá que insertemos el rescue
disk seguido de los discos de drivers. Las imágenes de estos discos se
hallan en /CD-ROM/dists/woody/main/disks-i386/3.0.23-
2002-05-21/images-1.44/ bf2.4.. Llegados a este punto, ten-
dremos que comprobar si el kernel ha reconocido nuestra tarjeta de red
y, si no es el caso, procedemos a instalar y configurar el módulo perti-
nente para hacerla operativa. En muchos casos la configuración, paso
de parámetros, se puede hacer de modo automático mediante mo-
dprobe, programa que se puede lanzar desde la misma interfaz de ins-
talación después de la selección de un módulo. Una vez hecho esto,
debemos configurar la red, especificar de qué sitio obtendremos las
fuentes, y a partir de aquí seguiremos los mismos pasos que con el CD-
ROM para terminar su instalación.



5.4.3. Instalación del módulo de red

Éste es un punto clave para poder realizar la instalación por red, ya
que es aquí donde, si el driver de nuestra tarjeta de red no ha sido
compilado dentro del kernel, debemos seleccionar el módulo nece-
sario para tener acceso a ella. En primer lugar, pues, debemos ave-
riguar si nuestra tarjeta de red ya ha sido detectada durante el
proceso de arranque y se ha cargado su correspondiente driver. Para
hacerlo, accedemos al segundo terminal (ALT+F2) y ejecutamos el
comando dmesg. Ahora debemos buscar, entre las muchas líneas
que nos ha devuelto este comando, si hay algunas que hacen refe-
rencia a nuestra tarjeta de red. A modo de ejemplo, para una tarjeta
RTL-8029 (Realtek Semiconductors) se obtiene:



brau:˜# dmesg
.
.
                                                                                                 ANOTACIONES


.
ne2k-pci.c:v1.02 10/19/2000 D. Becker/P. Gortmaker
    http://www.scyld.com/network/ne2k-pci.html
PCI: Found IRQ 11 for device 00:0b.0
PCI: Sharing IRQ 11 with 00:07.2
eth0: RealTek RTL-8029 found at 0xe400, IRQ 11, 52:54:00:DB:FB:D4.
.
.
.



                                                                           117
© FUOC • 71Z799002MO
  ©                        Software libre



                               Si la búsqueda ha resultado infructuosa, en primer lugar debemos
                               determinar qué tarjeta de red tenemos. Para ello, lo mejor es acudir
                               a la documentación incluida con ella o a su inspección visual. Si esto
                               no es posible, hay otras estrategias para determinar cuál es nuestra
                               tarjeta, como puede ser, pulsar ALT+F2 para acceder a la consola e
                               investigar el contenido del fichero /proc/pci (mediante cat, por
                               ejemplo), o podemos recurrir a la información que nos puede pro-
                               porcionar algún otro sistema operativo que tengamos instalado en el
                               ordenador.


                               Una vez conozcamos qué tipo de tarjeta de red es la que tenemos, de-
                               bemos averiguar qué módulo es el que nos servirá para acceder a la
                               tarjeta. La estrategia más segura para este fin es recurrir a cualquier
                               buscador, por ejemplo http://www.google.es, entrar palabras clave so-
                               bre nuestra tarjeta (referencia de la tarjeta NIC linux module, por
                               ejemplo) y leer algunas de las páginas encontradas. También se puede
                               recurrir a las páginas de las principales distribuciones de linux, y entrar
                               la referencia de la tarjeta en sus buscadores. Como último recurso, se
                               puede recurrir a la documentación de módulos de red del kernel , donde
                               se especifica, para todas las tarjetas soportadas, el módulo correspon-
                               diente. También es bueno saber si el fabricante ha desarrollado su pro-
                               pio módulo. Llegar a encontrar un módulo para una tarjeta puede ser
                               una tarea muy complicada, incluso imposible, ya que puede suceder
                               que no haya soporte para dicha tarjeta o que haya que recurrir a méto-
                               dos avanzados para poderlo configurar; por este motivo, se recomienda
                               utilizar siempre tarjetas lo más estándar posible.


                               Una vez hayamos averiguado el módulo que necesitamos, después
                               de instalar el kernel ([ 5.3.10.]), debemos seleccionar la propuesta
                               que nos sugiere el menú principal Configure Device Driver
                               Modules. Tras una pantalla de advertencia, donde se nos recuerda
                               que muchos drivers ya están incluidos en el kernel, entraremos en la
ANOTACIONES




                               pantalla de selección de módulos Select Category, (podemos acce-
                               der a esta interfaz en cualquier momento, ejecutando el comando
                               modconf. Este comando sirve como fornt-end para la administra-
                               ción de drivers que han sido compilados de forma modular junto al
                               kernel) y mediante los cursores seleccionaremos la opción kernel/
                               drivers/net. Una vez dentro de la pantalla de selección de mó-
                               dulos de tarjeta de red Select Kernel/drivers/net modules, seleccio-
                               namos otra vez con los cursores el módulo que necesitamos. Tras
                               responder que sí a la pregunta sobre si realmente queremos instalar

                         118
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                                ©




dicho módulo, podemos dejar que el autoprobe configure el módulo
por nosotros, si no hay que pasar ningún parámetro en concreto al
módulo en cuestión. Pasados unos instantes, recibiremos el mensaje
indicándonos si el módulo se ha instalado correctamente o no.



5.4.4. Configuración de la red

Una vez sabemos que la tarjeta de red está operativa, en el menú
principal de la instalación seguiremos el paso sugerido Configure
the Network para proceder a la configuración de la red. En pri-
mer lugar deberemos configurar el nombre del host (antes se ha su-
gerido brau, por ejemplo), sin entrar el dominio. A continuación,
deberemos entrar la IP, la máscara de red, el gateway, el nombre de
dominio, y los servidores de DNS, hasta un número de tres, separa-
dos por espacios.



5.4.5. Configuración de apt

Una vez se ha configurado la red, los siguientes pasos que hay que
seguir son idénticos a los seguidos en la instalación por CD-ROM,
hasta llegar a la configuración de apt Apt Configuration. Llegados a
este punto, en vez de elegir la opción de CD-ROM, optaremos por la
opción de red que más nos convenga. A efectos prácticos es lo mis-
mo seleccionar el protocolo http que el ftp. Después de realizar la se-
lección se nos preguntará si deseamos usar paquetes de tipo non-
US; en principio, y salvo problemas legales, responderemos que sí.
Respecto a la respuesta sobre la pregunta siguiente, referente al uso
de paquetes nonfree, ya se deja que el mismo lector tome la decisión
según sus principios éticos. Acto seguido se nos pregunta de qué es-
tado debe ser el mirror del cual apt deberá obtener los paquetes, de-
                                                                                                ANOTACIONES


bemos escoger siempre el que nos sea accesible de forma más
rápida, que acostumbra a ser el más próximo a nosotros geográfi-
camente hablando. Una vez seleccionado el estado, se nos pide que
seleccionemos un servidor en concreto (la aplicación netselect
destinada a facilitar la elección de servidores de paquetes según el
criterio de velocidad de acceso). Cuando se ha resulto esta cuestión,
se nos muestra la pantalla de configuración de acceso a través de
proxy; si no tenemos que usar este servicio, dejaremos en blanco la
línea.

                                                                          119
© FUOC • 71Z799002MO
  ©                        Software libre



                               Es importante que los paquetes críticos, en cuanto a seguridad se refiere,
                               se obtengan de servidores seguros. Por esta razón, se recomienda que
                               éstos se obtengan en concreto de security.debian.org.


                               Terminados todos estos pasos, apt conectará con el mirror que le he-
                               mos especificado para configurar su base de datos. A partir de este
                               punto, para el resto de la instalación seguiremos los mismos pasos
                               que en la instalación realizada mediante CD-ROM.




                                5.5. Conclusión


                               En este taller hemos aprendido a instalar GNU/Linux en nuestro or-
                               denador. Aunque por ahora nuestro sistema sea muy básico, el ob-
                               jetivo del taller se ha cumplido plenamente, ya que hemos sentado
                               las bases para poder empezar a sacar partido de la flexibilidad y po-
                               tencia de este sistema operativo. En el próximo taller aprenderemos
                               cómo configurar el sistema e instalar nuevas aplicaciones para ir
                               adaptándolo y dotándolo de todas las herramientas que estimemos
                               necesarias para cubrir nuestras necesidades.
ANOTACIONES




                         120
Sistema operativo GNU/Linux básico                      © FUOC • 71Z799002MO
                                                                                    ©




 6. Configuraciones básicas




 6.1. El sistema de login

Si todavía no tenemos configurado el entorno gráfico, cuando arranca-
mos un sistema GNU/Linux nos aparece una pantalla de login donde
se pide al usuario que se identifique antes de empezar a utilizar el siste-
ma. De hecho, la mayoría de distribuciones lanzan varias consolas a las
que podemos acceder a partir de ALT+F1, ALT+F2, etc. Ello nos permi-
te trabajar simultáneamente con diferentes cuentas a la vez, tener varias
sesiones abiertas para ejecutar diferentes programas, etc.


El programa que se encarga de gestionar cada una de estas consolas
es el getty. Lo único que hace este programa es abrir una conexión
con el dispositivo adecuado (en el caso de las consolas de la panta-
lla, es el /dev/ttyX, donde la “X” es el número de consola) y lanzar
la aplicación de login. Este mecanismo nos permite mucha flexibili-
dad, ya que el mismo programa getty permite comunicarse con
diferentes dispositivos, de forma que podríamos conectar un terminal
por el puerto serie del ordenador, montar una consola utilizando la
línea telefónica y un módem, etc.


Antes de lanzar la aplicación de login, se muestra un mensaje de
bienvenida por pantalla. Este mensaje lo podemos configurar en el
fichero /etc/issue, escribiendo lo que queramos. En este mismo
fichero también podemos mostrar algunas de las variables del siste-
ma referenciándolas como:
                                                                                                    ANOTACIONES



           “d”     la fecha actual
           “s”     el nombre del sistema operativo
           “l”     el número de consola
           “m”     la arquitectura del ordenador
           “n”     el nombre del ordenador
           “o”     el nombre del dominio
           “r”     la versión del sistema operativo
           “t”     la hora actual
           “u”     número de usuarios activos en el sistema

                                                                              121
© FUOC • 71Z799002MO
  ©                        Software libre



                               Una vez entramos en el sistema, el programa de login se encarga de
                               mostrarnos el mensaje del día. Este mensaje es lo que hay escrito en el
                               fichero /etc/motd, que también podemos cambiar. Este mecanis-
                               mo es muy útil para informar a todos los usuarios de algún evento
                               determinado, avisarles de algún problema, etc. Si un usuario quiere
                               suprimir este mensaje, puede hacerlo creando un fichero vacío lla-
                               mado .hushlogin en su directorio home. Después de mostrar este
                               mensaje, el proceso de login lanza el shell configurado por defecto para
                               el usuario. Lo primero que hace el intérprete de comandos es ejecutar
                               el contenido del fichero .profile (que debe estar en el directorio
                               home del usuario). Este fichero sirve para que se ejecuten las instruccio-
                               nes configuradas siempre que el usuario entre en el sistema. Además de
                               este ~/.profile, también tenemos el /etc/profile, que se eje-
                               cuta para todos los usuarios del sistema y resulta muy útil para poder
                               configurar a todos las opciones que deseamos sin tener que poner las
                               instrucciones dentro de cada uno de los .profile de los usuarios.




                                6.2. Explorando el bash


                               Si bien el fichero .profile es ejecutado, sea cual sea el shell que
                               utilicemos, los archivos .bashrc o .bash profile se suelen eje-
                               cutar sólo cuando utilizamos el bash (aunque se puede configurar a
                               partir del mismo .profile del usuario, que es donde se llama a la
                               ejecución de este archivo). Vamos a ver algunas de las instrucciones
                               que podemos encontrar en estos ficheros:


                               #CONFIGURACIONES BÁSICAS
                               mesg n
                               umask 022
                               #PATH
ANOTACIONES




                               export PATH=        /usr/local/sbin:/usr/local/bin:/usr/
                                                   sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
                               #PROMPT
                               export PS1=’h:w$ ’
                               #ALIAS DE USUARIO
                               alias l=’ls --color=auto’
                               alias ll=’ls --color=auto -al’
                               alias rm=’rm -i’
                               alias cp=’cp -i’

                         122
Sistema operativo GNU/Linux básico                          © FUOC • 71Z799002MO
                                                                                          ©




alias mv=’mv -i’
alias v=’vim’


Como vemos, en este archivo podemos definir lo que queramos. Las                   Nota
dos primeras instrucciones del fichero anulan la entrada de mensajes
                                                                                   Si queremos ejecutar los
de otros usuarios y configuran los permisos que tendrán los nuevos fi-             programas del directorio
cheros que vamos a crear. La siguiente instrucción es la definición del            desde donde estamos situa-
                                                                                   dos sin necesidad de poner
PATH. El PATH son los directorios donde tenemos los comandos, pro-                 "./" al principio, podríamos
gramas, aplicaciones, etc. que queremos poder llamar desde cual-                   añadir esta entrada en la
                                                                                   declaración del PATH. Igual-
quier sitio de la jerarquía de sistema de ficheros sin necesidad de                mente, si en el PATH no hay
escribir su ruta completa (cada directorio del PATH lo separamos con               el programa que necesita-
                                                                                   mos ejecutar, podemos es-
“:”). La siguiente declaración es la del prompt del sistema. El prompt
                                                                                   pecificar la ruta completa
es la línea que aparece en el shell antes del carácter “ #” (para el root)         del mismo en la línea de co-
o “$” (para los otros usuarios). Podemos configurarnos este prompt de              mandos. De todas formas,
                                                                                   no es recomendable añadir
la forma que queramos utilizando las siguientes variables del sistema:             "./" al PATH porque puede
                                                                                   representar un agujero de
                                                                                   seguridad.
 “d”        la fecha del sistema

 “h”        el nombre de la máquina

 “s”        el shell que utilizamos

 “u”        el nombre del usuario

 “v”        la versión del bash

 “w”        el directorio actual

 “!”        el número de historia del comando

 “$”        aparece “#” si somos el root o “$” para los otros usuarios



Finalmente, tenemos los alias de usuario. Los alias son sinónimos,
                                                                                   Nota
generalmente para los comandos que más utilizamos (para no tener
                                                                                   Podemos ver todos los alias
que escribirlos completamente). Por ejemplo, en uno de los alias que
                                                                                   definidos a partir del mismo
teníamos en el ejemplo definíamos que al escribir “l” se ejecutara                 comando alias.
“ls --color=auto”. De esta forma, podemos utilizar largos co-
mandos sin tener que estar escribiéndolo todo cada vez que los uti-
                                                                                                             ANOTACIONES



lizamos.


Tanto en la definición del PATH como en la del prompt hemos utili-
                                                                                   Nota
zado el comando export. Este comando nos permite definir lo que
                                                                                   Con “echo $NombreVa-
llamamos una variable de entorno. Estas variables son utilizadas
                                                                                   riable” podemos ver el
por el shell para realizar ciertas operaciones, guardar algún tipo de              contenido de estas variables
información, etc. Podemos ver todas las que hay declaradas con el                  y atributos.

mismo comando export. Con set y unset también podemos

                                                                             123
© FUOC • 71Z799002MO
  ©                        Software libre



                               manipular otros atributos que tiene el intérprete de comandos. Algu-
                               nas de estas variables y atributos, que tiene por defecto el bash, son:


                               • PWD: directorio actual.


                               • BASH VERSION: versión del bash que utilizamos.


                               • RANDOM: genera un número aleatorio diferente cada vez que
                                  mostramos su contenido.


                               • SECONDS: número de segundos que han pasado desde que he-
                                  mos abierto el shell.


                               • HOSTNAME: nombre del sistema.


                               • OSTYPE: tipo de sistema operativo que estamos utilizando.


                               • MACHTYPE: arquitectura del ordenador.


                               • HOME: directorio home del usuario.


                               • HISTFILESIZE: tamaño del fichero de historia (número de co-
                                  mandos que se guardan).


                               • HISTCMD: número de comando actual en la historia.


                               • HISTFILE: fichero donde se guarda la historia de comandos (ge-
                                  neralmente .bash history del directorio home del usuario).


                               Con la manipulación de estas variables podemos personalizar mu-
                               cho más nuestro intérprete de comandos para adaptarlo a nuestros
ANOTACIONES




                               gustos y necesidades.




                                6.3. El sistema de arranque


                               Aunque con la instalación del sistema operativo ya se lleva a cabo la
                               configuración e instalación de un sistema de arranque, en esta sec-
                               ción veremos con detalle qué opciones nos proporcionan y cómo de-

                         124
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                               ©




bemos personalizarlos y adaptarlos a nuestras necesidades. Aunque
existen muchos, el Lilo y el Grub son los más utilizados en los entor-
nos GNU/Linux, con lo cual sólo nos centraremos en ellos.


Antes de entrar en detalles sobre la configuración de estos dos pro-
gramas, explicaremos cómo funciona el sistema de arranque de un
PC estándar. Tal como ya sabemos, a partir de la BIOS o EFI del or-
denador podemos configurar la secuencia de arranque del mismo.
En general, esta secuencia suele empezar buscando en la disquetera
y sigue con el CD/DVD y el disco duro. Aunque podemos instalar el
Lilo o el Grub en un disquete o en el sector de arranque de un CD,
es más usual instalarlo en el disco duro para no tener que introducir
el disco cada vez que arrancamos nuestro ordenador.


Cuando el sistema de arranque del ordenador va a buscar en el dis-
co duro, lo primero que inspecciona es si la MBR ( aster Boot Re-
                                                 M
cord) del primer disco duro (máster del primer canal IDE o el primer
disco del canal SCSI) contiene alguna indicación del sistema que hay
que cargar. La MBR es la primera pista del disco duro, allí donde se
guarda la información de las particiones configuradas y, opcional-
mente, el programa encargado de iniciar el sistema operativo. Si
aquí no se encuentra este programa, se inspecciona el sector de
arranque de la partición activa del disco. Siempre que queremos ins-
talar un programa en el sistema de arranque del ordenador debe-
mos situarlo en alguna de estas zonas. En la siguiente figura
podemos ver todo este proceso cuando en la secuencia de arranque
primero es la disquetera y después el disco:
                                                                                               ANOTACIONES




                                                                         125
© FUOC • 71Z799002MO
  ©                        Software libre



                               Siempre que instalamos un sistema de arranque, debemos tener en
                               cuenta que el orden con que se realiza esta secuencia es importante:
                               si instalamos uno en la MBR y otro en la partición activa, se ejecutará
                               el de la MBR porque la BIOS o EFI inspecciona primero esta zona. Si
                               no tenemos partición activa, debemos situar el programa de arran-
                               que en la MBR. De todas formas, lo más recomendable es instalar
                               siempre el programa en la MBR porque es lo primero que se inspec-
                               ciona. Aunque podamos tener instalados otros sistemas operativos
                               en otros discos, debemos instalar el Lilo o Grub en alguna de estas
                               zonas. En la configuración del programa ya le indicaremos dónde
                               están situados los operativos que queremos cargar.



                               6.3.1. Lilo

                               El Lilo nos permite múltiples configuraciones diferentes para realizar
                               casi cualquier acción con el sistema de arranque del ordenador. Para
                               no extendernos innecesariamente, en esta sección sólo explicaremos
                               las opciones más importantes para poder configurar un sistema de
                               arranque de múltiples operativos teniendo en cuenta la seguridad
                               del mismo. En el manual del programa y de su fichero de configura-
                               ción (“man lilo” y “man lilo.conf”) encontraremos la especifi-
                               cación completa para todas las otras opciones. El fichero de
                               configuración del Lilo es el /etc/lilo.conf. Cuando ejecutamos
                               lilo, el programa busca toda la información en este fichero e ins-
                               tala el programa de arranque en la zona que le indicamos. En este
                               fichero de configuración tenemos dos secciones: la global y las loca-
                               les a cada sistema operativo. En la sección global encontramos todas
                               las configuraciones generales para el programa. En cada línea po-
                               demos poner una directiva de configuración para indicar algún tipo
                               de información al programa. Las directivas más importantes de esta
                               sección son las siguientes:
ANOTACIONES




                               • boot = DISPOSITIVO: le indicamos en qué dispositivo quere-
                                  mos instalar el Lilo.


                               Si queremos instalarlo en la MBR del primer disco del canal IDE, en
                               DISPOSITIVO pondremos /dev/hda, si lo queremos en la primera
                               partición, /dev/hda1, etc. También tenemos la opción de instalarlo
                               en un disquete, indicando el dispositivo /dev/ fd0.

                         126
Sistema operativo GNU/Linux básico                        © FUOC • 71Z799002MO
                                                                                      ©




• default = NOMBRE: indicamos el sistema operativo que se car-
   gará por defecto. El NOMBRE debe corresponder a alguna de las
   etiquetas configuradas en cada sistema de las secciones locales.


• prompt: con esta directiva indicamos al programa que antes de
   cargar el sistema muestre un prompt por pantalla para que poda-
   mos seleccionar el que queramos. Si no activamos esta opción, no
   podremos seleccionar el operativo que hay que cargar y automá-
   ticamente se iniciará el que tengamos por defecto.


• delay = TSECS: especifica el número de décimas de segundo
   que el Lilo esperará antes de cargar el sistema operativo por de-
   fecto (la directiva default debe existir). Esta opción es válida
   cuando sólo tenemos un sistema operativo en el disco; si utiliza-
   mos prompt, tendremos que configurarlo con timeout.


• timeout = TSECS: décimas de segundo que el Lilo esperará en
   el prompt antes de arrancar el sistema operativo por defecto (de-
   ben existir la directiva de prompt y default).


• lba32: esta opción nos sirve para poder arrancar cualquier par-
   tición del disco duro.


Si desactivamos esta directiva, no podremos arrancar sistemas ope-
rativos en particiones situadas en sectores superiores del disco (a
partir del cilindro 1024) y deberemos poner el arranque del sistema
en una pequeña partición al inicio del disco (más información en
“man lilo.conf”). Todas las BIOS a partir de 1998 soportan esta
                                                                              Contenido
opción, de forma que es muy recomendable utilizarla para ahorrar-
                                                                              complementario
nos problemas.
                                                                               El sistema de arranque de
                                                                               un sistema GNU/Linux o si-
                                                                               milar nos permite, con un
                                                                                                         ANOTACIONES


Las directivas locales son las que corresponden con cada uno de los
                                                                               mismo sistema de ficheros,
sistemas operativos instalados en las particiones de nuestros discos.          cargar varios núcleos dife-
La primera directiva debe ser o bien image u other. Las explicamos             rentes. De este modo, sin la
                                                                               necesidad de instalar de
a continuación (junto con otras directivas posibles):
                                                                               nuevo el sistema, podemos
                                                                               trabajar con diferentes nú-
                                                                               cleos. Para configurarlo
• image = CAMINO: el CAMINO nos indica el archivo que contiene
                                                                               sólo tendríamos que especi-
   la imagen núcleo del sistema operativo. Esta opción sólo es válida          ficar dos secciones locales
   para sistemas GNU/Linux o similares. Generalmente, las distribu-            poniendo, en cada una, qué
                                                                               núcleo utilizaremos.
   ciones crean un directorio /boot/ donde se pone la imagen del

                                                                        127
© FUOC • 71Z799002MO
  ©                                                Software libre



                                                          núcleo del sistema, aunque también es usual poner un enlace en
                                                          la raíz llamado /vmlinuz (o similar). En esta directiva podemos
                                                          especificar cualquiera de los dos.


                                                       • other = CAMINO: dispositivo que contiene un sistema operativo
                                                          diferente a GNU/Linux o similar.


                                                       • label = NOMBRE: etiqueta para el sistema operativo. Esta direc-
                                                          tiva es obligatoria para todas las secciones locales que tengamos
                                                          configuradas, ya que si no, no podríamos identificarlas de ningu-
                                                          na forma.


                                                       • alias = NOMBRE: sinónimo para la misma sección local. Pode-
                                                          mos tener tantos como queramos.


                                                       • root = DISPOSITIVO: esta opción sólo es válida para los sis-
                                                          temas GNU/Linux o similares. Se le especifica en qué dispositivo
                                                          está situada la raíz del sistema de ficheros (root filesystem). Esta
                                                          opción se pasa como argumento al cargar el núcleo del sistema
                                                          y es opcional; si no se le pasa nada, se coge la que tiene configu-
                                                          rada por defecto la imagen del núcleo.


                                                       Hay algunas de las directivas del Lilo que también pueden ser confi-
                                                       guradas directamente sobre la imagen del núcleo del operativo. Con
                                                       el comando rdev podemos configurar las posibles opciones de una
                                                       imagen núcleo Linux. Algunas de ellas son la raíz del sistema de fi-
                                                       cheros (si no lo configuramos con el Lilo, se coge el que hay en la
                                                       imagen), el modo vga, etc.


                                                       Si queremos proteger adecuadamente el sistema de arranque del or-
        Contenido
        complementario                                 denador, debemos añadir algunas directivas más en este fichero de
              Con el Lilo o el Grub pode-              configuración. Lo primero que debemos hacer es proteger la BIOS o
ANOTACIONES




              mos pasar parámetros al nú-              EFI con una contraseña y configurar la secuencia de arranque para
              cleo Linux en el momento de
                                                       que sólo se pueda realizar a partir del disco duro. Con esto pasamos
              arrancar. Esto es muy útil
              cuando queremos realizar al-             toda la responsabilidad al Lilo. A partir de las directivas password
              guna operación específica en             = CONTRASEÑA y restricted, podremos configurar la seguri-
              el sistema; por ejemplo, pa-
              sando single o 1 se inicia-              dad del mismo de cinco maneras diferentes:
              ría el sistema en el runlevel 1,
              con root=/dev/hda3 es-
                                                                                  Debemos poner la directiva de password en
              pecificaríamos la raíz del sis-           Contraseña global         la sección global y al arrancar cualquiera de
              tema de ficheros, etc.                                              los sistemas se pedirá la contraseña.


                                                 128
Sistema operativo GNU/Linux básico                      © FUOC • 71Z799002MO
                                                                                  ©




                          En los sistemas que queramos que nos pida
                          contraseña debemos poner la directiva
 Contraseñas locales
                          password y sólo al arrancar éstos se pedirá la
                          misma.

                          Debemos poner la directiva de password y
 Contraseña               restricted en la sección global y sólo al
 restringido global       arrancar algún sistema pasando algún
                          parámetro al núcleo se pedirá la contraseña.

                          La contraseña se pone en la sección de global y
 Contraseña global        sólo ponemos el restricted en los sistemas
 y restringido local      que queremos que se pida contraseña al pasar
                          algún parámetro al núcleo.

                          Es lo mismo que la configuración anterior, pero
 Contraseña               con la ventaja de que podemos configurar
 y restringido local      diferentes contraseñas para los diferentes
                          sistemas que queremos arrancar.



Debemos tener en cuenta que si utilizamos la directiva password,
la contraseña se escribe en el fichero como un texto, de forma que
deberemos eliminar los permisos de lectura del lilo.conf para
todos los usuarios menos el root. Finalmente, después de escribir este
fichero de configuración podemos instalar el Lilo en el sector de
arranque configurado. Para hacerlo, sólo debemos ejecutar “lilo”.
Si quisiéramos desinstalarlo deberíamos pasarle el parámetro “-u”.


A continuación mostramos un ejemplo de este fichero de configu-
ración, preparado para arrancar un sistema GNU/Linux y otro
WindowsTM:


lba32
boot = /dev/hda
prompt
timeout = 50
message = /etc/message
default = debian
restricted
                                                                                                  ANOTACIONES



password = contraseña


       image = /vmlinuz
       label = debian
       root = /dev/hda1


       other = /dev/hda3
       label = w2000

                                                                            129
© FUOC • 71Z799002MO
  ©                                          Software libre



                                                 Toda esta configuración sirve para un arranque estándar del siste-
                                                 ma. También hay otro tipo de arranque que utiliza una imagen lla-
                                                 mada de RAM Disk (initrd). Este otro tipo de arranque sirve para
                                                 realizar una configuración modular del núcleo Linux. Es muy utiliza-
                                                 do cuando necesitamos un núcleo con alguna configuración espe-
                                                 cial, para incluir módulos en el mismo núcleo, para realizar una
                                                 imagen de arranque para un CD live, para tener una misma imagen
                                                 para todos los ordenadores de un laboratorio almacenada en un
                                                 único servidor, etc. De todas formas, las instalaciones estándar del
                                                 sistema operativo no utilizan casi nunca este tipo de arranque. Si
                                                 queremos crearnos una imagen de este tipo, podemos informarnos
                                                 en el manual de initrd y en el del programa mkinitrd.



                                                 6.3.2. Grub

                                                 Igual que el Lilo, el Grub también nos sirve para instalar un progra-
        Contenido
        complementario                           ma en la zona de arranque que queramos del ordenador. A diferen-
                                                 cia del Lilo, tiene muchísimas más posibilidades que lo hacen muy
              El Grub (GRand Unified
              Bootloader) es el programa         versátil: permite tener un pequeño intérprete de comandos al arran-
              de arranque del proyecto           car el ordenador, nos permite acceder a los archivos de las particio-
              GNU.
                                                 nes del disco sin cargar ningún operativo, etc. Como en el caso
                                                 anterior, en esta sección sólo veremos su configuración básica. Si
                                                 quisiéramos profundizar más en su uso, podemos recurrir a su ma-
                                                 nual o en el HOWTO correspondiente.


                                                 El sistema de arranque del Grub se carga en dos fases. Generalmen-
                                                 te, con la instalación del paquete, se incorporan dos ficheros corres-
                                                 pondientes a estas dos fases. Si queremos que al arrancar el Grub
                                                 no nos muestre ningún menú para seleccionar el operativo que que-
                                                 remos cargar, sólo debemos ejecutar el programa Grub y ejecutarlo
                                                 en el intérprete de comandos que nos muestra:
ANOTACIONES




                                                 $   install     (hd0,0)/PATH/stage1           d   (hd0)     (hd0,0)/
                                                 PATH/stage2


                                                 Esta instrucción instala el Grub en la MBR del disco maestro del pri-
                                                 mer canal IDE. La forma como se referencian los discos varía un
                                                 poco de como se hace en GNU/Linux y con el Lilo. En “hdX” la “X”,
                                                 en lugar de “a”, “b”,. . . , es “0”, “1”, etc. Para las particiones tam-
                                                 bién se empieza con el número “0” para denominar la primera y a

                                           130
Sistema operativo GNU/Linux básico                         © FUOC • 71Z799002MO
                                                                                     ©




diferencia de hda1, se debe escribir (hd0,0)y consecutivamente
para las otras. Leyendo la instrucción de esta forma fijémonos cómo
el primer parámetro sirve para designar dónde está el archivo de la
primera fase del Grub (le indicamos la partición correspondiente, di-
rectorio –PATH y fichero -stage1-). Generalmente, cuando instala-
mos el paquete del Grub también se añaden estos dos ficheros para
cada una de las fases de carga (suelen estar situados en /usr/sha-
re/grub/i386-pc/). El parámetro d (hd0) indica que la prime-
ra fase del Grub se instalará en la MBR del primer disco. La última
opción especifica dónde está situado el fichero para la segunda fase
de carga, que es ejecutada por la primera.


Con esta configuración, al reiniciar el ordenador aparecerá, por de-
                                                                              Nota
fecto, el intérprete de comandos del Grub. Con él podemos manipu-
                                                                              Para ver todos los coman-
lar muchos aspectos del disco, arrancar el sistema operativo que              dos disponibles en el shell
queremos, etc. Si deseamos arrancar un sistema GNU/Linux escribi-             del Grub podemos apretar
                                                                              TAB. También se incluyen
remos las siguientes instrucciones:
                                                                              ayudas para tener una refe-
                                                                              rencia completa de todos
                                                                              los comandos.
$ kernel (hd0,0)/vmlinuz root=/dev/hda1 $ boot


Con la primera indicamos dónde está situada la imagen núcleo (con
                                                                              Nota
los parámetros que queramos) y con la segunda iniciamos el proceso
                                                                              Otra forma de instalar el
de carga del operativo. Si optamos por un menú de selección para              grub es utilizando el pro-
no tener que escribir estos comandos cada vez que arrancamos el or-           grama grub-install.
denador podemos generar un fichero de menú como el siguiente (los
comentarios empiezan por “#”):


#Especificación del operativo que se cargará por
defecto. #Este número está en correspondencia con
el orden de los #sistemas que hay en las secciones
locales a los operativos. default 0
                                                                                                       ANOTACIONES




#Indicamos que espere 10 segundos antes de cargar
el sistema #configurado por defecto.
timeout 10


#Configuración de arranque para un sistema GNU/Li-
nux title Debian GNU/Linux
kernel (hd0,0)/vmlinuz root=/dev/hda1

                                                                        131
© FUOC • 71Z799002MO
  ©                                     Software libre



                                            #Configuración de arranque para un sistema Windows
                                            title W2000
                                            root (hd0,2)
                                            makeactive


                                            Para instalar el Grub con este menú de arranque, deberíamos ejecu-
                                            tar la misma instrucción que anteriormente pero añadiendo el pará-
                                            metro p (hd0,0)/PATH/menu.lst con el disco, camino y fichero
                                            de menú. Para proteger el sistema de arranque (que desprotegido es
                                            aún más peligroso que con el Lilo) podemos poner la directiva de
                                            password CONTRASEÑA en la sección global del fichero de confi-
                                            guración. De esta forma, cuando desde el menú se quiera entrar en
                                            el shell del Grub se pedirá la contraseña. Como en el caso del Lilo,
                                            si utilizamos esta directiva es muy importante que sólo el root pueda
                                            leer este archivo de configuración (aunque en este caso también exis-
                                            te la opción de poner la contraseña cifrada con MD5).




                                             6.4. Acceso a otras particiones y dispositivos


                                            Los sistemas tipo UNIX tratan todos los dispositivos del ordenador
                                            como si fueran ficheros. Esto nos permite mucha flexibilidad, ya que
                                            podemos aprovechar todos los mecanismos y funciones que utilizá-
                                            bamos con los ficheros y aplicarla a los dispositivos. En el directorio
                                            /dev/ tenemos todos los dispositivos reconocidos por el sistema. Si
                                            el sistema no reconoce adecuadamente un dispositivo o queremos
                                            crear uno especial, el comando mknod nos permite realizar esta cla-
                                            se de operaciones, aunque es importante saber exactamente qué
                                            queremos hacer antes de utilizarlo, ya que su mal uso podría dañar
    Contenido                               partes del sistema.
    complementario

        Para la disquetera y CD/
ANOTACIONES




        DVD muchas distribuciones           Para las unidades de almacenamiento, el sistema nos proporciona
        ya crean un directorio por          otro tipo de operación para poder acceder a sus sistemas de archi-
        defecto donde montarlos
                                            vos, la de montaje . Para esta operación utilizaremos los comandos
        (/floppy/ o /mnt/
        floppy/ y /CD-ROM/ o                mount y umount, que sitúan (montan) o desmontan todo el sistema
        /mnt/CD-ROM/). También              de ficheros de un determinado dispositivo/unidad en un directorio
        se suele proporcionar el
        directorio /mnt/, donde             existente del sistema. La forma básica de utilizar el comando es
        podemos crear directorios           “mount     dispositivo       directorio”, donde dispositivo
        para otros dispositivos que         puede referenciar cualquier dispositivo del canal IDE o SCSI (/dev/
        tengamos en el sistema.
                                            hdXX, /dev/sdXX), la disquetera (dev/fdX), cintas de backup, etc.

                                      132
Sistema operativo GNU/Linux básico                    © FUOC • 71Z799002MO
                                                                                 ©




y directorio es la ubicación donde montaremos la estructura de
ficheros del dispositivo. Es recomendable que el directorio donde
montemos estos dispositivos esté vacío, ya que cuando se utiliza
como punto de montaje no se puede acceder a ellos.


Para desmontar uno de estos dispositivos podemos utilizar “umount
directorio”, donde directorio debe ser el punto de montaje utili-
zado. Si montamos dispositivos como un disquete o CD, es impor-
tante no sacar el dispositivo del soporte, ya que antes debemos
avisar al sistema para que actualice la caché del sistema de ficheros
del dispositivo. Igualmente, tampoco podemos desmontar el dispo-
sitivo si algún usuario o aplicación está utilizando alguno de sus ar-
chivos o directorios (al intentarlo, el sistema daría un mensaje de
error).


Fijémonos que con el comando de montaje no estamos especifican-
do en ningún momento el tipo de sistema de ficheros utilizado en la
unidad que queremos montar, de forma que se deberá determinar
de forma automática. Si queremos especificarlo manualmente, po-
demos pasar al comando mount el parámetro “-t tipo” donde
tipo podría ser alguno de los de la siguiente tabla (ir al manual de
mount para ver el listado completo):


 TIPO         SISTEMA

 ext          GNU/Linux (versiones de núcleo anteriores a 2.1)

 ext2         GNU/Linux (versiones de núcleo posteriores a 2.1)

 ext3         GNU/Linux (versiones de núcleo posteriores a 2.2 o 2.4)

 swap         Sistema de swap de GNU/Linux

 sysv         Sistemas tipo UNIX

 minix        MINIX
                                                                                                 ANOTACIONES



 iso9660      Sistema de ficheros que utilizan la mayoría de CD

 nfs          Sistema de ficheros remoto (Network File System)

              Sistema de ficheros remoto en redes Windows TM (Samba File
 smbfs
              System)

 ntfs         Rama de WindowsNTTM

 msdos        MS-DOS TM

 vfat         Rama de Windows95 TM


                                                                           133
© FUOC • 71Z799002MO
  ©                        Software libre



                               Además de pasar el tipo de sistema de ficheros utilizado por la uni-
                               dad que queremos montar, también podemos indicar otras opciones
                               que nos pueden ser muy útiles en determinadas situaciones (siempre
                               precedidas por “-o” y, si queremos pasar más de una, separadas
                               por comas):


                                significado de la opción                 permitimos    no permitimos

                                Ejecución de binarios                    exec          noexec

                                Uso del bit de SetUserId                 suid          nosuid

                                Ficheros de sólo lectura                 ro            rw

                                Sistema sincronizado (uso de caché de    sync          async
                                disco)

                                Interpretación de caracteres o bloques
                                                                         dev           nodev
                                especiales

                                Permiso para que cualquier usuario
                                                                         user          nouser
                                monte o desmonte el dispositivo

                                Sistema de tipo swap                     sw

                                (si pasásemos defaults se utilizarían las opciones rw, suid, dev, exec,
                                auto, nouser y async)



                               En la siguiente figura podemos ver un ejemplo de utilización de este
                               comando para montar varios dispositivos diferentes:
ANOTACIONES




                               Además de estos comandos para montar y desmontar unidades, el
                               sistema operativo nos proporciona otro modo de hacer lo mismo y
                               tener siempre una determinada configuración según la unidad. En el
                               fichero /etc/fstab podemos guardar esta información de forma

                         134
Sistema operativo GNU/Linux básico                          © FUOC • 71Z799002MO
                                                                                      ©




que cada línea indicará una unidad con su directorio de montaje y
las opciones que queramos configurar. La sintaxis de cada una de
estas líneas será:


<disp> <dir> <tipoSistema> <opciones> <dump> <orden>


En el primer campo debemos especificar el dispositivo tal como ha-
                                                                               Nota
cíamos con el comando de mount y el segundo será el directorio
                                                                               Con el comando “mount -
donde queremos montar la unidad indicada. En el campo de tipo-
                                                                               a” se montarían todos los
Sistema podemos especificar el sistema de ficheros que utiliza la              dispositivos que tuviesen la
unidad o bien auto para que lo detecte automáticamente. En op-                 opción de auto activada
                                                                               (que está por defecto) de
ciones podemos escribir las mismas que utilizábamos con el co-                 este fichero de configura-
mando de mount, separadas por comas si ponemos más de una.                     ción.
Una opción útil de este campo es la configuración de auto o noau-
to, con lo cual indicamos al sistema que monte automáticamente (o
no) la unidad al arrancar. El campo de dump indica si queremos
realizar copias de seguridad (más información en el manual de
dump). Si no utilizamos este sistema, podemos poner un “0”. El últi-
mo campo sirve para indicar el orden de montaje de las unidades.
Si le ponemos un “0”, indicamos que el orden no es importante. La
raíz del sistema de ficheros es lo primero que se debe montar, con lo
cual en este campo debería haber un “1”.


Una entrada que siempre veremos en este fichero y que nos puede
sorprender es la del directorio /proc/, que tiene un significado es-
pecial. Realmente, lo que hay en este directorio no son ficheros, sino
el valor de muchas de las variables que utiliza el núcleo del sistema.
Siguiendo la misma política del operativo, con la cual todo se debe
poder referenciar como un archivo, en el directorio /proc/ también
podemos manipular variables internas del núcleo como si se tratara
de ficheros.
                                                                                                         ANOTACIONES



Aunque todo este diseño para montar las unidades en la estructura
jerárquica de directorios es muy potente y nos permite mucha flexi-
bilidad, en algunos casos no es muy práctico. Por ejemplo, cada vez
que queremos copiar un archivo a un disquete tendremos que mon-
tar la unidad, copiar y desmontarla de nuevo. Por esta razón, existen
algunas otras aplicaciones que nos facilitan todo este proceso para
ahorrarnos algunos pasos. Una de ellas son las mtools, que es un
paquete con varias aplicaciones que nos permiten copiar directa-

                                                                         135
© FUOC • 71Z799002MO
  ©                        Software libre



                               mente archivos a un disquete y desde un disquete, y algunas otras
                               herramientas interesantes. También existe un paquete llamado au-
                               tofs, que detecta automáticamente la inserción de algún dispositivo
                               en el sistema y los monta sin necesidad de escribir ningún comando.




                                6.5. Configuración de dispositivos


                               Aunque en los inicios de GNU/Linux no era así, actualmente cada
                               vez más fabricantes proporcionan drivers para sus dispositivos espe-
                               ciales de GNU/Linux. Antes de intentar configurarlos, debemos bus-
                               car información sobre ellos en los mismos manuales del sistema, los
                               módulos, en Internet, etc. para ahorrarnos problemas en su puesta
                               en marcha. Aunque actualmente la mayoría de dispositivos cuentan
                               con HOWTOS, manuales o algún tipo de documentación, es impor-
                               tante que antes de comprar uno nuevo, nos informemos adecuada-
                               mente de si existe algún driver disponible para él.


                               Aunque en esta sección sólo veremos cómo configurar algunos de
                               los dispositivos más frecuentemente utilizados en los ordenadores
                               personales, según la distribución que utilicemos, el proceso puede
                               variar significativamente. En toda la sección nos hemos basado en el
                               sistema que se utiliza en Debian GNU/Linux, aunque si aprendemos
                               desde la base cómo funciona este proceso, no deberíamos tener pro-
                               blemas para buscar cuál es la configuración que se utiliza en otras
                               distribuciones.



                               6.5.1. El teclado

                               La correcta configuración del teclado es un aspecto muy importante
ANOTACIONES




                               para poder solucionar cualquier problema que nos surja con él. En
                               primer lugar, debemos saber que cuando el sistema arranca, se car-
                               ga un mapa de caracteres correspondiente al configurado en el pro-
                               ceso de instalación. Este mapa de caracteres se suele encontrar
                               situado en /etc/console/boottime.kmap.gz o en algún otro
                               directorio de /etc/. Si cambiásemos de teclado, sólo tendríamos
                               que cambiar este fichero con el que correspondiera al nuevo teclado
                               y al arrancar de nuevo ya se cargaría el nuevo mapa. Todos los ma-
                               pas de caracteres existentes se suelen situar dentro del directorio /

                         136
Sistema operativo GNU/Linux básico                            © FUOC • 71Z799002MO
                                                                                         ©




usr/share/keymaps/ ordenados por arquitecturas de ordenado-
res y países. Concretamente, el que utilizamos en España con orde-
nadores basados en la arquitectura i386 y un teclado estándar lo
encontraríamos en i386/qwerty/es.kmap.gz.


Aunque todos estos mapas de caracteres están comprimidos en for-
mato gzip, podemos descomprimirlos y cambiar alguna de sus en-
tradas para adaptarlas a nuestras necesidades. En cada línea
encontramos la directiva keycode, que indica que estamos definien-
do una tecla, indicada en el número que sigue a la directiva (pode-
mos saber qué número corresponde con cada una de las teclas a
partir del comando showkey). Después de esta definición, tenemos
los significados que tiene la tecla apretándola sola, con el SHIFT, etc.


Veámoslo con un ejemplo:


keycode 53 = minus underscore control keycode 53 =
Delete


En la primera línea se indica qué carácter corresponde al apretar la
                                                                                 Contenido
tecla sola (minus) o con el SHIFT apretado (underscore). La se-                  complementario
gunda nos muestra la función que se realizará en caso de apretar la               Con el programa conso-
tecla juntamente con la de CTRL (se eliminaría el siguiente carácter).            lechars podemos cargar
Toda la información necesaria para configurar correctamente un ar-                la fuente que queremos en
                                                                                  el terminal. Debemos dife-
chivo de este tipo la podemos encontrar en el manual de keymaps,                  renciar claramente lo que es
muy útil cuando nos encontramos con algún problema con teclados                   una fuente y lo que es el
                                                                                  mapa de caracteres: el
especiales o de otros países. Si no queremos reiniciar el sistema al
                                                                                  mapa nos determina qué
cambiar este fichero de mapa, podemos utilizar el comando                         significado tiene cada tecla,
loadkeys (dumpkeys nos muestra las configuradas).                                 mientras que la fuente es
                                                                                  sólo la representación gráfi-
                                                                                  ca que le damos a la mis-
Otro aspecto relacionado con el teclado es el tema de las diéresis,               ma. Toda la configuración
                                                                                  de las fuentes de caracteres
                                                                                                             ANOTACIONES


acentos, etc. Todo ello lo podemos configurar a partir del fichero de             se suele encontrar en /
/etc/inputrc (todas las directivas posibles de este fichero las te-               etc/console-tools /
                                                                                  config.
nemos especificadas en el manual de readline). La que nos puede
ser más útil es la de convert-meta, que desactivándola (set
convert-meta off) nos permite utilizar los acentos y diéresis (pa-
ra el catalán).


Finalmente, otra configuración importante (indirectamente relacio-
nada con el teclado) es la de locales. Con locales podemos configu-

                                                                           137
© FUOC • 71Z799002MO
  ©                                              Software libre



                                                     rar la zona o zonas geográficas en las que estamos para poder
                                                     utilizar teclas especiales del teclado, ver las fechas en el formato al
                                                     que estamos acostumbrados, etc. Esta configuración es utilizada por
                                                     muchas de las librerías del sistema, de forma que en muchos coman-
                                                     dos y aplicaciones del sistema se utilizará su configuración para
                                                     adaptar algunas funciones a nuestro entorno local. Su configuración
                                                     la podemos encontrar en /etc/locale.gen y podemos utilizar los
                                                     comandos locale-gen y locale para verla o actualizarla.



                                                     6.5.2. Tarjeta de red (tipo Ethernet)

                                                     Para configurar una nueva tarjeta de red (tipo Ethernet), lo primero
        Contenido
        complementario                               que debemos hacer es añadir el módulo del núcleo necesario para

              Con “discover -module                  que se reconozca adecuadamente. Aunque en algunas tarjetas es
              Ethernet” podemos sa-                  posible que no tengamos que realizar este paso porque el mismo nú-
              ber qué módulo necesita
                                                     cleo ya puede estar compilado para reconocer las más habituales,
              nuestra tarjeta de red. Si
              queremos dejarlo configu-              debemos asegurarnos (antes de comprar la tarjeta) de que existe el
              rado para que se cargue                driver o módulo necesario para ella.
              siempre deberíamos escri-
              birlo en /etc/modules (si
              no, con modprobe o ins-                Una vez el sistema reconoce la tarjeta, ya podemos configurarla de
              mode podemos insertarlo).
                                                     la forma que queramos.


                                                     En el fichero /etc/network/interfaces podemos especificar
              Nota
                                                     toda su configuración, donde también tendremos la de las otras in-
              Otra forma de denominar
              las tarjetas de red es con las         terfaces del sistema. Una interfaz es un dispositivo (real o lógico) re-
              siglas de Network Interface            lacionado con la red a partir del cual el sistema se puede comunicar
              Card (NIC).
                                                     con otros ordenadores, ofrecer unos determinados servicios, etc. Son
                                                     las puertas que tiene el sistema para poderse comunicar. Para cada

              Nota                                   interfaz reconocida en el sistema, en este fichero se le especifican las
                                                     directivas necesarias para su correcto funcionamiento.
              Otra forma de reconfigurar
              el keymap y las locales en
ANOTACIONES




              Debian es utilizado "apt-re-
              configure console-data" o              Vamos a verlo con un ejemplo:
              "apt-reconfigure locales" res-
              pectivamente.
                                                     #Interfície de loopback
                                                     auto lo
                                                     iface lo inet loopback


                                                     #NIC
                                                     auto eth0

                                               138
Sistema operativo GNU/Linux básico                                      © FUOC • 71Z799002MO
                                                                                                   ©




iface     eth0 inet static
          address 192.168.0.10
          netmask 255.255.255.0
          network 192.168.0.0                      #opcional
          broadcast 192.168.0.255                  #opcional
          gateway 192.168.0.1                      #opcional


La primera entrada que encontraremos en este fichero suele ser para
la interfaz de loopback. Esta interfaz no se corresponde con ninguna
tarjeta ni dispositivo real del ordenador, sino que es un mecanismo
del operativo que le permite utilizar los protocolos de comunicación
de forma interna. De esta forma, si probamos funciones de la red sin
comunicarnos con ningún otro ordenador no hace falta ni siquiera
tener una tarjeta de red instalada. En todas las entradas encontra-
mos la directiva de auto antes de especificar la configuración del
dispositivo. Esta directiva indica que la tarjeta se puede montar au-
tomáticamente cuando el sistema arranca. La directiva de iface es-
pecifica el tipo de tarjeta y protocolo que se utilizará con ella por
medio de la siguiente sintaxis: “iface dispositivo familia-
Protocolo métodoConfiguración”. Con las tarjetas Ethernet
el dispositivo será ethX, donde la “X” será un número empezando
por “0”, que indica el número de tarjeta instalada en el ordenador.
La familia del protocolo de comunicación utilizado con la tarjeta sue-
le ser cualquiera de los siguientes:


• inet: IPv4, utilizado en Internet y la mayoría de redes locales.


• inet6: IPv6, la nueva versión de IPv4, que poco a poco se va ins-
                                                                                           Nota
   taurando.
                                                                                           A partir de las versiones 2.2
                                                                                           del núcleo Linux, ya se puede
• ipx: para redes NovellTM .                                                               utilizar una nueva infraestruc-
                                                                                           tura de red denominada
                                                                                           iproute2. Con ella pode-
                                                                                                                       ANOTACIONES


Finalmente, en el último campo se indica cómo se obtiene la confi-                         mos manipular todos los as-
                                                                                           pectos relacionados con
guración de red de la tarjeta (su dirección, la red dónde está, el ga-
                                                                                           nuestras NIC y las tablas in-
teway que hay que utilizar, etc.). En la siguiente tabla podemos ver                       ternas que utiliza el operativo
cuáles son estas opciones para la familia de protocolos inet:                              para manejar todo lo relacio-
                                                                                           nado con la red.


 CONFIG           OPCIONES             DESCRIPCIÓN

 loopback                              Método para definir la interfaz de loopback (se debe utilizar con la interfaz lo).

 static                                Método para configurar una NIC con una dirección IP estática.


                                                                                  139
© FUOC • 71Z799002MO
  ©                              Software libre



    CONFIG        OPCIONES       DESCRIPCIÓN

                  address        Dirección IP de la interfaz. Campo requerido.

                  netmask        Máscara de la dirección IP. Campo requerido.

                  broadcast      Dirección de broadcast. Si no se especifica, se calcula automáticamente.

                                 Dirección de identificación de red. Sólo requerida para versiones del núcleo
                  network
                                 2.0.X.

                  gateway        Dirección IP del gateway que utilizamos para esta interfaz.

                                 Método para configurar de forma remota la IP de todos los ordenadores de una
    dhcp
                                 red local (Dynamic Host Configuration Protocol).

                  hostname       IP del servidor de DHCP.

                  leasehours     Tiempo, en horas, de alquiler de la IP (pasado este tiempo, se renueva).

                  leasetime      Tiempo, en segundos, de alquiler de la IP.

                  vendor         Identificador de tipo de servidor (en general, dhcpd).

                  client         Identificador del tipo de cliente (en general, dhcpd).

                                 Método para configurar de forma remota la IP de todos los ordenadores de una
    bootp                        red local (BOOT Protocol). Actualmente se utiliza más DHCP.

                  bootfile       Fichero a utilizar en el momento de arranque.

                  server         Dirección IP del servidor de BOOTP.

                  hwaddr         Dirección MAC del servidor BOOTP.

    ppp                          Método utilizado con el protocolo Point to Point Protocol, usado en los módems.

                  provider       Proveedor del servicio.



                                     Aunque en este capítulo no entraremos en redes de computadores,
                                     debemos saber que disponemos de muchos comandos para mane-
                                     jar la configuración de red del sistema operativo. Los más importan-
                                     tes son ifconfig, con el cual podemos ver los dispositivos
                                     configurados, ifdown e ifup, que nos permiten apagar o encen-
                                     der la interfaz que queremos y route, que nos muestra la tabla de
                                     routing del sistema.
ANOTACIONES




                                     6.5.3. Tarjeta WiFi

                                     Las redes de comunicación sin cables son cada vez más frecuentes,
                                     tanto en instalaciones domésticas como en instituciones, escuelas o
                                     empresas. Para la instalación de las mismas, se debe disponer de lo
                                     que denominamos puntos de acceso, que son unos dispositivos co-
                                     nectados a la red física de la institución. Estos puntos de acceso per-
                                     miten que, a partir de unas tarjetas PCMCIA, cualquier ordenador de

                               140
Sistema operativo GNU/Linux básico                        © FUOC • 71Z799002MO
                                                                                     ©




su alrededor pueda conectarse a la red. De esta forma, se simplifica
mucho el cableado de los edificios.


Para que nuestro GNU/Linux detecte y configure adecuadamente
una tarjeta wireless (de tipo PCMCIA) debemos añadir al núcleo del
sistema los módulos orinoco cs y hermes, que en muchos casos
ya vienen compilados en el mismo núcleo. Toda la configuración de
estas tarjetas se guarda en los ficheros del directorio /etc/pcm-
cia/. Lo único que debemos añadir en el fichero /etc/pcmcia/
config.opts es (dependiendo de la tarjeta deberíamos cambiar
la directiva de “card”):


card “ Conceptronic Wireless”
      version “802.11”, “11Mbps Wireless LAN Card”
      bind “orinoco_cs”


Con esto ya conseguimos que el sistema reconozca la tarjeta wireless
como un dispositivo más del sistema. Si no tenemos ninguna otra tar-
jeta Ethernet instalada, se referenciará como eth0, eth1 si ya te-
nemos una, etc. A continuación, lo único que nos faltará para que la
tarjeta se conecte al punto de acceso será editar el fichero /etc/
network/interfaces y añadirle la configuración necesaria para
que se le asigne una IP. Naturalmente, esta interfaz del sistema la
podemos tratar como cualquier otra, utilizando los mecanismos de
firewall del sistema, con las aplicaciones iproute2, etc.

                                                                             Contenido
                                                                             complementario
6.5.4. Módems
                                                                              Los paquetes que contienen
                                                                              los programas necesarios
Para la configuración de un módem generalmente se suele utilizar la           para la conexión a Internet
                                                                              con un módem suelen nom-
aplicación pppconfig, que escribe los archivos de configuración
                                                                              brarse ppp y pppconfig.
necesarios para el daemon del sistema ppp, que es el programa en-
                                                                                                        ANOTACIONES



cargado de establecer la conexión a Internet. Con pppconfig (o
                                                                             Contenido
aplicaciones similares) siempre se deben realizar unos determinados          complementario
pasos, que detallamos a continuación:
                                                                              Con pppconfig tenemos
                                                                              un menú que nos permite
                                                                              añadir, modificar o eliminar
1) Nombre del proveedor: el proveedor es la empresa con la que
                                                                              conexiones. Los pasos que
   tenemos el contrato de conexión a Internet. Este nombre sirve              mostramos se corresponden
   para poder identificar cada conexión que configuremos de for-              con la inserción de una nue-
                                                                              va conexión.
   ma única.

                                                                       141
© FUOC • 71Z799002MO
  ©                        Software libre



                               2) Configuración de servidores de nombres: cuando establecemos
                                  el contrato con nuestro proveedor, generalmente se suelen pro-
                                  porcionar la/s IP de los servidores de nombres que deben utilizar-
                                  se. Si tenemos estas IP, debemos indicar que utilizamos una
                                  configuración estática, con lo cual seguidamente se nos pedirán
                                  estas IP. Sólo en el caso de que nuestro proveedor nos indique
                                  que la configuración de DNS es dinámica, debemos escoger este
                                  otro tipo de configuración. Con la tercera opción, que nos infor-
                                  ma de que DNS será tratado por otros medios, podemos utilizar
                                  la configuración del fichero /etc/resolv.conf.

                               3) Método de autentificación: el método de autentificación puede ser
                                  PAP o CHAP. Generalmente, los proveedores suelen utilizar el PAP
                                  (Peer Authentication Protocol), aunque si no funcionara debería-
                                  mos informarnos adecuadamente.

                               4) Nombre de usuario y contraseña: ésta es la información que nos
                                  proporciona el proveedor para poder conectarnos y acceder a sus
                                  servicios.

                               5) Velocidad del módem: según qué módem tengamos, podremos
                                  acceder a Internet a mayor o menor velocidad. Actualmente, to-
                                  dos van a 115200 bps, con lo que lo más recomendable es dejar
                                  el valor “115200”. Si tuviéramos un módem más lento, ya se sue-
                                  le detectar y reconfigurar automáticamente en el momento de la
                                  conexión.

                               6) Llamada con pulsos o tonos: la mayoría de centralitas telefónicas
                                  ya funcionan con tonos, aunque en determinadas zonas rurales
                                  aún se utiliza el antiguo sistema de pulsos.

                               7) Número de teléfono: este número también debe proporcionarlo
                                  el proveedor de Internet.

                               8) Puerto de comunicación: el puerto de comunicación es el puerto
ANOTACIONES




                                  en el cual tenemos conectado el módem. Si le indicamos que lo
                                  detecte automáticamente, se realizará un chequeo de todos los
                                  puertos y se configurará automáticamente. Si no, podemos indi-
                                  carlo con /dev/ttySX, donde la “X” es un 0 para el COM1,
                                  un 1 para el COM2, etc.


                               Toda esta configuración se suele almacenar en los archivos situados
                               en el directorio /etc/ ppp/. Aunque también podemos editar estos

                         142
Sistema operativo GNU/Linux básico                          © FUOC • 71Z799002MO
                                                                                      ©




ficheros y cambiar las directivas manualmente, es más recomenda-
ble utilizar alguna aplicación automática, ya que su configuración es
bastante compleja. Para establecer la conexión con nuestro provee-
dor, deberíamos iniciar el daemon ejecutando “/etc/init.d/ppp
start”. Para pararlo, podemos utilizar “/etc/init.d/ppp
stop”.



6.5.5. Tarjeta de sonido

La tarjeta de sonido necesita la inserción de un módulo del núcleo
del sistema para poder funcionar correctamente. Si tenemos instala-
da la aplicación discover, podemos descubrir qué módulo es el
que corresponde con nuestra tarjeta por medio del comando “dis-
cover --module sound”. Para instalar el módulo, podemos utili-
zar los comandos insmod o modprobe, y si queremos dejarlo
configurado permanentemente, deberíamos escribirlo en el fichero
/etc/modules.


Aunque con la inclusión del módulo correspondiente ya podremos
                                                                               Contenido
utilizar la tarjeta de sonido adecuadamente, generalmente también              complementario
se suele instalar la infraestructura de sonido ALSA (Advanced Linux
                                                                                ALSA es un proyecto que ha
Sound Architecture). Generalmente, la mayoría de distribuciones lo              desarrollado mucho soft-
suelen incluir por defecto, aunque si no es así, se puede instalar con          ware relacionado con apli-
                                                                                caciones de tratamiento de
el paquete correspondiente.                                                     sonido, nuevos módulos
                                                                                para el núcleo Linux, etc.


6.5.6. Impresora

En GNU/Linux, la configuración de impresoras se puede realizar con
muchas aplicaciones diferentes. Aunque el lpd (Line Printer Dae-
mon) fue uno de los primeros programas de gestión de impresión
que aparecieron en los sistemas tipo UNIX, actualmente existen mu-
                                                                                                        ANOTACIONES



chísimos más fáciles de configurar y gestionar. A continuación, co-
mentamos algunos de los más utilizados:


• lpd: uno de los primeros daemons de impresión de los sistemas
   tipo UNIX. Su configuración debe realizarse manualmente.


• lpr: la versión de BSD del lpd. Es muy recomendable utilizar al-
   gún tipo de filtro automático como magicfilter o apsfilter

                                                                         143
© FUOC • 71Z799002MO
  ©                                            Software libre



                                                      para configurar las impresoras. Este tipo de filtro detecta automá-
                                                      ticamente el tipo de fichero a imprimir y prepara la impresión
                                                      adecuadamente (utiliza un filtro llamado IFHP).


                                                   • lprng: aplicaciones basadas en lpr con la ventaja que incor-
                                                      pora una herramienta de configuración denominada lprng-
                                                      tool, que permite realizar la configuración de forma gráfica y
                                                      sencilla.


                                                   • gnulpr: la versión de GNU del sistema de impresión lpr. Tam-
                                                      bién incorpora herramientas gráficas de configuración, gestión
                                                      de los servicios, etc.


                                                   • CUPS: de Common UNIX Printing Systems, este conjunto de apli-
                                                      caciones es compatible con los comandos de lpr y también sirve
                                                      para redes WindowsTM . Utiliza un conjunto de filtros propios y so-
                                                      porta la gran mayoría de impresoras del mercado.


                                                   Aunque todas estas aplicaciones tienen sus propios métodos de con-
        Contenido
        complementario                             figuración, todas utilizan el fichero /etc/printcap para guardar-

              Al configurar un servidor de         la. Generalmente, también utilizan algún tipo de daemon para que
              impresión, es importante             el sistema de impresión sea operativo. El daemon se puede configu-
              que configuremos adecua-
                                                   rar para que el ordenador al que está conectada la impresora sirva
              damente desde qué máqui-
              nas/usuarios permitimos la           como servidor de impresión. De este modo, varios ordenadores de
              impresión. De otro modo,
                                                   la misma red podrán utilizar la misma impresora, ahorrando recur-
              un atacante podría aprove-
              char la vulnerabilidad y             sos. Para los clientes de impresión se pueden utilizar los mismos pro-
              aprovechar nuestros recur-           gramas especificando, en la configuración, que la impresora es
              sos, dejar la impresora sin
              papel, etc.                          remota (generalmente se debe proporcionar la IP del servidor de im-
                                                   presión y la cola).


                                                   Si queremos configurar un servidor de impresión para redes WindowsTM
ANOTACIONES




        Contenido
        complementario                             o configurar una impresora de un servidor WindowsTM desde un

              Swat (Samba Web Adminis-             cliente GNU/Linux, debemos utilizar otro tipo de programas. Samba
              tration Tool) es una herra-          es un conjunto de aplicaciones de GNU/Linux que utilizan los proto-
              mienta muy útil para la
                                                   colos de las redes WindowsTM . Aunque sus funcionalidades van
              configuración de un servi-
              dor de samba.                        mucho más allá de la configuración de un servidor o cliente de im-
                                                   presión, para poder utilizar impresoras en WindowsTM tendremos
                                                   que utilizar este conjunto de aplicaciones o bien las que nos propor-
                                                   ciona CUPS.

                                             144
Sistema operativo GNU/Linux básico                 © FUOC • 71Z799002MO
                                                                            ©




 7. Daemons y runlevels




 7.1. Los daemons


Como ya sabemos, GNU/Linux nos permite ejecutar simultánea-
mente tantos procesos como queramos repartiendo equitativa-
mente el tiempo de la CPU entre ellos. De hecho, el mecanismo
de manejo de procesos también debe tener en cuenta lo que se
llaman interrupciones. Una interrupción es una señal que llega
al núcleo del sistema desde cualquiera de los dispositivos que te-
nemos instalados en nuestro ordenador. Estas interrupciones
suelen estar vinculadas a algún proceso en concreto, de forma
que el núcleo debe despertar el proceso en cuestión (si no está
en ejecución) y redirigirle la interrupción para que la procese
adecuadamente. Un ejemplo típico de interrupción es cuando
apretamos una tecla del teclado o movemos el ratón: al hacerlo,
el dispositivo envía una señal que debe ser redirigida hacia la
aplicación correspondiente para que sea tratada de forma ade-
cuada.


Para poder manejar adecuadamente todas las interrupciones que
se producen, el núcleo no escucha permanentemente a los dispo-
sitivos del sistema esperando sus señales. En lugar de hacerlo, el
sistema ejecuta las operaciones de los procesos en cola de ejecu-
ción y sólo cuando se produce una interrupción atiende al dispo-
sitivo que la ha generado. Esto debe realizarse de esta forma
debido a la gran diferencia de velocidad entre los dispositivos del
sistema y la CPU. El tratamiento de interrupciones es fundamen-
                                                                                            ANOTACIONES



tal para cualquier sistema operativo, ya que es este mecanismo,
entre otros, el que nos permite mantener en ejecución tantos pro-
cesos como queramos y, en cuanto lleguen las interrupciones,
despertar los procesos que las están esperando.




                                                                      145
© FUOC • 71Z799002MO
  ©                                              Software libre




                                                     Un daemon (Disk And Execution MONitor) es un proceso que, gene-
                                                     ralmente, tenemos cargado en memoria, esperando alguna señal
                                                     (proveniente de una interrupción de dispositivo o del mismo núcleo)
                                                     para despertarse y ejecutar las funciones necesarias para tratarla.
                                                     Aunque esta definición también puede encajar con otros procesos
                                                     del sistema (lanzados por los usuarios o por el mismo sistema), un
                                                     daemon también suele ajustarse a esta forma de ejecución (aunque
                                                     en algunos casos especiales, no). De esta forma, los daemons que
                                                     tengamos cargados no ocupan la CPU mientras no es estrictamente
                                                     necesario y por muchos que tengamos en memoria siempre podre-
                                                     mos trabajar con el ordenador sin problemas.
        Contenido
        complementario
                                                     Aunque un daemon sea un proceso como cualquier otro que se ejecuta
              Los shell scripts de los dae-
              mons no son más que una                en modo background, la forma como los organizamos y tratamos sí que
              herramienta para facilitar             es diferente del resto de comandos y programas del sistema. General-
ANOTACIONES




              todo su proceso de arran-
                                                     mente, todos los daemons tienen un shell script situado en el directorio
              que, parada, etc. En algunos
              casos, también podemos                 /etc/init.d/ que nos permite iniciarlo, pararlo o ver su estado de
              utilizar el mecanismo y or-            ejecución. Para realizar algunas de estas funciones debemos ejecutar el
              ganización de estos dae-
              mons para poder ejecutar               shell script correspondiente al daemon que queramos tratar pasándole
              ciertas operaciones que                alguno de los siguientes parámetros:
              nos interesen (escribiendo
              un shell script que se ejecute
              al entrar en un determinado            • start: para iniciar el daemon. Si éste ya estuviera ejecutándose,
              nivel de ejecución).
                                                        se muestra un mensaje de error.

                                               146
Sistema operativo GNU/Linux básico                         © FUOC • 71Z799002MO
                                                                                       ©




• stop: para parar el daemon. Si no estuviera ejecutándose, se
     muestra un mensaje de error.


• restart: reinicia el daemon. Sirve para que se vuelvan a leer los
     archivos de configuración del mismo.


• reload: aunque no todos los daemons lo permiten, este pará-
     metro sirve para poder recargar los archivos de configuración sin
     tener que pararlo.


La mayoría de estos scripts utilizan un programa llamdo start-
                                                                               Contenido
stop-daemon que nos proporciona el sistema operativo y que sirve               complementario
para el tratamiento de estos procesos. Es habitual que al administrar           Para ejecutar un daemon,
un servidor tengamos que diseñarnos nuestros propios daemons                    debemos llamarlo con su
                                                                                ruta    completa     (/etc/
para realizar alguna tarea concreta. En el directorio donde se sitúan
                                                                                init.d/ nombreDaemon)
todos los shell scripts de los daemons también se suele encontrar uno           y pasarle el parámetro que
de ejemplo (/etc/init.d/skeleton) para que lo podamos utili-                    nos interese. Algunas distri-
                                                                                buciones incorporan el co-
zar cuando necesitemos configurar uno nuevo que no esté en la dis-              mando service, que permite
tribución. Generalmente suelen estar programados de la siguiente                hacer lo mismo sin tener
                                                                                que especificar la ruta com-
manera:
                                                                                pleta.


#! /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:
        /usr/sbin:/usr/bin
        DAEMON=/usr/sbin/daemon
        NAME=daemon


DESC=”some daemon”


test -x $DAEMON || exit 0
set -e
                                                                                                           ANOTACIONES


case “$1” in
     start)
        echo -n “Starting $DESC: $NAME”
        start-stop-daemon --start --quiet --pidfile 
           /var/run/$NAME.pid --exec $DAEMON
           echo “.”
;;
stop)
      echo -n “Stopping $DESC: $NAME “

                                                                         147
© FUOC • 71Z799002MO
  ©                                            Software libre



                                                        start-stop-daemon --stop --quiet --pidfile 
                                                         /var/run/$NAME.pid --exec $DAEMON
                                                        echo “.”
                                                   ;;
                                                   restart|force-reload)
                                                        echo -n “Restarting $DESC: $NAME”
                                                        start-stop-daemon --stop --quiet --pidfile 
                                                        /var/run/$NAME.pid --exec $DAEMON
                                                   sleep 1
                                                   start-stop-daemon --start --quiet --pidfile 
                                                        /var/run/$NAME.pid --exec $DAEMON
                                                        echo “.”
                                                   ;;
                                                   *)
                                                        N=/etc/init.d/$NAME
                                                        echo “ Usage: $N {start|stop|restart|force-re-
                                                   load}” >&2
                                                        exit 1
                                                        ;;
                                                   esac
                                                   exit 0


                                                   Como hemos visto, en las variables declaradas al inicio del shell script
        Contenido
        complementario                             especificamos qué PATH es necesario para el proceso del daemon, el

              Aunque los daemons son               programa a ejecutar (DAEMON), el nombre que le damos (NAME, que
              programas como cualquier             debe ser igual que el nombre del shell script) y su descripción (DESC).
              otro, su programación difie-
                                                   Lo único que hace el código al arrancar el daemon es escribir en el
              re un poco de las aplicacio-
              nes de usuario porque                directorio /var/run/ un fichero con el PID del proceso. Al pararlo,
              deben incluir funciones              se va a buscar este PID y se envía la señal de finalización al proceso
              para quedar suspendidos y
              esperar señales para que             correspondiente. Naturalmente, encontraremos shell scripts prepara-
              sean despertados, etc.               dos para realizar muchísimas más operaciones con el daemon a tra-
                                                   tar, aunque como mínimo todos deben tener esta estructura.
ANOTACIONES




                                                    7.2. Los runlevels


                                                   Los daemons que tengamos ejecutándose en un determinado mo-
                                                   mento nos marcan los servicios que el sistema operativo está ofrecien-
                                                   do y/o recibiendo. El hecho de que podamos tener tantos daemons
                                                   diferentes hace que tengamos que plantear su organización de forma

                                             148
Sistema operativo GNU/Linux básico                      © FUOC • 71Z799002MO
                                                                                     ©




adecuada. Entenderemos un runlevel (o ‘nivel de ejecución’) como la
ejecución de unos determinados daemons que a su vez proporcionan
unos servicios concretos. En la instalación de un servidor es habitual
diseñar una configuración para que en determinados momentos se
puedan ofrecer determinados servicios y en otros no. Para permitir este
tipo de funcionamiento, el sistema operativo nos proporciona diferentes
niveles de ejecución que podremos adaptar a nuestras necesidades.


Si bien podemos configurar el número de niveles de ejecución que
queremos y la funcionalidad de cada uno de ellos, generalmente los
sistemas like UNIX nos proporcionan 6 diferentes con las siguientes
propiedades:

 NIVEL      Funcionalidad
 0          El nivel de ejecución 0 está configurado para parar el sistema.
            Este nivel es denominado como single user, ya que sólo permite
 1          la entrada al sistema al root del mismo. Se arrancan los
            daemons mínimos y sirve para tareas de mantenimiento.
            Los niveles del 2 al 5 están destinados para ser configurados
            según las necesidades de cada instalación. Al instalar el
 2~5        sistema, por defecto todos son iguales. Estos niveles también se
            llaman multiusuario, ya que, por defecto, permiten que más de
            un usuario trabaje en el sistema.
            El último nivel está preparado para reiniciar el sistema. Es muy
 6
            parecido al 0 pero se añade una función de reinicio.



El comando necesario para cambiar de nivel de ejecución es init
(le pasamos como parámetro el nivel de ejecución que queramos) y
para ver en cuál estamos, runlevel.


Los comandos halt, reboot, shutdown o poweroff lo único
que hacen es llamar al nivel de ejecución 0 o 6 realizando, antes, al-
guna operación concreta (ver su manual para más información).
Sólo el root del sistema puede utilizar todos estos comandos.
                                                                                                     ANOTACIONES



La forma como se organizan estos daemons en cada nivel de ejecu-
ción es muy simple. Cada nivel de ejecución tiene un directorio situa-
do en /etc/rcX.d/ donde la “X” es el número de nivel. En estos
directorios encontramos enlaces simbólicos a los shell scripts de los
daemons situados en /etc/init.d/, que nos sirven para indicar
al sistema si queremos iniciar o parar el daemon al que apuntan.
Con el mismo nombre del enlace se identifica la acción a realizar: si
el enlace empieza por “S” (Start) indicamos que queremos iniciar el

                                                                               149
© FUOC • 71Z799002MO
  ©                        Software libre



                               daemon, mientras que se empieza por “K” ( Kill) indica que queremos
                               pararlo. Si el nombre no empieza por ninguna de estas letras, el sis-
                               tema no hace nada con él. Después de esta letra se pone un número
                               de 2 cifras entre “00” y “99”, que indica el orden de inicio o parada
                               de los mismos. Este orden es importante, ya que algunos daemons
                               necesitan que otros estén en ejecución antes de ser iniciados.


                               Al cambiar de nivel de ejecución, el sistema inspeccionará los dae-
                               mons del directorio correspondiente y empezará, primero, parando
                               los daemons indicados y después iniciará los demás. Lo único que
                               se hace es llamar al daemon pasándole como parámetro start o
                               stop, de forma que si paramos alguno que no se esté ejecutando
                               en el momento de parada, no pasaría nada porque el mismo shell
                               script lo tiene en cuenta. Esto nos sirve para poder cambiar de nivel
                               de ejecución sin tener en cuenta el nivel anterior al que estábamos.
                               En la siguiente figura podemos ver un ejemplo de configuración
                               para 3 niveles de ejecución:


                                NIVEL DE EJECUCIÓN 2                    DAEMONS EJECUTÁNDOSE

                                K50sshd             S10sysklogd         sysklogd
                                K51apache-ssl       S12kerneld          kerneld
                                K52tftpd            S20dhcpd            dhcpd
                                K53telnet           S50proftpd          proftpd
                                                    S90apache           apache

                                NIVEL DE EJECUCIÓN 3

                                K50dhcpd            S10sysklogd         sysklog
                                K51proftpd          S12kerneld          kerneld
                                K52apache           S20sshd             sshd
                                K53tftpd            S50apache-ssl       apache-ssl
                                K53telnet

                                NIVEL DE EJECUCIÓN 4

                                K50dhcpd            S10syslogd          sysklogd
                                K51proftpd          S12kerneld          kerneld
                                K52apache           S20tftpd            tftpd
ANOTACIONES




                                K53tftpd            S50telnet           telnet
                                K53telnet



                               En el fichero /etc/inittab tenemos definida toda la configuración
                               de los runlevels: el nivel de ejecución por defecto, el número de con-
                               solas disponibles en cada uno de ellos, etc. Cada línea del fichero es
                               una directiva con la sintaxis: “<id> :<runlevels> : <action>
                               : <process>”. El primer campo es el identificador de la directiva,
                               seguidamente encontramos en qué niveles de ejecución es válida esta

                         150
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                               ©




directiva, la acción a realizar y el proceso a lanzar. En el siguiente
ejemplo explicamos cómo configurar algunas de estas directivas:


# El nivel de ejecución por defecto (en este caso,
el 2) id:2:initdefault:


# Scripts a ejecutar al arrancar el sistema (antes
# de entrar en el nivel de ejecución por defecto)
si::sysinit:/etc/init.d/rcS


# Programa que se llama al entrar en el nivel de
ejecución
# single user (la acción wait indica que se lanza el
# proceso y no se hace nada más)
˜˜:S:wait:/sbin/sulogin


# Configuración de los diferentes niveles de eje-
cución
# disponibles en el sistema
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6


# Comando a ejecutar al apretar CTRL+ALT+DEL
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now


# Definición de las consolas abiertas en cada
# nivel de ejecución (la acción respawn indica
                                                                                               ANOTACIONES


# que al terminar la ejecución del proceso
# getty se lance otra vez)


1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6

                                                                         151
© FUOC • 71Z799002MO
  ©                                              Software libre



                                                     Como vemos, en este fichero se configura todo lo referente a los ni-
        Contenido
        complementario                               veles de ejecución de forma muy flexible pudiendo cambiar lo que
                                                     nos interese para adaptarlo mejor a nuestras necesidades. Fijémo-
              En este fichero también po-
              dríamos configurar un termi-           nos que, aunque aquí definamos el nivel de ejecución por defecto,
              nal que se comunicara con el           también lo podríamos especificar al arrancar el sistema con el Lilo o
              sistema a partir de un módem
              y otro ordenador con la direc-         Grub. Esto es muy útil, por ejemplo, cuando tenemos problemas gra-
              tiva    “T1:23:respawn:/               ves en el sistema que no nos permiten arreglarlos adecuadamente;
              sbin/ mgetty -x0 -s
                                                     si arrancamos con el primer nivel (pasando “1” o “single” al Lilo
              57600 ttyS1”. De esta
              forma, podríamos tener una             o Grub), sólo se iniciarán las funciones más necesarias y podremos
              consola del sistema en otro            entrar para arreglar lo que haga falta.
              terminal comunicándonos
              con una línea telefónica.



                                                      7.3. El arranque del sistema


                                                     El proceso padre de todos los demás es el init. Este proceso se en-
                                                     carga de arrancar los otros que tengamos en el nivel de ejecución
                                                     configurado. Sin embargo, antes de entrar en este nivel se ejecutan
                                                     todos los shell scripts de /etc/rcS.d/ (configurado en /etc/
                                                     inittab), que pueden ser o bien daemons como los de los otros
                                                     runlevels o simplemente shell scripts necesarios para el sistema (car-
                                                     ga del mapa de caracteres, carga de los módulos del núcleo, etc.).
                                                     Si queremos eliminar alguno de ellos, debemos saber exactamente
                                                     qué estamos haciendo, ya que generalmente son imprescindibles
                                                     para el buen funcionamiento del operativo.


                                                     Una vez se han arrancado estos daemons (o shell scripts), se entra
                                                     en el nivel de ejecución configurado por defecto, parando e inician-
                                                     do los daemons especificados en él. Una vez aprendida toda esta or-
                                                     ganización, ya podremos adaptar el arranque del sistema a nuestras
                                                     necesidades creando y situando los daemons que queramos en cual-
                                                     quiera de los sitios que hemos visto.
ANOTACIONES




                                                      7.4. Daemons básicos


                                                     Según la distribución de GNU/Linux que utilicemos, el mismo proce-
                                                     so de instalación ya configura unos daemons u otros. Aun así, todas
                                                     las distribuciones suelen incorporar el daemon para el sistema de
                                                     logs y el de la ejecución periódica y retardada de aplicaciones (aun-

                                               152
Sistema operativo GNU/Linux básico                              © FUOC • 71Z799002MO
                                                                                            ©




que las configuraciones de los mismos pueden variar un poco). En
esta sección veremos cómo funcionan estos tres daemons básicos y
cómo podemos configurarlos. Es importante saber manejar estos da-
emons básicos porque nos pueden ayudar mucho en algunas de las
tareas de administración.



7.4.1. Logs de sistema (sysklogd)

Los logs del sistema son ficheros de traza que un daemon del opera-
                                                                                   Contenido
tivo se encarga de generar para que quede constancia de cualquier                  complementario
acción realizada sobre el mismo. El daemon encargado de realizar
                                                                                     El núcleo del sistema tam-
estas tareas es el sysklogd, cuya configuración encontramos en /                     bién lanza un daemon para
etc/syslog.conf. Cada línea de este fichero consiste en una re-                      gestionar sus logs denomi-
                                                                                     nado klogd.
gla con dos campos: el selector y la acción. Con el selector configu-
ramos de qué servicio queremos tratar los logs y el nivel de prioridad
de los mismos. La acción sirve para indicar hacia dónde queremos
redirigir los logs (a un fichero, a una consola, etc.). En las tablas de
la siguiente página podemos ver las diferentes opciones válidas para
estos campos.


Generalmente, todos los ficheros de logs del sistema se suelen alma-
                                                                                   Contenido
cenar en el directorio /var/log/. Aunque la mayoría de ficheros de                 complementario
logs son de texto y los podemos ver con cualquier editor, podemos
                                                                                     Para ver los últimos regis-
encontrar alguno especial que no guarde sus datos en este formato.                   tros de entrada de los usua-
Generalmente suelen ser los ficheros /var/log/wtmp y /var/                           rios, también podemos
                                                                                     utilizar el comando
log/btmp, que son los logs de entrada de usarios en el sistema y de                  lastlog.
entradas erróneas respectivamente. Para ver estos dos ficheros, po-
demos utilizar los comandos last y lastb. Si tuviéramos configu-
rados estos logs en algún otro fichero, también podríamos verlos
pasando el parámetro “-f fichero” al comando last.
                                                                                                                ANOTACIONES



                                                    SELECTOR

 Servicio           significado                                 Prioridad         significado

                    Mensajes de autorizaciones o de aspectos
 authpriv                                                       emerg             El sistema es inutilizable.
                    de seguridad.

                                                                                  La acción se debe realizar de
 cron               Daemon crond y atd.                         alert
                                                                                  inmediato.

 daemon             Daemons del sistema sin opciones de logs.   crit              Condiciones críticas.

                    Daemon del servidor FTP (File Transfer
 ftp                                                            err               Condiciones de error.
                    Protocol).


                                                                            153
© FUOC • 71Z799002MO
  ©                                         Software libre



                                                           SELECTOR

    Servicio            significado                                     Prioridad           significado

    kern                Mensajes del núcleo del sistema.                warning             Condiciones de emergencia.

                                                                                            Noticias normales, pero
    lpr                 Mensajes del subsistema de impresión.           notice
                                                                                            importantes.

                        Mensajes del subsistema de correo (si lo
    mail                                                                info                Mensajes de información.
                        tenemos configurado).

                        Mensajes del subsistema de noticias (si lo
    news                                                                debug               Mensajes de debugging.
                        tenemos configurado).

                        Logs generados por el mismo daemon
    syslog
                        syslogd.

    user                Logs de aplicaciones de nivel de usuario.

                        Mensajes generados por el sistema de
    uucp
                        UUCP (Unix-To-Unix Copy Protocol).

    local0~7            Reservados para su uso local.

    (los servicios y prioridades se pueden combinar como se quiera)



                                                           ACCION

    Destino                   explicación

                              Se especifica la ruta completa del fichero. Poniendo un “-” delante no se requiere que el
    Fichero regular           fichero sea sincronizado cada vez que se escribe en él (aunque se perderá el log en caso de
                              fallar la alimentación).

                              Este sistema permite que los mensajes se redirijan hacia una tubería creada antes de iniciar
    Pipe nombrado             el daemon de sysklogd con el comando mkfifo. Se indica poniendo el carácter “|” antes
                              del nombre del fichero. Es muy útil para operaciones de debugging de programas.

                              Especificando /dev/ttyX dónde “X” es un número de consola o /dev/console los logs
    Consola                   se redirigen a la pantalla especificada.

                              Para especificar que los logs se redirijan a una máquina remota, debemos preceder el
    Máquina remota
                              nombre del host remoto con “@”.

                              Especificando el nombre de usuario o usuarios (separados por comas) los logs
    Usuarios
                              correspondientes se redirigen a éstos.

                              Con “*” especificaremos que los logs se redirijan a todos los usuarios que en el momento de
    Usuarios on-line          ocurrir el log estén dentro del sistema. Esto se utiliza para avisar a todos los usuarios que ha
                              pasado alguna acción crítica en el sistema.

    (las acciones se pueden poner en todos los selectores que se quiera)
ANOTACIONES




                                              Esta forma de tratar los logs permite mucha flexibilidad para confi-
                                              gurarlos adecuadamente cuando instalamos un servidor, tarea muy
                                              importante para tener controlados los aspectos que más nos intere-
                                              san del sistema. Aun así, si tuviéramos que guardar todos los logs
                                              que se generan en un servidor, seguramente al final saturaríamos el
                                              disco por el tamaño siempre creciente de estos archivos. Para evitarlo
                                              se utiliza un sistema de rotación de logs, que consiste en ir compri-

                                      154
Sistema operativo GNU/Linux básico                          © FUOC • 71Z799002MO
                                                                                       ©




miendo, cada cierto tiempo, estos ficheros y guardar sólo hasta una
                                                                               Contenido
determinada antigüedad. Aunque generalmente se suelen compri-                  complementario
mir cada semana y se guardan sólo los de uno o dos meses anterio-
                                                                                Si quisiéramos configurar
res, podemos configurar todo esto a partir del fichero /etc/                    una consola del sistema
logrotate.conf. Los logs de ciertos servidores y/o aplicaciones tam-            para ver todos los logs que
                                                                                se van generando, podría-
bién se pueden configurar de forma explícita para tener un control más          mos añadir la línea “*.*
adecuado de lo que hacen. La configuración personalizada de logs                /dev/ttySX”(donde “X”
                                                                                es la consola donde quere-
para estas aplicaciones suele situarse en /etc/logrotate.d/.
                                                                                mos ver los logs) al fichero
                                                                                /etc/syslog.conf
                                                                                y reiniciar el daemon
Internamente, el sistema utiliza unos programas para manejar de
                                                                                sysklogd.
forma más amena todo este sistema de logs. Con logger podemos
escribir en el sistema de logs del sistema. savelog y logrotate
sirven para guardar y, opcionalmente, comprimir algunos de los fi-             Contenido
                                                                               complementario
cheros de logs que tenemos (con el segundo podemos configurar
                                                                                Según el servidor que este-
más opciones que con el primero). Estos comandos también se pue-
                                                                                mos administrando tendre-
den utilizar para crear nuestros propios ficheros de logs o, si es ne-          mos que tener en cuenta la
cesario, manipular manualmente los del sistema (con el manual de                legalidad vigente (según
                                                                                países) que en algunos ca-
los mismos obtendremos más información sobre su tratamiento y                   sos obliga a conservar los fi-
manipulación).                                                                  cheros de algún tipo de logs
                                                                                durante un determinado pe-
                                                                                ríodo de tiempo.

7.4.2. Ejecuciones periódicas (cron)

Muchas de las tareas de administración de un servidor se tienen
que llevar a cabo de forma periódica. También hay muchas accio-
nes, como la actualización de los logs o las bases de datos internas
que utilizan ciertos comandos, que necesitan ejecutarse regular-
mente para su buen funcionamiento. Por este motivo, es muy im-
portante que el mismo operativo nos proporcione alguna
herramienta para poder configurar eficientemente todas estas eje-
cuciones periódicas.
                                                                                                            ANOTACIONES


El daemon cron es el que se encarga de manejar todo el sistema
de ejecuciones periódicas. Su organización es muy simple: en el fi-
chero /etc/crontab se guarda la configuración interna del dae-
mon    y   en    los   directorios   /etc/cron.daily/,        /etc/
cron.weekly/ y /etc/monthly/, los shell scripts de los progra-
mas que se ejecutarán diariamente, semanalmente o mensualmente
respectivamente. También existe el /etc/cron.d/, donde pode-
mos situar archivos con un formato especial para configurar la eje-
cución de determinados programas de forma más flexible.

                                                                         155
© FUOC • 71Z799002MO
  ©                                             Software libre



                                                    Generalmente, en el fichero /etc/crontab encontramos las si-
        Contenido
        complementario                              guientes directivas:

              Muchas de las aplicaciones
              del sistema necesitan de al-          SHELL=/bin/sh
              gún tipo de actualización pe-
                                                    PATH=/usr/local/sbin:/usr/local/bin:
              riódica, generalmente confi-
              gurada a partir del cron. Si              /sbin:/bin:/usr/sbin:/usr/bin
              no tenemos el ordenador               #m h dom mon dow user command
              encendido todo el día, es
              importante que configure-             25 6 *        *        *     root test -e /usr/sbin/anacron ||
              mos adecuadamente el                                             run-parts --report /etc/cron.daily
              cron para que se realicen
                                                    47 6 *        *        7     root test -e /usr/sbin/anacron ||
              en algún momento en que
              sepamos que el ordenador              run-parts --report /etc/cron.weekly
              estará encendido.                     52 6 1        *        *     root test -e /usr/sbin/anacron ||
                                                                       run-parts --report /etc/cron.monthly


                                                    La definición de las variables SHELL y PATH sirven para indicar al
        Contenido
        complementario                              daemon qué intérprete de comandos utilizar y cuál será su PATH. Las
                                                    siguientes tres líneas están formadas por los campos: “<minuto>
              Si instalamos GNU/Linux en
              un ordenador que no está en           <hora> <díaMes> <mes> <diaSetmana> <usuario>
              funcionamiento todo el día,           <comando>”. Los cinco primeros indican cuándo ejecutar el co-
              es recomendable tener insta-
              lado el programa anacron              mando correspondiente (deben ser coherentes) y en el sexto encon-
              porque ejecutará los scripts          tramos el usuario que se utilizará para ejecutar el comando
              configurados con el cron
                                                    especificado en el último. Fijémonos cómo en el fichero de configu-
              adecuadamente (aunque sea
              en horas diferentes a las             ración los comandos que se ejecutan una vez al día, una vez a la se-
              previstas).                           mana o una vez al mes son los encargados de lanzar los shell scripts
                                                    que se encuentren en los directorios especificados. Si existe el pro-
                                                    grama anacron, se ejecutan con él, si no se utiliza el run-parts,
                                                    que aunque no tiene tantas funcionalidades como el anacron,
                                                    también sirve para poder ejecutar todos los shell scripts que se en-
                                                    cuentren en un determinado directorio. Esta configuración es la que
                                                    nos permite toda la estructura de directorios que comentábamos an-
                                                    teriormente. Si quisiéramos, podríamos cambiar las directivas de
                                                    este archivo para adaptarlas más a nuestras necesidades.
ANOTACIONES




        Contenido
        complementario
                                                    Aunque también podríamos utilizar este mismo fichero de configura-
              Si utilizamos el fichero /            ción para poner nuestros propios comandos, es más recomendable
              etc/crontab para confi-
                                                    utilizar la estructura de directorios que nos proporciona el mismo da-
              gurar nuestras propias eje-
              cuciones periódicas, cada             emon. El único que no aparece en esta configuración es el de /etc/
              vez que lo modifiquemos               cron.d/, que el daemon ya tiene en cuenta automáticamente. En
              debemos reiniciar el dae-
              mon cron. Si utilizamos su            este directorio podemos situar archivos exactamente con la misma
              estructura de directorios, no         sintaxis que en el /etc/crontab para programar ejecuciones per-
              hace falta.
                                                    sonalizadas. De esta forma, la flexibilidad es total.

                                              156
Sistema operativo GNU/Linux básico                        © FUOC • 71Z799002MO
                                                                                     ©




Si para las tareas de administración periódicas del sistema es reco-
mendable utilizar toda esta estructura, cuando son los usuarios los
que quieren configurar alguna tarea periódica es más usual utilizar
                                                                              Contenido
ficheros particulares para cada uno de ellos. Con el comando cron-            complementario
tab podemos pasar los parámetros “-u USER -e” y automática-
                                                                               Utilizando el comando
mente se editará el fichero de configuración particular para el                crontab , al grabar el fi-
usuario especificado. Los ficheros particulares de los usuarios se             chero se comprueba que
                                                                               la sintaxis sea correcta.
guardan en el directorio /var/spool/cron/crontabs/ (de he-
cho, el fichero /etc/crontab es el mismo que el particular del
root). Para poder limitar qué usuarios pueden utilizar este daemon,
podemos    editar   los   ficheros /etc/cron.allow y /etc/
cron.deny, donde podemos poner, respectivamente, la lista de
usuarios a los que permitimos utilizar el cron y a los que no.



7.4.3. Ejecuciones retardadas (at y batch)

Si bien el cron nos permite realizar operaciones cada cierto período
                                                                              Contenido
de tiempo, el daemon atd permite ejecutar un comando o aplica-                complementario
ción en un momento determinado. Igual que con el daemon ante-                  Todo el sistema de at y
rior, podemos configurar qué usuarios pueden utilizarlo o no a partir          batch funciona con unos
                                                                               mecanismos de cola de eje-
de los ficheros /etc/at.allow y /etc/at.deny. En este caso,
                                                                               cución (uno para cada uno
no tenemos fichero de configuración explícito para el daemon, sino             de los dos). Aunque pode-
que es con el comando at con el que podemos especificar en qué                 mos configurar más, gene-
                                                                               ralmente sólo con éstas ya
momento queremos ejecutar cierta operación con la sintaxis: “at -              tenemos suficiente para
f fichero TIEMPO”. Generalmente el fichero suele ser un progra-                realizar cualquier tipo de
ma o shell script creado por el mismo usuario donde se escriben to-            ejecución retardada en el
                                                                               sistema.
das las instrucciones que se quieran ejecutar. La especificación de
TIEMPO puede llegar a ser muy compleja, pudiendo determinar una
HORA con el formato “hh:mm”, un tiempo a partir del momento de
ejecución con “now + XX minutes”, etc. (en su manual se especi-
fican todos los posibles formatos).
                                                                                                        ANOTACIONES



Con atq podemos ver qué trabajos tenemos retardados y con atrm
                                                                              Contenido
podemos borrar alguno de los que estén en la cola. Finalmente, si             complementario
queremos ejecutar todos los trabajos en la cola del at, podemos uti-
                                                                               La carga del sistema es un
lizar el comando atrun. Este nos permite pasarle el parámetro “-l              parámetro que nos indica el
LOADAVERAGE” donde LOADAVERAGE debe ser un número que in-                      grado de actividad del or-
                                                                               denador. Con el comando
dica a partir de qué momento de carga del sistema se podrán ejecu-             top podemos ver esta carga
tar los comandos retardados. Esto enlaza directamente con el                   de forma interactiva.

comando batch, que sirve exactamente para lo mismo que el at y

                                                                        157
© FUOC • 71Z799002MO
  ©                        Software libre



                               sigue su misma sintaxis, pero sin necesidad de especificar un tiempo
                               concreto de ejecución. Las operaciones configuradas en esta cola se
                               llevarán a término cuando la carga del sistema baje a menos de 1,5.


                               De esta forma, cuando necesitamos ejecutar un determinado comando
                               en una hora concreta, deberíamos utilizar el at, mientras que para ope-
                               raciones que queramos realizar sin que entorpezcan el funcionamiento
                               normal del ordenador, deberíamos utilizar el batch. En los directorios
                               /var/spool/cron/atjobs/ y /var/spool/cron/atspool/
                               se guardan los ficheros correspondientes a todos estos trabajos re-
                               tardados.
ANOTACIONES




                         158
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                                ©




 8. Instalación de aplicaciones




 8.1. Introducción

La gestión y manipulación de los paquetes es un aspecto fundamental
en cualquier distribución de GNU/Linux. Un paquete es uno o varios
programas, librerías o componentes de software empaquetados en un
solo archivo preparado para que sea instalado e integrado en el siste-
ma operativo. En el diseño de cualquier distribución es muy importante
proporcionar las herramientas necesarias para poder instalar y gestio-
nar adecuadamente estos paquetes. También se deben proporcionar
herramientas, especialmente para los desarrolladores de software,
para poder crear otros nuevos. En estos paquetes se suelen incluir los
ejecutables del programa y sus dependencias y conflictos con otras
aplicaciones. Las dependencias indican, al instalar un paquete, si ne-
cesitan otros programas para que la aplicación funcione correctamen-
te, mientras que los conflictos nos informan de incompatibilidades
entre programas instalados y el que queremos instalar. Los sistemas
de paquetes están diseñados de esta forma para facilitar la instalación
de las nuevas aplicaciones, ya que algunas librerías son utilizadas por
más de un programa y no tendría sentido que todas las aplicaciones
que las utilizasen las instalaran de nuevo.


Actualmente, la gran mayoría de distribuciones utilizan uno de los
dos sistemas de paquetes más extendidos en el mundo del GNU/Li-
nux: los deb o los rpm. Por un lado, los paquetes deb son los que la
distribución de Debian GNU/Linux utiliza en su distribución, mientras
                                                                                                ANOTACIONES


que los rpm (Redhat Package Manager) son los nativos de RedHat.
Las distribuciones basadas en alguna de estas dos generalmente
adoptan el sistema de paquetes correspondiente, aunque la mayoría
de las otras distribuciones propias también han optado por incorpo-
rar alguno de los dos sistemas, ya que actualmente la gran mayoría
de programas se empaquetan utilizando estos formatos.


Por otra parte, los programas con licencia GPL o similar también se
suelen distribuir con su código fuente (empaquetados y comprimidos

                                                                          159
© FUOC • 71Z799002MO
  ©                                            Software libre



                                                   con algún formato estándar, como el tar). A partir de este código fuen-
                                                   te, también podemos instalar el programa en nuestro operativo, com-
                                                   pilándolo y situando los ejecutables en el lugar donde les corresponda.


                                                   En este capítulo veremos cómo está organizado el sistema de paquetes
        Contenido
        complementario                             de la distribución Debian por la gran cantidad de herramientas que se
                                                   proporcionan y la flexibilidad de su configuración. En la última sec-
              Debian GNU/Linux fue la pri-
              mera distribución que creó           ción, aprenderemos cómo instalar un programa a partir de su código
              un sistema de paquetes.              fuente, ya que en algunos casos podemos encontrarnos que el progra-
                                                   ma que necesitemos no esté empaquetado. Esta forma de instalación
                                                   era la que se utilizaba siempre antes de que aparecieran los primeros
                                                   sistema de paquetes, que surgieron para facilitar todo este proceso.




                                                    8.2. El sistema de paquetes Debian


                                                   Las aplicaciones para manipular el sistema de paquetes de Debian
                                                   GNU/Linux son, básicamente, de dos tipos: los programas apt
                                                   (Advanced Packaging Tool) y los dpkg (Debian package). El conjunto
                                                   de aplicaciones apt sirven para configurar de dónde conseguimos los
                                                   paquetes, cuáles son los que queremos y resuelven dependencias y
                                                   conflictos con otros. Los programas dpkg sirven para instalar los pa-
                                                   quetes, configurarlos, saber cuáles tenemos instalados, etc. Hay otras
                                                   aplicaciones, como dselect o aptitude, que sirven para manipu-
                                                   lar los programas apt y dpkg proporcionando, en un solo entorno,
                                                   herramientas interactivas para la manipulación de los mismos. En la
                                                   siguiente figura podemos ver este esquema:
ANOTACIONES




                                             160
Sistema operativo GNU/Linux básico                        © FUOC • 71Z799002MO
                                                                                     ©




Los programas que en última instancia se encargan de instalar las
                                                                              Contenido
aplicaciones son los dpkg. Estos programas descomprimen el fi-                complementario
chero “.deb” e instalan el programa. Las aplicaciones apt nos                  Aunque con las aplicacio-
ayudan a localizar las últimas versiones de los programas que ne-              nes apt también se pueden
cesitamos, copian en el disco los ficheros de las fuentes de donde             instalar paquetes, lo único
                                                                               que hacen es llamar a los
las hayan extraído (FTP, CD-ROM, etc.) y comprueban dependen-                  programas dpkg.
cias y conflictos de los nuevos paquetes para que se puedan ins-
talar correctamente. Las principales aplicaciones apt         son las
siguientes:


• apt-config: sirve para configurar algunas de las opciones de
   apt    (la arquitectura de nuestro sistema, directorio donde se
   guardan los archivos, etc. ).


• apt-setup: aplicación para configurar las fuentes de los paque-
   tes (de dónde los obtenemos).


• apt-cache: gestión de la caché de paquetes (directorio donde
   se guardan los archivos “.deb” antes de ser instalados).


• ap-CD-ROM: aplicación para gestionar CD-ROM que contengan
   paquetes.


• apt-get: actualización, instalación o descarga de los paquetes.


Toda la configuración de apt está en el directorio /etc/apt/. En
el fichero /etc/apt/ sources.list es donde se guarda la con-
figuración de las fuentes de los paquetes. Con todas estas fuentes se
genera un listado de paquetes disponibles, que podemos consultar e
instalar siempre que nos interese. Generalmente, el formato de este
                                                                                                        ANOTACIONES


archivo sigue la siguiente sintaxis:


deb http://site.http.org/debian distribución sección1
                                    sección2 sección3
deb-src http://site.http.org/debian distribución sección1
                                              sección2 sección3



El primer campo de cada línea indica el tipo de archivo al que nos
referimos: binarios (deb) o código fuente (deb-src). Seguidamente

                                                                        161
© FUOC • 71Z799002MO
  ©                                              Software libre



                                                     encontramos la referencia de la fuente de los paquetes, que puede
        Contenido
        complementario                               ser un CD-ROM, una dirección de Internet, etc. El campo de distribu-
                                                     ción indica a apt qué versión de Debian GNU/Linux estamos utili-
              Los sistemas de paquetes
              también permiten crear pa-             zando. Este campo es importante porque cada versión de la
              quetes con el código fuente            distribución tiene sus propios paquetes. En los últimos campos pode-
              de las aplicaciones. Si sólo
              nos interesa utilizar la apli-         mos especificar qué tipo de paquetes queremos utilizar.
              cación, no hace falta que
              descarguemos los paquetes
                                                     Si cambiásemos este fichero de forma manual, podríamos utilizar el co-
              de código fuente.
                                                     mando “apt-get update” para actualizar todos los paquetes dispo-
                                                     nibles en el sistema. Para insertar los paquetes de un CD-ROM en el
                                                     listado de paquetes disponibles, podríamos utilizar “apt-CD-ROM
                                                     add”, con lo cual se exploraría el CD insertado y se actualizaría el lista-
                                                     do de paquetes del sistema. Si algunas de las fuentes contuvieran pa-
                                                     quetes iguales, al instalarlo la misma aplicación apt detectaría cual es
                                                     el más reciente o el que su descarga implica menos tiempo y lo bajaría
                                                     de la fuente correspondiente. Con el programa netselect, además,
                                                     podríamos configurar más ampliamente todo este sistema de descarga.


                                                     Otra opción muy interesante que nos proporciona la mayoría de dis-
                                                     tribuciones es la de la actualización de paquetes en los que se ha
                                                     descubierto algún tipo de vulnerabilidad o fallo en su funcionamien-
                                                     to. Con Debian, tan sólo tenemos que añadir la siguiente línea en el
                                                     archivo /etc/apt/sources.list:


                                                     deb http://security.debian.org/ stable/updates
                                                                                          main contrib non-free


                                                     A medida que se van detectando paquetes críticos, se van poniendo
                                                     en esta fuente, de forma que con sólo ejecutar “apt-get update”
                                                     se avisa de las nuevas actualizaciones que debemos realizar en el sis-
                                                     tema y se reinstalan los paquetes necesarios.
ANOTACIONES




                                                     Aunque con los programas dpkg podemos manipular cualquier as-
                                                     pecto de los paquetes instalados en el sistema, crear nuevos, modificar
                                                     los instalados, etc., en este curso sólo repasaremos los más importan-
                                                     tes, al nivel de usuario, para que podamos realizar las operaciones
                                                     básicas con ellos. Los principales programas dpkg son los siguientes:


                                                     • dpkg-divert: nos sirve para manipular el lugar de instalación
                                                        de algunos de los paquetes instalados en el sistema. Muy útil para
                                                        evitar algunos problemas de dependencias.

                                               162
Sistema operativo GNU/Linux básico                            © FUOC • 71Z799002MO
                                                                                         ©




• dpkg-reconfigure: con un mismo paquete deb muchas veces
   se incluye algún mecanismo para configurar algunas de las op-
   ciones de la aplicación de forma interactiva. Con esta aplicación
   podemos volver a configurar el paquete que le indiquemos con
   los mismos mecanismos utilizados en su instalación.


• dpkg-scanpackages: este programa sirve para escanear un de-
   terminado directorio del sistema que contenga archivos “.deb”
   para que se genere un archivo de índice. Con este archivo de índice
   podemos incluir el directorio como una fuente más de apt. Muy útil
   cuando bajamos programas no oficiales de la distribución.


• dpkg-scansource: aplicación con las mismas funcionalidades
   que la anterior pero para paquetes de código fuente.


• dpkg-split: programa para dividir y unir un paquete en varios
   archivos diferentes.


Con estos programas podemos manipular de cualquier forma nues-
                                                                                 Contenido
tros paquetes. La aplicación principal, dpkg, es la que nos permite              complementario
instalar, listar o eliminar los paquetes del sistema. Para listar todos           Con dpkg también pode-
los paquetes disponibles le podemos pasar el parámetro “-l”, con                  mos utilizar patrones para
                                                                                  seleccionar, instalar, elimi-
lo cual se mostrará una lista completa de los paquetes y su estado de
                                                                                  nar, . . . los paquetes del sis-
instalación (instalados, instalados pero no configurados, etc.). Si qui-          tema.
siéramos ver toda la información de un determinado paquete, po-
dríamos utilizar el parámetro “-p” seguido del nombre del paquete,
con lo cual se muestran todas las dependencias, conflictos con otros
paquetes, versión, descripción, etc.


Para instalar nuevos paquetes podemos utilizar el parámetro “-i”
seguido del nombre del archivo. Si nos da problemas de dependen-
                                                                                                               ANOTACIONES


cias, podemos ignorarlas con “
                             --ignoredepends=X”, donde la
“X” indica la dependencia, aunque debemos vigilar mucho cómo
utilizamos este parámetro porque al ignorar dependencias es posible
que el programa instalado no funcione correctamente. Si sólo quisié-
ramos descomprimir el archivo “.deb”para ver qué contiene, tam-
bién podríamos utilizar “-x”. Para eliminar los paquetes, debemos
pasar “-r” seguido del nombre del paquete, que lo elimina del sis-
tema, pero guardando sus archivos de configuración (con “-P” se
elimina todo).

                                                                           163
© FUOC • 71Z799002MO
  ©                        Software libre



                               Otro parámetro muy interesante es el de “--force-things X”
                               (donde la “X” es una de las siguientes opciones), que nos puede ayu-
                               dar en alguno de los casos que mostramos a continuación:


                               • “auto-select”: selecciona automáticamente los paquetes que se
                                  deben instalar o desinstalar con el nuevo paquete que elegimos.


                               • “downgrade”: instala el paquete aunque haya versiones más
                                  nuevas del mismo.


                               • “remove-essential”: aunque el paquete esté considerado
                                  como esencial en el sistema, lo elimina.


                               • “depends”: no tiene en cuenta las dependencias, las considera
                                  como alertas.


                               • “depends-version”: no tiene en cuenta dependencias de ver-
                                  sión de los paquetes.


                               • “conflicts”: instala el paquete, aunque entre en conflicto con
                                  algún otro del sistema.


                               • ...:


                               Aunque todos los programas que hemos ido comentado a lo largo
                               de esta sección tienen muchísimas opciones y existen muchos otros
                               programas, con los que hemos especificado ya nos bastará, con el
                               sistema de paquetes de la distribución que utilicemos, para realizar
                               casi cualquier tarea que sea necesaria. Si bien ya hemos comentado
                               que con programas como el dselect o aptitude ya podremos
                               realizar las tareas básicas de instalación y eliminación de paquetes,
                               es importante conocer adecuadamente estos otros comandos porque
ANOTACIONES




                               para realizar operaciones específicas o para automatizar los proce-
                               sos de selección e instalación pueden ser muy útiles.




                                8.3. Compilación de nuevos programas


                               En la administración de cualquier servidor es muy probable que en
                               algunos casos nos encontremos que debemos utilizar algún pro-

                         164
Sistema operativo GNU/Linux básico                            © FUOC • 71Z799002MO
                                                                                         ©




grama que nuestra distribución no tiene o que necesitemos la últi-
ma versión de un servidor de aplicaciones que todavía no está
convenientemente empaquetado, etc. En estos casos, siempre po-
demos descargarnos el código fuente del programa y compilarlo
manualmente. Es importante comprender la diferencia que existe
entre compilar un programa para conseguir su ejecutable que des-
cargar directamente el binario. Cuando compilamos un programa,
éste utiliza las librerías disponibles en el sistema, mientras que si lo
descargamos directamente, lo más probable es que no funcione
adecuadamente porque intentará utilizar alguna librería que no
será exactamente igual a la que tengamos instalada en el sistema.
Por ello, lo más recomendable, cuando necesitemos instalar un
                                                                                 Contenido
nuevo programa del que no disponemos del paquete correspon-
                                                                                 complementario
diente, es compilarlo de nuevo.
                                                                                  Al compilar un programa es
                                                                                  muy probable que necesite-
                                                                                  mos tener instaladas en el sis-
Al bajar las fuentes de una aplicación, nos encontraremos con un fi-
                                                                                  tema las fuentes o las
chero empaquetado y comprimido con tar y gzip o similares. Es                     cabeceras de las librerías que
usual añadir un fichero llamado README en el cual se explica paso                 utiliza. Generalmente, estos
                                                                                  paquetes suelen tener el mis-
a paso todas las acciones necesarias para compilar correctamente el               mo nombre que la librería,
programa. Aunque es recomendable leerlo, en la mayoría de casos,                  pero añadiendo “-dev” (de
                                                                                  desarrollo) al final.
el proceso de instalación siempre es el mismo.


Lo primero que debemos hacer para compilar el nuevo programa
                                                                                 Contenido
es descomprimirlo y desempaquetarlo. Una vez hecho esto, dispon-                 complementario
dremos del código fuente estructurado en varios directorios. En su                El proceso de compilación de
raíz, podemos encontrar (o no) un fichero llamado Makefile. Este                  un programa puede durar
                                                                                  desde segundos a horas,
archivo indica al compilador qué librerías se utilizan, cómo se de-               según la aplicación. Por
ben compilar los archivos de código, etc. Si tenemos este Makefi-                 ejemplo, la compilación del
                                                                                  núcleo Linux va desde 5 o 10
le, ya podemos compilar el programa ejecutando make. No hace
                                                                                  minutos a las 2 horas (según
falta que le pasemos ningún parámetro porque por defecto ya bus-                  la versión del núcleo y la po-
ca el fichero de Makefile y ejecuta las acciones que se especifi-                 tencia del ordenador).
                                                                                                              ANOTACIONES


can en él. Si el proceso no ha dado ningún error, ya podremos
mover el ejecutable generado para ponerlo en alguno de los direc-
torios del PATH configurado; de este modo, siempre que lo quera-
mos ejecutar no tendremos que escribir su ruta completa. Muchos
Makefile proporcionan, asimismo, instrucciones para que poda-
mos ahorrarnos este último paso. Generalmente, ejecutando
“make install” el mismo programa se encarga de situar adecua-
damente los binarios y, si existieran, los archivos de documenta-
ción. Finalmente, si no nos interesara guardar el código fuente del

                                                                           165
© FUOC • 71Z799002MO
  ©                        Software libre



                               programa, ya podemos eliminar todo el contenido de los directo-
                               rios creados.


                               Si el programa no incorpora el archivo de Makefile, generalmente
                               se suele incluir algún shell script para generar automáticamente este
                               fichero (habitualmente, este script se suele nombrar configure). Al
                               ejecutar este shell script se comprobará que el sistema tenga instala-
                               das todas las librerías necesarias para una buena compilación y, si
                               faltara alguna, se daría un mensaje de aviso. Una vez ejecutado co-
                               rrectamente este shell script, ya dispondremos del Makefile, con lo
                               que el proceso vuelve a ser el mismo que anteriormente. En la si-
                               guiente figura podemos ver todo esto de forma gráfica:
ANOTACIONES




                         166
Sistema operativo GNU/Linux básico                © FUOC • 71Z799002MO
                                                                           ©




Aunque la mayoría del código fuente de los programas se organiza
de la forma como hemos expuesto, también es posible que nos en-
contremos con otros tipos de instalación. Hay alguno que incorpora
menús, entornos en X u otros métodos más amenos. Últimamente,
también empiezan a aparecer algunas aplicaciones que permiten
realizar todo el proceso de instalación bajando el código directa-
mente de Internet.




                                                                                           ANOTACIONES




                                                                     167
Manual gnu linux_basico
Sistema operativo GNU/Linux básico                      © FUOC • 71Z799002MO
                                                                                    ©




 9. Taller de configuraciones básicas




 9.1. Introducción

En el segundo taller hemos aprendido a instalar un sistema básico para
que, a partir de éste, podamos empezar a montar un sistema a medida
de nuestras necesidades. Éste será el objeto de estos dos últimos talleres.
En el primero, después de concretar algunos aspectos referentes a la
configuración del sistema de instalación de paquetes, quedarán senta-
das las bases para poder instalar las aplicaciones necesarias. A conti-
nuación, aprenderemos a utilizar las distintas herramientas que nos
ofrece Debian para la gestión de paquetes, es decir, para instalar,
desinstalar, actualizar, etc. aplicaciones, e instalaremos y configurare-
mos algunas de ellas, que son comunes y necesarias en la mayoría de
sistemas tipo UNIX. El último taller está plenamente orientado al sistema
gráfico. En él aprenderemos a instalarlo, configurarlo, adaptarlo a
nuestras preferencias y, por último, aprenderemos a instalar y utilizar
aplicaciones que se sirven de este sistema para poder correr.




 9.2. El gestor de arranque


En primer lugar debemos asegurarnos de instalar un sistema de arran-
que que sea capaz de gestionar sin problemas los posibles sistemas
operativos que tengamos instalados en nuestro ordenador. Esta cues-
tión ya se abordó superficialmente en el taller anterior, durante el pro-
                                                                                                    ANOTACIONES


ceso de instalación. Si ya tenemos instalado el gestor de arranque y
hemos comprobado su correcto funcionamiento, podemos pasar a la
sección siguiente; pero si no es así, es decir, si para arrancar nuestro
sistema operativo necesitamos del disquete de rescate que creamos
durante el proceso de instalación, ha llegado el momento de instalar
un sistema de gestión de arranque en el disco duro para evitar la te-
diosa tarea de utilizar cada vez el disquete. De cualquier modo, siem-
pre es interesante tener instalado un sistema gestor de arranque, ya
que nos permitirá, entre otras cosas, poder arrancar diversos kernels.

                                                                              169
© FUOC • 71Z799002MO
  ©                        Software libre



                               Tal como se ha expuesto, hay distintos gestores de arranque, entre
                               ellos Lilo y Grub. Grub es un poderoso sistema gestor de arranque,
                               del proyecto GNU, que se caracteriza por poder gestionar correc-
                               tamente el arranque de cualquier sistema operativo que tengamos
                               instalado en nuestro ordenador, no obstante, su uso y su configu-
                               ración son un tanto complejos. Lilo es el gestor que se diseñó ini-
                               cialmente para gestionar los arranques de los kernels Linux, se
                               caracteriza por tener un sistema de instalación más intuitivo, ade-
                               más de ofrecer la posibilidad de forma sencilla, mediante una sola
                               línea de comandos, de reestablecer la imagen de la MBR anterior
                               si algo ha ido mal; aspecto muy interesante, sobre todo si en nues-
                               tro disco duro conviven distintos sistemas operativos, ya que escribir
                               en la MBR puede inutilizar alguno de ellos, en especial si se trata de
                               sistemas MicrosoftTM .


                               De cualquier forma, si no disponemos de gestor de arranque y que-
                               remos instalar uno, lo primero que debemos hacer es arrancar el sis-
                               tema operativo que tenemos y comprobaremos si la aplicación está
                               instalada, haciendo, por ejemplo, un man de la aplicación.



                               9.2.1. Instalación de Lilo

                               El archivo de configuración de Lilo se encuentra en /etc/lilo.conf.
                               El archivo está bien documentado y, por consiguiente, es fácil de
                               modificar mediante un editor de texto y adaptarlo a nuestras nece-
                               sidades. Una vez hayamos hecho las modificaciones que conside-
                               ramos oportunas, lo que haremos es ejecutar como root la
                               instrucción lilo para transferir a la MBR el contenido del fichero
                               de configuración.


                               Como medida de precaución, lo que haremos inmediatamente des-
ANOTACIONES




                               pués es reiniciar el ordenador, por ejemplo mediante el comando
                               reboot, y comprobaremos que todos los sistemas operativos que te-
                               nemos instalados arrancan correctamente. Si no fuese así, lo que se
                               debe hacer es volver a arrancar nuestro recién instalado sistema
                               operativo (mediante Lilo, si éste es capaz de hacerlo, o mediante el
                               disquete de rescate –el que hemos utilizado hasta el momento para
                               arrancar el sistema-) y ejecutar la instrucción siguiente para reesta-
                               blecer la copia de seguridad del la MRB que Lilo ha hecho antes de

                         170
Sistema operativo GNU/Linux básico                  © FUOC • 71Z799002MO
                                                                              ©




escribir sobre ella; con ello estaremos en la misma situación que es-
tábamos antes de ejecutar lilo:


brau:˜# lilo -U


Una vez hecho esto, debemos proceder a estudiar el porqué de los
errores y tratar de corregirlos; ha llegado el momento de empezar a
leer documentación, empezando por los mans, las FAQ, la docu-
mentación que podemos encontrar en /usr/share/doc/lilo/
etc. Una vez hechos los cambios pertinentes, repetiremos el proceso
anterior.


Puede suceder que tras diversos intentos lleguemos a la conclusión
de que: o Lilo no puede o no sabemos configurarlo correctamente
para arrancar todos los sistemas operativos que tenemos instalados
en el ordenador. Ha llegado el momento de probar con otros gesto-
res, como puede ser Grub.



9.2.2. Instalación de Grub

Grub no viene instalado por defecto, por este motivo, antes de usarlo
debemos proceder a su instalación. Para ello, podemos proceder a
leer las secciones posteriores para informarnos sobre el sistema ges-
tor de paquetes, su configuración y su uso; o simplemente, en caso
de que durante la instalación hayamos introducido en la base de da-
tos los contenidos de todos los CD o que hayamos optado por una
instalación por red, ejecutaremos la línea siguiente:


brau:˜# apt-get install grub grub-doc


Si no deseamos instalar el paquete de documentación, se puede
omitir el último parámetro de la línea anterior.
                                                                                              ANOTACIONES



Una forma recomendable de trabajar con Grub es hacer, antes de
escribir en la MRB, las pruebas que se estimen oportunas sobre un
disquete y probar su correcto funcionamiento arrancando desde és-
te. Para ello, lo primero que haremos es copiar los ficheros necesa-
rios en /boot/:


brau:˜# cp /usr/lib/grub/i386-pc/stage* /boot/
brau:˜# cp /usr/share/doc/grub/examples/menu.lst /boot/

                                                                        171
© FUOC • 71Z799002MO
  ©                        Software libre



                               Una vez hecho esto, editaremos el fichero de configuración de Grub,
                               /boot/menu.lst, y lo adaptaremos a nuestras necesidades. Esta ope-
                               ración puede ser un tanto compleja, debido, entre otras cosas, al
                               cambio de nomenclatura en lo que hace referencia a los discos du-
                               ros; así pues, para identificar en qué dispositivo se halla un fichero
                               en concreto, podemos ayudarnos del comando find una vez haya-
                               mos entrado en el modo de comandos de Grub mediante Grub. Así
                               pues, por ejemplo, para localizar un fichero, cuya ubicación seguro
                               que necesitaremos especificar en el fichero de configuración de
                               Grub, como puede ser /vmlinuz, procederemos de la manera si-
                               guiente:


                               brau:˜# grub


                                  GRUB version 0.91 (640K lower / 3072K upper memory)


                                [ Minimal BASH-like line editing is supported. For the
                                  first
                               word, TAB lists possible command completions.
                                  Anywhere else TAB lists the possible completions
                                  of a device/filename. ]


                               grub> find /vmlinuz
                                (hd2,0)


                               Grub cuenta con muchos más comandos, para ver un listado de al-
                               gunos de ellos basta con pulsar la tecla TAB en la línea de comandos
                               para obtener lo siguiente:


                               grub>
                                  Possible commands are: blocklist boot cat chainloader
                               cmp color configfile deb ug device displayapm displaymem
                               embed find fstest geometry halt help hide impsp robe initrd
                               install ioprobe kernel lock makeactive map md5crypt module
ANOTACIONES




                               moduleno unzip partnew parttype password pause quit read
                               reboot root rootnoverify savede fault serial setkey setup
                               terminal testload testvbe unhide uppermem vbeprobe


                               grub>


                               Para obtener ayuda de algún comando en concreto, basta con te-
                               clear help seguido del nombre de dicho comando. Una buena for-
                               ma de trabajar sobre nuestro fichero de configuración de Grub, /

                         172
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                               ©




boot/menu.lst es abriendo una nueva sesión en una tty distinta
e ir modificando dicho fichero a medida que vayamos trabajando so-
bre la interfaz de comandos de Grub.


Una vez hayamos terminado de editar el fichero de configuración, y
tras introducir un disquete virgen en la disquetera, teclearemos –sus-
tituyendo el carácter X por el número de disco duro, e Y por la par-
tición correspondiente– la línea de comandos siguiente:



grub> install (hdX,Y)/boot/stage1 d (fd0) (hdX,Y)/boot/stage2 p (hdX,Y)/boot/menu.lst



Con la línea anterior hemos transferido al disquete (fd0) la informa-
ción de la MBR (stage1), Grub y su interfaz de comandos (stage2), y
el menú de arranque que hayamos configurado en el fichero /
boot/menu.lst. Estamos, pues, en condiciones de reiniciar la má-
quina, arrancar mediante el disquete que acabamos de crear y com-
probar si nuestra configuración es correcta.


Es muy interesante disponer de un disquete con Grub, ya que, me-
diante su interfaz de comandos, podemos intentar arrancar directa-
mente los distintos sistemas operativos que tengamos instalados, con
el objeto de ir haciendo pruebas para depurar el contenido del fi-
chero /boot/menu.lst. A modo de ejemplo, se expone el pro-
cedimiento que hay que seguir para arrancar un sistema
MicrosoftTM instalado como (hd0,0) y a continuación los coman-
dos necesarios para arrancar un sistema GNU/Linux instalado
como (hd1,0):


Para un sistema Microsoft:


grub> rootnoverify (hd0,0)
                                                                                               ANOTACIONES



grub> makeactive
grub> chainloader +1
grub> boot


Para un sistema GNU/Linux:


grub> kernel (hd1,0)/vmlinuz root=/dev/hdc1
grub> boot

                                                                         173
© FUOC • 71Z799002MO
  ©                               Software libre



                                      Una vez tengamos en nuestro disquete el sistema de arranque de-
                                      finitivo que deseamos implementar, simplemente debemos trans-
                                      ferir esta misma configuración a la MBR del disco duro de
                                      arranque, desde la misma línea de comandos del disquete teclea-
                                      remos:


        grub> install (hdX,Y)/boot/stage1 d (hd0,0) (hdX,Y)/boot/stage2 p (hdX,Y)/boot/menu.lst



                                      Como se ha dicho, utilizar Grub es un tanto más complejo que Li-
                                      lo, por esta razón se recomienda que antes de embarcarse en su
                                      instalación y posterior configuración, se lea detenidamente los
                                      mans y la documentación que se ha instalado con el paquete
                                      Grub-doc, también accesible en            http://www.gnu.org/
                                      software/grub/.




                                       9.3. El sistema de paquetes


                                      Ha llegado el momento de analizar y aprender a utilizar el sistema
                                      de paquetes de Debian, probablemente el más sólido y fiable de
                                      cuantos existan en el mundo GNU.


                                      En las subsecciones siguientes aprenderemos a configurar su base
                                      de datos, a manipularla, a instalar paquetes, actualizarlos, etc. En
                                      muchas ocasiones hay distintas maneras de obtener el mismo re-
                                      sultado. Se expondrán algunas de ellas, con dos objetivos principa-
                                      les: el primero, para que el lector pueda optar por la que más le
                                      interese, y el segundo, porque es interesante conocer siempre más
                                      de una solución a un mismo problema, por si acaso alguna de ellas
                                      fallara.
ANOTACIONES




                                                                                            Actividad

                                                 13. Para la plena comprensión del funcionamiento del
                                                     sistema de paquetes Debian, se recomienda la lec-
                                                     tura de:


                                                 • APT HOWTO: http://www.de.debian.org/doc/
                                                   manuals/apt-howto/index.en.html

                                174
Sistema operativo GNU/Linux básico                © FUOC • 71Z799002MO
                                                                             ©




         • http://www.de.debian.org/doc/manuals/
            debian-faq/ch-pkg basics.en.html


         • http://www.de.debian.org/doc/manuals/
            debian-faq/ch-pkgtools.en.html


         • Los mans de: apt, apt-cache, apt-get,
            sources.list, dpkg y dselect.


         Nota: Para hacer estas lecturas más asequibles, pode-
         mos esperar a realizarlas cuando tengamos configurada
         la impresora y hayamos aprendido a imprimir mans.



9.3.1. /etc/apt/sources.list

El archivo /etc/apt/sources.list es el corazón de la configu-
ración del sistema de paquetes de Debian. Al tratarse de un fichero
de texto, como la mayoría de ficheros de configuración en los siste-
mas UNIX, lo podemos editar manualmente, o bien mediante algu-
nas herramientas de las que dispone el sistema para tal fin.


El contenido de este fichero dependerá en gran medida de la veloci-
dad con que podamos acceder a Internet, si es que lo podemos ha-
cer. Pero en ningún caso debemos olvidar ejecutar la instrucción
siguiente como root, una vez hayamos modificado el fichero:


brau:/etc/apt# apt-get update


Si no lo hicieramos, la base de datos del sistema de paquetes no se
                                                                                             ANOTACIONES


actualizaría y, en consecuencia, ninguno de los cambios realizados
surgiría efecto. En una instalación donde los paquetes se obtengan
de forma remota, este comando debe ser ejecutado periódicamente
para ir actualizando la base de datos; por este motivo, no es mala
idea incluirlo dentro del sistema cron.


Cada línea de este fichero hace referencia a una fuente de paquetes
y los campos van separados por un espacio. En primer lugar especi-
ficaremos si la fuente de paquetes es de paquetes binarios deb o si

                                                                       175
© FUOC • 71Z799002MO
  ©                                   Software libre



                                         es de código fuente deb-src. En el segundo campo especificaremos
                                         la forma de acceder a éstos: CD-ROM, http, ftp, etc. seguido de la
                                         dirección de acceso. Los campos restantes hacen referencia al tipo
                                         de paquetes al que queremos acceder por esta línea.



                                         /etc/apt/sources.list con acceso rápido a Internet

                                         En el mejor de los casos dispondremos de un acceso rápido a Inter-
                                         net. Esto, probablemente, ya nos habrá permitido hacer la instala-
                                         ción del sistema básico por red, además de disponer siempre de las
                                         últimas versiones de los paquetes. Se trata, además, de la forma más
                                         cómoda de trabajar con paquetes, ya que no tenemos ni siquiera
                                         que preocuparnos de insertar el CD correspondiente para hacer una
                                         instalación.


                                         De lo que debemos cerciornarnos, antes que nada, es de que el con-
                                         tenido de /etc/apt/sources.list sea correcto. A continuación
                                         se muestra un ejemplo:



              deb http://ftp2.de.debian.org/debian/ stable main non-free contrib
              deb-src http://ftp2.de.debian.org/debian/ stable main non-free contrib
              deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
              deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
              deb http://security.debian.org/ stable/updates main contrib non-free




                                         Todas las direcciones anteriores son oficiales, es decir, reconocidas
                                         por Debian. Aparte de estas fuentes, también se pueden utilizar pa-
                                         quetes no oficiales, que por no ser oficiales no significa que carezcan
                                         de calidad suficiente como para ser incluidos en nuestro fichero de
                                         configuración. Una buena dirección para obtener información acer-
ANOTACIONES




                                         ca de la localización de estos paquetes es http://www.apt-
                                         get.org.


                                         Una vez editado el fichero y salvado, ejecutaremos el comando
                                         “apt-get update” y tras unos instantes, en los cuales el sistema
                                         de paquetes reconfigurarará su base de datos y visualizará por pan-
                                         talla los distintos accesos que se realizan, ya tendremos acceso a los
                                         nuevos paquetes.

                                   176
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                               ©




/etc/apt/sources.list sin acceso rápido a Internet

En el caso de no disponer de conexión a Internet o de ser lenta, de-
bemos optar, sin dudarlo, por utilizar el juego de CD de la distribu-
ción para ir instalando los distintos paquetes. Si durante el proceso
de intalación no hemos insertado todos los CD, habrá llegado el mo-
mento de hacerlo. Insertamos el primer CD-ROM en el lector y usa-
mos el comando apt-CD-ROM para incluir sus contenidos en la
base de datos:


brau:/etc/apt# apt-CD-ROM add
Using CD-ROM mount point /CD-ROM/
.
.
.
Repeat this process for the rest of the CDs in your
set.


Llegados a este punto, repetiremos el mismo proceso para todos y
cada uno de nuestros CD de la distribución. Asimismo, puede utili-
zarse el mismo procedimiento para incorporar datos procedentes de
CD-ROM no oficiales.


Una vez tengamos configurado nuestro acceso a Internet, si lo estima-
mos oportuno, podemos incluir fuentes de paquetes de acceso reomo-
to. Para ello editaremos el fichero /etc/apt/sources.list y
despues de ejecutar “apt-get update”, tendremos disponibles los
nuevos paquetes.



9.3.2. apt
                                                                                               ANOTACIONES



apt es acrónimo de Advanced Package Tool, que, como ya se ha di-
cho en diversas ocasiones, es el sistema básico encargado de la ad-
ministración de paquetes de las distribuciones basadas en Debian.
apt pone a nuestra disposición esencialmente dos herramientas:
atp-get y apt-cache. El primer comando lo puede utilizar única
y exclusivamente el root del sistema, ya que es la herramienta de ges-
tión de paquetes: instalación, desinstalación, actualización, etc.,
mientras que el segundo, al ser un comando orientado a la búsque-

                                                                         177
© FUOC • 71Z799002MO
  ©                        Software libre



                               da de información dentro de la base de datos, ya sean paquetes ins-
                               talados o sin instalar, puede ser utilizado por cualquier usuario.


                               Con el objeto de facilitar el manejo de paquetes, se han desarrollado
                               otras aplicaciones que corren por encima de apt, como puede ser el
                               middle-end dpkg o los front-end dselect o aptitude. Pero antes
                               de adentrarnos en los distintos sistemas de administración de paque-
                               tes, debemos conocer algunos conceptos acerca de éstos y de su re-
                               lación con el sistema y el sistema de gestión.



                               Tipos de paquetes según su prioridad


                               Dentro del sistema de paquetes se distinguen cinco tipos distintos se-
                               gún su grado de dependencia con el mismo sistema. Por orden de-
                               creciente de prioridad se clasifican como:


                               Required. Se trata de paquetes indispensables para el correcto fun-
                               cionamiento del propio sistema.


                               Important. Se trata de paquetes que deberían estar presentes en
                               cualquier sistema tipo UNIX.


                               Standard. Se trata de paquetes que comúnmente se encuentran en
                               un sistema GNU/Linux. Por lo general son aplicaciones de tamaño
                               reducido, pero que ya no son indispensables para el sistema.


                               Optional. Se trata de paquetes que pueden estar o no, presentes
                               en un sistema GNU/Linux. Entre otros, dentro de este grupo se ha-
                               llan todos los paquetes referentes al sistema gráfico, ya que éste
ANOTACIONES




                               no se considera indispensable. En realidad, en muchos servidores,
                               con el objeto de aumentar su rendimiento se prescinde del entorno
                               gráfico.


                               Extra. Son paquetes que, o bien presentan conflictos con paquetes
                               con prioridad superior a la suya o bien porque requieren de configu-
                               raciones especiales que no los hacen aptos para ser integrados como
                               optional.

                         178
Sistema operativo GNU/Linux básico                    © FUOC • 71Z799002MO
                                                                                  ©




Podemos determinar a qué grupo pertenece un paquete en concreto
mediante, por ejemplo, la sentencia “apt-cache show <nombre
del paquete>” y consultar el contenido del campo Priority:



Grado de dependencia entre paquetes


apt se caracteriza por su gran consistencia a la hora de gestionar las
dependencias que existen entre paquetes. Puede, por ejemplo, que
una determinada aplicación que queremos instalar dependa de una
librería y, en consecuencia, de otro paquete que no tengamos insta-
lado. En este caso, apt nos informará de esta dependencia y nos pre-
guntará si queremos que, junto con la aplicación que vamos a
instalar, se instale el paquete que contiene dicha librería. Las relacio-
nes entre paquetes se clasifican de la manera siguiente:


depends. El paquete que queremos instalar depende de estos pa-
quetes y, por consiguiente, si queremos que este paquete funcione
correctamente, debemos permitir que apt instale el resto de ellos.


recommends. El responsable del mantenimiento del paquete ha es-
timado que normalmente los usuarios que vayan a instalar este pa-
quete también usarán los que recomienda.


suggests. Los paquetes que se sugieren permiten obtener un mayor
rendimiento del paquete que vamos a instalar.


conflicts. El paquete que vamos a instalar no funcionará correcta-
mente si estos otros paquetes están presentes en el sistema.
                                                                                                  ANOTACIONES



replaces. La instalación de este paquete implica la desinstalación de
otros paquetes.


provides. El paquete que vamos a instalar incorpora todo el conte-
nido de los paquetes mencionados.


Podemos determinar las dependencias de un paquete, por ejemplo,
la sentencia “apt-cache depends <nombre del paquete>”.

                                                                            179
© FUOC • 71Z799002MO
  ©                        Software libre



                               Acciones sobre los paquetes

                               Mediante los flags siguientes, dpkg o dselect nos informará acerca
                               de lo que el usuario pretende hacer con dichos paquetes:


                               unknown. Nunca se ha hecho referencia a dicho paquete.


                               install. Se quiere instalar o actualizar el paquete.


                               remove. Se quiere desinstalar el paquete, pero manteniendo sus fi-
                               cheros de configuración (comúnmente situados en /etc/).


                               purge. Se quiere desinstalar por completo el paquete, inclusive sus
                               ficheros de configuración.


                               hold. Se quiere indicar que no se quiere realizar ninguna operación
                               sobre este paquete (es decir, que se mantenga hasta nuevo aviso su
                               versión y su configuración).



                               Estado de instalación de los paquetes


                               Dentro del sistema un paquete se puede hallar:


                               installed. El paquete ha sido instalado y configurado correctamente.


                               half-installed. La instalación del paquete se ha comenzado, pero,
                               por alguna razón, no ha terminado.


                               not-installed. El paquete no está instalado en el sistema.
ANOTACIONES




                               unpacked. El paquete ha sido desempaquetado, pero no configurado.


                               half-installed. El paquete ha sido desempaquetado y se ha iniciado
                               el proceso de configuración, pero por alguna razón éste no ha ter-
                               minado.


                               config-files. Sólo existen, en el sistema, los archivos de configuración
                               de dicho paquete.

                         180
Sistema operativo GNU/Linux básico                    © FUOC • 71Z799002MO
                                                                                  ©




apt-cache

Como ya se ha dicho, apt-cache es un comando orientado al aná-
lisis del sistema de paquetes y, por tanto, al no ser un arma poten-
cialmente peligrosa para el sistema, es accesible a todos sus
usuarios. Los parámetros más utilizados para este comando son los
siguientes:


search pattern. Busca en la base de datos los paquetes cuyo nombre
contenga pattern o en cuya descripción aparezca pattern (si el resul-
tado es un lista extensa debido a que pattern es muy general, se pue-
den utilizar pipes y grep para filtrar estos resultados).


show package. Innforma acerca del paquete.


policy package. Informa acerca del estado de instalación, la versión
y revisión del paquete, y su procedencia.


depends package. Explicita las dependencias del paquete.


show package. Muestra las dependencias directas y las reversas del
paquete.



apt-get

apt-get es el comando que se utiliza para gestionar los paquetes del
sistema. Por este motivo su uso está restringido al root del sistema. Los
parámetros más utilizados para este comando son los siguientes:


install package. Instala el paquete. Si éste depende de paquetes que
no se encuentran en el sistema, apt nos informará de ello, y nos pre-
                                                                                                  ANOTACIONES


guntará si junto con el paquete en cuestión queremos instalar los pa-
quetes de los que depende y que no están instalados; por lo general
es interesante seguir los consejos de apt.


update. Actualiza la base de datos de apt. Este comando debe ejecutar-
se cada vez que se modifica el archivo /etc/apt/sources.list.


upgrade. Fuerza la actualización de todos los paquetes instalados en
el sistema a la última versión disponible.

                                                                            181
© FUOC • 71Z799002MO
  ©                        Software libre



                               remove package. Elimina el paquete, sin eliminar los ficheros de
                               configuración, de cara a posibles reinstalaciones.


                               remove -purge package. Elimina por completo el paquete, incluyen-
                               do sus archivos de configuración.


                               clean. Elimina las copias caducadas de los paquetes que se ha ido
                               instalando, proceso en el cual se almacena de manera automática
                               una copia del paquete sin desempaquetar en /var/cache/apt/
                               archives cuando se instala un paquete. Comando muy útil de
                               cara a liberar espacio del disco duro, ocupado por ficheros que, pro-
                               bablemente, nunca más serán utilizados.


                               autoclean. Elimina todas las copias no desempaquetadas de los pa-
                               quetes, independientemente de su vigencia.



                               9.3.3. dpkg

                               dpkg es acrónimo de Debian Package Manager y fue concebido
                               como back-end de apt. Los parámetros más utilizados son los si-
                               guientes:


                               – l. Para listar todos los paquetes de la base de datos y su estado
                                  de instalación (generalmente esta opción se combina con grep).


                               – L package. Para listar los ficheros contenidos en el paquete.


                               – r package. Tiene el mismo efecto que apt-get remove package.
ANOTACIONES




                               – P package. Tiene el mismo efecto que apt-get remove --
                                  purge package .


                               – p package. Tiene el mismo efecto que apt-get show package.


                               – s package. Describe el estado de instalación del paquete.


                               – S file. Busca a qué paquetes pertenece el fichero.

                         182
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                               ©




9.3.4. dselect

dselect es una GUI (Graphical User Interface) que corre sobre apt.
Para entrar en ella, basta con teclear el comando dselect, y me-
diante los menús de esta interfaz ir seleccionando los distintos pa-
quetes sobre los cuales queremos operar y especificar qué tipo de
operación deseamos hacer sobre ellos.



9.3.5. aptitude


aptitude es otra GUI que corre sobre apt. Por defecto no viene insta-
lada, por lo que hay que hacerlo antes de proceder a su uso:


brau:/etc/apt# apt-get install aptitude


Una vez instalada, la lanzamos mediante el comando aptitude,
y enseguida veremos que su uso es igual o más simple que el de
dselect, ya que dispone de menús desplegables accesibles median-
te F10.




 9.4. locales: configuración regional


Aunque aparentemente nuestro teclado funcione correctamente, ya
que podemos utilizar acentos, diéresis y otros caracteres no ingleses,
a medida que vayamos adaptando el sistema a nuestras necesida-
des, y especialmente cuando instalemos el sistema gráfico y haga-
mos correr aplicaciones sobre él en el próximo taller, nos daremos
cuenta de que esto no es así. Podemos, pues, en este punto proceder
a configurar correctamente estos aspectos para no tenerlo que hacer
                                                                                               ANOTACIONES


más adelante.


En primer lugar comprobaremos si el paquete locales está ins-
talado:



brau:/# dpkg -l| grep locales
ii locales             2.2.5-11.2             GNU C Library: National Language (locale) da


                                                                         183
© FUOC • 71Z799002MO
  ©                                               Software libre



                                                       Si no obtenemos la última línea, debemos proceder a instalar el pa-
                                                       quete y configurarlo:


                                                       brau:/# apt-get install locales


                                                       Y si ya disponemos de él, teclearemos la siguiente línea para recon-
                                                       figurarlo:


                                                       brau:/# dpkg-reconfigure locales


                                                       De las muchas opciones que se nos ofrecen, elegimos [*] es ES
                                                       ISO-8859-1, es decir, nos situamos sobre dicha opción y pulsamos
                                                       la barra espaciadora. Mediante TAB, nos situamos sobre OK y pul-
                                                       samos INTRO. En la próxima pantalla seleccionamos C.


                                                       De vuelta a la línea de comandos, editamos el fichero /etc/environment
                                                       para dejarlo de la manera siguiente:


                                                       LC_ALL=es_ES
                                                       LANGUAGE=en_US
                                                       LC_TYPE=es_ES
                                                       LC_MESSAGES=ISO8859-1


                                                       LANG=C


        Lectura complementaria                         Para hacer efectivo el cambio, basta con teclear el comando locale-gen,

              Para saber más acerca de                 y saldremos de todas las sesiones que tengamos abiertas para car-
              locales, se recomienda visi-             gar la nueva configuración.
              tar la página:
              http://www.uniulm.de/ s smasch/
              locale/.
ANOTACIONES




                                                         9.5. Configuración de man y su pager


                                                       Puede que al intentar invocar man nos dé un error del tipo:


                                                Reformatting man(1), please wait...
                                                sh: /usr/bin/pager: No such file or directory
                                                sh: exec: /usr/bin/pager: cannot execute: No such file or directory
                                                man: command exited with status 32256: /usr/bin/zsoelim /tmp/zmanZpjojO |
                                                      /usr/bin/tbl | /usr/bin/nroff -mandoc -Tlatin1 | exec /usr/bin/pager -s


                                                184
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                               ©




En este caso, no tenemos ningún paginador asignado a /usr/bin/
pager, de modo que man lo pueda utilizar para mostrarnos los
contenidos de ayuda. Es más, probablemente no tengamos ningún
paginador instalado. En ambos casos, lo que haremos es intentar
instalar less, seguramente el paginador más utilizado para man:


brau:/# apt-get install less


En el caso de que el paquete no esté instalado, se nos abrirá una
pantalla de configuración, a la que en principio, contestaremos ne-
gativamente, opción por defecto. Con esto ya habremos instalado
less, y probablemente ya se haya asignado él mismo como pagi-
nador de man. Si no fuera así (lo podríamos probar ejecutando un
man man, por ejemplo), o si less ya estuviera instalado, utilizaría-
mos el comando siguiente para asignarlo como paginador (también
se puede utilizar para cambiar de paginador, por ejemplo, para
cambiar a more, jless, o cualquier otro paginador):


brau:/# update-alternatives --config pager


Lo que hace el comando anterior, en el caso del paginador, y en ge-
neral con el resto de aspectos configurables mediante él, es crear en-
laces simbólicos. Para el caso del paginador éstos son:


/etc/alternatives/pager -> /usr/bin/less
/usr/bin/pager -> /etc/alternatives/pager




 9.6. El archivo principal de arranque, /etc/inittab
                                                                                               ANOTACIONES


Aunque el proceso de arranque de un sistema GNU/Linux es com-
plejo, en esta sección sólo se pretende trabajar sobre uno de los fi-
cheros principales de este proceso: /etc/inittab. Este archivo
indica al proceso de arranque, entre otros, a qué runlevel se entra-
rá, y definirá qué procesos se arrancarán de forma automática du-
rante el proceso de arranque. Para saber en qué runlevel nos
hallamos, basta con teclear el comando runlevel. Para cambiar
de runlevel, como root, usaremos la instrucción init <runlevel
de destino>.

                                                                         185
© FUOC • 71Z799002MO
  ©                              Software libre



                                   Es interesante abrir este fichero e irse familiarizando con su conteni-
                                   do, ya que esto nos permitirá comprender mejor el proceso de arran-
                                   que de un sistema GNU/Linux.




                                    9.7. Montaje de dispositivos, /etc/fstab


                                   /etc/fstab es el fichero que contiene la información acerca de las
                                   particiones y dispositivos que se montarán de forma automática durante
                                   el proceso de arranque, y las que se pueden montar posteriormente, así
                                   como también establece quién puede hacerlo. A continuación, se mues-
                                   tra el posible contenido de este fichero y se pasa a analizarlo:


    # /etc/fstab: static file system information.
    #
    # <file system>      <mount point>       <type>         <options>                  <dump>
    <pass>
    /dev/hdg1            /                   ext3           errors=remount-ro          0              1
    /dev/hdg2            none                swap           sw                         0              0
    proc                 /proc               proc           defaults                   0              0
    /dev/fd0             /floppy             auto           user,noauto                0              0
    /dev/hdg5            /usr                ext3           defaults                   0              2
    /dev/hdg6            /var                ext3           defaults                   0              2
    /dev/hdg7            /home               ext3           defaults                   0              2


    /dev/CD-ROM /CD-ROM iso9660 ro,user,noauto 0 0


    /dev/hdc1 /mnt/hdc1 ntfs ro,user,noauto,gid=windows,umask=0007,utf8 0 0
    /dev/hde1 /mnt/hde1 ntfs ro,user,noauto,gid=windows,umask=0007,utf8 0 0
    /dev/hde5 /mnt/hde5 ntfs ro,user,noauto,gid=windows,umask=0007,utf8 0 0


    /dev/hde6 /mnt/hde6 vfat utf8,user,noauto 0 0
ANOTACIONES




    /dev/hde7 /mnt/hde7 vfat utf8,user,noauto 0 0


                                   Las primeras líneas las ha generado automáticamente el proceso de ins-
                                   talación y en ellas podemos ver cómo están distribuidos los distintos di-
                                   rectorios dentro de la estructura puramente GNU/Linux. Quizás la línea
                                   que más llama la atención sea la proc /proc proc defaults 0 0;
                                   ésta es la encargada del montaje del directorio virtual proc, del cual ya
                                   se habló en el primer taller.

                             186
Sistema operativo GNU/Linux básico                    © FUOC • 71Z799002MO
                                                                                  ©




Más interesantes son las líneas tipo /dev/hdc1 /mnt/hdc1 ntfs
utf8,ro,noauto,user,gid=windows,umask=0007,utf8 0 0.
En ellas se especifica el punto de origen y el punto de montaje de par-
ticiones pertenecientes al sistema operativo Windows2000TM, es decir,
de tipo ntfs. En estas particiones no se puede escribir desde GNU/Linux,
aunque sí que se puede leer su contenido, esto se ve reflejado en las op-
ciones ro,noauto,user,gid=windows,umask=0007,utf8 (es
fundamental no dejar ningún espacio en blanco entre opciones, ya
que este carácter es el que se utiliza para separar los campos en este
fichero). La primera indica que se trata de una partición de sólo lec-
tura; la segunda, que no se monte automáticamente durante el pro-
ceso de arranque del sistema; la tercera indica que esta partición la
puede montar cualquier usuario; la cuarta opción indica que sólo po-
drán acceder a ella los miembros pertenecientes al grupo Windows
(definido en el fichero /etc/group); la penúltima opción establece la
antimáscara de montaje y la última, la tabla de códigos a utilizar.


Hay que tener presente que por defecto el kernel que hemos instala-
do no soporta el tipo ntfs. Por tanto, hay que cargar el módulo co-
rrespondiente mediante el comando modconf y seleccionar la
opcion kernel/fs/ntfs.


Las últimas líneas del fichero anterior van destinadas a montar par-
ticiones fat32, sobre las cuales sí que es posible escribir desde GNU/
Linux. Por esta razón es buena idea disponer siempre de una peque-
ña partición con este tipo de formato, ya que será accesible tanto
desde GNU/Linux, como desde WindowsTM .


Si bien es cierto que es posible montar un sistema de ficheros desde
la línea de comandos, como por ejemplo se haría para montar el
CD-ROM,
                                                                                                  ANOTACIONES




brau:/etc/apt# mount /dev/CD-ROM /CD-ROM -t iso9660 ro


es mucho más cómodo tener la información introducida en el archivo /
etc/fstab, ya que esto nos permitirá hacer lo mismo tecleando tan
sólo:


brau:/etc/apt# mount /CD-ROM

                                                                            187
© FUOC • 71Z799002MO
  ©                        Software libre



                                9.8. Configuración de dispositivos

                               Una vez sentadas las bases para la administración de paquetes, po-
                               demos abordar la tarea de empezar a configurar el sistema a la me-
                               dida de nuestras necesidades. Este proceso consta, básicamente, de
                               dos partes: configuración de los distintos dispositivos de hardware
                               que tengamos instalados en el ordenador, e instalación del software
                               que vamos a utilizar.


                               La configuración del hardware del sistema suele ser la parte que
                               cuesta más esfuerzo en general, ya que en cada ordenador encon-
                               traremos dispositivos distintos, y por tanto cada ordenador será un
                               mundo. Por lo general, en los sistemas GNU/Linux se puede confi-
                               gurar cualquier dispositivo, por raro que éste sea, aunque en función
                               de su grado de estandarización, esto será más o menos complicado.
                               Pero también es cierto que durante este proceso es cuando más se
                               aprende, ya que, por lo general, configurar un dispositivo implicará
                               siempre ciertas tareas previas, como informarnos exactamente sobre
                               qué tipo de dispositivo es del que disponemos, leer documentación
                               acerca de cómo este tipo de dispositivos se integran en los sistemas
                               GNU/Linux, cómo se hace esta integración para nuestro dispositivo
                               en particular, etc.


                               Dado que no todos los fabricantes de hardware dan soporte a los sis-
                               temas GNU/Linux, y los hay que ni siquiera facilitan la información
                               necesaria para que los desarrolladores de la comunidad puedan es-
                               cribir el código necesario para poder integrar estos dispositivos al sis-
                               tema operativo, se recomienda siempre que a la hora de adquirir
                               hardware nuevo, nos informemos sobre cuál es exactamente el pro-
                               ducto que deseamos adquirir (información en general mucho más
                               precisa de la que suelen facilitar los proveedores de hardware, y de
ANOTACIONES




                               la cual, a veces, ni disponen), si éste está plenamente soportado, de
                               qué información disponemos para integrar el nuevo producto en
                               nuestro sistema, etc. Los aspectos generales que hay que considerar,
                               a la hora de realizar una nueva adquisición, son a grandes rasgos:
                               el grado de estandarización y calidad del producto. Por lo que a la
                               estandarización se refiere, cuanto más estándar sea el producto, se-
                               guro que más usuarios disponen de él y, por tanto, se hace mucho
                               más probable que esté plenamente soportado. En cuanto a calidad
                               del producto, hace ya algunos años que fabricantes de hardware,

                         188
Sistema operativo GNU/Linux básico                  © FUOC • 71Z799002MO
                                                                              ©




para reducir costes, empezaron a sustituir funciones que inicialmente
se implementaban vía hardware por soluciones software (siendo el
caso más comúnmente conocido de esta práctica, quizás, la de los
módems conocidos como winmódems). Esto se traduce, por una par-
te, en una bajada de rendimiento del sistema, ya que presupone car-
gar a la CPU con nuevas tareas, para muchas de las cuales ni
siquiera ha sido diseñada y, por otra, la necesidad de disponer del
software que suplante al hardware eliminado, y que, por lo general,
sólo está desarrollado para cierto tipo de sistemas operativos; por
esta razón, se recomienda en general rehuir de cualquier producto
que se distinga por ser diseñado para un sistema operativo determi-
nado.


A lo largo de cada subsección de configuración se irán comentando
algunos aspectos sobre los distintos dispositivos que nos podemos
encontrar, y qué problemas llevan implícitos.


Antes de empezar a configurar los distintos dispositivos de nuestro
sistema, recordaremos algunas estrategias que nos pueden ser de
utilidad para este fin. En primer lugar, mediante el comando lspci
podemos obtener mucha información acerca de cómo estos disposi-
tivos han sido reconocidos por el sistema durante el proceso de
arranque. Si esta información no nos es suficiente, siempre podemos
recurrir al directorio virtual /proc/, donde queda registrada toda la
información acerca del hardware del sistema, entre otras. También
pueden ser de utilidad los ficheros de log, ubicados en /var/log/
(una práctica interesante para ver cómo evoluciona temporalmente
el contenido de estos ficheros es utilizar el comando tail con el pa-
rámetro “-f” y redireccionar su salida a una tty que no estemos
usando; a modo de ejemplo “tail -f /var/log/messages > /
dev/tty10”).
                                                                                              ANOTACIONES




9.8.1. Configuración del ratón

Al igual que se ha hecho en el taller de KNOPPIX, el deamon que se
encargará de gestionar el ratón será gpm. Procedamos pues a ins-
talar el paquete:


brau:/etc/apt# apt-get install gpm

                                                                        189
© FUOC • 71Z799002MO
  ©                        Software libre



                               Al finalizar la instalación, se arranca automáticamente un script para
                               asistirnos en la configuración del ratón, los parámetros que debemos
                               pasarle son esencialmente los mismos que le pasamos en su mo-
                               mento en el taller de KNOPPIX, pero si algo fallase, siempre pode-
                               mos volver a lanzar el programa de configuración mediante el
                               comando gpmconfig (por lo general la configuración “-m /dev/
                               psaux -t ps2” debería ser válida para la mayoría de mice de tres
                               botones PS2). La configuración que utilizará gpm cada vez que
                               arranque se guarda en /etc/gpm.conf.


                               Se recomienda que el ratón tenga tres botones, ya que se acostum-
                               bra a asignar funciones a los tres, en especial en los entornos gráfi-
                               cos. Por esta razón, si disponemos de un ratón de tan sólo dos
                               botones, deberemos emular el tercero pulsando los dos a la vez.



                               Arranque y parada de gpm

                               Como ya se ha dicho, el programa encargado de gestionar el fun-
                               cionamiento del ratón es un deamon. Por ello, tanto para lanzarlo
                               como para detenerlo procederemos de la misma manera que se
                               hace con cualquier deamon. Esta subsección servirá de ejemplo para
                               mostrar cómo se arrancan y se paran los deamons.


                               Tanto el arranque como la parada de un deamon se hace mediante
                               un script residente en /etc/init.d/. Por lo general, si se invoca
                               este script sin ningún parámetro, él mismo nos mostrará una línea de
                               ayuda para orientarnos en su uso. Procedamos pues a parar el dea-
                               mon gpm:


                               brau:/etc/init.d# ./gpm stop
                               Stopping mouse interface server: gpm
ANOTACIONES




                               Mediante “ps aux” podemos comprobar que, efectivamente, no
                               hay ningún proceso corriendo llamado gpm, y además podemos ver
                               que si movemos el ratón, no se muestra nada por pantalla. Ahora
                               procedamos a arrancarlo:


                               brau:/etc/init.d# ./gpm stop
                               Starting mouse interface server: gpm

                         190
Sistema operativo GNU/Linux básico                 © FUOC • 71Z799002MO
                                                                              ©




Movamos el ratón y observemos cómo en pantalla aparece su pun-
tero. Ahora procedamos a analizar si al arrancar el ordenador este
deamon se arrancará automáticamente. El fichero /etc/inittab
nos indica en qué runlevel se arrancará el sistema operativo: por de-
fecto, el 2; por lo tanto, en dicho archivo deberíamos encontrar una
línea como la que sigue:


# The default runlevel.
id:2:initdefault:


Comprobemos pues si en el directorio /etc/rc2.d/ existe un en-
lace simbólico a /etc/init.d/gpm:


brau:/etc/init.d# ls -l ../rc2.d/ | grep gpm
lrwxrwxrwx    1 root     root          13 feb 21 13:03 S20gpm -> ../init.d/gpm



Si este enlace simbólico no existiera, y deseáramos que gpm se
arrancase automáticamente durante el proceso de arranque, debe-
ríamos crearlo manualmente mediante “ls -s”. Si por el contrario
el enlace existiera y no deseáramos que gpm se arrancara, durante el
proceso de arranque bastaría con borrar este enlace simbólico; no
obstante, no es recomendable borrar los scripts de /etc/init.d,
ya que son muy útiles de cara a arrancar y detener deamons.



9.8.2. Configuración de módems

Al igual que el resto de hardware, los módems se pueden configurar
de modo totalmente manual, pero esta práctica, en general, ha pa-
sado a formar parte del pasado, ya que con el tiempo se han ido de-
sarrollando herramientas suficientemente potentes y fiables que nos
pueden ayudar a ahorrarnos la tediosa tarea de configurar un mó-
                                                                                              ANOTACIONES



dem manualmente. Una de estas herramientas es pppconfig, que es
la que se propone en este texto para configurar nuestro módem.


Pero antes de empezar con la configuración de nuestro módem, hay
que poner de manifiesto que no son realmente módems todos los
dispositivos que se anuncian o se venden como tales. Como ya se ha
dicho, muchos fabricantes, con el objetivo de reducir costes, han ido
sustituyendo componentes físicos por software, siendo probablemen-

                                                                        191
© FUOC • 71Z799002MO
  ©                        Software libre



                               te los módems los primeros dispositivos que históricamente fueron
                               víctimas de estas prácticas. Hay que prestar especial atención a los
                               módems internos, ya que en realidad son pocos los que incorporan
                               todo el hardware propio de estos dispositivos. Éstos son fácilmente
                               reconocibles por la diferencia de precio con respecto a los falsos mó-
                               dems. Por esta razón, muchos de estos dispositivos se han visto redu-
                               cidos a meros esclavos de su software (para más información acerca de
                               estos dispositivos y de su integración en GNU/Linux véase:


                               – http://www.tldp.org/HOWTO/Winmodems-and-Linux-HOWTO.html,
                               – http://www.tldp.org/HOWTO/Linmodem-HOWTO.html,
                               – http://www.idir.net/ gromitkc/winmodem.html).


                               Por esta razón, en general se recomienda utilizar, siempre que
                               sea posible, módems externos. Independientemente de que se
                               disponga de un módem real o no, se recomienda la lectura de
                               http://www.tldp.org/HOWTO/Modem-HOWTO.html.


                               Dado que vamos a utilizar pppconfig para configurar nuestro módem,
                               si no lo instalamos durante el proceso de instalación del sistema (se pue-
                               de probar intentando lanzar la aplicación directamente, es decir, te-
                               cleando pppconfig, o mediante “dpkg -l | grep pppconfig”),
                               lo primero que debemos hacer es instalar la aplicación:


                               brau:˜# apt-get install ppp pppconfig


                               Una vez nos encontramos en la pantalla principal de la interfaz de
                               instalación, seleccionaremos la opción Create Create a con-
                               nection y en la pantalla siguiente introduciremos el nombre con el
                               que nos referiremos a esta configuración, ya que es posible configu-
                               rar y gestionar más de una conexión.
ANOTACIONES




                               Después de asignar un nombre a la nueva configuración, debemos
                               configurar el acceso al DNS, podemos escoger la opción por defecto,
                               asignación estática de DNS, o por asignación dinámica de DNS, si
                               sabemos certeramente que nuestro ISP durante el proceso de co-
                               nexión nos facilita las direcciones de los DNS. Si escogemos la op-
                               ción por defecto, se nos pedirá que entremos las IP de los DNS que
                               queremos utilizar, y que se almacenarán en el fichero /etc/ppp/
                               resolv/nombredeconfiguracion).

                         192
Sistema operativo GNU/Linux básico                  © FUOC • 71Z799002MO
                                                                              ©




En la pantalla siguiente debemos escoger el método de autenticación
para establecer la configuración. En general, y salvo casos excepcio-
nales, escogeremos la primera opción, PAP. Seguidamente, facilita-
remos el nombre de usuario y el password de conexión, y
seleccionaremos la velocidad de acceso; la que se propone por de-
fecto, 115200, en la mayoría de conexiones debería funcionar sin
ningún problema. Tras especificar si nuestra línea telefónica va por
pulsos o por tonos (actualmente, la mayoría ya van por tonos), en-
traremos el número que se debe marcar y que nos tiene que haber
facilitado nuestro ISP.


Llegados a este punto, pppconfig nos propone la ejecución de autode-
tección del módem. Con el módem en marcha podemos dejar que sea
el mismo programa el que detecte a qué puerto está conectado el mó-
dem, o lo podemos hacer nosotros manualmente (recordando siempre
la correspondencia: primer puerto serie, COM1, /dev/ttyS0, segun-
do puerto serie, COM2, /dev/ttyS1, etc).


Una vez hayamos entrado la ttyS a la que está conectado el módem,
accederemos a una pantalla de resumen de los datos que hemos en-
trado, la cual también nos ofrece la posibilidad de establecer opcio-
nes avanzadas (por lo general, no necesarias). Si los datos son
correctos, podemos escoger la opción Finished Write files
and return to main menu, y tras confirmar la operación, de re-
torno al menú principal de la interfaz, si no queremos configurar
ninguna otra conexión, escogeremos la opción Quit Exit this
utility para volver a la línea de comandos. Una vez en la línea
de comandos, podemos comprobar que los datos se han guardado
correctamente en /etc/ppp/peers/nombredeconfiguración.


Para los usuarios de conexiones PPP también puede ser interesante
                                                                                              ANOTACIONES


instalar el paquete pppstatus para monitorizar el tráfico de la co-
nexión, entre otros.



Establecimiento y finalización de conexión: pon, poff

Para establecer la conexión, bastará con teclear la instrucción pon
seguido del nombre de conexión que queramos utilizar; si sólo he-
mos configurado una conexión, no será necesario especificar su

                                                                        193
© FUOC • 71Z799002MO
  ©                        Software libre



                               nombre. En principio, si no se restringe el uso, pon puede ser ejecu-
                               tado por cualquier usuario.


                               Para finalizar la conexión bastará con ejecutar el comando poff.



                               9.8.3. Configuración de módems DSL

                               De la misma manera que se ha hecho en la sección anterior para la
                               configuración de módems tradicionales, utilizaremos una herra-
                               mienta para configurar los módems DSL: pp-poeconf. Pero antes de
                               empezar se recomienda la lectura de http://www.tldp.org/HOWTO/
                               DSL-HOWTO/ y de http://www.tldp.org/HOWTO/ADSL-Bandwidth-
                               Management-HOWTO/.



                               9.8.4. Configuración de tarjetas de red

                               Si por el motivo que sea no hemos configurado la tarjeta de red du-
                               rante el proceso de instalación, ahora es el momento de hacerlo.
                               Aunque prácticamente todas las tarjetas de red están soportadas en
                               los sistemas GNU/Linux, ya que éstas son una pieza clave para un
                               sistema operativo orientado a redes, una vez más se recomienda el
                               uso de hardware lo más estándar posible para no tener complicacio-
                               nes a la hora de configurarla. Puede que nuestra tarjeta venga so-
                               portada de dos formas distintas: la primera es que su driver haya
                               sido directamente compilado dentro del propio kernel, y la segunda,
                               es que el driver haya sido compilado en forma modular, para que se
                               cargue posteriormente.


                               La forma más sencilla de saber si el driver de nuestra tarjeta de
                               red ha sido compilado dentro del propio kernel es analizando el
                               mensaje de retorno de dmesg tal y como se ha hecho en 5.4.3.
ANOTACIONES




                               La configuración completa del flavor bf24 se puede encontrar en
                               ftp://ftp.debian.org/debian/dists/woody/main/disks-i386/current
                               bf2.4/kernel-config entre otros.


                               Si después de analizarse detalladamente la salida del comando
                               dmesg llegamos a la conclusión de que el driver para nuestra tarjeta
                               no ha sido cargado, podemos ejecutar el comando modconf, que
                               sirve para cargar módulos al kernel que han sido compilados junto

                         194
Sistema operativo GNU/Linux básico                © FUOC • 71Z799002MO
                                                                              ©




a él, y comprobar si el driver para ésta aparece en la subsección
kernel/drivers/net. Si es así, bastará con seleccionarlo para
cargarlo en el kernel.


Si nuestra tarjeta de red no está soportada por defecto, deberemos
recurrir a la recompilación del kernel.


Una vez hecho esto, editaremos el fichero /etc/network/interfaces
para pasar los parámetros correspondientes a nuestra red a la tarje-
ta. Una posible configuración sería:



 # /etc/network/interfaces -configuration file for ifup(8), ifdown(8)


 # The loopback interface
 auto lo
 iface lo inet loopback


 # The first network card this entry was created during the Debian installation
 # (network, broadcast and gateway are optional)
 auto eth0
 iface eth0 inet static
        address 158.109.69.132
        netmask 255.255.0.0
        network 158.109.0.0
        broadcast 158.109.255.255
        gateway 158.109.0.3




Se recomienda la lectura de http://www.tldp.org/HOWTO/Networking-
Overview-HOWTO.html,        también    http://www.fokus.gmd.de/linux/
HOWTO/Net-HOWTO/ y el man de interfaces. Si no disponemos
de tarjeta de red y quisiéramos hacer pruebas, siempre podemos recu-
                                                                                              ANOTACIONES



rrir al módulo dummy; en este caso, el dispositivo en vez de llamarse
eth0 se llamaría dummy0.


Si se quiere configurar más de una tarjeta de red en el mismo orde-
nador (práctica muy habitual en gateways, entre otros), es necesario
pasar los parámetros correspondientes al kernel durante el proceso
de arranque (utilizando append en Lilo, por ejemplo) para evitar
conflictos entre dispositivos.

                                                                        195
© FUOC • 71Z799002MO
  ©                               Software libre



                                      Arranque y parada de servicios de red: ifup, ifgdown

                                      La reinicialización de todos los servicios de red (los de /etc/net-
                                      work/interfaces) se puede hacer mediante el script /etc/
                                      init.d/networking con el parámetro restart.


                                      ifup se utiliza para arrancar los servicios de red de una interfaz de-
                                      terminada, e ifdown para pararlos. Así pues, para la configuración
                                      anterior, si quisiéramos detener y volver a arrancar los servicios de
                                      eth0, lo que haríamos es lo siguiente (se utiliza el comando ifcon-
                                      fig para comprobar los resultados):


 brau:˜# ifconfig
 eth0 Link encap:Ethernet HWaddr 00:01:02:B4:3A:61
              inet addr:158.109.69.132
              Bcast:158.109.255.255 Mask:255.255.0.0
              UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
              RX packets:36409683 errors:0 dropped:0 overruns:221 frame:0
              TX packets:35938 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:100
              RX bytes:1489273710 (1.3 GiB) TX bytes:20116974 (19.1 MiB)
              Interrupt:5 Base address:0x9400


 lo           Link encap:Local Loopback
              inet addr:127.0.0.1 Mask:255.0.0.0
              UP LOOPBACK RUNNING MTU:16436 Metric:1
              RX packets:823 errors:0 dropped:0 overruns:0 frame:0
              TX packets:823 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:3169619 (3.0 MiB) TX bytes:3169619 (3.0 MiB)


 brau:˜# ifdown eth0
ANOTACIONES




 brau:˜# ifconfig
 lo           Link encap:Local Loopback
              inet addr:127.0.0.1 Mask:255.0.0.0
              UP LOOPBACK RUNNING MTU:16436 Metric:1
              RX packets:823 errors:0 dropped:0 overruns:0 frame:0
              TX packets:823 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:3169619 (3.0 MiB) TX bytes:3169619 (3.0 MiB)

                                196
Sistema operativo GNU/Linux básico                 © FUOC • 71Z799002MO
                                                                             ©




brau:˜# ifup eth0
brau:˜# ifconfig
eth0 Link encap:Ethernet HWaddr 00:01:02:B4:3A:61
      inet addr:158.109.69.132 Bcast:158.109.255.255 Mask:255.255.0.0
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
      RX packets:36420981 errors:0 dropped:0 overruns:221 frame:0
      TX packets:35965 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:100
      RX bytes:1490867554 (1.3 GiB) TX bytes:20118868 (19.1 MiB)
      Interrupt:5 Base address:0x9400


lo    Link encap:Local Loopback
      inet addr:127.0.0.1 Mask:255.0.0.0
      UP LOOPBACK RUNNING MTU:16436 Metric:1
      RX packets:823 errors:0 dropped:0 overruns:0 frame:0
      TX packets:823 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:3169619 (3.0 MiB) TX bytes:3169619 (3.0 MiB)



9.8.5. Configuración de impresoras

Tener configurada la impresora puede ser de gran utilidad, ya que
esto nos permitirá, entre otras cosas, imprimir los ficheros de man,
los de configuración, etc. para poderlos estudiar más detenidamente
sobre formato papel.


Por lo que se refiere al tipo de impresora preferible, en un entorno
doméstico sería una que usara el puerto paralelo (/dev/lpX, nor-
malmente /dev/lp0) con el objetivo de garantizar que se trata de
una impresora no dependiente de su software, ya que la mayoría
de las nuevas que están apareciendo en el mercado, especialmente
                                                                                             ANOTACIONES


las de puerto USB, son impresoras generalmente diseñadas para
un sistema operativo determinado. Estas impresoras son popular-
mente conocidas como winprinters (y su génesis es parecida a la de
los denominados winmodems). En un entorno profesional, lo ópti-
mo sería contar con una impresora que incorporara su propia in-
terfaz de red y que, por lo tanto, fuera un nodo más de ésta. Para
más información acerca de impresoras y su integración en los sis-
temas operativos GNU/Linux, se recomienda visitar la página
http://www.linuxprinting.org, donde encontraremos un

                                                                       197
© FUOC • 71Z799002MO
  ©                        Software libre



                               listado exhaustivo de las impresoras existentes en el mercado, y su
                               grado de soporte.


                               La topología general del sistema de impresión bajo GNU/Linux es la
                               de cliente-servidor. El servidor, lpd (en el sistema BSD), es tipo da-
                               emon, y en consecuencia lo manipularemos como tal. El archivo de
                               configuración del servidor es /etc/printcap. En él podemos con-
                               figurar tantas impresoras como deseemos. Ante la presencia de más
                               de una impresora configurada, los clientes usan, normalmente, el
                               parámetro “-p” seguido del nombre de la impresora, para referirse
                               a ésta.


                               Como hemos visto, configurar correctamente una impresora puede
                               ser un tanto difícil. Por esta razón, han aparecido diversos proyectos
                               para desarrollar interfaces que harán más amena su configuración,
                               algunos de los cuales aportan su propio servidor de impresión y sus
                               propias herramientas cliente.


                               Impresión de ficheros de texto

                               Los formateadores son programas que se utilizan, principalmente,
                               para transcribir ficheros en formato texto a formato PostScript (el len-
                               guaje PostScrip históricamente ha tenido más implementación en el
                               campo de la impresión). Estos programas nos pueden ser de utilidad,
                               ya que nos permiten pasar a formato papel la ayuda de los coman-
                               dos, ficheros de configuración, etc. para poderlos estudiar de una
                               forma más cómoda. Entre éstos encontramos mpager (dentro del
                               paquete con el mismo nombre), o enscrip (también empaquetado
                               con este mismo nombre, y más potente que el anterior). A continua-
                               ción, se detallan un par de líneas para ejemplificar su uso:


                               man man | mpage -2 -o |lpr
ANOTACIONES




                               Mediante esta línea redireccionamos la salida de man de man a
                               mpage, que le da formato a dos columnas por hoja, sin márgenes,
                               y redireccionamos su salida al cliente de impresión lpr:


                               endscript /etc/fstab -B -fTimes-Roman7 -r


                               Con esta línea haremos que se imprima el contenido del fichero /
                               etc/fstab sin cabecera, utilizando el tipo de carácter Times-Ro-
                               man de tamaño 7 y de forma apaisada.

                         198
Sistema operativo GNU/Linux básico                  © FUOC • 71Z799002MO
                                                                              ©




9.8.6. Configuración de tarjetas de sonido

Debido a la gran cantidad de tarjetas de sonido existentes en el mer-
cado, se hace casi imposible dar una descripción de cómo configu-
rarlas todas. Se recomienda la lectura de http://www.tldp.org/
HOWTO/Sound-HOWTO/ y la visita a las páginas de los dos pro-
yectos más destacados en cuanto a sonido bajo GNU/Linux se refie-
re: http://www.opensound.com/ y http://www.alsa-project.org/.


A continuación se expondrá el modo de proceder para configurar
una tarjeta de sonido bastante común: SoundBlasterPCI (chipset
ES1371). Para este tipo de tarjeta, el comando lspci nos devolverá
una línea como la siguiente:


00:0d.0 Multimedia audio controller: Ensoniq 5880
AudioPCI (rev 02)


En primer lugar, cargaremos el módulo correspondiente a esta tar-
jeta de sonido mediante el comando modconf, kernel/drivers/
sound, es1371.


Seguidamente, crearemos el grupo audio en /etc/group e inclui-
remos en él a todos los usuarios que deseamos que tengan acceso al
dispositivo de sonido (si deseamos que todos los usuarios tengan ac-
ceso a él, podemos obviar este paso, y dar todos los permisos a los
ficheros /dev/dsp y /dev/mixer); a continuación asociaremos los
ficheros /dev/dsp y /dev/mixer al nuevo grupo creado.


Con esto ya tenemos configurada la tarjeta de sonido. Ahora podemos
comprobarlo direccionando un fichero de audio directamente a /dev/
dsp, como sugiere http://www.tldp.org/HOWTO/Sound-HOWTO/ o
esperar a tener el entorno gráfico configurado para poder instalar
                                                                                              ANOTACIONES


aplicaciones de audio que corren sobre él.




 9.9. Conclusión


En este taller hemos aprendido a trabajar con el sistema de paquetes
de Debian, hecho fundamental, ya que esto nos ha permitido apren-
der a instalar, desinstalar y a gestionar aplicaciones. También hemos

                                                                        199
© FUOC • 71Z799002MO
  ©                        Software libre



                               aprendido a configurar distintos dispositivos de hardware, y con ello
                               una cosa básica: que con GNU/Linux esto no es tan sencillo como
                               en otros sistemas operativos, ya que requiere, por lo general, tener
                               un conocimiento más profundo tanto del propio dispositivo como del
                               sistema en sí. Pero en compensación podemos asegurar que, una
                               vez configurado un dispositivo, éste funcionará perfectamente y no
                               deberemos preocuparnos más de él. Y todo ello teniendo en mente
                               que aún no hemos configurado el entorno gráfico (probablemente
                               una de las misiones más complicadas en un entorno GNU/Linux).
                               No obstante, y para animar a los que a estas alturas puedan pensar
                               que adentrarse en el mundo GNU/Linux ha sido una mala idea, una
                               misión fallida y una pérdida de tiempo, nos gustaría citar un párrafo
                               del libro Debian GNU/Linux 2.1 de Mario Camou, John Goerzen y
                               Aaron Van CouWenberghe, parte I, capítulo 1, Why Linux Is Better:


                               “Windows NT, however, learned to speak the language of the Internet
                               just a few years ago. It is not refined by any stretch imagination, but
                               plagued with bugs and inconsistences. Bussinesses need a solution
                               that they can put online and expect to remain available 100% of the
                               time, but Windows NT cannot meet this need. On the contrary, a Win-
                               dows NT administrator’s most common job is crash recovery; he was-
                               tes too much time doing busywork, such as booting servers that have
                               gone down[...]”


                                                                         Aaron Van CouWenberghe
ANOTACIONES




                         200
Sistema operativo GNU/Linux básico                            © FUOC • 71Z799002MO
                                                                                         ©




 10. Arquitectura X-Window




 10.1. ¿Qué es X-Window?

X-window es una arquitectura de ventanas diseñada a mediados de
                                                                                 Contenido
los ochenta para poder disponer de un entorno gráfico en estaciones              complementario
de trabajo. A diferencia de otros entornos de ventanas, la arquitec-              Una arquitectura de venta-
tura X-Window se diseñó para ser independiente de plataforma, de                  nas (o sistema de ventanas)
                                                                                  es un entorno gráfico que
manera que se pudiera instalar en cualquier ordenador que corriera
                                                                                  nos proporciona la posibili-
un sistema tipo UNIX. Aunque la arquitectura de ventanas X-Window                 dad de tener diferentes apli-
ha tenido una dilatada historia en la que se han utilizado diferentes             caciones localizadas en
                                                                                  diferentes regiones de la
tipos de licencias, varias implementaciones y muchos equipos de de-               pantalla, generalmente de-
sarrollo diferentes, actualmente se utiliza, mayoritariamente, la im-             limitadas por algún tipo de
                                                                                  ventana. Estos entornos
plementación que ha desarrollado el proyecto XFree86 Inc, llamada
                                                                                  suelen proporcionar meca-
XFree86. Esta implementación se distribuye con licencia open sour-                nismos para el desplaza-
                                                                                  miento y manipulación de
ce, que aunque no es exactamente igual que la GPL o sus variantes,
                                                                                  estas ventanas de forma
tiene características parecidas que permiten acceder a su código                  que el trabajo pueda ser
fuente, su redistribución, etc. Por este motivo, en la mayoría de dis-            más interactivo y ameno.

tribuciones de GNU/Linux (y cada vez más en otros sistemas opera-
tivos -como Mac OS X-) se incorpora esta implementación de X-
Window.


X-Window está diseñado con una arquitectura cliente/servidor. Este
tipo de arquitectura significa que el software está estructurado en dos
partes totalmente independientes (cliente y servidor) que se comuni-
can a partir de un enlace de comunicación. Aunque esto implica que
el diseño y la codificación es un poco más compleja, esta arquitectu-
                                                                                                             ANOTACIONES


ra proporciona una flexibilidad total en el sentido que cliente y servi-
dor pueden estar ubicados en diferentes sitios y utilizando diferentes
plataformas y/o sistemas operativos. Además, podemos aprovechar
muchísimo más un mismo cliente, ya que éste podrá dar servicio a
más de un servidor a la vez. De esta forma, los ordenadores servido-
res pueden trabajar con un entorno gráfico y los recursos del cliente.
Naturalmente, esta arquitectura también nos permite trabajar con X-
Window de forma local en la máquina donde está situado el cliente,
aunque no es indispensable.

                                                                           201
© FUOC • 71Z799002MO
  ©                        Software libre



                               Los componentes de los que está compuesto X-Window son: cliente,
                               servidor y enlace de comunicación. Cliente y servidor están diseña-
                               dos para ser independientes de plataforma y, en el caso del enlace
                               de comunicación, para ser independiente del protocolo de red.


                               De este modo, podemos utilizar X-Window en cualquier tipo de es-
                               cenario; por ejemplo, podríamos tener el servidor instalado en un
                               ordenador con WindowsTM, conectándose a un cliente con GNU/
                               Linux y utilizar como canal de comunicación Internet (protocolo
                               IPv4). Aunque la configuración de cada uno de estos componentes
                               (sobre todo el cliente) sí que depende, en cierto modo, de la plata-
                               forma donde está instalado, el enlace de comunicación nos permite
                               aislar los componentes, dándoles un lenguaje propio para su en-
                               tendimiento.


                               Este enlace utiliza un protocolo propio denominado XDMCP (X Dis-
                               play Manager Control Protocol), que está en un nivel superior al de
                               la red de comunicación utilizada (por eso es independiente de red).




                               En esta arquitectura, el servidor está ideado para recoger los
                               eventos que se producen por los dispositivos de entrada como el
                               teclado, el ratón, etc. y enviarlos al cliente. El cliente procesa estos
                               eventos y responde al cliente, que muestra los resultados en los
ANOTACIONES




                               dispositivos de salida (generalmente el monitor). Aunque la pri-
                               mera impresión que puede sugerirnos este diseño es que el tiem-
                               po de respuesta debe ser muy lento, el protocolo XDMCP está
                               especialmente diseñado para proporcionar un enlace rápido en-
                               tre cliente y servidor, de forma que se pueda trabajar realmente
                               de forma interactiva. En los únicos escenarios en que podemos
                               notar este inconveniente es en conexiones remotas utilizando re-
                               des de comunicaciones lentas.

                         202
Sistema operativo GNU/Linux básico                             © FUOC • 71Z799002MO
                                                                                           ©




En resumen, pues, las principales características y funciones de cada
uno de los componentes de X-Window son las siguientes:

                    Gestión de diferentes servidores simultáneamente
Cliente             Dependiente de plataforma
                    Procesamiento de las aplicaciones
                    Control del display del usuario
Servidor            Independiente de plataforma
                    Procesamiento de los dispositivos de entrada
                    Diseñado para poder trabajar interactivamente
Enlace              Pensado para minimizar el tráfico en la red
                    Transparente (independiente de red)



A medida que las tarjetas gráficas han ido evolucionando, cada vez más
aplicaciones y juegos necesitan de un procesamiento en 2D o 3D más
rápido. Si bien la arquitectura de ventanas X-Window aporta muchas
ventajas, cuando queremos utilizar este tipo de aplicaciones el diseño
cliente/servidor no es el más adecuado, ya que no aprovechamos las
funciones de procesamiento 2D y 3D extremadamente rápido de las tar-
jetas gráficas instaladas en el servidor. Para solucionar este problema,
a partir de 1998 apareció una tecnología llamada DRI (Direct Rendering
Infrastructure), que permite aprovechar los chips de procesamiento de
las tarjetas para ahorrar trabajo al cliente X-Window. De esta forma,
continuamos teniendo todas las ventajas de X-Window aprovechando
los elementos específicos de las tarjetas gráficas.


A diferencia de otros sistemas operativos donde el entorno gráfico está
                                                                                   Contenido
íntimamente integrado con el resto de funciones, la arquitectura X-Win-            complementario
dow es totalmente independiente del operativo y no nos limita a ningún
                                                                                    El look and feel es el diseño
GUI (Grafic User Interface) determinado. De hecho, la arquitectura sólo             utilizado para los botones,
nos proporciona herramientas gráficas de bajo nivel para manipular la               barras de desplazamiento,
                                                                                    menús, etc. de un entorno
salida del monitor. Estas herramientas están incluidas en la librería Xlib          gráfico o una aplicación.
y principalmente son funciones para crear y manipular ventanas, ope-
                                                                                                               ANOTACIONES


raciones con fuentes de caracteres, detección de eventos de usuario y
operaciones gráficas. Con estas funciones podemos dotar a nuestras
aplicaciones del look and feel que queramos, crear nuevos GUI, . . . De
hecho, esto supuso un trabajo adicional para los primeros desarrollado-
res de aplicaciones en Xwindow, ya que además de programar la apli-
cación tenían que desarrollar sus propias librerías para la creación de
menús, iconos, etc. A medida que X-Window fue creciendo, fueron apa-
reciendo lo que llamamos toolkits, que son librerías generalmente im-
plementadas con Xlib y que proporcionan un GUI particular. De esta

                                                                             203
© FUOC • 71Z799002MO
  ©                        Software libre



                               manera, al diseñar una aplicación podemos utilizar alguno de estos
                               toolkits que ya proporcionan las herramientas estándar para crear me-
                               nús, botones, gestionar los cut and paste, . . . y centrarnos en programar
                               la aplicación en sí. El no marcar ningún look and feel ha sido otra de las
                               claves del éxito de la arquitectura X-Window, ya que cada fabricante o
                               desarrollador de software ha podido diseñarse uno propio, marcando
                               la diferencia con los demás.


                               Aunque existen muchos toolkits diferentes, en la siguiente figura po-
                               demos ver algunos de los más populares que se han utilizado a lo
                               largo de la historia de X-Window:




                               El window manager es un servidor especial de X-Window que se en-
                               carga de gestionar todas las ventanas, los escritorios, las pantallas
                               virtuales, etc. Naturalmente, todas las aplicaciones pueden funcionar
                               con cualquier window manager, ya que éste sólo se encarga de ges-
                               tionar la ventana donde está ubicado el programa. Aunque la pro-
ANOTACIONES




                               gramación de un window manager es muy diferente que la de una
                               aplicación, también se suelen utilizar toolkits particulares que pro-
                               porcionan un look and feel determinado. Actualmente existen dece-
                               nas de window managers diferentes (wmaker, sawmill, olvwm, . . . ),
                               siendo el mismo usuario quien puede elegir el que más le guste.


                               Otro tipo de software muy relacionado con X-Window es el que se en-
                               carga de proporcionar un entorno integrado para las aplicaciones, el
                               escritorio, las herramientas de administración del sistema, etc. Los más

                         204
Sistema operativo GNU/Linux básico                    © FUOC • 71Z799002MO
                                                                                 ©




populares que existen actualmente son el KDE (the K Desktop Environ-
ment) y el GNOME (GNU Object Model Environment ). Los dos propor-
cionan un toolkit particular, un entorno de escritorio con muchísimas
funcionalidades y configuraciones diferentes y una lista de aplicaciones
integradas que cada vez va creciendo más. La mayoría de distribuciones
de GNU/Linux y UNIX proporcionan alguno de estos dos entornos de
escritorio por ser muy amigables y proporcionar herramientas y software
propio de gran calidad que ayudan en gran medida al usuario para
configurar el sistema y el mismo escritorio. Los dos pueden funcionar
con cualquier window manager que cumpla con una serie de caracterís-
ticas básicas. En la siguiente figura podemos ver el aspecto de los dos:




                                                                                                 ANOTACIONES




                                                                           205
© FUOC • 71Z799002MO
  ©                                          Software libre



                                                 Finalmente, otro tipo de aplicación que se utiliza en X-Window es el
                                                 session manager, que son una serie de programas que permiten
                                                 guardar la configuración de una determinada sesión de usuario para
                                                 que al arrancar de nuevo X-Window se carguen las aplicaciones que
                                                 tenga configuradas. Generalmente, en los entornos integrados ya se
                                                 incorporan estas herramientas de forma automática; si no, podemos
                                                 recurrir al que la misma infraestructura de X-Window proporciona: el
                                                 xsm.


                                                                                                        Actividades

                                                          14. Leer la historia de X-Window en el artículo:
                                                               http://www.linux-mag.com/2001-12/xfree86 01.html


                                                          15. Ver algunos de los window manager y entornos de
                                                               escritorio existentes en: http://www.xwinman.org




                                                  10.2. Configuración


                                                 Actualmente, las versiones de la implementación XFree86 que
                                                 más se utilizan son las 4.X, cuya configuración veremos en esta
                                                 sección. Si bien la mayoría de tarjetas gráficas del mercado ya es-
                                                 tán soportadas, es posible que desde el momento de aparición en
                                                 el mercado de una nueva tarjeta hasta que se da soporte en X-
                                                 Window pasen unas semanas o unos pocos meses. De todos mo-
                                                 dos, cada vez más los mismos fabricantes están dando soporte a
                                                 GNU/Linux y, en algunos casos ya están proporcionando sus pro-
                                                 pios drivers para este sistema operativo. Aun así, antes de com-
                                                 prar una nueva tarjeta gráfica, siempre es recomendable
                                                 comprobar si está disponible algún tipo de driver para la distribu-
                                                 ción que estemos utilizando.
ANOTACIONES




                                                 Para instalar XFree86 en nuestro ordenador lo primero que deberemos
        Contenido
        complementario                           hacer es bajarnos los paquetes que contienen las herramientas básicas
                                                 y el software para el cliente y el servidor. Generalmente, estos paquetes
              Algunos programas típicos
              de configuración de X-Win-         se suelen denominar xfree86-common, xfree86server, etc. y
              dow son el xf86config o            llevan implícitos varias dependencias de fuentes y algunas utilidades
              el XF86Setup.
                                                 básicas para el manejo de X-Window. Una vez instalados estos pa-
                                                 quetes, debemos configurar adecuadamente los dispositivos de los

                                           206
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                               ©




que disponemos para poder arrancar correctamente el cliente y
servidor X-Window. Según la distribución que utilicemos, se hace
uso de uno u otro programa o, en algunos casos, con la misma
instalación de los paquetes ya se lanza una pequeña aplicación
de configuración. No obstante, esta configuración siempre debe
contener unos determinados pasos, que detallamos a continua-
ción clasificados según el dispositivo que hay que configurar:


1) Tarjeta gráfica


• Driver: las diferentes familias de tarjetas gráficas llevan unos mi-
   croprocesadores específicos y utilizan unas funciones determina-
   das para realizar sus operaciones. Por esta razón, debemos
   indicar el driver adecuado para nuestra tarjeta. Si no lo sabemos,
   podemos instalar algún tipo de aplicación para la detección de
   hardware automático; si utilizamos, por ejemplo, el discover,
   podemos saber qué driver necesita nuestra tarjeta con el coman-
   do “discover --xdriver video”.


• Identificador: el identificador de la tarjeta puede ser cualquier
   nombre con el que queremos referirnos a nuestra tarjeta. Este
   identificador es utilizado internamente para poder referenciar
   adecuadamente las tarjetas que tenemos instaladas en el sis-
   tema.


• Cantidad de memoria: según la cantidad de memoria de la tar-
   jeta, podremos inicializar los gráficos con más o menos resolu-
   ción y con profundidades de color más o menos elevadas.
   Aunque no es imprescindible indicar esta cantidad (el sistema lo
   detecta automáticamente) sí que es recomendable especificarla
   en la configuración.
                                                                                               ANOTACIONES




• Utilización del framebuffer del núcleo: el frambuffer del núcleo
   es un driver especial de Linux que permite realizar algunas ope-
   raciones sobre X-Window. Aunque su utilización no es obligato-
   ria, generalmente se utiliza para que el servidor de X-Window se
   pueda comunicar directamente con el núcleo del sistema. De to-
   dos modos, si nos diera algún problema, siempre podemos des-
   activarla.

                                                                         207
© FUOC • 71Z799002MO
  ©                        Software libre



                               2) Teclado


                               • Regla XKB: para que el servidor de X-Window pueda manejar co-
                                  rrectamente el teclado, necesita saber qué reglas aplicar sobre él.
                                  Para la mayoría de teclados estándar de los PC, se utiliza la regla
                                  “xfree86” y para las estaciones de trabajo Sun, se suele utilizar
                                  la regla “sun”.


                               • Modelo de teclado: el modelo de teclado generalmente se suele
                                  identificar a partir del número de teclas que tiene. Los teclados de
                                  los PC estándar que tienen las teclas de menú y logo suelen tener
                                  104 teclas (los identificamos con el nombre “pc104”). Los tecla-
                                  dos que no llevan estas teclas se identifican como de 101 teclas
                                  (“pc101”).


                               • Keyboard layout: en esta sección debemos identificar el país del
                                  teclado con su referencia ISO 3166. En el caso de España es
                                  “es”, para Francia “fr”, etc.


                               • Keyboard options: opción para personalizar algunas de las teclas
                                  del teclado.


                               3) Ratón


                               • Puerto: el puerto del ratón es la conexión que utiliza para comu-
                                  nicarse con el ordenador. Cuando compramos el ratón, siempre
                                  se indica si es de tipo PS/2, serie, etc. En el caso de que sea de
                                  tipo PS/2, el puerto será /dev/psaux, para los ratones serie el
                                  puerto será /dev/ttyS0 (COM1), /dev/ttyS1 (COM2) y
                                  consecutivamente.
ANOTACIONES




                               • Tipo: para especificar el tipo del ratón, se suele proporcionar una
                                  lista de la que debemos escoger el que más se ajuste a nuestro
                                  modelo y fabricante. Generalmente, sabiendo el modelo del ra-
                                  tón ya podremos escoger adecuadamente la opción que le co-
                                  rresponde.


                               • Emulación de 3 botones: en el caso de que nuestro ratón sólo ten-
                                  ga 2 botones, se proporciona la posibilidad de emular el tercero

                         208
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                                ©




   (el del medio) apretando los dos simultáneamente. Si nuestro ra-
   tón no tiene el botón del centro, es recomendable activar esta op-
   ción porque algunos programas de X-Window necesitan que el
   ratón tenga los 3 botones.


4) Monitor


• Identificador: igual que en el caso de la tarjeta gráfica, la identi-
   ficación del monitor sirve para que el sistema lo pueda referenciar
   internamente. Le podemos poner el nombre que queramos.


• Monitor tipo LCD: en la mayoría de procesos de configuración se
   nos preguntará si nuestro monitor es de tipo LCD (pantalla TFT).
   Es importante responder correctamente a esta pregunta porque el
   manejo de un tipo u otro de monitor varía considerablemente.


• Características: en la configuración de características se pregun-
   tará las resoluciones máximas que puede obtener nuestro moni-
   tor, la frecuencia de refresco, etc. Aunque según el programa
   utilizado para configurar X-Window se plantearán más o menos
   preguntas de este estilo, es importante tener a mano la informa-
   ción del monitor y contestar adecuadamente para poder aprove-
   char al máximo las características del mismo.


• Resoluciones disponibles: en este paso debemos señalar qué re-
   soluciones queremos poder mostrar en nuestro monitor cuando
   iniciemos X-Window. También es habitual que se nos pregunte la
   profundidad de color que queremos utilizar por defecto; lo más
   recomendable es utilizar una alta (16 o 24 bits) para poder ver
   nítidamente todos los colores.
                                                                                                ANOTACIONES


Una vez contestadas estas preguntas, que pueden ser más o menos
según el programa que utilicemos, toda la configuración se guarda
en el fichero /etc/X11/XF86Config-4.


Este fichero está organizado en las diferentes secciones que hemos
ido viendo y, recurriendo a su manual, veremos que tenemos muchí-
simas más posibilidades que nos dan una flexibilidad total para con-
figurar de la forma como queramos nuestras X-Window. Para probar
si realmente funcionan, podemos ejecutar “ con lo cual debería
                                          X”,

                                                                          209
© FUOC • 71Z799002MO
  ©                                             Software libre



                                                    aparecernos una pantalla con cuadros blancos y negros muy peque-
        Contenido                                   ños y el puntero del ratón como una X (para salir de la misma pode-
        complementario                              mos utilizar CTRL+ALT+BACKSPACE).
              Cuando utilizamos startx
              o xinit se ejecutan las ins-
              trucciones del fichero /              Si tenemos instalado algún window manager, lo más habitual para
              etc/X11/Xsession. Si en               arrancar X-Window es utilizar alguno de los shell scripts xinit o
              el directorio home del usua-
                                                    startx. Éstos se encargan de lanzar el window manager configura-
              rio que iniciara X-Window
              hubiera un fichero .xses-             do y realizan algunas otras acciones necesarias para inicializar co-
              sion, se ejecutarían las ins-         rrectamente X-Window. Una vez tenemos la pantalla en modo
              trucciones de éste en lugar
              del otro.                             gráfico, podemos cambiar la resolución de la misma con las teclas
                                                    CTRL+ALT++ y CTRL+ALT+-, o volver a las consolas de texto con
                                                    CTRL+ALT+F1, CTRL+ALT+F2, etc. (con CTRL+ALT+F7 volvería-
                                                    mos a la gráfica).


                                                    Otra característica importante en la configuración de X-Window es la
                                                    de la configuración de los Xwrappers. Los Xwrappers nos permiten
                                                    controlar qué usuarios pueden iniciar una sesión con X-Window. En
                                                    el fichero /etc/X11/Xwrapper.config se encuentra la directiva
                                                    “allowed users”, con la cual especificamos quién está autorizado
                                                    para arrancar X-Window con los valores:


                                                    • “console”: cualquier usuario que esté en un consola local puede
                                                       iniciar X-Window.


                                                    • “rootonly”: sólo el root puede iniciar X-Window.


                                                    • “anybody”: cualquier usuario del sistema puede iniciar X-Win-
                                                       dow (aunque no esté conectado localmente).


                                                    Esto es muy útil, sobre todo, al administrar un servidor en el que ge-
                                                    neralmente no se permite que los usuarios trabajen con el entorno
ANOTACIONES




                                                    gráfico por el gasto de recursos que ello supone.




                                                     10.3. X display manager


                                                    En la sección anterior hemos visto cómo configurar X-Window de for-
                                                    ma local. Tal como hemos ido comentando a lo largo del capítulo,
                                                    la arquitectura de ventanas X-Window nos permite que cliente y ser-

                                              210
Sistema operativo GNU/Linux básico                       © FUOC • 71Z799002MO
                                                                                     ©




vidor estén instalados en diferentes ordenadores. Para configurar
nuestro ordenador de modo que realice las funciones de un cliente
X-Window, debemos instalar algún tipo de X display manager. Estos
programas abren un puerto de comunicaciones con el cual los clien-
tes se pueden comunicar con el cliente y trabajar con X-Window de
forma remota. Aunque existen muchos programas de este tipo, uno
de los primeros que apareció, y en el que se basan muchos otros, es
el xdm.


Los X display manager pueden actuar tanto de forma local como re-
mota. Entre otras funciones, lo que hacen es mostrar una pantalla
(en el entorno gráfico) para que el usuario se identifique con su login
y contraseña. Funcionan como cualquier otro daemon del sistema,
de forma que su inicio y parada se puede configurar como queramos
(utilizando los niveles de ejecución que el sistema proporciona). De-
bemos tener en cuenta que si lo configuramos para que funcione de
forma local, al arrancar el sistema nos encontraremos con la panta-
lla de identificación gráfica y no las consolas a las que estábamos
acostumbrados (aunque continúan estando disponibles). Con esta
configuración ya no podremos utilizar startx o xinit para inicia-
lizar X-Window, ya que por defecto estarán ejecutándose.


Cuando instalemos xdm, todos sus ficheros de configuración se de-
jarán en el directorio /etc/X11/xdm. Vamos a repasar qué contie-
ne cada uno de estos ficheros:


 xdm-config      Localización de los archivos de configuración de xdm.

 xdm.options     Opciones globales de configuración.

                 Definición de los equipos remotos a los que dejamos
 Xaccess
                 acceder.

 Xservers        Servidores locales de xdm.
                                                                                                     ANOTACIONES


                 Configuración de la pantalla de login: colores, fuentes,
 Xresources      tamaño, etc.

 Xsetup          Script que se ejecutará cuando se arranque xdm.

                 Script que se ejecutará cuando un usuario entre en
 Xstartup        XWindow. Se suelen poner acciones relacionadas con el
                 xdm.

                 Script que se ejecutará al entrar en una sesión de usuario.
                 Se suelen poner acciones especiales para los usuarios,
 Xsession
                 aunque también se suele llamar a la ejecución del fichero
                 /etc/X11/Xsession.

 Xreset          Script que se ejecutará al acabar una sesión de usuario.


                                                                               211
© FUOC • 71Z799002MO
  ©                                             Software libre



                                                    La configuración de los servidores locales la encontramos en el fiche-
                                                    ro Xservers. Si quisiéramos desactivar el servidor local, podríamos
                                                    comentar todas las líneas de este archivo. De este modo, aunque tu-
                                                    viéramos instalado un cliente de X-Window, por defecto no se inicia-
                                                    ría en la máquina local. Si por el contrario quisiéramos instalar más
                                                    de uno, podríamos editar el fichero y añadir directivas como las que
                                                    siguen:


                                                    :0 local /usr/X11R6/bin/X :0 vt7
                                                    :1 local /usr/X11R6/bin/X :1 vt8


                                                    Estas dos directivas indican que queremos 2 instancias de X-Window,
                                                    una en la consola 7 (“vt7”) y la otra en la 8 (“vt8”), accesibles con
                                                    CTRL+ALT+F7 y CTRL+ALT+F8 respectivamente. Fijémonos cómo
                                                    cada directiva incluye un “:0” o “ :1”, que hacen referencia a la ins-
                                                    tancia de X-Window que manejan. Por defecto, siempre se utiliza la
                                                    0, pero al querer más de un servidor local debemos referenciarlo de
                                                    esta forma. Al final de cada una de estas líneas podríamos añadir
                                                    parámetros especiales para cada servidor de X-Window (en “man X”
                                                    encontramos todos los posibles), como la profundidad de color que
                                                    queremos para cada uno, la resolución de la pantalla, etc. De esta
                                                    manera, podríamos trabajar con diferentes sesiones de X-Window
                                                    abiertas tal como hacíamos con las consolas.
        Contenido
        complementario
                                                    Generalmente, la configuración por defecto de xdm no permite co-
              Si en el fichero de Xaccess
              hay una línea con el carácter         nexiones remotas por razones de seguridad. Si quisiéramos activar
              “*”, indica que dejamos que           estas conexiones, podríamos editar el fichero Xaccess y, utili-
              cualquier servidor se conecte
              al X-Window del servidor.             zando la sintaxis que se nos indica, añadir los servidores a los que
              Utilizar X-Window de forma            permitimos dar este servicio. También deberíamos comentar la línea
              remota sin ningún tipo de en-
                                                    “DisplayManager. requestPort: 0 del fichero xdm-config,
                                                                                   ”
              criptación puede suponer un
              fallo de seguridad, con lo            que por defecto inutiliza todas las conexiones que se reciben. Una vez
              que es muy recomendable               realizados estos cambios, reiniciando el daemon de xdm, el cliente ya
ANOTACIONES




              informarse adecuadamente
              antes de utilizarlo.                  estaría preparado para servir X-Window a cualquier servidor que se
                                                    lo pidiera.

        Contenido
        complementario                              Para las máquinas donde sólo queremos instalar el servidor de X-
              Xnest es un servidor de               Window, deberíamos instalar X-Window tal como veíamos en el
              X-Window que nos permite              apartado anterior y utilizar el comando “X -query IP”, donde la IP
              abrir en una ventana otra
                                                    debería ser la del cliente. Del mismo modo que cuando teníamos
              instancia de X-Window.
                                                    más de un servidor X-Window en una máquina local, si en la máqui-

                                              212
Sistema operativo GNU/Linux básico                © FUOC • 71Z799002MO
                                                                           ©




na ya tuviéramos otra instancia de X-Window ejecutándose, debería-
mos utilizar “X -query IP :1” para la segunda instancia, “:2”,
para la tercera y consecutivamente.




                                                                                           ANOTACIONES




                                                                     213
Manual gnu linux_basico
Sistema operativo GNU/Linux básico                          © FUOC • 71Z799002MO
                                                                                       ©




 11. Taller de X-windows




 11.1. Introducción


En el segundo taller se sentaron las bases para la correcta manipu-
lación y gestión de paquetes, y aprendimos a configurar algunos dis-
positivos. No obstante, y debido a su complejidad, no se abordó el
tema de la configuración de la tarjeta gráfica, o mejor dicho, de la
instalación del entorno gráfico X. Debido a la complejidad de su es-
tructura y configuración, se ha optado por dedicar un taller mono-
gráfico sobre el X Window System. En este taller aprenderemos a
instalar, configurar y personalizar este sistema. Pero no se pretende
hacer un repaso exhaustivo de todo el sistema, pues esta tarea sería
probablemente inabordable por muy distintas razones. Se pretende
sentar las bases para que cada uno sea capaz de configurar su pro-
pio sistema en función de la tarjeta gráfica de la que disponga, de
sus gustos y de sus preferencias. Al finalizar el taller, deberíamos ser
capaces de instalar un entorno X, y de saber sacar partido a su in-
creíble potencia.




                                                                                             Actividades


           Debido a la complejidad del sistema X, se recomienda la lectura de los siguientes documen-
           tos para asentar conceptos antes de empezar a trabajar sobre el sistema. Además, éstos nos
           aportarán conocimientos suplementarios, que pueden ser puestos en práctica a lo largo del
           taller.
                                                                                                       ANOTACIONES




           16. http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html
                single/XWindow-Overview-HOWTO.html
                Se trata de un documento sencillo, que sirve para asimilar los conceptos básicos que con-
                ciernen al sistema.




                                                                           215
© FUOC • 71Z799002MO
  ©                               Software libre




              17. http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html
                 single/XWindow-User-Howto.html
                 Es un documento con contenidos más avanzados que el anterior, pero también re-
                 comendable.




                                      11.2. Instalación del sistema básico


                                     Como ya se ha dicho, el X Window System es un sistema muy com-
                                     plejo que integra muchísimas librerías y aplicaciones, algunas de las
                                     cuales son fundamentales para su funcionamiento, aunque la mayo-
                                     ría sólo deben ser instaladas si, por nuestras necesidades, precisa-
                                     mos de ellas. Ésta es una de las razones por las que, en Debian, el
                                     sistema viene distribuido en muchos paquetes distintos, de los que
                                     sólo instalaremos aquellos que sean necesarios.



                                     11.2.1. Distintas estrategias para la instalación
                                             de los paquetes


                                     Debido a que la interdependencia entre los distintos paquetes es
                                     muy fuerte, podemos aprovechar este hecho para que sea el mis-
                                     mo sistema de gestión de paquetes el que instale todos aquellos
                                     que considere necesarios para el correcto funcionamiento de una
                                     aplicación de alto nivel, entre los cuales se encontrarán, obvia-
                                     mente, todos los paquetes básicos del sistema. Así pues, podría-
                                     mos utilizar dselect o apt-get para instalar una de estas
                                     aplicaciones. Pero ésta no es una buena estrategia, ya que implica
ANOTACIONES




                                     la pérdida del control de los paquetes que estamos instalando y
                                     además puede implicar la omisión de algunos paquetes esencia-
                                     les, de los que, por el motivo que sea, no se haya hecho referencia
                                     durante el cálculo de dependencias.


                                     Por este motivo, se recomienda la construcción del sistema paso a
                                     paso, para ir comprendiendo qué paquetes se están instalando en
                                     cada momento, y el porqué.

                               216
Sistema operativo GNU/Linux básico               © FUOC • 71Z799002MO
                                                                               ©




11.2.2. Instalación de paquetes básicos


Los paquetes básicos del sistema se pueden agrupar, de forma ge-
neral, en:


core. Paquetes esenciales e imprescindibles para el correcto funcio-
namiento del sistema (x-window-system-core).


system. Paquetes esenciales cuya presencia es altamente recomen-
dable (x-window-system).


fonts. Paquetes de fuentes, algunos de ellos imprescindibles para
disponer, al menos, de un tipo de fuentes en el entorno.


utils. Paquetes de programas que correrán sobre el sistema gráfi-
co. Son, en el fondo, los que dan la razón de existencia del siste-
ma.


libs. Paquetes de librerías del entorno gráfico, las cuales proporcio-
nan funciones a otros programas.


Podemos instalar los paquetes básicos del sistema mediante la orden
siguiente:


brau:˜# apt-get install x-window-system


Con ello se calcularán las dependencias entre paquetes y se nos in-
formará de que debe instalarse alrededor de una treintena de pa-
quetes. Para proceder, se nos pide la confirmación, a la cual
contestaremos afirmativamente.
                                                                                               ANOTACIONES




                                                               Nota

             Después de que se hayan desempaquetado los pa-
             quetes, se ejecutarán automáticamente los scripts de
             configuración de varios de ellos. Siempre es posible
             interrumpir la ejecución de estos scripts con la combi-
             nación de teclas Ctrl-C, y reiniciar el proceso volvien-
             do a ejecutar el comando anterior.

                                                                         217
© FUOC • 71Z799002MO
  ©                        Software libre



                               Durante la ejecución del script de configuración del paquete X-ser-
                               ver-common, se nos preguntará si queremos que sea debconf
                               quien configure los wrappers. La opción más sencilla y práctica es
                               permitir que la configuración se haga de forma automática, y seguir
                               adelante.


                               El script de configuración de Xserver-xfree86 nos situará en la
                               interfaz de configuración del servidor. Lo primero que se nos pregun-
                               ta es si deseamos que se ejecute un test de autodetección del driver
                               que debe cargarse para nuestra tarjeta. Es buena opción contestar
                               afirmativamente a esta pregunta, ya que si el test falla o detecta más
                               de una posibilidad, nos dará acceso a la pantalla de selección de dri-
                               vers. Si debemos seleccionar el driver manualmente, en primer lugar
                               hay que leer la documentación de la tarjeta gráfica; si no dispone-
                               mos de ella, también podemos utilizar el comando lspci para in-
                               formarnos de cómo ésta ha sido detectada por el kernel
                               (generalmente la última línea de retorno). Una vez dispongamos de
                               esta información, nos dirigiremos a http://xfree86.org/cu-
                               rrent/Status.html para informarnos de cuál es el driver que
                               debemos cargar. Con esto nos situamos en la pantalla siguiente. En
                               ésta se nos pedirá si deseamos que sea debconf quien nos guíe en
                               la configuración del archivo /etc/X11/XF86Config-4, que es el
                               archivo fundamental de configuración del servidor. No es mala idea
                               contestar afirmativamente, y, al final, comprobar si la configuración
                               resultante es válida o no. En primer lugar se nos pregunta si quere-
                               mos usar el kernel framebuffer device interface, y se nos sugiere que
                               lo hagamos; en principio, contestaremos afirmativamente, pero te-
                               niendo muy presente que esto es una fuente potencial de problemas,
                               de manera que, una vez hayamos finalizado la configuración, si al
                               intentar arrancar el servidor algo va mal, deberemos estar atentos al
                               contenido de la línea, y probar si con el valor “false” funciona:
ANOTACIONES




                               #/etc/X11/XF86Config-4
                               Section “Device”
                                     Identifier         “Generic Video Card”
                                     Option             “ UseFBDev”                     “true”


                               Lo siguiente que configura el mismo script es el teclado. Por lo gene-
                               ral, y en especial sobre la plataforma PC, la sugerencia de utilizar el
                               tipo xfree86 debe funcionar correctamente, aunque en las panta-

                         218
Sistema operativo GNU/Linux básico                  © FUOC • 71Z799002MO
                                                                                ©




llas posteriores terminaremos de ajustar su funcionamiento. En la si-
guiente pantalla contestaremos qué tipo de teclado es el que
tenemos; por lo general pc105 debe funcionar correctamente.


Ha llegado el momento de seleccionar el idioma del teclado. En este
campo entraremos es; en cuanto al campo de variación idiomática,
puede entrarse el mismo valor anterior, pero es recomendable de-
jarlo en blanco, ya que si se entra el valor es, esta directiva también
se convierte en una fuente potencial de errores. Si más adelante, y en
el caso de que hayamos rellenado el campo de variación idiomática,
al parar el servidor se visualiza, entre otras líneas, las siguientes:


The XKEYBOARD keymap compiler (xkbcomp) reports:
> Error: No Symbols named “es” in the include file “es”
>            Exiting
>            Abandoning symbols file “default”
Errors from xkbcomp are not fatal to the X server


o si no podemos utilizar ciertos caracteres como puede ser “|”, de-
beremos comentar la directiva de variante idiomática en el archivo
principal de configuración:


#/etc/X11/XF86Config-4


Section “ InputDevice”
                    Identifier          “Generic Keyboard”


#                   Option              “XkbVariant” “es”


El campo siguiente, referente a la personalización del teclado, se
deja en blanco si no se tiene ningún propósito al respecto. Con esto
                                                                                                ANOTACIONES


habremos terminado con la configuración del teclado y pasaremos
a la configuración del ratón. Para ello, en primer lugar, se nos pide
en qué puerto está ubicado (actualmente, la mayoría de ellos en
/dev/psaux, la primera opción). A continuación se nos pregunta
de qué tipo de ratón disponemos (nuevamente, la primera opción,
PS/2, suele ser la más habitual). Terminada la configuración del ra-
tón, entramos en la configuración de la pantalla. En primer lugar se
nos pregunta si disponemos de una pantalla tipo LCD. Acto seguido
se nos pedirá en qué grado de dificultad queremos entrar los pará-

                                                                          219
© FUOC • 71Z799002MO
  ©                        Software libre



                               metros referentes a nuestro monitor. La forma más simple (Simple)
                               sólo nos pedirá el tamaño del monitor, mientras que en la más com-
                               pleja (Advanced) se nos pedirá las frecuencias de refresco horizon-
                               tales y verticales del monitor, entre otros. Seguidamente se nos
                               preguntará con qué resoluciones queremos trabajar y, en función de
                               los parámetros que hayamos entrado en el apartado anterior, se nos
                               harán distintas sugerencias. A continuación se nos pedirá cuál será
                               la resolución de color que se usará por defecto al arrancar el servidor
                               (actualmente la mayoría de tarjetas soportan, sin ningún problema,
                               resoluciones de 24 bits). Con esto habremos terminado la configura-
                               ción del servidor.


                                                                                           Nota

                                         Una buena forma de conseguir un fichero /etc/
                                         X11/XF86Config-4, que funcione, es copiar el que
                                         genera KNOPPIX cuando entramos en modo gráfico;
                                         así pues, podemos hacer una copia de este fichero, en
                                         un disquete, por ejemplo, y compararlo con el que he-
                                         mos generado mediante el script de configuración del
                                         servidor.


                                                                                       Actividad

                                        18. Una vez terminada la instalación, editar el fichero
                                            /etc/X11/XF86Config-4, e intentar asociar
                                            las distintas directrices a los parámetros que he-
                                            mos entrado durante la ejecución del script de con-
                                            figuración del servidor.



                               11.2.3. Inicialización del servidor

                               Ha llegado el momento de comprobar si el fichero de configuración
ANOTACIONES




                               del servidor es correcto, y en consecuencia el servidor arranca como
                               es debido. Para ello basta con ejecutar el comando startx.


                               Si todo funciona correctamente, al cabo de unos momentos nuestra
                               pantalla adquirirá un fondo mallado de colores grisáceos, y en el
                               centro de la pantalla aparecerá un aspa. Hemos dado un gran paso
                               adelante, pues configurar el servidor para que arranque es lo más
                               difícil del entorno X. Ahora sólo es cuestión de tiempo para terminar

                         220
Sistema operativo GNU/Linux básico                    © FUOC • 71Z799002MO
                                                                                 ©




dando al entorno el aspecto que deseamos. Mediante el ratón pode-
mos mover el aspa, y pulsando los botones del medio e izquierdo,
podemos explorar un poco las posibilidades de este entorno gráfico
un tanto rudimentario. Para salir de él y continuar con la configura-
ción del sistema, hay que pulsar el botón izquierdo del ratón, situar-
nos sobre Exit opción Yes, really quit, o simplemente pulsar
la combinación de teclas CTRL-ALT-BackSpace.


Si por el contrario, al cabo de unos momentos retornamos a la con-
sola alfanumérica, es que el servidor no ha podido arrancar adecua-
damente. Ha llegado el momento de estudiar detenidamente el
fichero de log (/var/log/XFree86.0.log) e intentar detectar las
posibles fuentes de errores. Las más comunes suelen ser: mala elec-
ción del driver que hay que cargar (si el proceso de selección lo he-
mos dejado en manos del script, deberemos consultar la página
antes mencionada para asegurarnos de que el driver que el script ha
escogido es el correcto), poner la directiva UseFBDev a true, cuan-
do debe estar en false, usar resoluciones o frecuencias de refresco
más altas de las que la tarjeta puede soportar, etc.


Otra posibilidad es que, aun estando soportada la tarjeta por el
Xfree86 Project, puede que el paquete que estemos usando no la so-
porte. Frente a esta situación, se sugiere que se incorpore la siguiente
línea en el fichero /etc/apt/sources.list:


deb http://people.debian.org/˜blade/woody/i386/ ./


y que, tras ejecutar el comando apt-get update, se vuelva ejecu-
tar el comando de instalación del X-Window-System apt-get
                                                  (
install X-Window-System). Con esto acudiremos a una página
no oficial para obtener los paquetes de versiones más actualizadas
                                                                                                 ANOTACIONES



del sistema X Window, y en ellos, probablemente, ya se dé soporte a
nuestra tarjeta.


Con todo esto, hay que destacar que la correcta configuración de
una tarjeta de vídeo puede llegar a ser una tarea verdaderamente di-
fícil. Para ello, acudiremos a buscadores donde entraremos palabras
clave referentes a nuestra tarjeta junto con “X” o “Linux” para ver si
encontramos documentación al respecto.

                                                                           221
© FUOC • 71Z799002MO
  ©                        Software libre



                               Llegados a este punto, mediante el comando siguiente evitaremos
                               que cada vez que arranquemos el ordenador entremos en el modo
                               gráfico:


                               brau:˜# rm /etc/rc2.d/S99xdm


                               Esto nos será útil mientras no tengamos configurado totalmente este
                               entorno. Una vez terminado, ya será cada usuario el que decidirá si
                               quiere o no, que al arrancar el ordenador se entre en el modo grá-
                               fico. Para hacerlo, sólo habrá que volver a crear el enlace simbólico
                               que hemos borrado con el comando anterior:


                               brau:˜# cd /etc/rc2.d
                               brau:/etc/rc2.d# ln -s ../init.d/xdm S99xdm



                               11.2.4. El fichero de log

                               Aunque el arranque del servidor haya resultado exitoso, no por ello
                               debemos dejar de analizar el contendido del fichero principal de log
                               del sistema X, /var/log/XFree86.0.log, ya que esto nos ayuda-
                               rá a depurar fallos y errores menores que no han interrumpido el
                               arranque del servidor, pero sí que hacen bajar su rendimiento.


                               Algunos ejemplos típicos pueden ser: eliminar la línea del fichero de
                               configuración que hace referencia a las fuentes cirílicas, si nunca las va-
                               mos a utilizar, ya que ni tan siquiera las hemos instalado; eliminar de
                               este mismo fichero todo lo que hace referencia al Generic Mouse, pues
                               lo hace incompatible con el que hemos configurado nosotros, etc.



                               11.2.5. El servidor de fuentes
ANOTACIONES




                               El sistema gráfico en sí no lleva asociado ningún tipo de base de da-
                               tos acerca de las fuentes disponibles, pues esto no entra en el domi-
                               nio de sus funciones. Ésta es la tarea del servidor de fuentes xfs (/
                               usr/bin/X11/xfs), así, cualquier programa cliente podrá usar las
                               fuentes disponibles, que se arrancan automáticamente al lanzar el
                               servidor X en forma de deamon. Existen multitud de paquetes para
                               agregar más fuentes al conjunto que hemos instalado por defecto.

                         222
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                                ©




Una aplicación que puede ser útil para conocer qué fuentes tenemos
instaladas y qué aspecto tienen es xfontsel. Se trata de una apli-
cación escrita mediante librerías de athena (como el resto de los xba-
se-clients, grupo al cual pertenece xfontsel), en la cual, mediante
menús desplegables se seleccionan las opciones disponibles de con-
figuración de las fuentes y nos muestra algunos caracteres de ejem-
plo. Para conocer los caracteres de una fuente se puede usar la
aplicación xfd.


Así pues, una vez sepamos qué fuente queremos utilizar para un de-
terminado programa, podemos lanzarlo desde una xterm con el ar-
gumento “-fn” seguido de la descripción de la fuente (otros
programas pueden usar nombres distintos para este argumento). Un
ejemplo puede ser:



 xterm -fn -misc-fixed-medium-r-normal--20-140-100-100-c-100-iso8859-1 &




 11.3. Window managers

Los window managers son programas clientes (en realidad se los lla-
ma meta-clientes) encargados de gestionar las distintas ventanas
que corren sobre el entorno gráfico y de su presentación, así como
de lanzar otros clientes (aplicaciones). A estas alturas, ya tenemos un
window manager instalado, el twm, ya que una instalación completa
de un sistema X requiere como mínimo de un window manager, aun-
que éste no forme parte del servidor, que corra sobre él. Como ya
hemos visto, el twm es muy rudimentario, puede ser, pues, que nos
interese instalar algunos más complejos, como puede ser Window-
Maker, BlackBox, qvwm, etc. Vamos pues a instalar algunos de ellos
                                                                                                ANOTACIONES


y a probarlos. El objetivo final, siguiendo la filosofía GNU, es que
cada usuario termine usando el software que prefiera. Así pues, se
deja que, una vez conocidos algunos window managers existentes,
sea el propio lector quien decida cuál va a usar. Obviamente, es po-
sible tener más de un window manager instalado, aunque sólo se
pueda hacer correr uno por sesión. (Sin embargo, si que podemos,
como ejemplo de la flexibilidad del sistema X, tener dos window ma-
nager corriendo en un mismo ordenador, cada uno en un terminal
distinto).

                                                                          223
© FUOC • 71Z799002MO
  ©                        Software libre



                               En primer lugar instalaremos, a modo de ejemplo, el qvwm. Se trata,
                               como veremos al lanzarlo, de un window manager que simula un en-
                               torno que probablemente nos sea conocido. Para hacerlo, basta con
                               ejecutar la instrucción:


                               brau:˜# apt-get install qvwm


                               En este momento ya tenemos dos window managers instalados: el
                               twm y el qvwm. Para hacer correr uno u otro bastará con indicar la
                               ruta completa de ubicación del window manager que deseamos uti-
                               lizar después del comando startx (recordemos que el comando
                               whereis nos puede ser muy útil a la hora de buscar la ubicación
                               de un fichero). Así pues, para hacer correr el window manager que
                               acabamos de instalar, bastará con ejecutar:


                               brau:˜# startx /usr/bin/X11/qvwm


                               Para utilizar el twm se debería haber especificado su ruta completa
                               de la forma siguiente:


                               brau:˜# startx /usr/bin/X11/twm


                               Tener que especificar cada vez qué window manager deseamos uti-
                               lizar, una vez nos hayamos decidido por uno en concreto, puede ser
                               un tanto pesado. Para especificar qué window manager debe usarse
                               en caso de que después del comando startx no se especifique nin-
                               guno en concreto, crearemos el archivo .xsession en el directorio
                               raíz del usuario con el contenido siguiente, en el caso que quisiéra-
                               mos que el window manager por defecto fuese el twm, por ejemplo:


                               #˜/.xsession
ANOTACIONES




                               exec twm


                               Si quisiéramos que fuese qvwm el window manager por defecto, bas-
                               taría con cambiar twm por qvwm. La ejecución de los distintos proce-
                               sos que implican el arranque del entorno gráfico, así como los
                               ficheros de configuración que se van leyendo durante este proceso,
                               están fuertemente determinados. Así pues, creando el fichero ante-
                               rior, lo que hemos hecho es editar uno de los últimos ficheros (los

                         224
Sistema operativo GNU/Linux básico                           © FUOC • 71Z799002MO
                                                                                        ©




que residen en el directorio raíz del usuario) que se leen antes de en-
trar en el entorno gráfico. Este fichero, por tanto, nos permite modi-
ficar algunos aspectos de los que se han determinado por defecto
dentro del sistema y que están definidos en los ficheros residentes en
/etc/X11 y sus subdirectorios.


Para finalizar esta sección instalaremos un window manager muy uti-
                                                                                Lectura complementaria
lizado en el mundo GNU/Linux, que se caracteriza por su versatili-
                                                                                 Animamos al lector a fami-
dad y su escaso consumo de recursos: el WindowMaker:                             liarizarse un poco con este
                                                                                 window manager y a que vi-
                                                                                 site su página para ampliar
brau:˜# apt-get install wmaker                                                   conocimientos:
                                                                                 http://www.windowmaker.org/.

Hemos instalado ya tres window managers, y seguramente instalare-
mos más. Aparte del método anteriormente descrito para preestable-
cer cuál queremos ejecutar por defecto, podemos utilizar el menú del
comando update-alternatives para establecerlo:


brau:˜# update-alternatives x-window-manager




 11.4. X Session manager


Los session managers son programas que pueden hacerse correr so-
bre una sesión gráfica y que nos permitirán establecer y modificar
parámetros de ésta. xms es el session manager que viene por defecto
con la instalación que hemos hecho del servidor gráfico. Podemos
lanzarlo desde un terminal X (para lanzar una xterm, pulsaremos el
botón del medio del ratón y seleccionaremos Programs/Xshells/
Xterm) , mediante el comando xsm.
                                                                                                            ANOTACIONES


Una vez lanzado xsm mediante Checkpoint, podemos guardar la
configuración de la sesión actual (esencialmente referente a las apli-
caciones que tengamos corriendo), gestionar los procesos que están
corriendo mediante Client List, consultar el log de la sesión o cerrar
la sesión guardando la configuración actual.


Aparte de xsm, existen otros session managers. Éstos acostumbran a
ser una parte más de los desktop managers, y están tan integrados
en ellos que a veces resulta difícil reconocer sus acciones. Un ejemplo

                                                                          225
© FUOC • 71Z799002MO
  ©                        Software libre



                               típico es la pregunta que se nos formula acerca de si deseamos guar-
                               dar la sesión al cerrar KDE.




                                11.5. X Display manager


                               Al finalizar la instalación del Xserver, sugeríamos que se eliminara el
                               enlace simbólico /etc/rc2.d/S99xdm para evitar que al volver a
                               arrancar el sistema al entrar al runlevel 2 se ejecutase xdm, acróni-
                               mo de X display manager. Éste es el display manager que el paquete
                               X-Window-System instala por defecto. Los display managers son
                               los programas encargados de gestionar quién, desde dónde, y cómo
                               puede entrar un usuario al entorno gráfico. Para lanzarlo, lo hare-
                               mos como con cualquier otro daemon:


                               brau:˜# /etc/init.d/xdm start


                               Para pararlo, también utilizaremos el mismo procedimiento que se-
                               guiríamos para detener cualquier otro daemon, con la salvedad de
                               que debemos pulsar la combinación de teclas Ctrl+Alt+F1, para sa-
                               lir del entorno gráfico y situarnos en la tty1, por ejemplo, en vez de
                               utilizar la combinación que se usa para cambiar de ttys en entornos
                               alfanuméricos:


                               brau:˜# /etc/init.d/xdm stop


                               Como hemos comprobado, el display manager nos pide un login y
                               un password, los mismos que utilizamos para acceder al sistema por
                               las ttys, si no es que hemos impuesto alguna restricción. Tras validar-
                               nos, entramos en el modo gráfico del mismo modo como lo hacía-
ANOTACIONES




                               mos mediante el comando startx. La diferencia radica en que,
                               cuando terminemos la sesión gráfica, el servidor no se parará, si no
                               que continúa corriendo el xdm.


                               Uno de los inconvenientes de xdm es que no nos permite seleccionar
                               con qué window manager queremos trabajar. Pero existen otros dis-
                               play managers, como pueden ser wdm (de WindowMaker), gmd (del
                               proyecto GNOME), o kdm (del proyecto KDE), que sí que lo permiten.

                         226
Sistema operativo GNU/Linux básico                      © FUOC • 71Z799002MO
                                                                                        ©




Podemos instalar el wdm, para ver su aspecto, y para conocer otro
display manager:


brau:˜# apt-get install wdm


Al ejecutarse el script de postinstalación, se nos preguntará qué dis-
play manager queremos usar, xdm, que ya teníamos instalado, o
wdm. Seleccionaremos este último, para que se cree el enlace nece-
sario para que se lanze wdm com display manager durante el proce-
so de arranque del sistema (si existe el fichero /etc/rc2.d/
S99xdm, es mejor borrarlo para evitar mensajes de warning al
arrancar el sistema). Si no queremos que se arranque automática-
mente ningún display manager al arrancar el sistema, bastará con
eliminar los enlaces necesarios, es decir, el fichero /etc/rc2.d/
wdm. El archivo /etc/X11/default-display-manager marca
el display manager que se usa por defecto.


Una vez arrancada una sesión X desde el display manager, es decir, una vez ha-
yamos lanzado el pertinente window maker, puede ser interesante ejecutar el co-
mando pstree para ver las relaciones de dependencia entre los distintos
procesos que están corriendo en este momento, junto con la información que
nos aportará la línea ps aux.




 11.6. Desktop managers


La aparición de distintas toolkits, así como el desarrollo de diversos pro-
yectos que desarrollaban o usaban librerías del entorno gráfico, hizo
aparecer proyectos que buscasen la unificación de todos estos esfuer-
zos. Fue entonces cuando apareció un concepto nuevo en el entorno X:
                                                                                                        ANOTACIONES


el de desktop manager. Los desktop managers son proyectos que pre-
tenden sentar las bases para la unificación y estandarización, tanto de
presentación como de políticas de programación y de desarrollo de
aplicaciones. Uno de los primeros en aparecer fue el CDE (Common
Desktop Manager), aunque actualmente los dos proyectos más destaca-
dos en este sentido son: GNOME y KDE, a los cuales, dado su alto gra-
do de implementación y de desarrollo, dedicaremos una subsección
respectivamente. Pero antes podemos nombrar otros desktop mana-
gers, como pueden ser: GNUStep, ROX, GTK+Xfce o UDE.

                                                                                  227
© FUOC • 71Z799002MO
  ©                        Software libre



                               11.6.1. GNOME

                               GNOME es un proyecto que forma parte de GNU, que se caracteriza
                               por no necesitar estrictamente de un window manager en concreto,
                               aunque se recomienda que se use alguno que garantice su correcto
                               funcionamiento (a GNOME-compliant window manager) como pue-
                               den ser: IceWM o Sawfish. Aun así, para respetar las preferencias y
                               la libertad del usuario, GNOME, en su control panel dispone siempre
                               de un window manager selector, que nos permite escoger qué win-
                               dow manager queremos usar. GNOME está basado en Gtk toolkit,
                               las propias librerías desarrolladas dentro del proyecto, conocidas
                               como gnome-libs específiques.


                               Como todos los desktop managers, GNOME dispone de su propio
                               panel, de su gestor de archivos Nautilus y de su control panel: GNO-
                               ME Control Panel.


                               Para hacer una instalación básica de GNOME, instalaremos el pa-
                               quete siguiente junto con todas sus dependencias:


                               brau:˜# apt-get install gnome-session


                               Tal como se ha dicho, aunque GNOME no exija el uso de ningún
                               window manager determinado, se recomienda que éste sea GNO-
                               ME-compliant window manager. Vamos pues a instalar Sawfish, que
                               fue desarrollado estrictamente para cumplir este requisito. Instale-
                               mos el paquete y todas sus dependencias:


                               brau:˜# apt-get install sawfish-gnome


                               Tenemos, pues, otro window maker instalado. Detendremos el dis-
ANOTACIONES




                               play manager y volveremos a lanzarlo para que este nuevo window
                               maker se integre en él (GNOME también tiene su propio display ma-
                               nager, gdm, que podemos instalar si lo deseamos). Ahora tenemos
                               dos posibilidades para conseguir nuestro objetivo: hacer correr
                               GNOME. La primera es arrancar Sawfish, desde el display manager
                               o mediante startx y, una vez dentro, lanzar gnome-session
                               desde un terminal X, o bien operar de modo inverso, es decir, arran-
                               car GNOME por los mismos procedimientos que Sawfish, y luego
                               lanzar sawfish desde un terminal X. Se recomienda proceder de

                         228
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                                ©




la última forma si queremos que la próxima vez que arranquemos
GNOME se ejecute Swafish (será el propio sesión manager de GNOME
el encargado de realizar y registrar los cambios necesarios para que
esto ocurra).


Una vez familiarizados un poco con GNOME, lo que podemos hacer
es instalar algunos paquetes que nos pueden ser útiles, en concreto
gnome-help y gnome-terminal, el primero nos ofrece una inter-
faz donde podremos leer mans, ficheros de texto en un entorno gra-
fico, y el segundo instala el xterm propio de GNOME.


Una aplicación que dará un aspecto mucho más amigable a GNO-
ME será Nautilus, concebido, en principio, como un gestor de fiche-
ros, pero que además nos permitirá configurar el desktop. Para su
correcto funcionamiento, Nautilus necesita de Mozilla M18 y de
GNOME Helix. Por tanto, los paquetes que habrá que instalar serán
los siguientes: nautilus-suggested, para hacer la instalación
de Nautilus y mozilla, para hacer una instalación completa del
navegador (en cuanto a su configuración, podemos instalar las
fuentes True Type, y podemos poner en auto el sound daemon’s
dsp wrapper).


GNOME es un proyecto en constante desarrollo y que ofrece multitud
de aplicaciones. Por eso, una vez instalado su sistema básico, suge-
rimos al lector que visite su página http://www.gnome.org y que
sea él mismo el que explore, descubra y decida cuál de ellas pueden
ser de su interés para instalárselas. La sola ejecución de la línea si-
guiente nos puede dar una idea de la magnitud del proyecto:


brau:˜# apt-cache search gnome
                                                                                                ANOTACIONES



Debian Woody integra la versión 1.4 de GNOME. Estando ya dispo-
nible la versión 2.2, proponemos modificar el contenido de /etc/
apt/sources.list añadiendo las líneas siguientes, para poder
actualizar o instalar de raíz los paquetes de esta versión “debianiza-
dos”:



 #GNOME2
 deb http://ftp.acc.umu.se/mirror/mirrors.evilgeniuses.org.uk/debian/backports/woody gnome2.2/


                                                                          229
© FUOC • 71Z799002MO
  ©                                Software libre



     deb-src http://ftp.acc.umu.se/mirror/mirrors.evilgeniuses.org.uk/debian/backports/woody gnome2.2/




                                       Una vez hayamos hecho esto, bastará con ejecutar los siguientes co-
                                       mandos para disponer de dichas actualizaciones:


                                       apt-get update apt-get install gnome



                                       11.6.2. KDE


                                       KDE, a diferencia de GNOME, sí que necesita de un window mana-
                                       ger concreto, se trata de kwm, basado en Qt toolkit y en las propias
                                       kdelibs. También dispone de su launcher panel: kpanel, de su propio
                                       gestor de archivos: Konquest y de su utilidad de configuración: Con-
                                       trol Panel. Obviamente, KDE puede estar instalado en el mismo sis-
                                       tema donde hayamos instalado GNOME, e incluso hay aplicaciones
                                       pertenecientes a un desktop manager que pueden correr en el otro.
                                       Además, KDE también tiene su propio display manager (kdm) junto
                                       con muchísimas más aplicaciones. Nuevamente se recomienda al
                                       lector una visita a su página para conocer sus posibilidades: http:/
                                       /www.kde.org, y la página del encargado de integrar KDE en De-
                                       bian http://people.debian.org/ ccheney/. Asimismo, po-
                                       demos ejecutar la línea siguiente para ver la integración de KDE en
                                       Debain:


                                       brau:˜# apt-cache search kde


                                       Los paquetes básicos de KDE están en el paquete kdebase. Éste se-
                                       rá, pues, el primero que instalaremos:
ANOTACIONES




                                       brau:˜# apt-get install kdebase


                                       Nuevamente deberemos reinicializar nuestro window manager
                                       para tener acceso al desktop manager recién instalado. Una vez
                                       hecho esto, podemos proceder a instalar el gestor de archivos,
                                       paquete konquest. Mediante el paquete kde-i18-es pode-
                                       mos instalar los ficheros necesarios para que KDE trabaje en cas-
                                       tellano.

                                 230
Sistema operativo GNU/Linux básico                     © FUOC • 71Z799002MO
                                                                                   ©




A partir de este punto, ya será cada usuario el que instalará los dis-
tintos paquetes del proyecto que le sean de interés.


Por lo que a versiones se refiere, Debian Woody integra la versión 2.
Para disponer de versiones más recientes, hay que recurrir a paque-
tes no oficiales. Si se desea tener acceso a estos paquetes, podemos
añadir la línea siguiente a /etc/apt/sources.list y actualizar
la base de datos mediante el comando apt-get update:


#KDE3
deb http://people.debian.org/˜schoepf/kde3/woody ./


Tal como ya hacíamos, para preestablecer el window maker por de-
fecto, utilizaremos el menú del comando update-alternatives
para seleccionar el session manager:


brau:˜# update-alternatives x-session-manager




 11.7. Personalización de algunos aspectos


El diseño del entorno gráfico X responde al ambicioso objetivo de sacar
el máximo rendimiento del hardware disponible, usando el mínimo de
sus recursos, y ofrecer la máxima flexibilidad posible. La estructura de
servidor cliente en que se basa este sistema hace posible que estos ob-
jetivos sean una realidad, y las aparentes dificultades con las que se en-
cuentra el usuario novel desaparecen rápidamente con un poco de
práctica para permitir que afloren las múltiples ventajas que ofrece este
diseño. En esta sección sólo se pretende dar una somera idea de la po-
tencia de este sistema, la cual se pone plenamente de manifiesto cuan-
do se trabaja en red, aunque queda un poco ensombrecida cuando se
                                                                                                   ANOTACIONES



trabaja en un sistema stand alone como sobre el que se desarrolla todo
este curso. De todas formas se introducen algunos conceptos que pue-
den ser de utilidad cuando se entra a trabajar en red.



11.7.1. Personalización de aspectos locales

En general los archivos de configuración se hallan en el directorio /
etc/X11/o en algunos de sus subdirectorios. De forma personali-

                                                                             231
© FUOC • 71Z799002MO
  ©                        Software libre



                               zada, cada usuario puede redefinir los parámetros de configuración
                               y añadir nuevos creando o editando en su directorio de home los fi-
                               cheros que llevan el mismo nombre que los de configuración general
                               pero precedidos de un “.”. Se podrán redefinir o establecer todos
                               aquellos parámetros que no requieran de permisos de superusuario,
                               ya que los archivos de home se procesan después de los de configu-
                               ración general, y los parámetros siempre tomarán el último valor que
                               se les asigne.



                               Xsession


                               /etc/X11/Xsession es un script que se ejecuta al entrar en una
                               sesión de usuario.


                               Este script es el que gobierna todo el proceso de arranque de la sesión
                               hasta que podemos empezar a trabajar, y también es el encargado de
                               gestionar los mensajes de errores que se puedan producir durante este
                               proceso, los cuales se registran en $HOME/.xsession-errors.


                               En $HOME/.xsession es donde personalizaremos el arranque
                               para un usuario en particular. Así pues, si deseamos que el window
                               manager sea blackbox, y que se arranque automáticamente
                               bbkeys en background al iniciar la sesión, éste contendrá las si-
                               guientes líneas:


                               bbkeys &
                               blackbox
ANOTACIONES




                               Xresources


                               En el archivo $HOME/.Xresources personalizaremos el aspecto
                               de las distintas aplicaciones. La sintaxis es application*parameter: va-
                               lue. Así pues, si quisiéramos invertir los colores de la aplicación
                               xterm, añadiríamos la línea siguiente en el fichero:


                               Xterm*reverseVideo: true

                         232
Sistema operativo GNU/Linux básico                        © FUOC • 71Z799002MO
                                                                                    ©




El comando xrdb es el encargado de gestionar la base de datos
de Xresources. Mediante “xrdb -query” podemos conocer todas
las propiedades establecidas y su valor, y mediante el parámetro
“-display” obtendremos un listado de todos los parámetros que
acepta el comando. Si a éste le pasamos como parámetro la ubi-
cación de un fichero, leerá de él todas las definiciones de pará-
metros.




Xmodmap


El servidor gráfico usa la tabla de códigos de caracteres para hacer
la conversión de señales provenientes del teclado (server-indepen-
dent) a símbolos del sistema (server-dependent).


La tabla de conversión que hay que usar ha sido seleccionada du-
rante el proceso de configuración del teclado, pero el comando               Nota

xmodmap nos permite modificar su contenido. Un ejemplo de su uso             Estos comandos fueron utili-
                                                                             zados durante mucho tiem-
puede ser el siguiente:                                                      po debido a la inversión de
                                                                             asignación de símbolos en
                                                                             las tablas de conversión; ac-
brau:˜# xmosmap -e “keycode 127 = Delete”                                    tualmente, sin embargo, este
                                                                             problema está resuelto.
brau:˜# xmosmap -e “keycode 22 = BackSpace”


Mediante los parámetros “-pk” xmodmap nos devolverá todo el
contenido de la tabla de conversión que se está usando.




11.7.2. Personalización de aspectos de red


Los aspectos aquí presentados también son de interés para un siste-
ma stand alone, ya que, como todo el sistema operativo, el sistema
                                                                                                        ANOTACIONES



X usa siempre un diseño orientado a red.



$DISPLAY


La variable $DISPLAY sirve para indicar al cliente con qué servidor
debe comunicarse. Su sintaxis es la siguiente: hostname:display num-
ber.screen number. Así pues, si hubiésemos definido otro terminal

                                                                       233
© FUOC • 71Z799002MO
  ©                        Software libre



                               gráfico al sistema X, añadiendo la línea siguiente a /etc/X11/
                               xdm/Xservers:


                               :1 local /usr/X11R6/bin/X vt8


                               podríamos lanzar una aplicación gráfica desde un xterm de un ter-
                               minal gráfico a otro definiendo la variable adecuadamente. Por todo
                               lo cual, si quisiéramos lanzar xeyes desde el primer terminal grá-
                               fico, vía xterm, y “displayarlo” en el segundo, procederíamos de la
                               forma siguiente:


                               brau:˜$ set DISPLAY :0.1; export DISPLAY
                               brau:˜$ xeyes &


                               Si entramos en una sesión gráfica, abrimos un xterm, cambiamos de
                               usuario mediante el comando su y probamos de lanzar una aplicación
                               gráfica se nos devolverá un mensaje de error indicándonos que se pue-
                               de establecer conexión con el servidor. Una estrategia para evitar este
                               problema es utilizar con el parámetro “-p” para que se exporte todo el
                               conjunto de variables de entorno, y evitar así que el servidor rechace
                               nuestra petición de conexión. Esta práctica puede ser muy útil para lan-
                               zar programas de configuración que necesitan permisos de root , ya que
                               nos evitará tener que entrar en el entorno gráfico como root (práctica no
                               muy recomendable, y que, aunque por defecto se permita, en muchas
                               ocasiones se restringe manualmente).



                               xhost y xauth

                               El comando xhost permite establecer qué equipos pueden acceder
                               al servidor gráfico de forma remota, es decir, qué máquinas cliente
                               pueden lanzar una aplicación para ser “displayada” en el servidor.
ANOTACIONES




                               Su sintaxis es la siguiente: xhost +hostname. Si no se especifica nin-
                               gún hostname, cualquier máquina podrá lanzar aplicaciones sobre
                               el servidor. Por defecto, no se permite la conexión desde ningún
                               equipo remoto.


                               El comando xauth sirve para determinar qué usuarios pueden lan-
                               zar aplicaciones sobre el servidor gráfico. Así pues, mediante la com-
                               binación de estos dos comandos podremos establecer una política

                         234
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                               ©




de seguridad de acceso al servidor X bastante razonable. xhost +
para los stand alone.




 11.8. Configuración de impresoras


La tarea de configurar impresoras se puede ver facilitada a partir del
entorno gráfico. Existen multitud de aplicaciones para configurar el
sistema de impresión nativo (basado en lpd como servidor y lpr como
cliente), y otras que sustituyen este sistema por uno propio, común-
mente también basado en la estructura cliente servidor. En esta sec-
ción presentaremos dos de estas herramientas: CUPS y LPRng,
ambos con su sistema propio de servidor de impresión.


Para la instalación de LPRng hay que instalar necesariamente el pa-
quete lprng. El paquete que contiene la GUI es de configuración del
fichero /etc/printcap basado en LPRng es lprngtool. Obvia-
mente, para hacer modificaciones en dicho fichero de configuración,
habrá que ejecutar el comando lprngtool con privilegios de root.
Adicionalmente, se recomienda instalar el paquete printop, que
aporta una interfaz gráfica para todo el sistema de impresión, y el
paquete lprng-doc, el cual contiene toda la documentación de
este sistema de impresión.


Para instalar CUPS (Common Linux Printing System) habrá que ins-
talar el paquete del servidor de impresión, cupsys; y se recomienda
instalar, junto a este paquete, el de clientes de impresión, paquete
cupsys-client. También se puede instalar el paquete cupsys-bsd
para disponer de los comandos habituales en el sistema de impresión
de BSD. Por lo que se refiere a drivers, los paquetes cupsys-driver-
gimpprint y cupsomatic-ppd, aportan gran número de ellos junto
                                                                                               ANOTACIONES



con numerosos algoritmos de procesamiento de imagen, definición de
tamaños de papel, etc.




 11.9. OpenOffice


En esta sección, aunque se aparte un poco del objeto principal
del curso, presentaremos una suite ofimática que puede ser de

                                                                         235
© FUOC • 71Z799002MO
  ©                           Software libre



                                 extraordinaria utilidad para aquellos que estén acostumbrados
                                 a utilizar software de este tipo. Se trata de OpenOffice.org
                                 (http://www.openoffice.org), proyecto derivado de StarOffice, de
                                 Sun MicroSystems. Hay que destacar que este proyecto es multipla-
                                 taforma, y que por tanto puede ser implementado en otros sistemas
                                 operativos no tipo UNIX.


                                 Si bien esta suite no está integrada en Debian, podemos recurrir,
                                 como ya hemos hecho con anterioridad, a fuentes no oficiales para
                                 obtener sus paquetes:



     #OpenOffice
     deb http://ftp.freenet.de/pub/ftp.vpn-junkies.de/openoffice/ woody main contrib



                                 Una vez hayamos añadido la línea anterior a /etc/apt/sources.list
                                 y hayamos actualizado la base de datos mediante apt-get update,
                                 bastará con ejecutar la línea siguiente para proceder a la insta-
                                 lación:



     brau:˜# apt-get install openoffice.org openoffice.org-l10n-en



                                 Sólo hay que tener presente, durante el proceso de instalación (el
                                 cual debe ejecutarse bajo un entorno gráfico) que hay que hacer la
                                 instalación para red. Así, sólo será necesario que en el directorio
                                 home de cada usuario exista un pequeño directorio donde se guar-
                                 darán sus configuraciones personales.
ANOTACIONES




                                 Una vez se haya instalado el programa la primera vez, cada usua-
                                 rio deberá ejecutar el programa siguiente para que se cree su di-
                                 rectorio:



                                 /usr/lib/openoffice/program/setup


                                 Una vez hecho esto y se hayan repuesto algunas preguntas, median-
                                 te el comando openoffice abriremos la suite.

                           236
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                                ©




 11.10. Conclusión

Con este taller se termina el material didáctico del segundo módulo
del máster. En él hemos aprendido a instalar el entorno gráfico al sis-
tema, el cual, como ya vimos en su momento, no es una parte fun-
damental dentro del sistema operativo. Pero está clara su utilidad en
muchos casos, y ha sido en este punto cuando muchos afirman que
el sistema operativo que ha sido objeto de estudio en este módulo
puede ser una alternativa seria a otros sistemas. Por todo lo cual, los
autores querríamos manifestar nuestro absoluto convencimiento de
que GNU/Linux es un sistema operativo extraordinario, no sólo de-
bido a su entorno gráfico, que es lo que quizás sorprenda más a pri-
mera vista, sino por un sinfín de argumentos, de entre los cuales
podemos destacar su filosofía, robustez, adaptabilidad, potencia, ni-
veles potenciales de seguridad, etc. Estamos convencidos de que este
sistema operativo es una apuesta de futuro para la cual, si bien ya
ha demostrado que es capaz de abrirse un espacio en el mundo de
los sistemas operativos, sólo cabe esperar sorpresas positivas.


Deseamos haber proporcionado los conocimientos suficientes y
transmitido el entusiasmo necesario para que el lector inicie aquí su
propio camino en el mundo del software libre, y haber sabido abrir
las puertas a una comunidad donde todo el mundo es bienvenido y
respetado.




                                                                                                ANOTACIONES




                                                                          237
Manual gnu linux_basico
Sistema operativo GNU/Linux básico                                  © FUOC • 71Z799002MO
                                                                                                ©




A.Tablas de comandos




A.1. Sistema de ficheros

COMANDO                         SIGNIFICADO Y PARÁMETROS ÚTILES

                                Lista los contenidos de un directorio determinado
                                ⇒ “-a” muestra todos los contenidos, incluso los que empiezan por “.”
                                ⇒ “-l” muestra la información completa relativa a los contenidos
                                ⇒ “-h” acompañada de “-l” muestra el tamaño de los archivos en unidades de
ls [pattern]                    bytes, KB, MB, GB
                                ⇒ “-S” ordena el listado por tamaño
                                ⇒ “-w” muestra el listado por columnas
                                ⇒ “-R” muestra el listado de forma recursiva, pasando por todos los subdirectorios
                                ⇒ “--color” colorea el texto del listado según el tipo de archivo

                                Cambia al directorio especificado. Si no se especifica ninguno, va al home del
cd [ruta]
                                usuario

pwd                             Muestra la ruta completa hasta el directorio actual

                                Busca un determinado fichero o directorio
                                ⇒ “-iname pattern” busca recursiva del pattern a partir del directorio actual
                                ⇒ “-ilname pattern” como “-iname” pero haciendo la búsqueda insensible a
                                mayúsculas o minúsculas
find [parámetros] [path]
                                ⇒ “-maxdepth numLevels” realiza la búsqueda hasta el nivel de profundidad
                                especificado
                                ⇒ “-uid UID” fuerza la coincidencia de UID
                                ⇒ “-gid GID” fuerza la coincidencia de GID

                                Crea un link a un fichero o directorio. Si no se trata de un link simbólico, se hace
ln ruta [nombreNuevoLink]       una copia exacta y se modifica frente a cualquier actualización (hard link)
                                ⇒ “-s” crea un enlace simbólico
                                                                                                                       ANOTACIONES


A.2. Ayuda del sistema

COMANDO                         SIGNIFICADO Y PARÁMETROS ÚTILES

man [numManual] comando         Muestra el contenido del manual del comando mediante un paginador

                                Otra fuente de ayuda, que a veces complementa los contenidos del man, y en otras
info comando
                                es la única documentación que se mantiene

                                Busca todos los comandos que contienen la palabra clave en la descripción de su
apropos palabraClave
                                manual


                                                                               239
© FUOC • 71Z799002MO
  ©                                       Software libre



                                              A.3. Permisos de los ficheros

    COMANDO                                   SIGNIFICADO Y PARÁMETROS ÚTILES

                                              Establece los permisos de ficheros y/o directorios
    chmod modo fichero                        ⇒ “-R” el cambio se realiza de forma recursiva, es decir, se realiza sobre
                                              todos los ficheros y subdirectorios del directorio especificado

                                              Establece el propietario y el grupo (si éste se especifica) de ficheros y/o
    chown propietario[.grupo] fichero         directorios
                                              ⇒ “-R” el comando actúa de forma recursiva

                                              Establece el grupo al que pertenecen ficheros y/o directorios
    chgrp grupo fichero
                                              ⇒ “-R” el comando actúa de forma recursiva

                                              Inicializa los permisos de todos los ficheros creados a partir del momento en
    umask modo
                                              que se ejecuta el comando




                                              A.4. Copia y borrado de ficheros

    COMANDO                                   SIGNIFICADO Y PARÁMETROS UTILES

                                              Comando para borrar ficheros y/o directorios
                                              ⇒ “-f” suprime los mensajes de confirmación
    rm fichero
                                              ⇒ “-R” el comando actúa de forma recursiva
                                              ⇒ “-i” pregunta antes de proceder al borrado

    rmdir directori                           Borra directorios vacíos

                                              Copia archivos del origen al destino especificados
                                              ⇒ “-f” no pide confirmación
                                              ⇒ “-i” pide confirmación antes de copiar cada fichero
    cp ficheroOrigen ficheroDestino
                                              ⇒ “-l” realiza enlaces en vez de copiar
                                              ⇒ “-R” actúa recursivamente copiando los contenidos de los subdirectorios
                                              ⇒ “-s” realiza enlaces simbólicos en vez de copiar

                                              Mueve archivos del origen al destino especificados
    mv ficheroOrigen ficheroDestino           ⇒ “-f” no pide confirmación
                                              ⇒ “-i” pide confirmación antes de mover cada fichero
ANOTACIONES




                                              A.5. Parada o reinicio

     COMANDO                                  SIGNIFICADO Y PARÁMETROS ÚTILES

     logout                                   Sale del shell y devuelve al login

                                              Inicia el proceso de paro del sistema (nunca debemos apagar el ordenador
     halt
                                              hasta que no se “displaye” Power Down)

                                              Reinicia el sistema, es decir, procede al paro de éste y luego “resetea” el
     reboot
                                              ordenador


                                        240
Sistema operativo GNU/Linux básico                               © FUOC • 71Z799002MO
                                                                                          ©




A.6. Operaciones con ficheros


COMANDO                       SIGNIFICADO Y PARÁMETROS ÚTILES

                              Muestra el contenido del archivo o, si éste no se ha especificado, muestra por
cat [archivo]                 pantalla todo lo que se entra por teclado
                              ⇒ “-n” enumera las líneas mostradas

                              Paginador para mostrar contenido de archivos. Las opciones que se especifican a
                              continuación NO son parámetros del comando, sino teclas de acceso directo a
                              utilizar en su uso
                              ⇒ “/pattern” dentro de “less” podemos realizar una búsqueda del pattern
                              especificado precedido de “/”; Para continuar la búsqueda hacia delante o hacia
                              atrás, usaremos las teclas “n” y “N” respectivamente
less archivo
                              ⇒ “FIN” va al final del archivo
                              ⇒ “INICIO” va al principio del archivo
                              ⇒ “AVPAG” avanza página
                              ⇒ “RETURN” avanza una línea
                              ⇒ “SPACE” avanza una página

                              Muestra el contenido del archivo de una forma similar a “less” pero más simple
more archivo
                              (no permite, por ejemplo, la opción de retroceder)

                              Busca las líneas que cumplen con el pattern y la muestra por pantalla
                              ⇒ “-b” muestra el número de byte de cada línea encontrada
                              ⇒ “-c” no muestra las líneas por pantalla, sino que las cuenta y devuelve el
                              número
grep [pattern] archivo        ⇒ “-e pattern” útil cuando el pattern empieza por el carácter “-”
                              ⇒ “-i” ignora la diferencia entre mayúsculas y minúsculas
                              ⇒ “-n” muestra el número de línea
                              ⇒ “-v” invierte el resultado de la búsqueda
                              ⇒ “-w” selecciona sólo aquellas líneas donde el pattern es toda una palabra

                              Muestra los campos del archivo
                              ⇒ “-d carácter” indica qué carácter es el delimitador de campo
cut archivo                   ⇒ “-f numCampo” indica qué campo debe mostrado
                              ⇒ “-b listaBytes” del campo seleccionado, sólo se quiere ver los bytes indicados,
                              separados por comas
                                                                                                               ANOTACIONES


                              Muestra el número de bytes, líneas y palabras del fichero
                              ⇒ “-c” sólo muestra los bytes
wc fichero
                              ⇒ “-l” sólo muestra el número de líneas
                              ⇒ “-w” sólo muestra el número de palabras

                              Muestra les diferencias entre archivo1 y archivo2
                              ⇒ “-B” ignora líneas en blanco
diff archivo1 archivo2
                              ⇒ “-i” ignora la diferencia entre mayúsculas y minúsculas
                              ⇒ “-w” ignora los espacios en blanco




                                                                            241
© FUOC • 71Z799002MO
  ©                                     Software libre



                                             A.7. Compresión de ficheros y copias de seguridad

     COMANDO                           SIGNIFICADO Y PARÁMETROS ÚTILES

                                       Une distintos archivos y directorios en uno solo (conocido como tarball, los cuales
                                       se caracterizan por terminar con “.tar”)
                                       ⇒ “-cf” crea un archivo a partir de los archivos y directorios origen
                                       ⇒ “-cvf” como en el caso anterior, pero mostrando por pantalla el proceso
     tar opciones archivo              ⇒ “-cvzf” como en el caso anterior, pero comprimiendo los archivos con gzip
     [archivoOrigen]
                                       ⇒ “-x” para extraer el contenido de un tarball
                                       ⇒ “-xvzf” para extraer y descomprimir mostrando por pantalla los resultados del
                                       proceso
                                       (los archivos comprimidos se caracterizan por terminar en “.tar.gz” o “.tgz”

     cpio                              Para hacer copias de seguridad

                                       comprime el archivo y le da la extensión “.gz”
     gzip archivo
                                       ⇒ “-d” descomprime

     gunzip archivo                    Descomprime el archivo

                                       Comprime todos los archivos origen en archivo final (el cual se caracteriza por
                                       terminar con “.zip”
     zip archivoFinal archivoOrigen
                                       ⇒ “-e” encripta el archivo mediante una palabra clave que se pide al ejecutar el
                                       comando

     unzip archivo                     Descomprime el archivo




                                             A.8. Operaciones de disco

     COMANDO                           SIGNIFICADO Y PARÁMETROS ÚTILES

                                       Muestra el estado de las particiones montadas por lo que se refiere a espacio
                                       total, ocupado y libre
     df
                                       ⇒ “-h” muestra la información en unidades de bytes, KB, MB, GB
                                       ⇒ “-m” muestra la información en unidades de MB

                                       Muestra los bloques que ocupa archivo
                                       ⇒ “--block-size=TAMAÑO” nos permite establecer el tamaño de bloque que
     du [archivo]
                                       deseemos
                                       ⇒ “-h” muestra la información en unidades de bytes, KB, MB, GB
ANOTACIONES




                                       Comando para crear un nuevo sistema de ficheros. Debido a la naturaleza del
     mkfs                              comando, se recomienda la lectura y la comprensión del manual del comando

     dumpe2fs dispositivo              Muestra información del sistema de archivos indicado

                                       Hace un chequeo del sistema de archivos y repara sus posibles fallos. Es
     fsck dispositivo                  importante tener en cuenta que el dispositivo no debe estar montado en el sistema
                                       durante el uso del comando

     sync                              Sincroniza los archivos de caché y disco duro

                                       Busca errores en la partición especificada
     badblocks dispositivo
                                       ⇒ “-s” se “displaya” información del proceso


                                      242
Sistema operativo GNU/Linux básico                                © FUOC • 71Z799002MO
                                                                                                 ©




A.9. Usuarios y grupos

COMANDO                            SIGNIFICADO Y PARÁMETROS ÚTILES
whoami                             Muestra qué usuarios somos
groups                             Muestra el grupo al que pertenecemos
                                   Muestra los usuarios que están en el sistema en el momento de la ejecución del
who                                comando
                                   ⇒ “-T” indica, para cada usuario, si permite la recepción de mensajes
                                   Muestra información extensa sobre los usuarios del sistema en el momento de la
w [nombreUsuario]
                                   ejecución. Si no se especifica un usuario en concreto, nos la muestra para todos
                                   Para mandar un mensaje al usuario especificado. Para determinar la consola,
write nombreUsuario [consola]
                                   podemos utilizar los comandos “who” o “w”
talk nombreUsuario [consola]       Abre una sesión de chat con el usuario especificado si éste la acepta
                                   Sin pasar parámetros, muestra si está o no activa la recepción de mensajes. El
mesg [y-n]
                                   parámetro “y” la activa y el parámetro “n” la desactiva
adduser [nombreUsurio]             Crea un nuevo usuario del sistema
userdel nombreUsuario              Elimina el usuario especificado del sistema
addgroup [nombreGrupo]             Crea un nuevo grupo
groupdel nombreGrupo               Elimina un grupo del sistema




A.10. Gestión de procesos

COMANDO                            SIGNIFICADO Y PARÁMETROS ÚTILES
                                   Muestra los procesos del sistema
                                   ⇒ “-A” muestra todos los procesos que están ejecutándose en el sistema (igual que
ps                                 “-e”)
                                   ⇒ “-H” muestra los procesos ordenados por jerarquía
                                   ⇒ “-l” muestra información extensa sobre los procesos
top                                Muestra los procesos en ejecución de forma interactiva
                                   Manda una señal de finalización del proceso
kill PID
                                   ⇒ “-9” envía la señal de matar el proceso
                                   Manda la señal de fin de proceso a todos los procesos indicados
killall nombreProceso
                                   ⇒ “-9” envía la señal de matar los procesos
                                   Muestra el nivel de prioridad de ejecución que se utiliza por defecto, y si se le pasa
                                   como parámetro un comando junto con la prioridad deseada, ajusta la prioridad
nice [comando]
                                                                                                                     ANOTACIONES


                                   del comando a la especificada
                                   ⇒ “-n nuevoNivel” ejecutará el comando con la prioridad especificada
renice prioritad PID               Cambia la prioridad del PID especificado
                                   Ejecuta el comando a la hora especificada
at tiempo
                                   ⇒ “-f comando” especifica el comando a ejecutar
atq                                Muestra la cola de espera de “at”
                                   Elimina un comando de la cola de espera. El número de comando es el que
atrm numComando
                                   devuelve “atq”
                                   Ejecuta los comandos o procesos cuando la carga del sistema es baja.
batch
                                   ⇒ “-f comando” para especificar el comando


                                                                                 243
Manual gnu linux_basico
Sistema operativo GNU/Linux básico                                        © FUOC • 71Z799002MO
                                                                                                     ©




 B. El editor vi




 B.1. Introducción

Saber utilizar un editor de textos es imprescindible para poder editar
                                                                                            Contenido
y modificar los ficheros del sistema. Aunque existen centenares de                          complementario
editores diferentes, el vi siempre ha sido el editor por defecto de los                       En GNU/Linux se suele utili-
sistemas like UNIX. Aunque en un principio el vi pueda parecernos                             zar más el vim (Vi IMpro-
                                                                                              ved),   que    es   99,9%
un editor muy simple, a medida que nos vayamos acostumbrando a
                                                                                              compatible con el vi pero
sus comandos veremos que tiene muchísimas utilidades que nos fa-                              añade unas cuantas funcio-
cilitan mucho la manipulación de los ficheros. Aunque para tareas                             nalidades más.

largas (como cuando programamos) existen otros editores más úti-
les, la gran mayoría de administradores de sistemas utilizan el vi
para muchas de las tareas de administración. El hecho de que se tra-
te de un editor en modo texto (que permite su utilización en la con-
sola del sistema) y estar disponible en todos los sistemas hacen del
vi el editor ideal en los entornos UNIX.


Para llamar el vi podemos utilizar alguno de los métodos que vemos
en la siguiente tabla:


“vi archivo”                               Edita el fichero en modo “full screen”
                                           Recupera la última versión guardada del fichero (por los casos en que no
“vi -r archivo”
                                           salimos correctamente del editor y queda un fichero de swap)
“vi + archivo”                             Edita el fichero y se sitúa en la última línea
“vi +numLínea archivo”                     Edita el fichero y se sitúa en la línea indicada
                                           Va editando todos los archivos especificados. Para saltar de uno a otro
“vi archivo1 ...archivoN”                  debemos escribir en modo comando “:n”. Con “:n!” no guardamos las
                                                                                                                        ANOTACIONES



                                           modificaciones
“vi +/string archivo”                      Edita el fichero y sitúa el cursor en la primera ocurrencia del “string”




 B.2. Modos del vi

El vi tiene dos modos de utilización: modo comando y modo inser-
ción. En el modo comando todo lo que escribamos será interpretado

                                                                                 245
© FUOC • 71Z799002MO
  ©                        Software libre



                               por el editor para realizar acciones concretas, mientras que el modo
                               inserción se utiliza para modificar el contenido del archivo. Cuando
                               entramos en el vi, por defecto estamos en modo comando. Para
                               cambiar a modo inserción, podemos utilizar cualquiera de las teclas
                               de la siguiente tabla:


                                “a”    Inserta después del carácter donde estamos situados

                                “i”    Inserta antes del carácter donde estamos situados

                                “A”    Añade al final de la línea actual

                                “I”    Añade al principio de la línea actual

                                “R”    Entra en modo inserción reemplazando caracteres

                                       Añade una línea en blanco debajo de la nuestra y pasa a modo
                                “o”
                                       inserción

                                       Añade una línea en blanco encima de la actual y pasa a modo
                                “O”    inserción



                               Para volver a modo comando, podemos utilizar la tecla ESC. En
                               modo inserción lo único que podemos hacer es escribir texto, elimi-
                               narlo o desplazarnos con las teclas de AVPAG y REPAG. El modo co-
                               mando nos permite muchísimas más acciones. En las siguientes
                               tablas especificamos algunas de las más comunes:


                                                        Moviéndonos por el fichero

                                “j”                             Siguiente línea

                                “k”                             Línea anterior

                                “l”                             Siguiente carácter

                                “h”                             Carácter anterior

                                “[[”                            Incio del archivo

                                “]]”                            Final del archivo
ANOTACIONES




                                “nG”                            Ir a la línea “n”

                                “G”                             Ir al final del archivo

                                RETURN                          Siguiente línea

                                CTRL+F                          Pantalla siguiente

                                CTRL+B                          Pantalla anterior

                                CTRL+D                          Media pantalla siguiente

                                CTRL+U                          Media pantalla anterior


                         246
Sistema operativo GNU/Linux básico                      © FUOC • 71Z799002MO
                                                                                   ©




                     Operaciones con archivos

“:w”                 Guarda el fichero

“:w
                     Guarda el fichero con el nombre indicado
nombreArchivo”

“:wq”                Guarda el fichero y sale del editor

“:x”                 Guarda el fichero y sale del editor

“ZZ”                 Guarda el fichero y sale del editor

“:q”                 Sale si no ha habido cambios en el fichero

“:q!”                Sale sin guardar los cambios

                     Edita el archivo indicado si no hay cambios en el
“:e archivo”
                     actual

                     Edita el archivo indicado perdiendo los cambios en
“:e! archivo”        el actual, si hubiera

“:r archivo”         Añade el archivo indicado después de la línea actual

“:Nr archivo”        Añade el archivo indicado después de la línea “N”

                     Ejecuta un shell sin salir del editor; para salir del
“:sh”
                     shell debemos escribir “exit”

                     Guarda desde la línea “N” a la “M” descartando
“:N,Mw!”             todas las otras

“:N,M>>archivo”      Añade desde la línea “N” a la “M” el archivo indicado

“:=”                 Muestra la línea actual

CTRL+G               Muestra el estado del fichero


            Copiar, borrar, pegar, buscar y reemplazar

“yy”           Copia la línea actual

“Nyy”          Copia las “N” líneas a partir del cursor

“p”            Pega las líneas copiadas debajo de la actual

“P”            Pega las líneas copiadas encima de la actual

“x”            Borra el carácter de debajo del cursor

“dw”           Borra la palabra de debajo del cursor

“dd”           Borra la línea actual
                                                                                                   ANOTACIONES



“D”            Borra desde la posición del cursor hasta el final de línea

               Busca el “string” a partir de la posición actual. Para
“/string”      continuar con la búsqueda, se puede utilizar “n” y “N” para
               ir hacia delante o atrás respectivamente

“?string”      Como el comando anterior pero en modo invertido

“:set ic”      Realiza las búsquedas ignorando mayúsculas/minúsculas

“:set noic”    Realiza las búsquedas con mayúsculas/minúsculas

“:g/HOLA/      Sustituye todos los “HOLA” por “ADIÓS”
s//ADIOS”


                                                                             247
© FUOC • 71Z799002MO
  ©                        Software libre



                               En la línea inferior del editor veremos los comandos que vayamos es-
                               cribiendo, que se ejecutarán al apretar el RETURN. Además, la ma-
                               yoría de estos comandos permiten la repetición: tan sólo debemos
                               escribir el número de veces que queremos que se ejecuten antes que
                               el comando. Por ejemplo, con “dd” conseguimos que se borre la lí-
                               nea actual; si escribiéramos “3dd” en lugar de la línea actual, se bo-
                               rrarían las tres siguientes.
ANOTACIONES




                         248
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                                ©




 C.Proceso de instalación de Red Hat Linux 9.0




 C.1. Introducción

En este apéndice se pretende dar una idea general de los pasos bá-
sicos que hay que seguir para la instalación de Red Hat Linux 9.0. Se
dan por sentados los conocimientos básicos adquiridos a lo largo del
módulo y que han conducido a la instalación de Debian 3.0r1. Los
conocimientos teóricos para abordar cualquiera de ambas instala-
ciones son prácticamente los mismos, por este motivo, este apéndice
está completamente orientado a praxis, y en él sólo se resaltan las
diferencias entre los dos procesos de instalación.




 C.2. Inicio de la instalación




 C.3. RHinicioinst


Para inicializar el proceso de instalación, basta con arrancar el orde-
nador desde CD-ROM y con el primer CD-ROM de la distribución
dentro del dispositivo. Una vez terminado el proceso de arranque, se
nos muestra una pantalla inicial con el logotipo de Red Hat Linux jun-
to con una serie de opciones asociadas a las teclas desde F1 hasta
F5, y se nos indica que si deseamos usar el modo gráfico para rea-
lizar la instalación, basta con pulsar INTRO para inicializarla o que,
                                                                                                ANOTACIONES



si deseamos hacerlo en modo texto, debemos escribir text y pulsar
INTRO. Salvo casos excepcionales, siempre se escoge el modo grá-
fico, ya que hace más amena la instalación.


Antes de entrar en el modo gráfico, se nos preguntará si deseamos
hacer un testeo del soporte físico de donde se extraerán los datos
para la instalación. Si estamos seguros de que nuestros CD no están
dañados en forma alguna, podemos omitir este proceso.

                                                                          249
© FUOC • 71Z799002MO
  ©                        Software libre



                               A continuación se arranca anaconda, el programa base de la insta-
                               lación. Transcurridos unos segundos, entramos en la pantalla de
                               bienvenida del programa. A partir de este momento, la pantalla es-
                               tará dividida en dos áreas. En la de la izquierda se nos informa del
                               punto de la instalación donde nos hallamos y se nos suministra in-
                               formación relativa al mismo; a la derecha se nos muestran las opcio-
                               nes disponibles. En todo momento dispondremos del ratón para
                               hacer las selecciones que estimemos oportunas.




                                C.4. Primeros aspectos


                               En primer lugar, debemos seleccionar el idioma que se usará durante
                               el proceso de instalación. Esta selección no afectará en ningún aspecto
                               a la instalación resultante. En segundo lugar, hay que configurar el te-
                               clado. Este aspecto sí que es importante de cara al resultado de la ins-
                               talación. El tercer punto es la configuración del ratón.




                                C.5. Tipo de instalación


                               Llegados a este punto, se nos pregunta por el tipo de sistema de ins-
                               talación que queremos hacer. Probablemente, en la mayoría de los
                               casos la mejor opción es la última que se nos ofrece, es decir, la per-
                               sonalizada, ya que, tal como se nos indica, esto nos permitirá tener el
                               máximo control del proceso de instalación. El resto de opciones son
                               simplificaciones de esta opción y, en consecuencia, se traducen direc-
                               tamente en una pérdida de control acerca de lo que se está haciendo.
ANOTACIONES




                                C.6. Partición del disco duro


                               El sistema de instalación nos propone por defecto la partición del dis-
                               co duro. Alternativamente, se nos ofrece la posibilidad de utilizar
                               Disk Druid para realizar nosotros mismos esta tarea. Es recomen-
                               dable optar por esta última opción, ya que el programa es fácil de
                               utilizar, y además nos permitirá estructurar la partición a la medida
                               de nuestras necesidades. Si ya disponemos de una partición swap,

                         250
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                               ©




aunque sea de otro sistema, no necesitaremos crear una nueva para
esta instalación, puesto que podremos usar la existente, ya que en las
particiones de tipo swap sólo se guarda información de tipo volátil.




 C.7. Gestor de arranque


En este caso, Red Hat Linux nos propone como gestor de arranque
Grub. Si ya disponemos de un gestor de arranque en nuestro equipo,
no es necesario, a no ser que deseemos reemplazarlo, proceder a la
instalación de Grub. Bastará con adecuar la configuración de arran-
que para que nos permita acceder al nuevo sistema operativo.




 C.8. Configuración de dispositivos


El programa de instalación detectará la mayor parte del hardware
que tengamos instalado, y llegados a este punto, se nos muestran las
pantallas pertinentes para su configuración.


Por lo que a la configuración de red se refiere, el programa de ins-
talación nos preguntará por la gestión de la seguridad, basándose
en la configuración de un firewall. Si optamos por utilizarlo, debere-
mos especificar los puertos a los que se deja acceso externo. Es un
tema que deberemos tener siempre presente, ya que el resto de puer-
tos estarán cerrados. Así pues, si configuramos algún servicio que
use un puerto que no hayamos especificado en este apartado, debe-
remos abrirlos manualmente a posteriori.
                                                                                               ANOTACIONES



 C.9. Configuración idiomática


En este apartado sí que es importante que especifiquemos cuál es el
idioma del mapeado del teclado, ya que esto nos permitirá tener ac-
ceso a todos sus caracteres. A continuación, se nos mostrará un
mapa mundi donde deberemos especificar nuestro posicionamiento
geográfico mediante el ratón.

                                                                         251
© FUOC • 71Z799002MO
  ©                        Software libre



                                C.10. Política de passwords

                               En primer lugar se nos pedirá que introduzcamos el password de
                               root, el cual deberá contener como mínimo seis caracteres. Una vez
                               hecho esto, se nos mostrará que tanto el sistema de passwords md5
                               como el de shadow se instalarán, a no ser que especifiquemos lo
                               contrario, y se nos permitirá establecer las configuraciones de los sis-
                               temas NIS, LDAP, Kerberos 5, y Samba (para un sistema stand alone,
                               ninguno de estos sistemas debe ser configurado).




                                C.11. Selección de aplicaciones


                               A continuación, debemos seleccionar las familias de aplicaciones
                               que queremos instalar, y dentro de ellas, qué aplicaciones deseamos
                               que se instalen en nuestro sistema. Una vez más se insta a que no se
                               instalen masivamente aplicaciones, ya que esto va claramente en de-
                               trimento del rendimiento del sistema, sino que sólo se instalen aque-
                               llas que sabemos de forma certera que vamos a utilizar, y que
                               vayamos instalando el resto de aplicaciones a medida que las nece-
                               sitemos. Sí que es recomendable, si se van a usar, dejar las seleccio-
                               nes que están hechas para el sistema gráfico. Una vez terminada la
                               selección, se iniciará la instalación de todo el sistema: formateo de
                               particiones, configuración de dispositivos e instalación de paquetes,
                               a partir de la información que se ha facilitado. Si no disponemos de
                               suficiente espacio en el disco duro para que se instalen todas las apli-
                               caciones, se nos devolverá al entorno de configuración, para que, o
                               bien deseleccionemos algunas de las aplicaciones, o para que asig-
                               nemos más espacio a la partición pertinente (normalmente, la que
                               alberga el directorio /home, que es en la que se instalan la mayoría
                               de datos –para refraccionar el disco, habrá que volver a inicializar el
ANOTACIONES




                               proceso de instalación).




                                C.12. Boot disk


                               Cuando el proceso de transferencia de datos ha terminado, automá-
                               ticamente se arranca el proceso de postinstalación, se instala el boot
                               loader, si es el caso, y una vez han finalizado estos procesos auto-

                         252
Sistema operativo GNU/Linux básico                   © FUOC • 71Z799002MO
                                                                                ©




máticos, se nos pregunta si deseamos crear un boot disk, el cual pue-
de ser usado para arrancar la nueva instalación, si no hemos
instalado el boot loader o no hemos configurado el que ya teníamos
instalado correctamente.




 C.13. Configuración del sistema gráfico


En la mayoría de casos, llegados al apartado de configuración del
sistema gráfico (este apartado se puede omitir y realizar a la confi-
guración manualmente mediante el sistema de nuestra elección), si
es que hemos seleccionado sus paquetes para ser instalados, el sis-
tema de instalación detectará automáticamente el tipo de tarjeta de
vídeo y nos propondrá el driver a utilizar; lo mismo sucederá con el
monitor. Finalmente, deberemos especificar la resolución con la que
queremos trabajar, y la profundidad de color. Asimismo, se nos pe-
dirá que especifiquemos qué tipo de login deseamos utilizar, si el
gráfico, opción por defecto, o bien el de modo texto.




 C.14. Últimos pasos


Aquí termina la instalación del sistema operativo y de todas las apli-
caciones seleccionadas durante el proceso. Basta con “rebootar” el
sistema para que la primera vez que lo arranquemos se nos pregunte
si deseamos utilizar kudsu para proceder a la configuración del
hardware presente.


En primer lugar se nos sugiere la creación de una cuenta de usuario
estándar para evitar el uso de root indiscriminadamente. Tras la con-
                                                                                                ANOTACIONES


figuración de fecha y hora, se nos preguntará si deseamos registrar
nuestro sistema operativo, y a continuación, si lo deseamos, podre-
mos proceder a la instalación de más paquetes. Es el momento de
instalar aquellos paquetes que están dentro de la distribución oficial,
y que deseamos utilizar. Una vez finalizada la instalación de paque-
tes adicionales, tenemos el sistema totalmente operativo y listo para
ser utilizado. Se recomienda la lectura de http://rpm.redhat.com/
RPM-HOWTO/, ya que Red Hat Linux usa su propio sistema de pa-
quetes.

                                                                          253
Manual gnu linux_basico
Sistema operativo GNU/Linux básico                         © FUOC • 71Z799002MO
                                                                                    ©




 D.Herramientas de administración




 D.1. Introducción


Cuando se administra un sistema GNU/Linux es necesario conocer
una gran variedad de aplicaciones y programas diferentes. Aunque
antes de instalar cualquier aplicación es totalmente imprescindible
leerse detenidamente la documentación que incorpora, en algunos
casos las configuraciones pueden llegar a ser realmente complejas.
Por este motivo, desde hace ya varios años han ido apareciendo he-
rramientas de administración más intuitivas que permiten manejar
múltiples aplicaciones y servicios de forma más amena.


Generalmente, estas herramientas globales de administración in-
                                                                            Contenido
corporan mecanismos para poder configurar y manejar los aspec-              complementario
tos básicos del sistema y los ficheros de configuración de las
                                                                             Cuando instalamos alguna
aplicaciones que utilizamos. Si bien es interesante saber que exis-          herramienta general de ad-
ten estas herramientas, no es recomendable que basemos toda la               ministración, es muy im-
                                                                             portante que limitemos su
configuración de un servidor en ellas por varios motivos. En pri-            uso y acceso a sólo el root
mer lugar, debemos tener en cuenta que estos programas no                    del sistema, de lo contrario
                                                                             cualquier usuario podría
siempre tienen en cuenta todas las posibilidades que los servido-
                                                                             modificar cualquier aspecto
res proporcionan. Esto puede provocar que dejemos sin una con-               del sistema. Además, tam-
figuración adecuada alguna opción importante para nuestras                   bién debemos estar muy
                                                                             alerta de los agujeros de se-
necesidades, que no tengamos en cuenta algún sistema de segu-                guridad que pueden apare-
ridad, etc. En segundo lugar, tampoco podemos olvidar que aun-               cer en ellas, ya que al tener
que el entorno de configuración sea más ameno y, generalmente,               que manejar los programas
                                                                             instalados en el sistema, la
más fácil de utilizar y manejar, debemos conocer qué es lo que               mayoría de estas herra-
                                                                                                        ANOTACIONES


realmente se hace cuando activamos las opciones de los diferen-              mientas deben ejecutarse
                                                                             con los permisos de root,
tes programas y servicios que configuramos. Aunque el entorno
                                                                             con el peligro que esto su-
sea muy intuitivo, esto no implica que no debamos saber qué sig-             pone.
nifica exactamente cada opción. Si no tenemos un conocimiento
extenso del servicio que estamos manipulando, es muy fácil gene-
rar errores que pueden provocar un mal funcionamiento del siste-
ma, agujeros de seguridad, etc. Finalmente, otro motivo para no
utilizar únicamente estas aplicaciones es que en algún momento
el sistema puede tener fallos o errores que no nos permitan utili-

                                                                      255
© FUOC • 71Z799002MO
  ©                        Software libre



                               zarlas o sencillamente que en otros sistemas que tengamos que
                               administrar no estén instaladas. Si no conocemos con un poco de
                               detalle los ficheros de configuración de las aplicaciones que utili-
                               zamos, nos encontraremos totalmente indefensos ante cualquier
                               pequeño problema que pueda surgir.


                               Por todo ello, la utilización de estas herramientas debe realizarse con
                               cuidado y sabiendo exactamente qué es lo que están modificando.
                               En algunos casos pueden ser muy útiles para ver cómo realizar algún
                               tipo de configuración complicada o para detectar errores que haya-
                               mos generado. La forma como deberíamos utilizarlas debe servirnos
                               a modo de complemento de nuestra administración, pero nunca ba-
                               sarnos totalmente en ellas.



                               Todas las distribuciones de GNU/Linux acostumbran a incorporar
                               sus propias herramientas automáticas de administración. Esto es
                               una característica claramente diferenciadora de las distintas dis-
                               tribuciones de GNU/Linux. En SuSE, por ejemplo se incorpora una
                               aplicación denominada Yast2, que nos permite realizar casi
                               cualquier operación de configuración del sistema; RedHat incor-
                               pora múltiples programas diferentes para configurar la red, los
                               daemons, los servidores de aplicación, etc.; al instalar un paquete
                               en Debian, ya se permite inicializar una configuración a partir de
                               las respuestas que damos en varias pantallas de diálogo; algunas
                               aplicaciones llevan sus propios scripts para permitir configuracio-
                               nes estándar más rápidas, etc. Aun así, si sabemos qué es lo que
                               realmente hacen estas aplicaciones y en qué ficheros guardan su
                               configuración, al tener problemas con el sistema su arreglo será
                               mucho más fácil. Además de estas herramientas únicas para la
                               distribución que utilicemos, existen otras generales que podemos
                               instalar en la mayoría de distribuciones existentes. Aunque hay
                               unas cuantas decenas y cada administrador debe escoger la que
ANOTACIONES




                               más le guste o se adapte a sus necesidades, en este apéndice
                               mostraremos un par de las más versátiles y populares: linux-
                               conf y webmin.




                         256
Sistema operativo GNU/Linux básico                    © FUOC • 71Z799002MO
                                                                                 ©




 D.2. Linuxconf


La aplicación de administración general Linuxconf está basada
en un entorno de menús de texto que podemos utilizar desde cual-
quier consola del sistema. En la siguiente figura podemos ver el
menú principal:




                                                                                                 ANOTACIONES



Como podemos apreciar en la imagen, linuxconf divide sus ope-
raciones en las siguientes secciones:


• Configuración: ésta es la sección principal de linuxconf, don-
  de podemos configurar la mayoría de aspectos del sistema como
  la red, los usuarios, los periféricos instalados, etc. En las siguien-
  tes figuras podemos ver el diálogo de configuración de la red y
  de usuarios:

                                                                           257
© FUOC • 71Z799002MO
  ©                        Software libre




                               • Control: sección para realizar acciones concretas en el sistema ta-
                                  les como montar o desmontar unidades, cambiar la hora del sis-
                                  tema, personalizar los menús, etc. En la siguiente figura podemos
                                  apreciar algunas de las acciones del menú de panel de control:
ANOTACIONES




                               • Estado: cuando queramos ver los logs o el estado de algún aspec-
                                  to del sistema, podemos recurrir a los menús de esta sección. En
                                  ellos se utilizan muchos de los comandos básicos del sistema para
                                  ver el estado del disco, la memoria usada, etc.


                               • Tareas: otros diálogos de configuración para inicializar correcta-
                                  mente un módem, la red, etc.

                         258
Sistema operativo GNU/Linux básico                  © FUOC • 71Z799002MO
                                                                              ©




Otra forma de utilizar este programa es a partir de un navegador
web. Por defecto, el acceso vía navegador está cerrado, por lo
que antes de utilizarlo deberemos habilitarlo a partir del menú de
Networking, Linuxconf network access y activando la
opción de Enable network access. Abriendo el navegador y
accediendo a http://localhost:98/ tendremos los mismos diálo-
gos y opciones del menú de linuxconf en formato html. Por
defecto, sólo se podrá acceder a este servicio desde la misma má-
quina, aunque es recomendable activarlo solamente cuando lo
queramos utilizar.


Finalmente, otro proyecto relacionado con linuxconf es el
gnome-linuxconf, que tiene las mismas funciones que veíamos
anteriormente pero se puede utilizar en las X. En la siguiente figura
podemos ver su aspecto:




 D.3. Webmin
                                                                                              ANOTACIONES



Tal como su nombre indica, webmin es una herramienta de confi-
guración vía web. Su diseño está muy bien conseguido y la mayoría
de sus métodos de configuración están muy bien pensados. Bien uti-
lizada, es una herramienta que puede llegar a sernos muy útil. Por
defecto, al instalarla abre el puerto 10000 para que podamos acce-
der a ella a partir de un navegador cualquiera. Antes de entrar nos
pedirá la contraseña del administrador del sistema, aunque también
tiene un sistema muy útil de administración de usuarios propios, por

                                                                        259
© FUOC • 71Z799002MO
  ©                        Software libre



                               medio del cual podemos especificar qué acciones puede realizar
                               cada uno de ellos. Esta opción es muy interesante porque permitirá
                               configurar más de un administrador de sistema cada uno especiali-
                               zado en algunas tareas.


                               Para hacernos una idea de la aplicación, a continuación mostramos
                               una serie de capturas de diferentes secciones:



                               • Administración de usuarios del sistema:




                               • Configuración de arranque del sistema:
ANOTACIONES




                         260
Sistema operativo GNU/Linux básico     © FUOC • 71Z799002MO
                                                                 ©




• Información de disco:




• Navegador de archivos:




                                                                                 ANOTACIONES




                                                           261
Manual gnu linux_basico
Manual gnu linux_basico
U
 La universidad
 virtual
Formación de Posgrado

Más contenido relacionado

PDF
2096834 Instalando Debian
PDF
Gasl
PDF
Quelea manual es
PDF
Guía de instalación de Debian GNU/Linux
PDF
Manual de epson
PDF
Manual de Reparacion, Instalación, Montaje y Mantenimiento de PC y Equipos In...
PDF
Manual de referencia
2096834 Instalando Debian
Gasl
Quelea manual es
Guía de instalación de Debian GNU/Linux
Manual de epson
Manual de Reparacion, Instalación, Montaje y Mantenimiento de PC y Equipos In...
Manual de referencia

La actualidad más candente (20)

PDF
Manual epson l355
PDF
GNU/Linux Mandrake 10.1 Guía De Comienzo (Español)
PDF
Team viewer9 manual-remotecontrol-es
PDF
Manual de Exomate y servidores 1
PDF
Gt540g prn 110302_1.1_printout
PDF
Manual proyector epson powerlite s18+
PDF
Sistope2
PDF
Manual de Portatil
PDF
User manual acer 1.0_a_a
PDF
Fedora guia de usuario
PDF
Ofimatica 2
PDF
Windlx
PDF
Samsung nps new_pc_studio_manual_esn
PDF
Windows 8 Guía Práctica
PDF
Fs 1035 mfp-1135mfpspog.2011.12
PDF
Black berry curve_series--1817681-0105045033-005-7.1-es
PDF
Delphi al limite
PDF
Aprendiendo Java
PDF
Teamviewer manual en Español
PDF
Escenarios de Enrutamiento Dinámico Avanzado en Entornos Virtuales mediante T...
Manual epson l355
GNU/Linux Mandrake 10.1 Guía De Comienzo (Español)
Team viewer9 manual-remotecontrol-es
Manual de Exomate y servidores 1
Gt540g prn 110302_1.1_printout
Manual proyector epson powerlite s18+
Sistope2
Manual de Portatil
User manual acer 1.0_a_a
Fedora guia de usuario
Ofimatica 2
Windlx
Samsung nps new_pc_studio_manual_esn
Windows 8 Guía Práctica
Fs 1035 mfp-1135mfpspog.2011.12
Black berry curve_series--1817681-0105045033-005-7.1-es
Delphi al limite
Aprendiendo Java
Teamviewer manual en Español
Escenarios de Enrutamiento Dinámico Avanzado en Entornos Virtuales mediante T...
Publicidad

Destacado (8)

PDF
Curso linux basico-avanzado
PDF
Administracion avanzada de_gnu-linux
PDF
Ubuntu 15.04 pdf
PDF
La biblia de linux
PPTX
Kernel De Windows
PDF
Kernel de Windows PDF
PPTX
Windows 10 (Kernel, Historial y Novedades)
PPTX
Sistemas operativos según el fabricante (microsoft,
Curso linux basico-avanzado
Administracion avanzada de_gnu-linux
Ubuntu 15.04 pdf
La biblia de linux
Kernel De Windows
Kernel de Windows PDF
Windows 10 (Kernel, Historial y Novedades)
Sistemas operativos según el fabricante (microsoft,
Publicidad

Similar a Manual gnu linux_basico (20)

PDF
Administracion avanzada de_gnu-linux
PDF
Su se linux-adminguide-9.2-es
PDF
Administracion Avanzada De Linux
PDF
Formacion Sociedad Globalizadora
PDF
Administracion avanzada de_gnu-linux-uoc
PDF
PDF
001 introduccion al software libre
PDF
clase windows
PDF
Windows 8 clase
PDF
Fundamentos de Sistemas Operativos con Énfasis en GNU/Linux
PDF
Proyecto desarrollo
PDF
Guia paso a paso exo
PDF
Introduccion a mbox 2
PDF
Introduccion a Joomla
PDF
aula-con-tcos
PDF
Admin gnu linux_uoc
PDF
PDF
Sistemas operativos-david-luis
PDF
El lenguaje de programación c++
PDF
Fundamentos de Programación con Lenguaje de Programación C++
Administracion avanzada de_gnu-linux
Su se linux-adminguide-9.2-es
Administracion Avanzada De Linux
Formacion Sociedad Globalizadora
Administracion avanzada de_gnu-linux-uoc
001 introduccion al software libre
clase windows
Windows 8 clase
Fundamentos de Sistemas Operativos con Énfasis en GNU/Linux
Proyecto desarrollo
Guia paso a paso exo
Introduccion a mbox 2
Introduccion a Joomla
aula-con-tcos
Admin gnu linux_uoc
Sistemas operativos-david-luis
El lenguaje de programación c++
Fundamentos de Programación con Lenguaje de Programación C++

Último (20)

PDF
Breve historia de los Incas -- Patricia Temoche [Temoche, Patricia] -- Breve ...
PDF
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
DOCX
2 GRADO UNIDAD 5 - 2025.docx para primaria
PDF
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
DOCX
V UNIDAD - PRIMER GRADO. del mes de agosto
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PDF
Escuelas Desarmando una mirada subjetiva a la educación
PDF
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
PDF
biología es un libro sobre casi todo el tema de biología
PDF
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
PDF
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PDF
Híper Mega Repaso Histológico Bloque 3.pdf
PDF
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
PPTX
caso clínico iam clinica y semiología l3.pptx
PPT
Cosacos y hombres del Este en el Heer.ppt
PDF
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
PDF
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
PDF
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
Breve historia de los Incas -- Patricia Temoche [Temoche, Patricia] -- Breve ...
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
2 GRADO UNIDAD 5 - 2025.docx para primaria
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
V UNIDAD - PRIMER GRADO. del mes de agosto
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
Escuelas Desarmando una mirada subjetiva a la educación
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
biología es un libro sobre casi todo el tema de biología
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
Híper Mega Repaso Histológico Bloque 3.pdf
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
caso clínico iam clinica y semiología l3.pptx
Cosacos y hombres del Este en el Heer.ppt
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf

Manual gnu linux_basico

  • 1. Software libre Roger Baig Viñas Francesc Aulí Llinàs 71Z799002MO Sistema operativo GNU/Linux básico U Formación de Posgrado
  • 2. David Megías Jiménez Jordi Mas Coordinador Coordinador Ingeniero en Informática por la UAB. Coordinador general de Softcatalà y Magíster en Técnicas Avanzadas de desarrollador del procesador de textos Automatización de Procesos por la libre Abiword. UAB. Miembro fundador de Softcatalà Doctor en Informática por la UAB. y de la red telemática RedBBS. Profesor de los Estudios de Informática En calidad de consultor, ha trabajado y Multimedia de la UOC. en empresas como Menta, Telépolis, Vodafone, Lotus, eresMas, Amena y Terra España. Roger Baig i Viñas Francesc Aulí Llinàs Autor Autor Ingeniero Técnico Superior Industrial Ing. Informática (UAB) - Premio (UPC) e Ingeniero en Electrónica y extraordinario. Concesión beca FPI Automática Industrial (UPC). Profesor (Generalitat de Catalunya) asociado Departamento de Telecomunicaciones e ingeniería de sistemas (UAB) Primera edición: noviembre 2003 © Fundació per a la Universitat Oberta de Catalunya Av. Tibidabo, 39-43, 08035 Barcelona Material realizado por Eureca Media, SL © Autores: Roger Baig i Viñas y Francesc Aulí Llinàs Depósito legal: B-38.683-2003 ISBN: 84-9788-028-3 Se garantiza permiso para copiar, distribuir y modificar este documento según los términos de la GNU Free Documentation License, Version 1.2 o cualquiera posterior publicada por la Free Software Foundation , sin secciones invariantes ni textos de cubierta delantera o trasera. Se dispone de una copia de la licencia en el apéndice A, junto con una tradición no oficial en el Apéndice B. Puede encontrarse una versión de la última versión de este documento en http://curso-sobre.berlios.de/introsobre.
  • 3. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Índice Introducción ................................................................... 9 1. Presentación .............................................................. 11 1.1. ¿Qué es el GNU? ................................................. 11 1.2. ¿Qué es el GNU/Linux? ........................................ 14 1.3. Distribuciones ....................................................... 16 1.4. Programas y documentación ................................. 18 2. Conceptos y comandos básicos ................................ 23 2.1. Introducción ......................................................... 23 2.2. Usuarios y grupos ................................................. 24 2.3. El sistema de ficheros ............................................ 30 2.3.1. La jerarquía del sistema de ficheros .............. 30 2.3.2. Directorios del sistema ................................. 32 2.3.3. Moviéndonos .............................................. 33 2.3.4. Enlaces ....................................................... 34 2.3.5. Permisos ..................................................... 35 2.3.6. Manipulación, patrones y búsquedas ............ 38 2.3.7. Tipos y contenido de ficheros ....................... 40 2.4. Los procesos ......................................................... 41 2.5. Otros comandos útiles .......................................... 45 2.5.1. La ayuda del sistema ................................... 45 2.5.2. Empaquetado y compresión ......................... 46 2.5.3. Operaciones de disco .................................. 48 2.6. Operaciones con comandos .................................. 50 2.6.1. Redireccionamientos .................................... 50 2.6.2. Comandos específicos del bash ................... 52 ANOTACIONES 2.6.3. Shell scripts con bash .................................. 54 3. Taller de Knoppix ...................................................... 57 3.1. Introducción ......................................................... 57 3.2. Arranque del sistema ............................................ 58 3.3. Paro del sistema ................................................... 60 3.4. Configuración del teclado ..................................... 60 3.5. Inspección del sistema ........................................... 62 3
  • 4. © FUOC • 71Z799002MO © Software libre 3.6. Manejo de directorios y ficheros ............................. 66 3.7. Administración de usuarios .................................... 72 3.8. Gestión de procesos .............................................. 76 3.9. Activación y uso del ratón ...................................... 78 3.10. Otras operaciones .............................................. 80 3.11. Conclusión ......................................................... 82 4. Instalación de GNU/Linux ......................................... 83 4.1. Introducción .......................................................... 83 4.2. Arrancando ........................................................... 83 4.3. Fraccionando el disco ............................................ 84 4.4. Instalación de módulos .......................................... 87 4.5. Configuración básica de la red .............................. 88 4.6. Sistema de arranque ............................................. 89 4.7. Elección de paquetes ............................................. 90 4.8. Otros aspectos ...................................................... 90 5. Taller de instalación de Debian Woody .................... 93 5.1. Introducción .......................................................... 93 5.1.1. Sistemas de instalación ................................ 94 5.1.2. Tipos de paquetes ........................................ 96 5.1.3. Estado de desarrollo de los paquetes ............ 96 5.2. Instalación de Debian Woody ................................ 97 5.2.1. Flavours de Debian Woody ........................... 98 5.2.2. CD-ROM de Debian Woody y sus distintos flavours .................................. 98 5.2.3. Installing Debian GNU/Linux 3.0 For Intel x86 ................................................ 99 5.3. Instalación de Debian Woody mediante CD-ROM ... 99 5.3.1. Antes de empezar la instalación ................... 100 5.3.2. Arranque del sistema de instalación .............. 101 5.3.3. Configuración del idioma de instalación ....... 103 5.3.4. Menú principal de instalación ....................... 103 5.3.5. Configuración del teclado ............................ 104 ANOTACIONES 5.3.6. Partición del disco duro ................................ 104 5.3.7. Inicialización y activación de la partición swap .................................... 107 5.3.8. Inicialización y activación de una partición Linux .................................. 107 5.3.9. Inicialización y activación de otras particiones Linux ............................. 108 5.3.10. Instalación del kernel ................................. 108 5.3.11. Configuración de módulos ......................... 109 5.3.12. Configuración del hostname ....................... 109 4
  • 5. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © 5.3.13.Instalación del sistema base ....................... 109 5.3.14.Creación de un disco de arranque .............. 110 5.3.15.Instalación de Lilo ...................................... 110 5.3.16.Reinicialización del sistema ........................ 111 5.3.17.Arranque del sistema base ......................... 111 5.3.18.Configuración horaria ............................... 111 5.3.19.Configuración geográfica .......................... 112 5.3.20.Establecimiento de la política de passwords ............................................ 112 5.3.21.Últimas configuraciones ............................. 113 5.3.22.Configuración de apt ................................. 114 5.3.23.tasksel y dselect ......................................... 114 5.4. Instalación de Debian Woody por red .................... 116 5.4.1. Particularidades de una instalación por red ....................................................... 116 5.4.2. Aspectos comunes de los distintos métodos de instalación ................................ 116 5.4.3. Instalación del módulo de red ...................... 117 5.4.4. Configuración de la red ............................... 119 5.4.5. Configuración de apt .................................. 119 5.5. Conclusión ........................................................... 120 6. Configuraciones básicas ........................................... 121 6.1. El sistema de login ................................................ 121 6.2. Explorando el bash ............................................... 122 6.3. El sistema de arranque .......................................... 124 6.3.1. Lilo ............................................................. 126 6.3.2. Grub .......................................................... 130 6.4. Acceso a otras particiones y dispositivos ................. 132 6.5. Configuración de dispositivos ................................ 136 6.5.1. El teclado .................................................... 136 6.5.2. Tarjeta de red (tipo Ethernet) ........................ 138 6.5.3. Tarjeta WiFi ................................................ 140 6.5.4. Módems ..................................................... 141 6.5.5. Tarjeta de sonido ........................................ 143 ANOTACIONES 6.5.6. Impresora ................................................... 143 7. Daemons y runlevels ................................................. 145 7.1. Los daemons ........................................................ 145 7.2. Los runlevels ......................................................... 148 7.3. El arranque del sistema ......................................... 152 7.4. Daemons básicos .................................................. 152 7.4.1. Logs de sistema (sysklogd) ........................... 153 5
  • 6. © FUOC • 71Z799002MO © Software libre 7.4.2. Ejecuciones periódicas (cron) ........................ 155 7.4.3. Ejecuciones retardadas (at y batch) ............... 157 8. Instalación de aplicaciones ....................................... 159 8.1. Introducción .......................................................... 159 8.2. El sistema de paquetes Debian ............................... 160 8.3. Compilación de nuevos programas ........................ 164 9. Taller de configuraciones básicas ............................. 169 9.1. Introducción .......................................................... 169 9.2. El gestor de arranque ............................................ 169 9.2.1. Instalación de Lilo ........................................ 170 9.2.2. Instalación de Grub ..................................... 171 9.3. El sistema de paquetes .......................................... 174 9.3.1. /etc/apt/sources.list ........................ 175 9.3.2. apt .............................................................. 177 9.3.3. dpkg .......................................................... 182 9.3.4. dselect .................................................... 183 9.3.5. aptitude .................................................. 183 9.4. locales: configuración regional .............................. 183 9.5. Configuración de man y su pager .......................... 184 9.6. El archivo principal de arranque, /etc/inittab .. 185 9.7. Montaje de dispositivos, /etc/fstab ................... 186 9.8. Configuración de dispositivos ................................ 188 9.8.1. Configuración del ratón ............................... 189 9.8.2. Configuración de módems ........................... 191 9.8.3. Configuración de módems DSL .................... 194 9.8.4. Configuración de tarjetas de red .................. 194 9.8.5. Configuración de impresoras ....................... 197 9.8.6. Configuración de tarjetas de sonido ............. 199 9.9. Conclusión ............................................................ 199 10. Arquitectura X-Window .......................................... 201 10.1. ¿Qué es X-Window? ......................................... 201 ANOTACIONES 10.2. Configuración .................................................. 206 10.3. X display manager ............................................ 210 11. Taller de X-windows ............................................... 215 11.1. Introducción ..................................................... 215 11.2. Instalación del sistema básico ........................... 216 11.2.1.Distintas estrategias para la instalación de los paquetes ............................................ 216 6
  • 7. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © 11.2.2. Instalación de paquetes básicos ............ 217 11.2.3. Inicialización del servidor ..................... 220 11.2.4. El fichero de log ................................... 222 11.2.5. El servidor de fuentes ........................... 222 11.3. Window managers ........................................... 223 11.4. X Session manager ........................................... 225 11.5. X Display manager ........................................... 226 11.6. Desktop managers ........................................... 227 11.6.1. GNOME .............................................. 228 11.6.2. KDE ..................................................... 230 11.7. Personalización de aspectos locales .................. 231 11.7.1. Personalización de algunos aspectos ..... 231 11.7.2. Personalización de aspectos de red ....... 233 11.8. Configuración de impresoras ........................... 235 11.9. OpenOffice ..................................................... 235 11.10. Conclusión .................................................... 237 A. Tablas de comandos ................................................. 239 A.1. Sistema de ficheros ............................................... 239 A.2. Ayuda del sistema ................................................. 239 A.3. Permisos de los ficheros ........................................ 240 A.4. Copia y borrado de ficheros .................................. 240 A.5. Parada o reinicio .................................................. 240 A.6. Operaciones con ficheros ...................................... 241 A.7. Compresión de ficheros y copias de seguridad ....... 242 A.8. Operaciones de disco ........................................... 242 A.9. Usuarios y grupos ................................................. 243 A.10. Gestión de procesos ........................................... 243 B. El editor vi ................................................................. 245 B.1. Introducción ......................................................... 245 B.2. Modos del vi ......................................................... 245 ANOTACIONES C. Proceso de instalación de Red Hat Linux 9.0 ............ 249 C.1.Introducción ......................................................... 249 C.2.Inicio de la instalación ........................................... 249 C.3.RHinicioinst ........................................................... 249 C.4.Primeros aspectos ................................................. 250 C.5.Tipo de instalación ................................................ 250 C.6.Partición del disco duro ......................................... 250 C.7.Gestor de arranque .............................................. 251 C.8.Configuración de dispositivos ................................ 251 C.9.Configuración idiomática ...................................... 251 7
  • 8. © FUOC • 71Z799002MO © Software libre C.10. Política de passwords .......................................... 252 C.11. Selección de aplicaciones .................................... 252 C.12. Boot disk ............................................................ 252 C.13. Configuración del sistema gráfico ........................ 253 C.14. Últimos pasos ..................................................... 253 D. Herramientas de administración ............................... 255 D.1.Introducción .......................................................... 255 D.2.Linuxconf .............................................................. 257 D.3.Webmin ................................................................ 259 ANOTACIONES 8
  • 9. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Introducción Aunque ya hace más de veinte años que el software libre existe, hasta los últimos tiempos no se ha perfilado como una alternativa válida para muchos usuarios, empresas y, cada vez más, instituciones y go- biernos. Actualmente, GNU/Linux es uno de los sistemas operativos más fiables y eficientes que podemos encontrar. Aunque su natura- leza de software libre creó inicialmente ciertas reticencias por parte de usuarios y empresas, GNU/Linux ha demostrado estar a la altura de cualquier otro sistema operativo existente. El objetivo de este curso es iniciarnos en el mundo del GNU/Linux. En él obtendremos las claves para entender la filosofía del código li- bre, aprenderemos cómo usarlo y manipularlo a nuestro gusto y dis- pondremos de las herramientas necesarias para poder movernos fácilmente en este nuevo mundo. El documento tampoco pretende ser un manual de referencia imprescindible para administradores y/ o usuarios; para ello ya existen centenares de manuales, HOWTOS y multitud de otras referencias que nos ocuparían millares de pági- nas. Aquí pretendemos aprender a dar los primeros pasos en esta tierra poco explorada aún para demasiados usuarios y administra- dores, a la vez que enseñaremos cómo plantear y resolver por noso- tros mismos los problemas que puedan aparecer. El curso no pretende basarse en ninguna distribución en particular, pero en la mayoría de ejemplos y actividades es necesario concretar específicamente algunas acciones y se utilizará Debian GNU/Linux ANOTACIONES (versión 3.0 -Woody-). Aunque no es una distribución tan intuitiva y fácil de utilizar como algunas otras, nos servirá para explicar paso a paso todas las características de un sistema operativo basado en GNU/Linux. Además, su extraordinaria calidad, estabilidad y seguri- dad la hacen una de las opciones actualmente más válidas. Por otra parte, tampoco debemos olvidar el soporte (Debian está desarrolla- da por voluntarios y no da ninguna clase de soporte) que se da en otras distribuciones y que en el caso de muchas empresas es impres- cindible. Por esta razón, hemos incluido un apéndice donde mostra- 9
  • 10. © FUOC • 71Z799002MO © Software libre mos el proceso de instalación y las principales características de RedHat Linux (versión 9.0). Esperamos que el curso sea de su agrado y sirva para abrirle las puertas al mundo del software libre. Cuantos más usuarios seamos, más software y de mejor calidad tendremos. ¡Bienvenidos al GNU/Linux! ANOTACIONES 10
  • 11. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © 1. Presentación 1.1. ¿Qué es el GNU? Para entender todo el movimiento del software libre, debemos situar- nos a finales de la década de los sesenta, principios de los setenta. En aquellos tiempos las grandes compañías de ordenadores no da- ban el valor que hoy día se da al software. En su gran mayoría eran fabricantes de ordenadores que obtenían sus principales ingresos vendiendo sus grandes máquinas, a las que incorporaban algún tipo de sistema operativo y aplicaciones. Las universidades tenían permi- so para coger y estudiar el código fuente del sistema operativo para fines docentes. Los mismos usuarios podían pedir el código fuente de drivers y programas para adaptarlos a sus necesidades. Se conside- raba que el software no tenía valor por sí mismo si no estaba acom- pañado por el hardware que lo soportaba. En este entorno, los laboratorios Bell (AT&T) diseñaron un sistema operativo llamado UNIX, caracterizado por la buena gestión de los recursos del siste- ma, su estabilidad y su compatibilidad con el hardware de diferentes fabricantes (para homogeneizar todos sus sistemas). Este último he- cho fue importantísimo (hasta entonces todos los fabricantes tenían sus propios operativos incompatibles con los otros), ya que devino el factor que le proporcionó mucha popularidad. Poco a poco, las grandes empresas empezaron a tomar conciencia Nota del valor del software: primero fue IBM la que en 1965 dejó de dar El mismo Stallman cuenta el código fuente de su sistema operativo, a finales de los setenta Di- como anécdota lo mucho que se enfadó al descubrir ANOTACIONES gital Research empezó a vender el suyo, etc. Este hecho hizo que to- que la compañía que les das las compañías se dieran cuenta de que el software podía ser muy había vendido una nueva impresora para el laborato- rentable y les podía aportar grandes beneficios. A partir de este he- rio donde trabajaba no le cho, la mayoría de empresas empezaron a poner reticencias a dejar quería facilitar el código fuente de los drivers. ¡Él sólo el código fuente de sus programas y sistemas operativos y empeza- quería modificarlos para ron a vender sus programas como un valor añadido a su hardware. que le avisara automática- En este entorno cada vez más cerrado, Richard Stallman (que traba- mente cuando se atascaba el papel! La compañía se jaba en el MIT, Massachusetts Institute of Technology) se sintió indig- negó a proporcionárselos. nado al comprobar que cada vez era más difícil conseguir el código 11
  • 12. © FUOC • 71Z799002MO © Software libre fuente de los programas que utilizaba para adaptarlos a sus necesi- dades, tal como había hecho hasta entonces. A partir de ese momento, Stallman decidió ser consecuente con sus Contenido ideales e iniciar un gran proyecto para intentar abrir otra vez el código complementario fuente de los programas. Consciente de que no podría conseguir que El nombre que le dio al pro- yecto significa GNU, Not las compañías cedieran en este punto, se propuso crear su propio siste- UNIX, añadiéndose a la mo- ma operativo y aplicaciones iniciando un proyecto llamado GNU. da de los nombres/bromas recursivas de aquel tiempo. De especial interés para entender los motivos que llevaron a Stall- man a iniciar GNU es su primer manifiesto, el documento donde ex- plicó a toda la comunidad en qué consistiría el proyecto, cómo lo orientaría y por qué tenía que hacerlo. En él empezó a describir el concepto de software libre y para qué creía necesario que programa- dores y desarrolladores de alrededor del mundo contribuyeran con él. Aunque en muchas ocasiones se confunde el concepto de soft- ware libre con el de software gratuito (en inglés, free tiene los dos sig- nificados), en posteriores documentos se ha dejado muy claro que el software libre no debe por qué ser gratuito. Debemos entender como software libre programas de los cuales podemos conseguir su código fuente, estudiarlo, modificarlo y redistribuirlo sin que nos obliguen a pagar por ello. Lo que debemos tener claro es que sí que podemos pedir el dinero que queramos por los programas y su código fuente, el soporte que podemos ofrecer a los usuarios, los libros que venda- mos o el material que proporcionemos, tal y como muchas compa- ñías que distribuyen GNU/Linux hacen. Sin embargo, en ningún momento, podemos obligar a que los usuarios no distribuyan el soft- ware que les hemos vendido. Éste debe poder ser distribuido de for- ma libre. Es una forma diferente de entender el software a la que estamos acostumbrados. En muchos de los textos de la FSF (Free Software Foundation) se habla más de filosofía que de ingeniería. ANOTACIONES Debemos entender todo este movimiento más como una forma de pensar o hacer las cosas que como una compañía más de software. La filosofía que en la FSF se tiene del software lo define con las si- guientes cuatro libertades: • La libertad 0 se refiere a la libertad de poder usar el programa para cualquier propósito. 12
  • 13. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © • La libertad 1 es la que permite estudiar cómo funciona el pro- grama y adaptarlo a las propias necesidades. El acceso al códi- go fuente es una condición necesaria para garantizar esta libertad. • La segunda libertad es la que permite distribuir libremente copias del software, ayudando al vecino. • La última libertad es la que permite mejorar el programa y hacer públicas las propias mejoras, en beneficio de toda la comunidad. El acceso al código fuente, asimismo, es un requisito imprescindi- ble para asegurar esta libertad. Para dar todas estas libertades al software que se desarrollaba en el proyecto y a los usuarios finales del mismo se escribió la licencia, con la cual se ha protegido todo este tipo de programas, la GPL (General Public License). Esta licencia pone por escrito las ideas anteriormente comentadas. El proyecto empezó a producir software a partir de 1984, co- Contenido menzando con el desarrollo de todas la herramientas necesarias complementario para poder implementar un sistema operativo completo. Aunque Como su nombre indica, el realizar un proyecto de estas características es un proceso largo núcleo (kernel) de un siste- y complejo, desde el principio muchos programadores y desarro- ma operativo es el corazón con el cual puede funcionar. lladores de software se vieron cautivados por la idea de Stallman y Es el núcleo de software que empezaron a colaborar con él de forma gratuita. La comunidad gestiona los recursos del or- denador: se comunica con no paró de crecer, y poco a poco empezaron a disponer de las los dispositivos y aplicacio- herramientas necesarias (editores, compiladores, etc.) para imple- nes instalados, administra la memoria adecuadamen- mentar el núcleo del sistema operativo, que era la tarea que re- te, reparte tiempo de proce- quería las herramientas que se estaban desarrollando. Desde el samiento para todos los programas, se comunica ANOTACIONES primer momento se quiso crear un sistema operativo parecido a con los dispositivos de al- UNIX y siguiendo las normas POSIX (Portable Operating System macenamiento para guar- Interface). Si bien UNIX también tenía sus problemas y caren- dar los archivos, etc. cias, era, y sigue siendo, suficientemente bueno como para adaptarse a la mayoría de las necesidades. La tarea de diseñar y escribir el núcleo del sistema operativo fue la que se dejó para el final del proceso. Aún actualmente está por finalizar definiti- vamente y el núcleo del GNU, llamado Hurd, permanece en fase de desarrollo. 13
  • 14. © FUOC • 71Z799002MO © Software libre Actividades 1. Leer el primer mensaje escrito por Stallman en 1983 anunciando su proyecto (traducido al castellano): http://www.fsf.org/gnu/initial-announcement.es.html 2. Leer “El Manifiesto GNU” original de Stallman (traducido al castellano): http://www.fsf.org/gnu/ manifesto.es.html 3. Leer la “General Public License”: http://www.fsf.org/ licenses/gpl.html 1.2. ¿Qué es el GNU/Linux? En este contexto, y cuando la FSF todavía no tenía ningún núcleo estable para su sistema operativo, un profesor de la Universidad de Holanda, Andrew Tanenbaum, decidió escribir un sistema operativo para que sus estudiantes pudieran estudiarlo. Igual que Stallman, hasta el momento había podido utilizar el código fuente del UNIX de AT&T para que sus alumnos aprendieran a diseñar sistemas operativos. Su idea era escribir un sistema operativo que pudiera ser estudiado y modificado por cualquiera que quisiera. En 1987 se puso manos a la obra y llamó a su proyecto mini Contenido UNIX, dando lugar a MINIX. Al no utilizar ni una sola línea de có- complementario digo del UNIX de AT&T, no hay ninguna restricción en coger el có- La tecnología micro-kernel se basa en dividir las dife- digo, utilizarlo y modificarlo libremente. rentes funcionalidades del núcleo de un sistema opera- tivo en programas total- Tanenbaum quiso crear un sistema orientado a fines docentes, mente separados y que se por lo que lo diseñó utilizando una arquitectura micro-kernel, ANOTACIONES comunican entre sí. Esto lo hace muy modular, facili- ideal para una fácil comprensión y aportando una tecnología tando muchísimo el test, de- muy novedosa para la época que le permitía versatilidad, multi- tección y corrección de errores, mantenimiento, etc. plataforma, etc. Éste ha sido uno de los puntos fuertes y débiles Actualmente, algunos siste- a la vez del MINIX: aunque el sistema es una pequeña joya para mas operativos como su estudio y diseño, es muy probable que nunca se pueda utilizar Amoeba, Chorus, Mach o WindowsNTTM han incorpo- en entornos reales. Se optó por hacerlo entendedor, modular y rado este tipo de tecnolo- muy pedagógico, pero no rápido. De todas formas, Tanenbaum gía. tampoco pretendía eso; a lo largo de los años MINIX ha ido evo- 14
  • 15. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © lucionando y realmente hoy en día todavía sigue existiendo y siendo estudiado por muchos alumnos de universidades de todo el mundo. Aquí es cuando entra en juego Linux. Mientras la FSF seguía con su gran proyecto proporcionando herramientas para la construc- ción de un sistema operativo, Tanenbaum orientaba MINIX para fines docentes y muchas empresas seguían haciendo evolucionar sus propias versiones de UNIX. Linus Torvalds, estudiante de la Universidad de Helsinki, decide crear en agosto de 1991 su pro- pio núcleo para un nuevo sistema operativo, Linux. Su idea era crear un UNIX para PC para que todos los que quisieran lo pudie- ran utilizar en su ordenador. La primera aparición en escena que hizo fue en un debate sobre MINIX y sistemas operativos, donde expuso las siguientes ideas: Newsgroups: comp.os.minix Asunto: What would you like to see most in minix? Fecha: 25 Aug. 91 20:57:08 GMT Organization: University of Helsinki Hello everybody out there using minix. I’m doing a (free) operating system (just a ho- bby, won’t be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I’d like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical la- yout of the file-system (due to practical rea- Contenido complementario sons) among other things). I’ve currently ported bash(1.08) and gcc(1.40), Linux, el núcleo de GNU/Li- nux, es de tipo monolítico. and things seem to work. Esto indica que no se sepa- This implies that I’ll get something practical ran sus diferentes funcionali- ANOTACIONES dades en distintos módulos, within a few months, and I’d like to know what sino que todo forma parte features most people would want. Any suggestions de un mismo programa. El are welcome, but I won’t promise I’ll implement principal inconveniente de este tipo de diseño es que them :-) la localización de errores y su mantenimiento son muy costosos. En contrapartida, Si accediéramos al fórum de debate donde apareció este primer el rendimiento que se con- mensaje, veríamos cómo rápidamente gente de todo el mundo em- sigue es mucho mayor que en otros tipos de diseño. pezó a interesarse por este nuevo sistema, que al utilizar el compi- 15
  • 16. © FUOC • 71Z799002MO © Software libre lador e intérprete de comandos de GNU (gcc y bash) como piezas fundamentales, también tenía las características de software libre. Aunque en palabras del mismo Torvalds, si él hubiera sabido la cantidad de trabajo necesario para lograr que su idea funcionase, nunca lo hubiera hecho: esfuerzos de muchos expertos en informá- tica de todo el mundo hicieron posible este proyecto. De hecho, en los primeros años de su existencia, GNU/Linux se iden- tificaba como el sistema operativo de los hackers. Su difícil instala- ción, manipulación y falta de drivers lo hacían una herramienta apta únicamente para gente muy entendida en el tema. Fueron estos pri- meros usuarios los que diseñaron los drivers para los discos, impre- soras, tarjetas, etc. y los que empezaron a dar a conocer al mundo este sistema. Poco a poco, el número de usuarios empezó a crecer y actualmente ya existen muchas empresas y grupos de usuarios que crean sus propias distribuciones de GNU/Linux. 1.3. Distribuciones Actualmente, existen muchas distribuciones diferentes basadas en GNU/Linux. Las hay para toda clase de ordenadores y dispositivos electrónicos: ordenadores portátiles o de sobremesa, pocketPC o PDA, puntos de acceso de redes wireless, etc. La naturaleza del soft- ware libre permite esto: cualquiera puede coger el código desarro- llado hasta el momento y adaptarlo a sus propias necesidades. Es un hecho que, cada vez más, empresas y usuarios eligen sistemas ba- sados en GNU/Linux por sus elevadas prestaciones y la cantidad de software disponible. Contenido complementario De todos modos, aunque existen decenas de distribuciones, hay al- ANOTACIONES Aunque muchas distribucio- nes de GNU/Linux se deno- gunas más populares que se han extendido mucho. La filosofía de minan solamente Linux, es software libre hace que muchas empresas que han creado sus pro- importante que diferencie- pias distribuciones de GNU/Linux no restrinjan el acceso a su código. mos que realmente Linux es el núcleo del sistema opera- Aun así, el soporte que ofrecen y el material que venden les aporta tivo y que el proyecto GNU beneficios, permitiendo su subsistencia. Asimismo cabe considerar es el que realmente ha aportado mucha de la es- que en muchas de estas distribuciones se incluye software propietario tructura para el funciona- que algunos usuarios prefieren, si bien en muchos casos existen pro- miento del mismo. gramas homólogos con licencia Free Software. 16
  • 17. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © A continuación haremos una breve descripción de algunas de las dis- tribuciones de GNU/Linux: • Slackware: una de las primeras distribuciones que aparecieron. Fue creada por Patrick Volkerding y tuvo un gran éxito en sus pri- meros años de existencia. • Debian GNU/Linux: una de las primeras distribuciones de GNU/ Linux que aparecieron y aún siguen existiendo y evolucionado. El sistema de paquetes nos permite diferenciar claramente el soft- ware libre del que no lo es, permitiéndonos disponer de todo el sistema solamente con programas de licencia Free Software. Está desarrollada por un grupo de colaboradores distribuidos por todo el mundo y no cuenta con el respaldo de ninguna empresa. Aun- que es de las más estables y seguras que existen, su sistema de instalación y configuración necesita de conocimientos previos. • RedHat Linux: junto con SuSE, es una de las distribuciones de ma- yor popularidad. Está creada por una empresa de EUA, aportan- do software de gran calidad. Tiene un entorno muy intuitivo que facilita mucho su instalación y configuración. ANOTACIONES • SuSE Linux: aunque es una distribución creada bastante reciente- mente, ha tenido una gran difusión. Está desarrollada por una 17
  • 18. © FUOC • 71Z799002MO © Software libre empresa alemana, aportando mucho software propietario de ca- lidad. Es muy completa y fácil de instalar y mantener, aunque en algunos aspectos no se siguen algunos de los estándares de la co- munidad. • Knoppix: distribución en un CD-live basada en Debian. Detecta automáticamente todo tipo de hardware y aporta el último escri- torio de KDE y la suite OpenOffice.org. Muy útil para demostra- ciones y usuarios noveles en el sistema. Tampoco podemos olvidar que existen otros sistemas operativos com- patibles con UNIX y los estándares que se siguen actualmente. Muchos de los conceptos y herramientas que veremos a lo largo del curso tam- bién servirán para estos otros. En especial debemos destacar GNU/ Hurd (núcleo desarrollado por el proyecto GNU) y FreeBSD. Actividad 4. Leer la descripción de algunas de las distribucio- nes actuales basadas en GNU/Linux: http://www.linuxhq.com/dist.html ANOTACIONES 1.4. Programas y documentación Internet ha sido siempre el principal medio de comunicación entre los desarrolladores y usuarios del software libre. Es por esta razón por lo que ya desde el principio de la gran expansión de GNU/Linux se ha podido encontrar en la Red muchísima información sobre el operativo. La mayoría de los programas los podemos descargar de Internet, em- 18
  • 19. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © paquetados con alguno de los sistemas más comunes o bien directa- mente a partir de su código fuente para que lo podamos compilar en nuestro sistema. Además, la mayoría de las distribuciones también se pueden descargar de la Red sin necesidad de comprar ningún pack especial de las revistas especializadas o de las mismas empresas que lo producen. También es cierto que si queremos el soporte que ofrecen algunas de las distribuciones, lo mejor es comprar todo el material que se proporciona (CD, manuales, etc.) y registrarse. A medida que nos vayamos introduciendo en el mundo del software libre y del GNU/Linux, veremos cómo uno de los aspectos clave para moverse por él es saber encontrar la documentación que nos interesa. Cuando nos encontramos ante un problema, antes de empezar a dar vueltas sobre cómo resolverlo, debemos pensar que es muy probable que otra gente como nosotros se haya encontrado con lo mismo o con algo similar. Buscar y encontrar la documentación que se adapte me- jor a los problemas que se nos vayan planteando nos ahorrará mucho tiempo y esfuerzo. La comunidad del software libre genera centenares de documentos que podemos descargarnos libremente de Internet, además de los foros de discusión, páginas de rumores y noticias, etc. Algunas de las referencias más populares y que más nos pueden ayudar son: • Documentación http://www.tldp.org: The Linux Documentation Project. La mayoría de guías, HOWTOS, FAQS, etc. existentes las podemos encontrar en este sitio, que además está en varios idiomas. http://lucas.linux.org.mx: LinUx en CAStellano. Gran proyecto de docu- mentación en castellano para los HOWTOS, guías, etc. de GNU/Linux. ANOTACIONES http://www.linuxpowered.com/HOWTO/HOWTO-INDEX: El HOWTO de los HOWTOS. http://www.linux.com: Página con diferentes secciones de noticias, documentación, etc. http://www.debian.org/doc: Documentación para Debian GNU/Linux. 19
  • 20. © FUOC • 71Z799002MO © Software libre • Noticias http://slashdot.com: Noticias y rumores del mundo GNU/Linux. En inglés. http://barrapunto.com: La réplica de slashdot en castellano. http://puntbarra.com: La réplica de slashdot en catalán. http://bulmalug.net: Bisoños usuarios de Linux de Mallorca y alrede- dores. Noticias y secciones dedicadas a temas concretos. http://www.es.gnu.org/gnuticias: Noticias de GNU en español. http://linuxtoday.com: Otra página de noticias muy práctica para es- tar a la última. http://libertonia.escomposlinux.org: Página de noticias. De especial interés es su sección de “Fuentes de Noticias”, donde hay multitud de otros enlaces a otras páginas del mismo estilo. • Foros http://www.foroslinux.org: Varios foros de GNU/Linux dedicados a todo tipo de temas. http://www.linuxsecurity.com/resources/forums-1.html: Foros cen- trados en temas de seguridad y similares. ANOTACIONES • Búsqueda http://www.google.com/linux: El mayor buscador del mundo tam- bién para GNU/Linux. http://www.buscadoc.org: Buscador de documentación informática en castellano. 20
  • 21. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © • Distribuciones http://www.fsf.org: La página oficial de la Free Software Foundation. http://www.debian.org: Página oficial de debian GNU/Linux. http://www.redhat.com: Página oficial de RedHat Linux. http://www.suse.com: Página oficial de SuSE. http://www.slackware.com: Página oficial de Slackware Linux. http://www.knoppix.com: Página oficial de Knoppix. • Descargas http://sourceforge.net: La mayor página con proyectos de software libre. http://www.softonic.com/index.phtml?n id=4: Sección de descarga para GNU/Linux de una de las múltiples páginas de downloading. http://download.com: Página de descargas. • Otras http://www.linuxsecurity.com: Página muy actual centrada en todo tipo de temas de seguridad en GNU/Linux. http://www.linuxhq.com: Información general sobre distribuciones de GNU/Linux, seguridad, etc. ANOTACIONES http://www.linuxjournal.org: Página de noticias y artículos sobre GNU/Linux. http://www.linuxgazette.com: Revista de GNU/Linux. http://www.linux-mag.com: Revista de GNU/Linux. http://www.xfree86.org: Página oficial del proyecto XFree86. 21
  • 23. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © 2. Conceptos y comandos básicos 2.1. Introducción En este capítulo aprenderemos las ideas e instrucciones básicas para Contenido movernos adecuadamente por el sistema. Si no estamos acostum- complementario brados a utilizar la línea de comandos para manipular el sistema Un comando es un progra- operativo, al principio puede parecernos un poco complicado, pero ma que realiza una deter- a medida que las vayamos utilizando veremos que son muy útiles y minada acción relacionada con el sistema operativo. nos permiten realizar cualquier tarea que queramos hacer. Además, el hecho de saber utilizar correctamente los comandos nos será muy útil cuando necesitemos conectarnos de forma remota a una máqui- na y podremos diseñar, asimismo, pequeños programas (shell scripts) para automatizar las tareas de administración más comunes. La mayoría de los comandos que veremos en este capítulo forman parte del estándar (normas IEEE POSIX) y son comunes a todos los sistemas GNU/Linux y a UNIX. Aunque cada distribución tiene sus propias aplicaciones de administración y gestión, muchas de las ac- ciones que se realizan a partir de ellas también se pueden hacer con los comandos que veremos. A partir de los mismos, podremos ma- nipular casi todos los aspectos del sistema y movernos eficientemente por él. Aprendiendo a utilizar correctamente estos comandos, apren- deremos a navegar por cualquier sistema basado en GNU/Linux, sin importar qué distribución estemos usando. Contenido Cada uno de los comandos del sistema suele tener multitud de pa- complementario ANOTACIONES rámetros diferentes. Con la utilización de los parámetros podemos, Un parámetro no es más con un mismo comando, hacer muchas acciones diferentes, aunque que una opción determina- da de un comando, que todas sean de un mismo estilo. En este documento no especificare- añadimos a continuación mos los diferentes parámetros de cada uno de los comandos que ve- del mismo, precedido por remos, ya que extenderíamos el texto más allá de lo permisible y un espacio y, en muchas ocasiones, por un guión. tampoco tiene sentido conocer exactamente la totalidad de los pará- Por ejemplo, si un comando metros posibles para cada uno. Todos ellos disponen de un amplio fuera listar, podríamos pa- sarle un parámetro como manual, donde se especifican todas sus opciones, de manera que “listar -todo”. siempre que necesitemos realizar alguna acción en concreto podre- 23
  • 24. © FUOC • 71Z799002MO © Software libre mos recurrir a él. En los talleres distribuidos a lo largo del curso sí que veremos algunas de estas opciones, aunque es importante saber que con el manual siempre podremos descubrir muchas otras, que nos pueden ayudar a realizar todo lo que necesitemos. 2.2. Usuarios y grupos Actualmente, la mayoría de los sistemas operativos existentes son Nota multiusuario y multitarea. Ello implica que más de un usuario puede Una política de nombres trabajar en el sistema de forma simultánea a otros, ejecutando una muy utilizada suele ser po- ner como login la primera o más tareas a la vez. Por este motivo, es muy importante que el mis- inicial del nombre del usua- mo sistema operativo incorpore mecanismos para manipular y con- rio seguido de su apellido. trolar correctamente a los usuarios: el sistema de entrada e identificación (login), los programas que puede ejecutar cada uno, mecanismos de seguridad para proteger el hardware del ordenador, protección para los ficheros de los usuarios, etc. Los sistemas operativos basados en UNIX organizan toda esta infor- Contenido mación por usuarios y grupos. Al entrar en el sistema, debemos iden- complementario tificarnos con un login y una contraseña. El login suele ser un nombre NIS son una serie de aplica- ciones que nos permiten que identifica de forma inequívoca al usuario. En sistemas donde gestionar todos los usuarios hay más que unos pocos usuarios, es importante disponer de una de un mismo laboratorio de buena política de nombres para poderlos identificar a todos de for- forma centralizada en un solo servidor. ma clara. La contraseña debe ser una combinación de letras, núme- ros y caracteres especiales. No debe estar formada por ninguna palabra de diccionario o similares porque puede representar un pro- blema de seguridad importante. El sistema de contraseñas es de tipo unidireccional. Esto quiere decir que nuestra contraseña no es alma- cenada como texto, sino que es cifrada y guardada tal como es. Cuando entramos en el sistema y escribimos nuestra contraseña, ANOTACIONES ésta es cifrada y comparada con la que está almacenada. Si coinci- den, la identificación es positiva, si no coinciden, no hay identifica- ción. Lo importante de todo este sistema es que a partir del cifrado no podemos conseguir, de ninguna manera, la clave original. Los programas que intentan romper las contraseñas de los usuarios lo único que pueden hacer es cifrar palabras a partir de diccionarios (con sistemas automáticos para derivarlas y buscar variantes) y pro- bar si coinciden con el cifrado de alguna de las contraseñas de usua- rio. Es por este motivo por lo que debemos escoger cuidadosamente 24
  • 25. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © nuestras contraseñas; de otra forma comprometeremos toda la se- guridad del sistema. Actualmente, en los sistemas GNU/Linux podemos escoger dos tipos de cifrado posibles para las contraseñas de usuario. El que se viene usando desde los inicios de UNIX es el 3DES. El único inconveniente de este tipo de cifrado es que sólo nos permite contraseñas de 8 le- tras (si escribimos más, se ignoran), a diferencia del otro tipo de ci- frado, llamado MD5, con el que podemos usar contraseñas de la longitud que queramos (de hecho, MD5 es un sistema de hashing, pero también se puede utilizar para cifrar contraseñas de forma uni- direccional). Cuanto más larga sea la contraseña, más segura resul- ta, con lo cual, se recomienda utilizar el segundo tipo de cifrado. De todos modos debemos considerar que, si necesitamos usar algunos programas especiales para la gestión de usuarios, como el NIS, pue- de que no sean compatibles con MD5. Si bien un usuario es un individuo particular que puede entrar en el Contenido sistema, un grupo es un conjunto de usuarios con acceso al sistema complementario que comparten unas mismas características, de forma que nos es útil Un servidor es un programa agruparlos para poder darles una serie de permisos especiales en el que se encarga de propor- cionar algún tipo de servicio sistema. Un usuario debe pertenecer, al menos, a un grupo, aunque (como servir páginas web, puede ser de más de uno. El sistema también utiliza todo este meca- dejar que los usuarios se co- nismo de usuarios y grupos para gestionar los servidores de aplica- necten remotamente, etc.), generalmente vinculado a ciones instalados y otros mecanismos. Por esta razón, además de los la Red. usuarios reales, en un sistema habrá muchos otros vinculados a otras tareas que se deben realizar en el operativo. Generalmente, este tipo de usuario no podrá entrar (con un login normal) al sistema. En todo sistema operativo debe haber un superusuario (root). Éste será el usuario que contará con todos los permisos, el que tendrá los ANOTACIONES privilegios máximos que le permitirán efectuar cualquier operación sobre el sistema. Es necesario que éste exista, ya que será quien se encargará de toda la administración y gestión de servidores, grupos, etc. Esta cuenta no debe utilizarse para trabajar normalmente en el sistema. Sólo deberíamos entrar como root cuando sea realmente necesario, utilizando otras cuentas para el trabajo normal de los usuarios. De este modo nunca podremos dañar el sistema con ope- raciones erróneas o con la prueba de programas maliciosos, etc. 25
  • 26. © FUOC • 71Z799002MO © Software libre Toda la información de usuarios y grupos se guarda en los siguientes Contenido archivos: complementario También es posible configu- rar el sistema para que se • /etc/passwd: información (nombre, directorio home, . . . ) del utilice un fichero shadow usuario. para los grupos (en caso de que sea necesario ponerles contraseña). Este fichero se • /etc/group: información sobre los grupos de usuarios. nombraría /etc/gshadow. Generalmente, la configura- ción de contraseñas se indica • /etc/shadow: contraseñas cifradas de los usuarios y configura- al instalar el sistema, aunque todo se puede cambiar y ción para su validez, cambio, etc. adaptar a nuestro gusto uti- lizando los módulos PAM (Pluggable Authentication Utilizar el archivo de shadow es opcional. En un principio, las con- Modules for Linux), que son traseñas cifradas de los usuarios se guardaban en el mismo fichero los programas que se encar- gan de todo el sistema de de passwd, pero, por razones de seguridad (muchos mecanismos autentificación de usuarios. deben poder leer este fichero, con lo cual era muy fácil hacerse con él e intentar “crackear” las contraseñas) se optó por cambiar este Contenido mecanismo para hacer que el fichero de shadow sólo fuera accesi- complementario ble para algunos usuarios con privilegios especiales en el sistema. “Crackear” una contraseña Esta opción es configurable en el proceso de instalación del sistema significa conseguir la pala- bra clave utilizando progra- y suele ser recomendable utilizarla. Todos estos ficheros están orga- mas especiales para ello. nizados por líneas, donde cada una de ellas identifica a un usuario Estos programas también los usan los administrado- o grupo (dependiendo del fichero). En cada línea hay diversos cam- res de sistemas para descu- pos separados por el carácter “:”. En tareas de administración, es brir qué usuarios utilizan contraseñas demasiado fá- importante saber qué son estos campos, por lo que vamos a explo- ciles de descubrir (las con- rarlos con un poco más de detalle: traseñas buenas no se pueden romper de ningún modo sin utilizar grandes • passwd supercomputadoras). 1) Login: el nombre del usuario. No puede haber dos nombres igua- les, aunque sí alguno que coincida con un grupo del sistema. ANOTACIONES 2) Contraseña cifrada: si no se utiliza el fichero de shadow, las con- traseñas cifradas se almacenan en este campo. Si utilizamos el fi- chero de shadow, todos los usuarios existentes en este fichero deben existir también en el de shadow y en este campo se pone el carácter “x”. 3) User ID: número de identificación del usuario. Es el número con el cual el sistema identifica al usuario. El 0 es el único que está reservado para el root. 26
  • 27. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © 4) Group ID: el número de grupo al cual pertenece el usuario. Como un usuario puede pertenecer a más de un grupo, este grupo se denomina primario. 5) Comentarios: campo reservado para introducir los comentarios que queramos sobre el usuario. Se suele utilizar para poner el nombre completo o algún tipo de identificación personal. 6) Directorio home: el directorio home del usuario es donde éste po- drá guardar todos sus ficheros. Suelen ponerse todos en alguna carpeta del sistema (generalmente /home/) y organizados por grupos. 7) Intérprete de comandos: un intérprete de comandos (shell ) es un programa que se encarga de leer todo lo que escribimos en el teclado y ejecutar los programas o comandos que le indique- mos. Hay decenas de ellos, aunque el más utilizado es, sin du- da, el bash (GNU Bourne-Again SHell). Si en este campo escribimos /bin/false no permitiremos que el usuario ejecu- te ningún comando en el sistema, aunque esté dado de alta en el mismo. • group 1) Nombre del grupo. 2) Contraseña cifrada: la contraseña de un grupo se utiliza para permitir que los usuarios de un determinado grupo se puedan cambiar a otro o para ejecutar algunos programas con permisos de otro grupo (siempre que se disponga de la contraseña). 3) Group ID: número de identificación del grupo. Es el número con el cual el sistema identifica internamente a los grupos. El 0 es el ANOTACIONES único que está reservado para el grupo del root (los administra- dores). 4) Lista de usuarios: los nombres de los usuarios que pertenecen al grupo, separados por comas. Aunque todos los usuarios deben pertenecer a un determinado grupo (especificado en el cuarto campo del fichero de passwd), este campo se puede utilizar para que usuarios de otros grupos también dispongan de los mismos permisos que tiene el que se está referenciando. 27
  • 28. © FUOC • 71Z799002MO © Software libre • shadow 1) Login: debe ser el mismo nombre que se utiliza en el fichero de passwd. 2) Contraseña cifrada. 3) Días que han pasado, desde el 1 de enero de 1970, hasta que la contraseña ha sido cambiada por última vez. 4) Días que deben pasar hasta que la contraseña pueda ser cam- biada. 5) Días que han de pasar hasta que la contraseña deba ser cam- biada. 6) Días antes de caducar la contraseña en el que se avisará al usua- rio de que debe cambiarla. 7) Días que pueden pasar después de que la contraseña caduque, Contenido antes de deshabilitar la cuenta del usuario (si no se cambia la complementario contraseña). En sistemas UNIX es muy co- mún representar las fechas a 8) Días, desde el 1 de enero de 1970, desde que la cuenta está des- partir del número de segun- habilitada. dos transcurridos desde el 1 de enero de 1970. 9) Campo reservado. Cuando un usuario entra en el sistema, se le sitúa en su directorio Contenido complementario home y se ejecuta el intérprete de comandos (shell) configurado. De En sistemas donde hay cente- este modo ya puede empezar a trabajar. Sólo el root del sistema (o nares de usuarios, es usual los usuarios de su grupo) tienen permiso para manipular la informa- poner algún tipo de mecanis- ción de los usuarios y grupos, darlos de alta, de baja, etc. Existen mu- mo para restringir el espacio de disco que puede utilizar chos comandos para manipular todo esto. Cada uno de ellos tiene, cada uno. En los sistemas ANOTACIONES además, varios parámetros diferentes para gestionar todos los cam- GNU/Linux este sistema se llama cuota. pos que hemos visto anteriormente de forma amena. A continuación mostramos algunos de estos comandos: • adduser: nos sirve para añadir un nuevo usuario al sistema. La forma como éste se añade (si no le especificamos nada) se puede configurar en el fichero /etc/adduser.conf. Se le pueden pa- sar multitud de opciones diferentes para especificar el directorio home, el shell que hay que utilizar, etc. 28
  • 29. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © • useradd: crea un nuevo usuario o cambia la configuración por defecto de los mismos. Este comando y el anterior nos pueden servir para realizar las mismas acciones. • usermod: con este comando podemos modificar la mayoría de los campos que se encuentran en el fichero de passwd y shadow, como el directorio home, el shell, la expiración de la contraseña, etc. • chfn: cambia la información personal del usuario, contenida en el campo de comentarios del fichero de passwd. • chsh: cambia el shell del usuario. • deluser: elimina un usuario del sistema, borrando o guardando todos sus ficheros según los parámetros que le pasemos, hacien- do copia de seguridad de los mismos o no, etc. La configuración que se utilizará por defecto con este comando está especificada en el fichero /etc/deluser.conf. • userdel: comando con las mismas posibilidades que el anterior. • passwd: nos sirve para cambiar la contraseña de un usuario, la información de expiración de las mismas o para bloquear o des- bloquear una determinada cuenta. • addgroup: permite añadir un grupo al sistema. • groupadd: lo mismo que el comando anterior, pero con diferen- tes parámetros. • groupmod: nos permite modificar la información (nombre y GID) ANOTACIONES de un determinado grupo. • delgroup: elimina un determinado grupo. Si algún usuario to- davía lo tiene como primario, no se podrá eliminar. • groupdel: igual que en el caso anterior. • gpasswd: nos sirve para cambiar la contraseña del grupo. 29
  • 30. © FUOC • 71Z799002MO © Software libre Para saber qué usuario somos, podemos utilizar el comando Contenido complementario whoami, que nos mostrará nuestro login. groups nos sirve para sa- ber a qué grupos pertenecemos e id nos mostrará usuario y grupos. Como vemos, en GNU/Linux tenemos más de una mane- También es interesante poder convertirnos en otro usuario sin tener ra para hacer una determi- que salir de la sesión (comando login o su) o cambiarnos de gru- nada acción. Ésta es la tónica general que se sigue po con el comando newgrp. Este último comando debemos utilizar- en el sistema: podemos edi- lo sólo cuando no pertenecemos al grupo en cuestión y sabemos su tar directamente los ficheros y modificarlos nosotros mis- contraseña (que debe estar activada en el fichero de group). Si sólo mos, utilizar algunos de los necesitamos los permisos del grupo en cuestión para ejecutar un de- comandos que existen, terminado comando, también podemos utilizar sg. creárnoslos nosotros mis- mos, etc. En definitiva, tene- mos la posibilidad de elegir Tal como decíamos anteriormente, GNU/Linux es un sistema operativo qué es lo que más nos gusta. multiusuario, por lo que en un mismo momento puede haber varios usuarios conectados al sistema de forma simultánea. Para saber qué usuarios hay en un determinado momento, podemos utilizar el coman- do who, que nos muestra la lista de usuarios dentro del sistema. w, ade- más, nos muestra qué es lo que están haciendo. Nos podemos comunicar con ellos utilizando el comando write, con el cual aparece el mensaje que hayamos escrito en la pantalla del usuario indicada o wall, que escribe el contenido del fichero que hayamos especificado a todos los usuarios dentro del sistema. Para activar o desactivar la opción de recibir mensajes tenemos el comando mesg. También podemos ha- cer un chat personal con algún usuario a partir del comando talk. 2.3. El sistema de ficheros 2.3.1. La jerarquía del sistema de ficheros Contenido complementario Todo sistema operativo necesita guardar multitud de archivos: desde El sistema de ficheros es el ANOTACIONES los de la configuración del sistema, los de log, los de los usuarios, etc. programa (o módulos del núcleo del operativo) que se En general, cada operativo utiliza su propio sistema de ficheros, carac- encarga de realizar todas las terizándolo en muchos aspectos como pueden ser el rendimiento, la operaciones relacionadas seguridad, la fiabilidad, etc. GNU/Linux es capaz de leer/escribir ar- con el almacenamiento y manipulación de los archi- chivos con cualquiera de los sistemas de ficheros que actualmente vos. Son las funciones que existen, aunque para su propia raíz y directorios principales es nece- tratan con los dispositivos fí- sicos de almacenamiento sario un sistema de ficheros que le permita ciertas operaciones. Gene- del ordenador, como el dis- ralmente, se suele utilizar el tipo ext2, ext3 o ReiserFS. El ext2 es el más co duro. típico y extendido. Su rendimiento es bastante bueno, incorpora todo 30
  • 31. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © tipo de mecanismos de seguridad y tunning y es muy fiable. ext3 es la evolución del mismo, incorporando una tecnología llamada de jour- naling. Una de las principales ventajas de esta tecnología es que si hay un corte en el suministro de energía y el ordenador se apaga sin ce- rrarse adecuadamente, los sistemas de recuperación de ficheros son más efectivos. ReiserFS es un nuevo tipo de sistema que incorpora nuevas tecnologías de diseño que le permiten ser más rápido. En el proceso de instalación del sistema operativo se nos preguntará cuál de estos tres queremos usar. Generalmente se suele utilizar ext2 o ext3 por estar más probados que el ReiserFS. Una característica muy importante de todos los sistemas operativos Contenido basados en UNIX es que todos los dispositivos del sistema se pueden complementario tratar como si fueran ficheros. Igualmente, cuando queramos acce- El sistema de ficheros ext2 ha der al contenido de un CD, disquete o cualquier otro dispositivo de sido diseñado para manejar almacenamiento, deberemos montarlo en un directorio ya existente de forma muy rápida ficheros pequeños, que es lo que más en el sistema y navegaremos por él como si se tratara de una carpeta suele tener un sistema opera- más (el uso de diferentes unidades -A:,B:,C:,D:,. . . es un esquema tivo. Con el manejo y mani- pulación de grandes ficheros existente únicamente en sistemas operativos tipo WindowsTM). multimedia, no se desenvuel- ve tan bien, aunque siempre Lo primero que debemos tener claro es que todo el sistema de ficheros se puede hacer un poco de tunning para adaptarlo más parte de una misma raíz, a la cual nos referiremos con el carácter “/ a nuestras necesidades. ”. Es el origen de todo el sistema de ficheros y sólo existe una. Para organizar los ficheros adecuadamente, el sistema proporciona lo que llamaremos directorios (o carpetas), dentro de las cuales podemos po- ner archivos y más directorios. De este modo conseguimos una orga- nización jerárquica como la que vemos en la siguiente figura: ANOTACIONES 31
  • 32. © FUOC • 71Z799002MO © Software libre 2.3.2. Directorios del sistema La mayoría de los sistemas operativos del mercado siguen el están- dar FHS (http://www.pathname.com/fhs/), donde se especifican las principales características que debería tener cualquier sistema ope- rativo. Entre ellas está la distribución en directorios que tenemos que hacer de nuestros archivos para tenerlos correctamente organizados y poder localizarlos de forma rápida y sencilla. En la mayoría de dis- tribuciones basadas en GNU/Linux se siguen estas recomendacio- nes, encontrando los siguientes directorios principales: • /bin/: comandos básicos para todos los usuarios del sistema. • /boot/: archivos estáticos necesarios para el arranque del sistema. • /dev/: dispositivos del sistema. • /etc/: archivos de configuración del sistema y de las aplicacio- nes instaladas en el mismo. • /home/: directorio para poner las carpetas home de los usuarios. • /lib/: librerías esenciales para el núcleo del sistema y módulos del mismo. • /mnt/: punto de montaje temporal para dispositivos. • /proc/: procesos y variables del núcleo del sistema. • /root/: directorio home para el root del sistema. ANOTACIONES • /sbin/: comandos especiales para el root del sistema. • /tmp/: archivos temporales. Según la distribución utilizada (o la configuración que utilicemos) se borran al arrancar el sistema o cada cierto período de tiempo. • /usr/: segunda estructura jerárquica, utilizada para almacenar todo el software instalado en el sistema. 32
  • 33. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © • /var/: directorio para los spoolers de impresión, ficheros de log, etc. Es muy recomendable conservar y no eliminar ninguno de estos direc- torios (o los que por defecto nos crea la distribución que utilizamos), ya que son básicos para el buen funcionamiento del sistema. Generalmen- te, los procesos de instalación de nuevas aplicaciones necesitan que exista la organización dada y muchos de los archivos de configuración de los programas deben estar en determinados directorios. Lo que sí que podemos hacer sin ningún tipo de restricción es crear nuevos direc- torios en la raíz del sistema o en cualquier otra carpeta. 2.3.3. Moviéndonos Para movernos por la estructura de directorios debemos utilizar los co- mandos para listar contenidos y cambiar de carpeta. Cuando entramos en el sistema, es usual que el login nos sitúe en nuestro directorio home, que generalmente se suele referenciar con el carácter “~”. Si queremos ver lo que hay en el directorio donde estamos situados, podemos listar los contenidos utilizando el comando ls. Debemos tener en cuenta que por defecto el comando no nos muestra los archivos que empiezan por un punto. Con el parámetro “-a” sí que nos mostraría absolutamente todos los ficheros. En todos los directorios existe una entrada “.” y otra “..”. El punto es la referencia al directorio actual, mientras que los dos puntos seguidos hacen referencia al directorio inmediatamente superior (en el árbol de jerarquías) al actual. Naturalmente, cuando estamos si- tuados en la raíz del sistema de ficheros, la entrada “..” no existirá por- que nos encontramos en el nivel superior. Contenido complementario Para cambiar de directorio podemos utilizar el comando cd. Si no El hecho de que ls no nos le pasamos ningún parámetro, por defecto nos situará en nuestro di- muestre (por defecto) los ar- chivos que empiezan por ANOTACIONES rectorio home. Generalmente, se le suele indicar dónde queremos ir, punto, es para que cada vez pasándolo de forma absoluta o relativa. De forma relativa significa que listamos el contenido que partiremos del directorio donde estamos en el momento de eje- del directorio no tengamos que ver los ficheros y direc- cutar el comando. Por ejemplo, si estamos en el directorio /usr/ torios de configuración de bin/ y queremos ir al /root/, deberíamos introducir el siguiente las aplicaciones que utiliza- mos (que suelen empezar comando: “cd ../../root” (los dos primeros puntos indican / por este carácter) y las en- usr/ y los siguientes la raíz “/” del sistema, a partir de la cual ya tradas del directorio actual y podemos acceder a /root/). De forma absoluta siempre partimos anterior, que siempre exis- ten. de la raíz, de manera que el comando que utilizaríamos para el 33
  • 34. © FUOC • 71Z799002MO © Software libre ejemplo anterior sería: “cd /root”. Para saber en qué directorio es- tamos, podemos utilizar el comando pwd. 2.3.4. Enlaces Otros mecanismos que nos proporcionan la gran mayoría de sistemas de ficheros son los que llamamos enlaces. Un enlace es un puente a un archivo o directorio perteneciente al sistema; una referencia que pode- mos poner en cualquier sitio que nos interese y que actúa como un ac- ceso directo a cualquier otro. Este mecanismo nos permite acceder a carpetas o archivos de forma más rápida y cómoda, sin tener que des- plazarnos por la jerarquía de directorios. Vamos a verlo con un ejemplo: imaginemos que somos un usuario (user1) que necesita acceder fre- cuentemente al directorio /usr/share/man/man3/. En lugar de es- cribir el largo comando que nos situaría en el directorio en cuestión cada vez que necesitáramos desplazarnos a él, podemos crear un enla- ce en nuestro propio directorio que nos redireccione directamente hacia allí. El comando “ln -s /usr/share/man/man3 mmm” nos crearía este puente, que hemos llamado “mmm”. El usuario sólo debería escribir (desde su directorio home) “cd mmm” y automáticamente el sistema lo redirigiría hacia /usr/share/man/man3/. Es importante tener en cuenta que al hacer un “cd ..” para ir al directorio superior, volvería- mos al directorio home y no a usr/share/man/, ya que hemos acce- dido a él a partir de nuestro enlace. Podemos ver este esquema de forma gráfica en la siguiente figura: ANOTACIONES 34
  • 35. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Al crear el enlace del ejemplo anterior hemos pasado el paráme- Contenido tro “-s” al comando. Ello indica que queremos crear un enlace complementario simbólico. Los enlaces simbólicos significan que sólo estamos Un enlace fuerte sólo se creando un apuntador o puente hacia el fichero o directorio, de puede crear entre ficheros o directorios de una misma forma que si borrásemos el fichero destino, el enlace no apuntaría unidad debido al mecanis- a ninguna parte. Si no ponemos el parámetro “-s” se crearía lo mo interno que se utiliza para gestionarlos. que llamamos un enlace fuerte (hard link) que, a diferencia del anterior, hace un duplicado del fichero. De hecho, internamente no es exactamente un duplicado, es como dos entradas que apun- tan a los mismos datos. De este modo, si modificamos uno u otro, los dos quedan iguales. La ventaja de este tipo de enlace es que si borramos cualquiera de las dos copias del fichero la otra toda- vía se conserva. Este tipo de enlace no se utiliza demasiado por- que complica la gestión y manipulación de los ficheros (siempre es mejor tener una sola copia de los archivos). Además, si hace- mos un enlace fuerte de un directorio, todos los archivos y subdi- rectorios que contuviera también se deberían referenciar. Por esta razón sólo el root del sistema puede hacer enlaces fuertes de di- rectorios. Otra diferencia es que con un enlace simbólico pode- mos ver a qué fichero estamos apuntando, mientras que con uno fuerte no podemos (debido al mecanismo que se utiliza interna- mente para ellos). 2.3.5. Permisos En cualquier sistema operativo multiusuario necesitamos que los fi- cheros que guardamos en nuestro disco puedan tener una serie de propiedades que nos permitan verlos, modificarlos o ejecutarlos para los usuarios que nosotros definamos. Aunque hay varias alter- nativas para hacer esto, GNU/Linux utiliza el sistema clásico de UNIX, que, combinado con todos los mecanismos de gestión de ANOTACIONES usuarios y grupos, nos permite cualquier configuración posible. Lo que interesa es definir, para cada fichero o directorio, a qué usuario y grupo pertenece y qué permisos tiene para cada uno de ellos, así como para el resto de usuarios del sistema. Ejecutando “ls -l” ve- remos cómo en cada archivo del directorio donde estamos aparece una línea parecida a la siguiente: -rwxr-xr-x 1 user1 grupo1 128931 Feb 19 2000 gpl.txt 35
  • 36. © FUOC • 71Z799002MO © Software libre Los primeros diez caracteres (empezando por la izquierda) nos indi- can los permisos del fichero de la siguiente manera: • Carácter 1: esta entrada nos indica si es un fichero o un directo- rio. En caso de ser un fichero, aparece el carácter “-”, mientras que por los directorios aparece una “d”. • Caracteres 2, 3, 4: nos indican, respectivamente, los permisos de lectura, escritura y ejecución para el propietario del fichero. En caso de no tener el permiso correspondiente activado, encontra- mos el carácter “-” y si no “r”, “w” o “x”, según si lo podemos leer (Read), escribir (Write) o ejecutar (eXecute). En el tercer carác- ter, además, podemos encontrarnos una “s”, que nos indica si el archivo es de tipo SetUserId, que quiere decir que al ejecutarlo obtendrá los permisos del propietario del fichero. Si sólo tiene el permiso “x”, cuando el programa se ejecuta lo hace con los per- misos de quien lo haya lanzado. • Caracteres 5, 6, 7: estos caracteres tienen exactamente el mismo significado que anteriormente, pero hacen referencia a los permi- sos concedidos a los usuarios del grupo al que pertenece el fichero. • Caracteres 8, 9, 10: igual que en el caso anterior, pero para los Contenido complementario otros usuarios del sistema. El mecanismo de SetUserId es muy útil cuando un pro- Después de estos 10 caracteres encontramos una cifra que nos indi- grama necesita tener los ca el número de enlaces fuertes que tiene el fichero. Para los direc- permisos de su propietario para acceder a ciertos ar- torios, este número indica cuántas carpetas hay dentro de él además chivos o hacer algún tipo de de los enlaces fuertes que tiene (cuando no hay ninguno, el número operación en el sistema. De todos modos, debemos vigi- es 2, debido a la gestión interna del operativo). A continuación ve- lar mucho con este tipo de mos el propietario y el grupo del archivo, seguido del tamaño (en ficheros porque pueden su- bytes) que ocupa y la fecha de la ultima modificación. En todos los ANOTACIONES poner fallos de seguridad en el sistema si son mal uti- ficheros se guarda su fecha de creación, último acceso y modifica- lizados. ción, que podemos manipular con el comando touch. Al final hay el nombre del fichero, dónde se diferencian minúsculas de mayúscu- las y podemos tener todo tipo de caracteres sin ningún problema. Para cambiar los permisos de un determinado archivo podemos uti- lizar el comando chmod. Debemos tener en cuenta que sólo el pro- pietario del archivo (o el root ) puede cambiar estos permisos, ya que 36
  • 37. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © si no, el mecanismo no tendría ningún sentido. Podemos utilizar este comando de muchas maneras diferentes, pero las dos más frecuen- tes son las siguientes: • El primer modo de utilizarlo es del estilo “chmod XXX nombreAr- chivo”. Las “X” deben ser tres números entre 0 y 7. El primer nú- mero indica los permisos que queremos establecer para el usuario, el segundo, para el grupo y el tercero, para el resto. Para interpretar correctamente los permisos que daremos utilizando los números del 0 al 7, debemos hacer uso de la representación bi- naria del número en cuestión, de forma que el primer dígito indi- cará el permiso de escritura, el segundo, el de lectura y el tercero, el de ejecución. En cada caso un 0 indica que no se da el permiso en cuestión y el 1 indica que sí que se da. En la siguiente tabla podemos ver esta relación: Representación decimal Representación binaria Significado 0 000 --- 1 001 --x 2 010 -w- 3 011 -wx 4 100 r-- 5 101 r-x 6 110 rw- 7 111 rwx • El otro modo de utilizar el comando es indicando de forma explí- cita qué permiso queremos dar o eliminar del fichero. La manera de hacerlo es indicando, primero, si nos referimos a los permisos ANOTACIONES del usuario, grupo o al resto con las letras “u”, “g” u “o” respec- tivamente. Seguidamente, debemos añadir un “+” o “-” según si queremos añadir o eliminar el atributo, que indicaremos con “r”, “w”, “x” o “s” (este último para el SetUserId). Además, po- demos hacer todas las combinaciones posibles, refiriéndonos a más de un permiso y/o usuarios. Por ejemplo, “chmod go+r gpl.txt”daría el permiso de lectura al grupo y a los otros usua- rios para el fichero gpl.txt. 37
  • 38. © FUOC • 71Z799002MO © Software libre Para cambiar el propietario de un fichero existe el comando chown, Contenido complementario que sólo puede utilizar el root por razones de seguridad. Para cam- biar el grupo de un determinado archivo, se puede utilizar el coman- Si se permitiera a los usua- rios cambiar el propietario do chgrp. Como podemos suponer, cuando un usuario crea un de sus ficheros, la seguri- nuevo archivo, el sistema pone como propietario al usuario que lo dad del sistema quedaría comprometida, porque se ha creado y lo da como perteneciente al grupo primario del mismo podrían realizar acciones usuario. Los permisos que se ponen por defecto al crear un nuevo ar- maliciosas y después cam- chivo los podemos configurar con el comando umask, al que debe- biar el propietario de los ar- chivos utilizados inculpando mos pasar la misma notación de tres números decimales entre 0 y 7 a otros usuarios. que veíamos anteriormente pero complementados. Por ejemplo, si queremos que nuestros ficheros se inicialicen con los permisos “rw- r--r--”, deberíamos escribir “umask 133”. 2.3.6. Manipulación, patrones y búsquedas Ahora que ya sabemos movernos correctamente por la jerarquía de Contenido complementario directorios, también necesitamos saber cómo copiar, eliminar y ma- nipular correctamente otros aspectos de los ficheros. El comando rm La sintaxis de los patterns puede llegar a ser muy es el que se encarga de eliminar los archivos que le indiquemos. Para compleja, permitiéndonos eliminar un directorio, podemos utilizar el comando rmdir, aunque referenciar cualquier con- junto de archivos que que- sólo lo borrará cuando éste esté vacío (si quisiéramos borrar comple- ramos. tamente un directorio y todo su contenido, podríamos utilizar “rm - r”). Para copiar archivos de un lugar a otro tenemos el comando cp, al que siempre debemos indicar el fichero o directorio origen y el lu- gar o nombre de destino, aunque sea en el directorio actual. De este modo, si queremos copiar el archivo /home/user1/gpl.txt en el directorio actual (y con el mismo nombre) deberíamos escribir “cp /home/user1/gpl.txt .”. Si en lugar de copiar los archivos queremos moverlos de sitio, podemos utilizar el comando mv. Un mecanismo muy útil que nos proporciona el sistema son los ANOTACIONES patterns (‘patrones’). Hasta ahora hemos visto cómo aplicar cier- tas operaciones sobre un determinado archivo. Cuando estamos manipulando un sistema, en muchos casos nos interesará aplicar alguna de las operaciones que hemos visto pero sobre un grupo grande de ficheros. Los patrones nos permitirán aplicar las ope- raciones que queramos especificando en una sola instrucción va- rios ficheros que cumplan con una serie de características concretas. Debemos verlos como plantillas de nombres, de mane- ra que el carácter “*” significa cualquier cadena de caracteres po- 38
  • 39. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © sibles y el “?” nos sirve como comodín a cualquier carácter. De este modo, si queremos listar todos los archivos que empiecen por “s”, que después tengan cualquier otro carácter, les siga una “a”, y después cualquier otra cadena, podríamos utilizar “ls s?a*”. Entre “[]” podemos incluir otros caracteres, indicando que el pa- trón tiene éxito si se encuentra alguno de ellos en el nombre. Por ejemplo, si quisiéramos referenciar todos los archivos que empie- cen por “a” o por “b” y que continúan con cualquier otra cadena, podríamos escribir el pattern “[ab]*”. Si después de “[” pusié- ramos el carácter “!” (“[!ab]*”) indicaríamos que el pattern co- incide con cualquier archivo que no empiece por “ o “b”. a” Finalmente, para facilitar ciertas búsquedas, dentro de “[]”pode- mos especificar clases de caracteres de la siguiente manera: “[:clase:]”, donde la “clase” puede ser cualquiera de las nombradas en la siguiente tabla: clase significado clase significado alnum [A-Za-z0-9] alpha [A-Za-z] blank [ ] cntrl cars de control digit [0-9A-Fa-f] graph cars imprimibles (sin espacios) lower [a-z] print cars imprimibles (con espacios) punct [.,¡!¿?:;] . . . space [] upper [A-Z] xdigit [0-9A-Fa-f] A-Z indica caracteres de la A a la Z, t es el tabulador y n es un salto de línea. Naturalmente, los patterns los podemos utilizar con cualquiera de los comandos que hemos visto y la mayoría de los que veremos a con- tinuación. Además, la mayor parte de los comandos de listado, eli- minación, copia, etc. de ficheros también permiten que se les pase un parámetro (generalmente “-r”) para realizar las acciones respec- ANOTACIONES tivas de forma recursiva. De este modo, se irá entrando y ejecutando la instrucción correspondiente en todos los archivos y directorios, a partir de donde nos encontramos y hasta llegar al último nivel de la jerarquía. Nota Si queremos actualizar la Otro tipo de operación muy útil es la búsqueda de ficheros. Tenemos base de datos interna que varios comandos que nos permiten realizar búsquedas de diferentes utiliza el comando locate, podemos utilizar updatedb. tipos sobre todos los ficheros del sistema. 39
  • 40. © FUOC • 71Z799002MO © Software libre Es el comando más versátil para realizar esta acción. Nos permite filtrar los ficheros para encontrar desde los que tienen un determinado nombre, los modificados o creados a partir de find una cierta fecha, los que tienen ciertos permisos, etc. Su única desventaja es que no utiliza ningún tipo de mecanismo para acelerar la búsqueda, con lo cual, éstas pueden tardar bastante. Se trata de otro comando, pero, a diferencia del anterior, utiliza una base de datos interna que se actualiza periódicamente y nos permite hacer búsquedas bastante más rápidas. Debemos locate tener en cuenta, sin embargo, que los resultados no siempre estarán actualizados, además de que no podemos realizar búsquedas tan versátiles como con find. Por último, whereis está orientado a la búsqueda de los whereis archivos binarios (los ejecutables), de ayuda o los de código fuente de un determinado programa. 2.3.7. Tipos y contenido de ficheros Los archivos que tenemos en nuestro sistema pueden ser de muchos Contenido complementario tipos diferentes: ejecutables, de texto, de datos, etc. A diferencia de otros sistemas que utilizan la extensión del archivo para determinar Utilizar la extensión para determinar el tipo de un ar- de qué tipo son, GNU/Linux utiliza un sistema denominado de magic chivo no es un sistema muy numbers, determinando con un número mágico el tipo de fichero se- eficaz, ya que cualquiera puede cambiarla y generar gún sus datos (se pasan una serie de tests que intentan determinar confusiones y errores en el de qué tipo es el fichero). El comando file nos lo indica. sistema. Si necesitamos ver el contenido de un fichero, uno de los comandos básicos es el cat. Pasándole el nombre o nombres de los archivos que queremos ver, se muestra por pantalla. Debemos intentar no mostrar ficheros ejecutables o de datos por pantalla, ya que el vol- cado de caracteres no imprimibles nos dejaría la consola con carac- teres no comprensibles (siempre la podemos reiniciar tecleando reset o tset). Para ficheros muy extensos, nos irán mucho mejor los comandos less o more, que permiten desplazarnos por el fi- chero de forma progresiva. Si el tipo de fichero es binario y queremos ANOTACIONES ver qué contiene, podemos utilizar los comandos hexdump u od para ver el contenido de forma hexadecimal u otras representacio- nes. strings nos buscará las cadenas de caracteres dentro de un fichero binario y las mostrará por pantalla. Otro tipo de comandos muy útiles son los que nos buscan un cierto patrón en el contenido de los ficheros. Con el comando grep le po- demos pasar como segundo parámetro el nombre del archivo y 40
  • 41. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © como primero el pattern que queramos buscar (con la sintaxis que veíamos anteriormente, extendida a otras opciones). Además, el co- mando nos permite otras múltiples acciones, como contar el número de líneas donde aparece el patrón (parámetro “-c”), etc. Con cut podemos separar en campos el contenido de cada línea del fichero especificando qué carácter es el separador, muy útil en tareas de ad- ministración del sistema para su automatización. También podemos coger un determinado número de líneas del principio o fin de un ar- chivo con los comandos head y tail respectivamente. Con wc po- demos contar el número de líneas o palabras, la máxima longitud de línea de un fichero, etc. Finalmente, para acabar con esta sección de manipulación de fiche- ros, lo único que nos falta por ver es cómo comparar diferentes ar- chivos. Igual que con las otras operaciones, tenemos varios comandos que nos permiten hacerlo. diff, cmp y comm realizan comparaciones de diferentes formas y métodos en los ficheros que indicamos. sdiff, además, permite mezclarlos a nuestra elección. 2.4. Los procesos El hecho de que el sistema operativo sea multitarea implica que po- Contenido demos lanzar más de un programa a la vez. Un proceso no es más complementario que un programa o aplicación que se encuentra cargado en la me- La gestión de procesos es moria y en proceso de ejecución. Aunque nuestro ordenador sólo un aspecto vital en todo sistema operativo, ya que disponga de una CPU, el sistema operativo se encarga de repartir el determina el tiempo de res- tiempo de procesamiento de la misma para que varios procesos pue- puesta de nuestras aplica- dan ir realizando sus operaciones, dando la sensación de que se es- ciones, la eficiencia con que se utiliza la memoria y la tán ejecutando todos a la vez. CPU, etc. ANOTACIONES Para identificar de forma inequívoca cada proceso, el núcleo del sis- tema les asigna un número llamado PID (Process IDentification). Aunque podríamos pensar que con solo el nombre ya los podríamos referenciar, es imprescindible disponer de este número porque po- demos ejecutar un mismo programa tantas veces como queramos, al mismo tiempo que se ejecutan diferentes instancias del mismo. Para saber qué procesos se están ejecutando, podemos utilizar el co- mando ps. Para explorar un poco más todo este mecanismo de pro- 41
  • 42. © FUOC • 71Z799002MO © Software libre cesos, explicaremos con más detalle algunos de los parámetros que le podemos pasar a este comando: • “T”: esta opción viene por defecto y nos indica que sólo se mos- trarán los procesos que se están ejecutando en el terminal dónde nos encontramos o que se hayan lanzando a partir de él. • “-a”: nos muestra los procesos de todos los terminales del siste- ma. • “-A”: nos muestra todos los procesos del sistema. Si ejecutamos el comando, veremos que, aparte de los programas que los usua- rios ejecutan, hay otros. Muchos de ellos ejecutan las funciones necesarias para que el operativo funcione correctamente, otros son los servidores de aplicaciones configurados, etc. • “-l”: enseña información extendida para cada proceso, como el tiempo de CPU que ha utilizado, el terminal donde se ejecuta, etc. En la segunda columna también podemos ver el estado del pro- ceso. Aunque el sistema tenga muchos procesos ejecutándose en un mismo instante de tiempo, ello no implica que todos necesiten tiempo de CPU constantemente. Por ejemplo, cuando un servidor de páginas web no tiene ninguna petición, no es necesario que haga absolutamente ninguna operación. Aunque esté en memo- ria preparado para ejecutarse al recibir una petición, es mejor que no pase en ningún momento por la CPU, ya que ésta puede utilizarse para otros procesos que sí que la necesitan. Internamen- te, el sistema operativo tiene implementados una serie de meca- nismos muy eficaces para gestionar toda esta clase de operaciones. De este modo, un proceso puede estar en los si- guientes estados (mostrados con el carácter correspondiente): ANOTACIONES – “D”: proceso ininterrumpible. Este tipo de proceso generalmente suele pertenecer a la entrada/salida de algún dispositivo que se dañaría si dejara de ser atendido. – “R”: proceso que en el momento de ejecutar el comando también se está ejecutando, o sea, todos aquellos que están en cola de ejecución. La cola de ejecución de procesos es donde se ponen todos aquellos que se van repartiendo el tiempo de la CPU. 42
  • 43. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © – “S”: proceso dormido o esperando que ocurra algún tipo de evento para que el sistema lo despierte y lo ponga en la cola de ejecución. – “T”: proceso que ha sido detenido por el usuario o el sistema. – “Z”: proceso zombie. Este estado indica que el proceso ha tenido algún fallo y no funciona correctamente. Generalmente es mejor eliminar este tipo de procesos. Otro comando muy útil es el top, que nos informa de forma interac- Contenido tiva de los procesos del sistema, del estado de utilización de la CPU, complementario la memoria utilizada y libre, la RAM que utiliza cada proceso, etc. Con los comandos de ma- Este programa es muy indicado cuando el sistema no responde ade- nipulación de procesos po- demos realizar cualquier cuadamente o notamos alguna disfunción extraña, ya que nos permite acción que nos interese: localizar rápidamente qué proceso está afectando negativamente al desde pausar los procesos rendimiento del sistema. de un usuario concreto, eli- minar aquellos que no nos interesan o hacer que algu- Como vemos, el sistema nos informa sobre todos los aspectos posi- nos ocupen más tiempo la CPU para que vayan más bles de los procesos del sistema. Además de esto, podemos enviar rápido. ciertas señales a los procesos para informarles de algún evento, po- demos sacarlos de la cola de ejecución, eliminarlos, darles más prio- Contenido ridad, etc. Saber manipular correctamente todos estos aspectos complementario también es muy importante, ya que nos permitirá utilizar nuestro or- Para tratar las señales en un denador de forma más eficiente. Por ejemplo, si somos administra- shell script (véase más ade- lante cómo programarlos), dores de un centro de cálculo donde la mayoría de aplicaciones que podemos utilizar el coman- se ejecutan necesitan mucho tiempo de CPU, podríamos configurar do trap. el sistema para hacer que los más urgentes se ejecuten con más prio- ridad que otros y acaben primero. El comando kill nos permite enviar señales a los procesos que nos interese. En general, todos los programas se diseñan para que puedan recibir este tipo de señales. ANOTACIONES De este modo, según el tipo de señal recibido saben que deben rea- lizar unas operaciones u otras. Hay muchos tipos diferentes de seña- les, que podemos ver en el manual de kill, aunque las más utilizadas son las que nos sirven para obligar a un proceso a que ter- mine o pause su ejecución. Con la señal TERM (“kill -15 PID”), le indicamos al proceso que queremos que termine, de modo que al recibir la señal deberá guardar todo lo necesario y acabar su ejecu- ción. Si hay algún tipo de problema o el programa no está prepara- do para recibir este tipo de señal, podemos utilizar KILL (“kill - 43
  • 44. © FUOC • 71Z799002MO © Software libre 9 PID”), que automáticamente lo expulsa de la cola de ejecución. killall sirve para referirnos al nombre de varios procesos a la vez en lugar de referenciarlos por su PID y, de esta forma, enviarles una señal a todos a la vez. Con el comando skill también podemos enviar señales a los procesos, pero con una sintaxis diferente. Por ejemplo, si queremos detener todas las ejecuciones de un determi- nado usuario, podríamos utilizar “skill -STOP -u nombreLo- gin”, con lo que todos los procesos de dicho usuario se pararían. Para reiniciarlos de nuevo, podríamos pasar la señal de CONT. Cuando estamos ejecutando algún programa en una consola y que- remos pasarle la señal de TERM, podemos utilizar la combinación de teclas CTRL+C. Con CTRL+Z podemos pausar un programa y re- vivirlo con fg. Otra manera de ver los procesos es por su jerarquía. Igual que en el sistema de ficheros, los procesos siguen una cierta jerarquía de pa- dres a hijos. Todo proceso debe ser lanzado a partir de otro, sea el propio intérprete de comandos, el entorno gráfico, etc., de manera que se crea una relación de padres a hijos. Con el comando pstree podemos ver esta jerarquía de forma gráfica. Si lo ejecutamos, vere- mos cómo el padre de todos los procesos es uno llamado init. A partir de éste parten todos los demás, que a la vez pueden tener más hijos. Esta estructura jerárquica es muy útil, ya que, por ejemplo, ma- tando a un proceso padre que contiene muchos otros hijos, también matamos a todos sus hijos. También nos puede servir para identificar de dónde parten ciertos procesos, etc. Si no le pasamos ningún pa- rámetro al comando, por defecto compacta todos los procesos con un mismo nombre para no mostrar una estructura demasiado gran- de, aunque esto también es configurable a partir de sus parámetros. Todos los procesos del sistema tienen una cierta prioridad. Como de- cíamos antes, esta prioridad indica el tiempo de CPU que se le dejará ANOTACIONES al proceso. Cuanto más prioritario sea el proceso, más tiempo de ejecución tendrá respecto a los otros. El rango de prioridades va des- de el –20 al 19, de mayor a menor. Para lanzar un proceso con una determinada prioridad, podemos utilizar el comando nice. Si que- remos dar una prioridad diferente a un proceso que ya esté en eje- cución, podemos utilizar renice. Sólo el root puede utilizar el rango de prioridades negativas; así, el sistema se asegura de que el root cuente siempre con la posibilidad de ejecutar procesos más rápida- mente que los usuarios. Por defecto, la prioridad con que se ejecutan 44
  • 45. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © los programas es la 0. Un aspecto que habrá que considerar es que con todo este mecanismo de prioridades no podemos medir el tiem- po de ejecución real de un proceso porque la CPU se reparte entre todos los que tengamos en la cola de ejecución. En centros de cálculo donde se factura según el tiempo de utilización de las máquinas, es muy importante poder medir adecuadamente este aspecto. Por este motivo, el sistema nos proporciona el comando time, el cual, al pa- sarle el programa que queremos medir, nos devuelve el tiempo real de CPU que ha utilizado. 2.5. Otros comandos útiles 2.5.1. La ayuda del sistema Como hemos dicho a lo largo del documento, todos los comandos tienen multitud de opciones y parámetros diferentes que nos permi- ten manipularlos a nuestra elección. Desde el principio se tuvo muy en cuenta que es imprescindible contar con una buena documenta- ción para todos ellos. Igualmente, toda esta información es necesa- ria para los ficheros de configuración del sistema, las nuevas aplicaciones que utilizamos, etc. Por ello, el mismo sistema incorpora un mecanismo de manuales con el que podemos consultar casi todos los aspectos de los programas, utilidades, comandos y configuracio- nes existentes. El comando más utilizado es el man, que nos enseña el manual del programa que le indicamos como parámetro. Por de- fecto, esta documentación se muestra por medio del programa less, con el cual podemos desplazarnos hacia delante y hacia atrás con las teclas de AVPÁG y REPÁG, buscar una palabra con el carác- ter “/” seguido de la palabra (“n” nos sirve para buscar las siguientes ANOTACIONES ocurrencias y “N” para las anteriores), “q” para salir, etc. Los manua- les del sistema están divididos en diferentes secciones según la natu- raleza de los mismos: 1) Programas ejecutables (aplicaciones, comandos, etc.). 2) Llamadas al sistema proporcionadas por el shell. 3) Llamadas a librerías del sistema. 45
  • 46. © FUOC • 71Z799002MO © Software libre 4) Archivos especiales (generalmente los de dispositivo). 5) Formato de los archivos de configuración. 6) Juegos. 7) Paquetes de macro. 8) Comandos de administración del sistema (generalmente aquellos que sólo el root puede utilizar) 9) Rutinas del núcleo. Si hay más de un manual disponible para una misma palabra, po- Contenido complementario demos especificarlo pasándole el número correspondiente de la sec- ción deseada antes de la palabra, por ejemplo “man 3 printf”. Para realizar sus búsquedas de forma rápida, la aplica- Como los otros comandos, man tiene multitud de opciones diferen- ción man utiliza una base tes documentadas en su propio manual (“man man”), a partir de las de datos interna que va a buscar por los archivos que cuales podemos hacer búsquedas automáticas, crear un fichero del contienen los manuales y manual en formato imprimible, etc. Una de estas opciones, que nos los indexa de forma ade- puede ir muy bien en las ocasiones que no sepamos exactamente el cuada. Si queremos actuali- zar este manual (aunque programa que estamos buscando, es “-k” (el comando apropos normalmente el mismo sis- hace casi exactamente lo mismo). Con “man -k” seguido de una pa- tema ya lo hace automáti- camente), podemos utilizar labra que haga referencia a la acción que queramos realizar se bus- el comando mandb. cará por entre todos los manuales del sistema y se mostrarán los que en su descripción o nombre aparezca la palabra indicada. Así, po- demos encontrar lo que queremos sin tener que recurrir a ningún li- bro o referencia externa al sistema. Si el manual no nos proporciona toda la información que necesita- mos, podemos usar el comando info, que es lo mismo que el ma- nual pero aún más extendido. Si lo único que queremos es tener una breve referencia de lo que hace un determinado programa/librería/ etc., podemos utilizar el comando whatis. ANOTACIONES 2.5.2. Empaquetado y compresión Comprimir un archivo, agrupar varios en uno solo o ver qué con- tiene un archivo comprimido son tareas que efectuaremos frecuen- temente para hacer copias de seguridad, transportar archivos de un sitio a otro, etc. Aunque existen multitud de programas diferen- tes que nos permiten llevar a cabo esta clase de operaciones, ge- 46
  • 47. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © neralmente en todos los sistemas GNU/Linux encontraremos la herramienta tar. Este programa nos permite manipular de cual- quier manera uno o varios archivos para comprimirlos, agruparlos, etc. Aunque sus múltiples opciones son inacabables y tiene muchí- sima flexibilidad, aquí sólo explicaremos algunas de las más bási- cas para hacernos una idea de lo que podemos hacer con él. La sintaxis que utiliza es la siguiente: “tar opciones archivoDes- tino archivosOrigen”, donde el archivo de destino será el nue- vo fichero que queremos crear y los de origen serán los que se agruparán o comprimirán. Es importante tener en cuenta que si queremos agrupar toda una carpeta, por defecto el proceso es re- cursivo, de forma que al empaquetarla ésta recorrerá todos sus ni- veles y agrupará todo lo que contenga. Para crear un nuevo archivo, debemos pasarle el parámetro “c”, y si lo queremos guar- dar en un archivo, debemos pasarle el “f”. De este modo, “ tar cf final.tar o*” empaquetará todos los archivos del directorio ac- tual que empiecen por “o”. Si además quisiéramos comprimirlos, podríamos utilizar “czf” con lo que se utilizaría el programa gzip después de empaquetarlos. Para desempaquetar un determinado archivo, el parámetro necesario es el “x”, de modo que debería- mos escribir “tar xf” indicando el fichero empaquetado. Si estu- viera comprimido, deberíamos pasar “xzf”. Aunque con el mismo tar podemos comprimir archivos, la aplica- ción en sí misma no es de compresión. Como hemos dicho, para ello utiliza programas externos como el gzip. El gzip utiliza un formato de compresión propio y diferente del tan popularizado zip, que también podemos utilizar instalando la aplicación correspondiente. Otra aplicación de compresión bastante utilizada y que proporciona muy buenos resultados es el bzip2. En la siguiente tabla podemos ver la extensión que se suele utilizar para identificar qué formato uti- liza un archivo comprimido o empaquetado: ANOTACIONES extensión formato “.tar” tar “.gz” gzip “.tgz” tar + gzip “.bz2” bzip2 “.zip” zip “.z” compress 47
  • 48. © FUOC • 71Z799002MO © Software libre 2.5.3. Operaciones de disco La gestión y manipulación de los discos duros del ordenador es otro Contenido complementario aspecto fundamental en las tareas de administración del sistema. Aunque más adelante veremos cómo configurar adecuadamente los El tamaño del bloque y otros muchos parámetros se pue- discos que tengamos instalados en el ordenador, en esta sección ex- den configurar al formatear plicaremos cuáles son los comandos necesarios para ver informa- una partición del disco duro (con el sistema ext2 o ext3). ción relativa a los mismos. Todo disco duro está dividido en Estos parámetros se pueden particiones, a las que podemos acceder como si de un dispositivo in- ajustar para hacer que el sistema se adapte mejor a dependiente se tratara, y denominaremos unidad. Esto es muy útil nuestras necesidades y con- porque nos permite separar de forma adecuada la información que seguir mayor eficiencia. tengamos en el sistema, para tener más de un sistema operativo ins- talado en el mismo disco, etc. El comando df nos muestra, de cada unidad montada en el sistema, el espacio que se ha utilizado y el que está libre. Vamos a interpretar la siguiente salida de df: Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda1 7787712 421288 6970828 6% / /dev/hdb1 19541504 5742384 13799120 29% /info /dev/hdc 664432 664432 0 100% /CD-ROM Como podemos ver, por cada partición o dispositivo montado en el sistema el comando nos muestra la cantidad de bloques disponibles y utilizados. El bloque de disco es una unidad que se utiliza interna- mente en los dispositivos de almacenamiento para que el manejo de los mismos sea más efectivo. Por defecto, este comando nos enseña la información por bloques de 1k, aunque pasándole el parámetro “-h” (human readable) lo podríamos ver de forma más amena. La primera línea siempre nos muestra la raíz del sistema de ficheros (el root filesystem) y después los otros dispositivos. Fijémonos como también nos muestra su punto de anclaje (en la última columna), que ANOTACIONES es la carpeta donde deberíamos ir para poder ver su contenido. Otro comando muy útil es du, que nos muestra realmente lo que nos ocupa un fichero en disco. Para entender claramente qué queremos decir con esto, debemos profundizar un poco más en la organización interna de los discos y en cómo el sistema operativo los manipula. Tal como decíamos anteriormente, por razones de eficiencia el siste- ma operativo divide el espacio del disco en pequeños trozos llama- 48
  • 49. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © dos bloques. El tamaño del bloque es configurable y generalmente depende del tamaño del disco, aunque también lo podemos confi- gurar para adaptarlo mejor a nuestras necesidades. Cada vez que queremos añadir un nuevo archivo, el sistema operativo le asigna un bloque. De este modo, al leer u operar sobre él, el operativo puede leer directamente todo un bloque (del tamaño configurado) en un solo paso. Cuando el fichero ocupa más de un bloque, se le asignan más, intentando que queden lo más juntos posible, de modo que se puedan leer consecutivamente e incrementando, así, la velocidad de lectura. El único inconveniente de este sistema es el desaprovecha- miento que se hace de los bloques cuando los ficheros son muy pe- queños, ya que si un determinado archivo no ocupa todo el bloque, el espacio restante no se puede aprovechar para ningún otro. De to- dos modos, este tipo de organización es el que utilizan todos los sis- temas de ficheros existentes, ya que es lo más rentable para aprovechar el disco duro. El comando du, pues, nos muestra el nú- mero de bloques que realmente utiliza un determinado archivo en el disco. Para saber los parámetros que tenemos configurados en nuestras Contenido unidades de disco formateadas con ext2 o ext3, podemos utilizar el complementario comando dumpe2fs, pasándole la partición concreta. Veremos La desfragmentación de un cómo hay multitud de opciones diferentes que nos permiten ajustar disco no es más que la reor- muy bien el comportamiento del mismo (en el manual encontrare- ganización de los bloques de los ficheros para que mos qué significa cada opción). De todos modos, una vez hayamos queden en lugares consecu- formateado una partición, ya no podremos modificar casi ninguna tivos y su acceso sea más rápido. En los sistemas de de estas opciones. Si quisiéramos cambiarlas, deberíamos copiar ficheros que utilizamos con toda la información de la partición, formatear de nuevo y volver a GNU/Linux no hace falta copiar los archivos originales. desfragmentar los discos (aunque hay programas al efecto) porque el sistema se Las funciones del núcleo que se encargan de la gestión de ficheros encarga automáticamente de su buena organización. utilizan una serie de métodos para agilizar los procesos de lectura y ANOTACIONES escritura de los mismos. Uno de ellos es la utilización de una caché de disco, de forma que no se haya de estar constantemente leyendo y escribiendo en el dispositivo físico, que resulta un proceso lento y costoso. Lo único que hace el mecanismo de caché es mantener una copia del fichero con el que se está trabajando en la memoria RAM (mucho más rápida), de modo que el proceso sea transparente para el usuario (la copia a disco se realiza según algún tipo de política im- plementada en el núcleo). El único problema de esta gestión es que si tenemos un corte en la alimentación y no hemos cerrado correcta- 49
  • 50. © FUOC • 71Z799002MO © Software libre mente el sistema, es posible que algunos ficheros no se hayan podi- do guardar en el disco físico y tengamos alguna inconsistencia en el sistema de ficheros. El programa fsck comprueba y arregla un sis- tema de ficheros que haya quedado en este estado. Aunque lo po- demos ejecutar cuando queramos, generalmente el mismo sistema operativo lo ejecuta cuando en el proceso de arranque detecta que el sistema no se cerró adecuadamente (antes de apagar el ordena- dor, debemos ejecutar el comando shutdown, que se encarga de lanzar todos los procesos necesarios para que los programas aca- ben, se desmonte el sistema de ficheros, etc.). En este sentido, el sis- tema de ficheros ext3 es más eficaz que su predecesor, ya que el journaling le permite recuperar más información de los ficheros per- didos y más rápidamente. Naturalmente, si los ficheros que tratamos en nuestro sistema son muy críticos y no podemos, en ningún caso, permitirnos el hecho de perderlos, también podemos configurar el operativo para que no uti- lice el sistema de caché de disco. De todos modos, es muy recomen- dable utilizar este mecanismo porque incrementa mucho el rendimiento del sistema. Si en algún momento nos interesa sincroni- zar la información de la caché de disco con el disco físico, podemos utilizar el comando sync. Finalmente, también podemos comprobar la integridad física de una partición utilizando el comando bad- blocks, que lleva a cabo un chequeo sobre el dispositivo indicado para comprobar que no haya ninguna zona dañada. La mayoría de los comandos expuestos en esta sección necesitan de permisos especiales para ejecutarse, de forma que sólo el root podrá utilizarlos. ANOTACIONES 2.6. Operaciones con comandos 2.6.1. Redireccionamientos Una vez hemos aprendido a utilizar algunos de los comandos del sis- tema, es muy probable que en algunos casos nos interese utilizarlos de forma simultánea para agilizar las acciones que queremos reali- zar. Una operación muy interesante consiste en poder coger la salida 50
  • 51. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © de un comando para que sirva de entrada a otro y procesarla ade- cuadamente. El sistema operativo utiliza un mecanismo de pipes (tu- berías), que nos permite redirigir las salidas de cualquier comando o programa hacia donde queramos. Su funcionamiento es muy sim- ple: se trata de poner el carácter “|” entre los comandos, de manera que la salida del primero sirve como entrada para el segundo. Va- mos a verlo con un ejemplo: al escribir el comando “echo campo1:campo2:campo3:campo4”, lo único que conseguiríamos sería que por pantalla nos apareciera “campo1:campo2:campo3: campo4”. Si de esta salida sólo quisiéramos coger el “ campo3”, po- dríamos redirigirla con un pipe hacia el comando cut, para que se- leccione únicamente el campo que nos interesa de la siguiente manera: “echo campo1:campo2:campo3:campo4 | cut -d: -f 3”. En la siguiente figura podemos ver este ejemplo de forma gráfica: Naturalmente, podemos conectar tantos pipes como necesitemos para realizar acciones más prácticas que la que acabamos de ver. Otro tipo de redireccionamientos muy prácticos son aquellos que es- ANOTACIONES tán relacionados con los ficheros. Este tipo de redireccionamiento nos permite coger toda la salida de un comando o programa y guar- darla en un fichero utilizando el carácter “>”, igual que hacíamos con “|”. Por ejemplo, si queremos guardar en un nuevo fichero todo lo que vayamos escribiendo hasta apretar CTRL+C, podríamos utili- zar lo siguiente: “cat > prueba.txt”. Con “>>” podemos hacer exactamente lo mismo, pero en lugar de crear siempre el nuevo fi- chero, si éste ya existiera, se añadiría la información al final del mis- mo. Con “<” el redireccionamiento se realiza en sentido contrario, 51
  • 52. © FUOC • 71Z799002MO © Software libre de modo que el contenido del fichero que le indicamos se dirigirá ha- cia el comando o programa señalado. Un aspecto muy interesante que debemos conocer es que en siste- mas tipo UNIX se separa la salida normal de un programa con la de los errores. Aunque por defecto las dos salidas están dirigidas a la consola donde se ha ejecutado el programa, podemos manipularlas para que se dirijan hacia donde queramos. Para ver esto de manera práctica, probamos de borrar un fichero que no existe con la siguien- te instrucción: “rm fichero > resultados”. Aunque estamos re- direccionando la salida del comando hacia el fichero de resultados, por pantalla nos aparecerá un mensaje de error indicando que no se ha encontrado el fichero. Esto es debido a que por defecto los redi- reccionamientos sólo aceptan la salida estándar del programa y no la de error, que por defecto también se muestra por pantalla. Para redirigir la salida de error, deberíamos indicar, antes del carácter “>” el número “2”, que es la salida de error (la “1” es la normal). De esta manera, ejecutando “rm fichero 2 > resultados” sí que con- seguiríamos que la salida se redirigiera al archivo de resultados. También podemos guardar la salida normal y la de errores en dos ficheros diferentes: “rm fichero 1> resultados 2> errores”. Si por el contrario quisiéramos que todas las salidas se dirigieran hacia un mismo archivo, podríamos utilizar “>&”. Además, con el ca- rácter “&” podemos encaminar salidas de un tipo hacia otras; por ejemplo, si quisiéramos encaminar la salida de errores hacia la nor- mal, podríamos indicarlo del siguiente modo: “2>&1”. Es importante tener en cuenta que el orden de los redireccionamiento es significativo: siempre se ejecutan de izquierda a derecha. 2.6.2. Comandos específicos del bash ANOTACIONES Aunque algunos de los comandos que hemos visto ya son específicos del bash, este intérprete de comandos dispone de otros que nos pue- den servir para realizar otras muchas operaciones interesantes. Un mecanismo muy útil es el de ejecutar procesos en lo que se llama modo background. Este modo indica sencillamente que el proceso se está ejecutando, pero que el shell nos devuelve la línea de coman- dos para poder seguir ejecutando otros programas. Para indicarle esto al bash, debemos escribir el carácter “&” después del comando 52
  • 53. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © o programa que vamos a ejecutar. Una vez se ha lanzado el proceso en modo background, se muestra una línea donde se nos indica el número de trabajo y PID del proceso lanzado. Con el comando jobs podemos ver qué procesos están lanzados en modo background (pasándole el parámetro “-l” también podre- mos ver su PID). Si quisiéramos pasar uno de estos procesos a modo foreground (como si lo hubiéramos lanzado desde la línea de co- mandos sin el carácter “&”), podemos utilizar el comando fg indi- cando el PID del proceso. También existe bg, que nos envía un determinado proceso a modo background. Este último es útil cuan- do, por ejemplo, ejecutamos un programa en modo foreground y lo pausamos con CTRL+Z. Si después ejecutamos bg indicándole su PID, el proceso continuará su ejecución en modo background. Tal como veíamos en secciones anteriores, los procesos también tienen un jerarquía de padres a hijos. Cuando ejecutamos algún programa en modo background no estamos interfiriendo en esta jerarquía, de modo que si salimos de la sesión, todos etos procesos se acabará porque el padre (el intérprete de comandos desde donde los hemos lanzado) ya no estaría en ejecución. Si queremos desvincular un pro- ceso de su padre,podemos utilizar disown. Otro mecanismo muy útil del bash es la historia de comandos. Es nor- Contenido mal que utilizando el sistema debamos repetir muchas instrucciones complementario escritas anteriormente. Con las teclas del cursor arriba y abajo pode- El bash nos proporciona in- mos ir viendo todos los comandos que hemos ido utilizando y repetir finitud de herramientas para regular cualquier as- alguno apretando RETURN. También podemos utilizar history, con pecto del intérprete de co- el cual se mostrarán por pantalla todos los comandos ejecutados, enu- mandos. En su extenso merados según su aparición. Escribiendo “!NUM” se ejecutará el que manual podemos encontrar la documentación necesaria se corresponda con esta historia. También podemos escribir “!” segui- para aprender a manipular- do de las letras iniciales de algún programa ejecutado anteriormente las correctamente. y el programa buscará el más reciente para ejecutarlo. ANOTACIONES El bash dispone, asimismo, de teclas de acceso rápido que nos per- miten ejecutar ciertas acciones sin ni siquiera escribirlas. Algunas de las más frecuentes son: • TAB: no es necesario escribir el nombre de un fichero, directorio o comando enteramente. Si escribimos los primeros caracteres y después apretamos la tecla del tabulador nos acabará de escribir 53
  • 54. © FUOC • 71Z799002MO © Software libre el resto. Si hubiera más de una coincidencia nos mostraría las di- ferentes posibilidades. • CTRL+L: limpia la pantalla (igual que el comando clear). • SHIFT+REPÁG: enseña media pantalla anterior. • SHIFT+AVPÁG: enseña media pantalla posterior. • CTRL+W: elimina la última palabra escrita. • CTRL+T: intercambia el orden de los últimos caracteres. • CTRL+U: borra todos los caracteres anteriores al cursor. • CTRL+D: sale del intérprete de comandos (equivalente a hacer un logout). • ulimit es un comando que nos permite configurar algunos de los aspectos internos relacionados con el bash. Por ejemplo, per- mite indicar la cantidad de memoria que puede utilizar el intér- prete de comandos, el número máximo de archivos que se pueden abrir, etc. Este comando puede servirnos para restringir un poco las acciones que pueden hacer los usuarios de nuestro sistema (en caso de administrar servidores con muchos usuarios). 2.6.3. Shell scripts con bash Los shell scripts son ficheros donde escribimos una serie de coman- Contenido complementario dos (cualquiera de los que hemos visto en este capítulo) para que sean ejecutados. Aunque su sintaxis puede llegar a ser muy compleja El comando fc nos permite, ANOTACIONES igual que los shell scripts, y tendríamos que entrar en aspectos de programación para enten- escribir una serie de coman- derla claramente, en esta sección explicaremos de forma resumida dos para que se ejecuten pero sin tener que guardar algunas de sus características esenciales para que podamos enten- el archivo. derlos y utilizarlos mínimamente (si queremos profundizar más en ellos, podemos recurrir al manual del bash). La primera línea del shell script debe especificar el intérprete de comandos que se utiliza: #!/bin/bash 54
  • 55. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Después de esta línea ya podemos empezar a escribir los comandos que queremos ejecutar, uno en cada línea. Como en todo lenguaje de programación, podemos utilizar variables, estructuras condicio- nales y bucles. Para declarar una variable utilizaremos la siguiente sintaxis: nombreVariable=contenido Si el contenido es una cadena de caracteres, debemos ponerlo entre comillas, si es un número, no hace falta poner nada y si queremos guardar en la variable la salida de un comando, deberíamos ponerlo entre caracteres. Para referirnos al contenido de la variable en otras instrucciones, siempre debemos preceder al nombre con el carácter “$”. Para las instrucciones condicionales podemos utilizar las si- guientes estructuras: if condicion; then instrucciones else instrucciones fi donde condición puede hacer referencia a un archivo, realizar al- guna operación de comparación aritmética (entre caracteres “ (( ))”), etc. De especial utilidad es el comando test, que nos permite hacer comprobaciones de archivos, directorios, etc. y nos devuelve un booleano. De este modo, por ejemplo, si quisiéramos realizar una acción u otra según si existiera un determinado archivo, podría- mos utilizar la siguiente estructura: if test -f /etc/inittab; then echo “El fichero inittab existe.” ANOTACIONES else echo “El fichero inittab NO existe.” fi Otra estructura condicional es la de selección: case palabra in caso1) 55
  • 56. © FUOC • 71Z799002MO © Software libre instrucciones ;; caso2) instrucciones ;; *) instrucciones esac En esta estructura se compara palabra con caso1, caso2, etc., Contenido complementario hasta encontrar la que coincida, en la que se ejecutarán las instruc- ciones del caso. Si no se encontrara ninguna, se pasaría a la sección Para escribir comentarios en los shell scripts podemos “*)”, que es opcional. Esta estructura puede irnos muy bien cuando, utilizar el carácter “#” se- por ejemplo, queramos que un determinado script haga unas accio- guido del comentario que queramos. Éste será válido nes u otras según el parámetro que le pasemos. Los parámetros los hasta final de línea. podemos referenciar a partir de “$1” para el primero, “$2” para el segundo y consecutivamente. Para los bucles podemos utilizar algu- na de las siguientes estructuras: #BUCLE TIPO FOR for i in lista; do instrucciones done #BUCLE TIPO WHILE while condición; do instrucciones done Naturalmente, antes de poder ejecutar un shell script debemos dar el permiso de ejecución al fichero correspondiente (comando chmod 750 nombreFichero). ANOTACIONES 56
  • 57. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © 3. Taller de Knoppix 3.1. Introducción Este taller pretende llegar a ser vuestra primera experiencia con un entorno UNIX. Por esta razón, su desarrollo es guiado paso a paso, dejando, por supuesto, la puerta abierta a los más curiosos para que investiguen por cuenta propia. Con él se pretende mos- trar de forma práctica todo lo que se ha expuesto hasta ahora de forma teórica. Todo el taller puede desarrollarse sobre cualquier PC, ya que el riesgo de dañar la información que podemos tener es mínimo. Se ha escogido esta distribución porque para arrancarla no se re- quieren conocimientos previos del sistema operativo, y porque, una vez detenido el sistema, no deja rastro, a no ser que nosotros lo forcemos (KNOPPIX, por defecto, no monta en el sistema los discos duros, así que nuestros datos están a salvo), en el ordena- dor por donde se ha hecho correr. Obviamente, si se dispone de un sistema operativo tipo UNIX, se puede usar para hacer el se- guimiento del taller. El hecho de ser una distribución arrancable (bootable) desde un CD- ROM y no dejar rastro en el ordenador donde se ha ejecutado, una vez ha terminado el proceso de parada, hace que, aun estando ba- sado en Debian, el sistema de ficheros no siga lo que marca la De- bian Policy al respecto. No obstante, estas diferencias no afectarán ANOTACIONES al desarrollo del taller, y, todo lo que aprendamos será válido para los posteriores. Además, es bueno que desde el principio nos acos- tumbremos a trabajar con distintas distribuciones, y aprendamos a distinguir entre lo que es común a todos los sistemas basados en UNIX y lo que es propio de cada distribución. Antes de empezar sólo un consejo: adelante con nuestras propias ini- ciativas, intentemos responder nosotros mismos a nuestras inquietu- 57
  • 58. © FUOC • 71Z799002MO © Software libre des, consultemos los man, hagamos pruebas, fallemos y analicemos el porqué lo hemos hecho, intentémoslo de nuevo, una y otra vez, hasta conseguir los resultados deseados; es así como se aprende UNIX, sin miedo, sacando partido de los propios fallos. 3.2. Arranque del sistema En primer lugar debemos asegurarnos de que nuestro ordenador arrancará desde el CD-ROM. Para ello, entraremos en la BIOS (Basic Input Output System), generalmente pulsando la tecla Supr durante el proceso de chequeo de la memoria RAM, y comprobaremos que el CD-ROM está configurado como primer dispositivo de arranque; si es así, ya podemos salir de la BIOS sin necesidad de guardar nada y poner el CD-ROM de KNOPPIX en el lector. Si no fuese el caso, ha- ríamos los cambios pertinentes y los salvaríamos antes de salir de la BIOS. Tras reiniciar el ordenador, transcurridos unos segundos nos apare- cerá la pantalla de arranque de KNOPPIX con las siguientes líneas en la parte inferior: F2 for help boot: Podemos pulsar la tecla F2 para entrar en la pantalla donde se nos muestran las opciones que acepta KNOPPIX para arrancar. Podría- mos, por ejemplo, arrancar con teclado español y lengua castellana para la interacción, con GNOME como Windows manager y activar el scroll wheel del ratón; para hacerlo, bastaría con teclear en la lí- ANOTACIONES nea de comandos ( oot:) lo siguiente “knoppix lang=es gnome b wheelmouse”. Pero no es el caso; el ejemplo anterior era sólo para mostrar la potencia de KNOPPIX; nosotros, después de insertar en la disquetera un disquete nuevo formateado –sobre el que daremos nuestros primeros pasos en Linux, garantizando así el resto de infor- mación que podamos tener en nuestros discos duros– sólo escribire- mos “knoppix 2” y pulsaremos INTRO para arrancar el sistema en modo texto. 58
  • 59. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Inicialmente, el teclado está configurado para EUA (us), así que al- gunos caracteres no se corresponden con el teclado español; esto lo arreglaremos en seguida; aun así, puede ser de interés saber dónde se encuentran algunos caracteres us en el teclado español: “=” está en la tecla <>, “/” en -_ y “-” en la tecla ’?. Una vez pulsado INTRO, KNOPPIX empezará a cargar el sistema operativo, devolviendo por pantalla algunos de los resultados de los tests que va ejecutando para la autoconfiguración. Una vez terminado este proceso, se obtendrá la línea de comandos root@tty1[/]#: Welcome to the KNOPPIX live Linux-on-CD! Found SCSI device(s) handled by atp870u.o. Accessing KNOPPIX CD-ROM at /dev/scd0... Total memory found: 515888 kB Creating /ramdisk (dynamic size=407928k) on /dev/shm...Done. Creating directories and symlinks on ramdisk...Done. Starting init process. INIT: version 2.78-knoppix booting Processor 0 is AMD Athlon(TM) XP 2100+ 1732MHz, 256 KB Cache APM Bios found, power management functions enabled. USB found, managed by hotplug. Enabling hotplug manager. Autoconfiguring devices... Done. Mouse is Generic 3 Button Mouse (PS/2) at /dev/psaux Soundcard: CM8738, driver=cmpci AGP bridge detected. Video is ATI|Radeon 7500 QW, using XFree86(radeon) Server Monitor is LTN 020e, H:31-60kHz, V:55-75Hz Using Modes “1024x768” “800x600” “640x480” ANOTACIONES Enabling DMA acceleration for: hde. Scanning for Harddisk partitions and creating /etc/fstab... Done. Network device eth0 detected, DHCP broadcasting for IP. (Backgrounding) Automounter started for: floppy CD-ROM CD-ROM1. INIT: Entering runlevel: 2 root@tty1[/]# Ya estamos dentro del sistema. En este caso no ha hecho falta ni usuario ni password, hemos entrado como root directamente; lo no- 59
  • 60. © FUOC • 71Z799002MO © Software libre tamos porque el prompt termina con el carácter “#”. Para cualquier otro usuario distinto del de root, el último carácter sería “$”. 3.3. Paro del sistema Una vez dentro, lo primero que debemos saber, tal como ya se ha re- marcado, es cómo pararlo. Recordemos una vez más que no pode- mos parar el ordenador sin haber detenido antes el sistema operativo. Hay múltiples maneras de hacerlo. Las más comunes son: pulsar la combinación de teclas CTRL+ALT+Supr o mediante el comando halt (hay muchas más, mediante el comando reboot, cambiando de runlevel a 0 o 6, etc.). Una vez hayamos dado la orden al sistema para que se detenga, éste empezará a ejecutar las instrucciones perti- nentes de paro (desmontado de dispositivos, parada de procesos, etc.), y al final de todo este proceso, KNOPPIX expulsará el CD-ROM , y nos pedirá que pulsemos INTRO para parar el ordenador. 3.4. Configuración del teclado Una vez sabemos cómo parar el sistema y volvemos a estar en él si- guiendo los mismos pasos de arranque anteriores, lo primero que debemos hacer es configurar el mapeo del teclado correctamente. Hay dos formas de hacerlo, manualmente: root@tty1[/]#loadkeys /usr/share/keymaps/i386/qwerty/es.kmap.gz ANOTACIONES o bien gráficamente con el comando kbdconfig y escogiendo la opción “es es”. Es importante recordar que siempre tenemos la opción de autocom- pletar pulsando TAB una vez, si sólo hay una opción posible, y que se autocomplete; o dos veces seguidas, si hay más de una opción, y que se nos muestren las posibilidades. Podemos probarlo con el co- mando loadkeys mismo. Tecleamos sólo una “ y pulsamos TAB l” 60
  • 61. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © una vez, el sistema emite un pitido; y una segunda para obtener lo siguiente: root@tty1[/]# l Display all 143 possibilities? (y or n) En este caso no queremos que se nos muestren las 143 posibilida- des. Pulsamos, pues, “n”, añadimos una “o” y repetimos la opera- ción anterior de pulsar dos veces TAB. Ahora obtenemos un resultado distinto: root@tty1[/]# lo loadkeys locale-gen lockfile-create logger logredo lookbib loadshlib localedef lockfile-remove login logresolve lorder local locate lockfile-touch logname logrotate losetup locale lockfile logdump logout look root@tty1[/]# lo Vemos que sólo falta añadir “adk” y volver a pulsar TAB para que funcione el autocompletado obteniendo: root@tty1[/]# loadkeys El autocompletado también sirve para hacer referencia a ficheros y di- rectorios. Basta con teclear “loadkeys /u” y pulsar TAB para obtener: root@tty1[/]# loadkeys /usr y volver a pulsar TAB para obtener: ANOTACIONES root@tty1[/]# loadkeys /usr/ El autocompletado es una herramienta muy útil, no sólo porque aho- rra teclear, sino porque además sirve para verificar que hemos escri- to correctamente tanto los comandos, como los directorios y ficheros. Es una herramienta que, una vez acostumbrados a usarla, su ausen- cia se hace notar. 61
  • 62. © FUOC • 71Z799002MO © Software libre 3.5. Inspección del sistema Una vez tenemos el teclado configurado, podemos proceder a ins- peccionar un poco el sistema. En primer lugar, ¿en qué sitio de la es- tructura de directorios nos encontramos actualmente? Lo podemos saber mediante el comando pwd: root@tty1[/]# pwd / Estamos en la raíz del sistema, lo sabemos por el retorno del coman- do pwd, pero también lo hubiéramos podido saber leyendo la infor- mación que nos da el prompt: “root@tty1[/]#”. Anteriormente ya hemos entendido el significado del carácter “#”, conozcamos ahora el resto de información que éste nos da: “root”, en este campo aparece el nombre de usuario, root en este caso, información un tanto redundante, pues de la misma manera indica el carácter “#”, pero para el resto de usuarios es interesante. Después del carácter “@”, que simplemente sirve para separar cam- pos, hay “tty1”, este campo nos indica en qué terminal nos encon- tramos, y es que, tal como ya se ha dicho, Linux es multiusuario y multiproceso; así pues, no es de extrañar que podamos acceder al sistema desde varios terminales. Concretamente KNOPPIX ofrece, por defecto, cuatro terminales, a los que podemos acceder mediante las combinaciones de teclas ALT+F1 (tty1), ALT+F2 (tty2), ALT+F3 (tty3) y ALT+F4 (tty4); esto es extremadamente útil, ya que nos per- mite tener hasta cuatro sesiones de trabajo, pudiendo, por ejemplo, estar probando un comando en una, en otra tener el man del co- mando en cuestión para ir leyendo sus opciones, mientras que en ANOTACIONES otra podemos tener un editor abierto para ir tomando nota de lo que vamos haciendo (muchas distribuciones ofrecen seis terminales modo texto, reservando el séptimo para el terminal gráfico; en KNO- PPIX el terminal gráfico, si se ha habilitado, y no es nuestro caso, se hallaría en el quinto terminal). Así pues, probamos la combinación ALT+F2, observamos ahora que en el campo que estamos estudian- do aparece “tty2”, y ejecutamos un comando, por ejemplo man man, para leer el man de la aplicación man. 62
  • 63. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © De momento la dejamos ahí y volvemos a la tty1, y comprobamos que todo está como lo habíamos dejado. Finalmente, y siguiendo con la interpretación del prompt, antes del campo ya conocido “#”encontramos “[/]”: aquí se nos indica el di- rectorio actual, el raíz en este caso, tal y como nos había informado el comando pwd. La diferencia radica en que el prompt sólo nos informa del directorio actual, mientras que pwd nos devuelve la ruta completa. Podemos ahora listar los contenidos del directorio en el que estamos. Para hacerlo, utilizaremos el comando ls, primero sin pasarle ningu- na opción, y después dos para indicarle que nos devuelva informa- ción más detallada (normalmente las opciones van precedidas de “-”, aunque hay comandos que no lo exigen, y una vez puesto el “-” se pueden concatenar como se hace en el ejemplo): root@tty1[/]# ls KNOPPIX bin boot CD-ROM dev etc home lib mnt opt proc ramdisk sbin tmp usr var root@tty1[/]# ls -la total 45 drwxr-xr-x 9 root root 1024 Mar 2 18:37 . drwxr-xr-x 9 root root 1024 Mar 2 18:37 .. drwxr-xr-x 20 root root 4096 Jan 18 18:05 KNOPPIX lrwxrwxrwx 1 root root 12 Jan 18 17:58 bin -> /KNOPPIX/bin drwxr-xr-x 9 root root 1024 Mar 2 18:37 . lrwxrwxrwx 1 root root 13 Jan 18 17:58 boot -> /KNOPPIX/boot dr-xr-xr-x 5 root root 2048 Jan 4 03:34 CD-ROM drwxr-xr-x 3 root root 29696 Mar 2 17:58 dev drwxr-xr-x 139 root root 6144 Mar 2 17:49 etc lrwxrwxrwx 1 root root 13 Mar 2 18:37 home -> /ramdisk/home ANOTACIONES lrwxrwxrwx 1 root root 12 Jan 18 17:58 lib -> /KNOPPIX/lib drwxr-xr-x 13 root root 1024 Mar 2 17:38 mnt lrwxrwxrwx 1 root root 12 Jan 18 17:58 opt -> /KNOPPIX/opt dr-xr-xr-x 30 root root 0 Mar 2 18:37 proc drwxrwxrwt 4 root root 80 Mar 2 18:37 ramdisk lrwxrwxrwx 1 root root 13 Jan 18 17:58 sbin ->/KNOPPIX/sbin lrwxrwxrwx 1 root root 8 Jan 18 17:58 tmp-> /var/tmp lrwxrwxrwx 1 root root 12 Jan 18 17:58 usr -> /KNOPPIX/usr 63
  • 64. © FUOC • 71Z799002MO © Software libre Fijémonos en los distintos colores con los que se nos muestran los resul- tados (podemos observar los colores citados en nuestro PC a medida que vayamos progresando en el taller de Knoppix): azul marino para los directorios; magenta para los enlaces simbólicos, cuyo destino se nos muestra después de la combinación de caracteres “->”; verde para los scripts y ejecutables (aunque, obviamente, en el directorio raíz no espe- ramos encontrar ninguno de ellos, ya que, tal como hemos visto, en UNIX el orden dentro del sistema de ficheros es muy rígido), etc. Entremos en algún directorio donde seguro que encontraremos eje- cutables, por ejemplo /usr/bin/ (para hacerlo, ejecutemos “cd / usr/bin/”). El directorio /usr/ es en realidad un enlace simbó- lico sobre /KNOPPIX/usr/; podríamos, pues, acceder a sus conte- nidos entrando en él directamente mediante el comando cd, o bien seguir mediante el mismo comando el destino real. Sin embargo, es- cogemos la primera opción, pues cuando nos encontremos en un sis- tema UNIX instalado en un disco duro este directorio será un directorio real: root@tty1[bin]# ls -la total 171831 drwxr-xr-x 2 root root 311296 Jan 18 18:04 . drwxr-xr-x 14 root root 2048 Aug 17 2002 .. -rwxr-xr-x 1 root root 5380 Apr 1 2002 411toppm -rwxr-xr-x 1 root root 1649 Sep 15 20:36 822-date -rwxr-xr-x 1 root root 1971 Jun 5 2002 AbiWord . . . -rwxr-xr-x 1 root root 17992 Sep 16 22:34 zsoelim -rwxr-xr-x 1 root root 966 Sep 4 13:53 zxpdf ANOTACIONES Probablemente no hayamos podido ver más que las últimas líneas de las que han cruzado la pantalla. Podemos visualizar algunos re- sultados más pulsando Shift+RePág para retroceder en listado y Shift+AvPág para avanzar; aun así, el búffer del terminal tiene un lí- mite, y probablemente tampoco podremos visualizar, mediante esta técnica, toda la información devuelta por el comando ls. Debemos, pues, recurrir a otras técnicas, el redireccionamiento de la salida (en 64
  • 65. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © este caso sobre un fichero) o el uso de pipes “|” y paginadores ( less en este caso, que usa las teclas RePág y AvPág para desplazar el con- tenido mostrado por pantalla, y la tecla “q” para salir). Utilizaremos esta última, ya que no nos interesa para nada guardar un listado del contenido de un directorio, aprovecharemos, asimismo, para poner en práctica otra utilidad que nos ahorrará teclear: pulsando los cur- sores de arriba y abajo podemos desplazarnos por todas las líneas de comandos que hemos pasado al sistema; así pues, para obtener la línea deseada, “ls -la | less”, bastará con pulsar una vez el cursor de arriba y añadir “| less”. less es un paginador muy potente que KNOPPIX, y la mayoría de distribuciones, usa para mostrar los contenidos de los man (aunque, como la mayoría de servicios en Linux, lo podemos configurar a nuestro gusto). Así pues, podemos hacer un “man less” para infor- marnos un poco sobre este comando, y de paso irnos acostumbran- do a la morfología de esta ayuda. Obviamente, ya que estamos bajo less, para salir de man basta con pulsar la tecla “q”. Fijémonos en que en todos los listados de contenidos de directorios que hemos ido haciendo siempre aparecen, al principio de todo, dos directorios un tanto especiales: “.” y “..”; al crear directorios, éstos son creados automáticamente por el sistema como subdirectorios del directorio creado, y contienen información muy especial: “ hace .” referencia al propio directorio (de modo que, si hacemos, por ejem- plo, un “ls -la . ”,obtendremos la misma información que hacien- do un “ls -la”) y “..” hace referencia al directorio padre (haciendo un “ls -la ..” obtendremos el listado de contenidos del directorio padre). Actividad 5. Hacer un man del comando ls y entender qué fun- ANOTACIONES ciones tienen los parámetros “-a” y “-l”. ¿Recordamos dónde estamos dentro del sistema de ficheros? ¿No? Pues el comando pwd nos lo recordará. Volvamos al directorio raíz. Hay básicamente dos formas de hacerlo, y otra especial para este caso; de cualquier manera, todas se basan en el uso del comando cd, diferenciándose entre ellas por el argumento que le pasamos en cada uno de los casos. El primer modo de ir es volviendo a los direc- 65
  • 66. © FUOC • 71Z799002MO © Software libre torios padre paso a paso, mediante “cd ..” (atención, el sistema no entiende “cd..”, ya que interpreta que estamos intentando ejecutar un comando llamado “cd..”, que no existe), iterativamente hasta llegar al directorio raíz (lo veremos en el prompt). La segunda es más eficaz, ya que con una sola línea de comandos conseguiremos nues- tro propósito, ir al directorio deseado, pasándolo como argumento al comando cd, “cd / ” en este caso; esta segunda opción es mucho más potente, ya que permite pasar directamente a directorios que pertenecen a distintas ramas, podríamos, por ejemplo, haber hecho “cd /etc/rcS.d/” (la última barra es opcional) para ir a este di- rectorio, estando en /usr/bin/. Como hemos dicho, para este caso hay una tercera opción para conseguir el mismo fin y con va- riaciones: se trata de ejecutar cd sin pasarle ningún argumento, y nos situaríamos directamente en la raíz del sistema, ya que éste es, en el caso de KNOPPIX (caso excepcional y un tanto peculiar, ya que en la mayoría de distribuciones, y según el Filesystem Hierarchy Stan- dard (http://www.pathname.com/fhs), root debe tener un home pro- pio /root), el directorio home de root; una variación de este método es “cd ”, ya que “ ” es equivalente al home del usuario, el direc- torio raíz en este caso. Aún existe otra opción para volver al directorio raíz, o mejor dicho, para volver al directorio del que venimos, el raíz, ya que habíamos ejecutado “cd /usr/bin”, y que es “cd -”, ya que en “-” se guarda el último directorio donde hemos estado antes del actual. 3.6. Manejo de directorios y ficheros Una vez examinadas diferentes opciones para hacer lo mismo, nos hallamos todavía en el directorio raíz. Podemos aprender ahora a crear directorios y ficheros, moverlos, copiarlos, borrarlos, etc. Lo ANOTACIONES haremos sobre el disquete que hemos introducido al arrancar KNOPPIX, y que el sistema mismo, al arrancar, lo ha automontado (más adelante aprenderemos cómo montar y desmontar dispositi- vos). Recordemos que en UNIX los dispositivos antes de poderse usar deben ser montados, y que antes de retirar el soporte deben ser desmontados. Este último punto es extremadamente importan- te, ya que si no, la integridad de los datos no está en absoluto ga- rantizada. Podemos, por ejemplo, antes de proceder a trabajar sobre el disquete, intentar retirar el CD-ROM pulsando el botón de 66
  • 67. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © expulsión. ¡Oh, sorpresa!, no se puede; no pensemos que se ha es- tropeado el dispositivo y menos que lo haya hecho Linux. Simple- mente sucede que este dispositivo también ha sido montado automáticamente por el sistema durante el arranque, y que, por tanto, ha pasado a formar parte de éste; no tendría ningún sentido que pudiésemos retirar el CD-ROM sin antes informar al sistema; así pues, éste ha tomado el control de este dispositivo y, entre otras cosas, ha deshabilitado el botón de expulsión del CD-ROM, preci- samente con el fin de que accidentalmente éste sea retirado sin an- tes ser desmontado. No sucede lo mismo con la disquetera: en este dispositivo la expulsión se hace de forma puramente mecánica, así que es imposible que el sistema pueda impedir que nosotros expul- semos el disquete sin informarle antes, pero esto no es en absoluto recomendable, tal como ya se ha dicho, porque esto puede supo- ner la pérdida de todos los datos que pudiese contener. Así pues, mientras no aprendamos a montar y desmontar dispositivos de so- porte de datos, el disquete debe permanecer en la disquetera desde que el sistema arranca hasta que está parado, ya que durante el proceso de parada, entre otras operaciones, se efectuarán las de desmontado de estos dispositivos. Vayamos al disquete: pero, ¿dónde está?, ¿dónde lo ha montado el sistema? Para responder a estas preguntas ejecutamos el comando mount sin argumentos ni opciones adicionales (precisamente éste es el comando que se uti- liza para montar dispositivos, y umount para desmontarlos): root@tty1[/]# mount /dev/root on / type ext2 (rw) /dev/CD-ROM on /CD-ROM type iso9660 (ro) /dev/cloop on /KNOPPIX type iso9660 (ro) /dev/shm on /ramdisk type tmpfs (rw,size=407928k) none on /proc/bus/usb type usbdevfs (rw,devmode=0666) automount(pid443) on /mnt/auto type autofs (rw,fd=6,pgrp=443,minproto=2,maxproto=4) /dev/fd0 on /mnt/auto/floppy type vfat (rw,nosuid,nodev,uid=1000,gid=1000,umask=000) ANOTACIONES Este comando, llamado sin argumentos, nos muestra los disposi- tivos montados en el sistema en el momento de ejecutarlo junto con alguna información adicional acerca de ellos (esta misma in- formación se puede encontrar en el fichero /etc/mtab; en con- secuencia, haciendo un cat “ /etc/mtab” conseguiríamos los mismos resultados). En la segunda línea retornada por el coman- do ya podemos ver que, efectivamente, el CD-ROM, /dev/CD- ROM, está montado en el sistema, y además podemos ver que está 67
  • 68. © FUOC • 71Z799002MO © Software libre montado sobre el directorio /CD-ROM/. La última línea retornada responde a las preguntas que nos formulábamos anteriormente: el sistema ha montado el disquete, /dev/fd0/, en /mnt/auto/ floppy/. Cambiamos pues a este directorio para empezar a tra- bajar sobre el disquete y comprobamos que efectivamente está vacío: root@tty1[/]# cd /mnt/auto/floppy root@tty1[floppy]# ls -la total 8 drwxrwxrwx 3 knoppix knoppix 7168 Jan 1 1970 . drwxr-xr-x 3 root root 0 Mar 3 19:34 .. Creamos nuestro primer directorio, entramos en él y creamos un par de subdirectorios: root@tty1[floppy]# mkdir dir00 root@tty1[floppy]# cd dir00/ root@tty1[dir00]# mkdir subdir00 subdir01 root@tty1[dir00]# ls subdir00 subdir01 Entramos en el primer subdirectorio y creamos nuestro primer fi- chero: root@tty1[dir00]# cd subdir00 root@tty1[subdir00]# touch file00 root@tty1[subdir00]# ls -la total 1 drwxrwxrwx 2 knoppix knoppix 512 Mar 3 20:21 . drwxrwxrwx 4 knoppix knoppix 512 Mar 3 20:21 .. -rwxrwxrwx 1 knoppix knoppix 0 Mar 3 20:21 file00 En realidad touch no sirve para crear ficheros vacíos, aunque lo hace ANOTACIONES si el fichero no existe, sino que sirve para cambiar las informaciones relativas a fechas y horas de los archivos. Podemos poner algún con- tenido a nuestro primer fichero y comprobar que efectivamente ha quedado registrado: root@tty1[subdir00]# echo “my fist hello world in Linux” > file00 root@tty1[subdir00]# cat file00 my first hello world in Linux 68
  • 69. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Le añadimos un poco más de texto: root@tty1[subdir00]# echo “Nice to meet you, we’re gonna be good friends” >> file00 root@tty1[subdir00]# cat file00 my first hello world in Linux Nice to meet you, we’re gonna be good friends No olvidemos usar los cursores para ahorrarnos tecleo, ni del autocom- pletado. Ahora podemos utilizar un editor de texto para crear nuestro segundo fichero. Para ello usaremos el vi. Recordemos que este editor tiene dos modos: el de comandos, en el que se entra cuando se arranca, y el modo de edición. Para entrar en el modo de edición basta con pul- sar la tecla “i”, y para pasar al modo de comandos hay que pulsar ESC. Una vez en modo comando “w” para guardar y “q”, para salir (obvia- mente, vi dispone de muchísimos más comandos, pero por ahora con estos dos nos basta). Es muy interesante conocer estos comandos bási- cos de vi, ya que este editor viene en casi todos los paquetes básicos de instalación de cualquier distribución, y si ésta fallase en algún mo- mento, nos puede ser útil para modificar algún fichero y proseguir dicha instalación. Ejecutamos, pues, vi seguido del nombre que queremos Nota dar a nuestro segundo fichero, pulsamos la tecla “i”, escribimos lo que En sistemas básicos tipo nos parezca oportuno, pulsamos ESC y “:wq” para guardar y salir. Me- UNIX, si no se cuenta con diante more, otro paginador, comprobamos que todo ha ido como es- vi se puede probar si se en- cuentran instalados otros perábamos: editores de texto más ele- mentales como pueden ser root@tty1[subdir00]# vi file01 nano, pico, etc. it seems we’re on the right way, mate!!! I agree. ˜ ˜ ˜ :wq ANOTACIONES root@tty1[subdir00]# more file01 it seems we’re on the right way, mate!!! I agree. Ahora intentamos borrar nuestro primer fichero. Lo haremos me- diante el comando rm: root@tty1[subdir00]# rm file00 rm: remove regular file ‘file00’? 69
  • 70. © FUOC • 71Z799002MO © Software libre Lo cierto es que esta pregunta por parte del sistema no nos la espe- rábamos. Pulsamos CTRL-C para cancelar, “n” para no borrar o “ y” para hacerlo. Lo importante ahora es que entendamos por qué el sis- tema nos ha formulado esta pregunta. Si leemos el man del coman- do rm veremos que éste debería borrar el archivo sin hacer ninguna pregunta (recordemos que podemos ejecutar dicho man en otra tty, y que en la tty2 aún tenemos abierto el man de man, si no hemos salido de él mediante “q”, o si no hemos apagado el ordenador des- de que lo invocamos, y proseguir así nuestro trabajo en la tty en que estábamos). Pero fijémonos en la explicación de la opción “-i” de este mismo man. ¿Qué está pasando? Parece como si esta opción es- tuviera activada por defecto. En realidad no es exactamente así, lo que ocurre es que el sistema por defecto ha establecido unos alias; para verlos todos, ejecutemos el comando alias: root@tty1[etc]# alias alias ..=’cd ..’ alias cp=’cp -i’ alias l=’ls -a --color=auto’ alias la=’ls -la --color=auto’ alias ll=’ls -l --color=auto’ alias ls=’ls --color=auto’ alias mv=’mv -i’ alias rm=’rm -i’ alias where=’type -all’ alias which=’type -path’ Aquí empezamos a entender muchas más cosas, como por ejemplo por qué el retorno del comando ls es en colores, o que para hacer un “ls -la” basta con teclear la. Y también entendemos por qué, cuando hemos ejectuado el rm anterior, el sistema nos ha pregun- tado si realmente queríamos hacerlo. Mediante alias podemos es- tablecer y modificar el comportamiento por defecto de comandos o ANOTACIONES incluso crear otros nuevos: root@tty1[subdir00]# alias hi=’echo¨I say hello”’ root@tty1[subdir00]# hi I say hello Continuando con el man del comando rm, nos disponemos a leer para qué sirven las opciones -f y -r. La primera sirve para que el comando se ejecute sin mostrar prompt, o lo que es lo mismo, des- 70
  • 71. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © obedeciendo la opción -i, así que, si no habíamos borrado nuestro primer fichero, podemos hacerlo ahora mediante “rm -f file00”. La segunda opción fuerza la recursividad, es decir, que la orden se extienda sobre los posibles subdirectorios y sus contenidos. Estas op- ciones son comunes a la mayoría de comandos básicos destinados a la manipulación de directorios y ficheros; así pues, podemos crear un segundo directorio en la raíz del disquete con todos los contenidos del primero que hemos creado mediante el comando cp; para ha- cerlo, debemos acudir a la recursividad: root@tty1[subdir00]# cp /mnt/auto/floppy/dir00/ /mnt/auto/floppy/dir01 -r En este caso hemos usado el direccionamiento absoluto –tanto para especificar el origen como el destino– para realizar la operación; es decir, hemos indicado, partiendo del directorio raíz, la ruta comple- ta, tanto para el origen como para el destino. Del mismo modo, po- dríamos haber utilizado el direccionamiento relativo para especificar el origen de la operación, su destino o ambas cosas. Cuando usa- mos el direccionamiento relativo, el origen del direccionamiento es la posición actual dentro del filesystem. Como en la mayoría de las ocasiones, el sistema nos ofrece la posibilidad de obtener los mismos resultados empleando distintos métodos. Se trata de conocer cuantos más mejor, y saber escoger el más efectivo para cada caso en parti- cular. Así pues, hubiésemos obtenido el mismo resultado haciendo “cp ../../dir00/ ../../dir01 -r”, es decir, comunicándole a cp que el origen es el directorio /dir00/, el cual se encuentra dos ramas por debajo de nuestra posición actual, y que el destino es /dir01/, al que también queremos situar dos ramas por debajo de nuestra posición. Asimismo, hubiese sido perfectamente válida la línea “cp -r ../ ../../dir02/” para alcanzar los mismos fines. Actividad ANOTACIONES 6. Explicar el porqué de esta última aseveración. Ahora podemos descender un subdirectorio, con lo cual nos situare- mos en /mnt/auto/floppy/dir00/ y podemos copiar el segun- do fichero que hemos creado en el subdirectorio /subdir00 en este mismo directorio: root@tty1[dir00]# cp subdir00/file01. 71
  • 72. © FUOC • 71Z799002MO © Software libre Debemos entender completamente el significado y el porqué de la lí- nea anterior: en primer lugar especificamos el origen del fichero que queremos copiar (también hubiese sido válido, entre muchas otras op- ciones, “./subdir00/file00”), y en segundo lugar hay que espe- cificar obligatoriamente el destino, siendo éste la posición actual, es decir “.”. Mediante un ls podemos comprobar si hemos obtenido el Nota resultado deseado. Ahora podemos situarnos en el directorio padre, Mucho cuidado al ejecutar donde se halla montado el disquete, y borrar todo lo que hemos ge- el comando rm-rf* como root ya que puede tener nerado hasta ahora. Para hacerlo, utilizaremos el wildcard “*” (existe consecuencias nefastas. también el wildcard ?, el cual sirve para un solo carácter, así como dis- tintos métodos para especificar rangos de caracteres, y para referirse, en general, a más de un fichero o directorio) para ahorrar tecleo: root@tty1[floppy]# rm -rf * Actividad 7. Leer el man de rm y entender porqué "rm-rf*" es tan peligroso. 3.7. Administración de usuarios Debe alarmarnos el hecho de haber estado realizando todas las ta- reas anteriores como root, puesto que ya tenemos muy claro que este usuario sólo debe emplearse en caso necesario. No obstante, queda justificado, ya que hasta ahora no habíamos te- nido ningún contacto directo con un sistema UNIX, y esto nos ha ser- vido para familiarizarnos un poco con los comandos básicos y con su sistema de ficheros. Ha llegado el momento de empezar a traba- jar como hay que hacerlo siempre a partir de ahora, es decir, utili- ANOTACIONES zando la cuenta de root sólo cuando es estrictamente necesario, como en el primer paso que daremos a continuación, crear un nuevo usuario del sistema y asignarle una cuenta, ya que esta operación sólo la puede realizar el root. Procedemos pues a crear un usuario. root@tty1[etc]# useradd user00 Hemos creado nuestro primer usuario, pero el proceso ha sido un tanto opaco pues el sistema no nos ha retornado ninguna informa- 72
  • 73. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © ción respecto a este comando que acabamos de ejecutar. No sabe- mos pues ni a qué grupo o grupos pertenece este usuario, dónde tiene éste el home, qué shell se le ha asignado por defecto, etc. Mu- cha de esta información la encontraremos en el fichero de pas- swords, /etc/passwd, así que analicemos, por campos, su contenido: root@tty1[/]#cd /etc root@tty1[etc]# cat passwd root:x:0:0:root:/home/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh . . . partimag:x:104:65534::/home/partimag:/bin/false user00:x:1001:100::/home/user00:/bin/bash La información deseada la encontramos en la última línea del fiche- ro, pues nuestro usuario ha sido el último en añadirse. Analicemos el contenido de esta línea: • user00 es el nombre del usuario, que ya conocíamos, ya que lo hemos creado nosotros mismos. • x su password se halla en el fichero de shadow, /etc/shadow. • 1001 es su número de identificación como usuario (UID). • No tiene ningún comentario asociado. ANOTACIONES • /home/user00 éste es su directorio home, tal como era de espe- rar, pues todos los usuarios tienen su home en /home/usuario. • /bin/bash el shell con el cual el usuario se encontrará al iniciar la sesión es el bash, el mismo que hemos utilizado hasta ahora. La pregunta que nos formulamos inmediatamente ante estas in- formaciones es relativa al password del usuario. Debemos pues 73
  • 74. © FUOC • 71Z799002MO © Software libre consultar el fichero de shadow, ya que así lo indica el fichero / etc/passwd. De paso, introduciremos un concepto nuevo, el de filtro, que en este caso se materializa con el comando grep (ge- neral regular expression processor). Los filtros son herramientas extremadamente potentes y muy usadas en UNIX, y su campo de acción se extiende mucho más allá de lo que comúnmente se en- tiende por filtro. En este caso, pasaremos, mediante un pipe, la salida de cat a grep, para que éste muestre por pantalla aque- llas líneas que contengan la palabra que le pasamos como pará- metro, user00: root@tty1[etc]# cat shadow | grep user00 user00:!:12115:0:99999:7::: A partir de ahora no debemos preocuparnos más: el segundo campo nos indica que nuestro usuario no tiene password. Si lo hubiese teni- do, no lo podríamos conocer, pues tal como se ha dicho, los pas- swords se guardan encriptados y la encriptación es unidireccional. Pero esto tampoco debería preocuparnos, ya que root, mediante el comando passwd, puede cambiar el password de cualquier otro usuario. Así pues, lo único que realmente debemos intentar es no ol- vidar el password de root, que tampoco tiene password en este caso, tal como shadow nos indica, aunque si esto sucediera, también tiene solución. Continuemos con nuestra investigación acerca de las pro- piedades de nuestro nuevo usuario. /etc/group nos ayudará a sa- ber exactamente a qué grupos pertenece: root@tty1[etc]# cat group | grep user00 root@tty1[etc]# cat group | grep 100 users:x:100:knoppix knoppix:x:1000: ANOTACIONES Con la primera línea de comandos nos preguntamos, con respuesta negativa, si /etc/group tiene alguna referencia explícita a user00 (también se podría haber hecho mediante el comando groups, “groups user00”). Con la segunda buscamos el reverso del grupo 100, grupo primario de user00 según /etc/passwd, grupo que se llama users en este caso. Así pues, ya podemos afirmar que nuestro nuevo usuario pertenece a un solo grupo, y que éste es user. El fi- chero /etc/group también se puede editar para añadir usuarios 74
  • 75. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © a grupos y crear grupos nuevos, pero hay que remarcar que en nin- gún caso en el campo de usuarios pertenecientes a un grupo en con- creto se puede poner el nombre de otro grupo con la intención de añadir todos los usuarios de este último al primero. Pero esta prácti- ca no es demasiado recomendable, ya que existen comandos espe- cíficos para trabajar con grupos (newgrp, addgroup, etc.) Queda sólo una última cuestión a resolver: si listamos los contenidos de /home/, veremos que el subdirectorio /user00/ no existe. De- bemos, pues, crearlo y asignarle las propiedades y atributos perti- nentes manualmente: root@tty1[etc]#mkdir /home/user00 root@tty1[etc]#chown user00 -R /home/user00 root@tty1[etc]#chgrp users -R /home/user00 root@tty1[etc]# cd /home root@tty1[home]# ls -la total 0 drwxr-xr-x 5 root root 100 Mar 4 08:12 . drwxrwxrwt 4 root root 80 Mar 4 08:35 .. drwxr-xr-x 2 knoppix knoppix 40 Mar 4 08:35 knoppix drwxr-xr-x 2 root root 40 Mar 4 08:35 root drwxr-xr-x 2 user00 users 60 Mar 4 08:12 user00 Nota El proceso de adición de nuevos usuarios al sistema mediante Debian es mucho más sencillo, como se verá más adelante. Pero crear uno mediante KNOPPIX no ha sido una tarea en balde, pues nos ha servido para familiarizarnos con el sistema y aprender co- mandos nuevos. Actividad 8. Mediante man, comprender el funcionamiento de los comandos chown y chgrp. ANOTACIONES Ha llegado el momento de entrar en el sistema como nuevo usuario. Lo haremos mediante el comando su, el cual abre un proceso hijo con un login con el usuario que le hayamos pasado. Como root po- demos utilizar siempre este mecanismo para entrar como otro usua- rio sin necesidad de conocer su password, ya que al ejecutar su como root éste no es necesario; además, se da el caso que el usuario que hemos creado no tiene password, y por tanto éste nunca se pe- 75
  • 76. © FUOC • 71Z799002MO © Software libre dirá. Pero, si probásemos de ejecutar su en cualquier otra circuns- tancia sí que se nos pediría el password del usuario: root@tty1[home]# su user00 su(pam_unix)[4312]: session opened for user user00 by (uid=0) user00@tty1[home]$ Notemos primeramente el cambio de aspecto del prompt . Hemos de- jado de ser usuario root, para pasar a ser user00, por lo que hemos perdido los privilegios de root, hecho que se manifiesta por el cambio del último carácter del prompt. Podemos acceder ahora a entrar en nuestro directorio home, creemos un fichero y cambiémosle los atribu- tos para que tan sólo user00 pueda leerlo, ejecutarlo y escribir en él. De momento, el permiso de ejecución no tiene mucho sentido para nosotros, pues no sabemos aún crear ficheros ejecutables, pero es bueno conocerlo de antemano para cuando se precise de él: user00@tty1[home]$ cd user00@tty1[user00]$ echo “only user00 can read, write and execute this file.” > user00file user00@tty1[user00]$ chmod 700 user00file Actividad 9. Crear un nuevo usuario siguiendo los pasos ante- riormente descritos, y comprobar que, efectivamen- te, este nuevo usuario no puede ni leer el fichero recién creado ni escribir en él. 3.8. Gestión de procesos UNIX se caracteriza por una excelente gestión de los procesos que se ejecutan sobre el sistema. En primer lugar debemos aprender a de- tectar qué procesos están corriendo sobre el sistema y sus particula- ANOTACIONES ridades (modo en que corren, recursos que consumen, quién los está ejecutando, etc.). Ejecutaremos el comando ps (process status) pa- sándole diversos parámetros para ver cómo inciden estos sobre la in- formación devuelta por el comando: root@tty1[/]# ps PID TTY TIME CMD 481 tty1 00:00:00 bash 1559 tty1 00:00:00 ps 76
  • 77. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Sin argumentos ps nos informa sobre los procesos que corren sobre el terminal donde se ejecuta; naturalmente el primer proceso siem- pre corresponderá al shell. Podríamos mandar ejecutar un proceso en background, sleep, por ejemplo (proceso que simplemente espera que transcurra el número de segundos que le pasemos como parámetro para terminar) y ob- servar el retorno de ps: root@tty1[/]# sleep 300 & [1] 1703 root@tty1[/]# ps PID TTY TIME CMD 481 tty1 00:00:00 bash 1703 tty1 00:00:00 sleep 1705 tty1 00:00:00 ps Podemos ahora preguntarnos por todos los procesos que están co- rriendo sobre el sistema: root@tty1[/]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.4 0.0 72 72 ? S 15:41 0:07 init [2] root 2 0.0 0.0 0 0 ? SW 15:41 0:00 [keventd] root 3 0.0 0.0 0 0 ? SWN 15:41 0:00 [ksoftirqd_CPU0] root 4 0.0 0.0 0 0 ? SW 15:41 0:00 [kswapd] root 5 0.0 0.0 0 0 ? SW 15:41 0:00 [bdflush] root 6 0.0 0.0 0 0 ? SW 15:41 0:00 [kupdated] root 52 0.0 0.0 0 0 ? SW 15:41 0:00 [kapmd] root 59 0.0 0.0 0 0 ? SW 15:41 0:00 [khubd] root 433 0.0 0.1 1368 616 ? S 15:41 0:00 pump -i eth0 root 475 0.0 0.1 1316 596 ? S 15:41 0:00 /usr/sbin/automount root 481 0.0 0.3 2864 1988 tty1 S 15:41 0:00 /bin/bash -login ANOTACIONES root 482 0.0 0.3 2864 1988 tty2 S 15:41 0:00 /bin/bash -login root 483 0.0 0.3 2856 1952 tty3 S 15:41 0:00 /bin/bash -login root 484 0.0 0.3 2856 1976 tty4 S 15:41 0:00 /bin/bash -login root 2086 0.0 0.3 3436 1552 tty1 R 16:06 0:00 ps aux También puede ser interesante en determinadas situaciones ejecutar el comando top, el cual nos muestra la actividad de la CPU, el uso de memoria, etc. de forma interactiva. 77
  • 78. © FUOC • 71Z799002MO © Software libre Ahora vamos a arrancar un proceso, detenerlo, y mandarlo a ejecu- tar en background. Para hacerlo, haremos un “sleep 20” y pulsa- remos la combinación de teclas CTRL+Z antes de 20 segundos, para pararlo, jobs para asegurarnos de que efectivamente está parado y conocer su número de identificación, y bg junto a su número de identificación para mandarlo ejecutar en modo background: root@tty1[/]# sleep 20 <Ctrl+Z> [1]+ Stopped sleep 20 intro root@tty1[/]#jobs [1]+ Stopped sleep 20 root@tty1[/]# bg 1 [1]+ sleep 20 & [1]+ Done sleep 20 root@tty1[/]# Tenemos que, al haber transcurrido los 20 segundos, el proceso ha terminado estando aún en background, y se nos ha informado por pantalla. Podemos comprobar mediante ps que efectivamente no hay ningún proceso corriendo. En este punto, podemos parar un proceso y devolverlo a foreground mediante fg: root@tty1[/]# man ls <Ctrl+z> [1]+ Stopped man ls root@tty1[/]# jobs [1]+ Stopped man ls root@tty1[/]# bg 1 ANOTACIONES 3.9. Activación y uso del ratón El ratón es una herramienta extremadamente útil para trabajar en modo consola, ya que permite seleccionar un texto y pegarlo (así es como se han capturado todas las entradas y salidas para redactar el texto de este taller, por ejemplo). 78
  • 79. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Por lo tanto, lo primero que haremos es configurar el ratón, y lo ha- remos con el programa más comúnmente utilizado, el gpm, el cual automáticamente ya corre en modo background. (Esto es debido a que gpm es un daemon, termino que se analiza con detalle en sec- ciones posteriores.) Hay muchos tipos de ratones, pero los más corrientes son los de tres botones conectados al ordenador vía puerto serie o vía puerto PS2. Si tenemos un ratón del primer tipo, ejecutaremos la línea siguiente (se presupone que el ratón está conectado en el primer puerto serie del ordenador, si no fuese así, soló habría que cambiar el device ttyS0 (/dev/ttS0) por ttyS1 (/dev/ttS1) en caso de estar en el segundo puerto, por ttyS2 para el tercer puerto o por ttyS3 para el cuarto puerto): #gpm -m /dev/ttyS0 -t msc Si lo que tenemos es un ratón conectado al puerto PS2, para activarlo se usará el mismo procedimiento anterior variando únicamente el device y el tipo de ratón: #gpm -m /dev/psaux -t ps2 En principio, después de ejecutar una de las dos líneas de comandos anteriores, como root, moviendo el ratón deberíamos ver, en todos los terminales, el indicador de posicionamiento del ratón, y al ejecutar: $roger@etseisa7:˜$ ps aux | grep gpm deberíamos obtener una respuesta del tipo ANOTACIONES root 182 0.0 0.1 1552 524 ? S Mar11 0:00 /usr/sbin/gpm -m /dev/psaux -t ps2 conforme gpm está corriendo en background. Si no fuese así, es que nuestro ratón no es estándar. En este caso de- beremos leer con atención el man de gpm y ejecutar “gpm -t 79
  • 80. © FUOC • 71Z799002MO © Software libre help” para tratar de identificar el tipo de ratón que se adapte al que tenemos. Una vez configurado mediante el botón de la izquierda, podemos seleccionar la parte de texto que nos interese, y al pulsar el botón del medio pegaremos el contenido seleccionado en la posición actual del cursor. Si se está acostumbrado a usar el ratón para marcar el posicionamiento del cursor, puede que los resultados que obtengamos no sean precisamente los deseados, pero prac- ticando un poco, enseguida nos acostumbraremos a este modo de operar. Hay que destacar que el contenido del búffer del ratón se conserva al pasar de una tty a otra. Actividad 10. Sacando provecho del hecho de que el contenido del búffer del ratón se mantiene entre terminales, abrir en una sesión de vi y en otra situarse en la raíz del sistema de ficheros, listar sus contenidos con detalle, y portar estos datos al editor de texto. Salvar los contenidos del fichero de texto y mediante cat comprobar que efectivamente hemos obteni- do los resultados deseados. 3.10. Otras operaciones Para finalizar este primer taller, ejecutaremos una serie de comandos ANOTACIONES para seguir el proceso de familiarización con el sistema e ir adqui- riendo recursos para poder solucionar futuros problemas que pue- dan surgir. Debemos informarnos acerca del sistema, el tipo de máquina sobre el que corre, el hardware que tengamos instalado, etc. (los retornos de los comandos que siguen serán, naturalmente, distintos para cada caso en particular): 80
  • 81. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © root@tty1[/]# uname -a Linux Knoppix 2.4.20-xfs #1 SMP Die Dez 10 20:07:25 CET 2002 i686 AMD Athlon(TM) XP 2100+ AuthenticAMD GNU/Linux root@tty1[/]# cat/proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 8 model name : AMD Athlon(TM) XP 2100+ stepping : 1 cpu MHz : 1732.890 cache size : 256 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow bogomips : 3460.30 root@tty1[/]# lspci 00:00.0 Host bridge: VIA Technologies, Inc. VT8367 [KT266] 00:01.0 PCI bridge: VIA Technologies, Inc. VT8367 [KT266 AGP] 00:05.0 Multimedia audio controller: C-Media Electronics Inc CM8738 (rev 10) 00:06.0 RAID bus controller: Promise Technology, Inc. PDC20276 IDE (rev 01) 00:07.0 FireWire (IEEE 1394): Texas Instruments TSB43AB22 1394a-2000 Controller 00:09.0 USB Controller: VIA Technologies, Inc. USB 6(rev 50) 00:09.1 USB Controller: VIA Technologies, Inc. USB (rev 50) 00:09.2 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 51) 00:0d.0 SCSI storage controller: Artop Electronic Corp AEC6712D SCSI (rev 01) 00:0f.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8029(AS) 00:11.0 ISA bridge: VIA Technologies, Inc. VT8233A ISA Bridge 00:11.1 IDE interface: VIA Technologies, Inc. Bus Master IDE (rev 06) 00:11.2 USB Controller: VIA Technologies, Inc. USB (rev 23) ANOTACIONES 00:11.3 USB Controller: VIA Technologies, Inc. USB (rev 23) 01:00.0 VGA compatible controller: ATI Technologies Inc Radeon 7500 QW root@tty1[/]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 1971 1516 455 77% / /dev/CD-ROM 715744 715744 0 100% /CD-ROM /dev/cloop 1837536 1837536 0 100% /KNOPPIX /dev/shm 407928 40 407888 1% /ramdisk /dev/fd0 1424 56 1368 4% /mnt/auto/floppy 81
  • 82. © FUOC • 71Z799002MO © Software libre Actividad 11. En el directorio virtual /proc/ y en sus subdirec- torios encontraremos mucha información relativa a nuestro sistema en ficheros de texto. Situarse en este directorio, y mediante more o cat explorar la información de estos ficheros. 3.11. Conclusión Éste ha sido nuestro primer contacto con un entorno UNIX. Ha servi- do un poco para romper el mito de que trabajar en este tipo de sis- temas operativos es complicado y difícil. Es más, ha servido para que empecemos a intuir su potencia y versatilidad. Hemos aprendido a movernos por su sistema de ficheros y a realizar operaciones con és- tos, a buscar información, etc. Todo lo que hemos aprendido hasta ahora nos será de gran utilidad de aquí en adelante, y nos servirá de base para ampliar nuestros conocimientos. Por otra parte, la gran potencia de autodetección y configuración de hardware de KNOPPIX hace que éste nos pueda ser muy útil a la hora de instalar Debian en el próximo taller si surgieran problemas de hardware. Siempre podremos volver a arrancar KNOPPIX y estu- diar cómo ha solucionado éste el problema (básicamente estudiando los archivos de configuración). Como última actividad del taller, podemos volver a arrancar KNOP- PIX en modo gráfico, es decir, sin pasar el parámetro 2 al iniciarlo (una manera de hacerlo puede ser pasando los parámetros ”knoppix lang=es wheelmouse”). ANOTACIONES 82
  • 83. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © 4. Instalación de GNU/Linux 4.1. Introducción En este capítulo veremos los pasos esenciales que se siguen en la mayoría de procesos de instalación de GNU/Linux. Aunque cada dis- tribución tiene su propio entorno de instalación, en todas ellas deben existir unos pasos básicos. En este capítulo veremos estos pasos, ex- plicando los conceptos necesarios para superarlos correctamente. Es importante que antes de instalar un nuevo sistema operativo conoz- camos adecuadamente los componentes principales que tenemos instalados en nuestro ordenador para poder configurarlo todo ade- cuadamente, aun cuando la distribución que utilicemos incorpore detección de hardware. Es posible que en un solo disco duro tengamos instalados dos o más Nota sistemas operativos totalmente independientes. Aunque el proceso de instalación de otro operativo en el mismo disco (o en otro instala- Antes de empezar el proce- so de instalación es aconse- do en el ordenador) no debería interferir con las particiones de los jable conocer la marca y demás, es aconsejable hacer copias de seguridad de todos nuestros modelo de la tarjeta gráfica y de sonido que tenemos documentos. Sin embargo, si seguimos adecuadamente los pasos instalada, la tarjeta de red, que detallaremos a continuación es prácticamente imposible perder la marca, tipo y característi- información, siempre es recomendable la prudencia y realizar copias cas del monitor, y cualquier otro hardware especial que de los archivos que realmente nos importan. tengamos. Generalmente, para la placa base, la CPU y la memoria RAM, no suele ser necesario conocer sus características. Para obtener 4.2. Arrancando esta información, podemos ANOTACIONES recurrir a los manuales en- tregados en la compra del Generalmente, todas las distribuciones de GNU/Linux proporcionan al- ordenador o, si tenemos gún tipo de medio para el arranque del proceso de instalación. Actual- otro sistema operativo insta- lado, recurrir a él para este mente se suele proporcionar un CD o DVD de arranque o, en caso de fin (en sistemas WindowsTM que nuestro ordenador no tenga el lector correspondiente o queramos lo podemos conseguir a realizar una instalación remota, se proporciona un disquete de arran- partir del panel de control). que. Para empezar con el proceso, debemos introducir el medio incluido en su dispositivo y arrancar el ordenador, configurando su BIOS o EFI para que arranque desde la unidad deseada. 83
  • 84. © FUOC • 71Z799002MO © Software libre El primer paso del proceso suele ser escoger qué tipo de instala- ción queremos realizar. Generalmente, la elección suele ser para identificar qué tipo de usuario está instalando el sistema para, se- gún éste, proporcionarle más o menos información y dejarle con- figurar con más precisión el sistema o no. Si tenemos los conocimientos suficientes, es recomendable hacer la instalación en modo experto (o similar) para poder adaptar más el sistema a nuestras necesidades específicas. En algunas distribuciones, este primer paso sirve para seleccionar la versión del núcleo que que- remos instalar o para configurar el proceso de instalación en modo gráfico, texto, etc. Es imprescindible leer antentamente la información que se nos proporciona en esta primera fase para poder elegir adecuadamente lo que más se ajuste al destino que queramos darle al sistema. Seguidamente, la mayoría de distribuciones nos dejan elegir el Contenido complementario tipo de teclado (o configuración similar) que queremos utilizar. Si bien los hay de muchas clases diferentes, los más frecuentes son Algunas distribuciones de GNU/Linux nos permiten los qwerty (los primeros caracteres empezando por arriba y la realizar la instalación desde izquierda del teclado), con lo cual deberíamos seleccionar qwerty/ cualquier medio: CD, DVD, FTP, HTTP, disco duro, NFS, es (Spain). etc. También existen métodos de instalación que permiten arrancar el proceso desde otros sistemas operativos. 4.3. Fraccionando el disco Fraccionar el disco duro es una de las partes más críticas de todo el Contenido complementario proceso. Este paso significa dividir el disco duro en varias secciones, por lo que cada una de ellas se toma como unidad independiente. Aunque hay formas de ins- talar GNU/Linux utilizando Si ya tenemos un sistema operativo instalado en nuestro ordenador, el sistema de ficheros de el disco estará fraccionado en una o varias particiones, pero si el dis- otro operativo, no es reco- mendable utilizar este tipo co es nuevo, generalmente no. ANOTACIONES de instalación porque el rendimiento del sistema baja considerablemente. Para instalar GNU/Linux debemos disponer de, al menos, una partición para él. El hecho de que al modificar el tamaño de una partición debemos eliminarla y crearla de nuevo implica perder toda la información que tenemos en ella. Por éste y otros motivos, existen programas que nos permiten modificar el tamaño de las mismas sin tener que eliminarlas. El fips es un programa con licencia GPL que nos permite redimensionar nuestras particiones formateadas con FAT (para sistemas WindowsTM de la rama no 84
  • 85. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © NT) sin perder la información de las mismas. También existen Contenido otros programas comerciales que nos permiten efectuar este tipo complementario de operación con cualquier otro sistema de ficheros, de forma que Si bien con una o dos parti- si no queremos perder la información de nuestros sistemas, debe- ciones es suficiente para po- remos utilizar alguno de ellos antes de empezar con todo el pro- der instalar GNU/Linux, es interesante dividir el disco ceso. en más fragmentos y situar ciertos directorios en dife- rentes unidades para poder Es recomendable que GNU/Linux utilice dos particiones en el disco du- hacer una gestión más efi- ro. Una servirá para guardar los ficheros del sistema y la otra para el ciente de los recursos, evitar caídas del sistema por satu- swap. El swap es una zona de intercambio entre la memoria RAM del ración de disco, etc. De to- ordenador y el disco duro. Sirve cuando el sistema operativo tiene toda dos modos, estos aspectos los dejaremos para cursos la memoria RAM ocupada y los programas en ejecución piden más. Es más avanzados de adminis- en este momento cuando se empieza a utilizar el swap para guardar zo- tración. nas de RAM que no se están utilizando, intercambiándolas para que las aplicaciones no se queden sin memoria disponible. También es posible prescindir de swap, pero no es recomendable porque el sistema no po- drá gestionar tan adecuadamente sus recursos; además, al utilizar si- multáneamente muchas aplicaciones, éstas se quedarán sin memoria con más facilidad. Aunque el tamaño del swap puede ser tan grande como queramos, se recomienda que éste sea el doble de la RAM insta- lada en el ordenador si tenemos 64MB o menos, y igual si tenemos más. Estos cálculos están basados en pruebas de rendimiento del sistema que nos demuestran que llega un punto en el que, si las aplicaciones nece- sitan utilizar demasiada memoria swap, el rendimiento se decrementa mucho, haciendo que el sistema quede prácticamente saturado (para Contenido ver qué cantidad de memoria RAM y swap se está utilizando, el sistema complementario nos proporciona el comando free). Para los ordenadores perso- nales existen dos clases de discos duros: los IDE y los SC- Existen varias aplicaciones para fragmentar el disco. Una de las pri- SI. Las controladoras IDE (In- meras que apareció fue el fdisk, aunque actualmente existen otras, tegrated Drive Electronics) son las que llevan la mayoría como cfdisk, diskDruid, etc. En algunos procesos de instalación de placas base. Con este se puede escoger cuál queremos utilizar, aunque todas permiten ha- controlador podemos conec- ANOTACIONES cer exactamente lo mismo cambiando, eso sí, la presentación, el en- tar dos dispositivos compati- bles (discos, CD, etc.) en torno, etc. La forma como GNU/Linux identifica los discos es /dev/ cada uno de los dos canales. hdX para los discos IDE y /dev/sdX para los SCSI, donde en am- Las controladoras SCSI (Sma- ll/Smart Computer System In- bos casos la “X” es una letra, correspondiente con el disco al que terface) permiten hasta 8 nos queramos referir de la siguiente manera: dispositivos y tienen tasas de transferencia más altas, aun- que su precio también es dispositivo significado bastante más elevado que los /dev/hda Maestro del primer canal IDE IDE. 85
  • 86. © FUOC • 71Z799002MO © Software libre dispositivo significado Contenido complementario /dev/hdb Esclavo del primer canal IDE Para guardar la informa- /dev/hdc Maestro del segundo canal IDE ción de particiones y el pro- grama de arranque, los /dev/hdd Esclavo del segundo canal IDE discos tienen una zona de /dev/sda Primer disco de la controladora SCSI datos reservada llamada MBR (Master Boot Record). /dev/sdb Segundo disco de la controladora SCSI ... Si tenemos más de un disco en nuestro ordenador, antes de entrar en el programa de fraccionamiento podremos elegir sobre cuál de ellos operar. Cuando creamos una partición se nos preguntará si debe ser primaria o lógica. En un disco duro podemos tener hasta cuatro particiones primarias y hasta 64 lógicas. Si no necesitamos más de 4 particiones, podemos escoger cualquiera de los dos ti- pos. Si necesitamos más, deberemos tener en cuenta que las ló- gicas se sitúan dentro de una primaria (hasta un máximo de 16 para cada una), de forma que no podemos tener 4 particiones primarias creadas y después añadir otras lógicas. En este caso, deberíamos crear 3 primarias y hasta 16 lógicas en la cuarta par- tición primaria. En la siguiente figura podemos ver un ejemplo de manera gráfica: ANOTACIONES 86
  • 87. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Cuando creamos una partición, debemos indicar qué sistema de fi- Contenido cheros utilizaremos para ésta (Linux ext2, Linux ext3 o Linux complementario swap). Una vez realizadas las particiones, guardaremos la configu- De todas las particiones de ración y debemos indicar al proceso de instalación dónde queremos un disco duro podemos ele- situar la raíz del sistema de ficheros ( oot filesystem ) y el swap del r gir una para que sea la ac- tiva. Este flag sirve para sistema. Una vez efectuados estos pasos, ya podremos continuar con indicar a la BIOS o la EFI del el resto del proceso de instalación. sistema cuál es la partición que debe iniciar si en la MBR no encuentra ningún programa de arranque. 4.4. Instalación de módulos Los módulos del núcleo son partes de software especializadas en al- guna tarea concreta. Al haber toda clase de dispositivos diferentes y decenas de funciones para múltiples sistemas de ficheros, operacio- nes de gestión en red, etc., se decidió no incluir de forma estándar todos estos drivers y funciones. En las primeras versiones de Linux, cuando el núcleo que teníamos no incluía alguna función, debíamos recompilarlo completamente y generar uno nuevo adaptado a nues- tras necesidades. Con la incorporación de los módulos, todo este proceso no es necesario y podemos seleccionar directamente las fun- ciones que necesitamos. Generalmente, las distribuciones ya incorporan centenares de módulos diferentes para el núcleo Linux. Se suelen organizar en diferentes categorías para facilitar su localización y, normalmen- te, con el mismo nombre del módulo o la breve descripción que se facilita con el mismo ya sabremos para qué dispositivo está di- señado o qué función realiza. Por esta razón decíamos anterior- mente que era importante conocer el hardware de nuestro ordenador: en este paso podremos elegir con más precisión los módulos que necesitamos. En algunos de ellos es obligatorio pa- ANOTACIONES sar algún parámetro especial (como la dirección de E/S, la inte- rrupción que utiliza el dispositivo, etc.), información que podemos obtener por medio de la BIOS o EFI del sistema o por los proce- dimientos que anteriormente comentábamos. También es cierto que si el proceso de instalación lleva algún tipo de programa para el reconocimiento automático de hardware, todo el proceso de selección y carga de módulos no es necesario porque ya se realiza de forma automática. Sin embargo, es posible que no se 87
  • 88. © FUOC • 71Z799002MO © Software libre detecte adecuadamente alguno de los dispositivos que tengamos ins- talados, en cuyo caso sí que debemos incluir manualmente el módu- lo correspondiente. Si en el momento de instalar el sistema nos olvidamos de incluir Contenido complementario algún módulo (o instalamos algún nuevo dispositivo) siempre po- El fichero de configuración de demos recurrir a los comandos insmod (para agregar un nuevo los módulos se suele encon- módulo), lsmod (para listar los instalados), rmmod (para elimi- trar en /etc/modules. nar alguno) y modprobe (para probar alguno y, si funciona co- rrectamente, incluirlo en el núcleo). Todos estos módulos no son más que ficheros binarios que acostumbramos a encontrar en el directorio /lib/modules/ del sistema. Si tenemos problemas para descubrir qué hardware tenemos ins- talado en el ordenador, una utilidad muy práctica que se suele in- cluir en las distribuciones es discover. Con ésta, podremos saber exactamente qué componentes tenemos y qué módulos les corresponden. 4.5. Configuración básica de la red Después de configurar los módulos que se incluirán en el núcleo del sistema operativo deberemos configurar la red (si tenemos la tarjeta necesaria). Aunque en este documento no entraremos en detalles so- bre redes de computadores, daremos las ideas necesarias para po- der realizar este paso sin complicaciones. Lo primero que se pedirá es el nombre que queremos darle al siste- Contenido complementario ma. Este nombre servirá para referirnos a él sin tener que recordar ANOTACIONES Una dirección IP es la iden- siempre su dirección IP. Una vez entrado el nombre, se suele pedir si tificación de un ordenador en nuestra red utilizamos un mecanismo llamado DHCP o BOOTP, dentro de una red cuando que consiste en tener un servidor especial que se encarga de asignar utilizamos el protocolo TCP/ IP, el que más se utiliza en automáticamente las IP a los ordenadores que arrancan. Si utiliza- Internet. mos este mecanismo, debemos indicarlo y si no, se nos preguntará por la IP y máscara de nuestro ordenador. Si no conocemos estos da- tos, debemos dirigirnos al administrador de nuestra red. Seguida- mente debemos introducir la IP del gateway de nuestra red. El gateway es un dispositivo u ordenador que actúa de puente entre 88
  • 89. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © nuestra red local e Internet (si no tenemos ningún dispositivo de este tipo, podemos dejar en blanco este campo). A continuación, debe- mos especificar el (o los) servidores de nombres que utilizamos. Un servidor de nombres (servidor DNS) es una máquina que nos propor- ciona la equivalencia entre un nombre y una dirección IP. Si no sa- bemos cuál usamos, también deberemos recurrir al administrador de la red. Si estamos en una red local, debemos consultar al administrador de la misma para que nos proporcione toda la información necesaria al respecto. Si tenemos otro operativo instalado en el ordenador, tam- bién podemos acceder a su configuración para obtenerla. Sin em- bargo, en ningún caso nos podemos inventar estos valores porque lo más probable es que no se configure adecuadamente y provoque- mos problemas en la red local. 4.6. Sistema de arranque Una vez configurados todos estos aspectos, debemos instalar un pe- queño programa en el disco duro para que en el proceso de arran- que del ordenador podamos elegir qué sistema operativo de los que tenemos instalados queremos arrancar. Aunque sólo hayamos insta- lado GNU/Linux, también tendremos que instalar este programa, ya que el sistema de arranque del mismo lo necesita. Existen varias aplicaciones para realizar este proceso. Las más usuales son el Lilo (LInux LOader) y el Grub (GNU GRand Unified Bootloader). Lo único que hacen estas aplicaciones es iniciar el proceso de carga y ejecución del núcleo del sistema operativo que ANOTACIONES le indiquemos. Generalmente, todas las distribuciones detectan si tenemos algún otro sistema operativo instalado en los discos du- ros y nos configuran automáticamente el sistema de arranque. Lo único que debemos tener en cuenta es que habrá que situar este programa correctamente para que se ejecute al arrancar el orde- nador. Normalmente se suele poner en la MBR del disco maestro del primer canal IDE o SCSI, que es el primer sitio que la BIOS o EFI del ordenador inspecciona buscando un programa de estas características. 89
  • 90. © FUOC • 71Z799002MO © Software libre 4.7. Elección de paquetes La mayoría de procesos de instalación incluyen dos formas de selec- Contenido complementario cionar los programas que instalaremos en el sistema: básico o exper- to. Con el proceso de selección básico generalmente se agrupan los Un paquete está formado por uno o varios progra- paquetes disponibles por grandes grupos de programas: administra- mas/librerías/ relaciona- ción, desarrollo de software, ofimática, matemáticas, etc. Si todavía dos entre sí, que se agrupan para formar un sólo bloque. no conocemos exactamente los programas que vamos a utilizar, este La mayoría de distribucio- tipo de instalación es el más adecuado porque podremos escoger, nes incluyen utilidades para de manera muy general y sin entrar en detalles, qué tipo de progra- el manejo de paquetes (ins- talación, eliminación, confi- mas utilizamos. guración, etc.). Esta clase de organización es muy útil porque al necesitar un pro- Cuando conozcamos un poco más el sistema y sepamos qué es exac- grama/utilidad/etc. pode- tamente lo que vamos a utilizar, es mejor la selección experta de pa- mos instalarlo todo a la vez. quetes. Con este tipo de selección podremos ajustar mucho mejor qué programas necesitamos, ahorrándonos espacio en el disco y evi- Contenido tando que el sistema cargue más programas de los necesarios. Al complementario instalar un sistema para un uso específico (servidor http, cvs, etc.) es RedHat también ha adopta- muy recomendable escoger sólo aquellos programas que realmente do un sistema de descarga/ actualización del mismo es- utilizaremos para evitar problemas de seguridad (cuantas menos tilo que el apt de Debian. puertas dejemos abiertas al exterior, más seguro será el sistema). Algunas distribuciones también admiten la posibilidad de obtener los paquetes desde ubicaciones diferentes, como uno o varios CD, desde servidores en Internet, etc. Debian GNU/Linux fue la primera en tener un sistema de este tipo, llamado apt. Este tipo de gestión es muy útil porque nos proporciona mucha flexibilidad, y nos mantiene informa- dos de las últimas correcciones y actualizaciones de los programas. 4.8. Otros aspectos ANOTACIONES Debemos saber qué hacer si hemos tenido algún problema con la instalación o en algún momento el sistema de arranque no nos deja cargar el sistema operativo. Generalmente, en el proceso de instala- ción existe algún paso donde se nos pregunta si queremos crear un disquete de recuperación. Siempre es muy recomendable generar este disquete, ya que nos permite cargar el operativo y acceder al sis- tema de ficheros para arreglar lo que haga falta. 90
  • 91. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © En algunas distribuciones, con el mismo CD de arranque podremos hacer lo mismo. En el caso de Debian, por ejemplo, con el mismo proceso de arranque se incluye una consola (apretando CTRL+F2 podemos acceder a ella) con los comandos básicos para que poda- mos realizar operaciones esenciales de recuperación. De todos mo- dos, si nos encontramos con algún grave inconveniente que no nos permite arrancar el sistema correctamente y queremos todas las he- rramientas usuales, también podemos arrancar con un CD-live de Knoppix o cualquier otra distribución y montar la unidad donde ten- gamos instalado el sistema para arreglar la disfunción. Lo que sí que es importante es disponer de alguna de estas herramientas y haberla probado antes de que ocurra algún problema serio para estar siem- pre preparados. La mayoría de procesos de instalación utilizan una aplicación deno- minada bootstrap, que también podemos instalar en el sistema con el paquete correspondiente. Con ella podríamos crearnos nues- tro propio proceso de instalación o ver cómo realiza realmente el sis- tema estas operaciones de instalación y configuración. La mayoría de ellas las podemos reproducir con el programa base-config o alguno de los otros que él mismo llama (más información en su ma- nual), aunque siempre podemos recurrir a los mismos ficheros de configuración del operativo para realizarlo manualmente. ANOTACIONES 91
  • 93. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © 5. Taller de instalación de Debian Woody 5.1. Introducción Si el primer taller nos servía para dar nuestros primeros pasos so- bre un sistema tipo UNIX, y para ello utilizábamos una distribu- ción que no dejase rastro en nuestro PC, pues se arrancaba y se ejecutaba desde CD-ROM, éste debe servirnos para aprender a instalar un sistema básico GNU/Linux en nuestro ordenador. La distribución escogida para el desarrollo del taller ha sido la De- bian 3.0r1 (las versiones 3.0 también se conocen con el nombre de Debian Woody). La decisión de escoger Debian frente a RedHat para el desarrollo de este taller, y de los dos restantes, no ha sido nada fácil, pues RedHat ofrece productos comerciales que tienen muy buena acogida en el mundo empresarial, y en general se considera mucho más sencillo instalar una RedHat que una Debian. El hecho de que se haya opta- do por Debian se debe principalmente: en primer lugar, a que esta distribución es la que sigue más fielmente la filosofía GNU/Linux y todo se hace gracias al trabajo voluntario de miles de personas; en segundo lugar, porque probablemente es una de las distribuciones que, tanto a la hora de instalar como de mantener, deja más libertad a los usuarios; y como último punto fundamental, por su sistema de paquetes, que probablemente es el más consistente que existe ac- tualmente. ANOTACIONES Se ha optado, pues, por Debian; no porque se considere mejor que RedHat, (seguro que existen tantas opiniones al respecto como usuarios de ambas distribuciones), sino porque simplemen- te se ha creído que su flexibilidad la convierte en una distribución muy apta para fines didácticos. Pero siendo conscientes del fuerte arraigo que tiene RedHat, se ha dedicado un apéndice a esta dis- tribución, para que el lector pueda conocerla también y pueda formarse su propia opinión. 93
  • 94. © FUOC • 71Z799002MO © Software libre Tampoco hay que olvidar que, aparte de estas dos distribuciones, Lectura complementaria existen muchas más. Pero creemos que, cuando ya se ha tenido un http://www.debian.org/doc/ primer contacto con alguna de ellas, es tarea de cada usuario ir pro- http://www.debian.org/dis- trib/cd bando distintas distribuciones e ir forjándose una opinión propia de http://www.debian.org/dis- cuál es la que se adapta mejor a sus necesidades o exigencias. Por trib/netinst este motivo, una vez más animamos a hacer todo tipo de experimen- tos y pruebas, y que cada cual dirija sus esfuerzos hacia donde crea más interesante. GNU/Linux no es un sistema cerrado, sino todo lo contrario, GNU/Linux es sinónimo de libertad, y por este motivo la intención básica de este módulo es, en general, que una vez termi- nado se hayan sentado las bases de conocimiento necesarias para que se pueda ejercer sin ningún tipo de impedimento esta libertad, con el beneficio de todas sus ventajas y asumiendo todas sus conse- cuencias. Actividad 12. Ya que se va a instalar Debian, es recomendable visitar su página web y familiarizarse un poco con sus contenidos. Así pues, se propone visitar la web http://www.debian.org y sus subapartados. Una vez más se insta al lector a dejarse guiar por su curiosidad y, en esta ocasión, a seguir los enla- ces que le parezcan interesantes. 5.1.1. Sistemas de instalación Por sistema de instalación se entiende qué recursos o dispositivos se van a utilizar para hacer la instalación del sistema. Actualmente, casi todas las distribuciones ofrecen diversas posibilidades para realizar- la, pero esencialmente se puede distinguir entre dos sistemas de ins- talación: mediante CD-ROM o por red. Además, es posible, en ANOTACIONES general, combinar distintos sistemas. Debian ofrece tres tipos de instalación: mediante un juego de CD- ROM, con un único CD-ROM, el cual contiene el software de instala- ción y los paquetes básicos, dejando que el resto de la instalación se haga por red, y exclusivamente por red. Aunque, obviamente, si se opta por este último sistema, hará falta algún tipo de soporte inicial para arrancar el sistema de instalación (normalmente un juego de 94
  • 95. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © disquetes, entre dos y diecisiete, dependiendo del tipo y sistema de instalación escogidos, o un CD-ROM, del propio juego de CD de la distribución, aunque también es posible usar otros métodos, como DHCP para hacer una instalación completamente remota). El grado de interacción que requiere una instalación también depende del sistema y del tipo de instalación escogidos. Tal como es de esperar, cada uno de estos sistemas tiene sus ventajas y sus inconvenientes: mientras que una instalación estándar nos permite ir configurando paso a paso, hecho que nos será extremadamente útil para adecuar el siste- ma a nuestras necesidades y posibilidades, un sistema de instalación to- talmente automático requiere de unas infraestructuras y de unos conocimientos más avanzados, y por tanto de una inversión, tanto en tiempo como en dinero, que queda justificada sólo si el número de sis- temas a montar es muy grande (por ejemplo, se podría plantear la im- plementación de este tipo de instalación en un departamento donde convivieran ordenadores destinados a uso personal, con otros destina- dos a la paralelización, y donde su número aumenta a menudo). A la hora de escoger un sistema y tipo de instalación, debemos consi- derar, pues, diversos factores, como son: ¿cuántas instalaciones va- mos a realizar?, ¿cuántas instalaciones distintas vamos a realizar?, ¿qué grado de experiencia tenemos?, etc. El hecho de ser ésta nuestra primera instalación nos lleva inmediatamente al tipo de instalación más interactiva y más utilizada: la instalación interactiva estándar. Ahora sólo falta por determinar el sistema de instalación, y esto de- penderá fundamentalmente de si disponemos de conexión a Internet y de la velocidad de la misma. Obviamente, si no disponemos de co- nexión a Internet o la velocidad de acceso que tenemos es muy baja (como la que ofrecen los módems estándares) no tenemos más opción que escoger una instalación basada en un juego de CD-ROM; si por el contrario disponemos de una velocidad de acceso a Internet media- ANOTACIONES namente aceptable (como la que pueden ofrecer las líneas basadas en tecnología ADSL) o alta (conexión directa a Internet via gateway), la mejor opción será decantarse por una instalación por red. Una instalación efectuada por red supone muchas ventajas sobre una efectuada mediante CD-ROM, y especialmente en Debian, ya que ello nos permitirá instalar las últimas versiones disponibles de los paquetes, y actualizar todos los paquetes instalados en el sistema 95
  • 96. © FUOC • 71Z799002MO © Software libre será tan simple como ejecutar una sola instrucción. Pero este hecho no debe hacernos abandonar la instalación utilizando CD-ROM, si, como hemos dicho, no disponemos de conexión a Internet o la que tenemos es muy lenta (no hay que subestimar tampoco los paquetes que contienen estos CD-ROM, ya que Debian se caracteriza por ser una distribución donde sólo se incluyen paquetes que han sido pro- bados exhaustivamente). 5.1.2. Tipos de paquetes Lectura complementaria A continuación nos centraremos en Debian y en su sistema de pa- http://www.debian.org/distrib/ quetes. Un paquete de Debian es identificable por su extensión packages .deb. La distribución Debian diferencia sus paquetes en cuatro cla- http://www.debian.org/social contract#guidelines ses diferentes. Los paquetes propios de la distribución están en la cla- se main, mientras que las clases contrib, non-free y non-US los provee la organización Debian para el beneficio de sus usuarios: main. Paquetes que cumplen con las Debian Free Software Guidelines, es decir, que se garantiza su uso y redistribución libre, tanto de todos los binarios que los componen como de su código fuente completo. contrib. Paquetes que, aun siendo libres, y por tanto aparte de los binarios –también tienen disponible su código fuente–, dependen de otros paquetes que no lo son. non-free. Paquetes que, aun pudiendo no costar dinero, están bajo condiciones onerosas que restringen de alguna forma su uso o redis- tribución. non-US/main non-US/non-free. Paquetes que no pueden ser ex- portados fuera de EE.UU., por contener software de cifrado o soft- ware que puede afectar a asuntos relacionados con patentes. ANOTACIONES 5.1.3. Estado de desarrollo de los paquetes El estado de desarrollo de los paquetes marcará el tipo de distribu- ción que instalemos. Así pues, se habla de tres tipos de distribución: stable. Distribución de los paquetes con la versión oficial más recien- te de la distribución. Consta de softwre estable y bien probado, y 96
  • 97. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © cambia sólo al incorporar correcciones importantes de seguridad o de usabilidad. testing. Distribución que contiene los paquetes que se espera que Lectura complementaria formen parte de la próxima distribución estable. Hay una serie de re- http://www.debian.org/ quisitos muy estrictos que debe cumplir cada paquete antes de dejar releases/testing/ de ser unstable para pasar a ser testing. unstable. En esta distribución son los paquetes más recientes de De- bian y en consecuencia los menos probados. Por esta razón, pueden contener problemas suficientemente graves como para afectar a la estabilidad del sistema. Nota Es posible incorporar pa- Aunque todos los paquetes tienen sus propias dependencias no hay quetes a una instalación ba- ningún problema en mezclar paquetes de distintas distribuciones. sada en una distribución procedentes de otra distri- Apt-pinning (man apt-pinning) facilita mucho esta tarea. Aún así, en bución, esto por lo general sistemas críticos es recomendable utilizar solamente paquetes de la implica serios problemas de distribución estable, los más fiables. compatibilidades y es por este motivo por lo que sólo se recurre a esta práctica en casos puntuales. 5.2. Instalación de Debian Woody Como se ha dicho, en esencia Debian presenta tres tipos de instala- ción: vía juego de CD-ROM, vía CD-ROM mínimo, e instalación por red. Si se dominan la primera y la última, utilizar la segunda es tri- vial. Así pues, empezaremos por instalar nuestro primer sistema me- diante el juego de CD-ROM facilitados paso a paso, y, una vez terminado, analizaremos las diferencias entre este proceso y el de instalación por red. ANOTACIONES Hay que añadir que el método de instalación vía CD-ROM mínimo, Lectura complementaria si bien está admitido como tal por parte de Debian, las imágenes de http://db.debian.org/ estos CD-ROM no son oficiales. Estas imágenes son creadas por http://www.debian.org/ cuenta propia, generalmente por gente perteneciente a la Debian CD/netinst/ people, y sólo están referenciadas en la página oficial de Debian, en el apartado de instalación mediante CD-ROM mínimo. Aun así, en general este sistema de instalación es muy práctico, y ha sido proba- do con buenos resultados, con imágenes de distintas fuentes, en di- versos ordenadores. 97
  • 98. © FUOC • 71Z799002MO © Software libre 5.2.1. Flavours de Debian Woody Se conoce con el nombre de flavors o ‘sabores’, a los distintos kernels precompilados, destinados a soportar distintos tipos de hardware de las distribuciones. Debian Woody presenta cuatro flavors distintos: vanilla. Este kernel está basado en la serie 2.2, en el cual se han in- cluido muchos drivers destinados a soportar hardware antiguo (como pueden ser los dispositivos ISA), además de dar soporte al puerto USB. compact. Este kernel está basado en la serie 2.2 y principalmente orientado a dar soporte a dispositivos PCI y sistemas IDE y SCSI. idepci. Este kernel está basado en la serie 2.2 y está concebido para dar soporte al mayor número de hardware posible. Por esta razón se trata de un kernel bastante grande y poco optimizado. bf24. Kernel basado en la serie 2.4 con soporte para ext3 y ReiserFS orientado a dar soporte a hardware nuevo, como pueden ser los te- clados USB. También da soporte a dispositivos SCSI e IDE ATA-100. En este taller se hará la instalación utilizando el flavor bf24, ya que la experiencia dice que da muy buenos resultados, aparte de usar un kernel basado en la serie 2.4. Si con este flavor se diera el caso de que durante el proceso de arranque el ordenador se quedara colga- do o notáramos comportamientos extraños, como podría ser el no reconocimiento de disco duro, deberíamos cambiar de flavour, in- tentando hallar el que se adaptara mejor a nuestras necesidades, o el que simplemente nos dejase arrancar sin problemas; en este caso la primera opción que debería probarse es la idepci. ANOTACIONES 5.2.2. CD-ROM de Debian Woody y sus distintos flavours De los siete CD-ROM que componen Debian Woody, cinco llevan asociados uno o más flavours, y por tanto se puede arrancar el sis- tema de instalación desde ellos. La relación entre CD y flavours es la siguiente: CD1. Este CD-ROM es “multiboot”, es decir, al arrancar se le puede pasar como parámetro, el flavor deseado entre otros. Si no se le 98
  • 99. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © pasa ningún parámetro, transcurridos unos segundos arrancará como idepci. CD2. vanilla. CD3. compact. CD4. idepci. CD5. bf24. Así pues, para inicializar nuestra instalación bastará con “bootar” el ordenador desde la unidad de CD-ROM con el CD1 y teclear bf24 o con el CD5 y pulsar INTRO. 5.2.3. Installing Debian GNU/Linux 3.0 For Intel x86 El documento básico que nos proporciona Debian para su instala- ción es el Installing Debian GNU/Linux 3.0 For Intel x86, incluido en el CD1 (/install/doc/install .en .html) disponible en distintos idiomas, entre ellos el castellano (/install/doc/es/install.es.html). Es recomen- dable leer este documento y tener una copia del mismo a mano por si surgiera algún problema, como podría ser no disponer de una uni- dad de CD-ROM bootable. 5.3. Instalación de Debian Woody mediante CD-ROM Esta instalación se hará en un PC estándar sobre un disco duro IDE ANOTACIONES conectado como máster sobre el puerto IED primario estándar. Si se dispone de otro tipo de conectores en la placa base más rápidos (ATA-100 o ATA-133), probablemente también sean soportados por Debian, pero en general se requiere de configuraciones espe- ciales y, en consecuencia, quedan fuera de este taller. Por lo que se refiere a controladoras y discos SCSI, si éstos son medianamente estándares, serán detectados sin ningún problema durante el pro- ceso de arranque. 99
  • 100. © FUOC • 71Z799002MO © Software libre 5.3.1. Antes de empezar la instalación Antes de empezar la instalación propiamente dicha, habrá que cer- ciorarse de que disponemos de un espacio mínimo en nuestro disco duro donde realizarla (se recomienda disponer, como mínimo, de entre dos y tres gigabytes de espacio libre). Si éste es nuevo, pode- mos empezar directamente con la instalación, a pesar de que pen- semos instalar también otro sistema operativo en él (bastará con reservar el espacio que consideremos para éste con el tipo de parti- ción que requiera). Si disponemos de un espacio que previamente habíamos reservado –pues ya teníamos en mente instalar GNU/Linux– o tenemos una partición de cualquier otro sistema operativo donde deseamos insta- larlo, también podemos proseguir con la instalación, es decir, arran- car desde el CD-ROM. Si por el contrario tenemos todo el disco duro ocupado y con una sola partición (cosa muy poco recomendable, pues en general esto hace disminuir sensiblemente el rendimiento de cualquier sistema operativo, y en especial aquellos con sistemas de ficheros poco con- sistentes), debemos liberar espacio para poder instalar Debian Wo- ody. La dificultad de realizar esta operación dependerá estrictamente de qué sistema de ficheros sea el que contenga dicha partición. Probablemente, el sistema operativo en cuestión sea de la familia de productos de MicrosoftTM ; si el sistema de ficheros es de tipo FAT o FAT32 (utilizados por MSDOSTM, Windows95 TM y Windows98 TM) el problema es relativamente sencillo de solventar, ya que con la mis- ma distribución se nos facilita una aplicación (fips20.exe en el CD1 (/tools/fips20.zip)) que nos asistirá en la repartición del disco ANOTACIONES duro y en la creación de espacio para instalar GNU/Linux (es muy recomendable que antes de hacer correr fips se desfragmente el disco). Si el sistema de ficheros es de tipo NTFS (WindosNTTM, Windows2000TM o WindowsXPTM ), la cosa se complica, pues hasta la fecha no se conoce ninguna aplicación GPL que pueda hacer par- ticiones de este tipo de sistema de ficheros. Así pues, frente a esta si- tuación, de momento sólo se puede recurrir a aplicaciones comerciales (como puede ser PartitionMagicTM). 100
  • 101. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © 5.3.2. Arranque del sistema de instalación Llegados a este punto, podemos empezar la instalación propia- mente dicha. Para ello, arrancaremos el ordenador, nos asegura- remos de que el primer dispositivo a la hora de “bootar” sea la unidad de CD-ROM (entrando en la BIOS), y pondremos el CD1 en ella (dado que, en este caso concreto, vamos a usar el flavor bf24. También podríamos haber arrancado con el CD5 con los mismos resultados). Al cabo de unos momentos nos aparecerá una pantalla de bienvenida como la siguiente: Welcome to Debian GNU/Linux 3.0! This is a Debian CD-ROM. Keep it available once you have installed your system, as you can boot from it to repair the system on your hard disk if that ever becomes necessary (press <F3>for details). For a "safe" installation with kernel 2.2.20, you can press <ENTER> to begin. If you want additional features like modern hardware support, specify a different boot flavor at the boot prompt (press <F3> to get an overview). If you run into trouble or if you already have questions, press <F1> for quick installation help. WARNING: You should completely back up all of your hard disks before proceeding. The installation procedure can completely and cirreversibly erase them! If you haven’t made backups yet, remove the CD-ROM from the drive and press <RESET> or <Control-Alt-Del> to get back to your old system. Debian GNU/Linuxcomes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. For copyright information, press <F10>. ANOTACIONES Press <F1> for help, or <ENTER> to boot. boot: Podemos pulsar F1, sin demorarnos demasiado tiempo, ya que si no, la instalación empezará de forma automática y con el flavour idepci, flavour que se usa por defecto para acceder al índice de ayuda: 101
  • 102. © FUOC • 71Z799002MO © Software libre HELP INDEX: Press the function keys <F1> through <F10> for helpful information. KEY TOPIC <F1> This page, the help index. <F2> Prerequisites for installing this system. <F3> Boot methods for special ways of using this Rescue disk. <F4> Special boot arguments, overview. <F5> Special boot arguments for special machines. <F6> Special boot arguments for selected disk controllers. <F7> Special boot arguments for the install system. <F8> How to get help. <F9> Debian e-mail lists. <F10> Copyrights and warranties. Press <ENTER> or type boot method, arguments, and <ENTER> to boot. Press any of <F2> through <F10> for quick installation help. boot: Podemos pulsar cualquiera de las opciones que nos ofrece el menú, pero la más destacable es la F3, en la cual encontraremos los distin- tos flavours que admite el modo de arranque, y también cómo utili- zar este mismo CD1 para usarlo como disco de rescate: BOOT METHODS The Rescue disk can be used for system recovery as well as for installation. The rescue method will mount an existing root partition, while the other methods will give you a small, standalone root system. Available boot methods: linux or idepci Start the installation -this is the default. fbf24 Start the installation with a Linux 2.4 kernel. compact Start the installation with a kernel including PCI SCSI and IDE drivers. vanilla ANOTACIONES Start the installation with a kernel including many drivers for older hardware (such as systems with ISA-based hardware). rescue Boot and mount any root filesystem. The root filesystem must be given at the prompt, so e.g., type rescue root=/dev/hda1. (You can also use rescbf24, resccomp, or rescvanl.) Press <ENTER> or type boot method, arguments, and <ENTER> to boot. Press function key <F1> for the help index. boot: 102
  • 103. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Tecleemos pues bf24, y empecemos con la instalación. Una vez hecho esto, se cargará el kernel (veremos durante unos ins- tantes las salidas por pantalla de las distintas pruebas que se hacen) e inmediatamente nos aparecerá una pantalla, Choose The Langua- ge, para que mediante los cursores seleccionemos el idioma de ins- talación. A partir de ahora ya disponemos, pulsando la combinación de teclas ALT+F2 e INTRO, de un shell, que, aunque muy básico, puede usar- se en cualquier momento de la instalación. En la tty3 (ALT+F3) el kernel va dejando sus mensajes (es decir, el contenido del fichero /var/log/messages). 5.3.3. Configuración del idioma de instalación Es muy recomendable seleccionar la opción en Choose this and press Enter to proceed in English para evitar posibles errores de traducción. En general, y si es posible, siempre es mejor trabajar con el idioma original, y así se hará durante el resto del ta- ller; si bien, una vez más, se deja libertad al lector para que decida él mismo lo que le parece más adecuado; en este caso, que sea él quien elija el idioma que va a utilizar durante la instalación. Escogemos el idioma inglés y pulsamos INTRO. En la pantalla Cho- ose Language Variant siguiente se puede escoger qué inglés se quie- Nota re utilizar, nosotros usaremos el americano English (United El idioma de instalación no condiciona en modo alguno States). ni la configuración del te- clado, el cual hasta el mo- ANOTACIONES mento es us, ni el idioma de interacción con el sistema ni 5.3.4. Menú principal de instalación otras configuraciones. Esta opción sólo es válida duran- te el proceso de instalación. Después de la pantalla de créditos Release Notes, y tras pulsar IN- TRO, entraremos en la interfaz Debian GNU/Linux Installation Main Menu, que nos servirá para configurar el resto de la instalación. Esta interfaz opera según unos criterios preestablecidos; así, siempre se nos sugerirá el próximo paso a dar para una instalación estándar, seguido, si procede, de alternativas a esta opción. No obstante, me- 103
  • 104. © FUOC • 71Z799002MO © Software libre diante los cursores podemos desplazarnos y seleccionar cualquier opción de las que se nos ofrecen tras una línea en blanco (aquí se listan todas las opciones posibles de instalación, aunque algunas no estarán disponibles si en primer lugar no hemos utilizado otras; en principio, salvo casos excepcionales y por ser nuestra primera insta- lación, nunca usaremos estas opciones y dejaremos que la misma in- terfaz de instalación nos guíe por ellas mediante la sugerencia que nos haga en cada momento). 5.3.5. Configuración del teclado Como primera sugerencia, la interfaz de instalación nos propone que configuremos el teclado Configure the Keyboard. Así lo hacemos. Pulsamos INTRO para acceder a la pantalla Select a Key- board, y seleccionamos el teclado, qwerty/es:Spanish; pulsa- mos INTRO para que el dispositivo de entrada responda al mapeado de caracteres del teclado español. En la tty2 podemos comprobar que, efectivamente, ya disponemos de acentos, por ejemplo. 5.3.6. Partición del disco duro Una vez seleccionado el teclado, el proceso de instalación nos de- vuelve al menú principal y nos propone que procedamos a fraccio- nar el disco duro, Partition a Hard Disk. Así lo hacemos. Pulsamos INTRO y entramos en la pantalla de selección de dispo- sitivos que hay que fraccionar, Select Disk Drive. Si disponemos de más de un disco duro, mediante los cursores podremos seleccionar sobre cuál de ellos queremos operar. Una vez hecha la selección, pulsamos INTRO. Tras una pantalla de advertencia referente a las limitaciones de Lilo, LILO Limitations, y pulsando INTRO entramos en otra pantalla de consejo acerca de cómo se debe calcular el ta- ANOTACIONES maño de las particiones si se tiene intención de utilizar el Reiser fi- lesystem, Note on additional space for Reiserfs Journal. Pulsamos INTRO nuevamente y se arranca la aplicación cfdisk para crear y gestionar las particiones. Los tamaños, sus características y el número de particiones depen- den en gran medida del tipo de uso y de la cantidad de disco duro de que se disponga. Al tratarse de una instalación con fines educati- 104
  • 105. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © vos, se facilita seguidamente la información sobre las particiones que se crearán suponiendo que se trabaja sobre un espacio de entre los cinco y los quince gigabytes destinados a la nueva instalación. Como mínimo hay que crear dos particiones: una primera para montar el sistema y otra de swap (es cierto que se puede hacer ins- talaciones sin swap, pero, tal como ya se ha dicho, no es en absoluto recomendable). Para aumentar la eficiencia del sistema, nosotros crearemos cinco particiones. La primera destinada a albergar la root partition; ésta no tiene que ser muy grande, por ello se le destinará alrededor de un diez por ciento del disco duro, preferentemente en una partición primaria; pero si no disponemos de ella, la podemos crear como partición lógica sin darle más importancia. La segunda se destinará a swap. Se recomienda que ésta tenga un tamaño de entre 512kb y 1Mb; con estas dimensiones nos aseguraremos, salvo en casos excepcio- nales, de que nunca llegará a saturarse; esta partición también es preferible que sea primaria, pero si tiene que ser lógica, tampoco repercutirá en el rendimiento del sistema. La tercera partición esta- rá destinada a albergar el directorio /home/, cuya finalidad es al- macenar datos de usuario, y, dependiendo del tamaño del disco duro, se le puede asignar entre un diez y un veinte por ciento del disco duro, en función del número de usuarios y del uso que se va hacer del sistema. La cuarta partición será para el directorio /usr/; hay que tener presente que esta partición albergará gran parte del software que se instale; por lo que deberá tener un tamaño signifi- cativo, alrededor de un cuarenta por ciento del disco. El espacio restante se destinará al directorio /var/, donde se alojan librerías, ficheros de log, etc. ANOTACIONES La distribución de particiones anterior es sólo una propuesta que tie- ne dos objetivos: por un lado, pretende mejorar el rendimiento que ofrece una instalación basada únicamente en dos particiones y, por otro lado, da más robustez al sistema. Entre otras ventajas, tener los datos repartidos entre distintas particiones hace que la corrupción de una de ellas no implique automáticamente la pérdida de toda la in- formación del sistema. Obviamente, pueden crearse otras particio- nes u omitir algunas de las propuestas. (El orden de las particiones no afecta al comportamiento del sistema.) 105
  • 106. © FUOC • 71Z799002MO © Software libre Por lo que se refiere a cfdisk, su funcionamiento se basa en el uso de los cursores, tanto para moverse por las particiones del dis- co (parte superior de la pantalla, mediante los cursores Up y down), como para seleccionar las posibles operaciones que se puedan realizar en cada momento (parte inferior de la pantalla, con left y right), ya que éstas irán variando según el estado de la parti- ción seleccionada. Para crear una nueva partición, hay que selec- cionar la opción [ New ]; a continuación, si aún se pueden crear particiones primarias (el número máximo es cuatro), se nos pre- guntará si la queremos crear como partición primaria o lógica; después debemos especificar, en Mb, el tamaño de la partición; y finalmente su ubicación física en el disco (es recomendable que antes de empezar a fraccionar el disco hagamos un pequeño es- quema de cómo lo queremos hacer y crear las particiones a partir de éste, para poder así responder siempre [Beginning] a esta pregunta). Una vez se han creado las particiones, hay que asignarles el tipo de sistema de ficheros. Por defecto las particiones se crean de tipo Linux, es decir, con código 0x83; en general, pues, esta opción por defecto ya nos será útil salvo para la partición destinada a swap. Para esta partición en concreto habrá que seleccionar la opción [ Type ], con lo que primero se nos mostrará, en hexadecimal, la relación en- tre códigos y filesystem types, y después se nos preguntará qué tipo de sistema de ficheros queremos asignarle a la partición selecciona- da. Por defecto se nos propone la 0x82, es decir, Linux swap, que es la opción deseada. Si tenemos más de una instalación de GNU/Li- nux en el mismo ordenador, se puede utilizar la misma partición swap para todas ellas, ya que la información que se pueda almace- nar en ella durante el funcionamiento del sistema es totalmente vo- látil. Bastará, pues, con pulsar INTRO y se nos retornará a la pantalla principal de cfdisk mostrándonos que, efectivamente, se ha reali- ANOTACIONES zado el cambio. Una vez tengamos construida la tabla de particiones a nuestra me- dida, sólo habrá que seleccionar la opción [ Write ] para que ésta, tras una pregunta de confirmación final a la que responde- remos yes, se escriba en la MBR y poder hacer efectivos los cam- bios. Ahora, pues, ya podemos abandonar cfdisk con la opción [ Quit ] y proseguir con la instalación. 106
  • 107. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © 5.3.7. Inicialización y activación de la partición swap Una vez hemos salido del cfdisk, retornamos al menú principal. Esta vez se nos propone que inicialicemos y activemos la partición de swap, Initialize an Activate a Swap Partition. Pulse- mos INTRO para entrar en una pantalla, Scan fo Bad Blocks?, donde se nos pregunta si deseamos chequear la partición en búsqueda de posibles bloques defectuosos. Esta misma pantalla nos aparece cada vez que inicializamos y activamos una partición. Hay que advertir que el proceso de chequeo es lento, así pues, esta vez lo activaremos para ver su modo de proceder, pero para el resto de particiones de- jaremos que cada uno tome la decisión que estime más acertada. La experiencia pone de manifiesto que para discos nuevos, o en buen estado, no es necesario ejecutar este proceso de prueba, puesto que los resultados siempre suelen ser positivos. Una vez terminado el proceso de chequeo, entramos en una pantalla de confirmación final, Are You Sure?, antes de proceder a la iniciali- zación y a la activación de la partición. Pulsemos INTRO para llevar a termino nuestro objetivo. 5.3.8. Inicialización y activación de una partición Linux De vuelta al menú principal, éste nos sugiere que inicialicemos y ac- tivemos una partición de Linux, Initialize and Active a Swap Partition. Esta operación es indispensable, pues es en este punto, cuando inicialicemos, activaremos y montaremos la partición root (/). Pulsamos INTRO para entrar en la pantalla de selección del tipo de sistema de ficheros que deseamos para esta partición, Choose Fi- lesystem Type. Nosotros decidimos que sea de tipo ext3. Una vez he- cha esta selección, entramos en la pantalla, donde elegiremos la ANOTACIONES partición sobre la que queremos operar, Select Partition. Como se trata de montar la partición root, elegiremos la primera. Una vez he- cho así, entraremos en la pantalla ya conocida de chequeo de blo- ques defectuosos, y a continuación en la pantalla de confirmación de operación. Tras la operación, el sistema de instalación nos pregunta si queremos montar en esta partición el root filesystem, Mount as the Root Filesystem?. Obviamente, pues así lo habíamos planeado, res- ponderemos afirmativamente. 107
  • 108. © FUOC • 71Z799002MO © Software libre 5.3.9. Inicialización y activación de otras particiones Linux Ahora el menú principal nos sugiere, como opción principal, que instalemos el kernel y sus módulos en la root partition, Install Kernel and Driver Modules. Nosotros aún no lo haremos, pues, tal como habíamos planeado, tenemos que inicializar, acti- var y montar el resto de particiones que hemos creado. Elegimos, pues, la primera alternativa que nos ofrece el menú principal Initialize a Linux Partition. Hecho esto, entraremos en la pantalla de selección de filesystem, ext3 nuevamente, y entramos en la pantalla de selección de partición. Optamos por la primera que se nos sugiere, y entramos en las pantallas de chequeo de blo- ques y de confirmación. Una vez terminada la operación, se nos pregunta qué partición queremos montar Select Mount Partition. Aquí la primera vez optaremos por la de /home, siguiendo el plan- teamiento inicial. De nuevo en el menú principal, repetiremos las acciones anteriores para montar las particiones de /usr y de /var. 5.3.10. Instalación del kernel Una vez terminado con el proceso de inicialización, activación y montaje de todas las particiones que habíamos creado, podemos proceder al próximo paso que el menú de instalación hace ya rato que nos sugiere, es decir, instalar el kernel y los módulos Install kernel and Driver Modules. Entramos ahora en la pantalla de selección del medio de instalación Select Installation Medium. Como estamos instalando el sistema utilizando el juego de CD, elegimos la primera opción. Se nos pide ahora el primer CD, Please insert the ANOTACIONES CD-ROM, pero como éste ya se halla en el lector, podemos continuar el proceso. Entramos ahora en una pantalla en la que se nos pide dónde debe ir el sistema a buscar los ficheros del kernel para la instalación, pero como estamos realizando la instalación desde CD-ROM, sólo se nos da una opción. Así pues, pulsamos INTRO para instalar el kernel en el disco duro, en la root partition. 108
  • 109. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © 5.3.11. Configuración de módulos Llegados a este punto, el menú principal nos sugiere la configuración de los módulos del kernel Configure Device Driver Modules. Si- guiendo este paso, entramos en una pantalla de advertencia sobre los módulos que ya lleva incorporado el kernel que se ha instalado Note about loaded drivers, el cual nos indica que si no encontramos ningún módulo que sea del todo necesario podemos proseguir con la instala- ción. En principio no debemos preocuparnos demasiado por los módu- los, pues por ahora nuestro objetivo principal es instalar un sistema mínimo en nuestro PC, y luego ya lo iremos ampliando y mejorando. Así pues, podemos dar un paseo por el menú de módulos con el fin de ad- quirir conocimientos, pero, en principio, no activaremos ninguno (una vez instalado el sistema básico, podremos entrar en este mismo menú y activar cualquier módulo mediante el comando modconf). 5.3.12. Configuración del hostname Es momento de dar un nombre al sistema que estamos instalando Configure the hostname. Por defecto se nos sugiere el nombre de Debian, Choose the Hostname. Podemos borrar esta sugerencia y dar un nombre que nos guste más compuesto de una sola palabra, brau, por ejemplo. (En este punto sólo hay que especificar el nombre local del sistema. Si éste va a formar parte de una red, y por tanto ne- cesita de dominio, éste ya se especificará en el apartado de configura- ción de la red.) 5.3.13. Instalación del sistema base Con toda esta información, el sistema ya puede hacer la instalación del sistema base; es lo que nos propone el menú principal, Install ANOTACIONES the System Base. Aceptamos pues esta propuesta. Nuevamente se nos pregunta por el medio de instalación, CD-ROM, la opción por defecto y seguidamente se nos requiere de nuevo el CD1 para pro- seguir; pulsamos, pues, INTRO y dejamos que el sistema lea los fi- cheros necesarios. El siguiente paso es especificar el directorio desde donde se va a ins- talar el sistema base Select Archive Path. Sólo se nos muestra una op- 109
  • 110. © FUOC • 71Z799002MO © Software libre ción, instmnt, que es el directorio virtual que se ha creado para tal fin (en realidad esta información se obtendrá del CD1, a partir de enlaces simbólicos de este directorio al directorio /CD-ROM/). Así pues, pulsemos INTRO y dejemos que finalmente empiece la instala- ción del sistema base en el disco duro. 5.3.14. Creación de un disco de arranque Una vez terminado el proceso de instalación del sistema base, el menú principal nos sugiere hacer el sistema bootable, Make System Bootable. Sin embargo, como medida de seguridad nos decidimos por la primera alternativa que se nos ofrece, es decir, crear un disco de arranque. Así pues seleccionamos esta opción, Make a Boot Floppy, y pulsamos INTRO. Insertamos un disquete virgen en la dis- quetera y procedemos a crear dicho disco. 5.3.15. Instalación de Lilo Una vez creado el disco de arranque, el menú principal nos sugiere que “rebootemos” el sistema. Pero también podemos hacer el siste- ma bootable, como se nos sugería anteriormente, es decir, dejar que escriba en la MBR la información necesaria para que se pueda arrancar la instalación que acabamos de realizar desde el propio disco duro. Para ello, debemos seleccionar la opción Make System Bootable y contestar afirmativamente, por lo general, a las pro- puestas que nos hace el sistema de instalación. Realizar esta operación en este momento está plenamente justificada si en nuestro PC sólo hemos instalado GNU/Linux, o si creemos que el gestor de arranque Lilo será capaz de “bootar” otros posibles sistemas ANOTACIONES operativos que tengamos instalados (en el caso de tratarse de sistemas MicrosoftTM , puede instalarse Lilo, ya que la experiencia muestra que Lilo es perfectamente capaz de gestionar su arranque). Pero no debe- mos realizar esta operación, si ya disponemos de otro gestor de arran- que (el cual habrá que configurar para que pueda arrancar el sistema que acabamos de instalar), o si queremos instalar otro gestor de arranque como puede ser gups, o si no estamos plenamente seguros de que Lilo será capaz de gestionar correctamente el arranque del res- to de sistemas operativos que tengamos instalados. 110
  • 111. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Si no hemos instalado Lilo, de momento podemos arrancar el siste- ma operativo mediante el disquete que hemos creado anteriormente, y en el próximo taller evaluaremos la posibilidad de instalar el gestor de arranque desde el propio sistema. 5.3.16. Reinicialización del sistema Ha llegado el momento de reinicializar el sistema para arrancar el sistema base que hemos instalado en nuestro disco duro, y a partir de él empezar a personalizar nuestra primera instalación de GNU/ Linux. Así pues, retiramos el CD1, o cuando se produzca la reinicia- lización, entramos en la BIOS para reestablecer la secuencia de dis- positivos de arranque, preferiblemente disquetera, disco duro, CD- ROM, etc. para un sistema estándar), y el disquete si hemos instalado Lilo, y seleccionamos la opción Reboot the System. Tras una pantalla final de advertencias y recomendaciones que debemos leer atentamente, podemos proceder a la reinicialización. Si no se ha ins- talado Lilo, el disquete deberá permanecer en la disquetera, y debe- mos asegurarnos de que el PC arrancará desde él. 5.3.17. Arranque del sistema base Si todo ha ido como es debido, tras reiniciar el sistema observare- mos, tanto si hemos arrancado íntegramente desde el disco duro, como si se ha hecho inicialmente mediante disquete, que el sistema, al arrancar, ya usa información del disco duro. Transcurridos unos momentos, en los cuales irán apareciendo por pantalla los resulta- dos de los distintos procesos que se ejecutan durante el arranque, el sistema entrará en una pantalla de bienvenida, y nos invitará a pro- seguir la instalación, recordándonos que podremos repetir este pro- ANOTACIONES ceso en cualquier momento ejecutando el comando base-config como root. Pulsamos INTRO y proseguimos. 5.3.18. Configuración horaria Inmediatamente después de la pantalla inicial de configuración, entramos en la de la configuración horaria del sistema, Iime Zone Configuration. En ésta se nos mostrará la hora de la BIOS. Si esta hora 111
  • 112. © FUOC • 71Z799002MO © Software libre coincide con la hora de nuestro huso horario, debemos contestar que no; por el contrario, si esta hora está establecida respecto al meridiano de Greenwich, debemos contestar que sí, para que el sistema haga los cálculos necesarios para situarnos en la hora de nuestro huso horario. 5.3.19. Configuración geográfica Una vez establecido el criterio para el cálculo horario, debemos especi- ficar, en las dos pantallas siguientes, Time Zone Configuration, nuestro emplazamiento geográfico. Si la hora de la BIOS está sintonizada según la hora local, y así lo hemos especificado en el apartado anterior, las respuestas a estas preguntas no tendrán ninguna relevancia. Sí que es importante contestar correctamente a estas preguntas si el horario de la BIOS se ha establecido según el criterio GTM. (Siempre es posible recon- figurar estos parámetros mediante el comando tzconfig). 5.3.20. Establecimiento de la política de passwords Una vez terminados los procedimientos para la configuración hora- ria del sistema, ha llegado el turno de establecer la política de pas- swords, Password Setup. Ésta se compone de posible habilitación de los sistemas md5 y shadow, y del establecimiento del password de root, y de la creación de una cuenta de usuario. Sistema md5 En primer lugar el sistema nos pregunta si queremos instalar el siste- ma de passwords md5. Si no tenemos sospecha de problemas de in- compatibilidades (NIS, etc.), podemos contestar que sí, ya que es ANOTACIONES buena idea poder usar passwords con más de ocho caracteres. Sistema shadow Una vez más, si no tenemos sospecha de posibles incompatibilidades (este sistema no suele implicar problemas de incompatibilidades), es bueno habilitar esta opción, ya que así nos aseguramos de que el fi- chero que contiene los passwords encriptados (/etc/shadow) sólo 112
  • 113. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © será accesible por el root. Esto supone una medida más de protec- ción para nuestro sistema. Password de root Ahora debemos entrar el password de root. Es importante seguir las Nota recomendaciones para seleccionar este password y acordarse de él. Frente al olvido del password Con el objetivo de confirmar que se ha entrado el password deseado de root, hay distintas estrate- y no ha habido posibles errores de tecleo, se nos pide que lo volva- gias a seguir. Una de ellas puede ser utilizar el CD-ROM mos a escribir a modo de confirmación. de instalación, inicializar una instalación y, justo después de haber configurado el te- Creación de una cuenta de usuario clado, acceder a la tty2; una vez allí, podemos montar la root partition de nuestro disco Tal como ya se ha remarcado, trabajar siempre como root es una duro y mediante un editor eli- minar el contenido del cam- mala política por distintos motivos. A consecuencia de ello, el sistema po de password encriptado nos recomienda crear una cuenta de usuario normal. Se nos pedirá del fichero /etc/passwd. el nombre de esta cuenta, si queremos añadir datos suplementarios Cuando volvamos a reiniciar el sistema, el superusuario no de la misma (por defecto Debian user), y su password , que, por la tendrá password, por esta ra- misma razón, debemos escribirlo dos veces. zón, lo primero que debemos hacer es asignarle inmedia- tamente uno. 5.3.21. Últimas configuraciones Paquetes PCMCIA Una vez creado el usuario normal, si no disponemos de dispositivos PCMCIA (típicos en ordenadores portátiles), el sistema lo detectará automáticamente y nos sugerirá que confirmemos que los paquetes asociados a estos dispositivos pueden ser eliminados. ANOTACIONES Configuración de un sistema PPP Si disponemos de un módem, puede ser buena idea que proceda- mos a su configuración, aunque también se puede hacer una vez es- temos en el sistema mediante la aplicación pppconfig ejecutada como root. Obviamente, si no disponemos de este dispositivo, respon- deremos negativamente a esta pregunta. Si no requerimos de los servi- cios de PPP, podemos desinstalar sus paquetes: ppp, pppconfig, pppoe y pppoeconf. 113
  • 114. © FUOC • 71Z799002MO © Software libre 5.3.22. Configuración de apt En esta sección se nos pregunta acerca de las fuentes donde apt de- berá ir a buscar la información para construir su base de datos sobre los paquetes (dependencias, estado de instalación, etc.). Al estar ha- ciendo una instalación íntegramente basada en CD-ROM, escogemos la primera opción, y, tras poner el CD1 en el lector, aceptamos la ruta que nos sugiere para acceder a él. Transcurridos unos momentos en los cuales apt extrae la información relativa a los paquetes que contie- ne este CD, se nos preguntará si queremos añadir el contenido de otro CD a la base de datos. Una vez hayamos introducido el CD2 en el lec- tor, contestamos yes a esta pregunta. Repetimos esta operación has- ta que apt haya procesado el contenido del séptimo CD-ROM. Las operaciones sobre la gestión de contenidos de los CD-ROM se pueden hacer también desde el sistema mediante la aplicación aptCD-ROM. Una vez finalizado el escaneo de los contenidos de los siete CD- ROM, se nos preguntará si queremos añadir alguna otra fuente de donde apt pueda obtener paquetes. De momento contestaremos que no, al igual que a la siguiente pregunta respecto al chequeo de seguridad de los contenidos de los paquetes (no es necesario de mo- mento, ya que, al estar usando únicamente paquetes de la distribu- ción oficial, en principio sus contenidos ya son seguros). 5.3.23. tasksel y dselect A continuación se nos pregunta si queremos que se ejecuten los pro- gramas de selección de paquetes, primero tasksel y luego dse- lect. Responderemos que no, pues estos programas también los podremos ejecutar desde la línea de comandos una vez hayamos terminado la instalación. ANOTACIONES Aquí termina la instalación básica, como último punto, y ya respon- diendo a preguntas formuladas por apt, se nos informará de los pa- quetes que se van a instalar y los que se van a desinstalar. Una vez aceptado este proceso, se nos preguntará si queremos borrar los pa- quetes .deb de nuestro disco duro. (Estos archivos se almacenan en /var/cache/). Al disponer de ellos en CD-ROM, podemos contestar que sí, ya que su presencia sólo implica la ocupación de espacio en el disco duro. 114
  • 115. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Automáticamente, se arranca el programa de configuración de exim. Al no ser objeto de este taller la configuración de este programa de ges- tión de correo, escogemos la opción 5 para salir del programa. Final- mente, tras unos momentos nos aparecerá por pantalla: Debian GNU/Linux 3.0 brau tty1 brau login: Así, tenemos instalado un sistema básico estándar en nuestro orde- nador. Ahora empieza la tarea de construir un sistema a nuestra me- dida. Es muy importante, llegados a este punto, distinguir entre dos tipos de sistemas: los de desarrollo y los de producción. Un sistema de desarrollo es aquel que está destinado a experimen- tación, donde se hacen pruebas y experimentos, y donde no priman ni la estabilidad ni la eficiencia, es, en definitiva, un sistema destina- do a la adquisición de conocimientos sobre el propio sistema. Con- trariamente, en un sistema destinado a producción la eficiencia y la estabilidad son las características que más peso tienen. Así pues, de- bemos asegurarnos de que contenga única y exclusivamente aque- llos paquetes estrictamente necesarios, ya que el hecho de tener paquetes innecesarios instalados va en detrimento de la eficiencia. La estrategia que habrá que seguir antes de montar un sistema de producción (un servidor de web, un servidor de aplicaciones, etc.) pasa siempre por trabajar primero sobre un sistema de desarrollo, donde se ensayarán y probarán distintas tácticas para poder sacar conclusiones de cara a montar el sistema de producción. Nuestro primer sistema será, evidentemente, un sistema de desarrollo, tanto porque no tenemos en mente que sirva para cubrir ninguna ne- cesidad en concreto, como porque es nuestra primera experiencia de ANOTACIONES montaje de un sistema, cuya finalidad es, únicamente, la obtención de conocimientos. Instalaremos y desinstalaremos distintos paquetes, ha- remos pruebas con distintas configuraciones, etc. y esto, claro está, perjudica directamente la eficiencia y la estabilidad del sistema. Así pues, animamos al lector, a que, una vez finalizado el módulo y haya obtenido ya una idea global de lo que es instalar un sistema, con todo lo que ello implica, reinstale de nuevo todo el sistema partiendo de cero para adaptarlo estrictamente a sus necesidades. 115
  • 116. © FUOC • 71Z799002MO © Software libre 5.4. Instalación de Debian Woody por red Muchos de los pasos para realizar una instalación por red son comu- nes a los de una instalación mediante CD-ROM, así pues, destaca- remos y nos centraremos en aquellos aspectos que difieren del proceso anteriormente descrito. 5.4.1. Particularidades de una instalación por red La diferencia básica entre una instalación hecha mediante un juego de CD-ROM y una por red radica en la ubicación de los paquetes a la hora de instalarlos. Mientras que en una instalación hecha a partir de CD-ROM, habrá que insertar en el lector al menos uno de ellos cada vez que se instale un paquete nuevo para poder extraer de él los datos necesarios. En una instalación por red los paquetes se obtienen remo- tamente, hecho que nos permite, en primer lugar, acceder a la última versión de éstos, y poder actualizar todos los que tengamos instalados con una simple línea de comandos. (apt-get upgrade) Por otro lado, para realizar una instalación por red, generalmente basta con un juego de disquetes, o con un único CD-ROM, que contenga la información necesaria para poder arrancar un sistema operativo básico sobre el cual se hará correr el programa de instalación (que ya está in- cluido en el juego de disquetes o en el CD-ROM, junto con los módulos que nos puedan ser necesarios para configurar el acceso a la red), y a partir de aquí, el resto de información se obtendrá remotamente. 5.4.2. Aspectos comunes de los distintos métodos de instalación ANOTACIONES Como ya se ha dicho, muchos de los pasos a seguir para hacer una ins- talación por red son comunes a los datos para hacer una instalación mediante el juego de CD-ROM de la distribución. Así pues, entramos en el programa de instalación del mismo modo en que lo hemos hecho an- teriormente ([5.3.1.] y [5.3.2.]) e inicialmente seguimos los mismos pa- sos para configurar el idioma de instalación, el teclado, fraccionar el disco duro y activar las particiones ([5.3.3.], [5.3.5.], [5.3.6.], [5.3.7.], [5.3.8.] y [5.3.9.]), y para instalar el kernel ([5.3.10.]). En el apartado Select Installation Médium optamos por la opción /dev/ 116
  • 117. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © fd0, e inmediatamente se nos pedirá que insertemos el rescue disk seguido de los discos de drivers. Las imágenes de estos discos se hallan en /CD-ROM/dists/woody/main/disks-i386/3.0.23- 2002-05-21/images-1.44/ bf2.4.. Llegados a este punto, ten- dremos que comprobar si el kernel ha reconocido nuestra tarjeta de red y, si no es el caso, procedemos a instalar y configurar el módulo perti- nente para hacerla operativa. En muchos casos la configuración, paso de parámetros, se puede hacer de modo automático mediante mo- dprobe, programa que se puede lanzar desde la misma interfaz de ins- talación después de la selección de un módulo. Una vez hecho esto, debemos configurar la red, especificar de qué sitio obtendremos las fuentes, y a partir de aquí seguiremos los mismos pasos que con el CD- ROM para terminar su instalación. 5.4.3. Instalación del módulo de red Éste es un punto clave para poder realizar la instalación por red, ya que es aquí donde, si el driver de nuestra tarjeta de red no ha sido compilado dentro del kernel, debemos seleccionar el módulo nece- sario para tener acceso a ella. En primer lugar, pues, debemos ave- riguar si nuestra tarjeta de red ya ha sido detectada durante el proceso de arranque y se ha cargado su correspondiente driver. Para hacerlo, accedemos al segundo terminal (ALT+F2) y ejecutamos el comando dmesg. Ahora debemos buscar, entre las muchas líneas que nos ha devuelto este comando, si hay algunas que hacen refe- rencia a nuestra tarjeta de red. A modo de ejemplo, para una tarjeta RTL-8029 (Realtek Semiconductors) se obtiene: brau:˜# dmesg . . ANOTACIONES . ne2k-pci.c:v1.02 10/19/2000 D. Becker/P. Gortmaker http://www.scyld.com/network/ne2k-pci.html PCI: Found IRQ 11 for device 00:0b.0 PCI: Sharing IRQ 11 with 00:07.2 eth0: RealTek RTL-8029 found at 0xe400, IRQ 11, 52:54:00:DB:FB:D4. . . . 117
  • 118. © FUOC • 71Z799002MO © Software libre Si la búsqueda ha resultado infructuosa, en primer lugar debemos determinar qué tarjeta de red tenemos. Para ello, lo mejor es acudir a la documentación incluida con ella o a su inspección visual. Si esto no es posible, hay otras estrategias para determinar cuál es nuestra tarjeta, como puede ser, pulsar ALT+F2 para acceder a la consola e investigar el contenido del fichero /proc/pci (mediante cat, por ejemplo), o podemos recurrir a la información que nos puede pro- porcionar algún otro sistema operativo que tengamos instalado en el ordenador. Una vez conozcamos qué tipo de tarjeta de red es la que tenemos, de- bemos averiguar qué módulo es el que nos servirá para acceder a la tarjeta. La estrategia más segura para este fin es recurrir a cualquier buscador, por ejemplo http://www.google.es, entrar palabras clave so- bre nuestra tarjeta (referencia de la tarjeta NIC linux module, por ejemplo) y leer algunas de las páginas encontradas. También se puede recurrir a las páginas de las principales distribuciones de linux, y entrar la referencia de la tarjeta en sus buscadores. Como último recurso, se puede recurrir a la documentación de módulos de red del kernel , donde se especifica, para todas las tarjetas soportadas, el módulo correspon- diente. También es bueno saber si el fabricante ha desarrollado su pro- pio módulo. Llegar a encontrar un módulo para una tarjeta puede ser una tarea muy complicada, incluso imposible, ya que puede suceder que no haya soporte para dicha tarjeta o que haya que recurrir a méto- dos avanzados para poderlo configurar; por este motivo, se recomienda utilizar siempre tarjetas lo más estándar posible. Una vez hayamos averiguado el módulo que necesitamos, después de instalar el kernel ([ 5.3.10.]), debemos seleccionar la propuesta que nos sugiere el menú principal Configure Device Driver Modules. Tras una pantalla de advertencia, donde se nos recuerda que muchos drivers ya están incluidos en el kernel, entraremos en la ANOTACIONES pantalla de selección de módulos Select Category, (podemos acce- der a esta interfaz en cualquier momento, ejecutando el comando modconf. Este comando sirve como fornt-end para la administra- ción de drivers que han sido compilados de forma modular junto al kernel) y mediante los cursores seleccionaremos la opción kernel/ drivers/net. Una vez dentro de la pantalla de selección de mó- dulos de tarjeta de red Select Kernel/drivers/net modules, seleccio- namos otra vez con los cursores el módulo que necesitamos. Tras responder que sí a la pregunta sobre si realmente queremos instalar 118
  • 119. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © dicho módulo, podemos dejar que el autoprobe configure el módulo por nosotros, si no hay que pasar ningún parámetro en concreto al módulo en cuestión. Pasados unos instantes, recibiremos el mensaje indicándonos si el módulo se ha instalado correctamente o no. 5.4.4. Configuración de la red Una vez sabemos que la tarjeta de red está operativa, en el menú principal de la instalación seguiremos el paso sugerido Configure the Network para proceder a la configuración de la red. En pri- mer lugar deberemos configurar el nombre del host (antes se ha su- gerido brau, por ejemplo), sin entrar el dominio. A continuación, deberemos entrar la IP, la máscara de red, el gateway, el nombre de dominio, y los servidores de DNS, hasta un número de tres, separa- dos por espacios. 5.4.5. Configuración de apt Una vez se ha configurado la red, los siguientes pasos que hay que seguir son idénticos a los seguidos en la instalación por CD-ROM, hasta llegar a la configuración de apt Apt Configuration. Llegados a este punto, en vez de elegir la opción de CD-ROM, optaremos por la opción de red que más nos convenga. A efectos prácticos es lo mis- mo seleccionar el protocolo http que el ftp. Después de realizar la se- lección se nos preguntará si deseamos usar paquetes de tipo non- US; en principio, y salvo problemas legales, responderemos que sí. Respecto a la respuesta sobre la pregunta siguiente, referente al uso de paquetes nonfree, ya se deja que el mismo lector tome la decisión según sus principios éticos. Acto seguido se nos pregunta de qué es- tado debe ser el mirror del cual apt deberá obtener los paquetes, de- ANOTACIONES bemos escoger siempre el que nos sea accesible de forma más rápida, que acostumbra a ser el más próximo a nosotros geográfi- camente hablando. Una vez seleccionado el estado, se nos pide que seleccionemos un servidor en concreto (la aplicación netselect destinada a facilitar la elección de servidores de paquetes según el criterio de velocidad de acceso). Cuando se ha resulto esta cuestión, se nos muestra la pantalla de configuración de acceso a través de proxy; si no tenemos que usar este servicio, dejaremos en blanco la línea. 119
  • 120. © FUOC • 71Z799002MO © Software libre Es importante que los paquetes críticos, en cuanto a seguridad se refiere, se obtengan de servidores seguros. Por esta razón, se recomienda que éstos se obtengan en concreto de security.debian.org. Terminados todos estos pasos, apt conectará con el mirror que le he- mos especificado para configurar su base de datos. A partir de este punto, para el resto de la instalación seguiremos los mismos pasos que en la instalación realizada mediante CD-ROM. 5.5. Conclusión En este taller hemos aprendido a instalar GNU/Linux en nuestro or- denador. Aunque por ahora nuestro sistema sea muy básico, el ob- jetivo del taller se ha cumplido plenamente, ya que hemos sentado las bases para poder empezar a sacar partido de la flexibilidad y po- tencia de este sistema operativo. En el próximo taller aprenderemos cómo configurar el sistema e instalar nuevas aplicaciones para ir adaptándolo y dotándolo de todas las herramientas que estimemos necesarias para cubrir nuestras necesidades. ANOTACIONES 120
  • 121. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © 6. Configuraciones básicas 6.1. El sistema de login Si todavía no tenemos configurado el entorno gráfico, cuando arranca- mos un sistema GNU/Linux nos aparece una pantalla de login donde se pide al usuario que se identifique antes de empezar a utilizar el siste- ma. De hecho, la mayoría de distribuciones lanzan varias consolas a las que podemos acceder a partir de ALT+F1, ALT+F2, etc. Ello nos permi- te trabajar simultáneamente con diferentes cuentas a la vez, tener varias sesiones abiertas para ejecutar diferentes programas, etc. El programa que se encarga de gestionar cada una de estas consolas es el getty. Lo único que hace este programa es abrir una conexión con el dispositivo adecuado (en el caso de las consolas de la panta- lla, es el /dev/ttyX, donde la “X” es el número de consola) y lanzar la aplicación de login. Este mecanismo nos permite mucha flexibili- dad, ya que el mismo programa getty permite comunicarse con diferentes dispositivos, de forma que podríamos conectar un terminal por el puerto serie del ordenador, montar una consola utilizando la línea telefónica y un módem, etc. Antes de lanzar la aplicación de login, se muestra un mensaje de bienvenida por pantalla. Este mensaje lo podemos configurar en el fichero /etc/issue, escribiendo lo que queramos. En este mismo fichero también podemos mostrar algunas de las variables del siste- ma referenciándolas como: ANOTACIONES “d” la fecha actual “s” el nombre del sistema operativo “l” el número de consola “m” la arquitectura del ordenador “n” el nombre del ordenador “o” el nombre del dominio “r” la versión del sistema operativo “t” la hora actual “u” número de usuarios activos en el sistema 121
  • 122. © FUOC • 71Z799002MO © Software libre Una vez entramos en el sistema, el programa de login se encarga de mostrarnos el mensaje del día. Este mensaje es lo que hay escrito en el fichero /etc/motd, que también podemos cambiar. Este mecanis- mo es muy útil para informar a todos los usuarios de algún evento determinado, avisarles de algún problema, etc. Si un usuario quiere suprimir este mensaje, puede hacerlo creando un fichero vacío lla- mado .hushlogin en su directorio home. Después de mostrar este mensaje, el proceso de login lanza el shell configurado por defecto para el usuario. Lo primero que hace el intérprete de comandos es ejecutar el contenido del fichero .profile (que debe estar en el directorio home del usuario). Este fichero sirve para que se ejecuten las instruccio- nes configuradas siempre que el usuario entre en el sistema. Además de este ~/.profile, también tenemos el /etc/profile, que se eje- cuta para todos los usuarios del sistema y resulta muy útil para poder configurar a todos las opciones que deseamos sin tener que poner las instrucciones dentro de cada uno de los .profile de los usuarios. 6.2. Explorando el bash Si bien el fichero .profile es ejecutado, sea cual sea el shell que utilicemos, los archivos .bashrc o .bash profile se suelen eje- cutar sólo cuando utilizamos el bash (aunque se puede configurar a partir del mismo .profile del usuario, que es donde se llama a la ejecución de este archivo). Vamos a ver algunas de las instrucciones que podemos encontrar en estos ficheros: #CONFIGURACIONES BÁSICAS mesg n umask 022 #PATH ANOTACIONES export PATH= /usr/local/sbin:/usr/local/bin:/usr/ sbin:/usr/bin:/sbin:/bin:/usr/bin/X11 #PROMPT export PS1=’h:w$ ’ #ALIAS DE USUARIO alias l=’ls --color=auto’ alias ll=’ls --color=auto -al’ alias rm=’rm -i’ alias cp=’cp -i’ 122
  • 123. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © alias mv=’mv -i’ alias v=’vim’ Como vemos, en este archivo podemos definir lo que queramos. Las Nota dos primeras instrucciones del fichero anulan la entrada de mensajes Si queremos ejecutar los de otros usuarios y configuran los permisos que tendrán los nuevos fi- programas del directorio cheros que vamos a crear. La siguiente instrucción es la definición del desde donde estamos situa- dos sin necesidad de poner PATH. El PATH son los directorios donde tenemos los comandos, pro- "./" al principio, podríamos gramas, aplicaciones, etc. que queremos poder llamar desde cual- añadir esta entrada en la declaración del PATH. Igual- quier sitio de la jerarquía de sistema de ficheros sin necesidad de mente, si en el PATH no hay escribir su ruta completa (cada directorio del PATH lo separamos con el programa que necesita- mos ejecutar, podemos es- “:”). La siguiente declaración es la del prompt del sistema. El prompt pecificar la ruta completa es la línea que aparece en el shell antes del carácter “ #” (para el root) del mismo en la línea de co- o “$” (para los otros usuarios). Podemos configurarnos este prompt de mandos. De todas formas, no es recomendable añadir la forma que queramos utilizando las siguientes variables del sistema: "./" al PATH porque puede representar un agujero de seguridad. “d” la fecha del sistema “h” el nombre de la máquina “s” el shell que utilizamos “u” el nombre del usuario “v” la versión del bash “w” el directorio actual “!” el número de historia del comando “$” aparece “#” si somos el root o “$” para los otros usuarios Finalmente, tenemos los alias de usuario. Los alias son sinónimos, Nota generalmente para los comandos que más utilizamos (para no tener Podemos ver todos los alias que escribirlos completamente). Por ejemplo, en uno de los alias que definidos a partir del mismo teníamos en el ejemplo definíamos que al escribir “l” se ejecutara comando alias. “ls --color=auto”. De esta forma, podemos utilizar largos co- mandos sin tener que estar escribiéndolo todo cada vez que los uti- ANOTACIONES lizamos. Tanto en la definición del PATH como en la del prompt hemos utili- Nota zado el comando export. Este comando nos permite definir lo que Con “echo $NombreVa- llamamos una variable de entorno. Estas variables son utilizadas riable” podemos ver el por el shell para realizar ciertas operaciones, guardar algún tipo de contenido de estas variables información, etc. Podemos ver todas las que hay declaradas con el y atributos. mismo comando export. Con set y unset también podemos 123
  • 124. © FUOC • 71Z799002MO © Software libre manipular otros atributos que tiene el intérprete de comandos. Algu- nas de estas variables y atributos, que tiene por defecto el bash, son: • PWD: directorio actual. • BASH VERSION: versión del bash que utilizamos. • RANDOM: genera un número aleatorio diferente cada vez que mostramos su contenido. • SECONDS: número de segundos que han pasado desde que he- mos abierto el shell. • HOSTNAME: nombre del sistema. • OSTYPE: tipo de sistema operativo que estamos utilizando. • MACHTYPE: arquitectura del ordenador. • HOME: directorio home del usuario. • HISTFILESIZE: tamaño del fichero de historia (número de co- mandos que se guardan). • HISTCMD: número de comando actual en la historia. • HISTFILE: fichero donde se guarda la historia de comandos (ge- neralmente .bash history del directorio home del usuario). Con la manipulación de estas variables podemos personalizar mu- cho más nuestro intérprete de comandos para adaptarlo a nuestros ANOTACIONES gustos y necesidades. 6.3. El sistema de arranque Aunque con la instalación del sistema operativo ya se lleva a cabo la configuración e instalación de un sistema de arranque, en esta sec- ción veremos con detalle qué opciones nos proporcionan y cómo de- 124
  • 125. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © bemos personalizarlos y adaptarlos a nuestras necesidades. Aunque existen muchos, el Lilo y el Grub son los más utilizados en los entor- nos GNU/Linux, con lo cual sólo nos centraremos en ellos. Antes de entrar en detalles sobre la configuración de estos dos pro- gramas, explicaremos cómo funciona el sistema de arranque de un PC estándar. Tal como ya sabemos, a partir de la BIOS o EFI del or- denador podemos configurar la secuencia de arranque del mismo. En general, esta secuencia suele empezar buscando en la disquetera y sigue con el CD/DVD y el disco duro. Aunque podemos instalar el Lilo o el Grub en un disquete o en el sector de arranque de un CD, es más usual instalarlo en el disco duro para no tener que introducir el disco cada vez que arrancamos nuestro ordenador. Cuando el sistema de arranque del ordenador va a buscar en el dis- co duro, lo primero que inspecciona es si la MBR ( aster Boot Re- M cord) del primer disco duro (máster del primer canal IDE o el primer disco del canal SCSI) contiene alguna indicación del sistema que hay que cargar. La MBR es la primera pista del disco duro, allí donde se guarda la información de las particiones configuradas y, opcional- mente, el programa encargado de iniciar el sistema operativo. Si aquí no se encuentra este programa, se inspecciona el sector de arranque de la partición activa del disco. Siempre que queremos ins- talar un programa en el sistema de arranque del ordenador debe- mos situarlo en alguna de estas zonas. En la siguiente figura podemos ver todo este proceso cuando en la secuencia de arranque primero es la disquetera y después el disco: ANOTACIONES 125
  • 126. © FUOC • 71Z799002MO © Software libre Siempre que instalamos un sistema de arranque, debemos tener en cuenta que el orden con que se realiza esta secuencia es importante: si instalamos uno en la MBR y otro en la partición activa, se ejecutará el de la MBR porque la BIOS o EFI inspecciona primero esta zona. Si no tenemos partición activa, debemos situar el programa de arran- que en la MBR. De todas formas, lo más recomendable es instalar siempre el programa en la MBR porque es lo primero que se inspec- ciona. Aunque podamos tener instalados otros sistemas operativos en otros discos, debemos instalar el Lilo o Grub en alguna de estas zonas. En la configuración del programa ya le indicaremos dónde están situados los operativos que queremos cargar. 6.3.1. Lilo El Lilo nos permite múltiples configuraciones diferentes para realizar casi cualquier acción con el sistema de arranque del ordenador. Para no extendernos innecesariamente, en esta sección sólo explicaremos las opciones más importantes para poder configurar un sistema de arranque de múltiples operativos teniendo en cuenta la seguridad del mismo. En el manual del programa y de su fichero de configura- ción (“man lilo” y “man lilo.conf”) encontraremos la especifi- cación completa para todas las otras opciones. El fichero de configuración del Lilo es el /etc/lilo.conf. Cuando ejecutamos lilo, el programa busca toda la información en este fichero e ins- tala el programa de arranque en la zona que le indicamos. En este fichero de configuración tenemos dos secciones: la global y las loca- les a cada sistema operativo. En la sección global encontramos todas las configuraciones generales para el programa. En cada línea po- demos poner una directiva de configuración para indicar algún tipo de información al programa. Las directivas más importantes de esta sección son las siguientes: ANOTACIONES • boot = DISPOSITIVO: le indicamos en qué dispositivo quere- mos instalar el Lilo. Si queremos instalarlo en la MBR del primer disco del canal IDE, en DISPOSITIVO pondremos /dev/hda, si lo queremos en la primera partición, /dev/hda1, etc. También tenemos la opción de instalarlo en un disquete, indicando el dispositivo /dev/ fd0. 126
  • 127. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © • default = NOMBRE: indicamos el sistema operativo que se car- gará por defecto. El NOMBRE debe corresponder a alguna de las etiquetas configuradas en cada sistema de las secciones locales. • prompt: con esta directiva indicamos al programa que antes de cargar el sistema muestre un prompt por pantalla para que poda- mos seleccionar el que queramos. Si no activamos esta opción, no podremos seleccionar el operativo que hay que cargar y automá- ticamente se iniciará el que tengamos por defecto. • delay = TSECS: especifica el número de décimas de segundo que el Lilo esperará antes de cargar el sistema operativo por de- fecto (la directiva default debe existir). Esta opción es válida cuando sólo tenemos un sistema operativo en el disco; si utiliza- mos prompt, tendremos que configurarlo con timeout. • timeout = TSECS: décimas de segundo que el Lilo esperará en el prompt antes de arrancar el sistema operativo por defecto (de- ben existir la directiva de prompt y default). • lba32: esta opción nos sirve para poder arrancar cualquier par- tición del disco duro. Si desactivamos esta directiva, no podremos arrancar sistemas ope- rativos en particiones situadas en sectores superiores del disco (a partir del cilindro 1024) y deberemos poner el arranque del sistema en una pequeña partición al inicio del disco (más información en “man lilo.conf”). Todas las BIOS a partir de 1998 soportan esta Contenido opción, de forma que es muy recomendable utilizarla para ahorrar- complementario nos problemas. El sistema de arranque de un sistema GNU/Linux o si- milar nos permite, con un ANOTACIONES Las directivas locales son las que corresponden con cada uno de los mismo sistema de ficheros, sistemas operativos instalados en las particiones de nuestros discos. cargar varios núcleos dife- La primera directiva debe ser o bien image u other. Las explicamos rentes. De este modo, sin la necesidad de instalar de a continuación (junto con otras directivas posibles): nuevo el sistema, podemos trabajar con diferentes nú- cleos. Para configurarlo • image = CAMINO: el CAMINO nos indica el archivo que contiene sólo tendríamos que especi- la imagen núcleo del sistema operativo. Esta opción sólo es válida ficar dos secciones locales para sistemas GNU/Linux o similares. Generalmente, las distribu- poniendo, en cada una, qué núcleo utilizaremos. ciones crean un directorio /boot/ donde se pone la imagen del 127
  • 128. © FUOC • 71Z799002MO © Software libre núcleo del sistema, aunque también es usual poner un enlace en la raíz llamado /vmlinuz (o similar). En esta directiva podemos especificar cualquiera de los dos. • other = CAMINO: dispositivo que contiene un sistema operativo diferente a GNU/Linux o similar. • label = NOMBRE: etiqueta para el sistema operativo. Esta direc- tiva es obligatoria para todas las secciones locales que tengamos configuradas, ya que si no, no podríamos identificarlas de ningu- na forma. • alias = NOMBRE: sinónimo para la misma sección local. Pode- mos tener tantos como queramos. • root = DISPOSITIVO: esta opción sólo es válida para los sis- temas GNU/Linux o similares. Se le especifica en qué dispositivo está situada la raíz del sistema de ficheros (root filesystem). Esta opción se pasa como argumento al cargar el núcleo del sistema y es opcional; si no se le pasa nada, se coge la que tiene configu- rada por defecto la imagen del núcleo. Hay algunas de las directivas del Lilo que también pueden ser confi- guradas directamente sobre la imagen del núcleo del operativo. Con el comando rdev podemos configurar las posibles opciones de una imagen núcleo Linux. Algunas de ellas son la raíz del sistema de fi- cheros (si no lo configuramos con el Lilo, se coge el que hay en la imagen), el modo vga, etc. Si queremos proteger adecuadamente el sistema de arranque del or- Contenido complementario denador, debemos añadir algunas directivas más en este fichero de Con el Lilo o el Grub pode- configuración. Lo primero que debemos hacer es proteger la BIOS o ANOTACIONES mos pasar parámetros al nú- EFI con una contraseña y configurar la secuencia de arranque para cleo Linux en el momento de que sólo se pueda realizar a partir del disco duro. Con esto pasamos arrancar. Esto es muy útil cuando queremos realizar al- toda la responsabilidad al Lilo. A partir de las directivas password guna operación específica en = CONTRASEÑA y restricted, podremos configurar la seguri- el sistema; por ejemplo, pa- sando single o 1 se inicia- dad del mismo de cinco maneras diferentes: ría el sistema en el runlevel 1, con root=/dev/hda3 es- Debemos poner la directiva de password en pecificaríamos la raíz del sis- Contraseña global la sección global y al arrancar cualquiera de tema de ficheros, etc. los sistemas se pedirá la contraseña. 128
  • 129. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © En los sistemas que queramos que nos pida contraseña debemos poner la directiva Contraseñas locales password y sólo al arrancar éstos se pedirá la misma. Debemos poner la directiva de password y Contraseña restricted en la sección global y sólo al restringido global arrancar algún sistema pasando algún parámetro al núcleo se pedirá la contraseña. La contraseña se pone en la sección de global y Contraseña global sólo ponemos el restricted en los sistemas y restringido local que queremos que se pida contraseña al pasar algún parámetro al núcleo. Es lo mismo que la configuración anterior, pero Contraseña con la ventaja de que podemos configurar y restringido local diferentes contraseñas para los diferentes sistemas que queremos arrancar. Debemos tener en cuenta que si utilizamos la directiva password, la contraseña se escribe en el fichero como un texto, de forma que deberemos eliminar los permisos de lectura del lilo.conf para todos los usuarios menos el root. Finalmente, después de escribir este fichero de configuración podemos instalar el Lilo en el sector de arranque configurado. Para hacerlo, sólo debemos ejecutar “lilo”. Si quisiéramos desinstalarlo deberíamos pasarle el parámetro “-u”. A continuación mostramos un ejemplo de este fichero de configu- ración, preparado para arrancar un sistema GNU/Linux y otro WindowsTM: lba32 boot = /dev/hda prompt timeout = 50 message = /etc/message default = debian restricted ANOTACIONES password = contraseña image = /vmlinuz label = debian root = /dev/hda1 other = /dev/hda3 label = w2000 129
  • 130. © FUOC • 71Z799002MO © Software libre Toda esta configuración sirve para un arranque estándar del siste- ma. También hay otro tipo de arranque que utiliza una imagen lla- mada de RAM Disk (initrd). Este otro tipo de arranque sirve para realizar una configuración modular del núcleo Linux. Es muy utiliza- do cuando necesitamos un núcleo con alguna configuración espe- cial, para incluir módulos en el mismo núcleo, para realizar una imagen de arranque para un CD live, para tener una misma imagen para todos los ordenadores de un laboratorio almacenada en un único servidor, etc. De todas formas, las instalaciones estándar del sistema operativo no utilizan casi nunca este tipo de arranque. Si queremos crearnos una imagen de este tipo, podemos informarnos en el manual de initrd y en el del programa mkinitrd. 6.3.2. Grub Igual que el Lilo, el Grub también nos sirve para instalar un progra- Contenido complementario ma en la zona de arranque que queramos del ordenador. A diferen- cia del Lilo, tiene muchísimas más posibilidades que lo hacen muy El Grub (GRand Unified Bootloader) es el programa versátil: permite tener un pequeño intérprete de comandos al arran- de arranque del proyecto car el ordenador, nos permite acceder a los archivos de las particio- GNU. nes del disco sin cargar ningún operativo, etc. Como en el caso anterior, en esta sección sólo veremos su configuración básica. Si quisiéramos profundizar más en su uso, podemos recurrir a su ma- nual o en el HOWTO correspondiente. El sistema de arranque del Grub se carga en dos fases. Generalmen- te, con la instalación del paquete, se incorporan dos ficheros corres- pondientes a estas dos fases. Si queremos que al arrancar el Grub no nos muestre ningún menú para seleccionar el operativo que que- remos cargar, sólo debemos ejecutar el programa Grub y ejecutarlo en el intérprete de comandos que nos muestra: ANOTACIONES $ install (hd0,0)/PATH/stage1 d (hd0) (hd0,0)/ PATH/stage2 Esta instrucción instala el Grub en la MBR del disco maestro del pri- mer canal IDE. La forma como se referencian los discos varía un poco de como se hace en GNU/Linux y con el Lilo. En “hdX” la “X”, en lugar de “a”, “b”,. . . , es “0”, “1”, etc. Para las particiones tam- bién se empieza con el número “0” para denominar la primera y a 130
  • 131. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © diferencia de hda1, se debe escribir (hd0,0)y consecutivamente para las otras. Leyendo la instrucción de esta forma fijémonos cómo el primer parámetro sirve para designar dónde está el archivo de la primera fase del Grub (le indicamos la partición correspondiente, di- rectorio –PATH y fichero -stage1-). Generalmente, cuando instala- mos el paquete del Grub también se añaden estos dos ficheros para cada una de las fases de carga (suelen estar situados en /usr/sha- re/grub/i386-pc/). El parámetro d (hd0) indica que la prime- ra fase del Grub se instalará en la MBR del primer disco. La última opción especifica dónde está situado el fichero para la segunda fase de carga, que es ejecutada por la primera. Con esta configuración, al reiniciar el ordenador aparecerá, por de- Nota fecto, el intérprete de comandos del Grub. Con él podemos manipu- Para ver todos los coman- lar muchos aspectos del disco, arrancar el sistema operativo que dos disponibles en el shell queremos, etc. Si deseamos arrancar un sistema GNU/Linux escribi- del Grub podemos apretar TAB. También se incluyen remos las siguientes instrucciones: ayudas para tener una refe- rencia completa de todos los comandos. $ kernel (hd0,0)/vmlinuz root=/dev/hda1 $ boot Con la primera indicamos dónde está situada la imagen núcleo (con Nota los parámetros que queramos) y con la segunda iniciamos el proceso Otra forma de instalar el de carga del operativo. Si optamos por un menú de selección para grub es utilizando el pro- no tener que escribir estos comandos cada vez que arrancamos el or- grama grub-install. denador podemos generar un fichero de menú como el siguiente (los comentarios empiezan por “#”): #Especificación del operativo que se cargará por defecto. #Este número está en correspondencia con el orden de los #sistemas que hay en las secciones locales a los operativos. default 0 ANOTACIONES #Indicamos que espere 10 segundos antes de cargar el sistema #configurado por defecto. timeout 10 #Configuración de arranque para un sistema GNU/Li- nux title Debian GNU/Linux kernel (hd0,0)/vmlinuz root=/dev/hda1 131
  • 132. © FUOC • 71Z799002MO © Software libre #Configuración de arranque para un sistema Windows title W2000 root (hd0,2) makeactive Para instalar el Grub con este menú de arranque, deberíamos ejecu- tar la misma instrucción que anteriormente pero añadiendo el pará- metro p (hd0,0)/PATH/menu.lst con el disco, camino y fichero de menú. Para proteger el sistema de arranque (que desprotegido es aún más peligroso que con el Lilo) podemos poner la directiva de password CONTRASEÑA en la sección global del fichero de confi- guración. De esta forma, cuando desde el menú se quiera entrar en el shell del Grub se pedirá la contraseña. Como en el caso del Lilo, si utilizamos esta directiva es muy importante que sólo el root pueda leer este archivo de configuración (aunque en este caso también exis- te la opción de poner la contraseña cifrada con MD5). 6.4. Acceso a otras particiones y dispositivos Los sistemas tipo UNIX tratan todos los dispositivos del ordenador como si fueran ficheros. Esto nos permite mucha flexibilidad, ya que podemos aprovechar todos los mecanismos y funciones que utilizá- bamos con los ficheros y aplicarla a los dispositivos. En el directorio /dev/ tenemos todos los dispositivos reconocidos por el sistema. Si el sistema no reconoce adecuadamente un dispositivo o queremos crear uno especial, el comando mknod nos permite realizar esta cla- se de operaciones, aunque es importante saber exactamente qué queremos hacer antes de utilizarlo, ya que su mal uso podría dañar Contenido partes del sistema. complementario Para la disquetera y CD/ ANOTACIONES DVD muchas distribuciones Para las unidades de almacenamiento, el sistema nos proporciona ya crean un directorio por otro tipo de operación para poder acceder a sus sistemas de archi- defecto donde montarlos vos, la de montaje . Para esta operación utilizaremos los comandos (/floppy/ o /mnt/ floppy/ y /CD-ROM/ o mount y umount, que sitúan (montan) o desmontan todo el sistema /mnt/CD-ROM/). También de ficheros de un determinado dispositivo/unidad en un directorio se suele proporcionar el directorio /mnt/, donde existente del sistema. La forma básica de utilizar el comando es podemos crear directorios “mount dispositivo directorio”, donde dispositivo para otros dispositivos que puede referenciar cualquier dispositivo del canal IDE o SCSI (/dev/ tengamos en el sistema. hdXX, /dev/sdXX), la disquetera (dev/fdX), cintas de backup, etc. 132
  • 133. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © y directorio es la ubicación donde montaremos la estructura de ficheros del dispositivo. Es recomendable que el directorio donde montemos estos dispositivos esté vacío, ya que cuando se utiliza como punto de montaje no se puede acceder a ellos. Para desmontar uno de estos dispositivos podemos utilizar “umount directorio”, donde directorio debe ser el punto de montaje utili- zado. Si montamos dispositivos como un disquete o CD, es impor- tante no sacar el dispositivo del soporte, ya que antes debemos avisar al sistema para que actualice la caché del sistema de ficheros del dispositivo. Igualmente, tampoco podemos desmontar el dispo- sitivo si algún usuario o aplicación está utilizando alguno de sus ar- chivos o directorios (al intentarlo, el sistema daría un mensaje de error). Fijémonos que con el comando de montaje no estamos especifican- do en ningún momento el tipo de sistema de ficheros utilizado en la unidad que queremos montar, de forma que se deberá determinar de forma automática. Si queremos especificarlo manualmente, po- demos pasar al comando mount el parámetro “-t tipo” donde tipo podría ser alguno de los de la siguiente tabla (ir al manual de mount para ver el listado completo): TIPO SISTEMA ext GNU/Linux (versiones de núcleo anteriores a 2.1) ext2 GNU/Linux (versiones de núcleo posteriores a 2.1) ext3 GNU/Linux (versiones de núcleo posteriores a 2.2 o 2.4) swap Sistema de swap de GNU/Linux sysv Sistemas tipo UNIX minix MINIX ANOTACIONES iso9660 Sistema de ficheros que utilizan la mayoría de CD nfs Sistema de ficheros remoto (Network File System) Sistema de ficheros remoto en redes Windows TM (Samba File smbfs System) ntfs Rama de WindowsNTTM msdos MS-DOS TM vfat Rama de Windows95 TM 133
  • 134. © FUOC • 71Z799002MO © Software libre Además de pasar el tipo de sistema de ficheros utilizado por la uni- dad que queremos montar, también podemos indicar otras opciones que nos pueden ser muy útiles en determinadas situaciones (siempre precedidas por “-o” y, si queremos pasar más de una, separadas por comas): significado de la opción permitimos no permitimos Ejecución de binarios exec noexec Uso del bit de SetUserId suid nosuid Ficheros de sólo lectura ro rw Sistema sincronizado (uso de caché de sync async disco) Interpretación de caracteres o bloques dev nodev especiales Permiso para que cualquier usuario user nouser monte o desmonte el dispositivo Sistema de tipo swap sw (si pasásemos defaults se utilizarían las opciones rw, suid, dev, exec, auto, nouser y async) En la siguiente figura podemos ver un ejemplo de utilización de este comando para montar varios dispositivos diferentes: ANOTACIONES Además de estos comandos para montar y desmontar unidades, el sistema operativo nos proporciona otro modo de hacer lo mismo y tener siempre una determinada configuración según la unidad. En el fichero /etc/fstab podemos guardar esta información de forma 134
  • 135. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © que cada línea indicará una unidad con su directorio de montaje y las opciones que queramos configurar. La sintaxis de cada una de estas líneas será: <disp> <dir> <tipoSistema> <opciones> <dump> <orden> En el primer campo debemos especificar el dispositivo tal como ha- Nota cíamos con el comando de mount y el segundo será el directorio Con el comando “mount - donde queremos montar la unidad indicada. En el campo de tipo- a” se montarían todos los Sistema podemos especificar el sistema de ficheros que utiliza la dispositivos que tuviesen la unidad o bien auto para que lo detecte automáticamente. En op- opción de auto activada (que está por defecto) de ciones podemos escribir las mismas que utilizábamos con el co- este fichero de configura- mando de mount, separadas por comas si ponemos más de una. ción. Una opción útil de este campo es la configuración de auto o noau- to, con lo cual indicamos al sistema que monte automáticamente (o no) la unidad al arrancar. El campo de dump indica si queremos realizar copias de seguridad (más información en el manual de dump). Si no utilizamos este sistema, podemos poner un “0”. El últi- mo campo sirve para indicar el orden de montaje de las unidades. Si le ponemos un “0”, indicamos que el orden no es importante. La raíz del sistema de ficheros es lo primero que se debe montar, con lo cual en este campo debería haber un “1”. Una entrada que siempre veremos en este fichero y que nos puede sorprender es la del directorio /proc/, que tiene un significado es- pecial. Realmente, lo que hay en este directorio no son ficheros, sino el valor de muchas de las variables que utiliza el núcleo del sistema. Siguiendo la misma política del operativo, con la cual todo se debe poder referenciar como un archivo, en el directorio /proc/ también podemos manipular variables internas del núcleo como si se tratara de ficheros. ANOTACIONES Aunque todo este diseño para montar las unidades en la estructura jerárquica de directorios es muy potente y nos permite mucha flexi- bilidad, en algunos casos no es muy práctico. Por ejemplo, cada vez que queremos copiar un archivo a un disquete tendremos que mon- tar la unidad, copiar y desmontarla de nuevo. Por esta razón, existen algunas otras aplicaciones que nos facilitan todo este proceso para ahorrarnos algunos pasos. Una de ellas son las mtools, que es un paquete con varias aplicaciones que nos permiten copiar directa- 135
  • 136. © FUOC • 71Z799002MO © Software libre mente archivos a un disquete y desde un disquete, y algunas otras herramientas interesantes. También existe un paquete llamado au- tofs, que detecta automáticamente la inserción de algún dispositivo en el sistema y los monta sin necesidad de escribir ningún comando. 6.5. Configuración de dispositivos Aunque en los inicios de GNU/Linux no era así, actualmente cada vez más fabricantes proporcionan drivers para sus dispositivos espe- ciales de GNU/Linux. Antes de intentar configurarlos, debemos bus- car información sobre ellos en los mismos manuales del sistema, los módulos, en Internet, etc. para ahorrarnos problemas en su puesta en marcha. Aunque actualmente la mayoría de dispositivos cuentan con HOWTOS, manuales o algún tipo de documentación, es impor- tante que antes de comprar uno nuevo, nos informemos adecuada- mente de si existe algún driver disponible para él. Aunque en esta sección sólo veremos cómo configurar algunos de los dispositivos más frecuentemente utilizados en los ordenadores personales, según la distribución que utilicemos, el proceso puede variar significativamente. En toda la sección nos hemos basado en el sistema que se utiliza en Debian GNU/Linux, aunque si aprendemos desde la base cómo funciona este proceso, no deberíamos tener pro- blemas para buscar cuál es la configuración que se utiliza en otras distribuciones. 6.5.1. El teclado La correcta configuración del teclado es un aspecto muy importante ANOTACIONES para poder solucionar cualquier problema que nos surja con él. En primer lugar, debemos saber que cuando el sistema arranca, se car- ga un mapa de caracteres correspondiente al configurado en el pro- ceso de instalación. Este mapa de caracteres se suele encontrar situado en /etc/console/boottime.kmap.gz o en algún otro directorio de /etc/. Si cambiásemos de teclado, sólo tendríamos que cambiar este fichero con el que correspondiera al nuevo teclado y al arrancar de nuevo ya se cargaría el nuevo mapa. Todos los ma- pas de caracteres existentes se suelen situar dentro del directorio / 136
  • 137. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © usr/share/keymaps/ ordenados por arquitecturas de ordenado- res y países. Concretamente, el que utilizamos en España con orde- nadores basados en la arquitectura i386 y un teclado estándar lo encontraríamos en i386/qwerty/es.kmap.gz. Aunque todos estos mapas de caracteres están comprimidos en for- mato gzip, podemos descomprimirlos y cambiar alguna de sus en- tradas para adaptarlas a nuestras necesidades. En cada línea encontramos la directiva keycode, que indica que estamos definien- do una tecla, indicada en el número que sigue a la directiva (pode- mos saber qué número corresponde con cada una de las teclas a partir del comando showkey). Después de esta definición, tenemos los significados que tiene la tecla apretándola sola, con el SHIFT, etc. Veámoslo con un ejemplo: keycode 53 = minus underscore control keycode 53 = Delete En la primera línea se indica qué carácter corresponde al apretar la Contenido tecla sola (minus) o con el SHIFT apretado (underscore). La se- complementario gunda nos muestra la función que se realizará en caso de apretar la Con el programa conso- tecla juntamente con la de CTRL (se eliminaría el siguiente carácter). lechars podemos cargar Toda la información necesaria para configurar correctamente un ar- la fuente que queremos en el terminal. Debemos dife- chivo de este tipo la podemos encontrar en el manual de keymaps, renciar claramente lo que es muy útil cuando nos encontramos con algún problema con teclados una fuente y lo que es el mapa de caracteres: el especiales o de otros países. Si no queremos reiniciar el sistema al mapa nos determina qué cambiar este fichero de mapa, podemos utilizar el comando significado tiene cada tecla, loadkeys (dumpkeys nos muestra las configuradas). mientras que la fuente es sólo la representación gráfi- ca que le damos a la mis- Otro aspecto relacionado con el teclado es el tema de las diéresis, ma. Toda la configuración de las fuentes de caracteres ANOTACIONES acentos, etc. Todo ello lo podemos configurar a partir del fichero de se suele encontrar en / /etc/inputrc (todas las directivas posibles de este fichero las te- etc/console-tools / config. nemos especificadas en el manual de readline). La que nos puede ser más útil es la de convert-meta, que desactivándola (set convert-meta off) nos permite utilizar los acentos y diéresis (pa- ra el catalán). Finalmente, otra configuración importante (indirectamente relacio- nada con el teclado) es la de locales. Con locales podemos configu- 137
  • 138. © FUOC • 71Z799002MO © Software libre rar la zona o zonas geográficas en las que estamos para poder utilizar teclas especiales del teclado, ver las fechas en el formato al que estamos acostumbrados, etc. Esta configuración es utilizada por muchas de las librerías del sistema, de forma que en muchos coman- dos y aplicaciones del sistema se utilizará su configuración para adaptar algunas funciones a nuestro entorno local. Su configuración la podemos encontrar en /etc/locale.gen y podemos utilizar los comandos locale-gen y locale para verla o actualizarla. 6.5.2. Tarjeta de red (tipo Ethernet) Para configurar una nueva tarjeta de red (tipo Ethernet), lo primero Contenido complementario que debemos hacer es añadir el módulo del núcleo necesario para Con “discover -module que se reconozca adecuadamente. Aunque en algunas tarjetas es Ethernet” podemos sa- posible que no tengamos que realizar este paso porque el mismo nú- ber qué módulo necesita cleo ya puede estar compilado para reconocer las más habituales, nuestra tarjeta de red. Si queremos dejarlo configu- debemos asegurarnos (antes de comprar la tarjeta) de que existe el rado para que se cargue driver o módulo necesario para ella. siempre deberíamos escri- birlo en /etc/modules (si no, con modprobe o ins- Una vez el sistema reconoce la tarjeta, ya podemos configurarla de mode podemos insertarlo). la forma que queramos. En el fichero /etc/network/interfaces podemos especificar Nota toda su configuración, donde también tendremos la de las otras in- Otra forma de denominar las tarjetas de red es con las terfaces del sistema. Una interfaz es un dispositivo (real o lógico) re- siglas de Network Interface lacionado con la red a partir del cual el sistema se puede comunicar Card (NIC). con otros ordenadores, ofrecer unos determinados servicios, etc. Son las puertas que tiene el sistema para poderse comunicar. Para cada Nota interfaz reconocida en el sistema, en este fichero se le especifican las directivas necesarias para su correcto funcionamiento. Otra forma de reconfigurar el keymap y las locales en ANOTACIONES Debian es utilizado "apt-re- configure console-data" o Vamos a verlo con un ejemplo: "apt-reconfigure locales" res- pectivamente. #Interfície de loopback auto lo iface lo inet loopback #NIC auto eth0 138
  • 139. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © iface eth0 inet static address 192.168.0.10 netmask 255.255.255.0 network 192.168.0.0 #opcional broadcast 192.168.0.255 #opcional gateway 192.168.0.1 #opcional La primera entrada que encontraremos en este fichero suele ser para la interfaz de loopback. Esta interfaz no se corresponde con ninguna tarjeta ni dispositivo real del ordenador, sino que es un mecanismo del operativo que le permite utilizar los protocolos de comunicación de forma interna. De esta forma, si probamos funciones de la red sin comunicarnos con ningún otro ordenador no hace falta ni siquiera tener una tarjeta de red instalada. En todas las entradas encontra- mos la directiva de auto antes de especificar la configuración del dispositivo. Esta directiva indica que la tarjeta se puede montar au- tomáticamente cuando el sistema arranca. La directiva de iface es- pecifica el tipo de tarjeta y protocolo que se utilizará con ella por medio de la siguiente sintaxis: “iface dispositivo familia- Protocolo métodoConfiguración”. Con las tarjetas Ethernet el dispositivo será ethX, donde la “X” será un número empezando por “0”, que indica el número de tarjeta instalada en el ordenador. La familia del protocolo de comunicación utilizado con la tarjeta sue- le ser cualquiera de los siguientes: • inet: IPv4, utilizado en Internet y la mayoría de redes locales. • inet6: IPv6, la nueva versión de IPv4, que poco a poco se va ins- Nota taurando. A partir de las versiones 2.2 del núcleo Linux, ya se puede • ipx: para redes NovellTM . utilizar una nueva infraestruc- tura de red denominada iproute2. Con ella pode- ANOTACIONES Finalmente, en el último campo se indica cómo se obtiene la confi- mos manipular todos los as- pectos relacionados con guración de red de la tarjeta (su dirección, la red dónde está, el ga- nuestras NIC y las tablas in- teway que hay que utilizar, etc.). En la siguiente tabla podemos ver ternas que utiliza el operativo cuáles son estas opciones para la familia de protocolos inet: para manejar todo lo relacio- nado con la red. CONFIG OPCIONES DESCRIPCIÓN loopback Método para definir la interfaz de loopback (se debe utilizar con la interfaz lo). static Método para configurar una NIC con una dirección IP estática. 139
  • 140. © FUOC • 71Z799002MO © Software libre CONFIG OPCIONES DESCRIPCIÓN address Dirección IP de la interfaz. Campo requerido. netmask Máscara de la dirección IP. Campo requerido. broadcast Dirección de broadcast. Si no se especifica, se calcula automáticamente. Dirección de identificación de red. Sólo requerida para versiones del núcleo network 2.0.X. gateway Dirección IP del gateway que utilizamos para esta interfaz. Método para configurar de forma remota la IP de todos los ordenadores de una dhcp red local (Dynamic Host Configuration Protocol). hostname IP del servidor de DHCP. leasehours Tiempo, en horas, de alquiler de la IP (pasado este tiempo, se renueva). leasetime Tiempo, en segundos, de alquiler de la IP. vendor Identificador de tipo de servidor (en general, dhcpd). client Identificador del tipo de cliente (en general, dhcpd). Método para configurar de forma remota la IP de todos los ordenadores de una bootp red local (BOOT Protocol). Actualmente se utiliza más DHCP. bootfile Fichero a utilizar en el momento de arranque. server Dirección IP del servidor de BOOTP. hwaddr Dirección MAC del servidor BOOTP. ppp Método utilizado con el protocolo Point to Point Protocol, usado en los módems. provider Proveedor del servicio. Aunque en este capítulo no entraremos en redes de computadores, debemos saber que disponemos de muchos comandos para mane- jar la configuración de red del sistema operativo. Los más importan- tes son ifconfig, con el cual podemos ver los dispositivos configurados, ifdown e ifup, que nos permiten apagar o encen- der la interfaz que queremos y route, que nos muestra la tabla de routing del sistema. ANOTACIONES 6.5.3. Tarjeta WiFi Las redes de comunicación sin cables son cada vez más frecuentes, tanto en instalaciones domésticas como en instituciones, escuelas o empresas. Para la instalación de las mismas, se debe disponer de lo que denominamos puntos de acceso, que son unos dispositivos co- nectados a la red física de la institución. Estos puntos de acceso per- miten que, a partir de unas tarjetas PCMCIA, cualquier ordenador de 140
  • 141. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © su alrededor pueda conectarse a la red. De esta forma, se simplifica mucho el cableado de los edificios. Para que nuestro GNU/Linux detecte y configure adecuadamente una tarjeta wireless (de tipo PCMCIA) debemos añadir al núcleo del sistema los módulos orinoco cs y hermes, que en muchos casos ya vienen compilados en el mismo núcleo. Toda la configuración de estas tarjetas se guarda en los ficheros del directorio /etc/pcm- cia/. Lo único que debemos añadir en el fichero /etc/pcmcia/ config.opts es (dependiendo de la tarjeta deberíamos cambiar la directiva de “card”): card “ Conceptronic Wireless” version “802.11”, “11Mbps Wireless LAN Card” bind “orinoco_cs” Con esto ya conseguimos que el sistema reconozca la tarjeta wireless como un dispositivo más del sistema. Si no tenemos ninguna otra tar- jeta Ethernet instalada, se referenciará como eth0, eth1 si ya te- nemos una, etc. A continuación, lo único que nos faltará para que la tarjeta se conecte al punto de acceso será editar el fichero /etc/ network/interfaces y añadirle la configuración necesaria para que se le asigne una IP. Naturalmente, esta interfaz del sistema la podemos tratar como cualquier otra, utilizando los mecanismos de firewall del sistema, con las aplicaciones iproute2, etc. Contenido complementario 6.5.4. Módems Los paquetes que contienen los programas necesarios Para la configuración de un módem generalmente se suele utilizar la para la conexión a Internet con un módem suelen nom- aplicación pppconfig, que escribe los archivos de configuración brarse ppp y pppconfig. necesarios para el daemon del sistema ppp, que es el programa en- ANOTACIONES cargado de establecer la conexión a Internet. Con pppconfig (o Contenido aplicaciones similares) siempre se deben realizar unos determinados complementario pasos, que detallamos a continuación: Con pppconfig tenemos un menú que nos permite añadir, modificar o eliminar 1) Nombre del proveedor: el proveedor es la empresa con la que conexiones. Los pasos que tenemos el contrato de conexión a Internet. Este nombre sirve mostramos se corresponden para poder identificar cada conexión que configuremos de for- con la inserción de una nue- va conexión. ma única. 141
  • 142. © FUOC • 71Z799002MO © Software libre 2) Configuración de servidores de nombres: cuando establecemos el contrato con nuestro proveedor, generalmente se suelen pro- porcionar la/s IP de los servidores de nombres que deben utilizar- se. Si tenemos estas IP, debemos indicar que utilizamos una configuración estática, con lo cual seguidamente se nos pedirán estas IP. Sólo en el caso de que nuestro proveedor nos indique que la configuración de DNS es dinámica, debemos escoger este otro tipo de configuración. Con la tercera opción, que nos infor- ma de que DNS será tratado por otros medios, podemos utilizar la configuración del fichero /etc/resolv.conf. 3) Método de autentificación: el método de autentificación puede ser PAP o CHAP. Generalmente, los proveedores suelen utilizar el PAP (Peer Authentication Protocol), aunque si no funcionara debería- mos informarnos adecuadamente. 4) Nombre de usuario y contraseña: ésta es la información que nos proporciona el proveedor para poder conectarnos y acceder a sus servicios. 5) Velocidad del módem: según qué módem tengamos, podremos acceder a Internet a mayor o menor velocidad. Actualmente, to- dos van a 115200 bps, con lo que lo más recomendable es dejar el valor “115200”. Si tuviéramos un módem más lento, ya se sue- le detectar y reconfigurar automáticamente en el momento de la conexión. 6) Llamada con pulsos o tonos: la mayoría de centralitas telefónicas ya funcionan con tonos, aunque en determinadas zonas rurales aún se utiliza el antiguo sistema de pulsos. 7) Número de teléfono: este número también debe proporcionarlo el proveedor de Internet. 8) Puerto de comunicación: el puerto de comunicación es el puerto ANOTACIONES en el cual tenemos conectado el módem. Si le indicamos que lo detecte automáticamente, se realizará un chequeo de todos los puertos y se configurará automáticamente. Si no, podemos indi- carlo con /dev/ttySX, donde la “X” es un 0 para el COM1, un 1 para el COM2, etc. Toda esta configuración se suele almacenar en los archivos situados en el directorio /etc/ ppp/. Aunque también podemos editar estos 142
  • 143. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © ficheros y cambiar las directivas manualmente, es más recomenda- ble utilizar alguna aplicación automática, ya que su configuración es bastante compleja. Para establecer la conexión con nuestro provee- dor, deberíamos iniciar el daemon ejecutando “/etc/init.d/ppp start”. Para pararlo, podemos utilizar “/etc/init.d/ppp stop”. 6.5.5. Tarjeta de sonido La tarjeta de sonido necesita la inserción de un módulo del núcleo del sistema para poder funcionar correctamente. Si tenemos instala- da la aplicación discover, podemos descubrir qué módulo es el que corresponde con nuestra tarjeta por medio del comando “dis- cover --module sound”. Para instalar el módulo, podemos utili- zar los comandos insmod o modprobe, y si queremos dejarlo configurado permanentemente, deberíamos escribirlo en el fichero /etc/modules. Aunque con la inclusión del módulo correspondiente ya podremos Contenido utilizar la tarjeta de sonido adecuadamente, generalmente también complementario se suele instalar la infraestructura de sonido ALSA (Advanced Linux ALSA es un proyecto que ha Sound Architecture). Generalmente, la mayoría de distribuciones lo desarrollado mucho soft- suelen incluir por defecto, aunque si no es así, se puede instalar con ware relacionado con apli- caciones de tratamiento de el paquete correspondiente. sonido, nuevos módulos para el núcleo Linux, etc. 6.5.6. Impresora En GNU/Linux, la configuración de impresoras se puede realizar con muchas aplicaciones diferentes. Aunque el lpd (Line Printer Dae- mon) fue uno de los primeros programas de gestión de impresión que aparecieron en los sistemas tipo UNIX, actualmente existen mu- ANOTACIONES chísimos más fáciles de configurar y gestionar. A continuación, co- mentamos algunos de los más utilizados: • lpd: uno de los primeros daemons de impresión de los sistemas tipo UNIX. Su configuración debe realizarse manualmente. • lpr: la versión de BSD del lpd. Es muy recomendable utilizar al- gún tipo de filtro automático como magicfilter o apsfilter 143
  • 144. © FUOC • 71Z799002MO © Software libre para configurar las impresoras. Este tipo de filtro detecta automá- ticamente el tipo de fichero a imprimir y prepara la impresión adecuadamente (utiliza un filtro llamado IFHP). • lprng: aplicaciones basadas en lpr con la ventaja que incor- pora una herramienta de configuración denominada lprng- tool, que permite realizar la configuración de forma gráfica y sencilla. • gnulpr: la versión de GNU del sistema de impresión lpr. Tam- bién incorpora herramientas gráficas de configuración, gestión de los servicios, etc. • CUPS: de Common UNIX Printing Systems, este conjunto de apli- caciones es compatible con los comandos de lpr y también sirve para redes WindowsTM . Utiliza un conjunto de filtros propios y so- porta la gran mayoría de impresoras del mercado. Aunque todas estas aplicaciones tienen sus propios métodos de con- Contenido complementario figuración, todas utilizan el fichero /etc/printcap para guardar- Al configurar un servidor de la. Generalmente, también utilizan algún tipo de daemon para que impresión, es importante el sistema de impresión sea operativo. El daemon se puede configu- que configuremos adecua- rar para que el ordenador al que está conectada la impresora sirva damente desde qué máqui- nas/usuarios permitimos la como servidor de impresión. De este modo, varios ordenadores de impresión. De otro modo, la misma red podrán utilizar la misma impresora, ahorrando recur- un atacante podría aprove- char la vulnerabilidad y sos. Para los clientes de impresión se pueden utilizar los mismos pro- aprovechar nuestros recur- gramas especificando, en la configuración, que la impresora es sos, dejar la impresora sin papel, etc. remota (generalmente se debe proporcionar la IP del servidor de im- presión y la cola). Si queremos configurar un servidor de impresión para redes WindowsTM ANOTACIONES Contenido complementario o configurar una impresora de un servidor WindowsTM desde un Swat (Samba Web Adminis- cliente GNU/Linux, debemos utilizar otro tipo de programas. Samba tration Tool) es una herra- es un conjunto de aplicaciones de GNU/Linux que utilizan los proto- mienta muy útil para la colos de las redes WindowsTM . Aunque sus funcionalidades van configuración de un servi- dor de samba. mucho más allá de la configuración de un servidor o cliente de im- presión, para poder utilizar impresoras en WindowsTM tendremos que utilizar este conjunto de aplicaciones o bien las que nos propor- ciona CUPS. 144
  • 145. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © 7. Daemons y runlevels 7.1. Los daemons Como ya sabemos, GNU/Linux nos permite ejecutar simultánea- mente tantos procesos como queramos repartiendo equitativa- mente el tiempo de la CPU entre ellos. De hecho, el mecanismo de manejo de procesos también debe tener en cuenta lo que se llaman interrupciones. Una interrupción es una señal que llega al núcleo del sistema desde cualquiera de los dispositivos que te- nemos instalados en nuestro ordenador. Estas interrupciones suelen estar vinculadas a algún proceso en concreto, de forma que el núcleo debe despertar el proceso en cuestión (si no está en ejecución) y redirigirle la interrupción para que la procese adecuadamente. Un ejemplo típico de interrupción es cuando apretamos una tecla del teclado o movemos el ratón: al hacerlo, el dispositivo envía una señal que debe ser redirigida hacia la aplicación correspondiente para que sea tratada de forma ade- cuada. Para poder manejar adecuadamente todas las interrupciones que se producen, el núcleo no escucha permanentemente a los dispo- sitivos del sistema esperando sus señales. En lugar de hacerlo, el sistema ejecuta las operaciones de los procesos en cola de ejecu- ción y sólo cuando se produce una interrupción atiende al dispo- sitivo que la ha generado. Esto debe realizarse de esta forma debido a la gran diferencia de velocidad entre los dispositivos del sistema y la CPU. El tratamiento de interrupciones es fundamen- ANOTACIONES tal para cualquier sistema operativo, ya que es este mecanismo, entre otros, el que nos permite mantener en ejecución tantos pro- cesos como queramos y, en cuanto lleguen las interrupciones, despertar los procesos que las están esperando. 145
  • 146. © FUOC • 71Z799002MO © Software libre Un daemon (Disk And Execution MONitor) es un proceso que, gene- ralmente, tenemos cargado en memoria, esperando alguna señal (proveniente de una interrupción de dispositivo o del mismo núcleo) para despertarse y ejecutar las funciones necesarias para tratarla. Aunque esta definición también puede encajar con otros procesos del sistema (lanzados por los usuarios o por el mismo sistema), un daemon también suele ajustarse a esta forma de ejecución (aunque en algunos casos especiales, no). De esta forma, los daemons que tengamos cargados no ocupan la CPU mientras no es estrictamente necesario y por muchos que tengamos en memoria siempre podre- mos trabajar con el ordenador sin problemas. Contenido complementario Aunque un daemon sea un proceso como cualquier otro que se ejecuta Los shell scripts de los dae- mons no son más que una en modo background, la forma como los organizamos y tratamos sí que herramienta para facilitar es diferente del resto de comandos y programas del sistema. General- ANOTACIONES todo su proceso de arran- mente, todos los daemons tienen un shell script situado en el directorio que, parada, etc. En algunos casos, también podemos /etc/init.d/ que nos permite iniciarlo, pararlo o ver su estado de utilizar el mecanismo y or- ejecución. Para realizar algunas de estas funciones debemos ejecutar el ganización de estos dae- mons para poder ejecutar shell script correspondiente al daemon que queramos tratar pasándole ciertas operaciones que alguno de los siguientes parámetros: nos interesen (escribiendo un shell script que se ejecute al entrar en un determinado • start: para iniciar el daemon. Si éste ya estuviera ejecutándose, nivel de ejecución). se muestra un mensaje de error. 146
  • 147. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © • stop: para parar el daemon. Si no estuviera ejecutándose, se muestra un mensaje de error. • restart: reinicia el daemon. Sirve para que se vuelvan a leer los archivos de configuración del mismo. • reload: aunque no todos los daemons lo permiten, este pará- metro sirve para poder recargar los archivos de configuración sin tener que pararlo. La mayoría de estos scripts utilizan un programa llamdo start- Contenido stop-daemon que nos proporciona el sistema operativo y que sirve complementario para el tratamiento de estos procesos. Es habitual que al administrar Para ejecutar un daemon, un servidor tengamos que diseñarnos nuestros propios daemons debemos llamarlo con su ruta completa (/etc/ para realizar alguna tarea concreta. En el directorio donde se sitúan init.d/ nombreDaemon) todos los shell scripts de los daemons también se suele encontrar uno y pasarle el parámetro que de ejemplo (/etc/init.d/skeleton) para que lo podamos utili- nos interese. Algunas distri- buciones incorporan el co- zar cuando necesitemos configurar uno nuevo que no esté en la dis- mando service, que permite tribución. Generalmente suelen estar programados de la siguiente hacer lo mismo sin tener que especificar la ruta com- manera: pleta. #! /bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin: /usr/sbin:/usr/bin DAEMON=/usr/sbin/daemon NAME=daemon DESC=”some daemon” test -x $DAEMON || exit 0 set -e ANOTACIONES case “$1” in start) echo -n “Starting $DESC: $NAME” start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON echo “.” ;; stop) echo -n “Stopping $DESC: $NAME “ 147
  • 148. © FUOC • 71Z799002MO © Software libre start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON echo “.” ;; restart|force-reload) echo -n “Restarting $DESC: $NAME” start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON sleep 1 start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON echo “.” ;; *) N=/etc/init.d/$NAME echo “ Usage: $N {start|stop|restart|force-re- load}” >&2 exit 1 ;; esac exit 0 Como hemos visto, en las variables declaradas al inicio del shell script Contenido complementario especificamos qué PATH es necesario para el proceso del daemon, el Aunque los daemons son programa a ejecutar (DAEMON), el nombre que le damos (NAME, que programas como cualquier debe ser igual que el nombre del shell script) y su descripción (DESC). otro, su programación difie- Lo único que hace el código al arrancar el daemon es escribir en el re un poco de las aplicacio- nes de usuario porque directorio /var/run/ un fichero con el PID del proceso. Al pararlo, deben incluir funciones se va a buscar este PID y se envía la señal de finalización al proceso para quedar suspendidos y esperar señales para que correspondiente. Naturalmente, encontraremos shell scripts prepara- sean despertados, etc. dos para realizar muchísimas más operaciones con el daemon a tra- tar, aunque como mínimo todos deben tener esta estructura. ANOTACIONES 7.2. Los runlevels Los daemons que tengamos ejecutándose en un determinado mo- mento nos marcan los servicios que el sistema operativo está ofrecien- do y/o recibiendo. El hecho de que podamos tener tantos daemons diferentes hace que tengamos que plantear su organización de forma 148
  • 149. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © adecuada. Entenderemos un runlevel (o ‘nivel de ejecución’) como la ejecución de unos determinados daemons que a su vez proporcionan unos servicios concretos. En la instalación de un servidor es habitual diseñar una configuración para que en determinados momentos se puedan ofrecer determinados servicios y en otros no. Para permitir este tipo de funcionamiento, el sistema operativo nos proporciona diferentes niveles de ejecución que podremos adaptar a nuestras necesidades. Si bien podemos configurar el número de niveles de ejecución que queremos y la funcionalidad de cada uno de ellos, generalmente los sistemas like UNIX nos proporcionan 6 diferentes con las siguientes propiedades: NIVEL Funcionalidad 0 El nivel de ejecución 0 está configurado para parar el sistema. Este nivel es denominado como single user, ya que sólo permite 1 la entrada al sistema al root del mismo. Se arrancan los daemons mínimos y sirve para tareas de mantenimiento. Los niveles del 2 al 5 están destinados para ser configurados según las necesidades de cada instalación. Al instalar el 2~5 sistema, por defecto todos son iguales. Estos niveles también se llaman multiusuario, ya que, por defecto, permiten que más de un usuario trabaje en el sistema. El último nivel está preparado para reiniciar el sistema. Es muy 6 parecido al 0 pero se añade una función de reinicio. El comando necesario para cambiar de nivel de ejecución es init (le pasamos como parámetro el nivel de ejecución que queramos) y para ver en cuál estamos, runlevel. Los comandos halt, reboot, shutdown o poweroff lo único que hacen es llamar al nivel de ejecución 0 o 6 realizando, antes, al- guna operación concreta (ver su manual para más información). Sólo el root del sistema puede utilizar todos estos comandos. ANOTACIONES La forma como se organizan estos daemons en cada nivel de ejecu- ción es muy simple. Cada nivel de ejecución tiene un directorio situa- do en /etc/rcX.d/ donde la “X” es el número de nivel. En estos directorios encontramos enlaces simbólicos a los shell scripts de los daemons situados en /etc/init.d/, que nos sirven para indicar al sistema si queremos iniciar o parar el daemon al que apuntan. Con el mismo nombre del enlace se identifica la acción a realizar: si el enlace empieza por “S” (Start) indicamos que queremos iniciar el 149
  • 150. © FUOC • 71Z799002MO © Software libre daemon, mientras que se empieza por “K” ( Kill) indica que queremos pararlo. Si el nombre no empieza por ninguna de estas letras, el sis- tema no hace nada con él. Después de esta letra se pone un número de 2 cifras entre “00” y “99”, que indica el orden de inicio o parada de los mismos. Este orden es importante, ya que algunos daemons necesitan que otros estén en ejecución antes de ser iniciados. Al cambiar de nivel de ejecución, el sistema inspeccionará los dae- mons del directorio correspondiente y empezará, primero, parando los daemons indicados y después iniciará los demás. Lo único que se hace es llamar al daemon pasándole como parámetro start o stop, de forma que si paramos alguno que no se esté ejecutando en el momento de parada, no pasaría nada porque el mismo shell script lo tiene en cuenta. Esto nos sirve para poder cambiar de nivel de ejecución sin tener en cuenta el nivel anterior al que estábamos. En la siguiente figura podemos ver un ejemplo de configuración para 3 niveles de ejecución: NIVEL DE EJECUCIÓN 2 DAEMONS EJECUTÁNDOSE K50sshd S10sysklogd sysklogd K51apache-ssl S12kerneld kerneld K52tftpd S20dhcpd dhcpd K53telnet S50proftpd proftpd S90apache apache NIVEL DE EJECUCIÓN 3 K50dhcpd S10sysklogd sysklog K51proftpd S12kerneld kerneld K52apache S20sshd sshd K53tftpd S50apache-ssl apache-ssl K53telnet NIVEL DE EJECUCIÓN 4 K50dhcpd S10syslogd sysklogd K51proftpd S12kerneld kerneld K52apache S20tftpd tftpd ANOTACIONES K53tftpd S50telnet telnet K53telnet En el fichero /etc/inittab tenemos definida toda la configuración de los runlevels: el nivel de ejecución por defecto, el número de con- solas disponibles en cada uno de ellos, etc. Cada línea del fichero es una directiva con la sintaxis: “<id> :<runlevels> : <action> : <process>”. El primer campo es el identificador de la directiva, seguidamente encontramos en qué niveles de ejecución es válida esta 150
  • 151. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © directiva, la acción a realizar y el proceso a lanzar. En el siguiente ejemplo explicamos cómo configurar algunas de estas directivas: # El nivel de ejecución por defecto (en este caso, el 2) id:2:initdefault: # Scripts a ejecutar al arrancar el sistema (antes # de entrar en el nivel de ejecución por defecto) si::sysinit:/etc/init.d/rcS # Programa que se llama al entrar en el nivel de ejecución # single user (la acción wait indica que se lanza el # proceso y no se hace nada más) ˜˜:S:wait:/sbin/sulogin # Configuración de los diferentes niveles de eje- cución # disponibles en el sistema l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 # Comando a ejecutar al apretar CTRL+ALT+DEL ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now # Definición de las consolas abiertas en cada # nivel de ejecución (la acción respawn indica ANOTACIONES # que al terminar la ejecución del proceso # getty se lance otra vez) 1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6 151
  • 152. © FUOC • 71Z799002MO © Software libre Como vemos, en este fichero se configura todo lo referente a los ni- Contenido complementario veles de ejecución de forma muy flexible pudiendo cambiar lo que nos interese para adaptarlo mejor a nuestras necesidades. Fijémo- En este fichero también po- dríamos configurar un termi- nos que, aunque aquí definamos el nivel de ejecución por defecto, nal que se comunicara con el también lo podríamos especificar al arrancar el sistema con el Lilo o sistema a partir de un módem y otro ordenador con la direc- Grub. Esto es muy útil, por ejemplo, cuando tenemos problemas gra- tiva “T1:23:respawn:/ ves en el sistema que no nos permiten arreglarlos adecuadamente; sbin/ mgetty -x0 -s si arrancamos con el primer nivel (pasando “1” o “single” al Lilo 57600 ttyS1”. De esta forma, podríamos tener una o Grub), sólo se iniciarán las funciones más necesarias y podremos consola del sistema en otro entrar para arreglar lo que haga falta. terminal comunicándonos con una línea telefónica. 7.3. El arranque del sistema El proceso padre de todos los demás es el init. Este proceso se en- carga de arrancar los otros que tengamos en el nivel de ejecución configurado. Sin embargo, antes de entrar en este nivel se ejecutan todos los shell scripts de /etc/rcS.d/ (configurado en /etc/ inittab), que pueden ser o bien daemons como los de los otros runlevels o simplemente shell scripts necesarios para el sistema (car- ga del mapa de caracteres, carga de los módulos del núcleo, etc.). Si queremos eliminar alguno de ellos, debemos saber exactamente qué estamos haciendo, ya que generalmente son imprescindibles para el buen funcionamiento del operativo. Una vez se han arrancado estos daemons (o shell scripts), se entra en el nivel de ejecución configurado por defecto, parando e inician- do los daemons especificados en él. Una vez aprendida toda esta or- ganización, ya podremos adaptar el arranque del sistema a nuestras necesidades creando y situando los daemons que queramos en cual- quiera de los sitios que hemos visto. ANOTACIONES 7.4. Daemons básicos Según la distribución de GNU/Linux que utilicemos, el mismo proce- so de instalación ya configura unos daemons u otros. Aun así, todas las distribuciones suelen incorporar el daemon para el sistema de logs y el de la ejecución periódica y retardada de aplicaciones (aun- 152
  • 153. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © que las configuraciones de los mismos pueden variar un poco). En esta sección veremos cómo funcionan estos tres daemons básicos y cómo podemos configurarlos. Es importante saber manejar estos da- emons básicos porque nos pueden ayudar mucho en algunas de las tareas de administración. 7.4.1. Logs de sistema (sysklogd) Los logs del sistema son ficheros de traza que un daemon del opera- Contenido tivo se encarga de generar para que quede constancia de cualquier complementario acción realizada sobre el mismo. El daemon encargado de realizar El núcleo del sistema tam- estas tareas es el sysklogd, cuya configuración encontramos en / bién lanza un daemon para etc/syslog.conf. Cada línea de este fichero consiste en una re- gestionar sus logs denomi- nado klogd. gla con dos campos: el selector y la acción. Con el selector configu- ramos de qué servicio queremos tratar los logs y el nivel de prioridad de los mismos. La acción sirve para indicar hacia dónde queremos redirigir los logs (a un fichero, a una consola, etc.). En las tablas de la siguiente página podemos ver las diferentes opciones válidas para estos campos. Generalmente, todos los ficheros de logs del sistema se suelen alma- Contenido cenar en el directorio /var/log/. Aunque la mayoría de ficheros de complementario logs son de texto y los podemos ver con cualquier editor, podemos Para ver los últimos regis- encontrar alguno especial que no guarde sus datos en este formato. tros de entrada de los usua- Generalmente suelen ser los ficheros /var/log/wtmp y /var/ rios, también podemos utilizar el comando log/btmp, que son los logs de entrada de usarios en el sistema y de lastlog. entradas erróneas respectivamente. Para ver estos dos ficheros, po- demos utilizar los comandos last y lastb. Si tuviéramos configu- rados estos logs en algún otro fichero, también podríamos verlos pasando el parámetro “-f fichero” al comando last. ANOTACIONES SELECTOR Servicio significado Prioridad significado Mensajes de autorizaciones o de aspectos authpriv emerg El sistema es inutilizable. de seguridad. La acción se debe realizar de cron Daemon crond y atd. alert inmediato. daemon Daemons del sistema sin opciones de logs. crit Condiciones críticas. Daemon del servidor FTP (File Transfer ftp err Condiciones de error. Protocol). 153
  • 154. © FUOC • 71Z799002MO © Software libre SELECTOR Servicio significado Prioridad significado kern Mensajes del núcleo del sistema. warning Condiciones de emergencia. Noticias normales, pero lpr Mensajes del subsistema de impresión. notice importantes. Mensajes del subsistema de correo (si lo mail info Mensajes de información. tenemos configurado). Mensajes del subsistema de noticias (si lo news debug Mensajes de debugging. tenemos configurado). Logs generados por el mismo daemon syslog syslogd. user Logs de aplicaciones de nivel de usuario. Mensajes generados por el sistema de uucp UUCP (Unix-To-Unix Copy Protocol). local0~7 Reservados para su uso local. (los servicios y prioridades se pueden combinar como se quiera) ACCION Destino explicación Se especifica la ruta completa del fichero. Poniendo un “-” delante no se requiere que el Fichero regular fichero sea sincronizado cada vez que se escribe en él (aunque se perderá el log en caso de fallar la alimentación). Este sistema permite que los mensajes se redirijan hacia una tubería creada antes de iniciar Pipe nombrado el daemon de sysklogd con el comando mkfifo. Se indica poniendo el carácter “|” antes del nombre del fichero. Es muy útil para operaciones de debugging de programas. Especificando /dev/ttyX dónde “X” es un número de consola o /dev/console los logs Consola se redirigen a la pantalla especificada. Para especificar que los logs se redirijan a una máquina remota, debemos preceder el Máquina remota nombre del host remoto con “@”. Especificando el nombre de usuario o usuarios (separados por comas) los logs Usuarios correspondientes se redirigen a éstos. Con “*” especificaremos que los logs se redirijan a todos los usuarios que en el momento de Usuarios on-line ocurrir el log estén dentro del sistema. Esto se utiliza para avisar a todos los usuarios que ha pasado alguna acción crítica en el sistema. (las acciones se pueden poner en todos los selectores que se quiera) ANOTACIONES Esta forma de tratar los logs permite mucha flexibilidad para confi- gurarlos adecuadamente cuando instalamos un servidor, tarea muy importante para tener controlados los aspectos que más nos intere- san del sistema. Aun así, si tuviéramos que guardar todos los logs que se generan en un servidor, seguramente al final saturaríamos el disco por el tamaño siempre creciente de estos archivos. Para evitarlo se utiliza un sistema de rotación de logs, que consiste en ir compri- 154
  • 155. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © miendo, cada cierto tiempo, estos ficheros y guardar sólo hasta una Contenido determinada antigüedad. Aunque generalmente se suelen compri- complementario mir cada semana y se guardan sólo los de uno o dos meses anterio- Si quisiéramos configurar res, podemos configurar todo esto a partir del fichero /etc/ una consola del sistema logrotate.conf. Los logs de ciertos servidores y/o aplicaciones tam- para ver todos los logs que se van generando, podría- bién se pueden configurar de forma explícita para tener un control más mos añadir la línea “*.* adecuado de lo que hacen. La configuración personalizada de logs /dev/ttySX”(donde “X” es la consola donde quere- para estas aplicaciones suele situarse en /etc/logrotate.d/. mos ver los logs) al fichero /etc/syslog.conf y reiniciar el daemon Internamente, el sistema utiliza unos programas para manejar de sysklogd. forma más amena todo este sistema de logs. Con logger podemos escribir en el sistema de logs del sistema. savelog y logrotate sirven para guardar y, opcionalmente, comprimir algunos de los fi- Contenido complementario cheros de logs que tenemos (con el segundo podemos configurar Según el servidor que este- más opciones que con el primero). Estos comandos también se pue- mos administrando tendre- den utilizar para crear nuestros propios ficheros de logs o, si es ne- mos que tener en cuenta la cesario, manipular manualmente los del sistema (con el manual de legalidad vigente (según países) que en algunos ca- los mismos obtendremos más información sobre su tratamiento y sos obliga a conservar los fi- manipulación). cheros de algún tipo de logs durante un determinado pe- ríodo de tiempo. 7.4.2. Ejecuciones periódicas (cron) Muchas de las tareas de administración de un servidor se tienen que llevar a cabo de forma periódica. También hay muchas accio- nes, como la actualización de los logs o las bases de datos internas que utilizan ciertos comandos, que necesitan ejecutarse regular- mente para su buen funcionamiento. Por este motivo, es muy im- portante que el mismo operativo nos proporcione alguna herramienta para poder configurar eficientemente todas estas eje- cuciones periódicas. ANOTACIONES El daemon cron es el que se encarga de manejar todo el sistema de ejecuciones periódicas. Su organización es muy simple: en el fi- chero /etc/crontab se guarda la configuración interna del dae- mon y en los directorios /etc/cron.daily/, /etc/ cron.weekly/ y /etc/monthly/, los shell scripts de los progra- mas que se ejecutarán diariamente, semanalmente o mensualmente respectivamente. También existe el /etc/cron.d/, donde pode- mos situar archivos con un formato especial para configurar la eje- cución de determinados programas de forma más flexible. 155
  • 156. © FUOC • 71Z799002MO © Software libre Generalmente, en el fichero /etc/crontab encontramos las si- Contenido complementario guientes directivas: Muchas de las aplicaciones del sistema necesitan de al- SHELL=/bin/sh gún tipo de actualización pe- PATH=/usr/local/sbin:/usr/local/bin: riódica, generalmente confi- gurada a partir del cron. Si /sbin:/bin:/usr/sbin:/usr/bin no tenemos el ordenador #m h dom mon dow user command encendido todo el día, es importante que configure- 25 6 * * * root test -e /usr/sbin/anacron || mos adecuadamente el run-parts --report /etc/cron.daily cron para que se realicen 47 6 * * 7 root test -e /usr/sbin/anacron || en algún momento en que sepamos que el ordenador run-parts --report /etc/cron.weekly estará encendido. 52 6 1 * * root test -e /usr/sbin/anacron || run-parts --report /etc/cron.monthly La definición de las variables SHELL y PATH sirven para indicar al Contenido complementario daemon qué intérprete de comandos utilizar y cuál será su PATH. Las siguientes tres líneas están formadas por los campos: “<minuto> Si instalamos GNU/Linux en un ordenador que no está en <hora> <díaMes> <mes> <diaSetmana> <usuario> funcionamiento todo el día, <comando>”. Los cinco primeros indican cuándo ejecutar el co- es recomendable tener insta- lado el programa anacron mando correspondiente (deben ser coherentes) y en el sexto encon- porque ejecutará los scripts tramos el usuario que se utilizará para ejecutar el comando configurados con el cron especificado en el último. Fijémonos cómo en el fichero de configu- adecuadamente (aunque sea en horas diferentes a las ración los comandos que se ejecutan una vez al día, una vez a la se- previstas). mana o una vez al mes son los encargados de lanzar los shell scripts que se encuentren en los directorios especificados. Si existe el pro- grama anacron, se ejecutan con él, si no se utiliza el run-parts, que aunque no tiene tantas funcionalidades como el anacron, también sirve para poder ejecutar todos los shell scripts que se en- cuentren en un determinado directorio. Esta configuración es la que nos permite toda la estructura de directorios que comentábamos an- teriormente. Si quisiéramos, podríamos cambiar las directivas de este archivo para adaptarlas más a nuestras necesidades. ANOTACIONES Contenido complementario Aunque también podríamos utilizar este mismo fichero de configura- Si utilizamos el fichero / ción para poner nuestros propios comandos, es más recomendable etc/crontab para confi- utilizar la estructura de directorios que nos proporciona el mismo da- gurar nuestras propias eje- cuciones periódicas, cada emon. El único que no aparece en esta configuración es el de /etc/ vez que lo modifiquemos cron.d/, que el daemon ya tiene en cuenta automáticamente. En debemos reiniciar el dae- mon cron. Si utilizamos su este directorio podemos situar archivos exactamente con la misma estructura de directorios, no sintaxis que en el /etc/crontab para programar ejecuciones per- hace falta. sonalizadas. De esta forma, la flexibilidad es total. 156
  • 157. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Si para las tareas de administración periódicas del sistema es reco- mendable utilizar toda esta estructura, cuando son los usuarios los que quieren configurar alguna tarea periódica es más usual utilizar Contenido ficheros particulares para cada uno de ellos. Con el comando cron- complementario tab podemos pasar los parámetros “-u USER -e” y automática- Utilizando el comando mente se editará el fichero de configuración particular para el crontab , al grabar el fi- usuario especificado. Los ficheros particulares de los usuarios se chero se comprueba que la sintaxis sea correcta. guardan en el directorio /var/spool/cron/crontabs/ (de he- cho, el fichero /etc/crontab es el mismo que el particular del root). Para poder limitar qué usuarios pueden utilizar este daemon, podemos editar los ficheros /etc/cron.allow y /etc/ cron.deny, donde podemos poner, respectivamente, la lista de usuarios a los que permitimos utilizar el cron y a los que no. 7.4.3. Ejecuciones retardadas (at y batch) Si bien el cron nos permite realizar operaciones cada cierto período Contenido de tiempo, el daemon atd permite ejecutar un comando o aplica- complementario ción en un momento determinado. Igual que con el daemon ante- Todo el sistema de at y rior, podemos configurar qué usuarios pueden utilizarlo o no a partir batch funciona con unos mecanismos de cola de eje- de los ficheros /etc/at.allow y /etc/at.deny. En este caso, cución (uno para cada uno no tenemos fichero de configuración explícito para el daemon, sino de los dos). Aunque pode- que es con el comando at con el que podemos especificar en qué mos configurar más, gene- ralmente sólo con éstas ya momento queremos ejecutar cierta operación con la sintaxis: “at - tenemos suficiente para f fichero TIEMPO”. Generalmente el fichero suele ser un progra- realizar cualquier tipo de ma o shell script creado por el mismo usuario donde se escriben to- ejecución retardada en el sistema. das las instrucciones que se quieran ejecutar. La especificación de TIEMPO puede llegar a ser muy compleja, pudiendo determinar una HORA con el formato “hh:mm”, un tiempo a partir del momento de ejecución con “now + XX minutes”, etc. (en su manual se especi- fican todos los posibles formatos). ANOTACIONES Con atq podemos ver qué trabajos tenemos retardados y con atrm Contenido podemos borrar alguno de los que estén en la cola. Finalmente, si complementario queremos ejecutar todos los trabajos en la cola del at, podemos uti- La carga del sistema es un lizar el comando atrun. Este nos permite pasarle el parámetro “-l parámetro que nos indica el LOADAVERAGE” donde LOADAVERAGE debe ser un número que in- grado de actividad del or- denador. Con el comando dica a partir de qué momento de carga del sistema se podrán ejecu- top podemos ver esta carga tar los comandos retardados. Esto enlaza directamente con el de forma interactiva. comando batch, que sirve exactamente para lo mismo que el at y 157
  • 158. © FUOC • 71Z799002MO © Software libre sigue su misma sintaxis, pero sin necesidad de especificar un tiempo concreto de ejecución. Las operaciones configuradas en esta cola se llevarán a término cuando la carga del sistema baje a menos de 1,5. De esta forma, cuando necesitamos ejecutar un determinado comando en una hora concreta, deberíamos utilizar el at, mientras que para ope- raciones que queramos realizar sin que entorpezcan el funcionamiento normal del ordenador, deberíamos utilizar el batch. En los directorios /var/spool/cron/atjobs/ y /var/spool/cron/atspool/ se guardan los ficheros correspondientes a todos estos trabajos re- tardados. ANOTACIONES 158
  • 159. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © 8. Instalación de aplicaciones 8.1. Introducción La gestión y manipulación de los paquetes es un aspecto fundamental en cualquier distribución de GNU/Linux. Un paquete es uno o varios programas, librerías o componentes de software empaquetados en un solo archivo preparado para que sea instalado e integrado en el siste- ma operativo. En el diseño de cualquier distribución es muy importante proporcionar las herramientas necesarias para poder instalar y gestio- nar adecuadamente estos paquetes. También se deben proporcionar herramientas, especialmente para los desarrolladores de software, para poder crear otros nuevos. En estos paquetes se suelen incluir los ejecutables del programa y sus dependencias y conflictos con otras aplicaciones. Las dependencias indican, al instalar un paquete, si ne- cesitan otros programas para que la aplicación funcione correctamen- te, mientras que los conflictos nos informan de incompatibilidades entre programas instalados y el que queremos instalar. Los sistemas de paquetes están diseñados de esta forma para facilitar la instalación de las nuevas aplicaciones, ya que algunas librerías son utilizadas por más de un programa y no tendría sentido que todas las aplicaciones que las utilizasen las instalaran de nuevo. Actualmente, la gran mayoría de distribuciones utilizan uno de los dos sistemas de paquetes más extendidos en el mundo del GNU/Li- nux: los deb o los rpm. Por un lado, los paquetes deb son los que la distribución de Debian GNU/Linux utiliza en su distribución, mientras ANOTACIONES que los rpm (Redhat Package Manager) son los nativos de RedHat. Las distribuciones basadas en alguna de estas dos generalmente adoptan el sistema de paquetes correspondiente, aunque la mayoría de las otras distribuciones propias también han optado por incorpo- rar alguno de los dos sistemas, ya que actualmente la gran mayoría de programas se empaquetan utilizando estos formatos. Por otra parte, los programas con licencia GPL o similar también se suelen distribuir con su código fuente (empaquetados y comprimidos 159
  • 160. © FUOC • 71Z799002MO © Software libre con algún formato estándar, como el tar). A partir de este código fuen- te, también podemos instalar el programa en nuestro operativo, com- pilándolo y situando los ejecutables en el lugar donde les corresponda. En este capítulo veremos cómo está organizado el sistema de paquetes Contenido complementario de la distribución Debian por la gran cantidad de herramientas que se proporcionan y la flexibilidad de su configuración. En la última sec- Debian GNU/Linux fue la pri- mera distribución que creó ción, aprenderemos cómo instalar un programa a partir de su código un sistema de paquetes. fuente, ya que en algunos casos podemos encontrarnos que el progra- ma que necesitemos no esté empaquetado. Esta forma de instalación era la que se utilizaba siempre antes de que aparecieran los primeros sistema de paquetes, que surgieron para facilitar todo este proceso. 8.2. El sistema de paquetes Debian Las aplicaciones para manipular el sistema de paquetes de Debian GNU/Linux son, básicamente, de dos tipos: los programas apt (Advanced Packaging Tool) y los dpkg (Debian package). El conjunto de aplicaciones apt sirven para configurar de dónde conseguimos los paquetes, cuáles son los que queremos y resuelven dependencias y conflictos con otros. Los programas dpkg sirven para instalar los pa- quetes, configurarlos, saber cuáles tenemos instalados, etc. Hay otras aplicaciones, como dselect o aptitude, que sirven para manipu- lar los programas apt y dpkg proporcionando, en un solo entorno, herramientas interactivas para la manipulación de los mismos. En la siguiente figura podemos ver este esquema: ANOTACIONES 160
  • 161. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Los programas que en última instancia se encargan de instalar las Contenido aplicaciones son los dpkg. Estos programas descomprimen el fi- complementario chero “.deb” e instalan el programa. Las aplicaciones apt nos Aunque con las aplicacio- ayudan a localizar las últimas versiones de los programas que ne- nes apt también se pueden cesitamos, copian en el disco los ficheros de las fuentes de donde instalar paquetes, lo único que hacen es llamar a los las hayan extraído (FTP, CD-ROM, etc.) y comprueban dependen- programas dpkg. cias y conflictos de los nuevos paquetes para que se puedan ins- talar correctamente. Las principales aplicaciones apt son las siguientes: • apt-config: sirve para configurar algunas de las opciones de apt (la arquitectura de nuestro sistema, directorio donde se guardan los archivos, etc. ). • apt-setup: aplicación para configurar las fuentes de los paque- tes (de dónde los obtenemos). • apt-cache: gestión de la caché de paquetes (directorio donde se guardan los archivos “.deb” antes de ser instalados). • ap-CD-ROM: aplicación para gestionar CD-ROM que contengan paquetes. • apt-get: actualización, instalación o descarga de los paquetes. Toda la configuración de apt está en el directorio /etc/apt/. En el fichero /etc/apt/ sources.list es donde se guarda la con- figuración de las fuentes de los paquetes. Con todas estas fuentes se genera un listado de paquetes disponibles, que podemos consultar e instalar siempre que nos interese. Generalmente, el formato de este ANOTACIONES archivo sigue la siguiente sintaxis: deb http://site.http.org/debian distribución sección1 sección2 sección3 deb-src http://site.http.org/debian distribución sección1 sección2 sección3 El primer campo de cada línea indica el tipo de archivo al que nos referimos: binarios (deb) o código fuente (deb-src). Seguidamente 161
  • 162. © FUOC • 71Z799002MO © Software libre encontramos la referencia de la fuente de los paquetes, que puede Contenido complementario ser un CD-ROM, una dirección de Internet, etc. El campo de distribu- ción indica a apt qué versión de Debian GNU/Linux estamos utili- Los sistemas de paquetes también permiten crear pa- zando. Este campo es importante porque cada versión de la quetes con el código fuente distribución tiene sus propios paquetes. En los últimos campos pode- de las aplicaciones. Si sólo nos interesa utilizar la apli- mos especificar qué tipo de paquetes queremos utilizar. cación, no hace falta que descarguemos los paquetes Si cambiásemos este fichero de forma manual, podríamos utilizar el co- de código fuente. mando “apt-get update” para actualizar todos los paquetes dispo- nibles en el sistema. Para insertar los paquetes de un CD-ROM en el listado de paquetes disponibles, podríamos utilizar “apt-CD-ROM add”, con lo cual se exploraría el CD insertado y se actualizaría el lista- do de paquetes del sistema. Si algunas de las fuentes contuvieran pa- quetes iguales, al instalarlo la misma aplicación apt detectaría cual es el más reciente o el que su descarga implica menos tiempo y lo bajaría de la fuente correspondiente. Con el programa netselect, además, podríamos configurar más ampliamente todo este sistema de descarga. Otra opción muy interesante que nos proporciona la mayoría de dis- tribuciones es la de la actualización de paquetes en los que se ha descubierto algún tipo de vulnerabilidad o fallo en su funcionamien- to. Con Debian, tan sólo tenemos que añadir la siguiente línea en el archivo /etc/apt/sources.list: deb http://security.debian.org/ stable/updates main contrib non-free A medida que se van detectando paquetes críticos, se van poniendo en esta fuente, de forma que con sólo ejecutar “apt-get update” se avisa de las nuevas actualizaciones que debemos realizar en el sis- tema y se reinstalan los paquetes necesarios. ANOTACIONES Aunque con los programas dpkg podemos manipular cualquier as- pecto de los paquetes instalados en el sistema, crear nuevos, modificar los instalados, etc., en este curso sólo repasaremos los más importan- tes, al nivel de usuario, para que podamos realizar las operaciones básicas con ellos. Los principales programas dpkg son los siguientes: • dpkg-divert: nos sirve para manipular el lugar de instalación de algunos de los paquetes instalados en el sistema. Muy útil para evitar algunos problemas de dependencias. 162
  • 163. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © • dpkg-reconfigure: con un mismo paquete deb muchas veces se incluye algún mecanismo para configurar algunas de las op- ciones de la aplicación de forma interactiva. Con esta aplicación podemos volver a configurar el paquete que le indiquemos con los mismos mecanismos utilizados en su instalación. • dpkg-scanpackages: este programa sirve para escanear un de- terminado directorio del sistema que contenga archivos “.deb” para que se genere un archivo de índice. Con este archivo de índice podemos incluir el directorio como una fuente más de apt. Muy útil cuando bajamos programas no oficiales de la distribución. • dpkg-scansource: aplicación con las mismas funcionalidades que la anterior pero para paquetes de código fuente. • dpkg-split: programa para dividir y unir un paquete en varios archivos diferentes. Con estos programas podemos manipular de cualquier forma nues- Contenido tros paquetes. La aplicación principal, dpkg, es la que nos permite complementario instalar, listar o eliminar los paquetes del sistema. Para listar todos Con dpkg también pode- los paquetes disponibles le podemos pasar el parámetro “-l”, con mos utilizar patrones para seleccionar, instalar, elimi- lo cual se mostrará una lista completa de los paquetes y su estado de nar, . . . los paquetes del sis- instalación (instalados, instalados pero no configurados, etc.). Si qui- tema. siéramos ver toda la información de un determinado paquete, po- dríamos utilizar el parámetro “-p” seguido del nombre del paquete, con lo cual se muestran todas las dependencias, conflictos con otros paquetes, versión, descripción, etc. Para instalar nuevos paquetes podemos utilizar el parámetro “-i” seguido del nombre del archivo. Si nos da problemas de dependen- ANOTACIONES cias, podemos ignorarlas con “ --ignoredepends=X”, donde la “X” indica la dependencia, aunque debemos vigilar mucho cómo utilizamos este parámetro porque al ignorar dependencias es posible que el programa instalado no funcione correctamente. Si sólo quisié- ramos descomprimir el archivo “.deb”para ver qué contiene, tam- bién podríamos utilizar “-x”. Para eliminar los paquetes, debemos pasar “-r” seguido del nombre del paquete, que lo elimina del sis- tema, pero guardando sus archivos de configuración (con “-P” se elimina todo). 163
  • 164. © FUOC • 71Z799002MO © Software libre Otro parámetro muy interesante es el de “--force-things X” (donde la “X” es una de las siguientes opciones), que nos puede ayu- dar en alguno de los casos que mostramos a continuación: • “auto-select”: selecciona automáticamente los paquetes que se deben instalar o desinstalar con el nuevo paquete que elegimos. • “downgrade”: instala el paquete aunque haya versiones más nuevas del mismo. • “remove-essential”: aunque el paquete esté considerado como esencial en el sistema, lo elimina. • “depends”: no tiene en cuenta las dependencias, las considera como alertas. • “depends-version”: no tiene en cuenta dependencias de ver- sión de los paquetes. • “conflicts”: instala el paquete, aunque entre en conflicto con algún otro del sistema. • ...: Aunque todos los programas que hemos ido comentado a lo largo de esta sección tienen muchísimas opciones y existen muchos otros programas, con los que hemos especificado ya nos bastará, con el sistema de paquetes de la distribución que utilicemos, para realizar casi cualquier tarea que sea necesaria. Si bien ya hemos comentado que con programas como el dselect o aptitude ya podremos realizar las tareas básicas de instalación y eliminación de paquetes, es importante conocer adecuadamente estos otros comandos porque ANOTACIONES para realizar operaciones específicas o para automatizar los proce- sos de selección e instalación pueden ser muy útiles. 8.3. Compilación de nuevos programas En la administración de cualquier servidor es muy probable que en algunos casos nos encontremos que debemos utilizar algún pro- 164
  • 165. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © grama que nuestra distribución no tiene o que necesitemos la últi- ma versión de un servidor de aplicaciones que todavía no está convenientemente empaquetado, etc. En estos casos, siempre po- demos descargarnos el código fuente del programa y compilarlo manualmente. Es importante comprender la diferencia que existe entre compilar un programa para conseguir su ejecutable que des- cargar directamente el binario. Cuando compilamos un programa, éste utiliza las librerías disponibles en el sistema, mientras que si lo descargamos directamente, lo más probable es que no funcione adecuadamente porque intentará utilizar alguna librería que no será exactamente igual a la que tengamos instalada en el sistema. Por ello, lo más recomendable, cuando necesitemos instalar un Contenido nuevo programa del que no disponemos del paquete correspon- complementario diente, es compilarlo de nuevo. Al compilar un programa es muy probable que necesite- mos tener instaladas en el sis- Al bajar las fuentes de una aplicación, nos encontraremos con un fi- tema las fuentes o las chero empaquetado y comprimido con tar y gzip o similares. Es cabeceras de las librerías que usual añadir un fichero llamado README en el cual se explica paso utiliza. Generalmente, estos paquetes suelen tener el mis- a paso todas las acciones necesarias para compilar correctamente el mo nombre que la librería, programa. Aunque es recomendable leerlo, en la mayoría de casos, pero añadiendo “-dev” (de desarrollo) al final. el proceso de instalación siempre es el mismo. Lo primero que debemos hacer para compilar el nuevo programa Contenido es descomprimirlo y desempaquetarlo. Una vez hecho esto, dispon- complementario dremos del código fuente estructurado en varios directorios. En su El proceso de compilación de raíz, podemos encontrar (o no) un fichero llamado Makefile. Este un programa puede durar desde segundos a horas, archivo indica al compilador qué librerías se utilizan, cómo se de- según la aplicación. Por ben compilar los archivos de código, etc. Si tenemos este Makefi- ejemplo, la compilación del núcleo Linux va desde 5 o 10 le, ya podemos compilar el programa ejecutando make. No hace minutos a las 2 horas (según falta que le pasemos ningún parámetro porque por defecto ya bus- la versión del núcleo y la po- ca el fichero de Makefile y ejecuta las acciones que se especifi- tencia del ordenador). ANOTACIONES can en él. Si el proceso no ha dado ningún error, ya podremos mover el ejecutable generado para ponerlo en alguno de los direc- torios del PATH configurado; de este modo, siempre que lo quera- mos ejecutar no tendremos que escribir su ruta completa. Muchos Makefile proporcionan, asimismo, instrucciones para que poda- mos ahorrarnos este último paso. Generalmente, ejecutando “make install” el mismo programa se encarga de situar adecua- damente los binarios y, si existieran, los archivos de documenta- ción. Finalmente, si no nos interesara guardar el código fuente del 165
  • 166. © FUOC • 71Z799002MO © Software libre programa, ya podemos eliminar todo el contenido de los directo- rios creados. Si el programa no incorpora el archivo de Makefile, generalmente se suele incluir algún shell script para generar automáticamente este fichero (habitualmente, este script se suele nombrar configure). Al ejecutar este shell script se comprobará que el sistema tenga instala- das todas las librerías necesarias para una buena compilación y, si faltara alguna, se daría un mensaje de aviso. Una vez ejecutado co- rrectamente este shell script, ya dispondremos del Makefile, con lo que el proceso vuelve a ser el mismo que anteriormente. En la si- guiente figura podemos ver todo esto de forma gráfica: ANOTACIONES 166
  • 167. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Aunque la mayoría del código fuente de los programas se organiza de la forma como hemos expuesto, también es posible que nos en- contremos con otros tipos de instalación. Hay alguno que incorpora menús, entornos en X u otros métodos más amenos. Últimamente, también empiezan a aparecer algunas aplicaciones que permiten realizar todo el proceso de instalación bajando el código directa- mente de Internet. ANOTACIONES 167
  • 169. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © 9. Taller de configuraciones básicas 9.1. Introducción En el segundo taller hemos aprendido a instalar un sistema básico para que, a partir de éste, podamos empezar a montar un sistema a medida de nuestras necesidades. Éste será el objeto de estos dos últimos talleres. En el primero, después de concretar algunos aspectos referentes a la configuración del sistema de instalación de paquetes, quedarán senta- das las bases para poder instalar las aplicaciones necesarias. A conti- nuación, aprenderemos a utilizar las distintas herramientas que nos ofrece Debian para la gestión de paquetes, es decir, para instalar, desinstalar, actualizar, etc. aplicaciones, e instalaremos y configurare- mos algunas de ellas, que son comunes y necesarias en la mayoría de sistemas tipo UNIX. El último taller está plenamente orientado al sistema gráfico. En él aprenderemos a instalarlo, configurarlo, adaptarlo a nuestras preferencias y, por último, aprenderemos a instalar y utilizar aplicaciones que se sirven de este sistema para poder correr. 9.2. El gestor de arranque En primer lugar debemos asegurarnos de instalar un sistema de arran- que que sea capaz de gestionar sin problemas los posibles sistemas operativos que tengamos instalados en nuestro ordenador. Esta cues- tión ya se abordó superficialmente en el taller anterior, durante el pro- ANOTACIONES ceso de instalación. Si ya tenemos instalado el gestor de arranque y hemos comprobado su correcto funcionamiento, podemos pasar a la sección siguiente; pero si no es así, es decir, si para arrancar nuestro sistema operativo necesitamos del disquete de rescate que creamos durante el proceso de instalación, ha llegado el momento de instalar un sistema de gestión de arranque en el disco duro para evitar la te- diosa tarea de utilizar cada vez el disquete. De cualquier modo, siem- pre es interesante tener instalado un sistema gestor de arranque, ya que nos permitirá, entre otras cosas, poder arrancar diversos kernels. 169
  • 170. © FUOC • 71Z799002MO © Software libre Tal como se ha expuesto, hay distintos gestores de arranque, entre ellos Lilo y Grub. Grub es un poderoso sistema gestor de arranque, del proyecto GNU, que se caracteriza por poder gestionar correc- tamente el arranque de cualquier sistema operativo que tengamos instalado en nuestro ordenador, no obstante, su uso y su configu- ración son un tanto complejos. Lilo es el gestor que se diseñó ini- cialmente para gestionar los arranques de los kernels Linux, se caracteriza por tener un sistema de instalación más intuitivo, ade- más de ofrecer la posibilidad de forma sencilla, mediante una sola línea de comandos, de reestablecer la imagen de la MBR anterior si algo ha ido mal; aspecto muy interesante, sobre todo si en nues- tro disco duro conviven distintos sistemas operativos, ya que escribir en la MBR puede inutilizar alguno de ellos, en especial si se trata de sistemas MicrosoftTM . De cualquier forma, si no disponemos de gestor de arranque y que- remos instalar uno, lo primero que debemos hacer es arrancar el sis- tema operativo que tenemos y comprobaremos si la aplicación está instalada, haciendo, por ejemplo, un man de la aplicación. 9.2.1. Instalación de Lilo El archivo de configuración de Lilo se encuentra en /etc/lilo.conf. El archivo está bien documentado y, por consiguiente, es fácil de modificar mediante un editor de texto y adaptarlo a nuestras nece- sidades. Una vez hayamos hecho las modificaciones que conside- ramos oportunas, lo que haremos es ejecutar como root la instrucción lilo para transferir a la MBR el contenido del fichero de configuración. Como medida de precaución, lo que haremos inmediatamente des- ANOTACIONES pués es reiniciar el ordenador, por ejemplo mediante el comando reboot, y comprobaremos que todos los sistemas operativos que te- nemos instalados arrancan correctamente. Si no fuese así, lo que se debe hacer es volver a arrancar nuestro recién instalado sistema operativo (mediante Lilo, si éste es capaz de hacerlo, o mediante el disquete de rescate –el que hemos utilizado hasta el momento para arrancar el sistema-) y ejecutar la instrucción siguiente para reesta- blecer la copia de seguridad del la MRB que Lilo ha hecho antes de 170
  • 171. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © escribir sobre ella; con ello estaremos en la misma situación que es- tábamos antes de ejecutar lilo: brau:˜# lilo -U Una vez hecho esto, debemos proceder a estudiar el porqué de los errores y tratar de corregirlos; ha llegado el momento de empezar a leer documentación, empezando por los mans, las FAQ, la docu- mentación que podemos encontrar en /usr/share/doc/lilo/ etc. Una vez hechos los cambios pertinentes, repetiremos el proceso anterior. Puede suceder que tras diversos intentos lleguemos a la conclusión de que: o Lilo no puede o no sabemos configurarlo correctamente para arrancar todos los sistemas operativos que tenemos instalados en el ordenador. Ha llegado el momento de probar con otros gesto- res, como puede ser Grub. 9.2.2. Instalación de Grub Grub no viene instalado por defecto, por este motivo, antes de usarlo debemos proceder a su instalación. Para ello, podemos proceder a leer las secciones posteriores para informarnos sobre el sistema ges- tor de paquetes, su configuración y su uso; o simplemente, en caso de que durante la instalación hayamos introducido en la base de da- tos los contenidos de todos los CD o que hayamos optado por una instalación por red, ejecutaremos la línea siguiente: brau:˜# apt-get install grub grub-doc Si no deseamos instalar el paquete de documentación, se puede omitir el último parámetro de la línea anterior. ANOTACIONES Una forma recomendable de trabajar con Grub es hacer, antes de escribir en la MRB, las pruebas que se estimen oportunas sobre un disquete y probar su correcto funcionamiento arrancando desde és- te. Para ello, lo primero que haremos es copiar los ficheros necesa- rios en /boot/: brau:˜# cp /usr/lib/grub/i386-pc/stage* /boot/ brau:˜# cp /usr/share/doc/grub/examples/menu.lst /boot/ 171
  • 172. © FUOC • 71Z799002MO © Software libre Una vez hecho esto, editaremos el fichero de configuración de Grub, /boot/menu.lst, y lo adaptaremos a nuestras necesidades. Esta ope- ración puede ser un tanto compleja, debido, entre otras cosas, al cambio de nomenclatura en lo que hace referencia a los discos du- ros; así pues, para identificar en qué dispositivo se halla un fichero en concreto, podemos ayudarnos del comando find una vez haya- mos entrado en el modo de comandos de Grub mediante Grub. Así pues, por ejemplo, para localizar un fichero, cuya ubicación seguro que necesitaremos especificar en el fichero de configuración de Grub, como puede ser /vmlinuz, procederemos de la manera si- guiente: brau:˜# grub GRUB version 0.91 (640K lower / 3072K upper memory) [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ] grub> find /vmlinuz (hd2,0) Grub cuenta con muchos más comandos, para ver un listado de al- gunos de ellos basta con pulsar la tecla TAB en la línea de comandos para obtener lo siguiente: grub> Possible commands are: blocklist boot cat chainloader cmp color configfile deb ug device displayapm displaymem embed find fstest geometry halt help hide impsp robe initrd install ioprobe kernel lock makeactive map md5crypt module ANOTACIONES moduleno unzip partnew parttype password pause quit read reboot root rootnoverify savede fault serial setkey setup terminal testload testvbe unhide uppermem vbeprobe grub> Para obtener ayuda de algún comando en concreto, basta con te- clear help seguido del nombre de dicho comando. Una buena for- ma de trabajar sobre nuestro fichero de configuración de Grub, / 172
  • 173. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © boot/menu.lst es abriendo una nueva sesión en una tty distinta e ir modificando dicho fichero a medida que vayamos trabajando so- bre la interfaz de comandos de Grub. Una vez hayamos terminado de editar el fichero de configuración, y tras introducir un disquete virgen en la disquetera, teclearemos –sus- tituyendo el carácter X por el número de disco duro, e Y por la par- tición correspondiente– la línea de comandos siguiente: grub> install (hdX,Y)/boot/stage1 d (fd0) (hdX,Y)/boot/stage2 p (hdX,Y)/boot/menu.lst Con la línea anterior hemos transferido al disquete (fd0) la informa- ción de la MBR (stage1), Grub y su interfaz de comandos (stage2), y el menú de arranque que hayamos configurado en el fichero / boot/menu.lst. Estamos, pues, en condiciones de reiniciar la má- quina, arrancar mediante el disquete que acabamos de crear y com- probar si nuestra configuración es correcta. Es muy interesante disponer de un disquete con Grub, ya que, me- diante su interfaz de comandos, podemos intentar arrancar directa- mente los distintos sistemas operativos que tengamos instalados, con el objeto de ir haciendo pruebas para depurar el contenido del fi- chero /boot/menu.lst. A modo de ejemplo, se expone el pro- cedimiento que hay que seguir para arrancar un sistema MicrosoftTM instalado como (hd0,0) y a continuación los coman- dos necesarios para arrancar un sistema GNU/Linux instalado como (hd1,0): Para un sistema Microsoft: grub> rootnoverify (hd0,0) ANOTACIONES grub> makeactive grub> chainloader +1 grub> boot Para un sistema GNU/Linux: grub> kernel (hd1,0)/vmlinuz root=/dev/hdc1 grub> boot 173
  • 174. © FUOC • 71Z799002MO © Software libre Una vez tengamos en nuestro disquete el sistema de arranque de- finitivo que deseamos implementar, simplemente debemos trans- ferir esta misma configuración a la MBR del disco duro de arranque, desde la misma línea de comandos del disquete teclea- remos: grub> install (hdX,Y)/boot/stage1 d (hd0,0) (hdX,Y)/boot/stage2 p (hdX,Y)/boot/menu.lst Como se ha dicho, utilizar Grub es un tanto más complejo que Li- lo, por esta razón se recomienda que antes de embarcarse en su instalación y posterior configuración, se lea detenidamente los mans y la documentación que se ha instalado con el paquete Grub-doc, también accesible en http://www.gnu.org/ software/grub/. 9.3. El sistema de paquetes Ha llegado el momento de analizar y aprender a utilizar el sistema de paquetes de Debian, probablemente el más sólido y fiable de cuantos existan en el mundo GNU. En las subsecciones siguientes aprenderemos a configurar su base de datos, a manipularla, a instalar paquetes, actualizarlos, etc. En muchas ocasiones hay distintas maneras de obtener el mismo re- sultado. Se expondrán algunas de ellas, con dos objetivos principa- les: el primero, para que el lector pueda optar por la que más le interese, y el segundo, porque es interesante conocer siempre más de una solución a un mismo problema, por si acaso alguna de ellas fallara. ANOTACIONES Actividad 13. Para la plena comprensión del funcionamiento del sistema de paquetes Debian, se recomienda la lec- tura de: • APT HOWTO: http://www.de.debian.org/doc/ manuals/apt-howto/index.en.html 174
  • 175. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © • http://www.de.debian.org/doc/manuals/ debian-faq/ch-pkg basics.en.html • http://www.de.debian.org/doc/manuals/ debian-faq/ch-pkgtools.en.html • Los mans de: apt, apt-cache, apt-get, sources.list, dpkg y dselect. Nota: Para hacer estas lecturas más asequibles, pode- mos esperar a realizarlas cuando tengamos configurada la impresora y hayamos aprendido a imprimir mans. 9.3.1. /etc/apt/sources.list El archivo /etc/apt/sources.list es el corazón de la configu- ración del sistema de paquetes de Debian. Al tratarse de un fichero de texto, como la mayoría de ficheros de configuración en los siste- mas UNIX, lo podemos editar manualmente, o bien mediante algu- nas herramientas de las que dispone el sistema para tal fin. El contenido de este fichero dependerá en gran medida de la veloci- dad con que podamos acceder a Internet, si es que lo podemos ha- cer. Pero en ningún caso debemos olvidar ejecutar la instrucción siguiente como root, una vez hayamos modificado el fichero: brau:/etc/apt# apt-get update Si no lo hicieramos, la base de datos del sistema de paquetes no se ANOTACIONES actualizaría y, en consecuencia, ninguno de los cambios realizados surgiría efecto. En una instalación donde los paquetes se obtengan de forma remota, este comando debe ser ejecutado periódicamente para ir actualizando la base de datos; por este motivo, no es mala idea incluirlo dentro del sistema cron. Cada línea de este fichero hace referencia a una fuente de paquetes y los campos van separados por un espacio. En primer lugar especi- ficaremos si la fuente de paquetes es de paquetes binarios deb o si 175
  • 176. © FUOC • 71Z799002MO © Software libre es de código fuente deb-src. En el segundo campo especificaremos la forma de acceder a éstos: CD-ROM, http, ftp, etc. seguido de la dirección de acceso. Los campos restantes hacen referencia al tipo de paquetes al que queremos acceder por esta línea. /etc/apt/sources.list con acceso rápido a Internet En el mejor de los casos dispondremos de un acceso rápido a Inter- net. Esto, probablemente, ya nos habrá permitido hacer la instala- ción del sistema básico por red, además de disponer siempre de las últimas versiones de los paquetes. Se trata, además, de la forma más cómoda de trabajar con paquetes, ya que no tenemos ni siquiera que preocuparnos de insertar el CD correspondiente para hacer una instalación. De lo que debemos cerciornarnos, antes que nada, es de que el con- tenido de /etc/apt/sources.list sea correcto. A continuación se muestra un ejemplo: deb http://ftp2.de.debian.org/debian/ stable main non-free contrib deb-src http://ftp2.de.debian.org/debian/ stable main non-free contrib deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb http://security.debian.org/ stable/updates main contrib non-free Todas las direcciones anteriores son oficiales, es decir, reconocidas por Debian. Aparte de estas fuentes, también se pueden utilizar pa- quetes no oficiales, que por no ser oficiales no significa que carezcan de calidad suficiente como para ser incluidos en nuestro fichero de configuración. Una buena dirección para obtener información acer- ANOTACIONES ca de la localización de estos paquetes es http://www.apt- get.org. Una vez editado el fichero y salvado, ejecutaremos el comando “apt-get update” y tras unos instantes, en los cuales el sistema de paquetes reconfigurarará su base de datos y visualizará por pan- talla los distintos accesos que se realizan, ya tendremos acceso a los nuevos paquetes. 176
  • 177. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © /etc/apt/sources.list sin acceso rápido a Internet En el caso de no disponer de conexión a Internet o de ser lenta, de- bemos optar, sin dudarlo, por utilizar el juego de CD de la distribu- ción para ir instalando los distintos paquetes. Si durante el proceso de intalación no hemos insertado todos los CD, habrá llegado el mo- mento de hacerlo. Insertamos el primer CD-ROM en el lector y usa- mos el comando apt-CD-ROM para incluir sus contenidos en la base de datos: brau:/etc/apt# apt-CD-ROM add Using CD-ROM mount point /CD-ROM/ . . . Repeat this process for the rest of the CDs in your set. Llegados a este punto, repetiremos el mismo proceso para todos y cada uno de nuestros CD de la distribución. Asimismo, puede utili- zarse el mismo procedimiento para incorporar datos procedentes de CD-ROM no oficiales. Una vez tengamos configurado nuestro acceso a Internet, si lo estima- mos oportuno, podemos incluir fuentes de paquetes de acceso reomo- to. Para ello editaremos el fichero /etc/apt/sources.list y despues de ejecutar “apt-get update”, tendremos disponibles los nuevos paquetes. 9.3.2. apt ANOTACIONES apt es acrónimo de Advanced Package Tool, que, como ya se ha di- cho en diversas ocasiones, es el sistema básico encargado de la ad- ministración de paquetes de las distribuciones basadas en Debian. apt pone a nuestra disposición esencialmente dos herramientas: atp-get y apt-cache. El primer comando lo puede utilizar única y exclusivamente el root del sistema, ya que es la herramienta de ges- tión de paquetes: instalación, desinstalación, actualización, etc., mientras que el segundo, al ser un comando orientado a la búsque- 177
  • 178. © FUOC • 71Z799002MO © Software libre da de información dentro de la base de datos, ya sean paquetes ins- talados o sin instalar, puede ser utilizado por cualquier usuario. Con el objeto de facilitar el manejo de paquetes, se han desarrollado otras aplicaciones que corren por encima de apt, como puede ser el middle-end dpkg o los front-end dselect o aptitude. Pero antes de adentrarnos en los distintos sistemas de administración de paque- tes, debemos conocer algunos conceptos acerca de éstos y de su re- lación con el sistema y el sistema de gestión. Tipos de paquetes según su prioridad Dentro del sistema de paquetes se distinguen cinco tipos distintos se- gún su grado de dependencia con el mismo sistema. Por orden de- creciente de prioridad se clasifican como: Required. Se trata de paquetes indispensables para el correcto fun- cionamiento del propio sistema. Important. Se trata de paquetes que deberían estar presentes en cualquier sistema tipo UNIX. Standard. Se trata de paquetes que comúnmente se encuentran en un sistema GNU/Linux. Por lo general son aplicaciones de tamaño reducido, pero que ya no son indispensables para el sistema. Optional. Se trata de paquetes que pueden estar o no, presentes en un sistema GNU/Linux. Entre otros, dentro de este grupo se ha- llan todos los paquetes referentes al sistema gráfico, ya que éste ANOTACIONES no se considera indispensable. En realidad, en muchos servidores, con el objeto de aumentar su rendimiento se prescinde del entorno gráfico. Extra. Son paquetes que, o bien presentan conflictos con paquetes con prioridad superior a la suya o bien porque requieren de configu- raciones especiales que no los hacen aptos para ser integrados como optional. 178
  • 179. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Podemos determinar a qué grupo pertenece un paquete en concreto mediante, por ejemplo, la sentencia “apt-cache show <nombre del paquete>” y consultar el contenido del campo Priority: Grado de dependencia entre paquetes apt se caracteriza por su gran consistencia a la hora de gestionar las dependencias que existen entre paquetes. Puede, por ejemplo, que una determinada aplicación que queremos instalar dependa de una librería y, en consecuencia, de otro paquete que no tengamos insta- lado. En este caso, apt nos informará de esta dependencia y nos pre- guntará si queremos que, junto con la aplicación que vamos a instalar, se instale el paquete que contiene dicha librería. Las relacio- nes entre paquetes se clasifican de la manera siguiente: depends. El paquete que queremos instalar depende de estos pa- quetes y, por consiguiente, si queremos que este paquete funcione correctamente, debemos permitir que apt instale el resto de ellos. recommends. El responsable del mantenimiento del paquete ha es- timado que normalmente los usuarios que vayan a instalar este pa- quete también usarán los que recomienda. suggests. Los paquetes que se sugieren permiten obtener un mayor rendimiento del paquete que vamos a instalar. conflicts. El paquete que vamos a instalar no funcionará correcta- mente si estos otros paquetes están presentes en el sistema. ANOTACIONES replaces. La instalación de este paquete implica la desinstalación de otros paquetes. provides. El paquete que vamos a instalar incorpora todo el conte- nido de los paquetes mencionados. Podemos determinar las dependencias de un paquete, por ejemplo, la sentencia “apt-cache depends <nombre del paquete>”. 179
  • 180. © FUOC • 71Z799002MO © Software libre Acciones sobre los paquetes Mediante los flags siguientes, dpkg o dselect nos informará acerca de lo que el usuario pretende hacer con dichos paquetes: unknown. Nunca se ha hecho referencia a dicho paquete. install. Se quiere instalar o actualizar el paquete. remove. Se quiere desinstalar el paquete, pero manteniendo sus fi- cheros de configuración (comúnmente situados en /etc/). purge. Se quiere desinstalar por completo el paquete, inclusive sus ficheros de configuración. hold. Se quiere indicar que no se quiere realizar ninguna operación sobre este paquete (es decir, que se mantenga hasta nuevo aviso su versión y su configuración). Estado de instalación de los paquetes Dentro del sistema un paquete se puede hallar: installed. El paquete ha sido instalado y configurado correctamente. half-installed. La instalación del paquete se ha comenzado, pero, por alguna razón, no ha terminado. not-installed. El paquete no está instalado en el sistema. ANOTACIONES unpacked. El paquete ha sido desempaquetado, pero no configurado. half-installed. El paquete ha sido desempaquetado y se ha iniciado el proceso de configuración, pero por alguna razón éste no ha ter- minado. config-files. Sólo existen, en el sistema, los archivos de configuración de dicho paquete. 180
  • 181. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © apt-cache Como ya se ha dicho, apt-cache es un comando orientado al aná- lisis del sistema de paquetes y, por tanto, al no ser un arma poten- cialmente peligrosa para el sistema, es accesible a todos sus usuarios. Los parámetros más utilizados para este comando son los siguientes: search pattern. Busca en la base de datos los paquetes cuyo nombre contenga pattern o en cuya descripción aparezca pattern (si el resul- tado es un lista extensa debido a que pattern es muy general, se pue- den utilizar pipes y grep para filtrar estos resultados). show package. Innforma acerca del paquete. policy package. Informa acerca del estado de instalación, la versión y revisión del paquete, y su procedencia. depends package. Explicita las dependencias del paquete. show package. Muestra las dependencias directas y las reversas del paquete. apt-get apt-get es el comando que se utiliza para gestionar los paquetes del sistema. Por este motivo su uso está restringido al root del sistema. Los parámetros más utilizados para este comando son los siguientes: install package. Instala el paquete. Si éste depende de paquetes que no se encuentran en el sistema, apt nos informará de ello, y nos pre- ANOTACIONES guntará si junto con el paquete en cuestión queremos instalar los pa- quetes de los que depende y que no están instalados; por lo general es interesante seguir los consejos de apt. update. Actualiza la base de datos de apt. Este comando debe ejecutar- se cada vez que se modifica el archivo /etc/apt/sources.list. upgrade. Fuerza la actualización de todos los paquetes instalados en el sistema a la última versión disponible. 181
  • 182. © FUOC • 71Z799002MO © Software libre remove package. Elimina el paquete, sin eliminar los ficheros de configuración, de cara a posibles reinstalaciones. remove -purge package. Elimina por completo el paquete, incluyen- do sus archivos de configuración. clean. Elimina las copias caducadas de los paquetes que se ha ido instalando, proceso en el cual se almacena de manera automática una copia del paquete sin desempaquetar en /var/cache/apt/ archives cuando se instala un paquete. Comando muy útil de cara a liberar espacio del disco duro, ocupado por ficheros que, pro- bablemente, nunca más serán utilizados. autoclean. Elimina todas las copias no desempaquetadas de los pa- quetes, independientemente de su vigencia. 9.3.3. dpkg dpkg es acrónimo de Debian Package Manager y fue concebido como back-end de apt. Los parámetros más utilizados son los si- guientes: – l. Para listar todos los paquetes de la base de datos y su estado de instalación (generalmente esta opción se combina con grep). – L package. Para listar los ficheros contenidos en el paquete. – r package. Tiene el mismo efecto que apt-get remove package. ANOTACIONES – P package. Tiene el mismo efecto que apt-get remove -- purge package . – p package. Tiene el mismo efecto que apt-get show package. – s package. Describe el estado de instalación del paquete. – S file. Busca a qué paquetes pertenece el fichero. 182
  • 183. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © 9.3.4. dselect dselect es una GUI (Graphical User Interface) que corre sobre apt. Para entrar en ella, basta con teclear el comando dselect, y me- diante los menús de esta interfaz ir seleccionando los distintos pa- quetes sobre los cuales queremos operar y especificar qué tipo de operación deseamos hacer sobre ellos. 9.3.5. aptitude aptitude es otra GUI que corre sobre apt. Por defecto no viene insta- lada, por lo que hay que hacerlo antes de proceder a su uso: brau:/etc/apt# apt-get install aptitude Una vez instalada, la lanzamos mediante el comando aptitude, y enseguida veremos que su uso es igual o más simple que el de dselect, ya que dispone de menús desplegables accesibles median- te F10. 9.4. locales: configuración regional Aunque aparentemente nuestro teclado funcione correctamente, ya que podemos utilizar acentos, diéresis y otros caracteres no ingleses, a medida que vayamos adaptando el sistema a nuestras necesida- des, y especialmente cuando instalemos el sistema gráfico y haga- mos correr aplicaciones sobre él en el próximo taller, nos daremos cuenta de que esto no es así. Podemos, pues, en este punto proceder a configurar correctamente estos aspectos para no tenerlo que hacer ANOTACIONES más adelante. En primer lugar comprobaremos si el paquete locales está ins- talado: brau:/# dpkg -l| grep locales ii locales 2.2.5-11.2 GNU C Library: National Language (locale) da 183
  • 184. © FUOC • 71Z799002MO © Software libre Si no obtenemos la última línea, debemos proceder a instalar el pa- quete y configurarlo: brau:/# apt-get install locales Y si ya disponemos de él, teclearemos la siguiente línea para recon- figurarlo: brau:/# dpkg-reconfigure locales De las muchas opciones que se nos ofrecen, elegimos [*] es ES ISO-8859-1, es decir, nos situamos sobre dicha opción y pulsamos la barra espaciadora. Mediante TAB, nos situamos sobre OK y pul- samos INTRO. En la próxima pantalla seleccionamos C. De vuelta a la línea de comandos, editamos el fichero /etc/environment para dejarlo de la manera siguiente: LC_ALL=es_ES LANGUAGE=en_US LC_TYPE=es_ES LC_MESSAGES=ISO8859-1 LANG=C Lectura complementaria Para hacer efectivo el cambio, basta con teclear el comando locale-gen, Para saber más acerca de y saldremos de todas las sesiones que tengamos abiertas para car- locales, se recomienda visi- gar la nueva configuración. tar la página: http://www.uniulm.de/ s smasch/ locale/. ANOTACIONES 9.5. Configuración de man y su pager Puede que al intentar invocar man nos dé un error del tipo: Reformatting man(1), please wait... sh: /usr/bin/pager: No such file or directory sh: exec: /usr/bin/pager: cannot execute: No such file or directory man: command exited with status 32256: /usr/bin/zsoelim /tmp/zmanZpjojO | /usr/bin/tbl | /usr/bin/nroff -mandoc -Tlatin1 | exec /usr/bin/pager -s 184
  • 185. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © En este caso, no tenemos ningún paginador asignado a /usr/bin/ pager, de modo que man lo pueda utilizar para mostrarnos los contenidos de ayuda. Es más, probablemente no tengamos ningún paginador instalado. En ambos casos, lo que haremos es intentar instalar less, seguramente el paginador más utilizado para man: brau:/# apt-get install less En el caso de que el paquete no esté instalado, se nos abrirá una pantalla de configuración, a la que en principio, contestaremos ne- gativamente, opción por defecto. Con esto ya habremos instalado less, y probablemente ya se haya asignado él mismo como pagi- nador de man. Si no fuera así (lo podríamos probar ejecutando un man man, por ejemplo), o si less ya estuviera instalado, utilizaría- mos el comando siguiente para asignarlo como paginador (también se puede utilizar para cambiar de paginador, por ejemplo, para cambiar a more, jless, o cualquier otro paginador): brau:/# update-alternatives --config pager Lo que hace el comando anterior, en el caso del paginador, y en ge- neral con el resto de aspectos configurables mediante él, es crear en- laces simbólicos. Para el caso del paginador éstos son: /etc/alternatives/pager -> /usr/bin/less /usr/bin/pager -> /etc/alternatives/pager 9.6. El archivo principal de arranque, /etc/inittab ANOTACIONES Aunque el proceso de arranque de un sistema GNU/Linux es com- plejo, en esta sección sólo se pretende trabajar sobre uno de los fi- cheros principales de este proceso: /etc/inittab. Este archivo indica al proceso de arranque, entre otros, a qué runlevel se entra- rá, y definirá qué procesos se arrancarán de forma automática du- rante el proceso de arranque. Para saber en qué runlevel nos hallamos, basta con teclear el comando runlevel. Para cambiar de runlevel, como root, usaremos la instrucción init <runlevel de destino>. 185
  • 186. © FUOC • 71Z799002MO © Software libre Es interesante abrir este fichero e irse familiarizando con su conteni- do, ya que esto nos permitirá comprender mejor el proceso de arran- que de un sistema GNU/Linux. 9.7. Montaje de dispositivos, /etc/fstab /etc/fstab es el fichero que contiene la información acerca de las particiones y dispositivos que se montarán de forma automática durante el proceso de arranque, y las que se pueden montar posteriormente, así como también establece quién puede hacerlo. A continuación, se mues- tra el posible contenido de este fichero y se pasa a analizarlo: # /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> /dev/hdg1 / ext3 errors=remount-ro 0 1 /dev/hdg2 none swap sw 0 0 proc /proc proc defaults 0 0 /dev/fd0 /floppy auto user,noauto 0 0 /dev/hdg5 /usr ext3 defaults 0 2 /dev/hdg6 /var ext3 defaults 0 2 /dev/hdg7 /home ext3 defaults 0 2 /dev/CD-ROM /CD-ROM iso9660 ro,user,noauto 0 0 /dev/hdc1 /mnt/hdc1 ntfs ro,user,noauto,gid=windows,umask=0007,utf8 0 0 /dev/hde1 /mnt/hde1 ntfs ro,user,noauto,gid=windows,umask=0007,utf8 0 0 /dev/hde5 /mnt/hde5 ntfs ro,user,noauto,gid=windows,umask=0007,utf8 0 0 /dev/hde6 /mnt/hde6 vfat utf8,user,noauto 0 0 ANOTACIONES /dev/hde7 /mnt/hde7 vfat utf8,user,noauto 0 0 Las primeras líneas las ha generado automáticamente el proceso de ins- talación y en ellas podemos ver cómo están distribuidos los distintos di- rectorios dentro de la estructura puramente GNU/Linux. Quizás la línea que más llama la atención sea la proc /proc proc defaults 0 0; ésta es la encargada del montaje del directorio virtual proc, del cual ya se habló en el primer taller. 186
  • 187. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Más interesantes son las líneas tipo /dev/hdc1 /mnt/hdc1 ntfs utf8,ro,noauto,user,gid=windows,umask=0007,utf8 0 0. En ellas se especifica el punto de origen y el punto de montaje de par- ticiones pertenecientes al sistema operativo Windows2000TM, es decir, de tipo ntfs. En estas particiones no se puede escribir desde GNU/Linux, aunque sí que se puede leer su contenido, esto se ve reflejado en las op- ciones ro,noauto,user,gid=windows,umask=0007,utf8 (es fundamental no dejar ningún espacio en blanco entre opciones, ya que este carácter es el que se utiliza para separar los campos en este fichero). La primera indica que se trata de una partición de sólo lec- tura; la segunda, que no se monte automáticamente durante el pro- ceso de arranque del sistema; la tercera indica que esta partición la puede montar cualquier usuario; la cuarta opción indica que sólo po- drán acceder a ella los miembros pertenecientes al grupo Windows (definido en el fichero /etc/group); la penúltima opción establece la antimáscara de montaje y la última, la tabla de códigos a utilizar. Hay que tener presente que por defecto el kernel que hemos instala- do no soporta el tipo ntfs. Por tanto, hay que cargar el módulo co- rrespondiente mediante el comando modconf y seleccionar la opcion kernel/fs/ntfs. Las últimas líneas del fichero anterior van destinadas a montar par- ticiones fat32, sobre las cuales sí que es posible escribir desde GNU/ Linux. Por esta razón es buena idea disponer siempre de una peque- ña partición con este tipo de formato, ya que será accesible tanto desde GNU/Linux, como desde WindowsTM . Si bien es cierto que es posible montar un sistema de ficheros desde la línea de comandos, como por ejemplo se haría para montar el CD-ROM, ANOTACIONES brau:/etc/apt# mount /dev/CD-ROM /CD-ROM -t iso9660 ro es mucho más cómodo tener la información introducida en el archivo / etc/fstab, ya que esto nos permitirá hacer lo mismo tecleando tan sólo: brau:/etc/apt# mount /CD-ROM 187
  • 188. © FUOC • 71Z799002MO © Software libre 9.8. Configuración de dispositivos Una vez sentadas las bases para la administración de paquetes, po- demos abordar la tarea de empezar a configurar el sistema a la me- dida de nuestras necesidades. Este proceso consta, básicamente, de dos partes: configuración de los distintos dispositivos de hardware que tengamos instalados en el ordenador, e instalación del software que vamos a utilizar. La configuración del hardware del sistema suele ser la parte que cuesta más esfuerzo en general, ya que en cada ordenador encon- traremos dispositivos distintos, y por tanto cada ordenador será un mundo. Por lo general, en los sistemas GNU/Linux se puede confi- gurar cualquier dispositivo, por raro que éste sea, aunque en función de su grado de estandarización, esto será más o menos complicado. Pero también es cierto que durante este proceso es cuando más se aprende, ya que, por lo general, configurar un dispositivo implicará siempre ciertas tareas previas, como informarnos exactamente sobre qué tipo de dispositivo es del que disponemos, leer documentación acerca de cómo este tipo de dispositivos se integran en los sistemas GNU/Linux, cómo se hace esta integración para nuestro dispositivo en particular, etc. Dado que no todos los fabricantes de hardware dan soporte a los sis- temas GNU/Linux, y los hay que ni siquiera facilitan la información necesaria para que los desarrolladores de la comunidad puedan es- cribir el código necesario para poder integrar estos dispositivos al sis- tema operativo, se recomienda siempre que a la hora de adquirir hardware nuevo, nos informemos sobre cuál es exactamente el pro- ducto que deseamos adquirir (información en general mucho más precisa de la que suelen facilitar los proveedores de hardware, y de ANOTACIONES la cual, a veces, ni disponen), si éste está plenamente soportado, de qué información disponemos para integrar el nuevo producto en nuestro sistema, etc. Los aspectos generales que hay que considerar, a la hora de realizar una nueva adquisición, son a grandes rasgos: el grado de estandarización y calidad del producto. Por lo que a la estandarización se refiere, cuanto más estándar sea el producto, se- guro que más usuarios disponen de él y, por tanto, se hace mucho más probable que esté plenamente soportado. En cuanto a calidad del producto, hace ya algunos años que fabricantes de hardware, 188
  • 189. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © para reducir costes, empezaron a sustituir funciones que inicialmente se implementaban vía hardware por soluciones software (siendo el caso más comúnmente conocido de esta práctica, quizás, la de los módems conocidos como winmódems). Esto se traduce, por una par- te, en una bajada de rendimiento del sistema, ya que presupone car- gar a la CPU con nuevas tareas, para muchas de las cuales ni siquiera ha sido diseñada y, por otra, la necesidad de disponer del software que suplante al hardware eliminado, y que, por lo general, sólo está desarrollado para cierto tipo de sistemas operativos; por esta razón, se recomienda en general rehuir de cualquier producto que se distinga por ser diseñado para un sistema operativo determi- nado. A lo largo de cada subsección de configuración se irán comentando algunos aspectos sobre los distintos dispositivos que nos podemos encontrar, y qué problemas llevan implícitos. Antes de empezar a configurar los distintos dispositivos de nuestro sistema, recordaremos algunas estrategias que nos pueden ser de utilidad para este fin. En primer lugar, mediante el comando lspci podemos obtener mucha información acerca de cómo estos disposi- tivos han sido reconocidos por el sistema durante el proceso de arranque. Si esta información no nos es suficiente, siempre podemos recurrir al directorio virtual /proc/, donde queda registrada toda la información acerca del hardware del sistema, entre otras. También pueden ser de utilidad los ficheros de log, ubicados en /var/log/ (una práctica interesante para ver cómo evoluciona temporalmente el contenido de estos ficheros es utilizar el comando tail con el pa- rámetro “-f” y redireccionar su salida a una tty que no estemos usando; a modo de ejemplo “tail -f /var/log/messages > / dev/tty10”). ANOTACIONES 9.8.1. Configuración del ratón Al igual que se ha hecho en el taller de KNOPPIX, el deamon que se encargará de gestionar el ratón será gpm. Procedamos pues a ins- talar el paquete: brau:/etc/apt# apt-get install gpm 189
  • 190. © FUOC • 71Z799002MO © Software libre Al finalizar la instalación, se arranca automáticamente un script para asistirnos en la configuración del ratón, los parámetros que debemos pasarle son esencialmente los mismos que le pasamos en su mo- mento en el taller de KNOPPIX, pero si algo fallase, siempre pode- mos volver a lanzar el programa de configuración mediante el comando gpmconfig (por lo general la configuración “-m /dev/ psaux -t ps2” debería ser válida para la mayoría de mice de tres botones PS2). La configuración que utilizará gpm cada vez que arranque se guarda en /etc/gpm.conf. Se recomienda que el ratón tenga tres botones, ya que se acostum- bra a asignar funciones a los tres, en especial en los entornos gráfi- cos. Por esta razón, si disponemos de un ratón de tan sólo dos botones, deberemos emular el tercero pulsando los dos a la vez. Arranque y parada de gpm Como ya se ha dicho, el programa encargado de gestionar el fun- cionamiento del ratón es un deamon. Por ello, tanto para lanzarlo como para detenerlo procederemos de la misma manera que se hace con cualquier deamon. Esta subsección servirá de ejemplo para mostrar cómo se arrancan y se paran los deamons. Tanto el arranque como la parada de un deamon se hace mediante un script residente en /etc/init.d/. Por lo general, si se invoca este script sin ningún parámetro, él mismo nos mostrará una línea de ayuda para orientarnos en su uso. Procedamos pues a parar el dea- mon gpm: brau:/etc/init.d# ./gpm stop Stopping mouse interface server: gpm ANOTACIONES Mediante “ps aux” podemos comprobar que, efectivamente, no hay ningún proceso corriendo llamado gpm, y además podemos ver que si movemos el ratón, no se muestra nada por pantalla. Ahora procedamos a arrancarlo: brau:/etc/init.d# ./gpm stop Starting mouse interface server: gpm 190
  • 191. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Movamos el ratón y observemos cómo en pantalla aparece su pun- tero. Ahora procedamos a analizar si al arrancar el ordenador este deamon se arrancará automáticamente. El fichero /etc/inittab nos indica en qué runlevel se arrancará el sistema operativo: por de- fecto, el 2; por lo tanto, en dicho archivo deberíamos encontrar una línea como la que sigue: # The default runlevel. id:2:initdefault: Comprobemos pues si en el directorio /etc/rc2.d/ existe un en- lace simbólico a /etc/init.d/gpm: brau:/etc/init.d# ls -l ../rc2.d/ | grep gpm lrwxrwxrwx 1 root root 13 feb 21 13:03 S20gpm -> ../init.d/gpm Si este enlace simbólico no existiera, y deseáramos que gpm se arrancase automáticamente durante el proceso de arranque, debe- ríamos crearlo manualmente mediante “ls -s”. Si por el contrario el enlace existiera y no deseáramos que gpm se arrancara, durante el proceso de arranque bastaría con borrar este enlace simbólico; no obstante, no es recomendable borrar los scripts de /etc/init.d, ya que son muy útiles de cara a arrancar y detener deamons. 9.8.2. Configuración de módems Al igual que el resto de hardware, los módems se pueden configurar de modo totalmente manual, pero esta práctica, en general, ha pa- sado a formar parte del pasado, ya que con el tiempo se han ido de- sarrollando herramientas suficientemente potentes y fiables que nos pueden ayudar a ahorrarnos la tediosa tarea de configurar un mó- ANOTACIONES dem manualmente. Una de estas herramientas es pppconfig, que es la que se propone en este texto para configurar nuestro módem. Pero antes de empezar con la configuración de nuestro módem, hay que poner de manifiesto que no son realmente módems todos los dispositivos que se anuncian o se venden como tales. Como ya se ha dicho, muchos fabricantes, con el objetivo de reducir costes, han ido sustituyendo componentes físicos por software, siendo probablemen- 191
  • 192. © FUOC • 71Z799002MO © Software libre te los módems los primeros dispositivos que históricamente fueron víctimas de estas prácticas. Hay que prestar especial atención a los módems internos, ya que en realidad son pocos los que incorporan todo el hardware propio de estos dispositivos. Éstos son fácilmente reconocibles por la diferencia de precio con respecto a los falsos mó- dems. Por esta razón, muchos de estos dispositivos se han visto redu- cidos a meros esclavos de su software (para más información acerca de estos dispositivos y de su integración en GNU/Linux véase: – http://www.tldp.org/HOWTO/Winmodems-and-Linux-HOWTO.html, – http://www.tldp.org/HOWTO/Linmodem-HOWTO.html, – http://www.idir.net/ gromitkc/winmodem.html). Por esta razón, en general se recomienda utilizar, siempre que sea posible, módems externos. Independientemente de que se disponga de un módem real o no, se recomienda la lectura de http://www.tldp.org/HOWTO/Modem-HOWTO.html. Dado que vamos a utilizar pppconfig para configurar nuestro módem, si no lo instalamos durante el proceso de instalación del sistema (se pue- de probar intentando lanzar la aplicación directamente, es decir, te- cleando pppconfig, o mediante “dpkg -l | grep pppconfig”), lo primero que debemos hacer es instalar la aplicación: brau:˜# apt-get install ppp pppconfig Una vez nos encontramos en la pantalla principal de la interfaz de instalación, seleccionaremos la opción Create Create a con- nection y en la pantalla siguiente introduciremos el nombre con el que nos referiremos a esta configuración, ya que es posible configu- rar y gestionar más de una conexión. ANOTACIONES Después de asignar un nombre a la nueva configuración, debemos configurar el acceso al DNS, podemos escoger la opción por defecto, asignación estática de DNS, o por asignación dinámica de DNS, si sabemos certeramente que nuestro ISP durante el proceso de co- nexión nos facilita las direcciones de los DNS. Si escogemos la op- ción por defecto, se nos pedirá que entremos las IP de los DNS que queremos utilizar, y que se almacenarán en el fichero /etc/ppp/ resolv/nombredeconfiguracion). 192
  • 193. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © En la pantalla siguiente debemos escoger el método de autenticación para establecer la configuración. En general, y salvo casos excepcio- nales, escogeremos la primera opción, PAP. Seguidamente, facilita- remos el nombre de usuario y el password de conexión, y seleccionaremos la velocidad de acceso; la que se propone por de- fecto, 115200, en la mayoría de conexiones debería funcionar sin ningún problema. Tras especificar si nuestra línea telefónica va por pulsos o por tonos (actualmente, la mayoría ya van por tonos), en- traremos el número que se debe marcar y que nos tiene que haber facilitado nuestro ISP. Llegados a este punto, pppconfig nos propone la ejecución de autode- tección del módem. Con el módem en marcha podemos dejar que sea el mismo programa el que detecte a qué puerto está conectado el mó- dem, o lo podemos hacer nosotros manualmente (recordando siempre la correspondencia: primer puerto serie, COM1, /dev/ttyS0, segun- do puerto serie, COM2, /dev/ttyS1, etc). Una vez hayamos entrado la ttyS a la que está conectado el módem, accederemos a una pantalla de resumen de los datos que hemos en- trado, la cual también nos ofrece la posibilidad de establecer opcio- nes avanzadas (por lo general, no necesarias). Si los datos son correctos, podemos escoger la opción Finished Write files and return to main menu, y tras confirmar la operación, de re- torno al menú principal de la interfaz, si no queremos configurar ninguna otra conexión, escogeremos la opción Quit Exit this utility para volver a la línea de comandos. Una vez en la línea de comandos, podemos comprobar que los datos se han guardado correctamente en /etc/ppp/peers/nombredeconfiguración. Para los usuarios de conexiones PPP también puede ser interesante ANOTACIONES instalar el paquete pppstatus para monitorizar el tráfico de la co- nexión, entre otros. Establecimiento y finalización de conexión: pon, poff Para establecer la conexión, bastará con teclear la instrucción pon seguido del nombre de conexión que queramos utilizar; si sólo he- mos configurado una conexión, no será necesario especificar su 193
  • 194. © FUOC • 71Z799002MO © Software libre nombre. En principio, si no se restringe el uso, pon puede ser ejecu- tado por cualquier usuario. Para finalizar la conexión bastará con ejecutar el comando poff. 9.8.3. Configuración de módems DSL De la misma manera que se ha hecho en la sección anterior para la configuración de módems tradicionales, utilizaremos una herra- mienta para configurar los módems DSL: pp-poeconf. Pero antes de empezar se recomienda la lectura de http://www.tldp.org/HOWTO/ DSL-HOWTO/ y de http://www.tldp.org/HOWTO/ADSL-Bandwidth- Management-HOWTO/. 9.8.4. Configuración de tarjetas de red Si por el motivo que sea no hemos configurado la tarjeta de red du- rante el proceso de instalación, ahora es el momento de hacerlo. Aunque prácticamente todas las tarjetas de red están soportadas en los sistemas GNU/Linux, ya que éstas son una pieza clave para un sistema operativo orientado a redes, una vez más se recomienda el uso de hardware lo más estándar posible para no tener complicacio- nes a la hora de configurarla. Puede que nuestra tarjeta venga so- portada de dos formas distintas: la primera es que su driver haya sido directamente compilado dentro del propio kernel, y la segunda, es que el driver haya sido compilado en forma modular, para que se cargue posteriormente. La forma más sencilla de saber si el driver de nuestra tarjeta de red ha sido compilado dentro del propio kernel es analizando el mensaje de retorno de dmesg tal y como se ha hecho en 5.4.3. ANOTACIONES La configuración completa del flavor bf24 se puede encontrar en ftp://ftp.debian.org/debian/dists/woody/main/disks-i386/current bf2.4/kernel-config entre otros. Si después de analizarse detalladamente la salida del comando dmesg llegamos a la conclusión de que el driver para nuestra tarjeta no ha sido cargado, podemos ejecutar el comando modconf, que sirve para cargar módulos al kernel que han sido compilados junto 194
  • 195. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © a él, y comprobar si el driver para ésta aparece en la subsección kernel/drivers/net. Si es así, bastará con seleccionarlo para cargarlo en el kernel. Si nuestra tarjeta de red no está soportada por defecto, deberemos recurrir a la recompilación del kernel. Una vez hecho esto, editaremos el fichero /etc/network/interfaces para pasar los parámetros correspondientes a nuestra red a la tarje- ta. Una posible configuración sería: # /etc/network/interfaces -configuration file for ifup(8), ifdown(8) # The loopback interface auto lo iface lo inet loopback # The first network card this entry was created during the Debian installation # (network, broadcast and gateway are optional) auto eth0 iface eth0 inet static address 158.109.69.132 netmask 255.255.0.0 network 158.109.0.0 broadcast 158.109.255.255 gateway 158.109.0.3 Se recomienda la lectura de http://www.tldp.org/HOWTO/Networking- Overview-HOWTO.html, también http://www.fokus.gmd.de/linux/ HOWTO/Net-HOWTO/ y el man de interfaces. Si no disponemos de tarjeta de red y quisiéramos hacer pruebas, siempre podemos recu- ANOTACIONES rrir al módulo dummy; en este caso, el dispositivo en vez de llamarse eth0 se llamaría dummy0. Si se quiere configurar más de una tarjeta de red en el mismo orde- nador (práctica muy habitual en gateways, entre otros), es necesario pasar los parámetros correspondientes al kernel durante el proceso de arranque (utilizando append en Lilo, por ejemplo) para evitar conflictos entre dispositivos. 195
  • 196. © FUOC • 71Z799002MO © Software libre Arranque y parada de servicios de red: ifup, ifgdown La reinicialización de todos los servicios de red (los de /etc/net- work/interfaces) se puede hacer mediante el script /etc/ init.d/networking con el parámetro restart. ifup se utiliza para arrancar los servicios de red de una interfaz de- terminada, e ifdown para pararlos. Así pues, para la configuración anterior, si quisiéramos detener y volver a arrancar los servicios de eth0, lo que haríamos es lo siguiente (se utiliza el comando ifcon- fig para comprobar los resultados): brau:˜# ifconfig eth0 Link encap:Ethernet HWaddr 00:01:02:B4:3A:61 inet addr:158.109.69.132 Bcast:158.109.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:36409683 errors:0 dropped:0 overruns:221 frame:0 TX packets:35938 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:1489273710 (1.3 GiB) TX bytes:20116974 (19.1 MiB) Interrupt:5 Base address:0x9400 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:823 errors:0 dropped:0 overruns:0 frame:0 TX packets:823 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3169619 (3.0 MiB) TX bytes:3169619 (3.0 MiB) brau:˜# ifdown eth0 ANOTACIONES brau:˜# ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:823 errors:0 dropped:0 overruns:0 frame:0 TX packets:823 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3169619 (3.0 MiB) TX bytes:3169619 (3.0 MiB) 196
  • 197. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © brau:˜# ifup eth0 brau:˜# ifconfig eth0 Link encap:Ethernet HWaddr 00:01:02:B4:3A:61 inet addr:158.109.69.132 Bcast:158.109.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:36420981 errors:0 dropped:0 overruns:221 frame:0 TX packets:35965 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:1490867554 (1.3 GiB) TX bytes:20118868 (19.1 MiB) Interrupt:5 Base address:0x9400 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:823 errors:0 dropped:0 overruns:0 frame:0 TX packets:823 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3169619 (3.0 MiB) TX bytes:3169619 (3.0 MiB) 9.8.5. Configuración de impresoras Tener configurada la impresora puede ser de gran utilidad, ya que esto nos permitirá, entre otras cosas, imprimir los ficheros de man, los de configuración, etc. para poderlos estudiar más detenidamente sobre formato papel. Por lo que se refiere al tipo de impresora preferible, en un entorno doméstico sería una que usara el puerto paralelo (/dev/lpX, nor- malmente /dev/lp0) con el objetivo de garantizar que se trata de una impresora no dependiente de su software, ya que la mayoría de las nuevas que están apareciendo en el mercado, especialmente ANOTACIONES las de puerto USB, son impresoras generalmente diseñadas para un sistema operativo determinado. Estas impresoras son popular- mente conocidas como winprinters (y su génesis es parecida a la de los denominados winmodems). En un entorno profesional, lo ópti- mo sería contar con una impresora que incorporara su propia in- terfaz de red y que, por lo tanto, fuera un nodo más de ésta. Para más información acerca de impresoras y su integración en los sis- temas operativos GNU/Linux, se recomienda visitar la página http://www.linuxprinting.org, donde encontraremos un 197
  • 198. © FUOC • 71Z799002MO © Software libre listado exhaustivo de las impresoras existentes en el mercado, y su grado de soporte. La topología general del sistema de impresión bajo GNU/Linux es la de cliente-servidor. El servidor, lpd (en el sistema BSD), es tipo da- emon, y en consecuencia lo manipularemos como tal. El archivo de configuración del servidor es /etc/printcap. En él podemos con- figurar tantas impresoras como deseemos. Ante la presencia de más de una impresora configurada, los clientes usan, normalmente, el parámetro “-p” seguido del nombre de la impresora, para referirse a ésta. Como hemos visto, configurar correctamente una impresora puede ser un tanto difícil. Por esta razón, han aparecido diversos proyectos para desarrollar interfaces que harán más amena su configuración, algunos de los cuales aportan su propio servidor de impresión y sus propias herramientas cliente. Impresión de ficheros de texto Los formateadores son programas que se utilizan, principalmente, para transcribir ficheros en formato texto a formato PostScript (el len- guaje PostScrip históricamente ha tenido más implementación en el campo de la impresión). Estos programas nos pueden ser de utilidad, ya que nos permiten pasar a formato papel la ayuda de los coman- dos, ficheros de configuración, etc. para poderlos estudiar de una forma más cómoda. Entre éstos encontramos mpager (dentro del paquete con el mismo nombre), o enscrip (también empaquetado con este mismo nombre, y más potente que el anterior). A continua- ción, se detallan un par de líneas para ejemplificar su uso: man man | mpage -2 -o |lpr ANOTACIONES Mediante esta línea redireccionamos la salida de man de man a mpage, que le da formato a dos columnas por hoja, sin márgenes, y redireccionamos su salida al cliente de impresión lpr: endscript /etc/fstab -B -fTimes-Roman7 -r Con esta línea haremos que se imprima el contenido del fichero / etc/fstab sin cabecera, utilizando el tipo de carácter Times-Ro- man de tamaño 7 y de forma apaisada. 198
  • 199. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © 9.8.6. Configuración de tarjetas de sonido Debido a la gran cantidad de tarjetas de sonido existentes en el mer- cado, se hace casi imposible dar una descripción de cómo configu- rarlas todas. Se recomienda la lectura de http://www.tldp.org/ HOWTO/Sound-HOWTO/ y la visita a las páginas de los dos pro- yectos más destacados en cuanto a sonido bajo GNU/Linux se refie- re: http://www.opensound.com/ y http://www.alsa-project.org/. A continuación se expondrá el modo de proceder para configurar una tarjeta de sonido bastante común: SoundBlasterPCI (chipset ES1371). Para este tipo de tarjeta, el comando lspci nos devolverá una línea como la siguiente: 00:0d.0 Multimedia audio controller: Ensoniq 5880 AudioPCI (rev 02) En primer lugar, cargaremos el módulo correspondiente a esta tar- jeta de sonido mediante el comando modconf, kernel/drivers/ sound, es1371. Seguidamente, crearemos el grupo audio en /etc/group e inclui- remos en él a todos los usuarios que deseamos que tengan acceso al dispositivo de sonido (si deseamos que todos los usuarios tengan ac- ceso a él, podemos obviar este paso, y dar todos los permisos a los ficheros /dev/dsp y /dev/mixer); a continuación asociaremos los ficheros /dev/dsp y /dev/mixer al nuevo grupo creado. Con esto ya tenemos configurada la tarjeta de sonido. Ahora podemos comprobarlo direccionando un fichero de audio directamente a /dev/ dsp, como sugiere http://www.tldp.org/HOWTO/Sound-HOWTO/ o esperar a tener el entorno gráfico configurado para poder instalar ANOTACIONES aplicaciones de audio que corren sobre él. 9.9. Conclusión En este taller hemos aprendido a trabajar con el sistema de paquetes de Debian, hecho fundamental, ya que esto nos ha permitido apren- der a instalar, desinstalar y a gestionar aplicaciones. También hemos 199
  • 200. © FUOC • 71Z799002MO © Software libre aprendido a configurar distintos dispositivos de hardware, y con ello una cosa básica: que con GNU/Linux esto no es tan sencillo como en otros sistemas operativos, ya que requiere, por lo general, tener un conocimiento más profundo tanto del propio dispositivo como del sistema en sí. Pero en compensación podemos asegurar que, una vez configurado un dispositivo, éste funcionará perfectamente y no deberemos preocuparnos más de él. Y todo ello teniendo en mente que aún no hemos configurado el entorno gráfico (probablemente una de las misiones más complicadas en un entorno GNU/Linux). No obstante, y para animar a los que a estas alturas puedan pensar que adentrarse en el mundo GNU/Linux ha sido una mala idea, una misión fallida y una pérdida de tiempo, nos gustaría citar un párrafo del libro Debian GNU/Linux 2.1 de Mario Camou, John Goerzen y Aaron Van CouWenberghe, parte I, capítulo 1, Why Linux Is Better: “Windows NT, however, learned to speak the language of the Internet just a few years ago. It is not refined by any stretch imagination, but plagued with bugs and inconsistences. Bussinesses need a solution that they can put online and expect to remain available 100% of the time, but Windows NT cannot meet this need. On the contrary, a Win- dows NT administrator’s most common job is crash recovery; he was- tes too much time doing busywork, such as booting servers that have gone down[...]” Aaron Van CouWenberghe ANOTACIONES 200
  • 201. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © 10. Arquitectura X-Window 10.1. ¿Qué es X-Window? X-window es una arquitectura de ventanas diseñada a mediados de Contenido los ochenta para poder disponer de un entorno gráfico en estaciones complementario de trabajo. A diferencia de otros entornos de ventanas, la arquitec- Una arquitectura de venta- tura X-Window se diseñó para ser independiente de plataforma, de nas (o sistema de ventanas) es un entorno gráfico que manera que se pudiera instalar en cualquier ordenador que corriera nos proporciona la posibili- un sistema tipo UNIX. Aunque la arquitectura de ventanas X-Window dad de tener diferentes apli- ha tenido una dilatada historia en la que se han utilizado diferentes caciones localizadas en diferentes regiones de la tipos de licencias, varias implementaciones y muchos equipos de de- pantalla, generalmente de- sarrollo diferentes, actualmente se utiliza, mayoritariamente, la im- limitadas por algún tipo de ventana. Estos entornos plementación que ha desarrollado el proyecto XFree86 Inc, llamada suelen proporcionar meca- XFree86. Esta implementación se distribuye con licencia open sour- nismos para el desplaza- miento y manipulación de ce, que aunque no es exactamente igual que la GPL o sus variantes, estas ventanas de forma tiene características parecidas que permiten acceder a su código que el trabajo pueda ser fuente, su redistribución, etc. Por este motivo, en la mayoría de dis- más interactivo y ameno. tribuciones de GNU/Linux (y cada vez más en otros sistemas opera- tivos -como Mac OS X-) se incorpora esta implementación de X- Window. X-Window está diseñado con una arquitectura cliente/servidor. Este tipo de arquitectura significa que el software está estructurado en dos partes totalmente independientes (cliente y servidor) que se comuni- can a partir de un enlace de comunicación. Aunque esto implica que el diseño y la codificación es un poco más compleja, esta arquitectu- ANOTACIONES ra proporciona una flexibilidad total en el sentido que cliente y servi- dor pueden estar ubicados en diferentes sitios y utilizando diferentes plataformas y/o sistemas operativos. Además, podemos aprovechar muchísimo más un mismo cliente, ya que éste podrá dar servicio a más de un servidor a la vez. De esta forma, los ordenadores servido- res pueden trabajar con un entorno gráfico y los recursos del cliente. Naturalmente, esta arquitectura también nos permite trabajar con X- Window de forma local en la máquina donde está situado el cliente, aunque no es indispensable. 201
  • 202. © FUOC • 71Z799002MO © Software libre Los componentes de los que está compuesto X-Window son: cliente, servidor y enlace de comunicación. Cliente y servidor están diseña- dos para ser independientes de plataforma y, en el caso del enlace de comunicación, para ser independiente del protocolo de red. De este modo, podemos utilizar X-Window en cualquier tipo de es- cenario; por ejemplo, podríamos tener el servidor instalado en un ordenador con WindowsTM, conectándose a un cliente con GNU/ Linux y utilizar como canal de comunicación Internet (protocolo IPv4). Aunque la configuración de cada uno de estos componentes (sobre todo el cliente) sí que depende, en cierto modo, de la plata- forma donde está instalado, el enlace de comunicación nos permite aislar los componentes, dándoles un lenguaje propio para su en- tendimiento. Este enlace utiliza un protocolo propio denominado XDMCP (X Dis- play Manager Control Protocol), que está en un nivel superior al de la red de comunicación utilizada (por eso es independiente de red). En esta arquitectura, el servidor está ideado para recoger los eventos que se producen por los dispositivos de entrada como el teclado, el ratón, etc. y enviarlos al cliente. El cliente procesa estos eventos y responde al cliente, que muestra los resultados en los ANOTACIONES dispositivos de salida (generalmente el monitor). Aunque la pri- mera impresión que puede sugerirnos este diseño es que el tiem- po de respuesta debe ser muy lento, el protocolo XDMCP está especialmente diseñado para proporcionar un enlace rápido en- tre cliente y servidor, de forma que se pueda trabajar realmente de forma interactiva. En los únicos escenarios en que podemos notar este inconveniente es en conexiones remotas utilizando re- des de comunicaciones lentas. 202
  • 203. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © En resumen, pues, las principales características y funciones de cada uno de los componentes de X-Window son las siguientes: Gestión de diferentes servidores simultáneamente Cliente Dependiente de plataforma Procesamiento de las aplicaciones Control del display del usuario Servidor Independiente de plataforma Procesamiento de los dispositivos de entrada Diseñado para poder trabajar interactivamente Enlace Pensado para minimizar el tráfico en la red Transparente (independiente de red) A medida que las tarjetas gráficas han ido evolucionando, cada vez más aplicaciones y juegos necesitan de un procesamiento en 2D o 3D más rápido. Si bien la arquitectura de ventanas X-Window aporta muchas ventajas, cuando queremos utilizar este tipo de aplicaciones el diseño cliente/servidor no es el más adecuado, ya que no aprovechamos las funciones de procesamiento 2D y 3D extremadamente rápido de las tar- jetas gráficas instaladas en el servidor. Para solucionar este problema, a partir de 1998 apareció una tecnología llamada DRI (Direct Rendering Infrastructure), que permite aprovechar los chips de procesamiento de las tarjetas para ahorrar trabajo al cliente X-Window. De esta forma, continuamos teniendo todas las ventajas de X-Window aprovechando los elementos específicos de las tarjetas gráficas. A diferencia de otros sistemas operativos donde el entorno gráfico está Contenido íntimamente integrado con el resto de funciones, la arquitectura X-Win- complementario dow es totalmente independiente del operativo y no nos limita a ningún El look and feel es el diseño GUI (Grafic User Interface) determinado. De hecho, la arquitectura sólo utilizado para los botones, nos proporciona herramientas gráficas de bajo nivel para manipular la barras de desplazamiento, menús, etc. de un entorno salida del monitor. Estas herramientas están incluidas en la librería Xlib gráfico o una aplicación. y principalmente son funciones para crear y manipular ventanas, ope- ANOTACIONES raciones con fuentes de caracteres, detección de eventos de usuario y operaciones gráficas. Con estas funciones podemos dotar a nuestras aplicaciones del look and feel que queramos, crear nuevos GUI, . . . De hecho, esto supuso un trabajo adicional para los primeros desarrollado- res de aplicaciones en Xwindow, ya que además de programar la apli- cación tenían que desarrollar sus propias librerías para la creación de menús, iconos, etc. A medida que X-Window fue creciendo, fueron apa- reciendo lo que llamamos toolkits, que son librerías generalmente im- plementadas con Xlib y que proporcionan un GUI particular. De esta 203
  • 204. © FUOC • 71Z799002MO © Software libre manera, al diseñar una aplicación podemos utilizar alguno de estos toolkits que ya proporcionan las herramientas estándar para crear me- nús, botones, gestionar los cut and paste, . . . y centrarnos en programar la aplicación en sí. El no marcar ningún look and feel ha sido otra de las claves del éxito de la arquitectura X-Window, ya que cada fabricante o desarrollador de software ha podido diseñarse uno propio, marcando la diferencia con los demás. Aunque existen muchos toolkits diferentes, en la siguiente figura po- demos ver algunos de los más populares que se han utilizado a lo largo de la historia de X-Window: El window manager es un servidor especial de X-Window que se en- carga de gestionar todas las ventanas, los escritorios, las pantallas virtuales, etc. Naturalmente, todas las aplicaciones pueden funcionar con cualquier window manager, ya que éste sólo se encarga de ges- tionar la ventana donde está ubicado el programa. Aunque la pro- ANOTACIONES gramación de un window manager es muy diferente que la de una aplicación, también se suelen utilizar toolkits particulares que pro- porcionan un look and feel determinado. Actualmente existen dece- nas de window managers diferentes (wmaker, sawmill, olvwm, . . . ), siendo el mismo usuario quien puede elegir el que más le guste. Otro tipo de software muy relacionado con X-Window es el que se en- carga de proporcionar un entorno integrado para las aplicaciones, el escritorio, las herramientas de administración del sistema, etc. Los más 204
  • 205. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © populares que existen actualmente son el KDE (the K Desktop Environ- ment) y el GNOME (GNU Object Model Environment ). Los dos propor- cionan un toolkit particular, un entorno de escritorio con muchísimas funcionalidades y configuraciones diferentes y una lista de aplicaciones integradas que cada vez va creciendo más. La mayoría de distribuciones de GNU/Linux y UNIX proporcionan alguno de estos dos entornos de escritorio por ser muy amigables y proporcionar herramientas y software propio de gran calidad que ayudan en gran medida al usuario para configurar el sistema y el mismo escritorio. Los dos pueden funcionar con cualquier window manager que cumpla con una serie de caracterís- ticas básicas. En la siguiente figura podemos ver el aspecto de los dos: ANOTACIONES 205
  • 206. © FUOC • 71Z799002MO © Software libre Finalmente, otro tipo de aplicación que se utiliza en X-Window es el session manager, que son una serie de programas que permiten guardar la configuración de una determinada sesión de usuario para que al arrancar de nuevo X-Window se carguen las aplicaciones que tenga configuradas. Generalmente, en los entornos integrados ya se incorporan estas herramientas de forma automática; si no, podemos recurrir al que la misma infraestructura de X-Window proporciona: el xsm. Actividades 14. Leer la historia de X-Window en el artículo: http://www.linux-mag.com/2001-12/xfree86 01.html 15. Ver algunos de los window manager y entornos de escritorio existentes en: http://www.xwinman.org 10.2. Configuración Actualmente, las versiones de la implementación XFree86 que más se utilizan son las 4.X, cuya configuración veremos en esta sección. Si bien la mayoría de tarjetas gráficas del mercado ya es- tán soportadas, es posible que desde el momento de aparición en el mercado de una nueva tarjeta hasta que se da soporte en X- Window pasen unas semanas o unos pocos meses. De todos mo- dos, cada vez más los mismos fabricantes están dando soporte a GNU/Linux y, en algunos casos ya están proporcionando sus pro- pios drivers para este sistema operativo. Aun así, antes de com- prar una nueva tarjeta gráfica, siempre es recomendable comprobar si está disponible algún tipo de driver para la distribu- ción que estemos utilizando. ANOTACIONES Para instalar XFree86 en nuestro ordenador lo primero que deberemos Contenido complementario hacer es bajarnos los paquetes que contienen las herramientas básicas y el software para el cliente y el servidor. Generalmente, estos paquetes Algunos programas típicos de configuración de X-Win- se suelen denominar xfree86-common, xfree86server, etc. y dow son el xf86config o llevan implícitos varias dependencias de fuentes y algunas utilidades el XF86Setup. básicas para el manejo de X-Window. Una vez instalados estos pa- quetes, debemos configurar adecuadamente los dispositivos de los 206
  • 207. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © que disponemos para poder arrancar correctamente el cliente y servidor X-Window. Según la distribución que utilicemos, se hace uso de uno u otro programa o, en algunos casos, con la misma instalación de los paquetes ya se lanza una pequeña aplicación de configuración. No obstante, esta configuración siempre debe contener unos determinados pasos, que detallamos a continua- ción clasificados según el dispositivo que hay que configurar: 1) Tarjeta gráfica • Driver: las diferentes familias de tarjetas gráficas llevan unos mi- croprocesadores específicos y utilizan unas funciones determina- das para realizar sus operaciones. Por esta razón, debemos indicar el driver adecuado para nuestra tarjeta. Si no lo sabemos, podemos instalar algún tipo de aplicación para la detección de hardware automático; si utilizamos, por ejemplo, el discover, podemos saber qué driver necesita nuestra tarjeta con el coman- do “discover --xdriver video”. • Identificador: el identificador de la tarjeta puede ser cualquier nombre con el que queremos referirnos a nuestra tarjeta. Este identificador es utilizado internamente para poder referenciar adecuadamente las tarjetas que tenemos instaladas en el sis- tema. • Cantidad de memoria: según la cantidad de memoria de la tar- jeta, podremos inicializar los gráficos con más o menos resolu- ción y con profundidades de color más o menos elevadas. Aunque no es imprescindible indicar esta cantidad (el sistema lo detecta automáticamente) sí que es recomendable especificarla en la configuración. ANOTACIONES • Utilización del framebuffer del núcleo: el frambuffer del núcleo es un driver especial de Linux que permite realizar algunas ope- raciones sobre X-Window. Aunque su utilización no es obligato- ria, generalmente se utiliza para que el servidor de X-Window se pueda comunicar directamente con el núcleo del sistema. De to- dos modos, si nos diera algún problema, siempre podemos des- activarla. 207
  • 208. © FUOC • 71Z799002MO © Software libre 2) Teclado • Regla XKB: para que el servidor de X-Window pueda manejar co- rrectamente el teclado, necesita saber qué reglas aplicar sobre él. Para la mayoría de teclados estándar de los PC, se utiliza la regla “xfree86” y para las estaciones de trabajo Sun, se suele utilizar la regla “sun”. • Modelo de teclado: el modelo de teclado generalmente se suele identificar a partir del número de teclas que tiene. Los teclados de los PC estándar que tienen las teclas de menú y logo suelen tener 104 teclas (los identificamos con el nombre “pc104”). Los tecla- dos que no llevan estas teclas se identifican como de 101 teclas (“pc101”). • Keyboard layout: en esta sección debemos identificar el país del teclado con su referencia ISO 3166. En el caso de España es “es”, para Francia “fr”, etc. • Keyboard options: opción para personalizar algunas de las teclas del teclado. 3) Ratón • Puerto: el puerto del ratón es la conexión que utiliza para comu- nicarse con el ordenador. Cuando compramos el ratón, siempre se indica si es de tipo PS/2, serie, etc. En el caso de que sea de tipo PS/2, el puerto será /dev/psaux, para los ratones serie el puerto será /dev/ttyS0 (COM1), /dev/ttyS1 (COM2) y consecutivamente. ANOTACIONES • Tipo: para especificar el tipo del ratón, se suele proporcionar una lista de la que debemos escoger el que más se ajuste a nuestro modelo y fabricante. Generalmente, sabiendo el modelo del ra- tón ya podremos escoger adecuadamente la opción que le co- rresponde. • Emulación de 3 botones: en el caso de que nuestro ratón sólo ten- ga 2 botones, se proporciona la posibilidad de emular el tercero 208
  • 209. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © (el del medio) apretando los dos simultáneamente. Si nuestro ra- tón no tiene el botón del centro, es recomendable activar esta op- ción porque algunos programas de X-Window necesitan que el ratón tenga los 3 botones. 4) Monitor • Identificador: igual que en el caso de la tarjeta gráfica, la identi- ficación del monitor sirve para que el sistema lo pueda referenciar internamente. Le podemos poner el nombre que queramos. • Monitor tipo LCD: en la mayoría de procesos de configuración se nos preguntará si nuestro monitor es de tipo LCD (pantalla TFT). Es importante responder correctamente a esta pregunta porque el manejo de un tipo u otro de monitor varía considerablemente. • Características: en la configuración de características se pregun- tará las resoluciones máximas que puede obtener nuestro moni- tor, la frecuencia de refresco, etc. Aunque según el programa utilizado para configurar X-Window se plantearán más o menos preguntas de este estilo, es importante tener a mano la informa- ción del monitor y contestar adecuadamente para poder aprove- char al máximo las características del mismo. • Resoluciones disponibles: en este paso debemos señalar qué re- soluciones queremos poder mostrar en nuestro monitor cuando iniciemos X-Window. También es habitual que se nos pregunte la profundidad de color que queremos utilizar por defecto; lo más recomendable es utilizar una alta (16 o 24 bits) para poder ver nítidamente todos los colores. ANOTACIONES Una vez contestadas estas preguntas, que pueden ser más o menos según el programa que utilicemos, toda la configuración se guarda en el fichero /etc/X11/XF86Config-4. Este fichero está organizado en las diferentes secciones que hemos ido viendo y, recurriendo a su manual, veremos que tenemos muchí- simas más posibilidades que nos dan una flexibilidad total para con- figurar de la forma como queramos nuestras X-Window. Para probar si realmente funcionan, podemos ejecutar “ con lo cual debería X”, 209
  • 210. © FUOC • 71Z799002MO © Software libre aparecernos una pantalla con cuadros blancos y negros muy peque- Contenido ños y el puntero del ratón como una X (para salir de la misma pode- complementario mos utilizar CTRL+ALT+BACKSPACE). Cuando utilizamos startx o xinit se ejecutan las ins- trucciones del fichero / Si tenemos instalado algún window manager, lo más habitual para etc/X11/Xsession. Si en arrancar X-Window es utilizar alguno de los shell scripts xinit o el directorio home del usua- startx. Éstos se encargan de lanzar el window manager configura- rio que iniciara X-Window hubiera un fichero .xses- do y realizan algunas otras acciones necesarias para inicializar co- sion, se ejecutarían las ins- rrectamente X-Window. Una vez tenemos la pantalla en modo trucciones de éste en lugar del otro. gráfico, podemos cambiar la resolución de la misma con las teclas CTRL+ALT++ y CTRL+ALT+-, o volver a las consolas de texto con CTRL+ALT+F1, CTRL+ALT+F2, etc. (con CTRL+ALT+F7 volvería- mos a la gráfica). Otra característica importante en la configuración de X-Window es la de la configuración de los Xwrappers. Los Xwrappers nos permiten controlar qué usuarios pueden iniciar una sesión con X-Window. En el fichero /etc/X11/Xwrapper.config se encuentra la directiva “allowed users”, con la cual especificamos quién está autorizado para arrancar X-Window con los valores: • “console”: cualquier usuario que esté en un consola local puede iniciar X-Window. • “rootonly”: sólo el root puede iniciar X-Window. • “anybody”: cualquier usuario del sistema puede iniciar X-Win- dow (aunque no esté conectado localmente). Esto es muy útil, sobre todo, al administrar un servidor en el que ge- neralmente no se permite que los usuarios trabajen con el entorno ANOTACIONES gráfico por el gasto de recursos que ello supone. 10.3. X display manager En la sección anterior hemos visto cómo configurar X-Window de for- ma local. Tal como hemos ido comentando a lo largo del capítulo, la arquitectura de ventanas X-Window nos permite que cliente y ser- 210
  • 211. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © vidor estén instalados en diferentes ordenadores. Para configurar nuestro ordenador de modo que realice las funciones de un cliente X-Window, debemos instalar algún tipo de X display manager. Estos programas abren un puerto de comunicaciones con el cual los clien- tes se pueden comunicar con el cliente y trabajar con X-Window de forma remota. Aunque existen muchos programas de este tipo, uno de los primeros que apareció, y en el que se basan muchos otros, es el xdm. Los X display manager pueden actuar tanto de forma local como re- mota. Entre otras funciones, lo que hacen es mostrar una pantalla (en el entorno gráfico) para que el usuario se identifique con su login y contraseña. Funcionan como cualquier otro daemon del sistema, de forma que su inicio y parada se puede configurar como queramos (utilizando los niveles de ejecución que el sistema proporciona). De- bemos tener en cuenta que si lo configuramos para que funcione de forma local, al arrancar el sistema nos encontraremos con la panta- lla de identificación gráfica y no las consolas a las que estábamos acostumbrados (aunque continúan estando disponibles). Con esta configuración ya no podremos utilizar startx o xinit para inicia- lizar X-Window, ya que por defecto estarán ejecutándose. Cuando instalemos xdm, todos sus ficheros de configuración se de- jarán en el directorio /etc/X11/xdm. Vamos a repasar qué contie- ne cada uno de estos ficheros: xdm-config Localización de los archivos de configuración de xdm. xdm.options Opciones globales de configuración. Definición de los equipos remotos a los que dejamos Xaccess acceder. Xservers Servidores locales de xdm. ANOTACIONES Configuración de la pantalla de login: colores, fuentes, Xresources tamaño, etc. Xsetup Script que se ejecutará cuando se arranque xdm. Script que se ejecutará cuando un usuario entre en Xstartup XWindow. Se suelen poner acciones relacionadas con el xdm. Script que se ejecutará al entrar en una sesión de usuario. Se suelen poner acciones especiales para los usuarios, Xsession aunque también se suele llamar a la ejecución del fichero /etc/X11/Xsession. Xreset Script que se ejecutará al acabar una sesión de usuario. 211
  • 212. © FUOC • 71Z799002MO © Software libre La configuración de los servidores locales la encontramos en el fiche- ro Xservers. Si quisiéramos desactivar el servidor local, podríamos comentar todas las líneas de este archivo. De este modo, aunque tu- viéramos instalado un cliente de X-Window, por defecto no se inicia- ría en la máquina local. Si por el contrario quisiéramos instalar más de uno, podríamos editar el fichero y añadir directivas como las que siguen: :0 local /usr/X11R6/bin/X :0 vt7 :1 local /usr/X11R6/bin/X :1 vt8 Estas dos directivas indican que queremos 2 instancias de X-Window, una en la consola 7 (“vt7”) y la otra en la 8 (“vt8”), accesibles con CTRL+ALT+F7 y CTRL+ALT+F8 respectivamente. Fijémonos cómo cada directiva incluye un “:0” o “ :1”, que hacen referencia a la ins- tancia de X-Window que manejan. Por defecto, siempre se utiliza la 0, pero al querer más de un servidor local debemos referenciarlo de esta forma. Al final de cada una de estas líneas podríamos añadir parámetros especiales para cada servidor de X-Window (en “man X” encontramos todos los posibles), como la profundidad de color que queremos para cada uno, la resolución de la pantalla, etc. De esta manera, podríamos trabajar con diferentes sesiones de X-Window abiertas tal como hacíamos con las consolas. Contenido complementario Generalmente, la configuración por defecto de xdm no permite co- Si en el fichero de Xaccess hay una línea con el carácter nexiones remotas por razones de seguridad. Si quisiéramos activar “*”, indica que dejamos que estas conexiones, podríamos editar el fichero Xaccess y, utili- cualquier servidor se conecte al X-Window del servidor. zando la sintaxis que se nos indica, añadir los servidores a los que Utilizar X-Window de forma permitimos dar este servicio. También deberíamos comentar la línea remota sin ningún tipo de en- “DisplayManager. requestPort: 0 del fichero xdm-config, ” criptación puede suponer un fallo de seguridad, con lo que por defecto inutiliza todas las conexiones que se reciben. Una vez que es muy recomendable realizados estos cambios, reiniciando el daemon de xdm, el cliente ya ANOTACIONES informarse adecuadamente antes de utilizarlo. estaría preparado para servir X-Window a cualquier servidor que se lo pidiera. Contenido complementario Para las máquinas donde sólo queremos instalar el servidor de X- Xnest es un servidor de Window, deberíamos instalar X-Window tal como veíamos en el X-Window que nos permite apartado anterior y utilizar el comando “X -query IP”, donde la IP abrir en una ventana otra debería ser la del cliente. Del mismo modo que cuando teníamos instancia de X-Window. más de un servidor X-Window en una máquina local, si en la máqui- 212
  • 213. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © na ya tuviéramos otra instancia de X-Window ejecutándose, debería- mos utilizar “X -query IP :1” para la segunda instancia, “:2”, para la tercera y consecutivamente. ANOTACIONES 213
  • 215. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © 11. Taller de X-windows 11.1. Introducción En el segundo taller se sentaron las bases para la correcta manipu- lación y gestión de paquetes, y aprendimos a configurar algunos dis- positivos. No obstante, y debido a su complejidad, no se abordó el tema de la configuración de la tarjeta gráfica, o mejor dicho, de la instalación del entorno gráfico X. Debido a la complejidad de su es- tructura y configuración, se ha optado por dedicar un taller mono- gráfico sobre el X Window System. En este taller aprenderemos a instalar, configurar y personalizar este sistema. Pero no se pretende hacer un repaso exhaustivo de todo el sistema, pues esta tarea sería probablemente inabordable por muy distintas razones. Se pretende sentar las bases para que cada uno sea capaz de configurar su pro- pio sistema en función de la tarjeta gráfica de la que disponga, de sus gustos y de sus preferencias. Al finalizar el taller, deberíamos ser capaces de instalar un entorno X, y de saber sacar partido a su in- creíble potencia. Actividades Debido a la complejidad del sistema X, se recomienda la lectura de los siguientes documen- tos para asentar conceptos antes de empezar a trabajar sobre el sistema. Además, éstos nos aportarán conocimientos suplementarios, que pueden ser puestos en práctica a lo largo del taller. ANOTACIONES 16. http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html single/XWindow-Overview-HOWTO.html Se trata de un documento sencillo, que sirve para asimilar los conceptos básicos que con- ciernen al sistema. 215
  • 216. © FUOC • 71Z799002MO © Software libre 17. http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html single/XWindow-User-Howto.html Es un documento con contenidos más avanzados que el anterior, pero también re- comendable. 11.2. Instalación del sistema básico Como ya se ha dicho, el X Window System es un sistema muy com- plejo que integra muchísimas librerías y aplicaciones, algunas de las cuales son fundamentales para su funcionamiento, aunque la mayo- ría sólo deben ser instaladas si, por nuestras necesidades, precisa- mos de ellas. Ésta es una de las razones por las que, en Debian, el sistema viene distribuido en muchos paquetes distintos, de los que sólo instalaremos aquellos que sean necesarios. 11.2.1. Distintas estrategias para la instalación de los paquetes Debido a que la interdependencia entre los distintos paquetes es muy fuerte, podemos aprovechar este hecho para que sea el mis- mo sistema de gestión de paquetes el que instale todos aquellos que considere necesarios para el correcto funcionamiento de una aplicación de alto nivel, entre los cuales se encontrarán, obvia- mente, todos los paquetes básicos del sistema. Así pues, podría- mos utilizar dselect o apt-get para instalar una de estas aplicaciones. Pero ésta no es una buena estrategia, ya que implica ANOTACIONES la pérdida del control de los paquetes que estamos instalando y además puede implicar la omisión de algunos paquetes esencia- les, de los que, por el motivo que sea, no se haya hecho referencia durante el cálculo de dependencias. Por este motivo, se recomienda la construcción del sistema paso a paso, para ir comprendiendo qué paquetes se están instalando en cada momento, y el porqué. 216
  • 217. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © 11.2.2. Instalación de paquetes básicos Los paquetes básicos del sistema se pueden agrupar, de forma ge- neral, en: core. Paquetes esenciales e imprescindibles para el correcto funcio- namiento del sistema (x-window-system-core). system. Paquetes esenciales cuya presencia es altamente recomen- dable (x-window-system). fonts. Paquetes de fuentes, algunos de ellos imprescindibles para disponer, al menos, de un tipo de fuentes en el entorno. utils. Paquetes de programas que correrán sobre el sistema gráfi- co. Son, en el fondo, los que dan la razón de existencia del siste- ma. libs. Paquetes de librerías del entorno gráfico, las cuales proporcio- nan funciones a otros programas. Podemos instalar los paquetes básicos del sistema mediante la orden siguiente: brau:˜# apt-get install x-window-system Con ello se calcularán las dependencias entre paquetes y se nos in- formará de que debe instalarse alrededor de una treintena de pa- quetes. Para proceder, se nos pide la confirmación, a la cual contestaremos afirmativamente. ANOTACIONES Nota Después de que se hayan desempaquetado los pa- quetes, se ejecutarán automáticamente los scripts de configuración de varios de ellos. Siempre es posible interrumpir la ejecución de estos scripts con la combi- nación de teclas Ctrl-C, y reiniciar el proceso volvien- do a ejecutar el comando anterior. 217
  • 218. © FUOC • 71Z799002MO © Software libre Durante la ejecución del script de configuración del paquete X-ser- ver-common, se nos preguntará si queremos que sea debconf quien configure los wrappers. La opción más sencilla y práctica es permitir que la configuración se haga de forma automática, y seguir adelante. El script de configuración de Xserver-xfree86 nos situará en la interfaz de configuración del servidor. Lo primero que se nos pregun- ta es si deseamos que se ejecute un test de autodetección del driver que debe cargarse para nuestra tarjeta. Es buena opción contestar afirmativamente a esta pregunta, ya que si el test falla o detecta más de una posibilidad, nos dará acceso a la pantalla de selección de dri- vers. Si debemos seleccionar el driver manualmente, en primer lugar hay que leer la documentación de la tarjeta gráfica; si no dispone- mos de ella, también podemos utilizar el comando lspci para in- formarnos de cómo ésta ha sido detectada por el kernel (generalmente la última línea de retorno). Una vez dispongamos de esta información, nos dirigiremos a http://xfree86.org/cu- rrent/Status.html para informarnos de cuál es el driver que debemos cargar. Con esto nos situamos en la pantalla siguiente. En ésta se nos pedirá si deseamos que sea debconf quien nos guíe en la configuración del archivo /etc/X11/XF86Config-4, que es el archivo fundamental de configuración del servidor. No es mala idea contestar afirmativamente, y, al final, comprobar si la configuración resultante es válida o no. En primer lugar se nos pregunta si quere- mos usar el kernel framebuffer device interface, y se nos sugiere que lo hagamos; en principio, contestaremos afirmativamente, pero te- niendo muy presente que esto es una fuente potencial de problemas, de manera que, una vez hayamos finalizado la configuración, si al intentar arrancar el servidor algo va mal, deberemos estar atentos al contenido de la línea, y probar si con el valor “false” funciona: ANOTACIONES #/etc/X11/XF86Config-4 Section “Device” Identifier “Generic Video Card” Option “ UseFBDev” “true” Lo siguiente que configura el mismo script es el teclado. Por lo gene- ral, y en especial sobre la plataforma PC, la sugerencia de utilizar el tipo xfree86 debe funcionar correctamente, aunque en las panta- 218
  • 219. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © llas posteriores terminaremos de ajustar su funcionamiento. En la si- guiente pantalla contestaremos qué tipo de teclado es el que tenemos; por lo general pc105 debe funcionar correctamente. Ha llegado el momento de seleccionar el idioma del teclado. En este campo entraremos es; en cuanto al campo de variación idiomática, puede entrarse el mismo valor anterior, pero es recomendable de- jarlo en blanco, ya que si se entra el valor es, esta directiva también se convierte en una fuente potencial de errores. Si más adelante, y en el caso de que hayamos rellenado el campo de variación idiomática, al parar el servidor se visualiza, entre otras líneas, las siguientes: The XKEYBOARD keymap compiler (xkbcomp) reports: > Error: No Symbols named “es” in the include file “es” > Exiting > Abandoning symbols file “default” Errors from xkbcomp are not fatal to the X server o si no podemos utilizar ciertos caracteres como puede ser “|”, de- beremos comentar la directiva de variante idiomática en el archivo principal de configuración: #/etc/X11/XF86Config-4 Section “ InputDevice” Identifier “Generic Keyboard” # Option “XkbVariant” “es” El campo siguiente, referente a la personalización del teclado, se deja en blanco si no se tiene ningún propósito al respecto. Con esto ANOTACIONES habremos terminado con la configuración del teclado y pasaremos a la configuración del ratón. Para ello, en primer lugar, se nos pide en qué puerto está ubicado (actualmente, la mayoría de ellos en /dev/psaux, la primera opción). A continuación se nos pregunta de qué tipo de ratón disponemos (nuevamente, la primera opción, PS/2, suele ser la más habitual). Terminada la configuración del ra- tón, entramos en la configuración de la pantalla. En primer lugar se nos pregunta si disponemos de una pantalla tipo LCD. Acto seguido se nos pedirá en qué grado de dificultad queremos entrar los pará- 219
  • 220. © FUOC • 71Z799002MO © Software libre metros referentes a nuestro monitor. La forma más simple (Simple) sólo nos pedirá el tamaño del monitor, mientras que en la más com- pleja (Advanced) se nos pedirá las frecuencias de refresco horizon- tales y verticales del monitor, entre otros. Seguidamente se nos preguntará con qué resoluciones queremos trabajar y, en función de los parámetros que hayamos entrado en el apartado anterior, se nos harán distintas sugerencias. A continuación se nos pedirá cuál será la resolución de color que se usará por defecto al arrancar el servidor (actualmente la mayoría de tarjetas soportan, sin ningún problema, resoluciones de 24 bits). Con esto habremos terminado la configura- ción del servidor. Nota Una buena forma de conseguir un fichero /etc/ X11/XF86Config-4, que funcione, es copiar el que genera KNOPPIX cuando entramos en modo gráfico; así pues, podemos hacer una copia de este fichero, en un disquete, por ejemplo, y compararlo con el que he- mos generado mediante el script de configuración del servidor. Actividad 18. Una vez terminada la instalación, editar el fichero /etc/X11/XF86Config-4, e intentar asociar las distintas directrices a los parámetros que he- mos entrado durante la ejecución del script de con- figuración del servidor. 11.2.3. Inicialización del servidor Ha llegado el momento de comprobar si el fichero de configuración ANOTACIONES del servidor es correcto, y en consecuencia el servidor arranca como es debido. Para ello basta con ejecutar el comando startx. Si todo funciona correctamente, al cabo de unos momentos nuestra pantalla adquirirá un fondo mallado de colores grisáceos, y en el centro de la pantalla aparecerá un aspa. Hemos dado un gran paso adelante, pues configurar el servidor para que arranque es lo más difícil del entorno X. Ahora sólo es cuestión de tiempo para terminar 220
  • 221. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © dando al entorno el aspecto que deseamos. Mediante el ratón pode- mos mover el aspa, y pulsando los botones del medio e izquierdo, podemos explorar un poco las posibilidades de este entorno gráfico un tanto rudimentario. Para salir de él y continuar con la configura- ción del sistema, hay que pulsar el botón izquierdo del ratón, situar- nos sobre Exit opción Yes, really quit, o simplemente pulsar la combinación de teclas CTRL-ALT-BackSpace. Si por el contrario, al cabo de unos momentos retornamos a la con- sola alfanumérica, es que el servidor no ha podido arrancar adecua- damente. Ha llegado el momento de estudiar detenidamente el fichero de log (/var/log/XFree86.0.log) e intentar detectar las posibles fuentes de errores. Las más comunes suelen ser: mala elec- ción del driver que hay que cargar (si el proceso de selección lo he- mos dejado en manos del script, deberemos consultar la página antes mencionada para asegurarnos de que el driver que el script ha escogido es el correcto), poner la directiva UseFBDev a true, cuan- do debe estar en false, usar resoluciones o frecuencias de refresco más altas de las que la tarjeta puede soportar, etc. Otra posibilidad es que, aun estando soportada la tarjeta por el Xfree86 Project, puede que el paquete que estemos usando no la so- porte. Frente a esta situación, se sugiere que se incorpore la siguiente línea en el fichero /etc/apt/sources.list: deb http://people.debian.org/˜blade/woody/i386/ ./ y que, tras ejecutar el comando apt-get update, se vuelva ejecu- tar el comando de instalación del X-Window-System apt-get ( install X-Window-System). Con esto acudiremos a una página no oficial para obtener los paquetes de versiones más actualizadas ANOTACIONES del sistema X Window, y en ellos, probablemente, ya se dé soporte a nuestra tarjeta. Con todo esto, hay que destacar que la correcta configuración de una tarjeta de vídeo puede llegar a ser una tarea verdaderamente di- fícil. Para ello, acudiremos a buscadores donde entraremos palabras clave referentes a nuestra tarjeta junto con “X” o “Linux” para ver si encontramos documentación al respecto. 221
  • 222. © FUOC • 71Z799002MO © Software libre Llegados a este punto, mediante el comando siguiente evitaremos que cada vez que arranquemos el ordenador entremos en el modo gráfico: brau:˜# rm /etc/rc2.d/S99xdm Esto nos será útil mientras no tengamos configurado totalmente este entorno. Una vez terminado, ya será cada usuario el que decidirá si quiere o no, que al arrancar el ordenador se entre en el modo grá- fico. Para hacerlo, sólo habrá que volver a crear el enlace simbólico que hemos borrado con el comando anterior: brau:˜# cd /etc/rc2.d brau:/etc/rc2.d# ln -s ../init.d/xdm S99xdm 11.2.4. El fichero de log Aunque el arranque del servidor haya resultado exitoso, no por ello debemos dejar de analizar el contendido del fichero principal de log del sistema X, /var/log/XFree86.0.log, ya que esto nos ayuda- rá a depurar fallos y errores menores que no han interrumpido el arranque del servidor, pero sí que hacen bajar su rendimiento. Algunos ejemplos típicos pueden ser: eliminar la línea del fichero de configuración que hace referencia a las fuentes cirílicas, si nunca las va- mos a utilizar, ya que ni tan siquiera las hemos instalado; eliminar de este mismo fichero todo lo que hace referencia al Generic Mouse, pues lo hace incompatible con el que hemos configurado nosotros, etc. 11.2.5. El servidor de fuentes ANOTACIONES El sistema gráfico en sí no lleva asociado ningún tipo de base de da- tos acerca de las fuentes disponibles, pues esto no entra en el domi- nio de sus funciones. Ésta es la tarea del servidor de fuentes xfs (/ usr/bin/X11/xfs), así, cualquier programa cliente podrá usar las fuentes disponibles, que se arrancan automáticamente al lanzar el servidor X en forma de deamon. Existen multitud de paquetes para agregar más fuentes al conjunto que hemos instalado por defecto. 222
  • 223. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Una aplicación que puede ser útil para conocer qué fuentes tenemos instaladas y qué aspecto tienen es xfontsel. Se trata de una apli- cación escrita mediante librerías de athena (como el resto de los xba- se-clients, grupo al cual pertenece xfontsel), en la cual, mediante menús desplegables se seleccionan las opciones disponibles de con- figuración de las fuentes y nos muestra algunos caracteres de ejem- plo. Para conocer los caracteres de una fuente se puede usar la aplicación xfd. Así pues, una vez sepamos qué fuente queremos utilizar para un de- terminado programa, podemos lanzarlo desde una xterm con el ar- gumento “-fn” seguido de la descripción de la fuente (otros programas pueden usar nombres distintos para este argumento). Un ejemplo puede ser: xterm -fn -misc-fixed-medium-r-normal--20-140-100-100-c-100-iso8859-1 & 11.3. Window managers Los window managers son programas clientes (en realidad se los lla- ma meta-clientes) encargados de gestionar las distintas ventanas que corren sobre el entorno gráfico y de su presentación, así como de lanzar otros clientes (aplicaciones). A estas alturas, ya tenemos un window manager instalado, el twm, ya que una instalación completa de un sistema X requiere como mínimo de un window manager, aun- que éste no forme parte del servidor, que corra sobre él. Como ya hemos visto, el twm es muy rudimentario, puede ser, pues, que nos interese instalar algunos más complejos, como puede ser Window- Maker, BlackBox, qvwm, etc. Vamos pues a instalar algunos de ellos ANOTACIONES y a probarlos. El objetivo final, siguiendo la filosofía GNU, es que cada usuario termine usando el software que prefiera. Así pues, se deja que, una vez conocidos algunos window managers existentes, sea el propio lector quien decida cuál va a usar. Obviamente, es po- sible tener más de un window manager instalado, aunque sólo se pueda hacer correr uno por sesión. (Sin embargo, si que podemos, como ejemplo de la flexibilidad del sistema X, tener dos window ma- nager corriendo en un mismo ordenador, cada uno en un terminal distinto). 223
  • 224. © FUOC • 71Z799002MO © Software libre En primer lugar instalaremos, a modo de ejemplo, el qvwm. Se trata, como veremos al lanzarlo, de un window manager que simula un en- torno que probablemente nos sea conocido. Para hacerlo, basta con ejecutar la instrucción: brau:˜# apt-get install qvwm En este momento ya tenemos dos window managers instalados: el twm y el qvwm. Para hacer correr uno u otro bastará con indicar la ruta completa de ubicación del window manager que deseamos uti- lizar después del comando startx (recordemos que el comando whereis nos puede ser muy útil a la hora de buscar la ubicación de un fichero). Así pues, para hacer correr el window manager que acabamos de instalar, bastará con ejecutar: brau:˜# startx /usr/bin/X11/qvwm Para utilizar el twm se debería haber especificado su ruta completa de la forma siguiente: brau:˜# startx /usr/bin/X11/twm Tener que especificar cada vez qué window manager deseamos uti- lizar, una vez nos hayamos decidido por uno en concreto, puede ser un tanto pesado. Para especificar qué window manager debe usarse en caso de que después del comando startx no se especifique nin- guno en concreto, crearemos el archivo .xsession en el directorio raíz del usuario con el contenido siguiente, en el caso que quisiéra- mos que el window manager por defecto fuese el twm, por ejemplo: #˜/.xsession ANOTACIONES exec twm Si quisiéramos que fuese qvwm el window manager por defecto, bas- taría con cambiar twm por qvwm. La ejecución de los distintos proce- sos que implican el arranque del entorno gráfico, así como los ficheros de configuración que se van leyendo durante este proceso, están fuertemente determinados. Así pues, creando el fichero ante- rior, lo que hemos hecho es editar uno de los últimos ficheros (los 224
  • 225. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © que residen en el directorio raíz del usuario) que se leen antes de en- trar en el entorno gráfico. Este fichero, por tanto, nos permite modi- ficar algunos aspectos de los que se han determinado por defecto dentro del sistema y que están definidos en los ficheros residentes en /etc/X11 y sus subdirectorios. Para finalizar esta sección instalaremos un window manager muy uti- Lectura complementaria lizado en el mundo GNU/Linux, que se caracteriza por su versatili- Animamos al lector a fami- dad y su escaso consumo de recursos: el WindowMaker: liarizarse un poco con este window manager y a que vi- site su página para ampliar brau:˜# apt-get install wmaker conocimientos: http://www.windowmaker.org/. Hemos instalado ya tres window managers, y seguramente instalare- mos más. Aparte del método anteriormente descrito para preestable- cer cuál queremos ejecutar por defecto, podemos utilizar el menú del comando update-alternatives para establecerlo: brau:˜# update-alternatives x-window-manager 11.4. X Session manager Los session managers son programas que pueden hacerse correr so- bre una sesión gráfica y que nos permitirán establecer y modificar parámetros de ésta. xms es el session manager que viene por defecto con la instalación que hemos hecho del servidor gráfico. Podemos lanzarlo desde un terminal X (para lanzar una xterm, pulsaremos el botón del medio del ratón y seleccionaremos Programs/Xshells/ Xterm) , mediante el comando xsm. ANOTACIONES Una vez lanzado xsm mediante Checkpoint, podemos guardar la configuración de la sesión actual (esencialmente referente a las apli- caciones que tengamos corriendo), gestionar los procesos que están corriendo mediante Client List, consultar el log de la sesión o cerrar la sesión guardando la configuración actual. Aparte de xsm, existen otros session managers. Éstos acostumbran a ser una parte más de los desktop managers, y están tan integrados en ellos que a veces resulta difícil reconocer sus acciones. Un ejemplo 225
  • 226. © FUOC • 71Z799002MO © Software libre típico es la pregunta que se nos formula acerca de si deseamos guar- dar la sesión al cerrar KDE. 11.5. X Display manager Al finalizar la instalación del Xserver, sugeríamos que se eliminara el enlace simbólico /etc/rc2.d/S99xdm para evitar que al volver a arrancar el sistema al entrar al runlevel 2 se ejecutase xdm, acróni- mo de X display manager. Éste es el display manager que el paquete X-Window-System instala por defecto. Los display managers son los programas encargados de gestionar quién, desde dónde, y cómo puede entrar un usuario al entorno gráfico. Para lanzarlo, lo hare- mos como con cualquier otro daemon: brau:˜# /etc/init.d/xdm start Para pararlo, también utilizaremos el mismo procedimiento que se- guiríamos para detener cualquier otro daemon, con la salvedad de que debemos pulsar la combinación de teclas Ctrl+Alt+F1, para sa- lir del entorno gráfico y situarnos en la tty1, por ejemplo, en vez de utilizar la combinación que se usa para cambiar de ttys en entornos alfanuméricos: brau:˜# /etc/init.d/xdm stop Como hemos comprobado, el display manager nos pide un login y un password, los mismos que utilizamos para acceder al sistema por las ttys, si no es que hemos impuesto alguna restricción. Tras validar- nos, entramos en el modo gráfico del mismo modo como lo hacía- ANOTACIONES mos mediante el comando startx. La diferencia radica en que, cuando terminemos la sesión gráfica, el servidor no se parará, si no que continúa corriendo el xdm. Uno de los inconvenientes de xdm es que no nos permite seleccionar con qué window manager queremos trabajar. Pero existen otros dis- play managers, como pueden ser wdm (de WindowMaker), gmd (del proyecto GNOME), o kdm (del proyecto KDE), que sí que lo permiten. 226
  • 227. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Podemos instalar el wdm, para ver su aspecto, y para conocer otro display manager: brau:˜# apt-get install wdm Al ejecutarse el script de postinstalación, se nos preguntará qué dis- play manager queremos usar, xdm, que ya teníamos instalado, o wdm. Seleccionaremos este último, para que se cree el enlace nece- sario para que se lanze wdm com display manager durante el proce- so de arranque del sistema (si existe el fichero /etc/rc2.d/ S99xdm, es mejor borrarlo para evitar mensajes de warning al arrancar el sistema). Si no queremos que se arranque automática- mente ningún display manager al arrancar el sistema, bastará con eliminar los enlaces necesarios, es decir, el fichero /etc/rc2.d/ wdm. El archivo /etc/X11/default-display-manager marca el display manager que se usa por defecto. Una vez arrancada una sesión X desde el display manager, es decir, una vez ha- yamos lanzado el pertinente window maker, puede ser interesante ejecutar el co- mando pstree para ver las relaciones de dependencia entre los distintos procesos que están corriendo en este momento, junto con la información que nos aportará la línea ps aux. 11.6. Desktop managers La aparición de distintas toolkits, así como el desarrollo de diversos pro- yectos que desarrollaban o usaban librerías del entorno gráfico, hizo aparecer proyectos que buscasen la unificación de todos estos esfuer- zos. Fue entonces cuando apareció un concepto nuevo en el entorno X: ANOTACIONES el de desktop manager. Los desktop managers son proyectos que pre- tenden sentar las bases para la unificación y estandarización, tanto de presentación como de políticas de programación y de desarrollo de aplicaciones. Uno de los primeros en aparecer fue el CDE (Common Desktop Manager), aunque actualmente los dos proyectos más destaca- dos en este sentido son: GNOME y KDE, a los cuales, dado su alto gra- do de implementación y de desarrollo, dedicaremos una subsección respectivamente. Pero antes podemos nombrar otros desktop mana- gers, como pueden ser: GNUStep, ROX, GTK+Xfce o UDE. 227
  • 228. © FUOC • 71Z799002MO © Software libre 11.6.1. GNOME GNOME es un proyecto que forma parte de GNU, que se caracteriza por no necesitar estrictamente de un window manager en concreto, aunque se recomienda que se use alguno que garantice su correcto funcionamiento (a GNOME-compliant window manager) como pue- den ser: IceWM o Sawfish. Aun así, para respetar las preferencias y la libertad del usuario, GNOME, en su control panel dispone siempre de un window manager selector, que nos permite escoger qué win- dow manager queremos usar. GNOME está basado en Gtk toolkit, las propias librerías desarrolladas dentro del proyecto, conocidas como gnome-libs específiques. Como todos los desktop managers, GNOME dispone de su propio panel, de su gestor de archivos Nautilus y de su control panel: GNO- ME Control Panel. Para hacer una instalación básica de GNOME, instalaremos el pa- quete siguiente junto con todas sus dependencias: brau:˜# apt-get install gnome-session Tal como se ha dicho, aunque GNOME no exija el uso de ningún window manager determinado, se recomienda que éste sea GNO- ME-compliant window manager. Vamos pues a instalar Sawfish, que fue desarrollado estrictamente para cumplir este requisito. Instale- mos el paquete y todas sus dependencias: brau:˜# apt-get install sawfish-gnome Tenemos, pues, otro window maker instalado. Detendremos el dis- ANOTACIONES play manager y volveremos a lanzarlo para que este nuevo window maker se integre en él (GNOME también tiene su propio display ma- nager, gdm, que podemos instalar si lo deseamos). Ahora tenemos dos posibilidades para conseguir nuestro objetivo: hacer correr GNOME. La primera es arrancar Sawfish, desde el display manager o mediante startx y, una vez dentro, lanzar gnome-session desde un terminal X, o bien operar de modo inverso, es decir, arran- car GNOME por los mismos procedimientos que Sawfish, y luego lanzar sawfish desde un terminal X. Se recomienda proceder de 228
  • 229. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © la última forma si queremos que la próxima vez que arranquemos GNOME se ejecute Swafish (será el propio sesión manager de GNOME el encargado de realizar y registrar los cambios necesarios para que esto ocurra). Una vez familiarizados un poco con GNOME, lo que podemos hacer es instalar algunos paquetes que nos pueden ser útiles, en concreto gnome-help y gnome-terminal, el primero nos ofrece una inter- faz donde podremos leer mans, ficheros de texto en un entorno gra- fico, y el segundo instala el xterm propio de GNOME. Una aplicación que dará un aspecto mucho más amigable a GNO- ME será Nautilus, concebido, en principio, como un gestor de fiche- ros, pero que además nos permitirá configurar el desktop. Para su correcto funcionamiento, Nautilus necesita de Mozilla M18 y de GNOME Helix. Por tanto, los paquetes que habrá que instalar serán los siguientes: nautilus-suggested, para hacer la instalación de Nautilus y mozilla, para hacer una instalación completa del navegador (en cuanto a su configuración, podemos instalar las fuentes True Type, y podemos poner en auto el sound daemon’s dsp wrapper). GNOME es un proyecto en constante desarrollo y que ofrece multitud de aplicaciones. Por eso, una vez instalado su sistema básico, suge- rimos al lector que visite su página http://www.gnome.org y que sea él mismo el que explore, descubra y decida cuál de ellas pueden ser de su interés para instalárselas. La sola ejecución de la línea si- guiente nos puede dar una idea de la magnitud del proyecto: brau:˜# apt-cache search gnome ANOTACIONES Debian Woody integra la versión 1.4 de GNOME. Estando ya dispo- nible la versión 2.2, proponemos modificar el contenido de /etc/ apt/sources.list añadiendo las líneas siguientes, para poder actualizar o instalar de raíz los paquetes de esta versión “debianiza- dos”: #GNOME2 deb http://ftp.acc.umu.se/mirror/mirrors.evilgeniuses.org.uk/debian/backports/woody gnome2.2/ 229
  • 230. © FUOC • 71Z799002MO © Software libre deb-src http://ftp.acc.umu.se/mirror/mirrors.evilgeniuses.org.uk/debian/backports/woody gnome2.2/ Una vez hayamos hecho esto, bastará con ejecutar los siguientes co- mandos para disponer de dichas actualizaciones: apt-get update apt-get install gnome 11.6.2. KDE KDE, a diferencia de GNOME, sí que necesita de un window mana- ger concreto, se trata de kwm, basado en Qt toolkit y en las propias kdelibs. También dispone de su launcher panel: kpanel, de su propio gestor de archivos: Konquest y de su utilidad de configuración: Con- trol Panel. Obviamente, KDE puede estar instalado en el mismo sis- tema donde hayamos instalado GNOME, e incluso hay aplicaciones pertenecientes a un desktop manager que pueden correr en el otro. Además, KDE también tiene su propio display manager (kdm) junto con muchísimas más aplicaciones. Nuevamente se recomienda al lector una visita a su página para conocer sus posibilidades: http:/ /www.kde.org, y la página del encargado de integrar KDE en De- bian http://people.debian.org/ ccheney/. Asimismo, po- demos ejecutar la línea siguiente para ver la integración de KDE en Debain: brau:˜# apt-cache search kde Los paquetes básicos de KDE están en el paquete kdebase. Éste se- rá, pues, el primero que instalaremos: ANOTACIONES brau:˜# apt-get install kdebase Nuevamente deberemos reinicializar nuestro window manager para tener acceso al desktop manager recién instalado. Una vez hecho esto, podemos proceder a instalar el gestor de archivos, paquete konquest. Mediante el paquete kde-i18-es pode- mos instalar los ficheros necesarios para que KDE trabaje en cas- tellano. 230
  • 231. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © A partir de este punto, ya será cada usuario el que instalará los dis- tintos paquetes del proyecto que le sean de interés. Por lo que a versiones se refiere, Debian Woody integra la versión 2. Para disponer de versiones más recientes, hay que recurrir a paque- tes no oficiales. Si se desea tener acceso a estos paquetes, podemos añadir la línea siguiente a /etc/apt/sources.list y actualizar la base de datos mediante el comando apt-get update: #KDE3 deb http://people.debian.org/˜schoepf/kde3/woody ./ Tal como ya hacíamos, para preestablecer el window maker por de- fecto, utilizaremos el menú del comando update-alternatives para seleccionar el session manager: brau:˜# update-alternatives x-session-manager 11.7. Personalización de algunos aspectos El diseño del entorno gráfico X responde al ambicioso objetivo de sacar el máximo rendimiento del hardware disponible, usando el mínimo de sus recursos, y ofrecer la máxima flexibilidad posible. La estructura de servidor cliente en que se basa este sistema hace posible que estos ob- jetivos sean una realidad, y las aparentes dificultades con las que se en- cuentra el usuario novel desaparecen rápidamente con un poco de práctica para permitir que afloren las múltiples ventajas que ofrece este diseño. En esta sección sólo se pretende dar una somera idea de la po- tencia de este sistema, la cual se pone plenamente de manifiesto cuan- do se trabaja en red, aunque queda un poco ensombrecida cuando se ANOTACIONES trabaja en un sistema stand alone como sobre el que se desarrolla todo este curso. De todas formas se introducen algunos conceptos que pue- den ser de utilidad cuando se entra a trabajar en red. 11.7.1. Personalización de aspectos locales En general los archivos de configuración se hallan en el directorio / etc/X11/o en algunos de sus subdirectorios. De forma personali- 231
  • 232. © FUOC • 71Z799002MO © Software libre zada, cada usuario puede redefinir los parámetros de configuración y añadir nuevos creando o editando en su directorio de home los fi- cheros que llevan el mismo nombre que los de configuración general pero precedidos de un “.”. Se podrán redefinir o establecer todos aquellos parámetros que no requieran de permisos de superusuario, ya que los archivos de home se procesan después de los de configu- ración general, y los parámetros siempre tomarán el último valor que se les asigne. Xsession /etc/X11/Xsession es un script que se ejecuta al entrar en una sesión de usuario. Este script es el que gobierna todo el proceso de arranque de la sesión hasta que podemos empezar a trabajar, y también es el encargado de gestionar los mensajes de errores que se puedan producir durante este proceso, los cuales se registran en $HOME/.xsession-errors. En $HOME/.xsession es donde personalizaremos el arranque para un usuario en particular. Así pues, si deseamos que el window manager sea blackbox, y que se arranque automáticamente bbkeys en background al iniciar la sesión, éste contendrá las si- guientes líneas: bbkeys & blackbox ANOTACIONES Xresources En el archivo $HOME/.Xresources personalizaremos el aspecto de las distintas aplicaciones. La sintaxis es application*parameter: va- lue. Así pues, si quisiéramos invertir los colores de la aplicación xterm, añadiríamos la línea siguiente en el fichero: Xterm*reverseVideo: true 232
  • 233. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © El comando xrdb es el encargado de gestionar la base de datos de Xresources. Mediante “xrdb -query” podemos conocer todas las propiedades establecidas y su valor, y mediante el parámetro “-display” obtendremos un listado de todos los parámetros que acepta el comando. Si a éste le pasamos como parámetro la ubi- cación de un fichero, leerá de él todas las definiciones de pará- metros. Xmodmap El servidor gráfico usa la tabla de códigos de caracteres para hacer la conversión de señales provenientes del teclado (server-indepen- dent) a símbolos del sistema (server-dependent). La tabla de conversión que hay que usar ha sido seleccionada du- rante el proceso de configuración del teclado, pero el comando Nota xmodmap nos permite modificar su contenido. Un ejemplo de su uso Estos comandos fueron utili- zados durante mucho tiem- puede ser el siguiente: po debido a la inversión de asignación de símbolos en las tablas de conversión; ac- brau:˜# xmosmap -e “keycode 127 = Delete” tualmente, sin embargo, este problema está resuelto. brau:˜# xmosmap -e “keycode 22 = BackSpace” Mediante los parámetros “-pk” xmodmap nos devolverá todo el contenido de la tabla de conversión que se está usando. 11.7.2. Personalización de aspectos de red Los aspectos aquí presentados también son de interés para un siste- ma stand alone, ya que, como todo el sistema operativo, el sistema ANOTACIONES X usa siempre un diseño orientado a red. $DISPLAY La variable $DISPLAY sirve para indicar al cliente con qué servidor debe comunicarse. Su sintaxis es la siguiente: hostname:display num- ber.screen number. Así pues, si hubiésemos definido otro terminal 233
  • 234. © FUOC • 71Z799002MO © Software libre gráfico al sistema X, añadiendo la línea siguiente a /etc/X11/ xdm/Xservers: :1 local /usr/X11R6/bin/X vt8 podríamos lanzar una aplicación gráfica desde un xterm de un ter- minal gráfico a otro definiendo la variable adecuadamente. Por todo lo cual, si quisiéramos lanzar xeyes desde el primer terminal grá- fico, vía xterm, y “displayarlo” en el segundo, procederíamos de la forma siguiente: brau:˜$ set DISPLAY :0.1; export DISPLAY brau:˜$ xeyes & Si entramos en una sesión gráfica, abrimos un xterm, cambiamos de usuario mediante el comando su y probamos de lanzar una aplicación gráfica se nos devolverá un mensaje de error indicándonos que se pue- de establecer conexión con el servidor. Una estrategia para evitar este problema es utilizar con el parámetro “-p” para que se exporte todo el conjunto de variables de entorno, y evitar así que el servidor rechace nuestra petición de conexión. Esta práctica puede ser muy útil para lan- zar programas de configuración que necesitan permisos de root , ya que nos evitará tener que entrar en el entorno gráfico como root (práctica no muy recomendable, y que, aunque por defecto se permita, en muchas ocasiones se restringe manualmente). xhost y xauth El comando xhost permite establecer qué equipos pueden acceder al servidor gráfico de forma remota, es decir, qué máquinas cliente pueden lanzar una aplicación para ser “displayada” en el servidor. ANOTACIONES Su sintaxis es la siguiente: xhost +hostname. Si no se especifica nin- gún hostname, cualquier máquina podrá lanzar aplicaciones sobre el servidor. Por defecto, no se permite la conexión desde ningún equipo remoto. El comando xauth sirve para determinar qué usuarios pueden lan- zar aplicaciones sobre el servidor gráfico. Así pues, mediante la com- binación de estos dos comandos podremos establecer una política 234
  • 235. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © de seguridad de acceso al servidor X bastante razonable. xhost + para los stand alone. 11.8. Configuración de impresoras La tarea de configurar impresoras se puede ver facilitada a partir del entorno gráfico. Existen multitud de aplicaciones para configurar el sistema de impresión nativo (basado en lpd como servidor y lpr como cliente), y otras que sustituyen este sistema por uno propio, común- mente también basado en la estructura cliente servidor. En esta sec- ción presentaremos dos de estas herramientas: CUPS y LPRng, ambos con su sistema propio de servidor de impresión. Para la instalación de LPRng hay que instalar necesariamente el pa- quete lprng. El paquete que contiene la GUI es de configuración del fichero /etc/printcap basado en LPRng es lprngtool. Obvia- mente, para hacer modificaciones en dicho fichero de configuración, habrá que ejecutar el comando lprngtool con privilegios de root. Adicionalmente, se recomienda instalar el paquete printop, que aporta una interfaz gráfica para todo el sistema de impresión, y el paquete lprng-doc, el cual contiene toda la documentación de este sistema de impresión. Para instalar CUPS (Common Linux Printing System) habrá que ins- talar el paquete del servidor de impresión, cupsys; y se recomienda instalar, junto a este paquete, el de clientes de impresión, paquete cupsys-client. También se puede instalar el paquete cupsys-bsd para disponer de los comandos habituales en el sistema de impresión de BSD. Por lo que se refiere a drivers, los paquetes cupsys-driver- gimpprint y cupsomatic-ppd, aportan gran número de ellos junto ANOTACIONES con numerosos algoritmos de procesamiento de imagen, definición de tamaños de papel, etc. 11.9. OpenOffice En esta sección, aunque se aparte un poco del objeto principal del curso, presentaremos una suite ofimática que puede ser de 235
  • 236. © FUOC • 71Z799002MO © Software libre extraordinaria utilidad para aquellos que estén acostumbrados a utilizar software de este tipo. Se trata de OpenOffice.org (http://www.openoffice.org), proyecto derivado de StarOffice, de Sun MicroSystems. Hay que destacar que este proyecto es multipla- taforma, y que por tanto puede ser implementado en otros sistemas operativos no tipo UNIX. Si bien esta suite no está integrada en Debian, podemos recurrir, como ya hemos hecho con anterioridad, a fuentes no oficiales para obtener sus paquetes: #OpenOffice deb http://ftp.freenet.de/pub/ftp.vpn-junkies.de/openoffice/ woody main contrib Una vez hayamos añadido la línea anterior a /etc/apt/sources.list y hayamos actualizado la base de datos mediante apt-get update, bastará con ejecutar la línea siguiente para proceder a la insta- lación: brau:˜# apt-get install openoffice.org openoffice.org-l10n-en Sólo hay que tener presente, durante el proceso de instalación (el cual debe ejecutarse bajo un entorno gráfico) que hay que hacer la instalación para red. Así, sólo será necesario que en el directorio home de cada usuario exista un pequeño directorio donde se guar- darán sus configuraciones personales. ANOTACIONES Una vez se haya instalado el programa la primera vez, cada usua- rio deberá ejecutar el programa siguiente para que se cree su di- rectorio: /usr/lib/openoffice/program/setup Una vez hecho esto y se hayan repuesto algunas preguntas, median- te el comando openoffice abriremos la suite. 236
  • 237. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © 11.10. Conclusión Con este taller se termina el material didáctico del segundo módulo del máster. En él hemos aprendido a instalar el entorno gráfico al sis- tema, el cual, como ya vimos en su momento, no es una parte fun- damental dentro del sistema operativo. Pero está clara su utilidad en muchos casos, y ha sido en este punto cuando muchos afirman que el sistema operativo que ha sido objeto de estudio en este módulo puede ser una alternativa seria a otros sistemas. Por todo lo cual, los autores querríamos manifestar nuestro absoluto convencimiento de que GNU/Linux es un sistema operativo extraordinario, no sólo de- bido a su entorno gráfico, que es lo que quizás sorprenda más a pri- mera vista, sino por un sinfín de argumentos, de entre los cuales podemos destacar su filosofía, robustez, adaptabilidad, potencia, ni- veles potenciales de seguridad, etc. Estamos convencidos de que este sistema operativo es una apuesta de futuro para la cual, si bien ya ha demostrado que es capaz de abrirse un espacio en el mundo de los sistemas operativos, sólo cabe esperar sorpresas positivas. Deseamos haber proporcionado los conocimientos suficientes y transmitido el entusiasmo necesario para que el lector inicie aquí su propio camino en el mundo del software libre, y haber sabido abrir las puertas a una comunidad donde todo el mundo es bienvenido y respetado. ANOTACIONES 237
  • 239. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © A.Tablas de comandos A.1. Sistema de ficheros COMANDO SIGNIFICADO Y PARÁMETROS ÚTILES Lista los contenidos de un directorio determinado ⇒ “-a” muestra todos los contenidos, incluso los que empiezan por “.” ⇒ “-l” muestra la información completa relativa a los contenidos ⇒ “-h” acompañada de “-l” muestra el tamaño de los archivos en unidades de ls [pattern] bytes, KB, MB, GB ⇒ “-S” ordena el listado por tamaño ⇒ “-w” muestra el listado por columnas ⇒ “-R” muestra el listado de forma recursiva, pasando por todos los subdirectorios ⇒ “--color” colorea el texto del listado según el tipo de archivo Cambia al directorio especificado. Si no se especifica ninguno, va al home del cd [ruta] usuario pwd Muestra la ruta completa hasta el directorio actual Busca un determinado fichero o directorio ⇒ “-iname pattern” busca recursiva del pattern a partir del directorio actual ⇒ “-ilname pattern” como “-iname” pero haciendo la búsqueda insensible a mayúsculas o minúsculas find [parámetros] [path] ⇒ “-maxdepth numLevels” realiza la búsqueda hasta el nivel de profundidad especificado ⇒ “-uid UID” fuerza la coincidencia de UID ⇒ “-gid GID” fuerza la coincidencia de GID Crea un link a un fichero o directorio. Si no se trata de un link simbólico, se hace ln ruta [nombreNuevoLink] una copia exacta y se modifica frente a cualquier actualización (hard link) ⇒ “-s” crea un enlace simbólico ANOTACIONES A.2. Ayuda del sistema COMANDO SIGNIFICADO Y PARÁMETROS ÚTILES man [numManual] comando Muestra el contenido del manual del comando mediante un paginador Otra fuente de ayuda, que a veces complementa los contenidos del man, y en otras info comando es la única documentación que se mantiene Busca todos los comandos que contienen la palabra clave en la descripción de su apropos palabraClave manual 239
  • 240. © FUOC • 71Z799002MO © Software libre A.3. Permisos de los ficheros COMANDO SIGNIFICADO Y PARÁMETROS ÚTILES Establece los permisos de ficheros y/o directorios chmod modo fichero ⇒ “-R” el cambio se realiza de forma recursiva, es decir, se realiza sobre todos los ficheros y subdirectorios del directorio especificado Establece el propietario y el grupo (si éste se especifica) de ficheros y/o chown propietario[.grupo] fichero directorios ⇒ “-R” el comando actúa de forma recursiva Establece el grupo al que pertenecen ficheros y/o directorios chgrp grupo fichero ⇒ “-R” el comando actúa de forma recursiva Inicializa los permisos de todos los ficheros creados a partir del momento en umask modo que se ejecuta el comando A.4. Copia y borrado de ficheros COMANDO SIGNIFICADO Y PARÁMETROS UTILES Comando para borrar ficheros y/o directorios ⇒ “-f” suprime los mensajes de confirmación rm fichero ⇒ “-R” el comando actúa de forma recursiva ⇒ “-i” pregunta antes de proceder al borrado rmdir directori Borra directorios vacíos Copia archivos del origen al destino especificados ⇒ “-f” no pide confirmación ⇒ “-i” pide confirmación antes de copiar cada fichero cp ficheroOrigen ficheroDestino ⇒ “-l” realiza enlaces en vez de copiar ⇒ “-R” actúa recursivamente copiando los contenidos de los subdirectorios ⇒ “-s” realiza enlaces simbólicos en vez de copiar Mueve archivos del origen al destino especificados mv ficheroOrigen ficheroDestino ⇒ “-f” no pide confirmación ⇒ “-i” pide confirmación antes de mover cada fichero ANOTACIONES A.5. Parada o reinicio COMANDO SIGNIFICADO Y PARÁMETROS ÚTILES logout Sale del shell y devuelve al login Inicia el proceso de paro del sistema (nunca debemos apagar el ordenador halt hasta que no se “displaye” Power Down) Reinicia el sistema, es decir, procede al paro de éste y luego “resetea” el reboot ordenador 240
  • 241. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © A.6. Operaciones con ficheros COMANDO SIGNIFICADO Y PARÁMETROS ÚTILES Muestra el contenido del archivo o, si éste no se ha especificado, muestra por cat [archivo] pantalla todo lo que se entra por teclado ⇒ “-n” enumera las líneas mostradas Paginador para mostrar contenido de archivos. Las opciones que se especifican a continuación NO son parámetros del comando, sino teclas de acceso directo a utilizar en su uso ⇒ “/pattern” dentro de “less” podemos realizar una búsqueda del pattern especificado precedido de “/”; Para continuar la búsqueda hacia delante o hacia atrás, usaremos las teclas “n” y “N” respectivamente less archivo ⇒ “FIN” va al final del archivo ⇒ “INICIO” va al principio del archivo ⇒ “AVPAG” avanza página ⇒ “RETURN” avanza una línea ⇒ “SPACE” avanza una página Muestra el contenido del archivo de una forma similar a “less” pero más simple more archivo (no permite, por ejemplo, la opción de retroceder) Busca las líneas que cumplen con el pattern y la muestra por pantalla ⇒ “-b” muestra el número de byte de cada línea encontrada ⇒ “-c” no muestra las líneas por pantalla, sino que las cuenta y devuelve el número grep [pattern] archivo ⇒ “-e pattern” útil cuando el pattern empieza por el carácter “-” ⇒ “-i” ignora la diferencia entre mayúsculas y minúsculas ⇒ “-n” muestra el número de línea ⇒ “-v” invierte el resultado de la búsqueda ⇒ “-w” selecciona sólo aquellas líneas donde el pattern es toda una palabra Muestra los campos del archivo ⇒ “-d carácter” indica qué carácter es el delimitador de campo cut archivo ⇒ “-f numCampo” indica qué campo debe mostrado ⇒ “-b listaBytes” del campo seleccionado, sólo se quiere ver los bytes indicados, separados por comas ANOTACIONES Muestra el número de bytes, líneas y palabras del fichero ⇒ “-c” sólo muestra los bytes wc fichero ⇒ “-l” sólo muestra el número de líneas ⇒ “-w” sólo muestra el número de palabras Muestra les diferencias entre archivo1 y archivo2 ⇒ “-B” ignora líneas en blanco diff archivo1 archivo2 ⇒ “-i” ignora la diferencia entre mayúsculas y minúsculas ⇒ “-w” ignora los espacios en blanco 241
  • 242. © FUOC • 71Z799002MO © Software libre A.7. Compresión de ficheros y copias de seguridad COMANDO SIGNIFICADO Y PARÁMETROS ÚTILES Une distintos archivos y directorios en uno solo (conocido como tarball, los cuales se caracterizan por terminar con “.tar”) ⇒ “-cf” crea un archivo a partir de los archivos y directorios origen ⇒ “-cvf” como en el caso anterior, pero mostrando por pantalla el proceso tar opciones archivo ⇒ “-cvzf” como en el caso anterior, pero comprimiendo los archivos con gzip [archivoOrigen] ⇒ “-x” para extraer el contenido de un tarball ⇒ “-xvzf” para extraer y descomprimir mostrando por pantalla los resultados del proceso (los archivos comprimidos se caracterizan por terminar en “.tar.gz” o “.tgz” cpio Para hacer copias de seguridad comprime el archivo y le da la extensión “.gz” gzip archivo ⇒ “-d” descomprime gunzip archivo Descomprime el archivo Comprime todos los archivos origen en archivo final (el cual se caracteriza por terminar con “.zip” zip archivoFinal archivoOrigen ⇒ “-e” encripta el archivo mediante una palabra clave que se pide al ejecutar el comando unzip archivo Descomprime el archivo A.8. Operaciones de disco COMANDO SIGNIFICADO Y PARÁMETROS ÚTILES Muestra el estado de las particiones montadas por lo que se refiere a espacio total, ocupado y libre df ⇒ “-h” muestra la información en unidades de bytes, KB, MB, GB ⇒ “-m” muestra la información en unidades de MB Muestra los bloques que ocupa archivo ⇒ “--block-size=TAMAÑO” nos permite establecer el tamaño de bloque que du [archivo] deseemos ⇒ “-h” muestra la información en unidades de bytes, KB, MB, GB ANOTACIONES Comando para crear un nuevo sistema de ficheros. Debido a la naturaleza del mkfs comando, se recomienda la lectura y la comprensión del manual del comando dumpe2fs dispositivo Muestra información del sistema de archivos indicado Hace un chequeo del sistema de archivos y repara sus posibles fallos. Es fsck dispositivo importante tener en cuenta que el dispositivo no debe estar montado en el sistema durante el uso del comando sync Sincroniza los archivos de caché y disco duro Busca errores en la partición especificada badblocks dispositivo ⇒ “-s” se “displaya” información del proceso 242
  • 243. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © A.9. Usuarios y grupos COMANDO SIGNIFICADO Y PARÁMETROS ÚTILES whoami Muestra qué usuarios somos groups Muestra el grupo al que pertenecemos Muestra los usuarios que están en el sistema en el momento de la ejecución del who comando ⇒ “-T” indica, para cada usuario, si permite la recepción de mensajes Muestra información extensa sobre los usuarios del sistema en el momento de la w [nombreUsuario] ejecución. Si no se especifica un usuario en concreto, nos la muestra para todos Para mandar un mensaje al usuario especificado. Para determinar la consola, write nombreUsuario [consola] podemos utilizar los comandos “who” o “w” talk nombreUsuario [consola] Abre una sesión de chat con el usuario especificado si éste la acepta Sin pasar parámetros, muestra si está o no activa la recepción de mensajes. El mesg [y-n] parámetro “y” la activa y el parámetro “n” la desactiva adduser [nombreUsurio] Crea un nuevo usuario del sistema userdel nombreUsuario Elimina el usuario especificado del sistema addgroup [nombreGrupo] Crea un nuevo grupo groupdel nombreGrupo Elimina un grupo del sistema A.10. Gestión de procesos COMANDO SIGNIFICADO Y PARÁMETROS ÚTILES Muestra los procesos del sistema ⇒ “-A” muestra todos los procesos que están ejecutándose en el sistema (igual que ps “-e”) ⇒ “-H” muestra los procesos ordenados por jerarquía ⇒ “-l” muestra información extensa sobre los procesos top Muestra los procesos en ejecución de forma interactiva Manda una señal de finalización del proceso kill PID ⇒ “-9” envía la señal de matar el proceso Manda la señal de fin de proceso a todos los procesos indicados killall nombreProceso ⇒ “-9” envía la señal de matar los procesos Muestra el nivel de prioridad de ejecución que se utiliza por defecto, y si se le pasa como parámetro un comando junto con la prioridad deseada, ajusta la prioridad nice [comando] ANOTACIONES del comando a la especificada ⇒ “-n nuevoNivel” ejecutará el comando con la prioridad especificada renice prioritad PID Cambia la prioridad del PID especificado Ejecuta el comando a la hora especificada at tiempo ⇒ “-f comando” especifica el comando a ejecutar atq Muestra la cola de espera de “at” Elimina un comando de la cola de espera. El número de comando es el que atrm numComando devuelve “atq” Ejecuta los comandos o procesos cuando la carga del sistema es baja. batch ⇒ “-f comando” para especificar el comando 243
  • 245. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © B. El editor vi B.1. Introducción Saber utilizar un editor de textos es imprescindible para poder editar Contenido y modificar los ficheros del sistema. Aunque existen centenares de complementario editores diferentes, el vi siempre ha sido el editor por defecto de los En GNU/Linux se suele utili- sistemas like UNIX. Aunque en un principio el vi pueda parecernos zar más el vim (Vi IMpro- ved), que es 99,9% un editor muy simple, a medida que nos vayamos acostumbrando a compatible con el vi pero sus comandos veremos que tiene muchísimas utilidades que nos fa- añade unas cuantas funcio- cilitan mucho la manipulación de los ficheros. Aunque para tareas nalidades más. largas (como cuando programamos) existen otros editores más úti- les, la gran mayoría de administradores de sistemas utilizan el vi para muchas de las tareas de administración. El hecho de que se tra- te de un editor en modo texto (que permite su utilización en la con- sola del sistema) y estar disponible en todos los sistemas hacen del vi el editor ideal en los entornos UNIX. Para llamar el vi podemos utilizar alguno de los métodos que vemos en la siguiente tabla: “vi archivo” Edita el fichero en modo “full screen” Recupera la última versión guardada del fichero (por los casos en que no “vi -r archivo” salimos correctamente del editor y queda un fichero de swap) “vi + archivo” Edita el fichero y se sitúa en la última línea “vi +numLínea archivo” Edita el fichero y se sitúa en la línea indicada Va editando todos los archivos especificados. Para saltar de uno a otro “vi archivo1 ...archivoN” debemos escribir en modo comando “:n”. Con “:n!” no guardamos las ANOTACIONES modificaciones “vi +/string archivo” Edita el fichero y sitúa el cursor en la primera ocurrencia del “string” B.2. Modos del vi El vi tiene dos modos de utilización: modo comando y modo inser- ción. En el modo comando todo lo que escribamos será interpretado 245
  • 246. © FUOC • 71Z799002MO © Software libre por el editor para realizar acciones concretas, mientras que el modo inserción se utiliza para modificar el contenido del archivo. Cuando entramos en el vi, por defecto estamos en modo comando. Para cambiar a modo inserción, podemos utilizar cualquiera de las teclas de la siguiente tabla: “a” Inserta después del carácter donde estamos situados “i” Inserta antes del carácter donde estamos situados “A” Añade al final de la línea actual “I” Añade al principio de la línea actual “R” Entra en modo inserción reemplazando caracteres Añade una línea en blanco debajo de la nuestra y pasa a modo “o” inserción Añade una línea en blanco encima de la actual y pasa a modo “O” inserción Para volver a modo comando, podemos utilizar la tecla ESC. En modo inserción lo único que podemos hacer es escribir texto, elimi- narlo o desplazarnos con las teclas de AVPAG y REPAG. El modo co- mando nos permite muchísimas más acciones. En las siguientes tablas especificamos algunas de las más comunes: Moviéndonos por el fichero “j” Siguiente línea “k” Línea anterior “l” Siguiente carácter “h” Carácter anterior “[[” Incio del archivo “]]” Final del archivo ANOTACIONES “nG” Ir a la línea “n” “G” Ir al final del archivo RETURN Siguiente línea CTRL+F Pantalla siguiente CTRL+B Pantalla anterior CTRL+D Media pantalla siguiente CTRL+U Media pantalla anterior 246
  • 247. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Operaciones con archivos “:w” Guarda el fichero “:w Guarda el fichero con el nombre indicado nombreArchivo” “:wq” Guarda el fichero y sale del editor “:x” Guarda el fichero y sale del editor “ZZ” Guarda el fichero y sale del editor “:q” Sale si no ha habido cambios en el fichero “:q!” Sale sin guardar los cambios Edita el archivo indicado si no hay cambios en el “:e archivo” actual Edita el archivo indicado perdiendo los cambios en “:e! archivo” el actual, si hubiera “:r archivo” Añade el archivo indicado después de la línea actual “:Nr archivo” Añade el archivo indicado después de la línea “N” Ejecuta un shell sin salir del editor; para salir del “:sh” shell debemos escribir “exit” Guarda desde la línea “N” a la “M” descartando “:N,Mw!” todas las otras “:N,M>>archivo” Añade desde la línea “N” a la “M” el archivo indicado “:=” Muestra la línea actual CTRL+G Muestra el estado del fichero Copiar, borrar, pegar, buscar y reemplazar “yy” Copia la línea actual “Nyy” Copia las “N” líneas a partir del cursor “p” Pega las líneas copiadas debajo de la actual “P” Pega las líneas copiadas encima de la actual “x” Borra el carácter de debajo del cursor “dw” Borra la palabra de debajo del cursor “dd” Borra la línea actual ANOTACIONES “D” Borra desde la posición del cursor hasta el final de línea Busca el “string” a partir de la posición actual. Para “/string” continuar con la búsqueda, se puede utilizar “n” y “N” para ir hacia delante o atrás respectivamente “?string” Como el comando anterior pero en modo invertido “:set ic” Realiza las búsquedas ignorando mayúsculas/minúsculas “:set noic” Realiza las búsquedas con mayúsculas/minúsculas “:g/HOLA/ Sustituye todos los “HOLA” por “ADIÓS” s//ADIOS” 247
  • 248. © FUOC • 71Z799002MO © Software libre En la línea inferior del editor veremos los comandos que vayamos es- cribiendo, que se ejecutarán al apretar el RETURN. Además, la ma- yoría de estos comandos permiten la repetición: tan sólo debemos escribir el número de veces que queremos que se ejecuten antes que el comando. Por ejemplo, con “dd” conseguimos que se borre la lí- nea actual; si escribiéramos “3dd” en lugar de la línea actual, se bo- rrarían las tres siguientes. ANOTACIONES 248
  • 249. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © C.Proceso de instalación de Red Hat Linux 9.0 C.1. Introducción En este apéndice se pretende dar una idea general de los pasos bá- sicos que hay que seguir para la instalación de Red Hat Linux 9.0. Se dan por sentados los conocimientos básicos adquiridos a lo largo del módulo y que han conducido a la instalación de Debian 3.0r1. Los conocimientos teóricos para abordar cualquiera de ambas instala- ciones son prácticamente los mismos, por este motivo, este apéndice está completamente orientado a praxis, y en él sólo se resaltan las diferencias entre los dos procesos de instalación. C.2. Inicio de la instalación C.3. RHinicioinst Para inicializar el proceso de instalación, basta con arrancar el orde- nador desde CD-ROM y con el primer CD-ROM de la distribución dentro del dispositivo. Una vez terminado el proceso de arranque, se nos muestra una pantalla inicial con el logotipo de Red Hat Linux jun- to con una serie de opciones asociadas a las teclas desde F1 hasta F5, y se nos indica que si deseamos usar el modo gráfico para rea- lizar la instalación, basta con pulsar INTRO para inicializarla o que, ANOTACIONES si deseamos hacerlo en modo texto, debemos escribir text y pulsar INTRO. Salvo casos excepcionales, siempre se escoge el modo grá- fico, ya que hace más amena la instalación. Antes de entrar en el modo gráfico, se nos preguntará si deseamos hacer un testeo del soporte físico de donde se extraerán los datos para la instalación. Si estamos seguros de que nuestros CD no están dañados en forma alguna, podemos omitir este proceso. 249
  • 250. © FUOC • 71Z799002MO © Software libre A continuación se arranca anaconda, el programa base de la insta- lación. Transcurridos unos segundos, entramos en la pantalla de bienvenida del programa. A partir de este momento, la pantalla es- tará dividida en dos áreas. En la de la izquierda se nos informa del punto de la instalación donde nos hallamos y se nos suministra in- formación relativa al mismo; a la derecha se nos muestran las opcio- nes disponibles. En todo momento dispondremos del ratón para hacer las selecciones que estimemos oportunas. C.4. Primeros aspectos En primer lugar, debemos seleccionar el idioma que se usará durante el proceso de instalación. Esta selección no afectará en ningún aspecto a la instalación resultante. En segundo lugar, hay que configurar el te- clado. Este aspecto sí que es importante de cara al resultado de la ins- talación. El tercer punto es la configuración del ratón. C.5. Tipo de instalación Llegados a este punto, se nos pregunta por el tipo de sistema de ins- talación que queremos hacer. Probablemente, en la mayoría de los casos la mejor opción es la última que se nos ofrece, es decir, la per- sonalizada, ya que, tal como se nos indica, esto nos permitirá tener el máximo control del proceso de instalación. El resto de opciones son simplificaciones de esta opción y, en consecuencia, se traducen direc- tamente en una pérdida de control acerca de lo que se está haciendo. ANOTACIONES C.6. Partición del disco duro El sistema de instalación nos propone por defecto la partición del dis- co duro. Alternativamente, se nos ofrece la posibilidad de utilizar Disk Druid para realizar nosotros mismos esta tarea. Es recomen- dable optar por esta última opción, ya que el programa es fácil de utilizar, y además nos permitirá estructurar la partición a la medida de nuestras necesidades. Si ya disponemos de una partición swap, 250
  • 251. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © aunque sea de otro sistema, no necesitaremos crear una nueva para esta instalación, puesto que podremos usar la existente, ya que en las particiones de tipo swap sólo se guarda información de tipo volátil. C.7. Gestor de arranque En este caso, Red Hat Linux nos propone como gestor de arranque Grub. Si ya disponemos de un gestor de arranque en nuestro equipo, no es necesario, a no ser que deseemos reemplazarlo, proceder a la instalación de Grub. Bastará con adecuar la configuración de arran- que para que nos permita acceder al nuevo sistema operativo. C.8. Configuración de dispositivos El programa de instalación detectará la mayor parte del hardware que tengamos instalado, y llegados a este punto, se nos muestran las pantallas pertinentes para su configuración. Por lo que a la configuración de red se refiere, el programa de ins- talación nos preguntará por la gestión de la seguridad, basándose en la configuración de un firewall. Si optamos por utilizarlo, debere- mos especificar los puertos a los que se deja acceso externo. Es un tema que deberemos tener siempre presente, ya que el resto de puer- tos estarán cerrados. Así pues, si configuramos algún servicio que use un puerto que no hayamos especificado en este apartado, debe- remos abrirlos manualmente a posteriori. ANOTACIONES C.9. Configuración idiomática En este apartado sí que es importante que especifiquemos cuál es el idioma del mapeado del teclado, ya que esto nos permitirá tener ac- ceso a todos sus caracteres. A continuación, se nos mostrará un mapa mundi donde deberemos especificar nuestro posicionamiento geográfico mediante el ratón. 251
  • 252. © FUOC • 71Z799002MO © Software libre C.10. Política de passwords En primer lugar se nos pedirá que introduzcamos el password de root, el cual deberá contener como mínimo seis caracteres. Una vez hecho esto, se nos mostrará que tanto el sistema de passwords md5 como el de shadow se instalarán, a no ser que especifiquemos lo contrario, y se nos permitirá establecer las configuraciones de los sis- temas NIS, LDAP, Kerberos 5, y Samba (para un sistema stand alone, ninguno de estos sistemas debe ser configurado). C.11. Selección de aplicaciones A continuación, debemos seleccionar las familias de aplicaciones que queremos instalar, y dentro de ellas, qué aplicaciones deseamos que se instalen en nuestro sistema. Una vez más se insta a que no se instalen masivamente aplicaciones, ya que esto va claramente en de- trimento del rendimiento del sistema, sino que sólo se instalen aque- llas que sabemos de forma certera que vamos a utilizar, y que vayamos instalando el resto de aplicaciones a medida que las nece- sitemos. Sí que es recomendable, si se van a usar, dejar las seleccio- nes que están hechas para el sistema gráfico. Una vez terminada la selección, se iniciará la instalación de todo el sistema: formateo de particiones, configuración de dispositivos e instalación de paquetes, a partir de la información que se ha facilitado. Si no disponemos de suficiente espacio en el disco duro para que se instalen todas las apli- caciones, se nos devolverá al entorno de configuración, para que, o bien deseleccionemos algunas de las aplicaciones, o para que asig- nemos más espacio a la partición pertinente (normalmente, la que alberga el directorio /home, que es en la que se instalan la mayoría de datos –para refraccionar el disco, habrá que volver a inicializar el ANOTACIONES proceso de instalación). C.12. Boot disk Cuando el proceso de transferencia de datos ha terminado, automá- ticamente se arranca el proceso de postinstalación, se instala el boot loader, si es el caso, y una vez han finalizado estos procesos auto- 252
  • 253. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © máticos, se nos pregunta si deseamos crear un boot disk, el cual pue- de ser usado para arrancar la nueva instalación, si no hemos instalado el boot loader o no hemos configurado el que ya teníamos instalado correctamente. C.13. Configuración del sistema gráfico En la mayoría de casos, llegados al apartado de configuración del sistema gráfico (este apartado se puede omitir y realizar a la confi- guración manualmente mediante el sistema de nuestra elección), si es que hemos seleccionado sus paquetes para ser instalados, el sis- tema de instalación detectará automáticamente el tipo de tarjeta de vídeo y nos propondrá el driver a utilizar; lo mismo sucederá con el monitor. Finalmente, deberemos especificar la resolución con la que queremos trabajar, y la profundidad de color. Asimismo, se nos pe- dirá que especifiquemos qué tipo de login deseamos utilizar, si el gráfico, opción por defecto, o bien el de modo texto. C.14. Últimos pasos Aquí termina la instalación del sistema operativo y de todas las apli- caciones seleccionadas durante el proceso. Basta con “rebootar” el sistema para que la primera vez que lo arranquemos se nos pregunte si deseamos utilizar kudsu para proceder a la configuración del hardware presente. En primer lugar se nos sugiere la creación de una cuenta de usuario estándar para evitar el uso de root indiscriminadamente. Tras la con- ANOTACIONES figuración de fecha y hora, se nos preguntará si deseamos registrar nuestro sistema operativo, y a continuación, si lo deseamos, podre- mos proceder a la instalación de más paquetes. Es el momento de instalar aquellos paquetes que están dentro de la distribución oficial, y que deseamos utilizar. Una vez finalizada la instalación de paque- tes adicionales, tenemos el sistema totalmente operativo y listo para ser utilizado. Se recomienda la lectura de http://rpm.redhat.com/ RPM-HOWTO/, ya que Red Hat Linux usa su propio sistema de pa- quetes. 253
  • 255. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © D.Herramientas de administración D.1. Introducción Cuando se administra un sistema GNU/Linux es necesario conocer una gran variedad de aplicaciones y programas diferentes. Aunque antes de instalar cualquier aplicación es totalmente imprescindible leerse detenidamente la documentación que incorpora, en algunos casos las configuraciones pueden llegar a ser realmente complejas. Por este motivo, desde hace ya varios años han ido apareciendo he- rramientas de administración más intuitivas que permiten manejar múltiples aplicaciones y servicios de forma más amena. Generalmente, estas herramientas globales de administración in- Contenido corporan mecanismos para poder configurar y manejar los aspec- complementario tos básicos del sistema y los ficheros de configuración de las Cuando instalamos alguna aplicaciones que utilizamos. Si bien es interesante saber que exis- herramienta general de ad- ten estas herramientas, no es recomendable que basemos toda la ministración, es muy im- portante que limitemos su configuración de un servidor en ellas por varios motivos. En pri- uso y acceso a sólo el root mer lugar, debemos tener en cuenta que estos programas no del sistema, de lo contrario cualquier usuario podría siempre tienen en cuenta todas las posibilidades que los servido- modificar cualquier aspecto res proporcionan. Esto puede provocar que dejemos sin una con- del sistema. Además, tam- figuración adecuada alguna opción importante para nuestras bién debemos estar muy alerta de los agujeros de se- necesidades, que no tengamos en cuenta algún sistema de segu- guridad que pueden apare- ridad, etc. En segundo lugar, tampoco podemos olvidar que aun- cer en ellas, ya que al tener que el entorno de configuración sea más ameno y, generalmente, que manejar los programas instalados en el sistema, la más fácil de utilizar y manejar, debemos conocer qué es lo que mayoría de estas herra- ANOTACIONES realmente se hace cuando activamos las opciones de los diferen- mientas deben ejecutarse con los permisos de root, tes programas y servicios que configuramos. Aunque el entorno con el peligro que esto su- sea muy intuitivo, esto no implica que no debamos saber qué sig- pone. nifica exactamente cada opción. Si no tenemos un conocimiento extenso del servicio que estamos manipulando, es muy fácil gene- rar errores que pueden provocar un mal funcionamiento del siste- ma, agujeros de seguridad, etc. Finalmente, otro motivo para no utilizar únicamente estas aplicaciones es que en algún momento el sistema puede tener fallos o errores que no nos permitan utili- 255
  • 256. © FUOC • 71Z799002MO © Software libre zarlas o sencillamente que en otros sistemas que tengamos que administrar no estén instaladas. Si no conocemos con un poco de detalle los ficheros de configuración de las aplicaciones que utili- zamos, nos encontraremos totalmente indefensos ante cualquier pequeño problema que pueda surgir. Por todo ello, la utilización de estas herramientas debe realizarse con cuidado y sabiendo exactamente qué es lo que están modificando. En algunos casos pueden ser muy útiles para ver cómo realizar algún tipo de configuración complicada o para detectar errores que haya- mos generado. La forma como deberíamos utilizarlas debe servirnos a modo de complemento de nuestra administración, pero nunca ba- sarnos totalmente en ellas. Todas las distribuciones de GNU/Linux acostumbran a incorporar sus propias herramientas automáticas de administración. Esto es una característica claramente diferenciadora de las distintas dis- tribuciones de GNU/Linux. En SuSE, por ejemplo se incorpora una aplicación denominada Yast2, que nos permite realizar casi cualquier operación de configuración del sistema; RedHat incor- pora múltiples programas diferentes para configurar la red, los daemons, los servidores de aplicación, etc.; al instalar un paquete en Debian, ya se permite inicializar una configuración a partir de las respuestas que damos en varias pantallas de diálogo; algunas aplicaciones llevan sus propios scripts para permitir configuracio- nes estándar más rápidas, etc. Aun así, si sabemos qué es lo que realmente hacen estas aplicaciones y en qué ficheros guardan su configuración, al tener problemas con el sistema su arreglo será mucho más fácil. Además de estas herramientas únicas para la distribución que utilicemos, existen otras generales que podemos instalar en la mayoría de distribuciones existentes. Aunque hay unas cuantas decenas y cada administrador debe escoger la que ANOTACIONES más le guste o se adapte a sus necesidades, en este apéndice mostraremos un par de las más versátiles y populares: linux- conf y webmin. 256
  • 257. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © D.2. Linuxconf La aplicación de administración general Linuxconf está basada en un entorno de menús de texto que podemos utilizar desde cual- quier consola del sistema. En la siguiente figura podemos ver el menú principal: ANOTACIONES Como podemos apreciar en la imagen, linuxconf divide sus ope- raciones en las siguientes secciones: • Configuración: ésta es la sección principal de linuxconf, don- de podemos configurar la mayoría de aspectos del sistema como la red, los usuarios, los periféricos instalados, etc. En las siguien- tes figuras podemos ver el diálogo de configuración de la red y de usuarios: 257
  • 258. © FUOC • 71Z799002MO © Software libre • Control: sección para realizar acciones concretas en el sistema ta- les como montar o desmontar unidades, cambiar la hora del sis- tema, personalizar los menús, etc. En la siguiente figura podemos apreciar algunas de las acciones del menú de panel de control: ANOTACIONES • Estado: cuando queramos ver los logs o el estado de algún aspec- to del sistema, podemos recurrir a los menús de esta sección. En ellos se utilizan muchos de los comandos básicos del sistema para ver el estado del disco, la memoria usada, etc. • Tareas: otros diálogos de configuración para inicializar correcta- mente un módem, la red, etc. 258
  • 259. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © Otra forma de utilizar este programa es a partir de un navegador web. Por defecto, el acceso vía navegador está cerrado, por lo que antes de utilizarlo deberemos habilitarlo a partir del menú de Networking, Linuxconf network access y activando la opción de Enable network access. Abriendo el navegador y accediendo a http://localhost:98/ tendremos los mismos diálo- gos y opciones del menú de linuxconf en formato html. Por defecto, sólo se podrá acceder a este servicio desde la misma má- quina, aunque es recomendable activarlo solamente cuando lo queramos utilizar. Finalmente, otro proyecto relacionado con linuxconf es el gnome-linuxconf, que tiene las mismas funciones que veíamos anteriormente pero se puede utilizar en las X. En la siguiente figura podemos ver su aspecto: D.3. Webmin ANOTACIONES Tal como su nombre indica, webmin es una herramienta de confi- guración vía web. Su diseño está muy bien conseguido y la mayoría de sus métodos de configuración están muy bien pensados. Bien uti- lizada, es una herramienta que puede llegar a sernos muy útil. Por defecto, al instalarla abre el puerto 10000 para que podamos acce- der a ella a partir de un navegador cualquiera. Antes de entrar nos pedirá la contraseña del administrador del sistema, aunque también tiene un sistema muy útil de administración de usuarios propios, por 259
  • 260. © FUOC • 71Z799002MO © Software libre medio del cual podemos especificar qué acciones puede realizar cada uno de ellos. Esta opción es muy interesante porque permitirá configurar más de un administrador de sistema cada uno especiali- zado en algunas tareas. Para hacernos una idea de la aplicación, a continuación mostramos una serie de capturas de diferentes secciones: • Administración de usuarios del sistema: • Configuración de arranque del sistema: ANOTACIONES 260
  • 261. Sistema operativo GNU/Linux básico © FUOC • 71Z799002MO © • Información de disco: • Navegador de archivos: ANOTACIONES 261
  • 264. U La universidad virtual Formación de Posgrado