Você está na página 1de 149

Gee is Not another UNIX manual

(a debian based intro)

febrero 2004 - versin 2.4 (es)

Aviso legal
Se garanitza permiso para copiar, distribuir y modificar este documento segn los trminos de la
GNU Free Documentation License, versin 1.2 o cualquier posterior publicada por la Free Software Foundation. Se dispone de una copia de esta licencia en el apndice D y sta o posteriores en
http://www.fsf.org/licenses/fdl.txt .
Agradecimientos
Los autores agradecen a la Fundaci per la Universitat Oberta de Catalunya (www.uoc.edu) la financiacin de la primera edicin de esta obra, enmarcada en el Mster Internacional en Software LLiure.
Tambin se agradece la colaboracin de todos aquellos que han aportado sus sugerencias, comentarios y
correciones, en especial a Guillem Jover.
Se agradecer cualquier sugerencia/comentario/correcin del documento (pg. final para contactar).
Documento y fuentes disponibles en: http://jane.uab.es/pub/guides/geedgli/

Aunque hace ya ms de veinte aos que el software libre existe, no ha sido hasta los ltimos tiempos que se
ha perfilado como una alternativa vlida para muchos usuarios, empresas y, cada vez ms, instituciones y
gobiernos. Actualmente GNU/Linux es uno de los sistemas operativos ms fiables y eficientes que podemos
encontrar. Aunque su naturaleza 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 el mismo obtendremos las claves
para entender la filosofa del cdigo libre, aprenderemos cmo usarlo y manipularlo a nuestro gusto y
daremos las herramientas necesarias para poder movernos fcilmente en este nuevo mundo. El documento
tampoco pretende ser un manual de referencia imprescindible para administradores y/o usuarios; para esto
ya hay centenares de manuales, HOWTOS y multitud de otras referencias que nos ocuparan millares de
pginas. Aqu pretendemos aprender a dar los primeros pasos en esta tierra poco explorada para todava
demasiados usuarios y administradores a la vez que ensearemos cmo plantear y resolver por nosotros
mismos los problemas que puedan aparecer.
Aunque el curso no pretende basarse en ninguna distribucin en particular, en la mayora de ejemplos
y actividades se utilizar Debian GNU/Linux (versin 3.0 -Woody-). Aunque no es una distribucin tan
intuitiva y fcil de utilizar como algunas otras, nos servir para explicar paso a paso todas las caractersticas
de un sistema operativo basado en GNU/Linux. Adems, su extraordinaria calidad, estabilidad y seguridad
la hacen una de las opciones actualmente ms vlidas.
Esperamos que el curso sea de su agrado y sirva para abrirle las puertas al mundo del software libre. Como
ms usuarios seamos, ms y de mejor calidad software tendremos.
Bienvenidos al GNU/Linux!

ndice general
1. Introduccin

1.1. Qu es el GNU? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2. Qu es el GNU/Linux? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.3. Distribuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.4. Programas y documentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2. Conceptos y comandos bsicos

2.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.2. Usuarios y grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.3. El sistema de ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.3.1. La jerarqua del sistema de ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.3.2. Directorios del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

2.3.3. Movindonos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

2.3.4. Enlaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

2.3.5. Permisos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

2.3.6. Manipulacin, patrones y bsquedas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

2.3.7. Tipos y contenido de ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

2.4. Los procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

2.5. Otros comandos tiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

2.5.1. La ayuda del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

2.5.2. Empaquetado y compresin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

2.5.3. Operaciones de disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

2.6. Operaciones con comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

2.6.1. Redirecciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

2.6.2. Comandos especficos del bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

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

23

3. Taller de KNOPPIX

25

3.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

3.2. Arranque del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

3.3. Paro del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

3.4. Configuracin del teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

3.5. Inspeccin del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

3.6. Manejo directorios y ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29

NDICE GENERAL

II

3.7. Administracin de usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

3.8. Gestin de processos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

3.9. Activacin y uso del ratn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

3.10. Otras operaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

3.11. Conclusin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

38

4. Instalacin de GNU/Linux

39

4.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

4.2. Arrancando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

4.3. Particionando el disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

4.4. Instalacin de mdulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

41

4.5. Configuracin bsica de la red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

4.6. Sistema de arranque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

4.7. Eleccin de paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

4.8. Otros aspectos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

5. Taller de instalacin de Debian Woody

44

5.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

5.1.1. Sistemas de instalacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

5.1.2. Tipos de paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

45

5.1.3. Estado de desarrollo de los paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

5.2. Instalacin de Debian Woody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

5.2.1. Flavours de Debian Woody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

5.2.2. CDROMs de Debian Woody y sus distintos flavours . . . . . . . . . . . . . . . . . . . . . . . .

47

5.2.3. Installing Debian GNU/Linux 3.0 For Intel x86 . . . . . . . . . . . . . . . . . . . . . . . . . . .

47

5.3. Instalacin de Debian Woody mediante CDROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

47

5.3.1. Antes de empezar la instalacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

47

5.3.2. Arranque del sistema de instalacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

48

5.3.3. Configuracin del idioma de instalacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

5.3.4. Men principal de instalacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

5.3.5. Configuracin del teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

5.3.6. Particin del disco duro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

5.3.7. Inicializacin y activacin de la particin swap . . . . . . . . . . . . . . . . . . . . . . . . . . .

51

5.3.8. Inicializacin y activacin de una particin Linux . . . . . . . . . . . . . . . . . . . . . . . . . .

51

5.3.9. Inicializacin y activacin de otras particiones Linux . . . . . . . . . . . . . . . . . . . . . . . .

51

5.3.10. Instalacin del kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

52

5.3.11. Configuracin de mdulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

52

5.3.12. Configuracin del hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

52

5.3.13. Instalacin del sistema base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

52

5.3.14. Creacin de un disco de arranque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

52

5.3.15. Instalacin de LILO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

5.3.16. Reinicializacin del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

5.3.17. Arranque del sistema base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

NDICE GENERAL

III

5.3.18. Configuracin horaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

5.3.19. Configuracin geogrfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

5.3.20. Establecimiento de la poltica de passwords . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

5.3.21. ltimas configuraciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

5.3.22. Configuracin de apt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

55

5.3.23. tasksel y dselect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

55

5.4. Instalacin de Debian Woody por red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

5.4.1. Particularidades de una instalacin por red . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

5.4.2. Aspectos comunes de los distintos mtodos de instalacin . . . . . . . . . . . . . . . . . . . . .

56

5.4.3. Instalacin del mdulo de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

5.4.4. Configuracin de la red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57

5.4.5. Configuracin de apt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57

5.5. Conclusin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

58

6. Configuraciones bsicas

59

6.1. El sistema de login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

59

6.2. Explorando el bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

60

6.3. El sistema de arranque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

61

6.3.1. Lilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

61

6.3.2. Grub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

64

6.4. Acceso a otras particiones y dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

65

6.5. Configuracin de dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

6.5.1. El teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

6.5.2. Tarjeta de red (tipo Ethernet) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

68

6.5.3. Tarjeta WiFi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

70

6.5.4. Mdems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

70

6.5.5. Tarjeta de sonido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

6.5.6. Impresora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

7. Daemons y runlevels

73

7.1. Los daemons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

7.2. Los runlevels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

75

7.3. El arranque del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

77

7.4. Daemons bsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

78

7.4.1. Logs de sistema (sysklogd) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

78

7.4.2. Ejecuciones peridicas (cron) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

79

7.4.3. Ejecuciones retardadas (at y batch) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

80

8. Instalacin de aplicaciones

82

8.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

82

8.2. El sistema de paquetes Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

82

8.3. Compilacin de nuevos programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

85

NDICE GENERAL

IV

9. Taller de configuraciones bsicas

87

9.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

87

9.2. El gestor de arranque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

87

9.2.1. Instalacin de LILO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

87

9.2.2. Instalacin de grub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

88

9.3. El sistema de paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

90

9.3.1. /etc/apt/sources.list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

90

9.3.2. apt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

91

9.3.3. dpkg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

93

9.3.4. dselect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

94

9.3.5. aptitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

94

9.4. locales: configuracin regional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

94

9.5. Configuracin de man y su pager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

95

9.6. El archivo principal de arranque, /etc/inittab . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

95

9.7. Montaje de dispositivos, /etc/fstab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

95

9.8. Configuracin de dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

96

9.8.1. Configuracin del ratn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

97

9.8.2. Configuracin de mdems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

98

9.8.3. Configuracin de mdems DSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

99

9.8.4. Configuracin de tarjetas de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

99

9.8.5. Configuracin de impresoras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101


9.8.6. Configuracin de tarjetas de sonido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
9.9. Conclusin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
10. Arquitectura X-Window

103

10.1. Qu es X-Window? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103


10.2. Configuracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
10.3. X display manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
11. Taller de X-windows

110

11.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110


11.2. Instalacin del sistema bsico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
11.2.1. Distintas estrategias para la instalacin de los paquetes . . . . . . . . . . . . . . . . . . . . . . . 110
11.2.2. Instalacin de paquetes bsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
11.2.3. Inicializacin del servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
11.2.4. El fichero de log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
11.2.5. El servidor de fuentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
11.3. Window Managers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
11.4. X Session Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
11.5. X Display Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
11.6. Desktop Managers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
11.6.1. GNOME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
11.6.2. KDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

11.7. Personalizacin de algunos aspectos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118


11.7.1. Personalizacin de aspectos locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
11.7.2. Personalizacin de aspectos de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
11.8. Configuracin de impresoras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
11.9. OpenOffice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
11.10.Conclusin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
A. Tablas de comandos

124

A.1. Sistema de ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124


A.2. Ayuda del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
A.3. Permisos de los ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
A.4. Copia y borrado de ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
A.5. Parada o reinicio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
A.6. Operaciones con ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
A.7. Compresin de ficheros y copias de seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
A.8. Operaciones de disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
A.9. Usuarios y grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
A.10.Gestin de procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
B. El editor vi

130

B.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130


B.2. Modos del vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
C. Heramientas de administracin

133

C.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133


C.2. Linuxconf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
C.3. Webmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
D. GNU Free Documentation License

137

Captulo 1

Introduccin
1.1. Qu es el GNU?
Para entender todo el movimiento del software libre debemos situarnos a finales de la dcada de los sesenta, principios
de los setenta. En aquellos tiempos las grandes compaas de ordenadores no daban el valor que hoy da se d al software. En su gran mayora eran fabricantes de ordenadores que obtenan sus principales ingresos vendiendo sus grandes
mquinas, a las que incorporaban algn tipo de sistema operativo y aplicaciones. Las universidades tenan permiso para
coger y estudiar el cdigo fuente del sistema operativo para fines docentes. Los mismos usuarios podan pedir el cdigo
fuente de drivers y programas para adaptarlos a sus necesidades. Se consideraba que el software no tena valor por si mismo si no estaba acompaado por el hardware que lo soportaba. En este entorno, los laboratorios Bell (AT&T) disearon
un sistema operativo llamado UNIX, caracterizado por la buena gestin de los recursos del sistema, su estabilidad y su
compatibilidad con el hardware de diferentes fabricantes (para homogeneizar todos sus sistemas). Este ltimo hecho fue
importantsimo (hasta entonces todos los fabricantes tenan sus propios operativos incompatibles con los otros) y fue el
factor que le proporcion mucha popularidad.
Poco a poco, las grandes empresas empezaron a tomar conciencia del valor del software: primero fue IBM quin
en 1965 dej de dar el cdigo fuente de su sistema operativo, a finales de los 70 Digital Research empez a vender el
suyo, etc. Este hecho hizo que todas las compaas se dieran cuenta que el software poda ser muy rentable y les poda
aportar grandes beneficios. Con sto, la mayora de empresas empezaron a poner reticencias a dejar el cdigo fuente de
sus programas y sistemas operativos y empezaron a vender sus programas como un valor aadido a su hardware. En este
entorno cada vez ms cerrado, Richard Stallman (que trabajaba en el MIT -Massachusetts Institute of Technology-) se
sinti indignado al comprobar que cada vez era ms difcil conseguir el cdigo fuente de los programas que utilizaba para
adaptarlos a sus necesidades, tal y como haba hecho hasta entonces. Como ancdota, el mismo Stallman cuenta lo mucho
que se enfad al descubrir que la compaa que les haba vendido una nueva impresora para el laboratorio donde trabajaba
no le quera facilitar el cdigo fuente de los drivers. l slo quera modificarlos para que le avisara automticamente
cuando se atascaba el papel! La compaa se neg absolutamente a proporcionrselos.
A partir de ese momento Stallman decidi ser consecuente con sus ideales e iniciar un gran proyecto para intentar
abrir otra vez el cdigo fuente de los programas. Consciente que no podra conseguir que las compaas cedieran en este
punto, se propuso crear su propio sistema operativo y aplicaciones iniciando un proyecto llamado GNU (Gees Not UNIX
modificado ms tarde por GNUs Not UNIX), aadindose a la moda de los nombres/bromas recursivas de aquel tiempo.
De especial inters para entender los motivos que llevaron a Stallman a iniciar GNU es su primer manifiesto, el
documento dnde explic a toda la comunidad qu sera el proyecto, cmo lo orientara y por qu tena que hacerlo. En
l empez a describir el concepto de software libre y para qu crea necesario que programadores y desarrolladores de
alrededor del mundo contribuyeran con l. Aunque en muchas ocasiones se confunde el concepto de software libre con
el de software gratuito (en ingls, free tiene los dos significados), 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 cdigo fuente, estudiarlo, modificarlo y redistribuirlo sin que nos obliguen a pagar por ello. Lo que debemos
tener claro es que s podemos pedir el dinero que queramos por los programas y su cdigo fuente, el soporte que podemos
ofrecer a los usuarios, los libros que vendamos o el material que proporcionemos, tal y como muchas compaas que
distribuyen GNU/Linux hacen. En ningn momento, pero, podemos obligar que los usuarios no distribuyan el software
que les hemos vendido. ste debe poder ser distribuido de forma libre. Es una forma de entender el software diferente a
1

CAPTULO 1. INTRODUCCIN

la que estamos acostumbrados. En muchos de los textos de la FSF (Free Software Foundation) se habla ms de filosofa
que de ingeniera. Debemos entender todo este movimiento ms como una forma de pensar o hacer las cosas que como
una compaa de software ms.
La filosofa que se tiene en la FSF del software lo define con las siguientes cuatro libertades:
La libertad 0 se refiere a la libertad de poder usar el programa para cualquier propsito.
La libertad 1 es la que te permite estudiar cmo funciona el programa y adaptarlo a tus necesidades. El acceso al
cdigo fuente es una condicin necesaria para garantizar esta libertad.
La segunda libertad es la que te permite distribuir libremente copias del software, ayudando a tu vecino.
La ltima libertad es la que te permite mejorar el programa y hacer pblicas tus mejoras a los dems, en beneficio de
toda la comunidad. El accesso al cdigo fuente tambin es un requisito imprescindible 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
esribi la licencia con la cual se ha protegido todo este tipo de programas, la GPL (General Public License). Esta licencia
pone por escrito todas las ideas anteriormente comentadas.
El proyecto empez a producir software a partir del 1984, comenzado con el desarrollo de todas la herramientas
necesarias para poder implementar un sistema operativo completo. Aunque realizar un proyecto de estas caractersticas es
largo y complejo, desde el principio muchos programadores y desarrolladores de software se vieron cautivados por la idea
de Stallman y empezaron a colaborar con l de forma gratuita. La comunidad no par de crecer y poco a poco empezaron
a disponer de las herramientas necesarias (editores, compiladores, etc.) para implementar el ncleo del sistema operativo.
Tal y como la misma palabra indica, el ncleo (kernel) de un sistema operativo es el corazn con el cul puede funcionar. Es
el ncleo de software que gestiona los recursos del ordenador: se comunica con los dispositivos y aplicaciones instalados,
administra la memoria adecuadamente, reparte tiempo de procesamiento para todos los programas, se comunica con los
dispositivos de almacenamiento para guardar los archivos, etc. Esta tarea es de una complejidad muy notable y necesita las
herramientas que inicialmente desarroll el proyecto GNU. Desde el primer momento se quiso hacer un sistema operativo
parecido a UNIX y siguiendo las normas POSIX (Portable Operating System Interface). Aunque UNIX tambin tena
sus problemas y carencias era, y sigue siendo, suficientemente bueno para adaptarse a la mayora de necesidades. La
tarea de disear y escribir el ncleo del sistema operativo fue la que se dej para el final. Todava hoy no se ha acabado
definitivamente y el ncleo del GNU, llamado Hurd, an est en fase de desarrollo.
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 todava no tena ningn ncleo 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 haba podido utilizar el cdigo fuente del UNIX de AT&T para que sus
alumnos aprendieran a disear sistemas operativos. Su idea era escribir un sistema operativo que pudiera ser estudiado y
modificado por cualquiera que quisiera. En 1987 se pus manos a la obra y llam a su proyecto mini UNIX, dando lugar
a MINIX. Al no utilizar ni una sola lnea de cdigo del UNIX de AT&T, no hay ninguna restriccin en coger el cdigo,
utilizarlo y modificarlo libremente.
Tanenbaum quis crear un sistema orientado a fines docentes, con lo que lo dise utilizando una arquitectura microkernel. La tecnologa micro-kernel se basa en dividir las diferentes funcionalidades del ncleo de un sistema operativo en

1.2. QU ES EL GNU/LINUX?

programas totalmente separados y que se comunican entre s. Esto lo hace muy modular, facilitando muchsimo el test,
deteccin y correccin de errores, mantenimiento, etc. Actualmente algunos sistemas operativos como Amoeba, Chorus,
Mach o WindowsNTTM han incorporado este tipo de tecnologa. Este tipo de ncleo es ideal para una fcil comprensin,
aportando una tecnologa muy novedosa para la poca que le permita mucha versatilidad, multiplataforma, etc. ste ha
sido uno de los puntos fuertes y dbiles a la vez del MINIX: aunque el sistema es una pequea joya para su estudio
y diseo, es muy probable que nunca se pueda utilizar en entornos reales. Se opt por hacerlo entendedor, modular y
muy pedaggico, pero no por ser rpido. De todas formas, Tanenbaum tampoco pretenda eso; a lo largo de los aos
MINIX ha ido evolucionando y realmente hoy en da todava sigue existiendo y siendo estudiado por muchos alumnos de
Universidades de alrededor del mundo.
Aqu es cuando entra en juego Linux. Mientras la FSF segua con su gran proyecto proporcionando herramientas para
la construccin de un sistema operativo, Tanenbaum orientaba MINIX para fines docentes y muchas empresas seguan
evolucionando sus propias versiones de UNIX, Linus Torvalds, estudiante de la Universidad de Helsinki, decide crear
en agosto de 1991 su propio ncleo para un nuevo sistema operativo, Linux. Su idea era crear un UNIX para PC para
que todos los que quisieran lo pudieran utilizar en su ordenador. La primera aparicin en escena fue en un debate sobre
MINIX y sistemas operativos, dnde expuso las siguientes ideas:

Newsgroups: comp.os.minix
Subject: What would you like to see most in minix?
Date: 25 Aug 91 20:57:08 GMT
Organization: University of Helsinki
Hello everybody out there using minix.
Im doing a (free) operating system (just a hobby,
wont be big and professional like gnu) for 386(486)
AT clones. This has been brewing since april, and
is starting to get ready. Id like any feedback on
things people like/dislike in minix, as my OS resembles
it somewhat (same physical layout of the file-system
(due to practical reasons) among other things).
Ive currently ported bash(1.08) and gcc(1.40),
and things seem to work.
This implies that Ill get something practical
within a few months, and Id like to know what
features most people would want. Any suggestions
are welcome, but I wont promise Ill implement
them :-)

Si accediramos al frum de debate donde apareci este primer mensaje veramos como rpidamente gente de alrededor del mundo empez a interesarse por este nuevo sistema, que al utilizar el compilador e intrprete de comandos de
GNU (gcc y bash) como piezas fundamentales tambin tena las caractersticas de software libre. Aunque en palabras del
mismo Torvalds, si l mismo hubiera sabido la cantidad de trabajo necesario para lograr que su idea funcionase, nunca lo
hubiera hecho, los esfuerzos de muchos expertos en informtica de alrededor del mundo hicieron este proyecto posible.
Linux, el ncleo de GNU/Linux es de tipo monoltico. sto indica que no se separan las diferentes funcionalidades del
mismo en diferentes mdulos, sino que todo es un mismo programa. El principal inconveniente de este tipo de diseo es
que la localizacin de errores y mantenimiento son muy costosos. En contrapartida, el rendimiento que se consigue es
mucho mayor que en otros tipos de diseo.
De hecho, en los primeros aos de su existencia, GNU/Linux se identificaba como el sistema operativo de los hackers.
Su difcil instalacin, manipulacin y falta de drivers lo hacan una herramienta slo apta para gente muy entendida en
el tema. Fueron estos primeros usuarios los que disearon los drivers para los discos, impresoras, tarjetas, etc. y los que
empezaron a dar a conocer al mundo este sistema. Poco a poco, el nmero de usuarios empez a crecer y actualmente ya
existen muchas empresas y grupos de usuarios que crean sus propias distribuciones de GNU/Linux.

CAPTULO 1. INTRODUCCIN

1.3. Distribuciones
Actualmente existen muchas distribuciones diferentes basadas en GNU/Linux. Las hay para toda clase de ordenadores
y dispositivos electrnicos: ordenadores porttiles o de sobremesa, pocketPC o PDA, puntos de acceso de redes wireless,
etc. La naturaleza del software libre permite esto: cualquiera puede coger el cdigo desarrollado hasta el momento y
adaptarlo a sus propias necesidades. Es un hecho que, cada vez ms, empresas y usuarios eligen sistemas basados en
GNU/Linux por sus elevadas prestaciones y la cantidad de software disponible.
De todas formas, aunque existen decenas de distribuciones, hay algunas ms populares que se han extendido mucho.
La filosofa de software libre hace que muchas empresas que han creado sus propias distribuciones de GNU/Linux no
restrinjan el acceso a su cdigo. An as, el soporte que dan y el material que venden les aporta beneficios, permitiendo
su subsistencia. Tambin es importante saber que en muchas de estas distribuciones se incluye software propietario que
algunos usuarios prefieren, aunque en muchos casos existen programas homlogos con licencia GPL o de tipo libre (Free
Software). Aunque muchas de estas distribuciones se denominan solamente Linux, es importante que diferenciemos que
realmente Linux es el ncleo del sistema operativo y que el proyecto GNU es el que realmente ha aportado mucha de la
estructura para el funcionamiento del mismo.
A continuacin haremos una breve descripcin de algunas de las distribuciones de GNU/Linux:
Slackware: una de las primeras distribuciones que aparecieron. Fue creada por Patrick Volkerding y tuvo un gran
xito en sus primeros aos de existencia.

Debian GNU/Linux: una de las primeras distribuciones de GNU/Linux que aparecieron y aun siguen existiendo
y evolucionado. El sistema de paquetes nos permite diferenciar claramente el software libre del que no lo es,
permitindonos tener todo el sistema solamente con programas de licencias Free Software. Es desarrollada por un
grupo de colaboradores distribudos alrededor del mundo y no tiene el respaldo de ninguna empresa. Aunque es de
las ms estables y seguras que existen, su sistema de instalacin y configuracin necesita de conocimientos previos.

RedHat Linux: junto con SuSE, es una de las distribuciones de mayor popularidad. Est creada por una empresa
de EUA, aportando software de gran calidad. Tiene un entorno muy intuitivo que facilita mucho su instalacin y
configuracin.

SuSE Linux: aunque es una distribucin creada bastante recientemente, ha tenido una gran difusin. Est desarrollada por una empresa alemana, aportando mucho software propietario de calidad. Es muy completa y fcil de
instalar y mantener, aunque en algunos aspectos no se siguen algunos de los estndares de la comunidad.

1.4. PROGRAMAS Y DOCUMENTACIN

Knoppix: distribucin en un CD-live basada en Debian. Detecta automticamente todo tipo de hardware y aporta el
ltimo escritorio de KDE y la suite OpenOffice. Muy til para demostraciones y usuarios noveles en el sistema.

Tampoco podemos olvidar que existen otros sistemas operativos compatibles con UNIX y los estndares que se siguen
actualmente. Muchos de los conceptos y herramientas que veremos a lo largo del curso tambin servirn para estos otros.
En especial debemos destacar GNU/Hurd (ncleo desarrollado por el proyecto GNU) y FreeBSD.
ACTIVIDADES
1. Leer la descripcin de algunas de las distribuciones actuales basadas en GNU/Linux:
http://www.linuxhq.com/dist.html

1.4. Programas y documentacin


Internet siempre ha sido el principal medio de comunicacin entre los desarrolladores y usuarios del software libre.
Es por esta razn que ya desde el principio de la gran expansin de GNU/Linux siempre se ha podido encontrar en el red
muchsima informacin sobre el operativo. La mayora de programas los podemos descargar de Internet, empaquetados
con alguno de los sistemas ms comunes o bien directamente a partir de su cdigo fuente para que lo podamos compilar
en nuestro sistema. Adems, la mayora de distribuciones tambin se pueden descargar de la red sin necesidad de comprar
ningn pack especial de las revistas especializadas o de las mismas empresas que lo producen. Tambin es cierto que si
queremos el soporte que algunas de las distribuciones dan, lo mejor es comprar todo el material que se proporciona (CDs,
manuales, etc.) y registrarse.
A medida que nos vayamos introduciendo en el mundo del software libre y del GNU/Linux, tambin veremos como
uno de los aspectos clave para moverse en l es saber encontrar la documentacin que nos interesa. Cuando nos encontramos delante de un problema, antes de empezar a dar vueltas sobre cmo 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 documentacin que se adapte mejor a los problemas que se nos vayan planteando nos ahorrar mucho tiempo y esfuerzos. La
comunidad del software libre genera centenares de documentos que podemos descargarnos libremente de Internet, adems
de los foros de discusin, pginas de rumores y noticias, etc.
Algunas de las referencias ms populares y que ms nos pueden ayudar son:
Documentacin
- http://www.tldp.org: The Linux Documentation Project. La mayora de guas, HOWTOS, FAQS, etc. existentes
los podemos encontrar en este sitio, que adems est en varios idiomas.
- http://lucas.linux.org.mx: LinUx en CAStellano. Gran proyecto de documentacin en castellano para los HOWTOS, guas, etc. de GNU/Linux.
- http://www.linuxpowered.com/HOWTO/HOWTO-INDEX: El HOWTO de los HOWTOS.
- http://www.linux.com: Pgina con diferentes secciones de noticias, documentacin, etc.
- http://www.debian.org/doc: Documentacin para Debian GNU/Linux.
Noticias
- http://slashdot.com: Noticias y rumores del mundo GNU/Linux. En ingls.
- http://barrapunto.com: La rplica de slashdot en castellano.
- http://puntbarra.com: La rplica de slashdot en cataln.
- http://bulmalug.net: Bisoos Usuarios de Linux de Mallorca y Alrededores. Noticias y secciones dedicadas a
temas concretos.
- http://www.es.gnu.org/gnuticias: Noticias de GNU en espaol.
- http://linuxtoday.com: Otra pgina de noticias muy prctica para estar a la ltima.
- http://libertonia.escomposlinux.org: Pgina de noticas. De especial inters es su seccin de Fuentes de Noticias,
dnde hay multitud de otros enlaces a otras pginas del mismo estilo.

CAPTULO 1. INTRODUCCIN

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 centrados en temas de seguridad y similares.
Bsqueda
- http://www.google.com/linux: El mayor buscador del mundo tambin para GNU/Linux.
- http://www.buscadoc.org: Buscador de documentacin informtica en castellano.
Distribuciones
- http://www.fsf.org: La pgina oficial de la Free Software Foundation.
- http://www.debian.org: Pgina oficial de debian GNU/Linux.
- http://www.redhat.com: Pgina oficial de RedHat Linux.
- http://www.suse.com: Pgina oficial de SuSE.
- http://www.slackware.com: Pgina oficial de Slackware Linux.
- http://www.knoppix.com: Pgina oficial de Knoppix.
Descargas
- http://sourceforge.net: La mayor pgina con proyectos de software libre.
- http://www.softonic.com : Seccin de descarga para GNU/Linux de una de las mltiples pginas de downloading.
- http://download.com: Pgina de descargas.
Otras
- http://www.linuxsecurity.com: Pgina muy actual centrada en todo tipo de temas de seguridad en GNU/Linux.
- http://www.linuxhq.com: Informacin general sobre distribuciones de GNU/Linux, seguridad, etc.
- http://www.linuxjournal.org: Pgina de noticias y artculos sobre GNU/Linux.
- http://www.linuxgazette.com: Revista de GNU/Linux.
- http://www.linux-mag.com: Revista de GNU/Linux.
- http://www.xfree86.org: Pgina oficial del proyecto XFree86.

Captulo 2

Conceptos y comandos bsicos


2.1. Introduccin
En este captulo aprenderemos las ideas e instrucciones bsicas para movernos adecuadamente por el sistema. Si no
estamos acostumbrados a utilizar la lnea de comandos para manipular el sistema operativo, al principio puede parecernos
un poco complicado, pero a medida que las vayamos utilizando veremos como son muy tiles y nos permiten realizar
cualquier tarea que queramos (un comando es un programa que realiza una determinada accin -generalmente relacionado
con el operativo-). Adems, el hecho de saber utilizar correctamente los comandos nos ser muy til cuando necesitemos
conectarnos de forma remota a una mquina adems de poder disear pequeos programas (shell scripts) para automatizar
las tareas de administracin ms comunes.
La mayora de comandos que veremos en este captulo forman parte del estndar (normas IEEE POSIX) y son comunes
a todos los sistemas GNU/Linux y a UNIX. Aunque cada distribucin tiene sus propias aplicaciones de administracin y
gestin, muchas de las acciones que se realizan a partir de ellas tambin se pueden hacer con los comandos que veremos.
A partir de los mismos, podremos manipular casi todos los aspectos del sistema y movernos eficientemente por l. Aprendiendo a utilizar correctamente estos comandos aprenderemos a navegar por cualquier sistema basado en GNU/Linux, sin
importar qu distribucin estemos usando.
Cada uno de los comandos del sistema suele tener multitud de parmetros diferentes. Un parmetro no es ms que una
opcin determinada de un comando, que le aadimos a continuacin del mismo precedido por un espacio y, en muchas
ocasiones, tambin por un guin. Por ejemplo, si un comando fuera listar, podramos pasarle un parmetro como
listar -todo. Con la utilizacin de los parmetros podemos, con un mismo comando, hacer muchas acciones
diferentes, aunque todas sean de un mismo estilo. En este documento no especificaremos los diferentes parmetros de
cada uno de los comandos que veremos ya que extenderamos el texto ms all de lo permisible y tampoco tiene sentido
saber exactamente todos los parmetros posibles para cada uno. Todos ellos tienen un amplio manual dnde se especifican
todas sus opciones, de forma que siempre que necesitemos realizar alguna accin en concreto podremos recurrir a l. En
los talleres distribuidos a lo largo del curso s veremos algunas de estas opciones, aunque es importante saber que con el
manual siempre podremos descubrir muchas otras opciones que nos pueden ayudar a realizar todo lo que necesitemos.

2.2. Usuarios y grupos


Actualmente la mayora de sistemas operativos existentes son multiusuario y multitarea. sto implica que ms de un
usuario puede trabajar en el sistema de forma simultnea a otros, ejecutando una o ms tareas a la vez. Por este motivo,
es muy importante que el mismo sistema operativo incorpore mecanismos para manipular y controlar correctamente
los usuarios: el sistema de entrada e identificacin (login), los programas que puede ejecutar cada uno, mecanismos de
seguridad para proteger el hardware del ordenador, proteccin para los ficheros de los usuarios, etc.
Los sistemas operativos basados en UNIX organizan todo esto por usuarios y grupos. Al entrar en el sistema debemos
identificarnos con un login y una contrasea. El login suele ser un nombre que identifica de forma inequvoca al usuario.
En sistemas donde hay ms que unos pocos usuarios es importante tener una buena poltica de nombres para poderlos
identificar a todos de forma clara (una poltica de nombres muy utilizada suele ser poner como login la primera inicial del
nombre del usuario seguido de su apellido). La contrasea debe ser una combinacin de letras, nmeros y caracteres espe7

CAPTULO 2. CONCEPTOS Y COMANDOS BSICOS

ciales. Es muy importante que no sea ninguna palabra de diccionario o similares porque puede representar un problema de
seguridad muy importante. El sistema de contraseas del sistema es de tipo unidireccional. Esto quiere decir que nuestra
contrasea no es almacenada como texto, sino que es cifrada y guardada en esta forma. Cuando entramos en el sistema y
escribimos nuestra contrasea, sta es cifrada y comparada con la almacenada. Si coinciden, la identificacin es positiva,
sino no. Lo importante de todo este sistema es que a partir del cifrado no podemos conseguir, de ninguna forma, la clave
original. Los programas que intentan romper las contraseas de los usuarios lo nico que pueden hacer es cifrar palabras
a partir de diccionarios (con sistemas automticos para derivarlas y buscar variantes) y probar si coinciden con el cifrado
de alguna de las contraseas de usuario. Es por este motivo que debemos escoger cuidadosamente nuestras contraseas;
de otra forma comprometeremos toda la seguridad del sistema.
Actualmente, en los sistemas GNU/Linux podemos escoger dos tipos de cifrado posible para las contraseas 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 solo nos permite contraseas de 8 letras (si escribimos ms, se ignoran), a diferencia del otro tipo de cifrado,
llamado MD5, con el cual podemos usar contraseas de la longitud que queramos (de hecho, MD5 es un sistema de hashing, pero tambin se puede utilizar para cifrar contraseas de forma unidireccional). Como ms larga sea la contrasea,
ms segura es, con lo cual se recomienda utilizar el segundo tipo de cifrado. De todas formas, pero, debemos tener en
cuenta que si necesitamos usar algunos programas especiales para la gestin de usuarios, como el NIS 1 , puede que no
sean compatibles con MD5.
Si un usuario es un individuo particular que puede entrar en el sistema, un grupo es un conjunto de usuarios con
acceso al sistema que comparten unas mismas caractersticas, de forma que nos es til agruparlos para poder darles una
serie de permisos especiales en el sistema. Un usuario debe pertenecer, almenos, a un grupo, aunque puede ser de ms de
uno. El sistema tambin utiliza todo este mecanismo de usuarios y grupos para gestionar los servidores de aplicaciones
instalados y otros mecanismos. Es por este motivo que adems de todos los 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 con todos los permisos, el que
tendr los priviliegios mximos que le permitirn hacer cualquier operacin sobre el sistema. Este usuario debe existir ya
que es el que se encargar de toda la administracin y gestin de servidores, grupos, etc. Es importante que esta cuenta
no se utilice para trabajar normalmente en el sistema. Slo deberamos entrar como root cuando es realmente necesario,
utilizando otras cuentas para el trabajo normal de los usuarios. De esta forma nunca podremos daar el sistema con
operaciones errneas o con la prueba de programas maliciosos, etc.
Toda la informacin de usuarios y grupos se guarda en los siguientes archivos:
/etc/passwd: informacin (nombre, directorio home, . . . ) del usuario.
/etc/group: informacin sobre los grupos de usuarios.
/etc/shadow: contraseas cifradas de los usuarios y configuracin para su validez, cambio, etc.
Utilizar el archivo de shadow es opcional. En un principio, las contraseas cifradas de los usuarios se guardaban en
el mismo fichero de passwd, pero por razones de seguridad (muchos mecanismos deben poder leer este fichero, con lo
cual era muy fcil hacerse con l e intentar crackear -conseguir la palabra clave- las contraseas) se opt para cambiar este
mecanismo para hacer que el fichero de shadow solo fuera accesible por algunos usuarios con priviliegios especiales en el
sistema (es recomendable utilizarlo). Tambin es posible configurar el sistema para que se utilice un fichero shadow para
los grupos (en caso que sea necesario ponerles contrasea). Este fichero se nombrara /etc/gshadow. Generalmente
la configuracin de contraseas se indica al instalar el sistema, aunque todo se puede cambiar y adaptar a nuestro gusto a
partir del fichero de configuracin de login /etc/login.defs, los mdulos PAM (Pluggable Authentication Modules
for Linux) -encargados de todo el sistema de autentificacin de usuarios- y los comandos pwconv y grpconv -que nos
permiten convertir ficheros passwd a textttshadow-.
Todos estos ficheros estn organizados por lneas donde cada una de ellas identifica un usuario o grupo (dependiendo
del fichero). En cada lnea hay diversos campos separados por el caracter :. En tareas de adminsitracin es importante
saber qu son estos campos, con lo que los vamos a explorar con un poco ms de detalle:
passwd
1 NIS

son una serie de aplicaciones de gestin centralizada de usuarios. Ms informacin en http://www.tldp.org/HOWTO/NIS-HOWTO/

2.2. USUARIOS Y GRUPOS

1. Login: el nombre del usuario. No puede haber dos nombres iguales, aunque s alguno que coincida con un
grupo del sistema.
2. Contrasea cifrada: si no se utiliza el fichero de shadow, las contraseas cifradas se almacenan en este campo.
Si utilizamos el fichero de shadow, todos los usuarios existentes en este fichero deben existir tambin en el
de shadow y en este campo se pone el caracter x.
3. User ID: nmero de identificacin del usuario. Es el nmero con el cual el sistema identifica el usuario. El 0
es el nico que est reservado para el root.
4. Group ID: el nmero de grupo al cual pertenece el usuario. Como un usuario puede pertenecer a ms de un
grupo, se denomina este grupo como primario.
5. Comentarios: campo reservado para poner los comentarios que queramos del usuario. Se suele utilizar para
poner el nombre completo o algn tipo de identificacin personal.
6. Directorio home: el directorio home del usuario es dnde el usuario podr guardar todos sus ficheros. Suelen
ponerse todos en alguna carpeta del sistema (generalmente /home/) y organizados por grupos.
7. Intrprete de comandos: un intrprete 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 indiquemos. Hay decenas de
ellos, aunque el ms utilizado es, sin duda, el bash (GNU Bourne-Again SHell). Si en este campo escribimos
/bin/false no permitiremos que el usario ejecute ningn comando en el sistema, aunque est dado de alta
en el mismo.
group
1. Nombre del grupo.
2. Contrasea cifrada: la contrasea 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 contrasea).
3. Group ID: nmero de identificacin del grupo. Es el nmero con el cual el sistema identifica internamente a
los grupos. El 0 es el nico que est reservado para el grupo del root (los administradores).
4. Lista de usuarios: los nombres de los usuarios que pertenecen al grupo, separados por comas. Aunque todos
los usuarios ya 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 tambin tengan los permisos del
que se est referenciando.
shadow
1. Login: debe ser el mismo nombre que se utiliza en el fichero de passwd.
2. Contrasea cifrada.
3. Das, desde el 1 de enero de 1970, que han pasado hasta que la contrasea ha sido cambiada por ltima vez.
4. Das que deben pasar hasta que la contrasea pueda ser cambiada.
5. Das que han de pasar hasta que la contrasea deba ser cambiada.
6. Das antes de caducar la contrasea en el que se avisar al usuario que debe cambiarla.
7. Das que pueden pasar despus que la contrasea caduque antes de desabilitar la cuenta del usuario (si no se
cambia la contrasea).
8. Das, desde el 1 de enero de 1970, desde que la cuenta est deshabilitada.
9. Campo reservado.
Cuando un usuario entra en el sistema, se le sita en su directorio home y se ejecuta el intrprete de comandos (shell)
configurado. De esta forma ya puede empezar a trabajar. Slo el root del sistema (o los usuarios de su grupo) tienen
permiso para manipular la informacin de los usuarios y grupos, darlos de alta, de baja, etc. Existen muchos comandos
para manipular todo esto. Cada uno de ellos tiene, adems, varios parmetros diferentes para gestionar todos los campos
que hemos visto anteriormente de forma amena. A continuacin mostrarmos algunos de estos comandos:
adduser: nos sirve para aadir un nuevo usuario al sistema. La forma como ste se aade (si no le especificamos
nada) se puede configurar en el fichero /etc/adduser.conf. Se le pueden pasar multitud de opciones diferentes
para especificar el directorio home, el shell a utilizar, etc.

CAPTULO 2. CONCEPTOS Y COMANDOS BSICOS

10

useradd: crea un nuevo usuario o cambia la configuracin 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 mayora de los campos que se encuentran en el fichero de
passwd y shadow, como el directorio home, el shell, la expiracin de la contrasea, etc.
chfn: cambia la informacin 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 segn los parmetros que le
pasemos, haciendo copia de seguridad de los mismos o no, etc. La configuracin 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 contrasea de un usuario, la informacin de expiracin de las mismas o para
bloquear o desbloquear una determinada cuenta.
addgroup: permite aadir un grupo al sistema.
groupadd: lo mismo que el comando anterior pero con diferentes parmetros.
groupmod: nos permite modificar la informacin (nombre y GID) de un determinado grupo.
delgroup: elimina un determinado grupo. Si algn usuario todava lo tiene como primario no se podr eliminar.
groupdel: igual que en el caso anterior.
gpasswd: nos sirve para cambiar la contrasea del grupo.
Para saber qu usuario somos podemos utilizar el comando whoami, que nos mostrar nuestro login. groups nos
sirve para saber a qu grupos pertenecemos y id nos mostrar usuario y grupos. Tambin es interesante poder convertirnos
en otro usuario sin tener que salir de la sesin (comando login o su) o cambiarnos de grupo con el comando newgrp.
Este ltimo comando debemos utilizarlo slo cuando no pertenecemos al grupo en cuestin y sabemos su contrasea (que
debe estar activada en el fichero de group). Si slo necesitamos los permisos del grupo en cuestin para ejecutar un
determinado comando tambin podemos utilizar sg.
En sistemas donde hay centenares de usuarios, es usual poner algn tipo de mecanismo para restringir el espacio de
disco que puede utilizar cada uno. En los sistemas GNU/Linux ste sistema se llama quota.
Tal y como decamos anteriormente, GNU/Linux es un sistema operativo multiusuario, con lo cual en un mismo
momento puede haber varios usuarios conectados al sistema de forma simultnea. Para saber qu usuarios hay en un
determinado momento podemos utilizar el comando who, que nos muestra la lista de usuarios dentro del sistema. w,
adems, nos muestra qu es lo que estn haciendo. Nos podemos comunicar con ellos utilizando el comando write, con
el cual aparece el mensaje que escribamos en la pantalla del usuario que indiquemos o wall, que escribe el contenido del
fichero que especifiquemos a todos los usuarios dentro del sistema. Para activar o desactivar la opcin de recibir mensajes
hay el comando mesg. Tambin podemos hacer un chat personal con algn usuario a partir del comando talk.
Como vemos, en GNU/Linux tenemos ms de una forma para hacer una determinada accin. Esta es la tnica general
que se sigue en el sistema: podemos editar directamente los ficheros y modificarlos nosotros mismos, utilizar algunos de
los comandos que existen, crernoslos nosotros mismos, etc. En definitiva, tenemos la posibilidad de elegir qu es lo que
ms nos gusta.

2.3. El sistema de ficheros


2.3.1. La jerarqua del sistema de ficheros
Todo sistema operativo necesita guardar multitud de archivos: desde los de la configuracin del sistema, los de log, los
de los usuarios, etc. En general, cada operativo utiliza su propio sistema de ficheros, caracterizndolo en muchos aspectos
como pueden ser el rendimiento, seguridad, fiabilidad, etc. GNU/Linux es capaz de leer/escribir archivos con cualquiera

2.3. EL SISTEMA DE FICHEROS

11

de los sistemas de ficheros que actualmente existen, aunque para su propia raz y directorios principales es necesario un
sistema de ficheros que le permita ciertas operaciones. Generalmente se suele utilizar el tipo ext2, ext3 o ReiserFS. El
ext2 es el ms tpico y extendido. Su rendimiento es bastante bueno, incorpora todo tipo de mecanismos de seguridad y
tunning y es muy fiable. Ha sido diseado para manejar de forma muy rpida ficheros pequeos, que es lo que ms suele
tener un sistema operativo. Con el manejo y manipulacin de grandes ficheros multimedia no se desenvuelve tan bien,
aunque siempre se puede hacer un poco de tunning para adaptarlo ms a nuestras necesidades. ext3 es la evolucin del
mismo, incorporando una tecnologa llamada de journaling. Una de las principales ventajas de esta tencologa es que si
hay un corte en el suministro de energa y el ordenador se apaga sin cerrarse adecuadamente, los sistemas de recuperacin
de ficheros son ms efectivos. ReiserFS es un nuevo tipo de sistema que incorpora nuevas tecnologas de diseo que le
permiten ser ms rpido. En el proceso de instalacin del sistema operativo se nos preguntar cul de estos tres queremos
usar.
Una caracterstica muy importante de todos los sistemas operativos basados en UNIX es que todos los dispositivos
del sistema se pueden tratar como si fueran ficheros. Igualmente, cuando queramos acceder al contenido de un CD,
disquete o cualquier otro dispositivo de almacenamiento, deberemos montarlo en un directorio ya existente en el sistema
y navegaremos por l como si se tratara de una carpeta ms (el uso de diferentes unidades -A:,B:,C:,D:,. . . - es un esquema
slo existente en sistemas operativos tipo WindowsTM).
Lo primero que debemos tener claro es que todo el sistema de ficheros parte de una misma raz, a la cual nos referiremos con el caracter /. Es el origen de todo el sistema de ficheros y slo existe una. Para organizar los ficheros adecuadamente, el sistema proporciona lo que llamaremos directorios (o carpetas), dentro de las cuales podemos poner archivos y
ms directorios. De esta forma conseguimos una organizacin jerrquica como la que vemos en la figura 2.1.
RAZ

Directorio1
archivoB

Directorio2

Directorio3

archivoC archivoD

Directorio1_1
Directorio3_1
archivoE

Directorio1_2

archivoF

archivoA

archivoH

Directorio3_3

Directorio3_2

archivoI

archivoG

RUTA archivoA: /archivoA


RUTA archivoB: /Directorio1/archivoB
RUTA archivoC: /Directorio2/archivoC
RUTA archivoD: /Directorio2/archivoD
RUTA archivoE: /Directorio1/Directorio1_1/archivoE
...

Figura 2.1: Jerarqua de un sistema de ficheros.

2.3.2. Directorios del sistema


La mayora de sistemas operativos siguen el estndard FHS (Filesystem Hierarchy Standard) 2 dnde se especifica la
distribucin en directorios para organizar correctamente los archivos y poder localizarlos de forma rpida y sencilla. En la
mayora de distribuciones basadas en GNU/Linux se siguen estas recomendaciones, encontrando los siguientes directorios
principales:
/bin/: comandos bsicos para todos los usuarios del sistema.
/boot/: archivos estticos necesarios para el arranque del sistema.
/dev/: dispositivos del sistema.
2 Ms

informacin en http://www.pathname.com/fhs/

CAPTULO 2. CONCEPTOS Y COMANDOS BSICOS

12

/etc/: archivos de configuracin del sistema y de las aplicaciones instaladas en el mismo.


/home/: directorio para poner las carpetas home de los usuarios.
/lib/: libreras esenciales para el ncleo del sistema y mdulos del mismo.
/mnt/: punto de montaje temporal para dispositivos.
/proc/: procesos y variables del ncleo del sistema3 .
/root/: directorio home para el root del sistema.
/sbin/: comandos especiales para el root del sistema.
/tmp/: archivos temporales. Segn la distribucin utilizada (o la configuracin que utilicemos) se borran al arrancar el sistema o cada cierto perodo de tiempo.
/usr/: segunda estructura jerrquica, utilizada para almacenar todo el software instalado en el sistema.
/var/: directorio para los spoolers de impresin, ficheros de log, etc.
Es muy recomendable conservar y no eliminar ninguno de estos directorios (o los que por defecto nos cree la distribucin que utilicemos) ya que son bsicos para el buen funcionamiento del sistema. Generalmente los procesos de
instalacin de nuevas aplicaciones necesitan que exista la organizacin dada y muchos de los archivos de configuracin
de los programas deben estar en determinados directorios. Lo que s podemos hacer sin ningn tipo de restriccin es crear
nuevos directorios a la raz del sistema o en cualquier otra carpeta.

2.3.3. Movindonos
Para movernos por la estructura de directorios debemos utilizar los comandos para listar contenidos y cambiar de
carpeta. Cuando entramos en el sistema es usual que el login nos site en nuestro directorio home, que generalmente
se suele referenciar con el caracter . Si queremos ver lo que hay en el directorio donde estemos 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 (es as porque cada vez que listemos el contenido del directorio no tengamos que
ver los ficheros y directorios de configuracin de las aplicaciones que utilizamos -que suelen empezar por este caracter- y
las entradas del directorio actual y anterior, que siempre existen). Con el parmetro -a s nos mostrara 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 immediatamente superior (en el rbol de jerarquas)
al actual. Naturalmente, cuando estemos situados en la raz del sistema de ficheros, la entrada .. no existir porque
estamos en el nivel superior.
Para cambiar de directorio podemos utilizar el comando cd. Si no le pasamos ningn parmetro, por defecto nos
situar en nuestro directorio home. Generalmente se le suele indicar dnde queremos ir, pasndolo de forma absoluta o
relativa. De forma relativa significa que partiremos del directorio donde estemos en el momento de ejecutar el comando.
Por ejemplo, si estamos en el directorio /usr/bin/ y queremos ir al /root/, deberamos introduir el siguiente comando: cd ../../root (los dos primeros puntos indican /usr/ y los siguientes la raz / del sistema, a partir
de la cual ya podemos acceder a /root/). De forma absoluta siempre partimos de la raz, de manera que el comando
que utilizaramos para el ejemplo anterior sera: cd /root. Para saber en qu directorio estamos podemos utilizar el
comando pwd.

2.3.4. Enlaces
Otro mecanismo que nos proporcionan la gran mayora de sistemas de ficheros son lo que llamamos enlaces. Un
enlace es un puente a un archivo o directorio perteneciente al sistema; como una referencia que podemos poner en
cualquier sitio que nos interese y que acta como un acceso directo a cualquier otro. Este mecanismo nos permite acceder a carpetas o archivos de forma ms rpida y cmoda, sin tener que desplazarnos por la jerarqua de directorios.
3 Realmente los ficheros que vemos en este directorio no estn guardados en ningn sistema de almacenaje, sino que son variables, flags, . . . utilizados
en el ncleo del sistema.

2.3. EL SISTEMA DE FICHEROS

13

Vamos a verlo con un ejemplo: imaginemos que somos un usuario (user1) que necesita acceder frecuentemente al directorio /usr/share/man/man3/. En lugar de escribir el largo comando que nos situara en el directorio en cuestin cada
vez que necesitramos desplazarnos a l, podemos crear un enlace en nuestro propio directorio que nos redireccione directamente hacia all. El comando ln -s /usr/share/man/man3 mmm nos creara este puente, que hemos llamado
mmm. El usuario slo debera escribir (desde su directorio home) cd mmm y automticamente el sistema lo redirigira
hacia /usr/share/man/man3/. Es importante tener en cuenta que al hacer un cd .. para ir al directorio superior, volveramos al directorio home y no a usr/share/man/, ya que hemos accedido a l a partir de nuestro enlace.
Podemos ver este esquema de forma grfica en la figura 2.2.
RAZ

usr
share
man

home
user1
mmm

directorio home
de user1

enlace simblico

man3

Figura 2.2: Enlaces en el sistema de ficheros.

Al crear el enlace del ejemplo anterior hemos pasado el parmetro -s al comando. sto indica que queremos
crear un enlace simblico. Los enlaces simblicos significan que tan solo estamos creando un apuntador o puente hacia el
fichero o directorio, de forma que si borrsemos el fichero destino el enlace no apuntara a ninguna parte. Si no ponemos el
parmatro -s se creara lo 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 apuntan a los mismos
datos. De esta forma, 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 todava se conserva. Este tipo de enlace no se utiliza demasiado
porque complica la gestin y manipulacin de los ficheros (siempre es mejor tener una sola copia de los archivos).
Adems, si hacemos un enlace fuerte de un directorio, todos los archivos y subdirectorios que contuviera tambin se
deberan referenciar. Es por este motivo que slo el root del sistema puede hacer enlaces fuertes de directorios. Otra
diferencia es que con un enlace simblico podemos ver a qu fichero estamos apuntando, mientras que con uno de fuerte
no (debido al mecanismo que se utiliza internamente para ellos). Adems, los enlaces fuertes slo se pueden crear entre
ficheros o directorios de una misma unidad.

2.3.5. Permisos
En cualquier sistema operativo multiusuario necesitamos que los ficheros 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 alternativas para hacer esto, GNU/Linux utiliza el sistema clsico de UNIX, que combinado con todos
los mecanismos de gestin de usuarios y grupos nos permite cualquier configuracin posible. La idea es definir, para
cada fichero o directorio, a qu usuario y grupo pertenece y qu permisos tiene para cada uno de ellos y para el resto
de usuarios del sistema. Ejecutando ls -l veremos como por cada archivo del directorio donde estemos aparece una
lnea parecida a la siguiente:
-rwxr-xr-x

user1

grupo1

128931 Feb 19 2000 gpl.txt

Los primeros diez caracteres (empezando por la izquierda) nos indican los permisos del fichero de la siguiente forma:
Caracter 1: esta entrada nos indica si es un fichero o un directorio. En caso de ser un fichero aparece el caracter -,
mientras que por los directorios aparece una d.

CAPTULO 2. CONCEPTOS Y COMANDOS BSICOS

14

Caracteres 2,3,4: nos indican, respectivamente, los permisos de lectura, escritura y ejecucin para el propietario del
fichero. En caso de no tener el permiso correspondiente activado encontramos el caracter - y sino r, w o
x segn si lo podemos leer (Read), escribir (Write) o ejecutar (eXecute). En el tercer caracter, adems, 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 slo tiene el permiso x, cuando el programa se ejecuta lo hace con los
permisos de quin lo haya lanzado. El mecanismo de SetUserId es muy til cuando un programa necesita tener los
permisos de su propietario para acceder a ciertos archivos o hacer algn tipo de operacin en el sistema. De todas
formas, debemos vigilar mucho con este tipo de ficheros porque mal utilizados pueden suponer fallos de seguridad
en el sistema.
Caracteres 5,6,7: estos caracteres tienen exactamente el mismo significado que anteriormente pero haciendo referencia a los permisos dados para los usuarios del grupo al que pertenece el fichero.
Caracteres 8,9,10: igual que en el caso anterior pero para todos los otros usuarios del sistema.
Despus de estos 10 caracteres encontramos un nmero que nos indica el nmero de enlaces fuertes que tiene el
fichero. Para los directorios, este nmero indica cuntas carpetas hay dentro de l adems de los enlaces fuertes que tiene
(cuando no hay ninguno, el nmero es 2 debido a la gestin interna del operativo). A continuacin vemos el propietario y
el grupo del archivo, seguido del tamao (en bytes) que ocupa y la fecha de la ltima modificacin. En todos los ficheros
se guarda su fecha de creacin, ltimo acceso y modificacin, que podemos manipular con el comando touch. Al final
hay el nombre del fichero, dnde se diferencian minsculas de maysculas y podemos tener todo tipo de caracteres sin
ningn problema.
Para cambiar los permisos de un determinado archivo podemos utilizar el comando chmod. Debemos tener en cuenta
que slo el propietario del archivo (o el root) puede cambiar estos permisos ya que sino todo el mecanismo no tendra
ningn sentido. Podemos utilizar este comando de muchas formas diferentes, pero las dos ms frecuentes son las siguientes:
La primera forma de utilizarlo es del estilo chmod XXX nombreArchivo. Las X deben ser tres nmeros
entre 0 y 7. El primer nmero indica los permisos que queremos establecer para el usario, el segundo para el grupo
y el tercer para todos los otros. Para interpretar correctamente los permisos que daremos utilizando los nmeros del
0 al 7 debemos utilizar la representacin binaria del nmero en cuestin, de forma que el primer dgito indicar el
permiso de escritura, el segundo el de lectura y el tercero el de ejecucin. En cada caso un 0, indica que no se d el
permiso en cuestin y el 1 que s. En la siguiente tabla podemos ver esta relacin:
representacin decimal
0
1
2
3
4
5
6
7

representacin binaria
000
001
010
011
100
101
110
111

significado
----x
-w-wx
r-r-x
rwrwx

La otra forma de utilizar el comando es indicando de forma explcita qu permiso queremos dar o eliminar del
fichero. La forma de hacerlo es indicando, primero, si nos referimos a los permisos del usuario, grupo o a todos los
otros con las letras u,g u o respectivamente. Seguidamente debemos aadir un + o - segn si queremos
aadir o eliminar el atributo, que indicaremos con r, w, x o s (ste ltimo para el SetUserId). Adems,
podemos hacer todas las combinaciones posibles, refirindonos a ms de un permiso y/o usuarios. Por ejemplo, chmod go+r gpl.txt"dara el permiso de lectura al grupo y a todos los otros usuarios para el fichero
gpl.txt.
Para cambiar el propietario de un fichero existe el comando chown, que slo puede utilizar el root por razones de seguridad (si dejsemos que los usuarios pudieran cambiar el propietario de sus ficheros, comprometeramos la seguridad del
sistema). Para cambiar el grupo de un determinado archivo se puede utilizar el comando chgrp. Como podemos suponer,
cuando un usuario crea un nuevo archivo, el sistema pone como propietario el usuario que lo ha creado y perteneciente

2.3. EL SISTEMA DE FICHEROS

15

al grupo primario del mismo usuario. Los permisos que se ponen por defecto al crear un nuevo archivo los podemos
configurar con el comando umask, que le debemos pasar la misma notacin de tres nmeros decimales entre 0 y 7
que veamos anteriormente pero complementados. Por ejemplo, si queremos que nuestros ficheros se inicialicen con los
permisos rw-r--r-- deberamos escribir umask 133.

2.3.6. Manipulacin, patrones y bsquedas


Ahora que ya sabemos movernos correctamente por la jerarqua de directorios tambin necesitamos saber cmo copiar, eliminar y manipular correctamente otros aspectos de los ficheros. El comando rm es el que se encarga de eliminar
los archivos que le indiquemos. Para eliminar un directorio podemos utilizar el comando rmdir, aunque slo lo borrar cuando ste est vaco (si quisiramos borrar completamente un directorio y todo su contenido podramos utilizar
rm -r). Para copiar archivos de un lugar a otro tenemos el comando cp, con el cual siempre debemos indicarle el
fichero o directorio origen y el lugar o nombre de destino, aunque sea en el directorio actual. De esta forma, si queremos copiar el archivo /home/user1/gpl.txt en el directorio actual (y con el mismo nombre) deberamos 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 patterns (patrones), la sintaxi de los cuales puede
llegar a ser muy compleja pero til -permitindonos referenciar cualquier conjunto de archivos que queramos-. Hasta ahora
hemos visto como aplicar ciertas 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 permitirn aplicar las operaciones que queramos especificando, en una sola instruccin, varios ficheros
que cumplan con una serie de caractersticas especificadas. Debemos verlos como plantillas de nombres, de forma que el
caracter significa cualquier cadena de caracteres posibles y el ? nos sirve como comodn a cualquier caracter. De
esta forma, si queremos listar todos los archivos que empiecen por s, que despus tengan cualquier otro caracter, les siga
una a y despus cualquier otra cadena podramos utilizar ls s?a*. Entre [] podemos incluir otros caracteres,
indicando que el patrn tiene xito si se encuentra alguno de ellos en el nombre. Por ejemplo, si quisiramos referenciar
todos los archivos que empezaran por a o por b y que continuaran con cualquier otra cadena, podramos escribir el
pattern [ab]*. Si despus de [ pusiramos el caracter ! ([!ab]*) indicaramos que el pattern coincidira con
cualquier archivo que no empezara por a o b. Finalmente, para facilitar ciertas bsquedas, dentro de [] podemos
especificar clases de caracteres de la siguiente manera: [:clase:], dnde 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 lnea.


Naturalmente, los patterns los podemos utilizar con cualquiera de los comandos que hemos visto y la mayora de los
que veremos a continuacin. Adems, la mayor parte de los comandos de listado, eliminacin, copia, etc. de ficheros
tambin permiten pasarles un parmetro (generalmente -r) para realizar las acciones respectivas de forma recursiva.
De esta forma se ir entrando y ejecutando la instruccin correspondiente en todos los archivos y directorios a partir del
que estemos hasta llegar al ltimo nivel de la jerarqua.
Otro tipo de operacin muy til es la bsqueda de ficheros. Tenemos varios comandos que nos permiten realizar
bsquedas de diferentes tipos sobre todos los ficheros del sistema. find es el comando ms verstil para realizar esta
accin. Nos permite filtrar los ficheros para encontrar desde los que tienen un determinado nombre, los modificados o
creados a partir de una cierta fecha, los que tienen ciertos permisos, etc. Su nica desventaja es que no utiliza ningn
tipo de mecanismo para acelerar la bsqueda, con lo cual stas pueden tardar bastante. locate es otro comando pero, a
diferencia del anterior, utiliza una base de datos interna que se actualiza peridicamente y nos permite hacer bsquedas
bastante ms rpidas (para actualizar su base de datos interna podemos utilizar updatedb). Debemos tener en cuenta,
pero, que los resultados no siempre estarn actualizados, adems que no podemos realizar bsquedas tan verstiles como

CAPTULO 2. CONCEPTOS Y COMANDOS BSICOS

16

con find. Para acabar con los comandos de bsqueda, whereis est orientado a la bsqueda de los archivos binarios
(los ejecutables), de ayuda o los de cdigo fuente de un determinado programa.

2.3.7. Tipos y contenido de ficheros


Los archivos que tenemos en nuestro sistema pueden ser de muchos tipos diferentes: ejecutables, de texto, de datos,
etc. A diferencia de otros sistemas, que utilizan la extensin del archivo para determinar de qu tipo son, GNU/Linux
utiliza un sistema denominado de magic numbers, determinando con un nmero mgico el tipo de fichero segn sus
datos (se pasan una serie de tests que intentan determinar de qu tipo es el fichero). El comando file nos lo indica. Este
sistema es ms seguro que utilizar la extensin, ya que cualquiera puede cambiarla y generar confusiones y errores en el
sistema.
Si necesitamos ver el contenido de un fichero, uno de los comandos ms bsicos es el cat. Pasndole el nombre/s del
archivo/s que queramos ver, sencillamente se muestra por pantalla. Debemos vigilar en no mostrar ficheros ejecutables o de
datos por pantalla ya que el volcado de caracteres no imprimibles nos dejara la cnsola con caracteres no comprensibles
(siempre la podemos reinicializar tecleando reset o tset). Para ficheros muy extensos nos irn mucho mejor los
comandos less o more, que permiten desplazarnos por el fichero de forma progresiva. Si el tipo de fichero es binario y
queremos ver qu contiene podemos utilizar los comandos hexdump u od para ver el contenido de forma hexadecimal
u otras representaciones. strings nos buscar las cadenas de caracteres dentro de un fichero binario y las mostrar por
pantalla.
Otro tipo de comando muy til son los que nos buscan un cierto patrn en el contenido de los ficheros. Con el
comando grep le podemos pasar como segundo parmetro el nombre del archivo y como primero el pattern que queramos
buscar (con la sintaxi que veamos anteriormente, extendida con otras opciones). Adems, el comando nos permite otras
mltiples acciones, como contar el nmero de lneas dnde aparece el patrn (parmetro -c), . . . Con cut podemos
separar en campos el contenido de cada lnia del fichero especificando qu caracter es el separador, muy til en tareas
de administracin del sistema para su automatizacin. Tambin podemos coger un determinado nmero de lneas del
principio o fin de un archivo con los comandos head y tail respectivamente. Con wc podemos contar el nmero de
lneas o palabras, la mxima longitud de lnea de un fichero, etc.
Finalmente, para acabar con esta seccin de manipulacin de ficheros lo nico que nos falta por ver es cmo comparar
diferentes archivos. Igual que con las otras operaciones, tenemos varios comandos que nos permiten hacerlo. diff, cmp
i comm realizan comparaciones de diferentes formas y mtodos en los ficheros que les indiquemos. sdiff, adems,
permite mezclarlos de la forma que deseemos.

2.4. Los procesos


El hecho que el sistema operativo sea multitarea implica que podemos lanzar ms de una programa a la vez. Un proceso
no es ms que un programa o aplicacin cargado en memoria y ejecutndose. Aunque nuestro ordenador solo disponga
de una CPU, el sistema operativo se encarga de repartir el tiempo de procesamiento de la misma para que varios procesos
puedan ir realizando sus operaciones, dando la sensacin que se estn ejecutando todos a la vez. La gestin de procesos
es un aspecto vital en todo sistema operativo, ya que nos determina el tiempo de respuesta de nuestras aplicaciones, la
eficiencia con que se utiliza la memoria y la CPU, etc. Con los comandos de manipulacin de procesos podremos realizar
cualquier accin que nos interese: desde pausar los procesos de un usuario concreto, eliminar aqullos que no nos interesan
o hacer que algunos ocupen ms tiempo la CPU para que vayan ms rpido.
Para identificar de forma inequvoca cada proceso, el ncleo del sistema les asigna un nmero llamado PID (Process
IDentification). Aunque podramos pensar que con solo el nombre ya los podramos referenciar, es imprescindible tener
este nmero porque podemos ejecutar un mismo programa tantas veces como queramos, teniendo diferentes instancias
del mismo ejecutndose. Para saber qu procesos se estn ejecutando podemos utilizar el comando ps. Para explorar un
poco ms todo este mecanismo de procesos, explicaremos con un poco ms de detalle algunos de los parmetros que le
podemos pasar a este comando:
T: esta opcin viene por defecto y nos indica que slo se mostrarn los procesos que se estn ejecutando en el
terminal dnde estemos o que se hayan lanzando a partir de l.
-a: nos muestra los procesos de todos los terminales del sistema.

2.4. LOS PROCESOS

17

-A: nos muestra todos los procesos del sistema. Si ejecutamos el comando veremos que, aparte de los programas
que los usuarios ejecutan, hay muchsimos otros. Muchos de ellos ejecutan las funciones necesarias para que el
operativo funcione correctamente, otros son los servidores de aplicaciones configurados, etc.
-l: ensea informacin extendida para cada proceso, como el tiempo de CPU que ha utilizado, el terminal
dnde se ejecuta, etc. En la segunda columna tambin podemos ver el estado del proceso. Aunque el sistema tenga
muchos procesos ejecutndose en un mismo instante de tiempo, esto no implica que todos necesiten tiempo de CPU
constantemente. Por ejemplo, cuando un servidor de pginas web no tiene ninguna peticin, no es necesario que
haga absolutamente ninguna operacin. Aunque est en memoria, preparado para ejecutarse al recibir una peticin,
es mejor que no pase en ningn momento por la CPU ya que, mientras, sta puede utilizarse para otros procesos que
s la necesiten. Internamente, el sistema operativo tiene implementados una serie de mecanismos muy eficaces para
gestionar toda esta clase de operaciones. De esta forma, un proceso puede estar en los siguientes estados (mostrados
con el caracter correspondiente):
D: proceso ininterrumpible. Este tipo de proceso generalmente suele pertencer a la entrada/salida de algn
dispositivo que se daara si dejara de ser atendido.
R: proceso que en el momento de ejecutar el comando tambin se est ejecutando, o sea, todos aqullos que
estn en cola de ejecucin. La cola de ejecucin de procesos es dnde se ponen todos aqullos que se van
repartiendo el tiempo de la CPU.
S: proceso dormido o esperando que ocurra algn tipo de evento para que el sistema lo despierte y lo ponga
en la cola de ejecucin.
T: proceso que ha sido detenido por el usuario o el sistema.
Z: proceso zombie. Este estado indica que el proceso ha tenido algn 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 interactiva de los procesos del sistema, del estado
de utilizacin de la CPU, la memoria utilizada y libre, la RAM que utiliza cada proceso, etc. Este programa es muy
indicado cuando el sistema no responde adecuadamente o notamos alguna disfuncin extraa, ya que nos permite localizar
rpidamente qu proceso est afectando negativamente al rendimiento del sistema.
Como vemos, el sistema nos informa sobre todos los aspectos posibles de los procesos del sistema. Adems de esto,
podemos enviar ciertas seales a los procesos para informarles de algn evento, podemos sacarlos de la cola de ejecucin,
eliminarlos, darles ms prioridad, etc. Saber manipular correctamente todos estos aspectos tambin es muy importante
ya que nos permitir utilizar nuestro ordenador de forma ms eficiente. Por ejemplo, si somos administradores de un
centro de clculo dnde la mayora de aplicaciones que se ejecutan necesitan de mucho tiempo de CPU, podramos
configurar el sistema para hacer que los ms urgentes se ejecuten con ms prioridad que otros para que acaben primero.
El comando kill nos permite enviar seales a los procesos que nos interese. En general, todos los programas se disean
para que puedan recibir este tipo de seales. De esta forma, segn el tipo de seal recibido saben que deben realizar ciertas
operaciones u otras. Hay muchos tipos diferentes de seales, que podemos ver en el manual de kill, aunque las ms
utilizadas son las que nos sirven para obligar a un proceso que termine o pause su ejecucin. Con la seal TERM (kill
-15 PID), le indicamos al proceso que queremos que termine, de forma que al recibir la seal deber guardar todo lo
necesario y acabar su ejecucin. Si hay algn tipo de problema o el programa no est preparado para recibir este tipo de
seal podemos utilizar KILL (kill -9 PID), que automticamente lo expulsa de la cola de ejecucin. 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 seal a todos a la vez. Con el comando skill tambin podemos enviar seales a los procesos pero con una sintaxi
diferente. Por ejemplo, si queremos detener todas las ejecuciones de un determinado usuario podramos utilizar skill
-STOP -u nombreLogin, con lo cual todos los procesos de dicho usuario se pararan. Para reiniciarlos de nuevo
podramos pasar el seal de CONT. Cuando estamos ejecutando algn programa en una consola y queremos pasarle
la seal de TERM podemos utilizar la combinacin de teclas CTRL+C. Con CTRL+Z podemos pausar un programa y
revivirlo con fg.
Otra forma de ver los procesos es por su jerarqua. Igual que en el sistema de ficheros, los procesos siguen una cierta
jerarqua de padres a hijos. Todo proceso debe ser lanzado a partir de otro, sea el propio intrprete de comandos, el entorno
grfico,. . . de forma que se crea una relacin de padres a hijos. Con el comando pstree podemos ver esta jerarqua de
forma grfica. Si lo ejecutamos veremos como el padre de todos los procesos es uno llamado init. A partir de l parten
todos los dems que, a la vez, pueden tener ms hijos. Esta estructura jerrquica es muy til ya que, por ejemplo, matando
a un proceso padre que contiene muchos otros hijos, tambin matamos a todos sus hijos. Tambin nos puede servir para

18

CAPTULO 2. CONCEPTOS Y COMANDOS BSICOS

identificar de donde parten ciertos procesos, etc. Si no le pasamos ningn parmetro al comando, por defecto compacta
todos los procesos con un mismo nombre para no mostrar una estructura demasiado grande, aunque sto tambin es
configurable a partir de sus parmetros.
Todos los procesos del sistema tienen una cierta prioridad. Como decamos antes, esta prioridad indica el tiempo de
CPU que se le dejar al proceso. Como ms prioritario sea el proceso, ms tiempo de ejecucin tendr respecto a los otros.
El rango de prioridades va desde el -20 al 19, de mayor a menor. Para lanzar un proceso con una determinada prioridad
podemos utilizar el comando nice. Si queremos dar una prioridad diferente a un proceso que ya est en ejecucin
podemos utilizar renice. Slo el root puede utilizar el rango de prioridades negativas; as el sistema se asegura que el
root siempre tenga la posibilidad de ejecutar procesos ms rpidamente que los usuarios. Por defecto, la prioridad con
que se ejecutan los programas es la 0. Un aspecto a tener en cuenta es que con todo este mecanismo de prioridades, no
podemos medir el tiempo de ejecucin real de un proceso porque la CPU se reparte por todos los que tengamos en la cola
de ejecucin. En centros de clculo dnde se factura segn el tiempo de utilizacin de las mquinas es muy importante
poder medir adecuadamente este asepecto. Por este motivo, el sistema nos proporciona el comando time, que pasndole
el programa que queramos medir nos devolver el tiempo real de CPU que ha utilizado.

2.5. Otros comandos tiles


2.5.1. La ayuda del sistema
Tal y como hemos dicho a lo largo del documento, todos los comandos tienen multitud de opciones y parmetros
diferentes que nos permiten manipularlos de la forma como queramos. Desde el principio se tuvo muy en cuenta que
es imprescindible contar con una buena documentacin para todos ellos. Igualmente, toda esta informacin tambin es
necesaria para los ficheros de configuracin del sistema, las nuevas aplicaciones que utilizamos, etc. Es por sto que
el mismo sistema incorpora un mecanismo de manuales con el cual podemos consultar casi todos los aspectos de los
programas, utilidades, comandos y configuraciones existentes. El comando ms utilizado es el man, que nos ensea el
manual del programa que le indiquemos como parmetro. Por defecto esta documentacin es mostrada utilizando el
programa less, con el cual podemos desplazaranos hacia adelante i atrs con las teclas de AVPG y REPG, buscar
una palabara con el caracter / seguido de la palabra (n nos sirve para buscar las siguientes ocurrencias y N para las
anteriores), q para salir, etc. Los manuales del sistema estn dividos en diferentes secciones segn la naturaleza de los
mismos:
1. Programas ejecutables (aplicaciones, comandos, etc.).
2. Llamadas al sistema proporcionadas por el shell.
3. Llamadas a libreras del sistema.
4. Archivos especiales (generalmente los de dispositivo).
5. Formato de los archivos de configuracin.
6. Juegos.
7. Paquetes de macro.
8. Comandos de administracin del sistema (generalmente aqullas que solo el root puede utilizar)
9. Rutinas del ncleo.
Si hay ms de un manual disponible para una misma palabra, podemos especificarlo pasndole el nmero correspondiente de la seccin deseada antes de la palabra, por ejemplo man 3 printf. Como los otros comandos, man tambin
tiene multitud de opciones diferentes documentadas en su propio manual (man man) a partir de las cuales podemos
hacer bsquedas automticas, crear un fichero del manual en formato imprimible, etc. Una de estas opciones que nos
puede ir muy bien en las ocasiones que no sepamos exactamente el programa que estamos buscando es -k (el comando
apropos hace casi exactamente lo mismo). Con man -k seguido de una palabra que haga referencia a la accin que
queramos realizar se buscar por entre todos los manuales del sistema y se mostrarn los que en su descripcin o nombre
aparezca la palabra indicada. De esta forma, podemos encontrar todo los queramos sin tener que recurrir a ningn libro o
referencia externa al sistema.

2.5. OTROS COMANDOS TILES

19

Para que la aplicacin man realice sus bsquedas de forma rpida utiliza una base de datos interna que va a buscar
por los archivos que contienen los manuales y los indexa de forma adecuada. Si queremos actualizar este manual (aunque
normalmente el mismo sistema ya lo hace automticamente) podemos utilizar el comando mandb.
Si el manual no nos proporciona toda la informacin que necesitemos tambin podemos usar el comando info, que
es lo mismo que el manual pero an ms extendido. Si lo nico que queremos es tener una breve referencia de lo que hace
un determinado programa/librera/. . . podemos utilizar el comando whatis.

2.5.2. Empaquetado y compresin


Comprimir un archivo, agrupar varios en uno de solo o ver qu contiene un archivo comprimido son tareas que utilizaremos frecuentemente para hacer copias de seguridad, transportar archivos de un sitio a otro, etc. Aunque existen
multitud de programas diferentes que nos permiten hacer esta clase de operaciones, generalmente en todos los sistemas
GNU/Linux encontraremos la herramienta tar. Este programa nos permite manipular de cualquier forma uno o varios
archivos para comprimirlos, agruparlos, etc. Aunque sus mltiples opciones son inacabables y tiene muchsima flexibilidad, aqu tan solo explicaremos algunas de las ms bsicas para hacernos una idea de lo que podemos hacer con l. La
sintaxi que utiliza es la siguiente: tar opciones archivoDestino archivosOrigen, dnde el archivo de
destino ser el nuevo fichero que queremos crear y los de origen sern los que se agruparn o comprimirn. Es importante
tener en cuenta que si queremos agrupar toda una carpeta, por defecto el proceso es recursivo, de forma que al empaquetarla sta se recorrer en todos sus niveles y se agrupar todo lo que contenga. Para crear un nuevo archivo debemos
pasarle el parmetro c, y si lo queremos guardar en un archivo, f. De esta forma, tar cf final.tar o* empaquetar todos los archivos del directorio actual que empiecen por o. Si adems quisiramos comprimirlos podramos
utilizar czf con lo que se utilizara el programa gzip despus de empaquetarlos. Para desempaquetar un determinado
archivo el parmetro necesario es el x, de forma que deberamos escribir tar xf indicando el fichero empaquetado.
Si estuviera comprimido deberamos pasar xzf.
Aunque con el mismo tar podemos comprimir archivos, la aplicacin en s misma no es de compresin. Como hemos
dicho, para ello utiliza programas externos como el gzip. El gzip utiliza un formato de compresin propio y diferente
del tan popularizado zip, que tambin podemos utilizar instalando la aplicacin correspondiente. Otra aplicacin de
compresin bastante utilizada y que proporciona muy buenos resultados es el bzip2. En la siguiente tabla podemos ver
la extensin que se suele utilizar para identificar qu formato utiliza un archivo comprimido o empaquetado:
extensin
.tar
.gz
.tgz
.bz2
.zip
.Z

formato
tar
gzip
tar + gzip
bzip2
zip
compress

2.5.3. Operaciones de disco


La gestin y manipulacin de los discos duros del ordenador es otro aspecto fundamental en las tareas de administracin del sistema. Aunque ms adelante ya veremos como configurar adecuadamente los discos que tengamos instalados
en el ordenador, en esta seccin explicaremos cules son los comandos necesarios para ver informacin relativa a los mismos. Todo disco duro est dividido en particiones, a las cuales podemos acceder como si de un dispositivo independiente
se tratase, al cual le llamaremos unidad. sto es muy til porque nos permite separar de forma adecuada la informacin
que tengamos en el sistema, para tener ms de un sistema operativo instalado en el mismo disco, etc. El comando df nos
muestra, de cada unidad montada en el sistema, el espacio utilizado y el libre. Vamos a interpretar la siguiente salida de
df:
Filesystem
/dev/hda1
/dev/hdb1
/dev/hdc

1k-blocks
7787712
19541504
664432

Used Available Use%


421288
6970828
6%
5742384 13799120 29%
664432
0 100%

Mounted on
/
/info
/cdrom

20

CAPTULO 2. CONCEPTOS Y COMANDOS BSICOS

Como podemos ver, por cada particin 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 internamente en los dispositivos de
almacenaje para que el manejo de los mismos sea ms efectivo. Por defecto, este comando nos ensea la informacin por
bloques de 1k, aunque pasndole el parmetro -h (human readable) lo podramos ver de forma ms amena. La primera
lnea siempre nos muestra la raz del sistema de ficheros (el root filesystem) y despus todos los otros dispositivos.
Fijmonos como tambin nos muestra su punto de anclaje (en la ltima columna), que es la carpeta donde deberamos ir
para poder ver su contenido.
Otro comando muy til es du, que nos muestra realmente lo que nos ocupa un fichero a disco. Para entender claramente qu queremos decir con esto debemos profundizar un poco ms en la organizacin interna de los discos y en cmo
el sistema operativo los manipula. Tal y como decamos anteriormente, por razones de eficiencia, el sistema operativo
divide el espacio del disco en pequeos trozos, llamados bloques. El tamao del bloque es configurable y generalmente
depende del tamao del disco, aunque tambin lo podemos configurar para adaptarlo ms a nuestras necesidades. Cada
vez que queremos aadir un nuevo archivo, el sistema operativo le asigna un bloque. De esta forma, al leer u operar sobre
l, el operativo puede leer directamente todo un bloque (del tamao configurado) en un solo paso. Cuando el fichero ocupa
ms de un bloque, se le asignan ms, intentando que queden lo mximo de juntos posible porque se puedan leer consecutivamente e incrementando, as, la velocidad de lectura. El nico inconveniente de este sistema es el desaprovechamiento
que se hace de los bloques cuando los ficheros son muy pequeos, ya que si un determinado archivo no ocupa todo el
bloque, el espacio restante no se puede aprovechar para ningn otro. De todas maneras, esta forma de organizacin es la
que utilizan todos los sistemas de ficheros existentes ya que es lo ms rentable para aprovechar el disco duro. El comando
du, pues, nos muestra el nmero de bloques que realmente utiliza un determinado archivo en el disco. El tamao del
bloque y otros muchos parmetros se pueden configurar al formatear una particin del disco duro (con el sistema ext2
o ext3). Estos parmetros se pueden ajustar para hacer que el sistema se adapte ms a nuestras necesidades y conseguir
mayor eficiencia.
Un problema que aparece en algunos sistemas de ficheros es la fragmentacin de ficheros, que significa que un mismo
archivo est situado en bloques alejados del disco. Esto supone tener que desfragmentar el disco de forma peridica, que
no es ms que la reorganizacin de los bloques de los ficheros para que queden en lugares consecutivos y su acceso sea
ms rpido. En los sistemas de ficheros que utilizamos con GNU/Linux no hace falta desfragmemtar los discos (aunque
hay programas para hacerlo) porque el sistema ya se encarga automticamente de su buena organizacin.
Para saber los parmetros que tenemos configurados en nuestras unidades de disco formateadas con ext2 o ext3,
podemos utilizar el comando dumpe2fs, pasndole la particin concreta. Veremos como hay multitud de opciones
diferentes que nos permiten ajustar muy bien el comportamiento del mismo (en el manual encontraremos qu signifca
cada opcin). De todas formas, una vez hayamos formateado una particin, ya no le podremos modificar casi ninguna de
estas opciones. Si quisiramos cambiarlas, deberamos copiar toda la informacin de la particin, formatear de nuevo y
volver a copiar los archivos originales.
Las funciones del ncleo que se encargan de la gestin de ficheros utilizan una serie de mtodos para agilizar los
procesos de lectura y escritura de los mismos. Uno de ellos es la utilizacin de una cache de disco, de forma que no se
haya de estar constantemente leyendo y escribiendo en el dispositivo fsico, proceso lento y costoso. Lo nico que hace
el mecanismo de cache es mantener una copia del fichero con el que se est trabajando en la memoria RAM (mucho
ms rpida), de forma que para el usuario el proceso sea transparente (la copia a disco se realiza segn algn tipo de
poltica implementada en el ncleo). El nico problema de esta gestin es que si tenemos un corte en la alimentacin
y no hemos cerrado correctamente el sistema es posible que algunos ficheros no se hayan podido guardar en el disco
fsico y tengamos alguna inconsistencia en el sistema de ficheros. El programa fsck comprueba y arregla un sistema de
ficheros que haya quedado en este estado. Aunque lo podemos 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 ordenador debemos ejecutar el comando shutdown, que se encarga de lanzar todos los procesos necesarios para que
los programas acaben, se desmonte el sistema de ficheros, etc). En este sentido, el sistema de ficheros ext3 es ms eficaz
que su predecesor ya que el journaling le permite recuperar ms informacin de los ficheros perdidos y de forma ms
rpida.
Naturalmente, si los ficheros que tratamos en nuestro sistema son muy crticos y no podemos, en ningn caso, permitirnos el hecho de perderlos, tambin podemos configurar el operativo para que no utilice el sistema de cache de disco. De
todas formas, es muy recomendable utilizar este mecanismo porque incrementa mucho el rendimiento del sistema. Si en
algn momento nos interesa sincronizar la informaci de la cache de disco con el disco fsico podemos utilizar el comando
sync. Finalmente, tambin podemos comprobar la integridad fsica de una particin utilizando el comando badblocks,
que lleva a cabo un chequeo sobre el dispositivo indicado para comprobar que no haya ninguna zona daada.

2.6. OPERACIONES CON COMANDOS

21

La mayora de los comandos expuestos en esta seccin necesitan de permisos especiales para ejecutarse, de forma que
slo el root podr utilizarlos.

2.6. Operaciones con comandos


2.6.1. Redirecciones
Una vez aprendido como utilizar algunos de los comandos del sistema, es muy probable que en algunos casos nos
interese utilizarlos de forma simultnea para agilizar ms las acciones que queramos realizar. Una operacin muy interesante es poder coger la salida de un comando para que sirva de entrada a otro y procesarla adecuadamente. El sistema
operativo utiliza un mecanismo de pipes (tuberas) que nos permite redirigir las salidas de cualquier comando o programa hacia dnde queramos. Su funcionamiento es muy simple: se trata de poner el caracter | entre los comandos de
forma que la salida del primero sirve como entrada para el segundo. Vamos a verlo con un ejemplo: al escribir el comando echo campo1:campo2:campo3:campo4 lo nico que conseguiramos sera que por pantalla nos apareciera
campo1:campo2:campo3:campo4. Si de esta salida slo quisiramos coger el campo3 podramos redirigirla
con un pipe hacia el comando cut para que slo seleccionara el campo que nos interesara de la siguiente forma: echo
campo1:campo2:campo3:campo4 | cut -d: -f 3. En la figura 2.3 podemos ver este ejemplo de forma grfica.

echo campo1:campo2:campp3:campo4
campo1:campo2:campo3:campo4
PIPE

cut d: f 3

campo3

Figura 2.3: Ejemplo de uso de tuberas.

Naturalmente, podemos conectar tantos pipes como necesitemos para realizar acciones ms prcticas que la que
acabamos de ver. Otro tipo de redireccionamientos muy prcticos son aquellos relacionados con los ficheros. Este tipo de
redireccin nos permite coger toda la salida de un comando o programa y guardarla en un fichero utilizando el caracter
> de igual forma que hacamos con |. Por ejemplo, si queremos guardar en un nuevo fichero todo lo que vayamos
escribiendo hasta apretar CTRL+C podramos utilizar lo siguiente: cat > prueba.txt. Con >> podemos hacer
exactamente lo mismo pero en lugar de crear siempre el nuevo fichero si ste ya existiera se aadira la informacin al
final del mismo. Con < la redireccin es en el sentido contrario, de forma que el contenido del fichero que le indiquemos
se dirigir hacia el comando o programa indicado.
Un aspecto muy interesante que debemos conocer es que en sistemas tipo UNIX se separa la salida normal de un
programa con la de los errores. Aunque por defecto las dos salidas estn dirigidas a la consola donde se ha ejecutado
el programa, podemos manipularlas para que se dirijan hacia donde queramos. Un ejemplo para ver esto es si probamos
de borrar un fichero que no existe con la siguiente instruccin: rm fichero > resultados. Aunque estamos
redireccionando la salida del comando hacia el fichero de resultados, por pantalla nos aparecera un mensaje de error
indicando que no se ha encontrado el fichero. Esto es debido a que por defecto las redirecciones slo aceptan la salida
estndar del programa y no la de error, que por defecto tambin se muestra por pantalla. Para redirigir la salida de error
deberamos indicar, antes del caracter > el nmero 2, que es la salida de error (la 1 es la normal). De esta forma,
ejecutando rm fichero 2 > resultados s conseguiramos que la salida se redirigiera al archivo de resultados.
Tambin podemos guardar la salida normal y la de errores en dos ficheros diferentes: rm fichero 1> resultados
2> errores. Si por el contrario quisiramos que todas las salidas se dirigieran hacia un mismo archivo podramos
utilizar >&. Adems, con el caracter & podemos encaminar salidas de un tipo hacia otras; por ejemplo, si quisiramos
encaminar la salida de errores hacia la normal podramos indicarlo de la siguiente forma: 2>&1.

CAPTULO 2. CONCEPTOS Y COMANDOS BSICOS

22

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

2.6.2. Comandos especficos del bash


Aunque algunos de los comandos que hemos visto ya son especficos del bash, este intrprete de comandos tiene
otros que nos pueden 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 sencillamente indica que el proceso se est ejecutando pero
que el shell nos devuelve la lnea de comandos para poder seguir ejecutando otros programas. Para indicarle sto al
bash debemos escribir el caracter & despus del comando o programa a ejecutar. Una vez lanzado el proceso en modo
background se muestra una lnea dnde se nos indica el nmero de trabajo y PID del proceso lanzado.
Con el comando jobs podemos ver qu procesos estn lanzados en modo background (pasndole el parmetro -l
tambin podremos ver su PID). Si quisiramos pasar uno de estos procesos a modo foreground (como si lo hubiramos
lanzado desde la lnea de comandos sin el caracter &), podemos utilizar el comando fg indicando el PID del proceso.
Tambin existe bg, que nos enva un determinado proceso a modo background. Este ltimo es til cuando, por ejemplo,
ejecutamos un programa en mode foreground y lo pausamos con CTRL+Z. Si despus ejecutamos bg indicndole su PID,
el proceso continuar su ejecucin en modo background. Tal y como veamos en secciones anteriores, los procesos tambin
tienen un jerarqua de padres a hijos. Cuando ejecutamos algn programa en modo background no estamos interfiriendo
en esta jerarqua, de forma que si salieramos de la sesin, todos stos procesos se acabaran porque el padre (el intrprete
de comandos desde donde los hemos lanzado) ya no estara en ejecucin. Si queremos desvincular un proceso de su padre
podemos utilizar disown.
Otro mecanismo muy til del bash es la historia de comandos. Es normal que utilzando el sistema hayamos de repetir
muchas instrucciones ya escritas anteriormente. Con la teclas de cursor arriba y abajo podemos ir viendo todos los comandos que hemos ido utilizando y repetir alguno apretando RETURN. Tambin podemos utilizar history, con el cual se
mostrarn por pantalla todos los comandos ejecutados, enumerados segn su aparicin. Escribiendo !NUM se ejecutar
el que corresponda con sta historia. Tambin podemos escribir ! seguido de las letras iniciales de algn programa
ejecutado anteriormente y se buscar el ms reciente para ejecutarlo.
El bash tambin dispone de teclas de acceso rpido que nos permiten ejecutar ciertas acciones sin tan siquiera escribirlas. Algunas de las ms frecuentes son:
TAB: al escribir el nombre de un fichero, directorio o comando no hace falta hacerlo completamente. Si escribimos
los primeros caracteres y despus apretamos la tecla de tabulador nos acabar de escribir el resto. Si hubiera ms de
una coincidencia nos mostrara las diferentes posibilidades.
CTRL+L: limpia la pantalla (igual que el comando clear).
SHIFT+REPG: ensea media pantalla anterior.
SHIFT+AVPG: ensea 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 intrprete 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, permite indicar la cantidad de memoria que puede utilizar el intrprete de comandos, el nmero mximo 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. OPERACIONES CON COMANDOS

23

2.6.3. Shell scripts con bash


Los shell scripts son ficheros donde escribimos una serie de comandos (cualquiera de los que hemos visto en este
captulo) para que sean ejecutados (tambin existe el comando fc que nos permite, igual que los shell scripts, escribir una
serie de comandos para que se ejecuten pero sin tener que guardar el archivo). Aunque su sintaxi puede llegar a ser muy
compleja y tendramos que entrar en aspectos de programacin para entenderla claramente, en esta seccin explicaremos
de forma resumida algunas de las caractersticas esenciales de ellos para que podamos entenderlos y utilizarlos mnimamente (si queremos profundizar ms en ellos podemos recorrer al manual del bash). La primera lnea del shell script debe
especificar el intrprete de comandos que se utiliza:
#!/bin/bash
Despus de esta lnea ya podemos empezar a escribir los comandos que queramos que se ejecuten, uno en cada lnea.
Como en todo lenguaje de programacin, podemos utilizar variables, estructuras condicionales y bucles. Para declarar una
variable utilizaremos la siguiente sintaxi:
nombreVariable=contenido
Si el contenido es una cadena de caracteres, debemos ponerlo entre comillas, si es un nmero no hace falta poner
nada y si queremos guardar en la variable la salida de un comando deberamos ponerlo entre caracteres . Para referirnos
al contenido de la variable en otras instrucciones siempre debemos preceder al nombre con el caracter $. Para las
instrucciones condicionales podemos utilizar las siguientes estructuras:
if condicin; then
instrucciones
else
instrucciones
fi
dnde condicin puede hacer referencia a un archivo, realizar alguna operacin de comparacin aritmtica (entre
caracteres (( ))), etc. De especial utilidad es el comando test, que nos permite hacer comprobaciones de archivos,
directorios, etc. y nos devuelve un boleano. De esta forma, por ejemplo, si quisiramos realizar una accin u otra segn si
existiera un determinado archivo, podramos utilizar la siguiente estructura:
if test -f /etc/inittab; then
echo "El fichero inittab existe."
else
echo "El fichero inittab NO existe."
fi
Otra estructura condicional es la de seleccin:
case palabra in
caso1)
instrucciones
;;
caso2)
instrucciones
;;
*)
instrucciones
esac
En esta estructura se compara palabra con caso1, caso2,. . . hasta encontrar la que coincida, en la que se ejecutarn las instrucciones del caso. Si no se encontrara ninguna, se pasara a la seccin *), que es opcional. Esta estructura

24

CAPTULO 2. CONCEPTOS Y COMANDOS BSICOS

puede irnos muy bien cuando, por ejemplo, queramos que un determinado script haga unas acciones u otras segn un
parmetro que le pasemos. Los parmetros los podemos referenciar a partir de $1 para el primero, $2 para el segundo y consecutivamente. Para los bucles podemos utilizar alguna de las siguientes estructuras (para escribir comentarios en
los shell scripts podemos utilizar el caracter # seguido del comentario que queramos -vlido hasta final de lnea-):
#BUCLE TIPO FOR
for i in lista; do
instrucciones
done
#BUCLE TIPO WHILE
while condicin; do
instrucciones
done
Naturalmente, antes de poder ejecutar un shell script deberemos dar el permiso de ejecucin al fichero correspondiente
(comando chmod 750 nombreFichero).

Captulo 3

Taller de KNOPPIX
3.1. Introduccin
Este taller pretende ser nuestra primera experiencia con un entorno UNIX. Por esta razn su desarrollo es guiado paso
a paso, dejando, por supuesto, la puerta abierta a los ms curiosos a que investiguen por cuenta propia. Con l se pretende
mostrar de forma prctica todo lo que se ha expuesto hasta ahora de forma terica.
Todo el taller se puede desarrollar sobre cualquier PC ya que el riesgo de daar la informacin que podamos tener en
el s mnima. Se ha escogido esta distribucin ya que para arrancarla no se requiere 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 estn a salvo), en el ordenador donde se ha hecho correr.
Obviamente, si se dispone de un sistema operativo tipo UNIX se puede usar para hacer el seguimento del taller.
El hecho de ser una distribucin arrancable (bootable) desde un CDROM y no dejar rastro en el ordenador donde se
ha ejecutado, una vez ha terminado el processo de parada, hace que, an estando basada en Debian, el sistema de ficheros
no siga lo que marca la Debian Policy al respecto. No obstante, estas diferencias no afectarn al desarrollo del taller, y,
todo lo que aprendamos ser vlido para los posteriores. Adems, es bueno que desde el principio nos acostumbremos
a trabajar con distintas distribuciones, y aprendamos a distinguir entre lo que es comn a todos los sistemas basados en
UNIX y lo que es propio de cada distribucin.
Antes de empezar slo un consejo: adelante con nuestras propias iniciativas, intentemos responder nosotros mismos
a nuestras inquietudes, consultemos los man, hagamos pruebas, fallemos y analicemos el porqu lo hemos hecho, intentmoslo 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 aseguranos que nuestro ordenador arrancar desde el CDROM. Para esto entraremos en la
BIOS (Basic Input Output System), generalmente pulsando la tecla Supr durante el processo de chequeo de la memoria
RAM, y comprobaremos que el CDROM est configurado como primer dispositivo de arranque; si es as, ya podemos salir
de la BIOS sin necessidad de guardar nada y poner el CDROM de KNOPPIX en el lector. Si no fuese el caso, haramos
los cambios pertinentes y los salvaramos antes de salir de la BIOS.
Tras reiniciar el ordenador, transcurridos unos segundos nos aparecer la pantalla de arranque de KNOPPIX con las
siguientes lneas 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. Podramos, por ejemplo, arrancar con teclado espaol y lengua castellana para la interaccin, y activar el scroll
wheel del ratn; para hacerlo, bastara con teclear en la lnea de comandos (boot:) lo siguiente knoppix lang=es wheelmouse. Pero no es el caso; el ejemplo anterior era slo para mostrar la potencia de KNOPPIX; nosotros, despus de
25

CAPTULO 3. TALLER DE KNOPPIX

26

insertar un disquet nuevo formateado en la disquetera, sobre el que daremos nuestros primeros pasos en Linux, garantizando as el resto de informacin que podamos tener en nuestros discos duros, slo escribiremos knoppix 2 y pulsaremos
INTRO para arrancar el sistema en modo texto.
Nota: inicialmente el teclado est configurado para EUA (us), as que algunos caracteres no se corresponden a teclado
espaol; en seguida arreglaremos esto, aun y as puede ser de inters saber dnde se encuentran algunos caracteres us en
el teclado espaol: = est en la tecla a,
/ 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 auto configuracin.
Una vez terminado este proceso se obtendr la lnea de comandos root@tty1[/]#:
Welcome to the KNOPPIX live Linux-on-CD!

Found SCSI device(s) handled by atp870u.o.


Accessing KNOPPIX CDROM 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"
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 cdrom cdrom1.
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 notamos porque el prompt temina con el carcter #. Para cualquier otro usuario, distinto del de root, el
ltimo carcter sera $.

3.3. Paro del sistema


Una vez dentro, lo primero que debemos saber, tal y como ya se ha remarcado, es cmo pararlo. Recordemos una vez
ms que no podemos parar el ordenador sin haber detenido antes el sistema operativo. Hay mltiples maneras de hacerlo.
Las ms comunes son: pulsar la combinacin de teclas CTRL+ALT+Supr o mediante el comando halt (hay muchas
ms, 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 intrucciones pertinentes de paro (desmontaje de dispositivos, parada de
procesos, etc.), y al final de todo este proceso, KNOPPIX expulsar el CDROM , y nos pedir que pulsemos INTRO para
parar el ordenador.

3.4. Configuracin del teclado


Una vez sabemos cmo parar el sistema, y volvamos a estar en l, siguiendo los mismos pasos de arranque anteriores,
lo primero que debemos hacer es configurar el mapeo del teclado correctamente. Hay dos formas de hacerlo, manualmente:

3.5. INSPECCIN DEL SISTEMA

27

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

o bien grficamente con el comando kbdconfig y escogiendo la opcin es

es.

Es importante recordar que siempre tememos la opcin de autocompletar pulsando TAB una vez, si slo hay una
opcin posible, y que se autocomplete; o dos veces seguidas, si hay ms de una opcin, y que se nos muestren las
posibilidades. Podemos probarlo con el comando loadkeys mismo. Tecleemos slo una l y pulsemos TAB una vez, el
sistema emite un pitido; y una segunda para obtener los siguiente:
root@tty1[/]# l
Display all 143 possibilities? (y or n)

En este caso no queremos que se nos muestren las 143 possibilidades. Pulsemos pues n, aadamos una o y
repitamos la operacin anterior de pulsar dos veces TAB. Ahora obtenemos un resultado distinto:
root@tty1[/]# lo
loadkeys
locale-gen
loadshlib
localedef
local
locate
locale
lockfile
root@tty1[/]# lo

lockfile-create
lockfile-remove
lockfile-touch
logdump

logger
login
logname
logout

logredo
logresolve
logrotate
look

lookbib
lorder
losetup

Vemos que solo falta aadir adk y volver a pulsar TAB para que funcione el autocompletaje obteniendo:
root@tty1[/]# loadkeys

El autocompletaje tambin sirve para hacer referencia a ficheros y directorios. Basta con teclear loadkey /u y
pulsar TAB para obtener:
root@tty1[/]# loadkeys /usr

Y volver a pulsar TAB para obtener:


root@tty1[/]# loadkeys /usr/

El autocompletaje es una herramienta muy til, no slo porque ahorra teclear, sino porque adems sirve para verificar
que hemos escrito correctamente, tanto los comandos como los directorios y ficheros. Es una herramienta, que una vez
acostumbrados a usarla, su ausencia se hace notar.

3.5. Inspeccin del sistema


Una vez tenemos el teclado configurado, podemos proceder a inspeccionar un poco el sistema. En primer lugar, en
qu sitio, de la estructura de directorios nos encontramos actualmente? sto lo podemos saber mediante el comando pwd:
root@tty1[/]# pwd
/

Estamos en la raz del sistema, lo sabemos por el retorno del comando pwd, pero tambin lo hubiramos podido saber
leyendo la informacin que nos da el prompt: root@tty1[/]#. Antes ya hemos entendido el significado del carcter
#, entendamos ahora el resto de informacin que ste nos da:
root, en este campo aparece el nombre de usuario, root en este caso, informacin un tanto redundante, pues lo
mismo indica el caracter #, pero para el resto de usuarios es interesante.
Despus del carcter @, el cual simplemente sirve para separar campos, hay tty1, este campo nos indica en qu
terminal nos encontramos, y es que, y tal como ya se ha dicho, Linux s multiusuario y multiproceso; as pues, no es de
extraar que podamos acceder al sistema desde varios terminales. Concretamente KNOPPIX por defecto ofrece cuatro

CAPTULO 3. TALLER DE KNOPPIX

28

terminales, a los que podemos acceder mediante las combinaciones de teclas ALT+F1 (tty1), ALT+F2 (tty2), ALT+F3
(tty3) y ALT+F4 (tty4); sto es extremadamente til, ya que nos permite tener hasta cuatro sesiones de trabajo, pudiendo, por ejemplo, en una estar probando un comando, y en otra tener el man del comando cuestin para ir leyendo sus
opciones, mientras que en otro podemos tener un editor abierto para ir tomando nota de lo que vamos haciendo (muchas
distribuciones ofrecen seis terminales modo texto, reservando el sptimo para el terminal grfico; en KNOPPIX el terminal grfico, si se ha habilitado, no en nuestro caso, se hallara en el quinto terminal). As pues probemos la combinacin
ALT+F2, observemos ahora que en el campo que estamos estudiando aparece tty2, y ejecutemos un comando, por
ejemplo man man, para leer el manual de la aplicacin man. De momento dejmosla ah y volvamos a la tty1, y comprobemos que todo est como lo habamos dejado.
Finalmente, y siguendo con la interpretacin del prompt, antes del campo ya conocido # encontramos [/]:
aqu se nos indica el directorio actual, el raz en este caso, tal y como ya habamos sabido mediante el comando pwd. La
diferencia radica en que el prompt slo 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 ninguna opcin, y despus dos para indicarle que nos devuelva informacin ms detallada (normalmente las
opciones van precedidas de -, aunque hay comandos que no lo exijan, y una vez puesto el - se pueden concatenar
como se hace en el ejemplo):
root@tty1[/]# ls
KNOPPIX bin boot cdrom dev
ramdisk sbin tmp usr var
root@tty1[/]# ls -la
total 45
drwxr-xr-x
9 root
root
drwxr-xr-x
9 root
root
drwxr-xr-x
20 root
root
lrwxrwxrwx
1 root
root
lrwxrwxrwx
1 root
root
dr-xr-xr-x
5 root
root
drwxr-xr-x
3 root
root
drwxr-xr-x 139 root
root
lrwxrwxrwx
1 root
root
lrwxrwxrwx
1 root
root
drwxr-xr-x
13 root
root
lrwxrwxrwx
1 root
root
dr-xr-xr-x
30 root
root
drwxrwxrwt
4 root
root
lrwxrwxrwx
1 root
root
lrwxrwxrwx
1 root
root
lrwxrwxrwx
1 root
root
lrwxrwxrwx
1 root
root

etc

home

lib

1024
1024
4096
12
13
2048
29696
6144
13
12
1024
12
0
80
13
8
12
12

Mar
Mar
Jan
Jan
Jan
Jan
Mar
Mar
Mar
Jan
Mar
Jan
Mar
Mar
Jan
Jan
Jan
Mar

mnt

2
2
18
18
18
4
2
2
2
18
2
18
2
2
18
18
18
2

opt

18:37
18:37
18:05
17:58
17:58
03:34
17:58
17:49
18:37
17:58
17:38
17:58
18:37
18:37
17:58
17:58
17:58
18:37

proc

.
..
KNOPPIX
bin -> /KNOPPIX/bin
boot -> /KNOPPIX/boot
cdrom
dev
etc
home -> /ramdisk/home
lib -> /KNOPPIX/lib
mnt
opt -> /KNOPPIX/opt
proc
ramdisk
sbin -> /KNOPPIX/sbin
tmp -> /var/tmp
usr -> /KNOPPIX/usr
var -> /ramdisk/var

Fijmonos en los distintos colores con los que se nos muestran los resultados: azul marino para los directorios; magenta
para los enlaces simblicos, el destino de los cuales se nos muestran despus de la combinacin de caracteres ->; verde
para los scripts y ejecutables (an que, obviamente, en el directorio raz no esperamos encontrar ninguno de ellos, ya que,
tal y como hemos visto, en UNIX el orden dentro del sistema de ficheros es muy rgido); etc.
Entremos en algn directorio donde seguro que encontraremos ejectuables, por ejemplo /usr/bin/ (para hacerlo
ejecutemos cd /usr/bin/). El directorio /usr/ es en realidad un enlace simblico sobre /KNOPPIX/usr/;
podramos pues, acceder a sus contenidos entrando en l directamente mediante el comando cd o bien seguir, mediante el
mismo comando, el destino real. Sin embargo, escogemos la primera opcin, pues cuando nos encontremos en un sistema
UNIX instalado en un disco duro este directorio ser un directorio real:
root@tty1[bin]#
total 171831
drwxr-xr-x
2
drwxr-xr-x
14
-rwxr-xr-x
1
-rwxr-xr-x
1
-rwxr-xr-x
1

ls -la
root
root
root
root
root

root
root
root
root
root

311296
2048
5380
1649
1971

Jan 18 18:04 .
Aug 17 2002 ..
Apr 1 2002 411toppm
Sep 15 20:36 822-date
Jun 5 2002 AbiWord

3.6. MANEJO DIRECTORIOS Y FICHEROS

.
.
.
-rwxr-xr-x
-rwxr-xr-x

1 root
1 root

root
root

29

17992 Sep 16 22:34 zsoelim


966 Sep 4 13:53 zxpdf

Probablemente no hayamos podido ver ms que las ltimas lneas de las que han cruzado la pantalla. Podemos
vizualizar algunos resultados ms pulsando Shift+RePg para retroceder en listado y Shift+AvPg para avanzar; aun
y as, el bffer del terminal tiene un lmite, y probablemente no podremos vizualizar tampoco, mediante esta tcnica,
toda la informacin devuelta por el comando ls. Debemos, pues, recurrir a otras tcnicas, el redireccionamiento de la
salida (en este caso sobre un fichero) o el uso de pipes | y paginadores (less en este caso, que usa las teclas RePg y
AvPg para desplazar el contenido 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, adems aprovecharemos para poner en prctica
otra utilidad que nos ahorrar teclear: pulsando los cursores de arriba y abajo podemos desplazarnos por todas las lneas
de comandos que hemos pasado al sistema; as pues, para obtener la lnea deseada, ls -la | less, bastar con
pulsar una vez el cursor de arriba una vez y aadir | less.
less es un paginador muy potente que KNOPPIX, y la mayora de distribuciones, usa para mostra los contenidos de
los man (aunque, como la mayora de cosas en Linux, lo podemos configurar a nuestro gusto). As pues, podemos hacer
un man less para informarnos un poco sobre este comando, y de paso irnos acostumbrando a la morfologa de esta
ayuda. bviamente, ya que estamos bajo less para salir de man basta con pulsar la tecla q.
Fijmonos 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 ..; estos directorios son creados automticamente por el
sistema al crear un directorio como subdirectorios del directorio creado, y continen informacin muy especial: . hace
referencia al propio directorio (de modo que, si hacemos, por ejemplo, un ls -la . obtendremos la misma informacin que haciendo un ls -la) y .. hace referencia al directorio padre, (haciendo un ls -la .. obtendremos
el listado de contenidos del directorio padre).
ACTIVIDADES
1. Hacer un man del comando ls y entender qu funciones tienen los parmetros -a y -l.
Recordamos dnde estamos dentro del sistema de ficheros? No? Pues el comando pwd nos lo recordar. Volvamos
al directorio raz. Hay bsicamente dos formas de hacerlo, y una otra especial para este caso; de cualquier manera todas
se basan en el uso del comando cd, diferencindose entre ellas por el argumento que le pasemos en cada uno de los
casos. La primera forma es ir volviendo a los directorios padre paso a paso, mediante cd .. (atencin, el sistema no
entiende cd.., ya que interpreta que estamos intentando ejecutar un comando llamado cd.., el cual no existe),
iterativamente hasta llegar al directorio raz (lo veremos en el prompt). La segunda, ms eficaz, ya que con una sola
lnea de comandos conseguiremos nuestro propsito, es ir directamente al directorio deseado, pasndolo como argumento
al comando cd, cd / en este caso; esta segunda opcin es mucho ms potente ya que permite pasar directamente
a directorios que pertenecen a distintas ramas, podramos, por ejemplo, haber hecho cd /etc/rcS.d/ 1 para ir a
este directorio, estando a /usr/bin/. Como hemos dicho, para este caso hay una tercera opcin para conseguir el
mismo fin, y con variaciones: se trata de ejecutar cd sin pasarle ningn argumento, y nos situaramos directamente a la
raz del sistema ya que ste es, en el caso de KNOPPIX (caso excepcional y un tanto peculiar, ya que en la mayora de
distribuciones, y segn el Filesystem Hierarchy Standard2 , root debe tener un home propio /root), el directorio home
de root; una variacin de este mtodo es cd , ya que es equivalente al home del usuario, el directorio raz en este
caso. An existe otra opcin para volver al directorio raz, o mejor dicho, para volver al directorio del que venimos, el
raz, ya que habamos ejecutado cd /usr/bin, y que es cd -, ya que en - se guarda el ltimo directorio en el
que hemos estado antes del actual.

3.6. Manejo directorios y ficheros


Una vez examinadas tantas opciones para hacer lo mismo, nos hallamos todava en el directorio raz. Podemos ahora
aprender a crear directorios y ficheros, moverlos, copiarlos, borrarlos, etc. Lo haremos sobre el disquet que hemos intro1 la

ltima barra es opcional

2 http://www.pathname.com/fhs/

CAPTULO 3. TALLER DE KNOPPIX

30

ducido al arrancar KNOPPIX, y que el sistema mismo, al arrancar lo automontado (ms a delante aprenderemos como
montar y desmontar dispositivos). 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 importante, ya que si no
la integridad de los datos no est en absoluto garantizada. Podemos, por ejemplo, antes de proceder a trabajar sobre el
disquet, intentar retirar el CDROM pulsando el botn de expulsin. Oh! sorpresa, no se puede; no pensemos que se ha
estropeado el dispositivo y menos que lo haya hecho Linux. Simplemente sucede que este dispositivo tambin ha sido
montado automticamente por el sistema durante el arranque, y que, por tanto, ha pasado a formar parte de ste; no tendra ningn sentido que pudisemos retirar el CDROM sin antes informar al sistema; as pues, ste ha tomado el control
de este dispositivo, y entre otras cosas ha deshabilitado el botn de expulsin del CDROM, precisamente con el fin de
que accidentalmente ste sea retirado sin antes ser desmontado. No sucede lo mismo con la disquetera: en este dispositivo la expulsin se hace de forma puramente mecnica, as que es imposible que el sistema pueda impedir que nosotros
expulsemos el disquet sin informarle antes, pero esto no es en absoluto recomendable, tal y com ya se ha dicho, porque
esto puede suponer la prdida de todos los datos que pudiese contener. As pues, mientras no aprendamos a montar y
demontar dispositivos de soporte de datos, el disquet 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 efectuaran las de desmontaje de estos
dispositivos. Vayamos al disquet: pero, dnde est? dnde lo ha montado el sistema? Para responder a estas preguntas
ejecutemos el comando mount sin argumentos ni opciones adicionales (precisamente ste es el comando que se utiliza
para montar dispositivos, y umount para desmontarlos):
root@tty1[/]# mount
/dev/root on / type ext2 (rw)
/dev/cdrom on /cdrom 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)

Este comando, llamado sin argumentos, nos muestra los dispositivos montados en el sistema en el momento de
ejecutarlo junto con alguna informacin adicional acerca de ellos (esta misma informacin se puede encontrar en el
fichero /etc/mtab, en consequencia haciendo un cat /etc/mtab conseguiramos los mismos resultados). En la
segunda lnea retornada por el comando ya podemos ver que, efectivamente, el CDROM, /dev/cdrom, est montado en el sistema, y adems podemos ver que est montado sobre el directorio /cdrom/. La ltima lnia retornada responde las preguntas que nos formulbamos anteriormente: el sistema ha montado el disquet, /dev/fd0/, en
/mnt/auto/floppy/. Cambiemos pues a este directorio para empezar a trabajar sobre el disquet, y comprobemos
que efectivamete est vaco:
root@tty1[/]# cd /mnt/auto/floppy
root@tty1[floppy]# ls -la
total 8
drwxrwxrwx
3 knoppix knoppix
drwxr-xr-x
3 root
root

7168 Jan
0 Mar

1 1970 .
3 19:34 ..

Creemos nuestro primer directorio, entremos en l y creemos 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

Entremos en el primer subdirectorio y creemos nuestro primer fichero:


root@tty1[dir00]# cd subdir00
root@tty1[subdir00]# touch file00
root@tty1[subdir00]# ls -la
total 1
drwxrwxrwx
2 knoppix knoppix
drwxrwxrwx
4 knoppix knoppix
-rwxrwxrwx
1 knoppix knoppix

512 Mar
512 Mar
0 Mar

3 20:21 .
3 20:21 ..
3 20:21 file00

3.6. MANEJO DIRECTORIOS Y FICHEROS

31

En realidad touch no sirve para crear ficheros vacos, aunque lo hace si el fichero no existe, sino que sirve para cambiar
las informaciones relativas a fechas y horas de los archivos. Podemos poner algn contenido 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

Aadmosle un poco ms de texto:


root@tty1[subdir00]# echo "Nice to meet you, were gonna be good friends" >> file00
root@tty1[subdir00]# cat file00
my first hello world in Linux
Nice to meet you, were gonna be good friends

No olvidemos usar los cursores para ahorrarnos tecleo, ni del autocompletaje. Podemos ahora 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 edicin. Para entrar en el modo de edicin basta con
pulsar 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 (obviamente, vi dipone de muchsimos ms comandos, pero por ahora con estos dos nos basta). Es
muy interesante conocer estos comandos bsicos de vi, ya que este editor biene en casi todos los paquetes bsicos de
instalacin de cualquier distribucin, y si sta fallase en algn momento, nos puede ser til para modificar algn fichero
para poder proseguir dicha instalacin3 . Ejecutemos, pues, vi seguido del nombre que queramos dar a nuestro segundo
fichero, pulsemos la tecla i, escribamos lo que nos parezca oportuno, pulsemos ESCy :wq para guardar y salir.
Mediante more, otro paginador, comprobemos que todo ha ido como esperbamos:
root@tty1[subdir00]# vi file01
it seems were on the right way, mate!!!
I agree.
~
~
~
:wq
root@tty1[subdir00]# more file01
it seems were on the right way, mate!!!
I agree.

Ahora probemos de borrar nuestro primer fichero. Lo haremos mediante el comando rm :


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

Lo cierto es que esta pregunta por parte del sistema no nos la esperbamos. Pulsemos CTRL-C para cancelar, n para
no borrar o y para hacerlo. Lo importante ahora es que entendamos por qu el sistema nos ha formulado esta pregunta.
Si leemos el man del comando rm veremos que ste debera borrar el archivo sin hacer ninguna pregunta (recordemos
que podemos ejecutar dicho man en otra tty, y que en la tty2 an tenemos abierto el man de man, si no hemos salido de l
mediante q, o si no hemos apagado el ordenador desde que lo invocamos, y as proseguir nuestro trabajo en la tty que
estbamos). Pero fijmonos en la explicacin de la opcin -i de este mismo man. Qu est pasando? Parece como si
esta opcin estuviera 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 ..
3 En sistemas bsicos tipo UNIX, si no se cuenta con vi se puede probar si hay instalados otros editores de texto ms elementales como pueden ser
nano, pico, etc.

CAPTULO 3. TALLER DE KNOPPIX

32

alias
alias
alias
alias
alias
alias
alias
alias
alias

cp=cp -i
l=ls -a --color=auto
la=ls -la --color=auto
ll=ls -l --color=auto
ls=ls --color=auto
mv=mv -i
rm=rm -i
where=type -all
which=type -path

Aqu empezamos a entender muchas ms 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 tambin entendemos por qu cuando hemos ejectuado el rm
anterior, el sistema nos ha preguntado si realmente queramos hacerlo. Mediante alias podemos establecer y modificar
el comportamiento por defecto de comandos o incluso crear de nuevos:
root@tty1[subdir00]# alias hi=echo "I say hello"
root@tty1[subdir00]# hi
I say hello

Continuando con el man del comando rm leamos 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, desobedeciendo la opcin -i, as que si no habamos
borrado nuestro primer fichero podemos hacerlo ahora mediante rm -f file00. La segunda opcin fuerza la recursividad, es decir, que la orden se extienda sobre todos los posibles subdirectorios y sus contenidos. Estas opciones son
comunes a la mayora de comandos bsicos destinados a la manipulacin de directorios y ficheros; as pues, podemos
crear un segundo directorio en la raz del disquet con todos los contenidos del primero que hemos creado mediante el
comando cp; para hacerlo 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 operacin, es decir, hemos indicado, partiendo del directorio raz, la ruta completa tanto para el origen como
el destino. Tambin se podra haber utilizado el direccionamiento relativo para especificar el origen, el destino o ambos
de la operacin. Cuando usamos el direccionamiento relativo el origen del direccionamiento es la posicin actual dentro
del filesystem. Como en la mayora de ocasiones el sistema nos ofrece la posiblidad de obtener los mismos resultados
empleando distintos mtodos. Se trata de conocer cuantos ms mejor, y saber escoger el ms efectivo para cada caso en
particular. As pues hubisemos obtenido el mismo resultado haciendo cp ../../dir00/ ../../dir01 -r, es
decir, comunicndole a cp que el origen es el directorio /dir00/ el cual se encuentra dos ramas por debajo de nuestra
posicin actual, y que el destino es /dir01/ al que tambin queremos situar dos ramas por debajo de nuestra posicin.
Asimismo hubiese sido perfectamente vlida la lnea cp -r ../ ../../dir01/ para alcanzar los mismos fines.
ACTIVIDADES
1. Explicar el porqu de esta ltima aseveracin.
Ahora podemos descender un subdirectorio, con lo cual nos situaremos en /mnt/auto/floppy/dir00/ y podemos copiar el segundo fichero que hemos creado en el subdirectorio /subdir00 en este mismo directorio:
root@tty1[dir00]# cp subdir00/file01 .

Tenemos que entender completamente el significado y el porqu de la lnea anterior: en primer lugar especificamos el
origen del fichero a copiar (tambin hubiese sido vlido, entre muchas otras opciones, ./subdir00/file01), y en
segundo lugar hay que especificar obligatoriamente el destino, siendo ste la posicin actual, es decir .. Mediante un
ls podemos comprobar si hemos obtenido el resultado deseado. Ahora podemos situarmos en el directorio padre, donde
se halla montado el disquet y borrar todo lo que hemos generado hasta ahora. Para hacerlo utilizaremos el wildcard * 4
para ahorrar tecleo:
root@tty1[floppy]# rm -rf *
4 Existe tambin el wildcard ? el cual sirve para un solo carcter, as como distintos mtodos para especificar rangos de caracteres, y para referirse,
en general a ms de un fichero o directorio

3.7. ADMINISTRACIN DE USUARIOS

33

3.7. Administracin de usuarios


Debe alarmarnos el hecho de haber estado realizando todas las tareas anteriores como root, puesto que ya tenemos
muy claro que este usuario solo debe emplearse en caso necesario. No obstante, queda justificado ya que hasta ahora no
habamos tenido ningn contacto directo con un sistema UNIX, y esto nos ha servido para familiarizarnos un poco con
los comandos bsicos y con su sistema de ficheros. Ha llegado el momento de empezar a trabajar como hay que hacerlo
siempre a partir de ahora, es decir, utilizando la cuenta de root slo cuando es estrictamente necesario, como en el primer
paso que daremos a continuacin, el de crear un nuevo usuario del sistema y asignarle una cuenta, ya que esta operacin
slo la puede realizar el root. Procedamos 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 retonado
ninguna informacin respecto a este comando que acabamos de ejecutar. No sabemos pues ni a qu grupo o grupos
pertenece este usuario, dnde tiene este el home, qu shell se le ha asignado por defecto, etc. Mucha de esta informacin
la encontraremos en el fichero de passwords, /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 informacin deseada la encontramos en la ltima lnea del fichero, pues nuestro usuario ha sido el ltimo en
aadirse. Analicemos el contenido de esta lnea:
user00 es el nombre del usuario, que ya conocamos, ya que lo hemos creado nosotros mismos.
x su password se halla en el fichero de shadow, /etc/shadow.
1001 es su nmero de identificacin como usuario (UID).
No tiene ningn comentario asociado.
/home/user00 ste es su directorio home, tal como era de esperar, pues todos los usuarios tienen su home en
/home/usuario.
/bin/bash el shell con el cual el usuario se encontrar al iniciar la sesin es el bash, el mismo que hemos utilizado
hasta ahora.
La pregunta que nos formulamos immediatamente ante estas informaciones es relativa al password del usuario. Debemos pues 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 (general regular expression processor).
Los filtros son herramientas extremadamente potentes y muy usadas en UNIX, y su campo de accin se extiende mucho
ms all de lo que comnmente se entiende por filtro. En este caso, pasaremos, mediante un pipe, la salida de cat a grep
para que ste muestre por pantalla aquellas lneas que contengan la palabra que le pasamos como parmetro, user00:
root@tty1[etc]# cat shadow | grep user00
user00:!:12115:0:99999:7:::

A partir de ahora no debemos preocuparnos ms: el segundo campo nos indica que nuestro usuario no tiene password. Si lo hubiese tenido, no lo podramos conocer, pues tal como se ha dicho, los passwords se guardan encriptados y la encriptacin es unidireccional. Pero esto no debera preocuparnos tampoco ya que root, mediante el comando

CAPTULO 3. TALLER DE KNOPPIX

34

passwd, puede cambiar el password de cualquier otro usuario. As pues, lo nico que realmente debemos intentar es
no olvidar el password de root, que tampoco tiene password en este caso, tal como shadow nos inidica, aunque, si esto
sucediera, tambin tiene solucin. Continuemos con nuestra investigacin acerca de las propiedades de nuestro nuevo
usuario. /etc/group nos ayudar a saber 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:

Con la primera lnea de comandos nos preguntamos, con respuesta negativa, si /etc/group tiene alguna referencia
explcita a user00 (tambin se podra haber hecho mediante el comando groups, groups user00). Con la segunda
buscamos el reverso del grupo 100, grupo primario de user00 segn /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 fichero
/etc/group tambin se puede editar para aadir usuarios a grupos y crear grupos nuevos, pero hay que remarcar que
en ningun caso en el campo de usuarios pertenecientes a un grupo en concreto se puede poner el nombre de otro grupo
con la intencin de aadir todos los usuarios de ste tlimo al primero. Pero esta prctica no es demasiado recomendable
ya que existen comados especficos para trabajar con grupos (newgrp, addgroup, etc.)
Queda slo una ltima cuestin a resolver: si listamos los contenidos de /home/ veremos que el subdirectorio
/user00/ no existe. Debemos pues crearlo y asignarle las propiedades y atributos pertinentes 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
drwxrwxrwt
4 root
root
80 Mar
drwxr-xr-x
2 knoppix knoppix
40 Mar
drwxr-xr-x
2 root
root
40 Mar
drwxr-xr-x
2 user00
users
60 Mar

4
4
4
4
4

08:12
08:35
08:35
08:35
08:12

.
..
knoppix
root
user00

Nota: el proceso de adicin de nuevos usuarios al sistema mediante Debian es mucho ms sencillo como se ver ms
adelante. Pero crear uno mediante KNOPPIXo ha sido una tarea en balde, pues nos ha servido para familiarizarnos con
el sistema y aprender comandos nuevos.
ACTIVIDADES
1. Mediante man, entender el funcionamiento de los comandos chown y chgrp.
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 podemos utilizar siempre este mecanismo
para entrar como otro usuario sin necesidad de conocer su password, ya que al ejecutar su como root ste no es necesario;
adems, se da el caso que el usuario que hemos creado no tiene password, y por tanto ste nunca se pedir. Pero, si
probsemos de ejecutar su en cualquier otra circumstancia s que se nos pedira 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 dejado 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 carcter del prompt.
Podemos acceder ahora a entrar en nuestro directorio home, creemos un fichero y cambimosle los atributos para que tan
slo user00 pueda leerlo, ejecutarlo y escribir en l. De momento, el permiso de ejecucin no tiene mucho sentido para
nosotros, pues no sabemos an crear ficheros ejecutables, pero es bueno conocerlo de antemano para cuando se precise
de l:

3.8. GESTIN DE PROCESSOS

35

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

ACTIVIDADES
1. Crear un nuevo usuario siguiendo los pasos anteriormente descritos, y comprobar que, efectivamente, este nuevo
usuario no puede ni leer el fichero recin creado ni escribir en l.

3.8. Gestin de processos


UNIX se caracteriza por una excelente gestin de los procesos que se ejecutan sobre el sistema. En primer lugar aprendamos a detectar qu procesos estn corriendo sobre el sistema y sus praticularidades (modo en que corren, recursos que
consumen, quin los est ejecutando, etc.). Ejecutaremos el comando ps (process status) pasndole diversos parmetros
para ver cmo estos inciden sobre la informacin devuelta por el comando:
root@tty1[/]# ps
PID TTY
TIME CMD
481 tty1
00:00:00 bash
1559 tty1
00:00:00 ps

Sin argumentos ps nos informa sobre los procesos que corren sobre el terminal donde se ejecuta; naturalmente el
primer proceso siempre corresponder a la shell.
Podramos mandar ejecutar un proceso en background, sleep, por ejemplo (proceso que simplemente espera que
transcurra el nmero de segundos que le pasemos como parmetro para terminar) y observar el retorno de ps:
root@tty1[/]# sleep 300
[1] 1703
root@tty1[/]# ps
PID TTY
TIME
481 tty1
00:00:00
1703 tty1
00:00:00
1705 tty1
00:00:00

&

CMD
bash
sleep
ps

Podemos ahora preguntarnos por todos los procesos que estn corriendo sobre el sistema:
root@tty1[/]# ps aux
USER
PID %CPU %MEM
root
1 0.4 0.0
root
2 0.0 0.0
root
3 0.0 0.0
root
4 0.0 0.0
root
5 0.0 0.0
root
6 0.0 0.0
root
52 0.0 0.0
root
59 0.0 0.0
root
433 0.0 0.1
root
475 0.0 0.1

VSZ
72
0
0
0
0
0
0
0
1368
1316

RSS
72
0
0
0
0
0
0
0
616
596

root
root
root
root
root

2864
2864
2856
2856
3436

1988
1988
1952
1976
1552

481
482
483
484
2086

0.0
0.0
0.0
0.0
0.0

0.3
0.3
0.3
0.3
0.3

TTY
?
?
?
?
?
?
?
?
?
?

STAT START
TIME COMMAND
S
15:41
0:07 init [2]
SW
15:41
0:00 [keventd]
SWN 15:41
0:00 [ksoftirqd_CPU0]
SW
15:41
0:00 [kswapd]
SW
15:41
0:00 [bdflush]
SW
15:41
0:00 [kupdated]
SW
15:41
0:00 [kapmd]
SW
15:41
0:00 [khubd]
S
15:41
0:00 pump -i eth0
S
15:41
0:00 /usr/sbin/automount
--pid-file=/var/run/autofs/_:mnt_:auto.pid
tty1
S
15:41
0:00 /bin/bash -login
tty2
S
15:41
0:00 /bin/bash -login
tty3
S
15:41
0:00 /bin/bash -login
tty4
S
15:41
0:00 /bin/bash -login
tty1
R
16:06
0:00 ps aux

CAPTULO 3. TALLER DE KNOPPIX

36

Tambin puede ser interesante en determiandas situaciones ejecutar el comando top, el cual nos muestra la actividad
de la CPU, el uso de memoria, etc. de forma interactiva.
Ahora vamos a arrancar un proceso, detenerlo, y mandarlo a ejecutar en background. Para hacerlo haremos un sleep
20, pulsaremos la combinacin de teclas CTRL+Z antes de 20 segundos, para pararlo, jobs para asegurarnos que efectivamente est parado y conocer su numero de identificacin, y bg junto a su nmero de identificacin para mandarlo
ejecutar en modo background:
root@tty1[/]# sleep 20
<Ctrl+Z>
[1]+ Stopped
\intro
root@tty1[/]#jobs
[1]+ Stopped
root@tty1[/]# bg 1
[1]+ sleep 20 &
[1]+ Done
root@tty1[/]#

sleep 20

sleep 20

sleep 20

Ha sucedido que al haber transcurrido los 20 segundos el proceso ha terminado, estando an en background, se nos
ha informado por pantalla. Podemos comprobar mediante ps que efectivamente no hay ningn proceso corriendo. Ahora
podemos parar un proceso y devolverlo a foreground mediante fg:
root@tty1[/]# man ls
<Ctrl+z>
[1]+ Stopped

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

man ls

man ls

3.9. Activacin y uso del ratn


El ratn 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).
As pues, lo primero que haremos es configurar el ratn, y lo haremos con el programa ms comnmente utilizado, el
gpm, el cual automticamente ya corre en modo background 5.
Hay muchos tipos de mice, pero los ms corrientes son los de tres botones conectados al ordenador via puerto serie
o via puerto PS2. Si tenemos un ratn del primer tipo ejecutaremos la lnia siguiente (se presupone que el ratn est
conectado en el primer puerto serie del ordenador, si no fuese as sol habra 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 quarto
puerto):
#gpm -m /dev/ttyS0 -t msc

Si lo que tenemos es un ratn conectado al puerto PS2, para activarlo se usar el mismo procedimiento anterior
variando nicamente el device y el tipo de ratn:
#gpm -m /dev/psaux -t ps2

En principio, despus de ejecutar una de las dos lneas de comandos anteriores, como root, moviendo el ratn deberamos ver, en todos los terminales, el indicador de posicionamiento del ratn, y al ejecutar:
5 sto

es debido a que gpm es un daemon, termino que se analiza con detalle en secciones posteriores

3.10. OTRAS OPERACIONES

37

#ps aux | grep gpm

deberamos obtener una respuesta del tipo


root

182 0.0 0.1 1552 524 ?

Mar11

0:00 /usr/sbin/gpm -m /dev/psaux -t ps2

conforme gpm est corriendo en background.


Si no fuese as, es que nuestro ratn no es estndar. En este caso deberemos leer con atencin el man de gpm y ejecutar
gpm -t help para tratar de identificar el tipo de ratn que se adapte al que tenemos.
Una vez configurado mediante el botn de la izquierda podemos seleccionar la parte de texto que nos interese, y al
pulsar el botn del medio pegaremos el contenido seleccionado en la posicin actual del cursor. Si se est acostumbrado
a usar el ratn para marcar el posicionamiento del cursor, puede que los resultados que obtengamos no sean precisamente
los deseados, pero practicando un poco, enseguida nos acostumbraremos a este modo de operar.
Hay que destacar que el contenido del bffer del ratn se conserva al pasar de una tty a otra
ACTIVIDADES
1. Sacando provecho de el hecho de que el contenido del bffer del ratn se mantiene entre terminales, abrir en una
sesin de vi y en otra situarse a la raz 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 meditante cat comprovar que efectivamente hemos
obtenido los resultados deseados.

3.10. Otras operaciones


Para finalizar este primer taller ejectutaremos un seguido de comandos para seguir proceso de familiarizacin con el
sistema y para ir adquidiendo recursos para poder solucionar futuros problemas que puedan surgir.
Informmonos sobre el sistema, el tipo de mquina sobre el que corre, el hardware que tengamos instalado, etc (los
retornos de los comandos que siguen sern, naturalmente, distintos para cada caso en particular):
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

CAPTULO 3. TALLER DE KNOPPIX

38

00:00.0
00:01.0
00:05.0
00:06.0
00:07.0
00:09.0
00:09.1
00:09.2
00:0d.0
00:0f.0
00:11.0
00:11.1
00:11.2
00:11.3
01:00.0

Host bridge: VIA Technologies, Inc. VT8367 [KT266]


PCI bridge: VIA Technologies, Inc. VT8367 [KT266 AGP]
Multimedia audio controller: C-Media Electronics Inc CM8738 (rev 10)
RAID bus controller: Promise Technology, Inc. PDC20276 IDE (rev 01)
FireWire (IEEE 1394): Texas Instruments TSB43AB22 1394a-2000 Controller
USB Controller: VIA Technologies, Inc. USB (rev 50)
USB Controller: VIA Technologies, Inc. USB (rev 50)
USB Controller: VIA Technologies, Inc. USB 2.0 (rev 51)
SCSI storage controller: Artop Electronic Corp AEC6712D SCSI (rev 01)
Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8029(AS)
ISA bridge: VIA Technologies, Inc. VT8233A ISA Bridge
IDE interface: VIA Technologies, Inc. Bus Master IDE (rev 06)
USB Controller: VIA Technologies, Inc. USB (rev 23)
USB Controller: VIA Technologies, Inc. USB (rev 23)
VGA compatible controller: ATI Technologies Inc Radeon 7500 QW

root@tty1[/]# df
Filesystem
/dev/root
/dev/cdrom
/dev/cloop
/dev/shm
/dev/fd0

1K-blocks
1971
715744
1837536
407928
1424

Used Available Use% Mounted on


1516
455 77% /
715744
0 100% /cdrom
1837536
0 100% /KNOPPIX
40
407888
1% /ramdisk
56
1368
4% /mnt/auto/floppy

ACTIVIDADES
1. En el directorio virtual /proc/ y en sus subdirectorios encontraremos mucha informacin relativa a nuestro sistema en ficheros de texto. Situarse en este directorio, y mediante more o cat explorar la informacin de estos
ficheros.

3.11. Conclusin
Este ha sido nuestro primer contacto con un entorno UNIX. Ha servido un poco para romper el mito de que trabajar
en este tipo de sistemas operativos es complicado y difcil. Es ms, ha servido para que empecemos a intuir su potencia
y versatilidad. Hemos a prendido a movernos por su sistema de ficheros y realizar operaciones con stos, a buscar informacin, 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, debido a la gran potencia de autodeteccin y configuracin de harware de KNOPPIX hace que ste nos
pueda ser muy til a la hora de instalar, en el prximo taller, Debian si surgieran problemas de harware. Siempre podremos
volver a arrancar KNOPPIX y estudiar cmo ste ha solucionado el problema (bsicamente estudiando los archivos de
configuracin).
Como ltima actividad del taller podemos volver a arrancar KNOPPIX en modo grfico, es decir, sin pasar el parmetro
2 al iniciarlo (una manera de hacerlo puede ser pasando los parmetros "knoppix lang=es wheelmouse").

Captulo 4

Instalacin de GNU/Linux
4.1. Introduccin
En este captulo veremos los pasos esenciales que se siguen en la mayora de procesos de instalacin de GNU/Linux.
Aunque cada distribucin tiene su propio entorno de instalacin, en todas ellas deben existir unos pasos bsicos. En este
captulo veremos estos pasos, explicando los conceptos necesarios para superarlos correctamente. Es importante que antes
de instalar un nuevo sistema operativo conozcamos adecuadamente los componentes principales que tenemos instalados
en nuestro ordenador para poder configurarlo todo adecuadamente, aun cuando la distribucin que utilicemos ya incorpore
deteccin de hardware. De especial inters es conocer la marca y modelo de la tarjeta grfica y la de sonido que tenemos
instalada, la tarjeta de red, la marca, tipo y caractersticas del monitor y cualquier otro hardware especial que tengamos.
Generalmente, para la placa base, la CPU y la memoria RAM no suele ser necesario conocer sus caractersticas. Para
obtener esta informacin podemos recorrer a los manuales entregados en la compra del ordenador o, si tenemos otro
sistema operativo instalado, recorrer a l para obtenerla (en sistemas Windows TM lo podemos conseguir a partir del panel
de control).
Es posible que en un solo disco duro tengamos instalados dos o ms sistemas operativos totalmente independientes.
Aunque el proceso de instalacin de otro operativo en el mismo disco (o en otro instalado en el ordenador) no debera interferir con las particiones de los dems, es aconsejable hacer copias de seguridad de todos nuestros documentos. Aunque
si seguimos adecuadamente los pasos que detallaremos a continuacin es prcticamente imposible perder informacin,
siempre es recomendable la prudencia y realizar copias de los archivos que realmente nos importan.

4.2. Arrancando
Generalmente, todas las distribuciones de GNU/Linux proporcionan algn tipo de medio para el arranque del proceso
de instalacin. Actualmente se suele proporcionar un CD o DVD de arranque o, en caso que nuestro ordenador no tenga
el lector correspondiente o queramos realizar una instalacin remota, se proporciona un disquete de arranque. Algunas
distribuciones de GNU/Linux nos permiten realizar la instalacin desde cualquier medio: CD, DVD, FTP, HTTP, disco
duro, NFS, etc. (tambin existen mtodos de instalacin que permiten arrancar el proceso desde otros sistemas operativos).
Para empezar con el proceso deberemos introducir el medio proporcionado en su dispositivo y arrancar el ordenador,
configurando la BIOS o EFI del mismo para que arranque desde la unidad deseada.
El primer paso del proceso suele ser escoger qu tipo de instalacin queremos realizar. Generalmente, la eleccin
suele ser para identificar qu tipo de usuario est instalando el sistema para, segn el mismo, proporcionarle ms o
menos informacin y dejarle configurar con ms precisin el sistema o no. Si tenemos los conocimientos suficientes, es
recomendable hacer la instalacin en modo experto (o similar) para poder adaptar ms el sistema a nuestras necesidades
especficas. En algunas distribuciones, este primer paso sirve para seleccionar la versin del ncleo que queremos instalar o
para configurar el proceso de instalacin en modo grfico o texto, etc. Es imprescindible leer antentamente la informacin
que se nos proporciona en esta primera fase para poder elegir adecuadamente lo que ms se ajuste al destino que queramos
darle al sistema.
Seguidamente, la mayora de distribuciones nos dejan elegir el tipo de teclado (o configuracin similar) que utilizamos.
Aunque hay de muchas clases diferentes, los ms frecuentes son los qwerty (los primeros caracteres empezando por
39

CAPTULO 4. INSTALACIN DE GNU/LINUX

40

arriba y la izquierda del teclado), con lo cual deberamos seleccionar qwerty/es (Spain).

4.3. Particionando el disco


Particionar el disco duro es una de las partes ms crticas de todo el proceso. Este paso significa dividir el disco duro
en diferentes secciones viendo, cada una de ellas, como unidades independientes. Si ya tenemos un sistema operativo
instalado en nuestro ordenador el disco ya estar particionado en una o varias particiones pero si el disco es nuevo,
generalmente no.
Para instalar GNU/Linux debemos disponer de, almenos, una particin para l (aunque hay formas de instalar GNU/Linux
utilizando el sistema de ficheros de otro operativo no es recomendable utilizar este tipo de instalacin porque el rendimiento del sistema baja considerablemente.). El hecho que al modificar el tamao de una particin debamos eliminarla y crearla
de nuevo implica perder toda la informacin que tengamos en ella. Por este y otros motivos existen programas que nos
permiten modificar el tamao 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 Windows TM de la rama no NT) sin
perder la informacin de las mismas. Tambin existen otros programas comerciales que nos permiten hacer este tipo de
operacin con cualquier otro sistema de ficheros, de forma que si no queremos perder la informacin de nuestros sistemas,
deberemos utilizar alguno de ellos antes de empezar con todo el proceso.
Es recomendable que GNU/Linux utilice almenos dos particiones en el disco duro. Una servir para guardar los
ficheros del sistema y la otra para el swap. El swap es una zona de intercambio entre la memoria RAM del ordenador y
el disco duro. Sirve cuando el sistema operativo tiene toda la memoria RAM ocupada y los programas en ejecucin piden
ms. Es en este momento cuando se empieza a utilizar el swap para guardar zonas de RAM que no se estn utilizando,
intercambindolas para que las aplicaciones no se queden sin memoria disponible. Tambin es posible prescindir de
swap, pero no es recomendable porque el sistema no podr gestionar tan adecuadamente sus recursos adems que al
utilizar simultneamente muchas aplicaciones, stas se quedarn sin memoria con ms facilidad. Aunque el tamao del
swap puede ser tan grande como queramos, se recomienda que ste sea el doble de la RAM instalada en el ordenador si
tenemos 64MB o menos, y de 256 o 512 si tenemos ms. Estos clculos pueden variar segn el tipo y uso que damos
al ordenador, aunque generalmente si las aplicaciones necesitan utilizar demasiada memoria swap, el rendimiento del
sistema se decrementa mucho, haciendo que quede prcticamente saturado (para ver qu cantidad de memoria RAM y
swap se est utilizando el sistema nos proporciona el comando free).
Aunque con una o dos particiones es suficiente para poder instalar GNU/Linux, es interesante dividir ms el disco y
situar ciertos directorios en diferentes unidades para poder hacer una gestin ms eficiente de los recursos, evitar cadas
del sistema por saturacin de disco, etc. Aunque la eleccin de esta configuracin debe hacerla el administrador segn el
uso que se dar al sistema, se suelen poner los directorios /usr, /opt, /var, /home y /tmp en diferentes particiones.
Para los ordenadores personales existen dos clases de discos duros: los IDE y los SCSI. Las controladoras IDE (Integrated Drive Electronics) son las que la mayora de placas base llevan. Con este controlador podemos conectar dos
dispositivos compatibles (discos, CD,. . . ) en cada uno de los dos canales. Las controladoras SCSI (Small/Smart Computer System Interface) permiten hasta 8 dispositivos y tienen tasas de transferencia ms altas, aunque su precio tambin es
bastante ms elevado que los IDE.
Existen varias aplicaciones para particionar el disco. Una de las primeras que apareci fue el fdisk, aunque acutalmente existen muchas otras, como cfdisk, diskDruid, etc. En algunos procesos de instalacin se puede escoger cul
queremos utilizar, aunque todas permiten hacer exactamente lo mismo cambiando, eso s, la presentacin, el entorno, etc.
La forma como GNU/Linux identifica los discos es /dev/hdX para los discos IDE y /dev/sdX para los SCSI, dnde
en ambos casos la X es una letra, correspondiente con el disco al que nos queramos referir de la siguiente manera (para
guardar la informacin de particiones y el programa de arranque, los discos tienen una zona de datos reservada llamada
MBR -Master Boot Record-):
dispositivo
/dev/hda
/dev/hdb
/dev/hdc
/dev/hdd
/dev/sda
/dev/sdb
...

significado
Maestro del primer canal IDE
Esclavo del primer canal IDE
Maestro del segundo canal IDE
Esclavo del segundo canal IDE
Primer disco de la controladora SCSI
Segundo disco de la controladora SCSI

4.4. INSTALACIN DE MDULOS

41

Si tenemos ms de un disco en nuestro ordenador, antes de entrar en el programa de particionamiento podremos elegir
sobre cul de ellos operar. Cuando creemos una particin se nos preguntar si debe ser primaria o lgica. En un disco duro
podemos tener hasta cuatro particiones primarias y hasta 64 de lgicas. Si no necesitamos ms de 4 particiones, podemos
escoger cualquiera de los dos tipos. Si necesitamos ms, deberemos tener en cuenta que las lgicas se sitan dentro de
una primaria (hasta un mximo de 16 para cada una), de forma que no podemos tener 4 particiones primarias creadas y
despus aadir otras de lgicas. En este caso, deberamos crear 3 de primarias y hasta 16 de lgicas en la cuarta particin
primaria. De todas las particiones de un disco duro podemos elegir una para que sea la activa. Este flag sirve para indicar a
la BIOS o la EFI del sistema cul es la particin que debe iniciar si en la MBR no encuentra ningn programa de arranque.
En la figura 4.1 podemos ver un ejemplo de forma grfica.

DISCO DURO 2 (hdb)

DISCO DURO 1 (hda)

hdb1

hda1

Particin primaria 1

Particin primaria 1

hdb2

hda2

hdb5

Particin primaria 2

Particin lgica 1

hdb6

hda3

Particin lgica 2

Particin primaria 3

hdb3
Particin primaria 3

hda4
hda5
Particin lgica 1

hda6
Particin lgica 2

Particions
accesibles:
hda1
hda2
hda3
hda5
hda6

hdb4
hdb7
Particin lgica 3

Particions
accesibles:
hda1
hda3
hda5
hda6
hda7

Figura 4.1: Ejemplo de particiones.


Cuando creamos una particin debemos indicar qu sistema de ficheros utilizaremos para ella (Linux ext2, Linux
ext3 o Linux swap). Una vez realizadas las particiones, guardaremos la configuracin y deberemos indicar al proceso
de instalacin dnde queremos situar la raz del sistema del ficheros (root filesystem) y el swap del sistema. Una vez
hechos estos pasos, ya podremos continuar con el resto del proceso de instalacin.

4.4. Instalacin de mdulos


Los mdulos del ncleo son partes de software especializadas en alguna tarea concreta. Como hay toda clase de
dispositivos diferentes y decenas de funciones para mltiples sistemas de ficheros, operaciones de gestin en red, etc., se
decidi no incluir de forma estndard todos estos drivers y funciones. En las primeras versiones de Linux, cuando el ncleo
que tenamos no inclua alguna funcin, debamos recompilarlo completamente todo y generar uno de nuevo adaptado
a nuestras necesidades. Con la incorporacin de los mdulos todo este proceso no es necesario y podemos seleccionar
directamente las funciones que necesitemos.
Generalmente, las distribuciones ya incorporan centenares de mdulos diferentes para el ncleo Linux. Se suelen
organizar en diferentes categoras para facilitar su localizacin y, normalmente, con el mismo nombre del mdulo o la
breve descripcin que se facilita con el mismo ya sabremos para qu dispositivo est diseado o qu funcin realiza. Es
por este motivo que anteriormente decamos que era importante conocer el hardware de nuestro ordenador: en este paso
podremos elegir con ms precisin los mdulos que necesitamos. En algunos de ellos es obligatorio pasar algn parmetro
especial (como la direccin de E/S, la interrupcin que utiliza el dispositivo, etc.), informacin que podemos obtener de
la BIOS o EFI del sistema o por los procedimientos que anteriormente comentbamos.
Tambin es cierto que si el proceso de instalacin lleva algn tipo de programa para el reconocimiento automtico de
hardware, todo el proceso de seleccin y carga de mdulos no es necesario porque ya se realiza de forma automtica. Sin

42

CAPTULO 4. INSTALACIN DE GNU/LINUX

embargo, es posible que no se detecte adecuadamente alguno de los dispositivos que tengamos instalados, con lo cul s
deberemos incluir manualmente el mdulo correspondiente.
Si en el momento de instalar el sistema nos olvidamos de incluir algn mdulo (o instalamos algn nuevo dispositivo)
siempre podemos recorrer a los comandos insmod (para agregar un nuevo mdulo), lsmod (para listar los instalados),
rmmod (para eliminar alguno) y modprobe (para probar alguno y, si funciona correctamente, incluirlo en el ncleo).
Todos estos mdulos no son ms que ficheros binarios que acostumbramos a encontrar en el directorio /lib/modules/
del sistema. El fichero de configuracin de los mdulos se suele encontrar en /etc/modules.
Si tenemos problemas para descubrir qu hardware tenemos instalado en el ordenador, una utilidad muy prctica que
se suele incluir en las distribuciones es discover. Con sta, podremos saber exactamente qu componentes tenemos y
qu mdulos les corresponden.

4.5. Configuracin bsica de la red


Despus de configurar los mdulos que se incluirn en el ncleo del sistema operativo deberemos configurar la red (si
tenemos la tarjeta necesaria). Aunque en este documento no entraremos en detalles sobre redes de computadores, daremos
las ideas necesarias para poder realizar este paso sin complicaciones.
Lo primero que se pedir es el nombre que queremos darle al sistema. Este nombre servir para referirnos a l sin
tener que recordar siempre su direccin IP (una direccin IP es la identificacin de un ordenador dentro de una red cuando
utilizamos el protocolo TCP/IP, el que ms se utiliza en Internet). Una vez entrado el nombre se suele pedir si en nuestra
red utilizamos un mecanismo llamado DHCP o BOOTP, que consiste en tener un servidor especial que se encarga de
asignar automticamente las IP a los ordenadores que arrancan. Si utilizamos este mecanismo deberemos indicarlo y sino
se nos preguntar por la IP y mscara de nuestro ordenador. Si no sabemos cules son estos datos, deberemos dirigirnos
al adminstrador de nuestra red. Seguidamente deberemos introducir la IP del gateway de nuestra red. El gateway es un
dispositivo u ordenador que acta de puente entre nuestra red local e Internet (si no tenemos ningn dispositivo de este
tipo podemos dejar en blanco este campo). A continuacin deberemos especificar el (o los) servidores de nombres que
utilizamos. Un servidor de nombres (servidor DNS) es una mquina que nos proporciona la equivalencia entre un nombre
y una direccin IP. Si no sabemos cul usamos, tambin deberemos recorrer al administrador de la red.
Si estamos en un red local es importante que recorramos al administrador de la misma para que nos proporcione toda la
informacin necesaria. Si tenemos otro operativo instalado en el ordenador tambin podemos acceder a su configuracin
para obtenerla. En ningn caso, pero, nos podemos inventar estos valores porque lo ms probable es que no se configure
adecuadamente y provoquemos problemas en la red local.

4.6. Sistema de arranque


Una vez configurados todos estos aspectos, deberemos instalar un pequeo programa en el disco duro para que en el
proceso de arranque del ordenador podamos elegir qu sistema operativo de los que tenemos instalados queremos arrancar.
Aunque slo hayamos instalado GNU/Linux, tambin tendremos que instalar este programa ya que el sistema de arranque
del mismo lo necesita.
Existen varias aplicaciones para realizar este proceso. Las ms 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 ejecucin del ncleo
del sistema operativo que le indiquemos. Generalmente, todas las distribuciones ya detectan si tenemos algn otro sistema
operativo instalado en los discos duros y nos configuran automticamente el sistema de arranque. Lo nico que debemos
tener en cuenta es que debemos situar este programa correctamente para que se ejecute al arrancar el ordenador. 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 caractersticas.

4.7. Eleccin de paquetes


Un paquete es uno o varios programas/libreras/ . . . relacionados entre s que se agrupan para formar un slo bloque.
La mayora de distribuciones incluyen utilidades para el manejo de paquetes (instalacin, eliminacin, configuracin,

4.8. OTROS ASPECTOS

43

etc.). Esta forma de organizacin es muy til porque al necesitar un programa/utilidad/. . . podremos instalarlo todo a la
vez.
La mayora de procesos de instalacin incluyen dos formas de seleccionar los programas que instalaremos en el sistema: bsico o experto. Con el proceso de seleccin bsico generalmente se agrupan los paquetes disponibles por grandes
grupos de programas: administracin, desarrollo de software, ofimtica, matemticas, etc. Si todava no conocemos exactamente los programas que vamos a utilizar, este tipo de instalacin es el ms adecuado porque podremos escoger, de
forma muy general y sin entrar en detalles, qu tipo de programas utilizamos.
Cuando conozcamos un poco ms el sistema y sepamos qu es exactamente lo que vamos a utilizar, es mejor la
seleccin experta de paquetes. Con este tipo de seleccin podremos ajustar mucho mejor qu programas necesitamos,
ahorrndonos espacio en el disco y evitando que el sistema cargue ms programas de los necesarios. Al instalar un sistema
para un uso especfico (servidor http, cvs, etc.) es muy recomendable escoger slo aquellos programas que realmente
utilizaremos para evitar problemas de seguridad (como menos puertas dejemos abiertas al exterior, ms seguro ser el
sistema).
Algunas distribuciones tambin admiten la posibilidad de obtener los paquetes desde ubicaciones diferentes, como
uno o varios CDs, desde servidores en Internet, etc. Debian GNU/Linux fue la primera en tener un sistema de este tipo,
llamado apt. Este tipo de gestin es muy til porque nos proporciona mucha flexibilidad, estanod siempre al da con las
ltimas correcciones y actualizaciones de los programas.

4.8. Otros aspectos


Debemos saber qu hacer si hemos tenido algn problema con la instalacin o en algn momento el sistema de
arranque no nos deja cargar el sistema operativo. Generalmente, en el proceso de instalacin existe algn paso donde se
nos pregunta si queremos crear un disquete de recuperacin. Siempre es muy recomendable generar este disquete ya que
nos permite cargar el operativo y acceder al sistema de ficheros para arreglar lo que haga falta.
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
bsicos para que podamos realizar operaciones esenciales de recuperacin. De todas formas, si nos encontramos con algn
grave inconveniente que no nos permite arrancar el sistema correctamente y queremos todas las herramientas usuales,
tambin podemos arrancar con un CD-live de Knoppix o cualquier otra distribucin y montar la unidad dnde tengamos
instalado el sistema para arreglar la disfuncin. Lo que s es importante es disponer de alguna de estas herramientas y
haberla probado antes que ocurra algn problema serio para estar siempre preparados.
La mayora de procesos de instalacin utilizan una aplicacin denominada bootstrap, que tambin podemos instalar en el sistema con el paquete correspondiente. Con ella podramos crearnos nuestro propio proceso de instalacin o
ver cmo realmente el sistema realiza stas operaciones de instalacin y configuracin del sistema. La mayora de ellas
las podemos reproducir con el programa base-config o alguno de los otros que l mismo llama (ms informacin
en su manual), aunque siempre podemos recorrer a los mismos ficheros de configuracin del operativo para realizarlo
manualmente.

Captulo 5

Taller de instalacin de Debian Woody


5.1. Introduccin
Si el primer taller nos serva para dar nuestros primeros pasos sobre un sistema tipo UNIX, y para ello utilizabamos
una distribucin que no dejase rastro en nuestro PC, pues se arrancaba y se ejecutaba desde CDROM, ste debe servirnos
para aprender a instalar un sistema bsico GNU/Linux en nuestro ordenador. La distribucin escogida para el desarrollo
del taller ha sido la Debian 3.0r1 (Las versiones 3.0 tambin se conocen con el nombre de Debian Woody).
Tomar la decisin de escoger Debian frente a RedHat para el desarrollo de este taller, y de los dos restantes, no ha
sido nada fcil, pues RedHat ofrece productos comerciales que tinene muy buena acogida en el mundo empresarial, y en
general se considera mucho ms sencillo instalar una RedHat que una Debian. El hecho de que se haya optado por Debian
se debe principalmente: en primer lugar, a que esta distribucin es la que sigue ms fielmente la filosofa GNU/Linuxy
todo se hace gracias al trabajo voluntario de miles de personas; en segundo lugar porque, es, probablemente, una de las
distribuciones que, tanto a la hora de instalar como de mantener, deja ms libertad a los usuarios; y como ltimo punto
fundamental, por su sistema de paquetes, el cual es, probablemente, el ms consistente que existe actualmente.
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 simplemente se ha credo que su flexibilidad la convierte
en una distribucin muy apta para fines didcticos. Pero siendo conscientes del fuerte arraigo que tiene RedHat, se ha
dedicado un apndice a esta distribucin, para que el lector pueda conocerla tambin, y pueda formarse su propia opinin.
Tampoco hay que olvidar que, aparte de estas dos distribuciones, existen muchas ms. Pero creemos que, una vez
se ha tenido un primer contacto con alguna de ellas, ya es tarea de cada usuario ir probando distintas distribuciones e ir
forjndose una opinin propia de cul es la que se adapta mejor a sus necesidades o exigencias. Por este motivo, una vez
ms animamos a hacer todo tipo de experimentos y pruebas, y que cada cual dirija sus esfuerzos hacia donde crea ms
interesante. GNU/Linuxo es un sistema cerrado, si no todo lo contrario, GNU/Linux es sinnimo de libertad, y por este
illo la intencin bsica de este mdulo es en general, que, una vez terminado, se hayan sentado las bases de conocimiento
necesarias para que se pueda ejercer sin ningn tipo de impedimento esta libertad, beneficindose de todas sus ventajas y
asumiendo todas sus consecuencias.
ACTIVIDADES
1. Ya que se va a instalar Debian, es recomendable visitar su pgina web y familiarizarse un poco con sus contenidos.
As pues, se propone visitar la web http://www.debian.org y sus subapartados (http://www.debian.org/
doc/ , http://www.debian.org/distrib/cd , http://www.debian.org/distrib/netinst).
Una vez ms se insta al lector a dejarse guiar por su curiosidad, y, en esta ocasin, seguir los enlaces que le parezcan
interesantes.

5.1.1. Sistemas de instalacin


Por sistema de instalacin se entiende qu recursos o dispositivos se van a utilizar para hacer la instalacin del sistema.
Actualmente casi todas las distribuciones ofrecen diversas posibilidades para realizarla, pero esencialmente se puede
44

5.1. INTRODUCCIN

45

distinguir entre dos sistemas de instalacin: mediante CDROM o por red. Adems es posible, en general, combinar
distintos sistemas.
Debian ofrece tres tipos de instalacin: mediante un juego de CDROMs, con un nico CDROM, el cual contiene el
software de instalacin y los paquetes bsicos, dejando que el resto de sta se haga por red, y por red exclusivamente.
Aunque, bviamente, si se opta por ste ltimo sistema, har falta algun tipo de soporte inicial para arrancar el sistema
de instalacin (normalmente un juego de disquets, entre dos i diecisiete, dependiendo del tipo y sistema de instalacin
escogidos, o un CDROM, del propio juego de CDs de la distribucin, aunque tambin es posible usar otros mtodos,
como DHCP para hacer una instalacin completamente remota).
El grado de interaccin que requiere una instalacin tambin depende del sistema y el tipo de instalacin escogidos.
Tal y como es de esperar, cada uno de estos sistemas tiene sus ventajas y sus inconvenientes: mientras que una instalacin
estndar nos permite ir configurando paso a paso, hecho que nos ser extremadamente til para adecuar el sistema a
nuestras necesidades y posibilidades, un sistema de instalacin totalmente automtico requiere de unas infraestructuras
y de unos conocimientos ms avanzados, y por tanto de una inversin, tanto en tiempo, como en dinero, que queda slo
justificada si el nmero de sistemas a montar es muy grande (por ejemplo se podra plantear la implementacin de este
tipo de instalacin en un departamento donde convivieran ordenadores destindos a uso personal, con otros destinados a la
paralelizacin, y donde el su nmero augmenta a menudo).
A la hora de escoger un sistema y tipo de instalaci, debemos pues considerar diversos factores, como son: cuntas
instalaciones vamos a realizar?, cuntas instalaciones distintas vamos a realizar?, qu grado de experiencia tenemos?,
etc. El hecho de ser sta nuestra primera instalacin nos dirige inmediatamente al tipo de instalacin ms interactiva, y el
ms usado: la instalacin interactiva estndar. Ahora slo falta por determinar el sistema de instalacin, y esto depender,
fundamentalmente, de si disponemos de conexin a Internet y de la velocidad de la misma. bviamente si no disponemos
de conexin a Internet, o la velocidad de acceso que tenemos es muy baja (como la que ofrecen los mdems estndars)
no tenemos ms opcin que escoger una instalacin basada en un juego de CDROMs; si por el contrario disponemos de
una velocidad de accesso a Internet medianamente aceptable (como la que pueden ofrece las lnias basadas en tecnologa
ADSL) o alta (conexin directa a Internet, via gateway), la mejor opcin ser inclinarse por una instalacin por red.
Una instalacin por red conlleva muchas ventajas sobre una hecha mediante CDROMs, y especialmente en Debian, ya
que esto nos permitir instalar las ltimas versiones disponibles de los paquetes, y actualizar todos los paquetes instalados
en el sistema ser tan simple como ejecutar una sola instruccin. Pero este hecho no debe hacernos abandonar la instalacin
utilizando CDROMs, si, como hemos dicho, no disponemos de conexin a Internet o la que tenemos es muy lenta (no hay
que subestimar tampoco los paquetes que contienen estos CDROMs, ya que Debian se caracteriza por ser una distribucin
donde slo se incluyen paquetes que han sido probados exhaustivamente).

5.1.2. Tipos de paquetes


Centrmonos ahora en Debian y en su sitema de paquetes. Un paquete de Debian es identificable por su extensin
.deb. En una distribucin de Debian los paquetes1 se pueden clasificar segn su licencia. As pues distiguiremos entre
cuatro tipo de paquetes distintos:
main: Paquetes que cumplen con las Debian Free Software Guidelines 2 , es decir, que se garantiza su uso y redistribucin libre tanto de todos los binarios que los componen, como de su cdigo fuente completo 3.
contrib: Paquetes que, aun siendo libres, y por tanto, aparte de los binarios, tambin est disponible su cdigo
fuente, dependen de otros paquetes que no lo son.
non-free: Paquetes que, aun pudiendo no costar dinero, estan bajo condiciones onerosas que restringe de alguna
forma su uso o redistribucin.
non-US/main non-US/non-free: Paquetes que no pueden ser exportados fuera de EEUU, por contener software de
cifrado o software que puede afectar a asuntos relacionados con patentes.
1 http://www.debian.org/distrib/packages
2 http://www.debian.org/social_contract#guidelines
3 Estos

son los paquetes propios de la distribucin Debian; los otros los provee la organizacin Debian para el beneficio de sus usuarios.

CAPTULO 5. TALLER DE INSTALACIN DE DEBIAN WOODY

46

5.1.3. Estado de desarrollo de los paquetes


El estado de desarrollo de los paquetes marcar el tipo de distribucin que instalemos. As pues se habla de tres tipos
de distribucin:
stable: Distribucin con todos los paquetes con versin oficial ms reciente de la distribucin. Consta de softwre
estable y bien probado, y cambia slo al incorporar correcciones importantes de seguridad o de usabilidad.
testing: Distribucin que contiene los paquetes que se espera que sean parte de la prxima distribucin estable. Hay
una serie de requisitos muy estrictos4 que cada paquete debe cumplir antes de dejar de ser unstable para pasar a ser
testing.
unstable: En esta distribucin los paquetes ms recientes de Debian y, en cosecuencia, los menos probados. Por
esta razn puden contener problemas suficientemente graves como para afectar a la estabilidad del sistema.
Hay que tener en cuenta que debido a las dependencias, en general, no se deben mezclar paquetes de distintas distribuciones. De todas formas, si es necesario podemos recorrer a la aplicacin apt-pinnig, que nos facilita este proceso.

5.2. Instalacin de Debian Woody


Como se ha dicho, en esencia Debian presenta tres tipos de instalacin: via juego de CDROMs, via CDROM mnimo, y
instalacin por red. Si se dominan la primera y la ltima, utilizar la segunda es trivial. As pues, empezaremos por instalar
nuestro primer sistema mediante el juego de CDROMs facilitados paso a paso, y, una vez terminado, analizaremos las
diferencias entre este proceso y el de instalacin por red.
Hay que aadir que el mtodo de instalacin via CDROM mnimo, si bien est admitido como tal por parte de Debian,
las imgenes de estos de estos CDROMs, no son oficiales. Estas imgenes son creadas por cuenta propia, generalmente
por gente perteneciente a la Debian people5, y slo estan referenciadas en la pgina oficial de Debian, en el apartado
de instalacin mediante CDROM mnimo6 . Aun as, en general este sistema de instalacin es muy prctico, y ha sido
probado con buenos resultados, con imgenes de distintas fuentes, en diversos ordenadores.

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 incluido muchos drivers destinados a soportar
hardware antiguo (como puede dispositivos ISA), adems 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 a la mayora de hardware posible.
Por esta razn se trata de un kernel bastante grande y poco optimizado.
bf24: Kernel basado en la serie 2.4 con soporte para ext3 i ReiserFS orientado a dar soporte a hardware nuevo,
como pueden ser los teclados USB. Tambin da soporte a dispositivos SCSI e IDE ATA-100.
En este taller se har la instalacin utilizando el flavor bf24, ya que la experiencia dice que conlleva muy buenos
resultados, aparte de usar un kernel basado en la serie 2.4. Si con este flavor se diera el caso que durante el proceso de
arranque el ordenador se quedase colgado o notsemos comportamientos extraos, como podra ser el no reconocimento
de disco duro, deberamos cambiar de flavour, intentando hallar el que se adaptase mejor a nuestras necesidades, o el que
simplemente nos dejase arrancar sin problemas; en este caso la primera opcin que debera probarse es la idepci.
4 http://www.debian.org/releases/testing/
5 http://db.debian.org/
6 http://www.debian.org/CD/netinst/

5.3. INSTALACIN DE DEBIAN WOODY MEDIANTE CDROM

47

5.2.2. CDROMs de Debian Woody y sus distintos flavours


De los siete CDROMs de que se compone Debian Woody, cinco llevan asociados un o ms flavours, y por tanto se
puede arrancar el sistema de instalacin desde ellos. La relacin entre CDs y flavours es la siguiente:
CD1 Este CDROM es multiboot, es decir, que se le puede pasar, al arancar, como parmetro, entre otros, el flavor
deseado. Si no se le pasa ningn parmetro, transcurridos unos segundos arrancar como idepci.
CD2 vanilla.
CD3 compact.
CD4 idepci.
CD5 bf24.
As pues, para inicializar nuestra instalacin bastar con bootar el ordenador desde la unidad de CDROM 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 bsico que nos proporciona Debian para su instalacin es el Installing Debian GNU/Linux 3.0 For Intel
x86, incluido en el CD17 disponible en distintos idomas, entre ellos el castellano8 . Es recomendable leer este documento
y tener una copia del mismo a mano por si surgiera algun problema, como podra ser el de no disponer de una unidad de
CDROM bootable.

5.3. Instalacin de Debian Woody mediante CDROM


Esta instalacin se har en un PC estndar sobre un disco duro IDE conectado como mster sobre el puerto IED
primario estndar. Si se dispone de otro tipo de conectores en la placa base ms rpidos (ATA-100 o ATA-133), probablemente tambin sean soportados por Debian, pero en general se requiere de configuraciones especiales, y, en consecuencia,
quedan fuera de este taller. Por lo que se refiere a controladoras y discos SCSI, si estos son medianamente estndars, sern
detectados sin ningn problema durante el proceso de arranque.

5.3.1. Antes de empezar la instalacin


Antes de empezar la instalacin propiamente dicha habr que cerciornarse de que disponemos de un espacio mnimo
en nuestro disco duro donde realizarla (se recomienda que se disponga, como mnimo, de entre dos y tres gigabytes
de espacio libre). Si ste es nuevo podemos empezar directamente con la instalacin, a pesar de que pensemos instalar
tambin otro sistema operativo en l (bastar con reservar el espacio que creamos necesario para ste con el tipo de
particin que requiera).
Si disponemos de un espacio que previamente habamos reservado, pues ya teniamos en mente instalar GNU/Linux,
o tenemos una particin de cualquier otro sistema operativo donde deseamos instalarlo, tambin podemos proseguir con
la instalacin, es decir, arrancar des del CDROM.
Si por el contrario tenemos todo el disco duro ocupado y con una sola particin (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 consistentes), deberemos liberar espacio para poder instalar Debian Woody. La dificultad de
realizar esta operacin depender estrictamente de qu sistema de ficheros sea el que contenga dicha particin.
Probablemente el sistema operativo en cuestin sea de la familia de productos de Microsoft TM; si el sistema de ficheros
es de tipo FAT o FAT32 (utilizados por MSDOSTM , Windows95TM y Windows98TM) el problema es relativamente sencillo
de solventar, ya que con la misma distribucion se nos facilita una aplicacin (fips20.exe en el CD1 9 ) que nos asistir
7 /install/doc/install.en.html
8 /install/doc/es/install.es.html
9 /tools/fips20.zip

CAPTULO 5. TALLER DE INSTALACIN DE DEBIAN WOODY

48

en la reparticin del disco duro y en la creacin de espacio para instalar GNU/Linux (es muy recomendable que antes de
hacer correr fips se defragmente el disco). Si el sistema de ficheros es de tipo NTFS (WindosNT TM, Windows2000TM o
WindowsXPTM ) la cosa se complica, pues hasta la fecha no se conoce ninguna aplicacin GPL que pueda reparticionar
este tipo de sistema de ficheros10 . As pues, frente a esta situacin, de momento, slo se puede recurrir a aplicaciones
comerciales (como puede ser PartitionMagicTM).

5.3.2. Arranque del sistema de instalacin


Llegados a este punto podemos empezar la instalacin propiamente dicha. Para ello arrancaremos el ordenador, nos
aseguraremos que el primer dispositivo a la hora de bootar sea la unidad de CDROM (entrando en la BIOS), y pondremos
el CD1 en ella (dado que, en este caso concreto, vamos a usar el flavor bf24. Tambin podramos 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 havent 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>.
Press <F1> for help, or <ENTER> to boot.
boot:

Podemos pulsar F1, sin demorarnos demasiado tiempo, ya que si no la instalacin empezara de forma automtica y
con el flavour idepci, flavour que se usa por defecto, para acceder al ndice de ayuda:
HELP INDEX:
Press the function keys <F1> through <F10> for helpful information.
KEY

TOPIC

<F1>
<F2>
<F3>
<F4>
<F5>
<F6>
<F7>
<F8>
<F9>
<F10>

This page, the help index.


Prerequisites for installing this system.
Boot methods for special ways of using this Rescue disk.
Special boot arguments, overview.
Special boot arguments for special machines.
Special boot arguments for selected disk controllers.
Special boot arguments for the install system.
How to get help.
Debian e-mail lists.
Copyrights and warranties.

10 se

anima al lector cuando llegue a este punto a buscar en Internet y en otras fuentes si tal programa ha aparecido.

5.3. INSTALACIN DE DEBIAN WOODY MEDIANTE CDROM

49

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 el men nos ofrece, pero la ms destacable es la F3, en la cual
encontraremos los distintos flavours que admite el modo de arranque, y tambin el cmo utilizar 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
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:

Tecleemos pues bf24, y empecemos con la instalacin.


Una vez hecho esto, se cargar el kernel (veremos durante unos instantes las salidas por pantalla de las distintas
pruebas que se hacen) e inmediatamente nos aparecer una pantalla, Choose The Language, para que mediante los
cursores seleccionemos el idioma de instalacin.
A partir de ahora ya disponemos, pulsando la combinacin de teclas ALT+F2 e INTRO, de una shell, an que muy
bsica, que puede usarse en cualquier momento de la instalacin. En la tty3 (ALT+F3) el kernel va dejando sus mensajes
(es decir, el contenido del fichero /var/log/messages).

5.3.3. Configuracin del idioma de instalacin


Es muy recomendable seleccionar la opcin en - Choose this and press Enter to proceed
in English para evitar posibles errores de traduccin. En general, y si es posible, siempre es mejor trabajar con el
idioma original, y as se har durante el resto del taller, pero una vez ms se deja libertad al lector para que decida el
mismo qu es mejor, en este caso, que sea l quien escoja el idioma que va a utilizar durante la instalacin.
As pues, escogemos el idioma ingls y pulsamos INTRO. En la pantalla Choose Language Variant siguiente
se puede escoger qu ingls se quiere utilizar, nosotros usaremos el americano English (United States) 11 .
11 El idioma de instalacin no condiciona en modo alguno ni la configuracin del teclado, el cual hasta el momento es us, ni el idioma de interacin
con el sistema ni otras configuraciones. Esta opcin slo es vlida durante el proceso de instalacin.

50

CAPTULO 5. TALLER DE INSTALACIN DE DEBIAN WOODY

5.3.4. Men principal de instalacin


Despus de la pantalla de crditos Release Notes, y tras pulsar INTRO, entraremos en la interfcie Debian
GNU/Linux Installation Main Menu que nos servir para configurar el resto de la instalacin. Esta interficie
opera segn unos criterios preestablecidos, as siempre se nos sugerir el prximo paso a dar para una instalacin estndard, seguido, si procede, de alternativas a esta opcin. No obstante, mediante los cursores podemos desplazarnos y
seleccionar cualquier opcin de las que se nos ofrecen tras una lnea en blanco (aqu se listan todas las opciones posibles
de instalacin, aunque algunas no estarn disponibles si primero no hemos utilizado otras; en principio, salvo casos excepcionales, y por ser nuestra primera instalacin, nunca usaremos estas opciones y dejaremos que la misma interficie de
instalacin nos gue por ellas mediante la sugerencia que nos haga en cada momento).

5.3.5. Configuracin del teclado


Como primera sugerencia, la interficie de instalacin nos propone que configuremos el teclado Configure the
Keyboard. As lo haremos. Pulsemos pues INTRO para accender a la pantalla Select a Keyboard, y seleccionemos el teclado, qwerty/es :Spanish y pulsemos INTRO, para que el dispositivo de entrada responda al mapeado de caracteres del teclado espaol. En la tty2 podemos comprobar que, efectivamente, ya disponemos de acentos,
por ejemplo.

5.3.6. Particin del disco duro


Una vez selecionado el teclado el proceso de instalacin nos devuelve al men principal y nos propone que procedamos
a particionar el disco duro, Partition a Hard Disk. As lo haremos. Pulsemos pues INTRO y entremos en la
pantalla de seleccin de dispositivos a particionar, Select Disk Drive. Si disponemos de ms de un disco duro,
mediante los cursores podremos seleccionar sobre cul de ellos queremos operar. Una vez hecha la seleccin pulsemos
INTRO. Tras una pantalla de advertimiento referente a las limitaciones de lilo, LILO Limitations, y pulsando
INTRO entramos en otra pantalla de consejo acerca de cmo se debe calcular el tamao de las particiones si se tiene
intencin de utilizar el Reiser filesystem, Note on additional space for Reiserfs Journal. Pulsemos
INTROuevamente y se arranca la aplicacin cfdisk para crear y gestionar las particiones.
Los tamaos, sus caractersticas, y el nmero de particiones depende fuertemente del tipo de uso y de la cantidad de
disco duro de que se disponga. Al tratarse de una instalacin con fines educativos, a continuacin se facilita la informacin
sobre las particiones que se crearn suponiendo que se trabaja sobre un espacio de entre los cinco y los quince gigabytes
destinados a la nueva instalacin.
Como mnimo hay que crear dos particiones: una primera para montar el sistema y otra de swap (es cierto que se
puede hacer instalaciones sin swap, pero, tal como ya se ha dicho, no es en absoluto recomendable). Nosotros para
augmentar la eficiencia del sistema 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 cien del disco duro, preferentemente en una
particin primaria; pero, si no disponemos de ella, la podemos crear como particin lgica sin darle ms importancia. La
segunda se destinar a swap. Se recomienda que sta tenga un tamao de entre 512Mb y 1Gb 12 ; con estas dimensiones
nos aseguraremos, salvo casos excepcionales, que nunca llegar a saturarse; esta particin tambin es preferible que sea
primaria, pero, si tiene que ser lgica, tampoco repercutir en el rendimiento del sistema. La tercera particin estar
destinada a albergar el directorio /home/, cuya finalidad es almacenar datos de usuario, y, dependiendo del tamao del
disco duro, se le puede asignar entre un diez y un veinte porciento del disco duro, en funcin del nmero de usuarios y
del uso que se va hacer del sistema. La cuarta particin ser para el directorio /usr/; hay que tener presente que esta
particin albergar gran parte del software que se instale; as pues tiene que tener un tamao significativo, alrededor de
un cuarenta por ciento del disco. El espacio restante se destinar al directorio /var/, directorio donde se alojan libreras,
ficheros de log, etc.
La distribucin de particiones anterior es tan solo una propuesta que tiene dos objetivos: por un lado, pretende mejorar
el rendimiento que ofrece una instalacin basada en tan solo dos particiones, y, por otro, da ms robustez al sistema. Entre
otras ventajas, el tener los datos repartidos entre distintas particiones hace que la corrupcin de una de ellas no implique
automticamente la prdida de toda la informacin del sistema. bviamente pueden crearse otras particiones u omitir
algunas de las propuestas13.
12 Otro criterio que se utiliza para establecer el tamao de la particion swap es el de establecer este igual a la cantidad de memoria RAM de que se
disponga, y que ambas sumadas no superen el 1Gb.
13 El orden de las particiones no afecta al comportamiento del sistema.

5.3. INSTALACIN DE DEBIAN WOODY MEDIANTE CDROM

51

Por lo que se refiere a cfdisk, su funcionamiento se basa en el uso de los cursores, tanto para moverse por las
particiones del disco (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
irn variando segn el estado de la particin seleccionada. Para crear una nueva particin hay que seleccionar la opcin
[ ew
]; a continuacin se nos preguntar, si an se pueden crear particiones primarias (el nmero mximo s
cuatro), si la queremos crear como particin primaria o lgica; despus debemos especificar, en Mb, el tamao de la
particin; y finalmente su ubicacin fsica en el disco (es recomendable que antes de empezar a particionar el disco nos
hagamos un pequeo esquema de cmo lo queremos hacer y crear las particiones a partir de ste, para as poder 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 cdigo 0x83; en general pues esta opcin por defecto ya nos ser til salvo para
la particin destinada a swap. Para esta particin en concreto habr que seleccionar la opcin [ Type ] con lo que
primero se nos mostrar, en hexadecimal, la relacin entre cdigos y filesystem types, y despus se nos preguntar qu
tipo de sistema de ficheros queremos asignarle a la particin seleccionada. Por defecto se nos propone la 0x82, es decir
Linux swap, que es la opcin deseada14 ; bastar, pues con pulsar INTRO y se nos retornar a la pantalla principal de
cfdisk mostrndonos que, efectivamente, se ha realizado el cambio.
Una vez tengamos construida la tabla de particiones a nuestra medida, bastar con seleccionar la opcin [ Write ]
para que sta, tras una pregunta de confirmacin final a la que respondremos yes, se escriba en la MBR y hacer de esta
manera efectivos los cambios. Ahora pues, ya podemos abandonar cfdisk con la opcin [ Quit ] y proseguir con
la instalacin

5.3.7. Inicializacin y activacin de la particin swap


Una vez hemos salido del cfdisk retornamos al men principal. Esta vez se nos propone que inicialicemos y activemos la particin de swap, Initialize an Activate a Swap Partition. Pulsemos INTRO para entrar
en una pantalla, Scan fo Bad Blocks?, donde se nos pregunta si deseamos chequear la particin en bsqueda de
posibles bloques defectuosos. Esta misma pantalla nos aparecer cada vez que inicializemos y activemos una particin.
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 dejaremos que cada uno tome la decisin que estime ms 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 confimacin final, Are You Sure?, antes
de proceder a la inicializacin y a la activacin de la particin. Pulsemos INTRO para llevar a termino nuestro objetivo.

5.3.8. Inicializacin y activacin de una particin Linux


De vuelta al men principal, ste nos sugiere que inicialicemos y activemos una particin de Linux, Initialize
and Active a Swap Partition. Esta operacin es indispensable, pues es aqu cuando inicializaremos, ativaremos y montaremos la particin root (/). Pulsemos INTRO para entrar en la pantalla de seleccin del tipo de sistema de
ficheros que deseamos para esta particin, Choose Filesystem Type. Nosotros escogeremos que sea de tipo ext3.
Una vez hecha esta seleccin entramos en la pantalla donde eligiremos la particin sobre la que queremos operar, Select
Partition. Como se trata de montar la particin root, escogeremos la primera. Una vez escogida entraremos en la pantalla ya conocida de chequeo de bloques defectuosos, y despus entraremos en la pantalla de confirmacin de operacin.
Tras la operacin el sistema de instalacin nos pregunta si queremos montar en esta particin el root filesystem, Mount
as the Root Filesystem?. bviamente, pues as lo habamos planeado, responderemos afirmativamente.

5.3.9. Inicializacin y activacin de otras particiones Linux


Ahora el men principal nos sugiere, como opcin principal, que instalemos el kernel y su mdulos en la root partition, Install Kernel and Driver Modules. Nosotros no lo haremos an, pues, tal y como habamos planeado,
tenemos que inicializar, activar y montar el resto de particiones que hemos creado. Escojamos pues la primera alternativa
14 Si tenemos ms de una instalacin de GNU/Linux en el mismo ordenador, se puede utilizar la misma particin swap para todas ellas, ya que la
informacin que se pueda almacenar en ella durante el funciomamiento del sistema es totalmente voltil.

CAPTULO 5. TALLER DE INSTALACIN DE DEBIAN WOODY

52

que nos ofrece el men principal Initialize a Linux Partiton. Hecho esto entraremos en la pantalla de seleccin de filesystem, ext3 nuevamente, y entraremos en la pantalla de seleccin de particin. Escojamos la primera que
se nos sugiere, y entremos en las pantallas de chequeo de bloques y de confirmacin. Una vez terminada la operacin,
se nos pregunta qu particin queremos montar Select Mount Partition. Aqu la primera vez escogeremos la de
/home, siguiendo el planteamiento inicial.
Otra vez en el men principal repetiremos las acciones anteriores para montar las particiones de /usr y de /var.

5.3.10. Instalacin del kernel


Una vez terminado con el proceso de inicializacin, activacin y montaje de todas las particiones que habamos
creado, podemos proceder a seguir el prximo paso que el men de instalacin hace rato que nos sugiere, es decir, intalar
el kernel y los mdulos Install kernel and Driver Modules. Entramos ahora en la pantalla de seleccin del
medio de instalacin Select Installation Medium. Como estamos instalando el sistema utilizando el juego de
CDs, escogeremos la primera opcin. Se nos pide ahora el primer CD, Please insert the 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 dnde debe ir el sistema a buscar los ficheros del kernel para la
instalacin, pero, como estamos realizando la instalacin desde CDROM, slo se nos da una opcin. As pues pulsemos
INTRO para instalar el kernel en el disco duro, en la root partition.

5.3.11. Configuracin de mdulos


Llegados a este punto, el men principal nos sugiere la configuracin de los mdulos del kernel Configure Device
Driver Modules. Siguiendo este paso entramos en una pantalla de advertencia sobre los mdulos que ya lleva incorporado el kernel que se ha instalado Note about loaded drivers, el cual nos indica que si no encontramos ningn
mdulo del cual sabemos totalmente de su necesidad prosigamos la intalacin. En principio no debemos preocuparnos
demasiado acerca de los mdulos, pues por ahora nuestro objetivo principal es instalar un sistema mnimo en nuestro
PC, y luego ya lo iremos ampliando y mejorndolo. As pues, podemos dar un paseo por el men de mdulos con fin de
adquirir conocimientos, pero en principio no activaremos ninguno (una vez instalado el sistema bsico, podremos entrar
en este mismo men y activar cualquier mdulo mediante el comando modconf).

5.3.12. Configuracin 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 ms compuesto de una sola palabra15, brau, por ejemplo.

5.3.13. Instalacin del sistema base


Con toda esta informacin, el sistema ya puede hacer la instalacin del sistema base; es lo que nos propone el men
principal, Install the System Base. Aceptemos pues esta propuesta. Nuevamente se nos pregunta por el medio
de intalacin, CDROM una vez ms, la opcin por defecto y segidamente se nos requiere de nuevo el CD1 para proseguir;
pulsemos, pues INTRO y dejemos que el sistema lea los ficheros necesarios.
El siguiente paso es especificar el directorio desde donde se va a instalar el sistema base Select Archive Path.
Slo se nos muestra una opcin, instmnt, que es el directorio virtual que se ha creado para tal fin (en realidad esta
informacin se obtendr del CD1, a partir de enlaces simblicos de este directorio al directorio /cdrom/). As pues
pulsemos INTRO y dejemos que finalmente empiece la instalacin del sistema base en el disco duro.

5.3.14. Creacin de un disco de arranque


Una vez terminado el proceso de instalacin del sistema base, el men principal nos sugiere hacer el sistema bootable,
Make System Bootable. Como medida de seguridad, pero, escogeremos la primera alternativa que se nos ofrece, es
15 En este punto slo hay que especificar el nombre local del sistema. Si ste va a formar parte de una red, y por tanto necesita de dominio, ste ya se
especificar en el apartado de configuracin de la red.

5.3. INSTALACIN DE DEBIAN WOODY MEDIANTE CDROM

53

decir, crear un disco de arranque. As pues seleccionemos esta opcin, Make a Boot Floppy, y pulsemos INTRO.
Insertemos un disquet virgen en la disquetear y procedamos a crear dicho disco.

5.3.15. Instalacin de LILO


Una vez creado el disco de arranque, el men principal nos sugiere que rebootemos el sistema. Pero tambin podemos
hacer el sistema bootable, como se nos sugera anteriormente, es decir, dejar que escriba en la MBR la informacin
necesaria para que se pueda arrancar la instalacin que acabamos de realizar desde el propio disco duro. Para esto debemos
seleccionar la opcin Make System Bootable y contestar, por lo general, afirmativamente a las propuestas que el
sistema de instalacin nos hace.
Realizar esta operacin en este momento est plenamente justificada si en nuestro PC slo hemos instalado GNU/Linux,
o si creemos que el gestor de arranque LILO ser capaz de bootar otros posibles sistemas 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 debemos realizar esta operacin, si ya disponemos de otro gestor
de arranque (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 grups, o si no estamos plenamente seguros que LILO ser capaz de gestionar
correctamente el arranque del resto de sistemas operativos que tengamos instalados.
Si no hemos instalado LILO, de momento podemos arrancar el sistema operativo mediante el disquet que hemos
creado anteriormente, y en el prximo taller evaluaremos la posibilidad de instalar el gestor de arranque desde el propio
sistema.

5.3.16. Reinicializacin 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 instalacin de GNU/Linux. As pues, retiremos el
CD1, o cuando se produzca la reinicializacin, entremos en la BIOS para reestablecer la secuencia de dispositivos de
arranque (preferiblemente disquetera, disco duro, CDROM, etc... para un sistema estndar), y el disquet si hemos instalado
LILO, y seleccionemos la opcin Reboot the System. Tras una pantalla final de advertencias y recomendaciones
que debemos leer atentamente, podemos proceder a la reinicializacin. Si no se ha instalado LILO, el disquet deber
permanecer en la disquetera, y deberemos asegurarnos que el PC arrancar desde l.

5.3.17. Arranque del sistema base


Si todo ha ido como es debido, tras reiniciar el sistema observaremos, tanto si hemos arrancado integramente desde el
disco duro, como si se ha hecho inicialmente mediante disquet, que el sistema, al arrancar, ya usa informacin del disco
duro. Transcurridos unos momentos en los cuales irn apareciendo por pantalla los resultados de los distintos procesos que
se ejecutan durante el arranque, el sistema entrar en una pantalla de bienvenida, y nos invitar a proseguir la instalacin,
recordndonos que podremos repetir este proceso en cualquier momento ejecutando el comando base-config como
root. Pulsemos INTRO y prosigamos.

5.3.18. Configuracin horaria


Inmediatamente despus de la pantalla inicial de configuracin entramos en la de la configuracin horaria del sistema,
Iime Zone Configuration. En sta se nos mostrar la hora de la BIOS. Si esta hora 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 clculos necesarios para situarnos en la hora de nuestro
huso horario.

5.3.19. Configuracin geogrfica


Una vez establecido el critero para el clculo horario, debemos especificar, en las dos pantallas siguientes, Time
Zone Configuration, nuestro emplazamiento geogrfico. Si la hora de la BIOS est sintonizada segn la hora local,

54

CAPTULO 5. TALLER DE INSTALACIN DE DEBIAN WOODY

y as lo hemos especificado en el apartado anterior, las respuestas a estas preguntas no tendrn ninguna relevancia. S que
es importante contestar correctamente a estas preguntas si el horario de la BIOS se ha establecido segn el criterio GTM 16 .

5.3.20. Establecimiento de la poltica de passwords


Terminados los procedimientos para la configuracin horaria el sistema ha llegado el turno de establecer la poltica de passwords, Password Setup. sta se compone de posible habilitacin de los sistemas md5 i shadow, y del
establecimiento del password de root, y de la creacin de una cuenta de usuario.
Sistema md5
En primer lugar el sistema nos pregunta si queremos instalar el sistema de passwords md5. Si no tenemos sospecha
de problemas de incompatibilidades17 podemos contestar que s, ya que es buena idea poder usar passwords con ms de
ocho caracteres.
Sistema shadow
Una vez ms si no tenemos sospecha de posibles incompatibilides 18, es bueno habilitar esta opcin, ya que as nos
aseguramos que el fichero que contiene los passwords encriptados (/etc/shadow) slo ser accessible por el root. Esto
supone una medida ms de proteccin para nuestro sistema.
Password de root
Ahora debemos entrar el password de root. Es importante seguir las recomendaciones para seleccionar este password,
y acordarse de l. Con el objetivo de confirmar que se ha entrado el password deseado y no ha habido posibles errores de
tecleo, se nos pide que lo volvamos a escribir a modo de confirmacin 19.
Creacin de una cuenta de usuario
Tal y como ya se ha remarcado, trabajar siempre como root es una mala poltica por distintas razones. Por esta razn el
sistema nos recomienda que creemos una cuenta de usuario normal. Se nos pedir el nombre de esta cuenta, si queremos
aadir datos suplementarios respecto a esta cuenta (por defecto Debian user), y su password, que, por los mismos motivos
que antes, deberemos escribirlo dos veces.

5.3.21. ltimas configuraciones


Paquetes PCMCIA
Una vez creado el usuario normal, si no disponemos de dispositivos PCMCIA (tpicos en ordenadores porttiles), el
sistema lo detectar automticamente y nos sugerir que confirmemos que los paquetes asociados a estos dispositivos
pueden ser eliminados.
Configuracin de un sistema PPP
Si disponemos de un mdem puede ser buena idea que procedamos a su configuracin, aunque tambin se puede hacer
una vez estemos en el sistema mediante la aplicacin pppconfig ejecutada como root. bviamente, si no disponemos
de este dispositivo, responderemos negativamente a esta pregunta 20.
16 Siempre

es posible reconfigurar estos parmetros mediante el comandotzconfig


uso de NIS las puede provocas, por ejemplo.
18 Este sistema no suele implicar problemas de incompatibilidades.
19 Frente al olvido del password de root hay distintas estrategias a seguir. Una de ellas puede ser utilizar el CDROM de instalacin, inicializar una
instalacin y justo despus de haber configurado el teclado, acceder a la tty2; una vez all podemos montar la root partition de nuestro disco duro, y,
mediante un editor, eliminar el contenido del campo de password encriptado del fichero /etc/passwd. Cuando volvamos a reiniciar el sistema, el
superusuario no tendr password, es por esto que lo primero que debemos hacer es asignarle immediatamente uno
20 Si no requerimos de los servicios de PPP podemos desinstalar sus paquetes: ppp, pppconfig, pppoe y pppoeconf.
17 El

5.3. INSTALACIN DE DEBIAN WOODY MEDIANTE CDROM

55

5.3.22. Configuracin de apt


En esta seccin se nos pregunta acerca de las fuentes donde apt deber ir a buscar la informacin para construir su
base de datos sobre los paquetes (dependencias, estado de instalacin, etc.). Al estar haciendo una instalacin ntegramente
basada en CDROM, escogeremos la primera opcin, y, tras poner el CD1 en el lector, aceptaremos la ruta que nos sugiere
para accede a l. Transcurridos unos momentos en los cuales apt extrae la informacin relativa a qu paquetes contiene este
CD, se nos preguntar si queremos aadir el contenido de otro CD a la base de datos. Una vez hayamos introducido el CD2
en el lector, contestaremos yes a esta pregunta. Repetiremos esta operacin hasta que apt haya procesado el contenido
del sptimo CDROM. Las operaciones sobre la gestin de contenidos de los CDROMs se pueden hacer tambin desde el
sistema mediante la apliacin apt-cdrom.
Una vez finalizado el escaneo de los contenidos de los siete CDROMs, se nos preguntar si queremos aadir 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 segurdiad de los contenidos de los paquetes (no nos es necesario de momento ya que al estar
usando nicamente paquetes de la distribucin oficial, en principio, sus contenidos ya son seguros).

5.3.23. tasksel y dselect


A continuacin se nos pregunta si queremos que se ejecuten los programas de seleccin de paquetes, primero tasksel
y luego dselect. Responderemos que no, pues estos programas tambin los podremos ejecutar desde la lnea de comandos una vez hayamos terminado la instalacin.
Aqu termina la instalacin bsica, como ltimo punto, y ya respondiendo a preguntas formuladas por apt, se nos
informar de los paquetes que se van a instalar y los que se van a desinstalar. Una vez aceptado ste proceso, se nos
preguntar si queremos borrar los paquetes .deb de nuestro disco duro 21. Al disponer de ellos en CDROM podemos
contestar que s, ya que su presencia slo implica la ocupacin de espacio en el disco duro.
Automticamente se arranca el programa de configuracin de exim. Al no ser objeto de este taller la configuracin
de este programa de gestin de correo, escogeremos la opcin 5 para salir del programa.
Finalmente, tras unos momentos nos aparecer por pantalla:

Debian GNU/Linux 3.0 brau tty1


brau login:

Tenemos pues, instalado ya un sistema bsico estndar en nuestro ordenador. Ahora empieza la tarea de construir
un sistema a nuestra medida. Es muy importante, llegado a este punto, distinguir entre dos tipos de sistemas: los de
desarrollo y los de produccin. Un sistema de desarrollo es aqul que est destinado a experimentacin, donde se hacen
pruebas y experimentos, y donde no priman ni la estabilidad ni la eficiencia, es, en definitiva, un sistema destinado
a la adquisicin de conocimientos sobre el propio sistema. Contrariamente, en un sistema destinado a produccin la
eficiencia y estabilidad son las caractersticas que ms peso tienen. As pues, debemos asegurarnos que contenga nica y
exclusivamente aquellos paquetes estrictamente necesarios, ya que el hecho de tener paquetes inecesarios instalados va
en detrimento de la eficiencia. La estrategia a seguir antes de montar un sistema de produccin (un servidor de web, un
servidor de aplicaciones, etc.) pasa siempre por trabajar primero sobre un sistema de desarrollo, donde se ensayarn y
probarn distintas estrategias, para poder sacar conclusiones de cara a montar el sistema de produccin.
Nuestro primer sistema ser, evidentemente, un sistema de desarrollo, tanto porque no tenemos en mente que sirva
para cubrir ninguna necesidad en concreto, como porque es nuestra primera experiencia de montaje de un sistema, cuya
finalidad es, nicamente, la obtencin de conocimientos. Instalaremos y desinstalaremos distintos paquetes, haremos
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 mdulo y haya obtenido ya una idea global de lo que
es instalar un sistema con lo que ello implica, reinstale de nuevo todo el sistema partiendo de cero para que lo adapte
estrictamente a sus necessidades.
21 Estos

archivos se almacenan en /var/cache/

56

CAPTULO 5. TALLER DE INSTALACIN DE DEBIAN WOODY

5.4. Instalacin de Debian Woody por red


Muchos de los pasos para realizar una instalacin por red son comunes a los de una instalacin mediante CDROM,
as pues destacaremos y nos centraremos en aquellos aspectos que difieren del proceso anteriormente descrito.

5.4.1. Particularidades de una instalacin por red


La diferencia bsica entre una instalacin hecha mediante un juego de CDROMs y una por red es la del lugar de
donde se obtendrn los paquetes a la hora de instalarlos. Mientras que en una instalacin hecha a partir de CDROMs,
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 instalacin por red los paquetes se obtienen remotamente, hecho que nos permite, en primer
lugar, acceder a la ltima versin de stos, y el poder actualizar todos los que tengamos instalados con una simple lnea
de comandos22.
Por otro lado, para realizar una instalacin por red, generalmente basta con un juego de disquets, o con un nico
CDROM, que contengan la informacin necesaria para poder arrancar un sistema operativo bsico sobre el qual se har
correr el programa de instalacin (que ya est incluido en el juego de disquets o en el CDROM, junto con los mdulos
que nos puedan ser necesarios para configurar el accesso a la red), y a partir de aqu, el resto de informacin se obtendr
remotamente.

5.4.2. Aspectos comunes de los distintos mtodos de instalacin


Como ya se ha dicho, muchos de los pasos a seguir para hacer una instalacin por red son comunes a los datos para
hacer una instalacin mediante el juego de CDROMs de la distribucin. As pues, entraremos en el programa de instalacin
de la misma forma que hemos hecho anteriormente ([5.3.1] y [5.3.2]) e inicialmente seguiremos los mismos pasos para
configurar el idioma de instalacin, el teclado, particionar el disco duro y activar las particiones ([5.3.3], [5.3.4], [5.3.6],
[5.3.7], [5.3.8] y [5.3.9]), y para instalar el kernel ([5.3.10] 23). Llegados a este punto, tendremos que comprobar si el kernel
ha reconocido nuestra tarjeta de red y, si no es el caso, procediremos a instalar y configurar el mdulo pertinente para
hacerla operativa24. Una vez hecho esto, deberemos configurar la red, especificar de qu sitio obtendremos las fuentes, y
apartir de ah seguiremos los mismos pasos que en la instalacin por CDROM para terminar la instalacin.

5.4.3. Instalacin del mdulo de red


ste es un punto clave para poder realizar la instalacin por red, ya que es aqu donde, si el driver de nuestra tarjeta
de red no ha sido compilado dentro del kernel, deberemos seleccionar el mdulo necesario para tener acceso a ella. En
primer lugar, pues deberemos averiguar si nuestra tarjeta de red ya ha sido detectada durante el proceso de arranque y se ha
cargado su correspondiente driver. Para hacerlo, accederemos al segundo terminal (ALT+F2) y ejecutaremos el comando
dmesg. Ahora debemos buscar, entre las muchas lneas que nos ha devuelto este comando, si hay algunas que hacen
referencia a nuestra tarjeta de red. A modo de ejemplo, para una tarjeta RTL-8029 (Realtek Semiconductors) se obtiene:
brau:~# dmesg
.
.
.
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.
.
22 apt-get

upgrade
el apartado Select Installation Medium escojeremos la opcin /dev/fd0 e inmediatamente se nos pedira que insertemos el rescue disk seguido de los discos de drivers. Las imgenes de estos discos se hallan en
/cdrom/dists/woody/main/disks-i386/3.0.23-2002-05-21/images-1.44/bf2.4.
24 En muchos casos la configuracin, paso de parmetros, se puede hacer de modo automtico mediante modprobe, programa que se puede lanzar
desde la misma interficie de instalacin despus de la seleccin de un mdulo
23 En

5.4. INSTALACIN DE DEBIAN WOODY POR RED

57

.
.

Si la bsqueda ha resultado infructuosa, debemos en primer lugar determinar qu tarjeta de red tenemos. Para esto lo
mejor es acudir a la documentacin suministrada con ella o inspeccionndola visualmente. Si esto no s posible, hay otras
estrategias para deteminar cul 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 informacin que nos puede
proporcionar algn otro sistema operativo que tengamos instalado en el ordenador.
Una vez conozcamos qu tipo de tarjeta de red es la que tenemos, debemos averiguar qu mdulo es el que nos
servir para acceder a la tarjeta. La estrategia ms segura para este fin es recurrir a cualquier buscador 25, entrar palabras
clave sobre nuestra tarjeta (referencia de la tarjeta NIC linux module, por ejemplo) y leer algunas de
las pginas encontradas. Tambin se puede recurrir a las pginas de las principales distribuciones de linux, y entrar la
referencia de la tarjeta en sus buscadores. Como ltimo recurso se puede recurrir a la documentacin de mdulos de red
del kernel, donde se especifica, para todas las tarjetas soportadas, el mdulo correspondiente. Tambin es bueno saber si
el fabricante ha desarrollado su propio mdulo26.
Una vez hayamos averiguado el mdulo que necesitamos, despus 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 estn incluidos en el kernel, entraremos en la pantalla de seleccin de mdulos Select Category 27 , y mediante los cursores seleccionaremos la opcin kernel/drivers/net.
Una vez dentro de la pantalla de selecin de mdulos de tarjeta de red Select Kernel/drivers/net modules,
seleccionaremos otra vez con los cursores el mdulo que necesitamos. Tras responder que s a la pregunta sobre si realmente queremos instalar dicho mdulo, podemos dejar que el autoprobe configure el mdulo por nosotros, si no sabemos
que haya que passar algn parmetro en concreto al mdulo en cuestin. Pasados unos instantes, recibiremos el mensaje
indicndonos si el mdulo se ha instalado correctamente o no.

5.4.4. Configuracin de la red


Una vez sepamos que la tarjeta de red est operativa, en el men principal de la instalacin seguiremos el paso
sugerido Configure the Network para proceder a la configuracin de la red. En primer lugar deberemos configurar
el nombre del host (antes se ha sugerido brau, por ejemplo), sin entrar el dominio. A continuacin deberemos entrar la
IP, la mscara de red, el gateway, el nombre de dominio, y los servidores de DNS, hasta un nmero de tres, separados por
espacios.

5.4.5. Configuracin de apt


Una vez se ha configurado la red, todos los siguientes pasos a seguir son idnticos a los seguidos en la instalacin
por CDROM, hasta llegar a la configuracin de apt Apt Configuration. Llegados a este punto, en vez de escojer la
opcin de cdrom, elijiremos la opcin de red que ms nos convenga. A efectos prcticos es lo mismo escoger el protocolo
http que el ftp. Despus de realizar la seleccin 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 non-free, ya se deja que el mismo lector tome la decisin segn sus principios ticos. Acto seguido se nos
pregunta de qu estado debe ser el mirror del qual apt deber obtener los paquetes, debemos escoger siempre el que nos
sea accesible de forma ms rpida posible, el qual siempre acostumbra a ser el ms prximo, geogrficamente hablando, a
nosotros. Una vez seleccionado el estado, se nos pide que seleccionemos un servidor en concreto 28. Resuelta esta cuestin,
se nos muestra la pantalla de configuracin de acceso a travs de proxy; si no tenemos que usar este servicio, dejaremos
en blanco la lnea.
Es importante que los paquetes crticos en cuanto a seguridad se refiere, se obtengan de servidores seguros. Por esta
razn se recomienda que estos se obtengan en concreto de security.debian.org.
25 http://www.google.org
26 Llegar a encontrar un mdulo 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 mtodos avanzados para poderlo configurar; por este motivo se recomienda utilizar siempre tarjetas lo ms
estndar possible.
27 Podemos acceder a esta interficie en cualquier momento, ejecutando el comando modconf. Este comando sirve como front-end para la administracin de drivers que han sido compilados de forma modular junto al kernel.
28 La aplicacin netselect destinada a facilitar la eleccin de servidores de paquetes segn el critero de velocidad de acceso.

58

CAPTULO 5. TALLER DE INSTALACIN DE DEBIAN WOODY

Terminados todos estos pasos apt conectar con el mirror que le hemos especificado para configurar su base de datos.
Apartir de este punto, para el resto de la instalacin seguiremos los mismos pasos que en la instalacin realizada mediante
CDROM.

5.5. Conclusin
En este taller hemos aprendido a instalar GNU/Linux en nuestro ordenador. Aunque por ahora nuestro sistema sea
muy bsico, el objetivo del taller se ha cumplido plenamente, ya que hemos sentado las bases para poder empezar a sacar
partido de la flexibidad y potencia de este sistema operativo. En el prximo taller aprenderemos cmo configurar el sistema
e instalar nuevas aplicaciones para ir adaptndolo y dotndolo de todas las herramientas que estimemos necessarias para
cubrir nuestras necesidades.

Captulo 6

Configuraciones bsicas
6.1. El sistema de login
Si todava no tenemos configurado el entorno grfico, cuando arrancamos un sistema GNU/Linux nos aparece una
pantalla de login dnde se pide al usuario que se identifique antes de empezar a utilizar el sistema. De hecho, la mayora
de distribuciones lanzan varias consolas a las que podemos acceder a partir de ALT+F1, ALT+F2,. . . sto nos permite
trabajar simultneamente 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 conexin con el dispositivo adecuado (en el caso de las consolas de la pantalla es el /dev/ttyX, dnde la
X es el nmero de consola) y lanzar la aplicacin de login. Este mecanismo nos permite mucha flexibilidad, ya que el
mismo programa getty permite comunicarse con diferentes dispositivos, de forma que podramos connectar un terminal
por el puerto serie del ordenador, montar una consola utilizando la lnea telefnica y un mdem, etc.
Antes de lanzar la aplicacin 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 tambin podemos mostrar
algunas de las variables del sistema referencindolas como:

\d
\s
\l
\m
\n
\o
\r
\t
\u

la fecha actual.
el nombre del sistema operativo.
el nmero de consola.
la arquitectura del ordenador.
el nombre del ordenador.
el nombre del dominio.
la versin del sistema operativo.
la hora actual.
nmero de usuarios activos en el sistema.

Una vez entremos en el sistema, el programa de login se encarga de mostrarnos el mensaje del da. Este mensaje es
lo que hay escrito en el fichero /etc/motd, que tambin podemos cambiar. Este mecanismo es muy til para informar
a todos los usuarios de algn evento determinado, avisarles de algn problema, etc. Si un usuario quiere suprimir este
mensaje puede hacerlo creando un fichero vaco llamado .hushlogin en su directorio home. Despus de mostrar este
mensaje, el proceso de login lanza el shell configurado por defecto para el usuario. Lo primero que hace el intrprete
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 instrucciones configuradas siempre que el usuario entre en el sistema. Adems de
este /.profile tambin tenemos el /etc/profile, que se ejecuta para todos los usuarios del sistema, muy til
para poder configurarles a todos las opciones que queramos sin tener que poner las instrucciones dentro de cada uno de
los .profile de los usuarios.
59

CAPTULO 6. CONFIGURACIONES BSICAS

60

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 ejecutar slo cuando utilizamos el bash (aunque se puede configurar a partir del mismo .profile del usuario,
que es dnde se llama a la ejecucin de este archivo). Vamos a ver algunas de las instrucciones que podemos encontrar en
estos ficheros:
#CONFIGURACIONES BSICAS
mesg n
umask 022
#PATH
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
alias mv=mv -i
alias v=vim
Como vemos, en este archivo podemos definir lo que queramos. Las dos primeras instrucciones del fichero anulan la
entrada de mensajes de otros usuarios y configuran los permisos que tendrn los nuevos ficheros que creemos. La siguiente
instruccin es la definicin del PATH. El PATH son los directorios dnde tenemos los comandos, programas, aplicaciones,
etc. que queremos poder llamar desde cualquier sitio de la jerarqua de sistema de ficheros sin necesidad de escribir su ruta
completa (cada directorio del PATH lo separamos con :). Si quisiramos poder ejecutar los programas del directorio
dnde estemos situados sin necesidad de poner ./ al principio, podramos aadir sta entrada en la declaracin del
PATH (aunque no es recomendable por motivos de seguridad). Igualmente, si en el PATH no hay algn programa que
necesitamos ejecutar, podemos especificar la ruta completa del mismo en la lnea de comandos. La siguiente declaracin
es la del prompt del sistema. El prompt es la lnea que aparece en el shell antes del caracter # (para el root) o $ (para
los otros usuarios). Podemos configurarnos este prompt de la forma que queramos utilizando las siguientes variables del
sistema:
\d
\h
\s
\u
\v
\w
\!
\$

la fecha del sistema.


el nombre de la mquina.
el shell que utilizamos.
el nombre del usuario.
la versin del bash.
el directorio actual.
el nmero de historia del comando.
aparece # si somos el root o $ para los otros usuarios.

Finalmente, tenemos los alias de usuario. Los alias son sinnimos, generalmente para los comandos que ms utilizamos (para no tener que escribirlos completamente). Por ejemplo, en uno de los alias que tenamos en el ejemplo
definamos que al escribir l se ejecutara ls -color=auto. De esta forma, podemos utilizar largos comandos sin
tener que estar escribindolo todo cada vez que los utilicemos. Podemos ver todos los alias definidos a partir del mismo
comando alias.
Tanto en la definicin del PATH como en la del prompt hemos utilizado el comando export. Este comando nos
permite definir lo que llamamos una variable de entorno. Estas variables son utilizadas por el shell para realizar ciertas
operaciones, guardar algn tipo de informacin, etc. Podemos ver todas las que hay declaradas con el mismo comando
export. Con set y unset tambin podemos manipular otros atributos que tiene el intrprete de comandos. Algunas
de estas variables y atributos, que tiene por defecto el bash, son:
PWD: directorio actual.

6.3. EL SISTEMA DE ARRANQUE

61

BASH_VERSION: versin del bash que utilizamos.


RANDOM: genera un nmero aleatorio diferente cada vez que mostramos su contenido.
SECONDS: nmero de segundos que han pasado desde que hemos 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: tamao del fichero de historia (nmero de comandos que se guardan).
HISTCMD: nmero de comando actual en la historia.
HISTFILE: fichero dnde se guarda la historia de comandos (generalmente .bash_history del directorio
home del usuario).
Con la manipulacin de estas variables podemos personalizar mucho ms nuestro intrprete de comandos para adaptarlo a nuestros gustos y necesidades. Con echo $NombreVariable podemos ver el contenido de estas variables y
atributos.

6.3. El sistema de arranque


Aunque con la instalacin del sistema operativo ya se lleva a cabo la configuracin e instalacin de un sistema de arranque, en esta seccin veremos con detalle qu opciones nos proporcionan y cmo debemos personalizarlos y adaptarlos
a nuestras necesidades. Aunque existen muchos, el Lilo y el Grub son los ms utilizados en los entornos GNU/Linux, con
lo cual slo nos centraremos en ellos.
Antes de entrar en detalles sobre la configuracin de estos dos programas, explicaremos como funciona el sistema
de arranque de un PC estndar. Tal y como ya sabemos, a partir de la BIOS o EFI del ordenador 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 ms 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 disco duro, lo primero que inspecciona es si la MBR
(Master Boot Record) del primer disco duro (mster del primer canal IDE o el primer disco del canal SCSI) contiene
alguna indicacin del sistema a cargar. La MBR es la primera pista del disco duro, all donde se guarda la informacin
de las particiones configuradas y, opcionalmente, el programa encargado de iniciar el sistema operativo. Si aqu no se
encuentra este programa, se inspecciona el sector de arranque de la particin activa del disco. Siempre que queramos
instalar un programa en el sistema de arranque del ordenador deberemos situarlo en alguna de estas zonas. En figura 6.1
podemos ver todo este proceso cuando la secuencia de arranque es primero la disquetera y despus el disco.
Siempre que instalemos 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 particin activa, se ejecutara el de la MBR porque la BIOS o
EFI inspecciona primero esta zona. Si no tuviramos particin activa, deberamos situar el programa de arranque en la
MBR. De todas formas, lo ms recomendable es instalar siempre el programa en la MBR porque es lo primero que se
inspecciona. Aunque podamos tener instalados otros sistemas operativos en otros discos, deberemos instalar el Lilo o
Grub en alguna de estas zonas. En la configuracin del programa ya le indicaremos dnde estn situados los operativos
que queremos cargar.

6.3.1. Lilo
El Lilo nos permite mltiples configuraciones diferentes para realizar casi cualquier accin con el sistema de arranque
del ordenador. Para no extendernos innecesariamente, en esta seccin slo explicaremos las opciones ms importantes para
poder configurar un sistema de arranque de mltiples operativos teniendo en cuenta la seguridad del mismo. En el manual

CAPTULO 6. CONFIGURACIONES BSICAS

62

DISCO DURO (hda)


DISQUETERA (A:)

MBR

hda1 (particin activa)

hda2

Figura 6.1: Proceso de arranque.

del programa y de su fichero de configuracin (man lilo y man lilo.conf) encontraremos la especificacin
completa para todas las otras opciones.
El fichero de configuracin del Lilo es el /etc/lilo.conf. Cuando ejecutemos lilo, el programa busca toda la
informacin en este fichero e instala el programa de arranque en la zona que le indiquemos. En este fichero de configuracin tenemos dos secciones: la global y las locales a cada sistema operativo. En la seccin global encontramos todas
las configuraciones generales para el programa. En cada lnea podemos poner una directiva de configuracin para indicar
algn tipo de informacin al programa. Las directivas ms importantes de esta seccin son las siguientes:
boot = DISPOSITIVO: le indicamos en qu dispositivo queremos instalar el Lilo. Si quisiramos instalarlo
en la MBR del primer disco del canal IDE, en DISPOSITIVO pondramos /dev/hda, si lo quisiramos en la
primera particin /dev/hda1, etc. Tambin tenemos la opcin de instalarlo en un disquete, indicando el dispositivo /dev/ fd0.
default = NOMBRE: indicamos el sistema operativo que se cargar 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 podamos seleccionar el que queramos. Si no activamos esta opcin no podremos seleccionar el operativo
a cargar y automticamente ya se iniciar el que tengamos por defecto.
delay = TSECS: especifica el nmero de dcimas de segundo que el Lilo esperar antes de cargar el sistema
opertivo por defecto (la directiva default debe existir). Esta opcin es vlida cuando slo tenemos un sistema
operativo en el disco; si utilizamos prompt, tendremos que configurarlo con timeout.
timeout = TSECS: dcimas de segundo que el Lilo esperar en el prompt antes de arrancar el sistema operativo
por defecto (deben existir la directiva de prompt y default).
lba32: esta opcin nos sirve para poder arrancar cualquier particin del disco duro. Si desactivamos esta directiva no podremos arrancar sistemas operativos en particiones situadas en sectores superiores del disco (a partir del
cilindro 1024) y deberemos poner el arranque del sistema en una pequea particin al inicio del disco (ms informacin en man lilo.conf). Todas las BIOS a partir del 1998 soportan esta opcin, de forma que es muy
recomendable utilizarla para ahorrarnos problemas.
Las directivas locales son las que corresponden con cada uno de los sistemas operativos instalados en las particiones de
nuestros discos. La primera directiva debe ser o bien image u other, la explicacin de las cuales tenemos a continuacin
(junto con otras directivas posibles):
image = CAMINO: el CAMINO nos indica el archivo que contiene la imagen ncleo del sistema operativo. Esta
opcin slo es vlida para sistemas GNU/Linux o similares. Generalmente, las distribuciones crean un directorio
/boot/ donde se pone la imagen del ncleo del sistema, aunque tambin es usual poner un enlace en la raz
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.

6.3. EL SISTEMA DE ARRANQUE

63

label = NOMBRE: etiqueta para el sistema operativo. Esta directiva es obligatoria para todas las secciones locales
que tengamos configuradas ya que sino no podramos identificarlas de ninguna forma.
alias = NOMBRE: sinnimo para la misma seccin local. Podemos tener tantos como queramos.
root = DISPOSITIVO: esta opcin slo es vlida para los sistemas GNU/Linux o similares. Se le especifica en
qu dispositivo est situado la raz del sistema de ficheros (root filesystem). Esta opcin se pasa como argumento
al cargar el ncleo del sistema y es opcional; si no se le pasa nada se coge la que tiene configurada por defecto la
imagen del ncleo.
El sistema de arranque de un sistema GNU/Linux o similar nos permite, con un mismo sistema de ficheros, cargar
varios ncleos diferentes. De esta forma, sin la necesidad de instalar de nuevo el sistema, podemos trabajar con diferentes
ncleos. Para configurarlo tan solo tendramos que especificar dos secciones locales poniendo, en cada una, qu ncleo
utilizaremos.
Hay algunas de las directivas del Lilo que tambin pueden ser configuradas directamente sobre la imagen del ncleo del
operativo. Con el comando rdev podemos configurar todas las posibles opciones de una imagen ncleo Linux. Algunas
de ellas son la raz del sistema de ficheros (que si no lo configuramos con el Lilo se coge el que hay en la imagen), el
modo vga, etc.
Con el Lilo o el Grub podemos pasar parmetros al ncleo Linux en el momento de arrancar. sto es muy til cuando
queremos realizar alguna operacin especfica en el sistema; por ejemplo, pasando single o 1 se iniciara el sistema en
el runlevel 1, con root=/dev/hda3 especificaramos la raz del sistema de ficheros, etc.
Si queremos proteger adecuadamente el sistema de arranque del ordenador deberemos aadir algunas directivas ms
en este fichero de configuracin. Lo primero que debemos hacer es proteger la BIOS o EFI con una contrasea y configurar
la secuencia de arranque porque slo se pueda realizar a partir del disco duro. Con sto pasamos toda la responsabilidad
al Lilo. A partir de las directivas password = CONTRASEA y restricted podremos configurar la seguridad del
mismo de cinco formas diferentes:
Contrasea global

Contraseas locales

Contrasea restringido global

Contrasea global y restringido local

Contrasea y restringido local

Debemos poner la directiva de password


en la seccin global y al arrancar
cualquiera de los sistemas se pedir la constrasea.
En los sistemas que queramos que nos pida contrasea debemos poner la directiva password y slo al arrancar stos se
pedir la misma.
Debemos poner la directiva de password
y restricted en la seccin global y slo al arrancar algn sistema pasando algn parmetro al ncleo se pedir la contrasea.
La contrasea se pone en la seccin de
global y slo ponemos el restricted
en los sistemas que queremos que se pida
contrasea al pasar algn parmetro al ncleo.
Es lo mismo que la configuracin anterior
pero con la ventaja que podemos configurar diferentes contraseas para los diferentes sistemas que queramos arrancar.

Debemos tener en cuenta que si utilizamos la directiva password, la constrasea 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, despus de escribir este fichero de configuracin podemos instalar el Lilo en el sector de arranque configurado.
Para hacerlo, tan slo debemos ejecutar lilo. Si quisiramos desinstalarlo deberamos pasarle el parmetro -u.
A continuacin mostramos un ejemplo de este fichero de configuracin, preparado para arrancar un sistema GNU/Linux
y otro WindowsTM:

CAPTULO 6. CONFIGURACIONES BSICAS

64

lba32
boot = /dev/hda
prompt
timeout = 50
message = /etc/message
default = debian
restricted
password = contrasea
image
label
root

= /vmlinuz
= debian
= /dev/hda1

other
label

= /dev/hda3
= w2000

Toda esta configuracin sirve para un arranque estndar del sistema. Tambin hay otro tipo de arranque que utiliza
una imagen llamada de RAM Disk (initrd). Este otro tipo de arranque sirve para realizar una configuracin modular del
ncleo Linux. Es muy utilizado cuando necesitamos un ncleo con alguna configuracin especial, para incluir mdulos
en el mismo ncleo, 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 estndar 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
El Grub (GRand Unified Bootloader) es el programa de arranque del proyecto GNU. Igual que el Lilo, el GRUB
tambin nos sirve para instalar un programa en la zona de arranque que queramos del ordenador. A diferencia del Lilo,
tiene muchsimas ms posibilidades que lo hacen muy verstil: permite tener un pequeo intrprete de comandos al
arrancar el ordenador, nos permite acceder a los archivos de las particiones del disco sin cargar ningn operativo, etc.
Como en el caso anterior, en esta seccin slo veremos su configuracin bsica. Si quisiramos profundizar ms en su
uso, podemos recorrer a su manual o en el HOWTO correspondiente.
El sistema de arranque del Grub se carga en dos fases. Generalmente, con la instalacin del paquete, se incorporan
dos ficheros correspondientes a estas dos fases. Si queremos que al arrancar el Grub no nos muestre ningn men para
seleccionar el operativo que queremos cargar, slo deberamos ejecutar el programa grub y en el intrprete de comandos
que nos muestra ejecutarle:
$ install (hd0,0)/PATH/stage1 d (hd0) (hd0,0)/PATH/stage2
Esta instruccin instala el Grub en la MBR del disco maestro del primer canal IDE. La forma como se referencian los discos vara 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,. . . Para las particiones tambin se empieza con el nmero 0 para denominar la primera y a
diferencia de hda1 se debe escribir (hd0,0) y consecutivamente para las otras. Leyendo la instruccin de esta forma fijmonos como el primero parmetro sirve para designar dnde est el archivo de la primera fase del Grub (le
indicamos la particin correspondiente, directorio -PATH- y fichero -stage1-). Generalmente, cuando instalemos el
paquete del Grub tambin se aaden estos dos ficheros para cada una de las fases de carga (suelen estar situados en
/usr/share/grub/i386-pc/). El parmetro d (hd0) indica que la primera fase del Grub se instalar en la MBR
del primer disco. La ltima opcin especifica dnde est situado el fichero para la segunda fase de carga, que es ejecutada
por la primera.
Con esta configuracin, al reiniciar el ordenador aparecera, por defecto, el intrprete de comandos del Grub. Con
l podemos manipular muchos aspectos del disco, arrancar el sistema operativo que queramos, etc. Para ver todos los
comandos disponibles en el shell del Grub podemos apretar TAB. Tambin se incluyen ayudas para tener una referencia completa de todos los comandos. Si quisiramos arrancar un sistema GNU/Linux deberamos escribir las siguientes
instrucciones:

6.4. ACCESO A OTRAS PARTICIONES Y DISPOSITIVOS

65

$ kernel (hd0,0)/vmlinuz root=/dev/hda1


$ boot
Con la primera indicamos dnde est situada la imagen ncleo (con los parmetros que quisiramos) y con la segunda
iniciamos el proceso de carga del operativo. Si quisiramos un men de seleccin para no tener que escribir estos comandos cada vez que arrancamos el ordenador podramos generar un fichero de men como el siguiente (los comentarios
empiezan por #):
#Especificacin del operativo que se cargar por defecto.
#Este nmero est en correspondencia con el orden de los
#sistemas que hay en las secciones locales a los operativos.
default 0
#Indicamos que espere 10 segundos antes de cargar el sistema
#configurado por defecto.
timeout 10
#Configuracin de arranque para un sistema GNU/Linux
title Debian GNU/Linux
kernel (hd0,0)/vmlinuz root=/dev/hda1
#Configuracin de arranque para un sistema Windows
title W2000
root
(hd0,2)
makeactive
Para instalar el Grub con este men de arranque deberamos ejecutar la misma instruccin que anteriormente pero
aadiendo el parmetro p (hd0,0)/PATH/menu.lst con el disco, camino y fichero de men. Para proteger el sistema de arranque (que desprotegido es an ms peligroso que con el Lilo) podemos poner la directiva de password
CONTRASEA en la seccin global del fichero de configuracin. De esta forma, cuando desde el men se quiera entrar
en el shell del Grub se pedir la contrasea. Como en el caso del Lilo, si utilizamos esta directiva es muy importante que
slo el root pueda leer este archivo de configuracin (aunque en este caso tambin hay la opcin de poner la contrasea
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 utilizbamos con los ficheros y aplicarla
a los dispositivos. En el directorio /dev/ tenemos todos los dispositivos reconocidos por el sistema. Si el sistema no
reconociera adecuadamente un dispositivo o quisiramos crear uno de especial, el comando mknod nos permite realizar
esta clase de operaciones, aunque es importante saber exactamente qu queremos hacer antes de utilizarlo ya que su mal
uso podra daar partes del sistema.
Para las unidades de almacenaje el sistema nos proporciona otro tipo de operacin para poder acceder a sus sistemas
de archivos, la de montaje. Para esta operacin utilizaremos los comandos mount y umount, que sitan (montan) o
desmontan todo el sistema de ficheros de un determinado dispositivo/unidad en un directorio existente del sistema. La
forma bsica de utilizar el comando es mount dispositivo directorio, dnde dispositivo puede referenciar cualquier dispositivo del canal IDE o SCSI (/dev/hdXX, /dev/sdXX), la disquetera (dev/fdX), cintas de
backups, etc. y directorio es la ubicacin dnde montaremos la estructura de ficheros del dispositivo. Es recomendable que el directorio donde montemos estos dispostivos est vaco, ya que cuando se utiliza como punto de montaje no
se puede acceder a ellos. Para la disquetera y CD/DVD muchas distribuciones ya crean un directorio por defecto dnde
montarlos (/floppy/ o /mnt/floppy/ y /cdrom/ o /mnt/cdrom/). Tambin se suele proporcionar el directorio
/mnt/, dnde podemos crear otros directorios para los otros dispositivos que tengamos en el sistema.
Para desmontar uno de estos dispostivos podemos utilizar umount directorio, dnde directorio debe ser el
punto de montaje utilizado. Si montamos dispositivos como un disquete o CD, es importante no sacar del dispositivo del

CAPTULO 6. CONFIGURACIONES BSICAS

66

soporte ya que antes debemos avisar al sistema para que actualice la cache del sistema de ficheros del dispositivo. Igualmente, tampoco podremos desmontar el dispositivo si algn usuario o aplicacin est utilizando alguno de sus archivos o
directorios (al intentarlo, el sistema dara un mensaje de error).
Fijmonos que con el comando de montaje no estamos especificando en ningn momento el tipo de sistema de ficheros
utilizado en la unidad que queremos montar, de forma que se deber determinar de forma automtica. Si quisiramos
especificarlo manualmente, podramos pasar al comando mount el parmetro -t tipo dnde tipo podra ser alguno
de los de la siguiente tabla (ir al manual de mount para ver el listado completo):
TIPO
ext
ext2
ext3
swap
sysv
minix
iso9660
nfs
smbfs
ntfs
msdos
vfat

SISTEMA
GNU/Linux (versiones de ncleo anteriores a 2.1).
GNU/Linux (versiones de ncleo posteriores a 2.1).
GNU/Linux (versiones de ncleo posteriores a 2.2 o 2.4).
Sistema de swap de GNU/Linux.
Sistemas tipo UNIX.
MINIX.
Sistema de ficheros que utilizan la mayora de CDs.
Sistema de ficheros remoto (Network File System).
Sistema de ficheros remoto en redes WindowsTM(Samba File System).
Rama de WindowsNTTM.
MS-DOSTM .
Rama de Windows95TM.

Adems de pasar el tipo de sistema de ficheros utilizado por la unidad que queremos montar tambin podemos indicar
otras opciones que nos pueden ser muy tiles en determinadas situaciones (siempre precedidas por -o y, si queremos
pasar ms de una, separadas por comas):
significado de la opcin
permitimos
no permitimos
Ejecucin de binarios
exec
noexec
Uso del bit de SetUserId
suid
nosuid
Ficheros de slo lectura
ro
rw
Sistema sincronizado (uso de cache de disco)
sync
async
Interpretacin de caracteres o bloques especiales
dev
nodev
Permiso para que cualquier usuario monte o
user
nouser
desmonte el dispositivo
Sistema de tipo swap
sw
(si passemos defaults se utilizaran las opciones rw, suid, dev, exec, auto,
nouser y async)
En la figura 6.2 podemos ver un ejemplo de utilizacin de este comando para montar varios dispositivos diferentes:
Adems de estos comandos para montar y desmontar unidades, el sistema operativo nos proporciona otra forma de
hacer lo mismo y tener siempre una determinada configuracin segn la unidad. En el fichero /etc/fstab podemos
guardar esta informacin de forma que cada lnea indicar una unidad con su directorio de montaje y las opciones que
queramos configurarle. La sintaxi de cada una de estas lneas ser:
<disp> <dir> <tipoSistema> <opciones> <dump> <orden>
En el primer campo le debemos especificar el dispositivo tal y como hacamos con el comando de mount y el segundo
ser el directorio donde queramos montar la unidad indicada. En el campo de tipoSistema le podemos especificar
el sistema de ficheros que utiliza la unidad o bien auto para que lo detecte automticamente. En opciones podemos
escribir las mismas que utilizbamos con el comando de mount, separadas por comas si ponemos ms de una. Una opcin
til de este campo es la configuracin de auto o noauto, con lo cual indicamos al sistema que monte automticamente
(o no) la unidad al arrancar. El campo de dump indica si queremos realizar copias de seguridad (ms informacin en el
manual de dump). Si no utilizamos este sistema podemos poner un 0. El ltimo campo sirve para indicar el orden de
montaje de las unidades. Si le ponemos un 0 indicamos que el orden no es importante. La raz del sistema de ficheros
es lo primero que se debe montar, con lo cual en este campo debera haber un 1.

6.5. CONFIGURACIN DE DISPOSITIVOS

67
hda
hda1 (ext2)
linux root
filesystem

MASTER

hda2 (swap)
hda3 (ntfs)
W2000

IDE 1

hdb
SLAVE

mount t ntfs o ro /dev/hda3 /mnt/w2000

hdb1 (fat32)
/

mnt

cdrom

floppy

MASTER
IDE 2

w2000

infor

FLOPPY DISK

mount t vfat /dev/hdb1 /mnt/info

mount /dev/hdc /cdrom

mount /dev/fd0 /floppy

Figura 6.2: Montaje de dispositivos.

Una entrada que siempre veremos en este fichero y que nos puede sorprender es la del directorio /proc/, que tiene
un significado especial. Realmente lo que hay en este directorio no son ficheros, sino el valor de muchas de las variables
que utiliza el ncleo del sistema. Siguiendo la misma poltica del operativo, con la cual todo se debe poder referenciar
como un archivo, en el directorio /proc/ tambin podemos manipular variables internas del ncleo tal y como si fueran
ficheros.
Aunque todo este diseo para montar las unidades en la estructura jerrquica de directorios es muy potente y nos
permite mucha flexibilidad, en algunos casos no es muy prctico. Por ejemplo, cada vez que queramos copiar un archivo
a un disquete tendremos que montar la unidad, copiar y desmontarla de nuevo. Por esta razn 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 directamente archivos a y desde un disquete y algunas otras
herramientas interesantes. Tambin existe un paquete llamado autofs, que detecta automticamente la insercin de
algn dispositivo en el sistema y los monta sin necesidad de escribir ningn comando.

6.5. Configuracin de dispositivos


Aunque en los inicios de GNU/Linux no era as, actualmente cada vez ms fabricantes proporcionan drivers para sus
dispositivos especiales para GNU/Linux. Antes de intentar configurarlos debemos buscar informacin sobre los mismos
en los mismos manuales del sistema, los mdulos, en Internet, etc. para ahorrarnos problemas en su puesta en marcha.
Aunque acutalmente la mayora de dispostivos cuentan con HOWTOS, manuales o algn tipo de documentacin, es
importante que antes de comprar uno nuevo nos informemos adecuadmante de si existe algn driver disponible para l.
Aunque en esta seccin slo veremos cmo configurar algunos de los dispositivos ms frecuentemente utilizados
en los ordenadores personales, segn la distribucin que utilicemos el proceso puede variar significativamente. En toda
la seccin nos hemos basado en el sistema que se utiliza en Debian GNU/Linux, aunque aprendiendo desde la base
cmo funciona este proceso no deberamos tener problemas para buscar cul es la configuracin que se utiliza en otras
distribuciones.

6.5.1. El teclado
La correcta configuracin del teclado es un aspecto muy importante para poder solucionar cualquier problema que nos
surja con l. En primer lugar, debemos saber que cuando el sistema arranca, se carga un mapa de caracteres correspondiente al configurado en el proceso de instalacin. Este mapa de caracteres se suele encontrar situado en /etc/console/
boottime.kmap.gz o en algn otro directorio de /etc/. Si cambisemos de teclado slo tendramos que cambiar

68

CAPTULO 6. CONFIGURACIONES BSICAS

este fichero con el que correspondiera con el nuevo teclado y al arrancar de nuevo ya se cargara el nuevo mapa. Todos
los mapas de caracteres existentes se suelen situar dentro del directorio /usr/share/keymaps/ ordenados por arquitecturas de ordenadores y pases. Concretamente, el que utilizamos en Espaa con ordenadores basados en la arquitectura
i386 y un teclado estndar lo encontraramos en i386/qwerty/es.kmap.gz.
Aunque todos estos mapas de caracteres estn comprimidos en formato gzip, podemos descomprimirlos y cambiar alguna de sus entradas para adaptarlas a nuestras necesidades. En cada lnea encontramos la directiva keycode, que indica
que estamos definiendo una tecla, indicada en el nmero que sigue a la directiva (podemos saber qu nmero corresponde
con cada una de las teclas a partir del comando showkey). Despus de esta definicin tenemos los significados que tiene
la tecla apretndola sola, con el SHIFT, etc. Vemoslo con un ejemplo:
keycode 53 = minus underscore
control keycode 53 = Delete
En la primera lnea se indica qu carcter corresponde al apretar la tecla sola (minus) o con el SHIFT apretado
(underscore). La segunda nos muestra la funcin a realizar en caso de apretar la tecla juntamente con la de CTRL
(se eliminara el siguiente caracter). Toda la informacin necesaria para configurar correctamente un archivo de este tipo
la podemos encontar en el manual de keymaps, muy til cuando nos encontremos con algn problema con teclados
especiales o de otros pases. Si no queremos reiniciar el sistema al cambiar este fichero de mapa, podemos utilizar el
comando loadkeys (dumpkeys nos muestra las configuradas).
Con el programa consolechars podemos cargar la fuente que queramos en el terminal. Debemos diferenciar
claramente lo que es una fuente y lo que es el mapa de caracteres: el mapa nos determina qu significado tiene cada
tecla mientras que la fuente es tan solo la representacin grfica que le damos a la misma. Toda la configuracin de las
fuentes de caracteres se suele encontrar en /etc/console-tools /config. Con el comando dpkg-reconfigure
console-data Debian nos proporciona un sistema de reconfiguracin con dilogos.
Otro aspecto relacionado con el teclado es el tema de las diresis, acentos, etc. Todo esto lo podemos configurar a
partir del fichero de /etc/inputrc (todas las directivas posibles de este fichero las tenemos especificadas en el manual
de readline). La que nos puede ser ms til es la de convert-meta, que desactivndola (set convert-meta
off) nos permite utilizar los acentos y diresis (para el cataln).
Finalmente, otra configuracin importante (indirectamente relacionada con el teclado) es la de locales. Con locales
podemos configurar la zona o zonas geogrficas a las que estamos para poder utilizar teclas especiales en el teclado, ver
las fechas en el formato al que estamos acostumbrados, etc. Esta configuracin es utilizada por muchas de las libreras del
sistema, de forma que en muchos comandos y aplicaciones del sistema, se utilizar su configuracin para adaptar algunas
funciones a nuestro entorno local. Su configuracin la podemos encontrar en /etc/locale.gen y podemos utilizar
los comandos locale-gen y locale para verla o actualizarla. En Debian tambin podemos utilizar dpkg-reconfigure
locales para reconfigurarlo, con lo que se nos guiar a partir de un sistema de dilogos.

6.5.2. Tarjeta de red (tipo Ethernet)


Para configurar una nueva tarjeta de red (tipo Ethernet) o NIC (Network Interface Card) lo primero que debemos hacer
es aadir el mdulo del ncleo necesario para que se reconozca adecuadamente. Aunque en algunas tarjetas es posible que
no tengamos que realizar este paso porque el mismo ncleo ya puede estar compilado para reconocer las ms habituales
debemos asegurarnos (antes de comprar la tarjeta) que existe el driver o mdulo necesario para ella.
Con discover -module Ethernet podemos saber qu mdulo necesita nuestra tarjeta de red. Si queremos
dejarlo configurado para que se cargue siempre deberamos escribirlo en /etc/modules (sino, con modprobe o
insmode podemos insertarlo).
Una vez el sistema reconoce la tarjeta ya podemos configurarla de la forma que queramos. En el fichero /etc/network/
interfaces podemos especificarle toda su configuracin, dnde tambin tendremos la de todas las otras interfcies del
sistema. Una interficie es un dispositivo (real o lgico) relacionado con la red a partir del cual el sistema se puede comunicar con otros ordenadores, ofrecer unos determinados servicios, etc. Son las puertas que tiene el sistema para poderse
comunicar. Para cada interfcie reconocida en el sistema, en este fichero se le especifican las directivas necesarias para su
correcto funcionamiento. Vamos a verlo con un ejemplo:
#Interfcie de loopback
auto lo

6.5. CONFIGURACIN DE DISPOSITIVOS

69

iface lo inet loopback


#NIC
auto eth0
iface eth0 inet static
address 192.168.0.10
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1

#opcional
#opcional
#opcional

La primera entrada que encontraremos en este fichero suele ser para la interfcie de loopback. Esta interfcie 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 comunicacin de forma interna. De esta forma, si probamos funciones de la red sin comunicarnos
con ningn otro ordenador no hace falta ni tan solo tener una tarjeta de red instalada. En todas las entradas encontramos la
directiva de auto antes de especificar la configuracin del dispositivo. Esta directiva indica que la tarjeta se puede montar
automticamente cuando el sistema arranca. La directiva de iface especifica el tipo de tarjeta y protocolo que se utilizar
con ella con la siguiente sintaxi: iface dispositivo familiaProtocolo mtodoConfiguracin. Con
las tarjetas Ethernet el dispositivo ser ethX, dnde la X ser un nmero empezando por 0, que indica el nmero de
tarjeta instalada en el ordenador. La familia del protocolo de comunicacin utilizado con la tarjeta suele ser cualquiera de
los siguientes:
inet: IPv4, utilizado en Internet y la mayora de redes locales.
inet6: IPv6, la nueva versin de IPv4, que poco a poco se va instaurando.
ipx: para redes NovellTM.
Finalmente, en el ltimo campo se indica como se obtiene la configuracin de red de la tarjeta (su direccin, la red
dnde est, el gateway a utilizar, etc.). En la siguiente tabla podemos ver cules son estas opciones para la familia de
protocolos inet:
CONFIG
loopback

OPCIONES

static
address
netmask
broadcast
network
gateway
dhcp
hostname
leasehours
leasetime
vendor
client
bootp
bootfile
server
hwaddr
ppp
provider

DESCRIPCIN
Mtodo para definir la interfcie de loopback (se debe utilizar con la interfcie
lo).
Mtodo para configurar una NIC con una direccin IP esttica.
Direccin IP de la interfcie. Campo requerido.
Mscara de la direccin IP. Campo requerido.
Direccin de broadcast. Si no se especifica se calcula automticamente.
Direccin de identificacin de red. Slo requerida para versiones del ncleo
2.0.X.
Direccin IP del gateway que utilizamos para esta interfcie.
Mtodo para configurar de forma remota la IP de todos los ordenadores de una
red local (Dynamic Host Configuration Protocol).
IP del servidor de DHCP.
Tiempo, en horas, de alquier de la IP (pasado este tiempo se renueva).
Tiempo, en segundos, de alquier de la IP.
Identificador de tipo de servidor (en general, dhcpd).
Identificador del tipo de cliente (en general, dhcpd).
Mtodo para configurar de forma remota la IP de todos los ordenadores de una
red local (BOOT Protocol). Actualmente se utiliza ms DHCP.
Fichero a utilizar en el momento de arranque.
Direccin IP del servidor de BOOTP.
Direccin MAC del servidor BOOTP.
Mtodo utilizado con el protocolo Point to Point Protocol, usado en los
mdems.
Proveedor del servicio.

70

CAPTULO 6. CONFIGURACIONES BSICAS

A partir de las versiones 2.2 del ncleo Linux ya se puede utilizar una nueva infrastructura de red denominada
iproute2. Con ella podemos manipular todos los aspectos relacionados con nuestras NIC y las tablas internas que utiliza el operativo para manejar todo lo relacionado con la red.
Aunque en este captulo no entraremos en redes de computadores, debemos saber que disponemos de muchos comandos para manejar la configuracin de red del sistema operativo. Los ms importantes son ifconfig, con el cual
podemos ver los dispositivos configurados, ifdown e ifup, que nos permiten apagar o encender la interfcie que queramos y route, que nos muestra la tabla de routing del sistema.

6.5.3. Tarjeta WiFi


Las redes de comunicacin sin cables son cada vez ms frecuentes, tanto en instalaciones domsticas como en instituciones, escuelas o empresas. Para la instalacin de las mismas se debe disponer de lo que denominamos puntos de acceso,
que son unos dispositivos conectados a la red fsica de la institucin. Estos puntos de acceso permiten que, a partir de unas
tarjetas PCMCIA, cualquier ordenador de 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
aadir al ncleo del sistema los mdulos orinoco_cs y hermes, que en muchos casos ya vienen compilados en el
mismo ncleo. Toda la configuracin de estas tarjetas se guarda en los ficheros del directorio /etc/pcmcia/. Lo nico
que debemos aadir en el fichero /etc/pcmcia/config.opts es (dependiendo de la tarjeta deberamos 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 dispositvo ms del sistema. Si no tenemos ninguna otra tarjeta Ethernet instalada se referenciar como eth0, eth1 si ya tenemos una, etc. A continuacin, lo
nico que nos faltara para que la tarjeta se conecte al punto de acceso sera editar el fichero /etc/network/interfaces
y aadirle la configuracin necesaria para que se le asignara una IP. Naturalmente, esta interfcie del sistema la podemos
tratar como cualquier otra, utilizando los mecanismos de firewall del sistema, con las aplicaciones iproute2, etc.

6.5.4. Mdems
Para la configuracin de un mdem generalmente se suele utilizar la aplicacin pppconfig, que escribe los archivos
de configuracin necesarios para el daemon del sistema ppp, que es el programa encargado de establecer la conexin a
Internet. Con pppconfig (o aplicaciones similares) siempre se deben realizar unos determinados pasos, que detallamos
a continuacin (para nuevas conexiones):
1. Nombre del proveedor: el proveedor es la empresa con la que tenemos el contrato de conexin a Internet. Este
nombre sirve para poder identificar cada conexin que configuremos de forma nica.
2. Configuracin de servidores de nombres: cuando establecemos el contrato con nuestro proveedor, generalmente
se suelen proporcionar la/s IP/s de los servidores de nombres que deben utilizarse. Si tenemos estas IPs debemos
indicar que utilizamos una configuracin esttica, con lo cual seguidamente se nos pedirn estas IPs. Slo en el caso
que nuestro proveedor nos indique que la configuracin de DNS es dinmica, debemos escoger este otro tipo de
configuracin. Con la tercera opcin, que nos informa que DNS ser tratado por otros medios, podemos utilizar la
configuracin del fichero /etc/resolv.conf.
3. Mtodo de autentificacin: el mtodo de autentificacin puede ser PAP o CHAP. Generalmente los proveedores
suelen utilizar el PAP (Peer Authentication Protocol), aunque si no funcionara deberamos informarnos adecuadamente.
4. Nombre de usuario y contrasea: sta es la informacin que nos proporciona el proveedor para poder conectarnos
y acceder a sus servicios.

6.5. CONFIGURACIN DE DISPOSITIVOS

71

5. Velocidad del mdem: segn qu mdem tengamos podremos acceder a Internet a ms o menos velocidad. Actualmente todos van a 115200 bps, con lo que lo ms recomendable es dejar el valor 115200. Si tuviramos un
mdem ms lento ya se suele detectar y reconfigurar automticamente en el momento de la conexin.
6. Llamada con pulsos o tonos: la mayora de centralitas telefnicas ya funcionan con tonos, aunque en determinadas
zonas rurales an se utiliza el antiguo sistema de pulsos.
7. Nmero de telfono: este nmero tambin debe propocionarlo el proveedor de Internet.
8. Puerto de comunicacin: el puerto de comunicacin es el puerto en el cual tenemos conectado el mdem. Si le
indicamos que lo detecte automticamente, se realizar un chequeo de todos los puertos y se configurar automticamente. Sino podemos indicarlo con /dev/ttySX dnde la X es un 0 para el COM1, un 1 para el COM2,
etc.
Toda esta configuracin se suele almacenar en los archivos situados en el directorio /etc/ ppp/. Aunque tambin
podemos editar estos ficheros y cambiar las directivas manualmente, es ms recomendable utilizar alguna aplicacin
automtica ya que su configuracin es bastante compleja. Para establecer la conexin con nuestro proveedor, deberamos
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 insercin de un mdulo del ncleo del sistema para poder funcionar correctamente.
Si tenemos instalada la aplicacin discover podemos descubrir qu mdulo es el que corresponde con nuestra tarjeta
con el comando discover -module sound. Para instalar el mdulo podemos utilizar los comandos insmod o
modprobe y si queremos dejarlo configurado permanentemente deberamos escribirlo en el fichero /etc/modules.
Aunque con la inclusin del mdulo correspondiente ya podremos utilizar la tarjeta de sonido adecuadamente, generalmente tambin se suele instalar la infrastructura de sonida ALSA (Advanced Linux Sound Architecture). ALSA es
un proyecto que ha desarrollado mucho software relacionado con aplicaciones de tratamiento de sonido, nuevos mdulos
para el ncleo Linux, etc. Generalmente, la mayora de distribuciones lo suelen incluir por defecto, aunque si no es as se
puede instalar con el paquete correspondiente.

6.5.6. Impresora
En GNU/Linux la configuracin de impresoras se puede realizar con muchas aplicaciones diferentes. Aunque el lpd
(Line Printer Daemon) fue uno de los primeros programas de gestin de impresin que aparecieron en los sistemas tipo
UNIX, actualmente existen muchsimos otros de ms fcil configuracin y gestin. A continuacin comentamos algunos
de los ms utilizados:
lpd: uno de los primeros daemons de impresin de los sistemas tipo UNIX. Su configuracin debe realizarse
manualmente.
lpr: la versin de BSD del lpd. Es muy recomendable utilizar algn tipo de filtro automtico como magicfilter
o apsfilter para configurar las impresoras. Este tipo de filtro detecta automticamente el tipo de fichero a imprimir y prepara la impresin adecuadamente (utiliza un filtro llamado IFHP).
lprng: aplicaciones basadas en lpr con la ventaja que incorpora una herramienta de configuracin denominada
lprngtool que permite realizar la configuracin de forma grfica y sencilla.
gnulpr: la versin de GNU del sistema de impresin lpr. Tambin incorpora herramientas grficas de configuracin, gestin de los servicios, etc.
CUPS: de Common UNIX Printing Systems, este conjunto de aplicaciones es compatible con los comandos de
lpr y tambin sirve para redes WindowsTM . Utiliza un conjunto de filtros propios y soporta la gran mayora de
impresoras del mercado.

72

CAPTULO 6. CONFIGURACIONES BSICAS

Aunque todas estas aplicaciones tienen sus propios mtodos de configuracin, todas utilizan el fichero /etc/printcap
para guardarla. Generalmente tambin utilizan algn tipo de daemon para que el sistema de impresin sea operativo. El
daemon se puede configurar para que el ordenador dnde la impresora est conectada sirva como servidor de impresin.
De esta forma, varios ordenadores de la misma red podrn utilizar la misma impresora, ahorrando recursos. Para los
clientes de impresin se pueden utilizar los mismos programas especificando, en la configuracin, que la impresora es
remota (generalment se debe proporcionar la IP del servidor de impresin y la cola).
Si quisiramos configurar un servidor de impresin para redes Windows TM o configurar una impresora de un servidor
WindowsTM desde un cliente GNU/Linux deberamos utilizar otro tipo de programas. Samba es un conjunto de aplicaciones de GNU/Linux que utilizan los protocolos de las redes Windows TM. Aunque sus funcionalidades van mucho ms
all de la configuracin de un servidor o cliente de impresin, para poder utilizar impresoras en Windows TM tendremos
que utilizar este conjunto de aplicaciones o bien las que nos proporciona CUPS.
Al configurar un servidor de impresin es importante que configuremos adecuadamente desde qu mquinas/usuarios
permitimos la impresin. De otra forma un atacante podra aprovechar la vulnerabilidad y aprovechar nuestros recursos,
dejar la impresora sin papel, etc.

Captulo 7

Daemons y runlevels
7.1. Los daemons
Como ya sabemos, GNU/Linux nos permite ejecutar simultneamente tantos procesos como queramos repartiendo
equitativamente el tiempo de la CPU entre ellos. De hecho, el mecanismo de manejo de procesos tambin debe tener en
cuenta lo que se llaman interrupciones. Una interrupcin es una seal que llega al ncleo del sistema desde cualquiera
de los dispositivos que tenemos instalados en nuestro ordenador. Estas interrupciones suelen estar vinculadas a algn
proceso en concreto, de forma que el ncleo debe despertar el proceso en cuestin (si no est en ejecucin) y redirigirle
la interrupcin para que la procese adecuadamente. Un ejemplo tpico de interrupcin es cuando apretamos una tecla
del teclado o movemos el ratn: al hacerlo, el dispositivo enva una seal que debe ser redirigida hacia la aplicacin
correspondiente para que sea tratada de forma adecuada.
Para poder manejar adecuadamente todas las interrupciones que se producen, el ncleo no escucha permanentemente
a los dispositivos del sistema esperando sus seales. En lugar de eso, el sistema ejecuta las operaciones de los procesos en
cola de ejecucin y slo cuando se produce una interrupcin atiende al dispositvo 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 fundamental para cualquier sistema operativo ya que es este mecanismo, entre otros, el que nos permite
mantener en ejecucin tantos procesos como queramos y, en cuanto lleguen las interrupciones, despertar a los procesos
que las estn esperando (figura 7.1).
Un daemon (Disk And Execution MONitor) es un proceso que, generalmente, tenemos cargado en memoria esperando
alguna seal (provinente de una interrupcin de dispositivo o del mismo ncleo) para que sea despertado y ejecute las
funciones necesarias para tratarla. Aunque esta definicin tambin puede encajar con otros procesos del sistema (lanzados
por los usuarios o por el mismo sistema) un daemon tambin suele ajustarse a esta forma de ejecucin (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 podremos trabajar con el ordenador sin problemas.
Aunque un daemon sea un proceso como cualquier otro que se ejecuta en modo background, la forma como los
organizamos y tratamos s que es diferente del resto de comandos y programas del sistema. Generalmente, todos los
daemons tienen un shell script situado en el directorio /etc/init.d/ que nos permite iniciarlo, pararlo o ver su
estado de ejecucin. Los shell scripts de los daemons no son ms que una herramienta para facilitar todo su proceso de
arranque, parada, etc. En algunos casos, tambin podemos utilizar el mecanismo y organizacin de estos daemons para
poder ejecutar ciertas operaciones que nos interesen (escribiendo un shell script que se ejecute al entrar en un determinado
nivel de ejecucin). Para realizar algunas de estas funciones debemos ejecutar el shell script correspondiente al daemon
que queramos tratar pasndole alguno de los siguientes parmetros:
start: para iniciar el daemon. Si ste ya estuviera ejecutndose se muestra un mensaje de error.
stop: para parar el daemon. Si no estuviera ejecutndose se muestra un mensaje de error.
restart: reinicia el daemon. Sirve para que se vuelvan a leer los archivos de configuracin del mismo.
reload: aunque no todos los daemons lo permiten, este parmetro sirve para poder recargar los archivos de
configuracin sin tan siquiera tener que pararlo.
73

CAPTULO 7. DAEMONS Y RUNLEVELS

74

procesos en cola de ejecucin

CPU

DISPOSITIVO

ncleo
ejecutndose

procesos suspendidos
(en espera de una seal)

procesos en cola de ejecucin

CPU

DISPOSITIVO

ncleo
ejecutndose

INTERRUPCIN
procesos suspendidos
(en espera de una seal)

procesos en cola de ejecucin

CPU
el ncleo trata la
interrupcin y la redirige
al proceso correspondiente
(si est suspendido lo
despierta y lo pone en la
cola de ejecucin)

DISPOSITIVO

procesos suspendidos
(en espera de una seal)

Figura 7.1: Interrupciones.

Para ejecutar un daemon debemos llamarlo con su ruta completa (/etc/init.d/ nombreDaemon) y pasarle el
parmetro que nos interese. Algunas distribuciones incorporan el comando service, que permite hacer lo mismo sin
tener que especificar la ruta completa.
La mayora de estos scripts utilizan un programa llamdo start-stop-daemon que nos proporciona el sistema
operativo y que sirve para el tratamiento de estos procesos. Es habitual que al administrar un servidor tengamos que
disearnos nuestros propios daemons para realizar alguna tarea concreta. En el directorio donde se sitan todos los shell
scripts de los daemons tambin se suele encontrar uno de ejemplo (/etc/init.d/skeleton) para que lo podamos
utilizar cuando necesitemos configurar uno nuevo que no est en la distribucin. Generalmente suelen estar programados
de la siguiente forma:
#! /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
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 "

7.2. LOS RUNLEVELS

75

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-reload}" >&2
exit 1
;;
esac
exit 0
Como vemos, en las variables declaradas al inicio del shell script especificamos qu PATH es necesario para el proceso
del daemon, el programa a ejecutar (DAEMON), el nombre que le damos (NAME, que se debe ser igual que el nombre del
shell script) y su descripcin (DESC). Lo nico que hace el cdigo al arrancar el daemon es escribir en el directorio
/var/run/ un fichero con el PID del proceso. Al pararlo se va a buscar este PID y se enva la seal de finalizacin al
proceso correspondiente. Naturalmente, encontraremos shell scripts preparados para realizar muchsimas ms operaciones
con el daemon a tratar, aunque como mnimo todos deben tener esta estructura.
Aunque los daemons son programas como cualquier otro, su programacin difiere un poco de las aplicaciones de
usuario porque deben incluir funciones para quedar suspendidos y esperar seales para que sean despertados, etc.

7.2. Los runlevels


Los daemons que tengamos ejecutndose en un determinado momento nos marcan los servicios que el sistema operativo est ofreciendo y/o recibiendo. El hecho que podamos tener tantos daemons diferentes hace que tengamos que
plantear su organizacin de forma adecuada. Entenderemos un runlevel (o nivel de ejecucin) como la ejecucin de unos
determinados daemons que a su vez proporcionan unos determinados servicios. En la instalacin de un servidor es habitual disear una configuracin para que en determinados momentos se pueda ofrecer determinados servicios y en otros no.
Para permitir este tipo de funcionamiento, el sistema operativo nos proporciona diferentes niveles de ejecucin para poder
adaptarlos a nuestras necesidades.
Aunque podemos configurarnos el nmero de niveles de ejecucin que queremos y la funcionalidad de cada uno de
ellos, generalmente los sistemas like UNIX nos proporcionan 6 de diferentes con las siguientes propiedades:
NIVEL
0
1

2 5

Funcionalidad
El nivel de ejecucin 0 est configurado para parar el sistema.
Este nivel es denominado como single user ya que slo permite
la entrada al sistema al root del mismo. Se arrancan los daemons
mnimos y sirve para tareas de mantenimiento.
Los niveles del 2 al 5 estn destinados para ser configurados
segn las necesidades de cada instalacin. Al instalar el sistema, por defecto todos son iguales. Estos niveles tambin se
llaman multiusuario ya que, por defecto, permiten que ms de
un usuario trabaje en el sistema.
El ltimo nivel est preparado para reinicar el sistema. Es muy
parecido al 0 pero se aade una funcin de reinicio.

CAPTULO 7. DAEMONS Y RUNLEVELS

76

El comando necesario para cambiar de nivel de ejecucin es init (le pasamos como parmetro el nivel de ejecucin
que queramos) y para ver en qu estamos runlevel. Los comandos halt, reboot, shutdown o poweroff lo
nico que hacen es llamar al nivel de ejecucin 0 o 6 realizando, antes, alguna operacin concreta (ver su manual para
ms informacin). Slo el root del sistema puede utilizar todos estos comandos.
La forma como se organizan estos daemons en cada nivel de ejecucin es muy simple. Cada nivel de ejecucin tiene
un directorio situado en /etc/rcX.d/ donde la X es el nmero de nivel. En estos directorios encontramos enlaces
simblicos 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 accin a realizar: si el
enlace empieza por S (Start) indicamos que queremos iniciar el daemon, mientras que se empieza por K (Kill) indica
que queremos pararlo. Si el nombre no empieza por ninguna de estas letras, el sistema no hace nada con l. Despus de
esta letra se pone un nmero 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 estn en ejecucin antes de ser iniciados.
Al cambiar de nivel de ejecucin el sistema inspeccionar los daemons del directorio correspondiente y empezar,
primero, parando los daemons indicados y, despus, iniciar los dems. Lo nico que se hace es llamar al daemon pasndole como parmetro start o stop, de forma que si paramos alguno que no se est ejecutando en el momento de parada
no pasara nada porque el mismo shell script lo tiene en cuenta. Esto nos sirve para poder cambiar de nivel de ejecucin
sin tener en cuenta el nivel anterior al que estbamos. En la figura 7.2 podemos ver un ejemplo de configuracin para 3
niveles de ejecucin:
DAEMONS EJECUTNDOSE

NIVEL DE EJECUCIN 2
K50sshd
K51apachessl
K52tftpd
K53telnet

S10sysklogd
S12kerneld
S20dhcpd
S50proftpd
S90apache

sysklogd
kerneld
dhcpd
proftpd
apache

NIVEL DE EJECUCIN 3
K50dhcpd
K51proftpd
K52apache
K53tftpd
K53telnet

S10sysklogd
S12kerneld
S20sshd
S50apachessl

sysklogd
kerneld
sshd
apachessl

NIVEL DE EJECUCIN 4
K50dhcpd
K51proftpd
K52apache
K53tftpd
K53telnet

S10sysklogd
S12kerneld
S20tftpd
S50telnet

sysklogd
kerneld
tftpd
telnet

Figura 7.2: Runlevels.

En el fichero /etc/inittab tenemos definida toda la configuracin de los runlevels: el nivel de ejecucin por
defecto, el nmero de consolas disponibles en cada uno de ellos, etc. Cada lnea del fichero es una directiva con la sintaxi:
id : runlevels : action : process . El primero campo es el identificador de la directiva,
seguidamente encontramos en qu niveles de ejecucin es vlida esta directiva, la accin a realizar y el proceso a lanzar.
En el siguiente ejemplo explicamos como configurar algunas de estas directivas:


# El nivel de ejecucin por defecto (en este caso, el 2)


id:2:initdefault:
# Scripts a ejecutar al arrancar el sistema (antes
# de entrar en el nivel de ejecucin por defecto)
si::sysinit:/etc/init.d/rcS

7.3. EL ARRANQUE DEL SISTEMA

77

# Programa que se llama al entrar en el nivel de ejecucin


# single user (la accin wait indica que se lanza el
# proceso y no se hace nada ms)
~~:S:wait:/sbin/sulogin
# Configuracin de los diferentes niveles de ejecucin
# 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
# Definicin de las consolas abiertas en cada
# nivel de ejecucin (la accin respawn indica
# que al terminar la ejecucin 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

Como vemos, en este fichero se configura todo lo referente a los niveles de ejecucin de forma muy flexible pudiendo
cambiar lo que nos interese para adaptarlo ms a nuestras necesidades. Fijmonos que aunque aqu definamos el nivel de
ejecucin por defecto, tambin lo podramos especificar al arrancar el sistema con el Lilo o Grub. Esto es muy til, por
ejemplo, cuando tenemos problemas graves en el sistema que no nos permiten arreglarlos adecuadamente; si arrancamos
con el primer nivel (pasando 1 o single al Lilo o Grub) slo se iniciarn las funciones ms necesarias y podremos
entrar para arreglar lo que haga falta. En este fichero tambin podramos configurar un terminal que se comunicara con
el sistema a partir de un mdem y otro ordenador con la directiva T1:23:respawn:/sbin/ mgetty -x0 -s
57600 ttyS1. De esta forma, podramos tener una consola del sistema en otro terminal comunicndonos con una
lnea telefnica.

7.3. El arranque del sistema


El proceso padre de todos los dems es el init. Este proceso se encarga de arrancar todos los otros que tengamos en
el nivel de ejecucin configurado. Antes de entrar en este nivel, pero, 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 (carga del mapa de caracteres, carga de los mdulos del ncleo, 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 ejecucin configurado por defecto,
parando e iniciando los daemons especificados en l. Una vez aprendida toda esta organizacin, ya podremos adaptar el
arranque del sistema a nuestras necesidades creando y situando los daemons que queramos en cualquiera de los sitios que
hemos visto.

CAPTULO 7. DAEMONS Y RUNLEVELS

78

7.4. Daemons bsicos


Segn la distribucin de GNU/Linux que utilicemos, el mismo proceso de instalacin ya configura unos daemons u
otros. An as, todas las distribuciones suelen incorporar el daemon para el sistema de logs y el de la ejecucin peridica
y retardada de aplicaciones (aunque las configuraciones de los mismos pueden variar un poco). En esta seccin veremos
como funcionan estos tres daemons bsicos y cmo podemos configurarlos. Es importante saber manejar estos daemons
bsicos porque nos pueden ayudar mucho en algunas de las tareas de administracin.

7.4.1. Logs de sistema (sysklogd)


Los logs del sistema son ficheros de traza que un daemon del operativo se encarga de generar para que quede constancia de cualquier accin realizada sobre el mismo (el ncleo del sistema tiene un daemon propio para gestionar sus
logs denominado klogd). El daemon encargado de realizar estas tareas es el sysklogd, la configuracin del cual encontramos en /etc/syslog.conf. Cada lnea de este fichero consiste en una regla con dos campos: el selector y la
accin. Con el selector configuramos de qu servicio queremos tratar los logs y el nivel de prioridad de los mismos. La
accin sirve para indicar hacia dnde queremos redirigir los logs (a un fichero, a una consola, etc.). En las tablas de la
siguiente pgina podemos ver las diferentes opciones vlidas para estos campos.
Generalmente, todos los ficheros de logs del sistema se suelen almacenar en el directorio /var/log/. Aunque la
mayora de ficheros de logs son de texto y los podemos ver con cualquier editor, podemos encontrar alguno de especial
que no guarde sus datos en este formato. Generalmente suelen ser los ficheros /var/log/wtmp y /var/log/btmp,
que son los logs de entrada de usarios en el sistema y de entradas errneas respectivamente. Para ver estos dos ficheros
podemos utilizar los comandos last y lastb. Si tuviramos configurados estos logs en algn otro fichero, tambin
podramos verlos pasando el parmetro -f fichero al comando last (para ver los ltimos registros de entrada de
los usuarios tambin podemos utilizar el comando lastlog).

Servicio
authpriv
cron
daemon
ftp
kern
lpr
mail
news
syslog
user
uucp
local0 7

SELECTOR
significado
Prioridad significado
Mensajes de autorizaciones o de aspectos emerg
El sistema es inutilizable.
de seguridad.
Daemon crond y atd.
alert
La accin se debe realizar de inmediato.
Daemons del sistema sin opciones de logs. crit
Condiciones crticas.
Daemon del servidor FTP (File Transfer err
Condiciones de error.
Protocol).
Mensajes del ncleo del sistema.
warning
Condiciones de emergencia.
Mensajes del subsistema de impresin.
notice
Noticias normales, pero importantes.
Mensajes del subsistema de correo (si lo info
Mensajes de informacin.
tenemos configurado).
Mensajes del subsistema de noticias (si lo debug
Mensajes de debugging.
tenemos configurado).
Logs generados por el mismo daemon syslogd.
Logs de aplicaciones de nivel de usuario.
Mensajes generados por el sistema de
UUCP (Unix-To-Unix Copy Protocol).
Reservados para su uso local.
(los servicios y prioridades se pueden combinar como se quiera)

7.4. DAEMONS BSICOS

Destino
Fichero regular

Pipe nombrado

Consola
Mquina remota
Usuarios
Usuarios on-line

79

ACCIN
explicacin
Se especifica la ruta completa del fichero. Poniendo un - delante no se requiere que el fichero
sea sincronizado cada vez que se escribe en l (aunque se perder el log en caso de fallar la
alimentacin).
Este sistema permite que los mensajes se redirijan hacia una tubera creada antes de iniciar el
daemon de sysklogd con el comando mkfifo. Se indica poniendo el caracter | antes del
nombre del fichero. Es muy til para operaciones de debugging de programas.
Especificando /dev/ttyX dnde X es un nmero de consola o /dev/console los logs se
redirigen a la pantalla especificada.
Para especificar que los logs se redirijan a una mquina remota debemos preceder el nombre del
host remoto con @.
Especificando el nombre de usuario o usuarios (separados por comas) los logs correspondientes
se redirigen a stos.
Con * especificaremos que los logs se redirijan a todos los usuarios que en el momento de
ocurrir el log estn dentro del sistema. sto se utiliza para avisar a todos los usuarios que ha
pasado alguna accin crtica en el sistema.
(las acciones se pueden poner en todos los selectores que se quiera)

Esta forma de tratar los logs permite mucha flexibilidad para configurarlos adecuadamente cuando instalamos un servidor, tarea muy importante para tener controlados los aspectos que ms nos interesan del sistema. An as, si tuviramos
que guardar todos los logs que se generan en un servidor, seguramente al final saturaramos el disco por el tamao siempre
creciente de estos archivos. Para evitar sto se utiliza un sistema de rotacin de logs, que consiste en ir comprimiendo,
cada cierto tiempo, estos ficheros y guardar slo hasta una determinada antigedad. Aunque generalmente se suelen comprimir cada semana y se guardan slo los de uno o dos meses anteriores, podemos configurar todo esto a partir del fichero
/etc/logrotate.conf. Los logs de ciertos servidores y/o aplicaciones tambin se pueden configurar de forma explcita para tener un control ms adecuado de lo que hacen. La configuracin personalizada de logs para estas aplicaciones
suele situarse en /etc/logrotate.d/.
Si quisiramos configurar una consola del sistema para ver todos los logs que se van generando podramos aadir la
lnea *.* /dev/ttySX (donde X es la consola donde queremos ver los logs) al fichero /etc/syslog.conf y
reiniciar el daemon sysklogd.
Internamente, el sistema utiliza unos programas para manejar de forma ms 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 ficheros de logs que tenemos (con el segundo podemos configurar ms opciones que con
el primero). Estos comandos tambin se pueden utilizar para crear nuestros propios ficheros de logs o, si es necesario,
manipular manualmente los del sistema (con el manual de los mismos obtendremos ms informacin sobre su tratamiento
y manipulacin).

7.4.2. Ejecuciones peridicas (cron)


Muchas de las tareas de administracin de un servidor se tienen que llevar a cabo de forma peridica. Tambin
hay muchas acciones, como la actualizacin de los logs o las bases de datos internas que utilizan ciertos comandos,
que necesitan ejecutarse regularmente para su buen funcionamiento. Por este motivo es muy importante que el mismo
operativo nos proporcione alguna herramienta para poder configurar eficientemente todas estas ejecuciones peridicas.
El daemon cron es el que se encarga de manejar todo el sistema de ejecuciones peridicas. Muchas de las aplicaciones
del sistema necesitan de algn tipo de actualizacin peridica, generalmente configurada a partir de este programa. Su
organizacin es muy simple: en el fichero /etc/crontab se guarda la configuracin interna del daemon y en los
directorios /etc/cron.daily/, /etc/cron.weekly/ y /etc/monthly/ los shell scripts de los programas que
se ejecutarn diariamente, semanalmente o mensualmente respectivamente. Tambin existe el /etc/cron.d/, donde le
podemos situar archivos con un formato especial para configurar la ejecucin de determinados programas de forma ms
flexible.
Generalmente, en el fichero /etc/crontab encontramos las siguientes directivas:
SHELL=/bin/sh

CAPTULO 7. DAEMONS Y RUNLEVELS

80

PATH=/usr/local/sbin:/usr/local/bin:
/sbin:/bin:/usr/sbin:/usr/bin
#m h
25 6

dom mon dow


*
*
*

user
root

47 6

root

52 6

root

command
test -e /usr/sbin/anacron ||
run-parts --report /etc/cron.daily
test -e /usr/sbin/anacron ||
run-parts --report /etc/cron.weekly
test -e /usr/sbin/anacron ||
run-parts --report /etc/cron.monthly

La definicin de las variables SHELL y PATH sirven para indicar al daemon qu intrprete de comandos utilizar y cul
hora
daMes
mes
ser su PATH. Las siguientes tres lneas estn formados por los campos: minuto
diaSetmana
usuario
comando . Los cinco primeros indican cuando ejecutar el comando correspondiente (deben ser coherentes) y en el sexto encontramos el usuario que se utilizar para ejecutar el comando especificado
en el ltimo. Fijmonos como en el fichero de configuracin, los comandos que se ejecutan una vez al da, una vez a la
semana o una vez al mes son los encargados de lanzar los shell scripts que se encuentren en los directorios especificados.
Si existe el programa anacron se ejecutan con l, sino se utiliza el run-parts, que aunque no tiene tantas funcionalidades como el anacron tambin sirve para poder ejecutar todos los shell scripts que se encuentren en un determinado
directorio. sta configuracin es la que nos permite toda la estructura de directorios que comentbamos anteriormente. Si
quisiramos, podramos cambiar las directivas de este archivo para adaptarlas ms a nuestras necesidades.


Si instalamos GNU/Linux en un ordenador que no est en funcionamiento todo el da es recomendable tener instalado
el programa anacron porque ejecutar los scripts configurados con el cron adecuadamente (aunque sea en horas
diferentes de las previstas).
Aunque tambin podramos utilizar este mismo fichero de configuracin para poner nuestros propios comandos, es
ms recomendable utilizar la estructura de directorios que nos proporciona el mismo daemon. El nico que no aparece en
esta configuracin es el de /etc/cron.d/, que el daemon ya lo tiene en cuenta automticamente. En este directorio
podemos situarle archivos exactamente con la misma sintaxi que en el /etc/crontab para programar ejecuciones
personalizadas. De esta forma, la flexibilidad es total.
Si para las tareas de administracin peridicas del sistema es recomendable utilizar toda esta estructura, cuando son
los usuarios los que quieren configurar alguna tarea peridica es ms usual utilizar ficheros particulares para cada uno
de ellos. Con el comando crontab podemos pasar los parmetros -u USER -e y automticamente se editar el
fichero de configuracin particular para el usuario especificado. Los ficheros particulares de los usuarios se guardan en el
directorio /var/spool/cron/crontabs/ (de hecho, 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. Utilizando el comando crontab, al grabar el fichero se comprueba que la sintaxi sea correcta.

7.4.3. Ejecuciones retardadas (at y batch)


Si bien el cron nos permite realizar operaciones cada cierto perodo de tiempo, el daemon atd permite ejecutar un
comando o aplicacin en un momento determinado. Todo el sistema de at y batch funcionan con unos mecanismos de
cola de ejecucin (uno para cada uno de los dos). Aunque podemos configurar ms de estas dos, generalmente con ellas ya
tendremos suficiente para realizar cualquier tipo de ejecucin retardada en el sistema. Igual que con el daemon anterior,
podemos configurar qu usuarios pueden utilizarlo o no a partir de los ficheros /etc/at.allow y /etc/at.deny.
En este caso, no tenemos fichero de configuracin explcito para el daemon, sino que es con el comando at que podemos
especificar en qu momento queremos ejecutar cierta operacin con la sintaxi: at -f fichero TIEMPO. Generalmente el fichero suele ser un programa o shell script creado por el mismo usuario dnde se escriben todas las instrucciones
que se quieran ejecutar. La especificacin de TIEMPO puede llegar a ser muy compleja, pudiendo determinar una HORA
con el formato hh:mm, un tiempo a partir del momento de ejecucin con now + XX minutes, etc. (en su manual
se especifican todos los posibles formatos).
Con atq podemos ver qu trabajos tenemos retardados y con atrm podemos borrar alguno de los que est en la cola.
Finalmente, si queremos ejecutar todos los trabajos en la cola del at, podemos utilizar el comando atrun. ste nos
permite pasarle el parmetro -l LOADAVERAGE donde LOADAVERAGE debe ser un nmero que indica a partir de

7.4. DAEMONS BSICOS

81

qu momento de carga del sistema1 se podrn ejecutar los comandos retardados. Esto enlaza directamente con el comando
batch, que sirve exactamente para lo mismo que el at y sigue su misma sintaxi pero sin necesidad de especificar un
tiempo concreto de ejecucin. Las operaciones configuradas en esta cola se llevarn a trmino cuando la carga del sistema
baje a menos de 15.
De esta forma, cuando necesitemos ejecutar un determinado comando en una hora concreta, deberamos utilizar el at,
mientras que para operaciones que queramos realizar sin que entorpezcan el funcionamiento normal del ordenador, deberamos utilizar el batch. En los directorios /var/spool/cron/atjobs/ y /var/spool/cron/atspool/
se guardan los ficheros correspondientes a todos estos trabajos retardados.

1 La carga del sistema es un parmetro que nos indica el grado de actividad del ordenador. Con el comando top podemos ver esta carga de forma
interactiva.

Captulo 8

Instalacin de aplicaciones
8.1. Introduccin
La gestin y manipulacin de los paquetes es un aspecto fundamental en cualquier distribucin de GNU/Linux. Un
paquete es uno o varios programas, libreras o componentes de software empaquetados en un solo archivo preparado
para que sea instalado y integrado en el sistema operativo. En el diseo de cualquier distribucin es muy importante
proporcionar las herramientas necesarias para poder instalar y gestionar adecuadamente estos paquetes. Tambin se deben
proporcionar herramientas, especialmente para los desarrolladores de software, para poder crear de 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 necesitan otros programas para que la aplicacin funcione correctamente,
mientras que los conflictos nos informan de incompatibilidades entre programas instalados y el que queremos instalar.
Los sistemas de paquetes estn diseados de esta forma para facilitar la instalacin de las nuevas aplicaciones ya que
algunas libreras son utilizadas por ms de un programa y no tendra sentido que todas las aplicaciones que las utilizasen
las instalaran de nuevo.
Actualmente, la gran mayora de distribuciones utilizan uno de los dos sistemas de paquetes ms extendidos en el
mundo del GNU/Linux: los deb o los rpm. Por un lado, los paquetes deb son los que la distribucin de Debian GNU/Linux
utiliza en su distribucin, mientras 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 mayora de las
otras distribuciones propias tambin han optado por incorporar alguno de los dos sistemas ya que actualmente la gran
mayora de programas se empaquetan utilizando estos formatos.
Por otra parte, los programas con licencia GPL o similar tambin se suelen distribuir con su cdigo fuente (empaquetados y comprimidos con algn formato estndar, como el tar). A partir de este cdigo fuente tambin podemos instalar
el programa en nuestro operativo, compilndolo y situando los ejecutables en el lugar dnde les corresponda.
En este captulo veremos cmo est organizado el sistema de paquetes de la distribucin Debian por la gran cantidad
de herramientas que se proporcionan y la flexibilidad de su configuracin. En la ltima seccin, aprenderemos cmo
instalar un programa a partir de su cdigo fuente ya que en algunos casos podemos encontrarnos que el programa que
necesitemos no est empaquetado. Esta forma de instalacin era la que se utilizaba siempre antes 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, bsicamente, de dos tipos: los
programas apt (Advanced Packaging Tool) y los dpkg (Debian package). El conjunto de aplicaciones apt sirven para
configurar de dnde conseguimos los paquetes, cules son los que queremos y resolucin de dependencias. Los programas
dpkg sirven para instalar los paquetes, configurarlos, saber cules tenemos instalados, etc. Hay otras aplicaciones, como
dselect o aptitude1 , que sirven para manipular los programas apt y dpkg proporcionando, en un solo entorno,
herramientas interactivas para la manipulacin de los mismos. En la figura 8.1 podemos ver este esquema:
1 Es

ms recomendable utilizar aptitude.

82

8.2. EL SISTEMA DE PAQUETES DEBIAN

83

APLICACIONES apt

configuracin y actualitzacin del origen de los paquetes


(actualitzacin del rbol de dependencias)

dselect
aptitude

APLICACIONES dpkg
(el dselect o aptitude son frontends
de manipulacin de los programas apt y dpkg)
instalacin de aplicaciones al sistema
(tratamiento con ficheros .deb)

SISTEMA OPERATIVO

Figura 8.1: Sistema de paquetes.

Los programas que, en ltima instancia, se encargan de instalar las aplicaciones son los dpkg. Aunque primero apt
se encarga de comprobar las dependencias, dpkg descomprime el fichero .deb y instala el programa. Las aplicaciones
apt nos ayudan a localizar las ltimas versiones de los programas que necesitamos y copian los ficheros de las fuentes de
donde las hayan extrado (FTP, CD-ROM, etc.) en el disco para que se puedan instalar. 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, . . . ).
apt-setup: aplicacin para configurar las fuentes de los paquetes (de dnde los obtenemos).
apt-cache: gestin de la cache de paquetes (directorio dnde se guardan los archivos .deb antes de ser
instalados).
ap-cdrom: aplicacin para gestionar CD-ROMs que contengan paquetes.
apt-get: actualizacin, instalacin o descarga de los paquetes.
Toda la configuracin de apt est en el directorio /etc/apt/. En el fichero /etc/apt/ sources.list es
dnde se guarda la configuracin de las fuentes de los paquetes. Con todas estas fuentes se genera un listado de paquetes
disponibles, que podemos consultar e instalar cuando siempre que nos interese. Generalmente el formato de este archivo
sigue la siguiente sintaxi:
deb http://site.http.org/debian distribucin seccin1
seccin2 seccin3
deb-src http://site.http.org/debian distribucin seccin1
seccin2 seccin3
El primer campo de cada lnea indica el tipo de archivo al que nos referimos: binarios (deb) o cdigo fuente
(deb-src). Seguidamente encontramos la referencia de dnde la fuente de los paquetes, que puede ser un CD-ROM, una
direccin de Internet, etc. El campo de distribucin indica a apt qu versin de Debian GNU/Linux estamos utilizando.
Este campo es importante porque cada versin de la distribucin tiene sus propios paquetes, generalmente incompatibles
con las otras. En los ltimos campos podemos especificar qu tipo de paquetes queremos utilizar. Debian divide todos
los paquetes en diferentes secciones debido a licencias restrictivas de algunos de ellos o a temas legales. Las diferentes
secciones de los paquetes son las siguientes:
Main: la principal seccin de la distribucin2, donde se incluyen todos los paquetes con licencia libre.
Contrib: paquetes con licencia libre pero que dependen de otros no libres.
2 Estos

son los paquetes propios de la distribucin Debian, los otros los proporciona la organizacin Debian para beneficio de los usuarios

84

CAPTULO 8. INSTALACIN DE APLICACIONES

Non-Free: aunque no todos los paquetes de esta seccin no sean libres, muchos de ellos tienen alguna condicin
en su licencia que restringe su uso o distribucin.
Non-US/Main y Non-US/Non-Free: paquetes que no se pueden exportar de los EUA, generalmente porque
utilizan sistemas de cifrado o por problemas de patentes. Aunque la mayora son libres, hay unos pocos que no.
Si cambisemos este fichero de forma manual podramos utilizar el comando apt-get update para actualizar todos los paquetes disponibles en el sistema. Para insertar los paquetes de un CD-ROM en el listado de paquetes
disponibles, podramos utilizar apt-cdrom add, con lo cual se explorara el CD insertado y se actualizara el listado
de paquetes del sistema. Si algunas de las fuentes contuvieran paquetes iguales, al instalarlo la misma aplicacin apt
detectara cual es el ms reciente o el que su descarga implica menos tiempo y lo bajara de la fuente correspondiente.
Con el programa netselect, adems, podramos configurar ms ampliamente todo este sistema de descarga.
Otra opcin muy interesante que nos proporcionan la mayora de distribuciones es la de la actualizacin de paquetes
en los que se ha descubierto algn tipo de vulnerabilidad o fallo en su funcionamiento. Con Debian, tan slo tenemos que
aadir la siguiente lnea 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 crticos, se van poniendo en esta fuente, de forma que con solo ejecutar
apt-get update se avisa de las nuevas actualizaciones que debemos realizar en el sistema y se reinstalan los
paquetes necesarios.
Aunque con los programas dpkg podemos manipular cualquier aspecto de los paquetes instalados en el sistema, crear
de nuevos, modificar los instalados, etc., en este curso slo repasaremos los ms importantes, a nivel de usuario, para que
podamos realizar las operaciones bsicas con ellos. Los principales programas dpkg son los siguientes:
dpkg-divert: nos sirve para manipular el lugar de instalacin de algunos de los paquetes instalados en el sistema.
Muy til para evitar algunos problemas de dependencias.
dpkg-reconfigure: con un mismo paquete deb, muchas veces tambin se incluye algn mecanismo para configurar algunas de las opciones de la aplicacin de forma interactiva. Con esta aplicacin podemos volver a configurar el paquete que le indiquemos con los mismos mecanismos utilizados en su instalacin.
dpkg-scanpackages: este programa sirve para escanear un determinado 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 ms de apt. Muy til cuando bajamos programas no oficiales de la distribucin.
dpkg-scansource: aplicacin con las mismas funcionalidades que la anterior pero para paquetes de cdigo
fuente.
dpkg-split: programa para dividir y unir un paquete en varios archivos diferentes.
Con estos programas podemos manipular de cualquier forma nuestros paquetes. La aplicacin principal, dpkg, es la
que nos permite instalar, listar o eliminar los paquetes del sistema. Para listar todos los paquetes disponibles le podemos
pasar el parmetro -l, con lo cual se mostrar una lista completa de los paquetes y su estado de instalacin (instalados,
instalados pero no configurados, etc.). Si quisiramos ver toda la informacin de un determinado paquete podramos
utilizar el parmetro -p seguido del nombre del paquete, con lo cual se muestran todas las dependencias, conflictos con
otros paquetes, versin, descripcin, etc. Con dpkg tambin podemos utilizar patrones para seleccionar, instalar, eliminar,
. . . los paquetes del sistema.
Para instalar nuevos paquetes podemos utilizar el parmetro -i seguido del nombre del archivo. Si nos d problemas
de dependencias podemos ignorarlas con --ignore- depends=X dnde la X indica la dependencia, aunque
debemos vigilar mucho cmo utilizamos este parmetro porque al ignorar dependencias es posible que el programa
instalado no funcione correctamente. Si slo quisiramos descomprimir el archivo .deb para ver qu contiene tambin
podramos utilizar -x. Para eliminar los paquetes debemos pasar -r seguido del nombre del paquete, que lo elimina
del sistema pero guardando sus archivos de configuracin (con -P se elimina todo).
Otro parmetro muy interesante es el de --force-things X (dnde la X es alguna de las siguientes opciones),
que nos puede ayudar en alguno de los casos que mostramos a continuacin:

8.3. COMPILACIN DE NUEVOS PROGRAMAS

85

auto-select: selecciona automticamente los paquetes que se deben instalar o desinstalar con el nuevo paquete que elegimos.
downgrade: instala el paquete aunque haya versiones ms 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 versin de los paquetes.
conflicts: instala el paquete aunque entre en conflicto con algn otro del sistema.
...:
Aunque todos los programas que hemos ido comentado a lo largo de esta seccin tienen muchsimas otras opciones
y existen muchos otros, con los que hemos especificado ya nos bastar para realizar casi cualquier tarea necesaria con el
sistema de paquetes de la distribucin que utilicemos. Si bien ya hemos comentado que con programas como el dselect
o aptitude ya podremos realizar las tareas bsicas de instalacin y eliminacin de paquetes, es importante conocer
adecuadamente estos otros comandos porque para realizar operaciones especficas o para automatizar los procesos de
seleccin y instalacin pueden ser muy tiles.

8.3. Compilacin de nuevos programas


En la administracin de cualquier servidor es muy probable que en algunos casos nos encontremos que debemos utilizar algn programa que nuestra distribucin no tiene o que necesitemos la ltima versin de un servidor de aplicaciones
que todava no est convenientemente empaquetado, etc. En estos casos, siempre podemos descargarnos el cdigo fuente
del programa y compilarlo manualmente. Es importante que sepamos que es muy diferente compilar un programa para
conseguir su ejecutable que descargar directamente el binario. Cuando compilamos un programa, ste utiliza las libreras
disponibles en el sistema, mientras que si lo desargamos directamente lo ms problable es que no funcione adecuadamente
porque intente utilizar alguna librera no exactamente igual a la que tengamos instalada en el sistema. Es por este motivo
que lo ms recomendable, cuando necesitemos instalar un nuevo programa del que no disponemos del paquete correspondiente, es compilarlo de nuevo. Al compilar un programa es muy problable que necesitemos tener instaladas en el sistema
las fuentes o las cabeceras de las libreras que utiliza. Generalmente, estos paquetes suelen tener el mismo nombre que la
librera pero aadiendo -dev (de desarrollo) al final.
Al bajar las fuentes de una aplicacin nos encontraremos con un fichero empaquetado y comprimido con tar y gzip
o similares. Es usual aadir un fichero llamado README en el cual se explica paso a paso todas las acciones necesarias para
compilar correctamente el programa. Aunque es recomendable leerlo, en la mayora de casos, el proceso de instalacin
siempre es el mismo. El proceso de compilacin de un programa puede durar desde segundos a horas, segn la aplicacin.
Por ejemplo, la compilacin del ncleo Linux va desde 5 o 10 minutos a las 2 horas (segn la versin del ncleo y la
potencia del ordenador).
Lo primero que debemos hacer para compilar el nuevo programa es descomprimirlo y desempaquetarlo. Una vez hecho
esto dispondremos del cdigo fuente estructurado en varios directorios. En su raz, podemos encontrar (o no) un fichero
llamado Makefile. Este archivo indica al compilador qu libreras se utilizan, como se deben compilar los archivos
de cdigo, etc. Si tenemos este Makefile ya podemos compilar el programa ejecutando make. No hace falta que le
pasemos ningn parmetro porque por defecto ya busca el fichero de Makefile y ejecuta las acciones que se especifican
en l. Si el proceso no ha dado ningn error ya podremos mover el ejecutable generado para ponerlo en alguno de los
directorios del PATH configurado para que siempre que lo queramos ejecutar no tengamos que escribir su ruta completa.
Muchos Makefile tambin proporcionan instrucciones para que podamos ahorrarnos este ltimo paso. Generalmente,
ejecutando make install el mismo programa se encarga de situar adecuadamente los binarios y, si existieran, los
archivos de documentacin. Finalmente, si no nos interesara guardar el cdigo fuente del programa ya podemos eliminar
todo el contenido de los directorios creados.
Si el programa no incorpora el archivo de Makefile, generalmente se suele incluir algn shell script para generarar
automticamente este fichero (habitualmente, este script se suele nombrar configure). Al ejecutar este shell script se
comprobar que el sistema tenga instaladas todas las libreras necesarias para una buena compilacin y, si faltara alguna,
se dara un mensaje de aviso. Una vez ejecutado correctamente este shell script ya dispondremos del Makefile, con lo
que el proceso vuelve a ser el mismo que anteriormente. En la figura 8.2 podemos ver todo sto de forma grfica.

CAPTULO 8. INSTALACIN DE APLICACIONES

86

ARCHIVO COMPRIMIDO
gunzip nombreArchivo.tar.gz
tar xf nombreArchivo.tar
descompresin

ESTRUCTURA DE DIRECTORIOS
CON EL CDIGO FUENTE

no existe el MakeFile

existe el MakeFile

EJECUTAMOS EL CONFIGURE
PARA GENERAR EL MAKEFILE
./configure

COMPILAMOS EL PROGRAMA
make

INSTALAMOS EL PROGRAMA
make install

BORRAMOS LOS ARCHIVOS


make clean
rm rf directorioAplicacin

Figura 8.2: Compilacin de un programa.

Aunque la mayora del cdigo fuente de los programas se organiza de la forma como hemos expuesto, tambin es
posible que nos encontremos con otros tipos de instalacin. Hay alguno que incorpora mens, entornos en X o otros
mtodos ms amenos. ltimamente tambin empiezan a aparecer algunas aplicaciones que permiten realizar todo el
proceso de instalacin bajando el cdigo directamente de Internet.

Captulo 9

Taller de configuraciones bsicas


9.1. Introduccin
En el segundo taller aprendimos a instalar un sistema bsico para que, a partir de ste, empecemos a montar un sistema
a medida de nuestras necesidades. ste ser el objeto de estos dos ltimos talleres. En el primero, despus de terminar con
algunos aspectos referentes a la configuracin del sistema de instalacin de paquetes, y quedarn sentadas las bases para
poder instalar las aplicaciones que nos sean necessarias. A continuacin, aprenderemos a utilizar las distintas herramientas
que nos ofrece Debian para la gestin de paquetes, es decir, para instalar, desinstalar, actualizar, etc. aplicaciones, e
instalaremos y configuraremos algunas de ellas, que son comunes y necesarias en la mayora de sistemas tipo UNIX.
El ltimo taller est plenamente orientado al sistema grfico. 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 arranque que sea capaz de gestionar sin problemas
los posibles sistemas operativos que tengamos instalados en nuestro ordenador. Esta cuestin ya se abord someramente
durante en el taller anterior, durante el proceso de instalacin. Si ya tenemos instalado el gestor de arranque y hemos
comprobado su correcto funcionamiento, podemos pasar a la seccin siguiente; pero si no es as, es decir, que para
arrancar nuestro sistema operativo necesitamos del disquet de rescate que creamos durante el proceso de instalacin, ha
llegado el momento de instalar un sistema de gestin de arranque en el disco duro para evitar la tediosa tarea de utilizar
cada vez el disquet. De cualquier forma, siempre es interesante tener instalado un sistema gestor de arranque ya que nos
permitir, entre otras cosas, poder arrancar diversos kernels.
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 correctamete el arranque de cualquier
sistema operativo que tengamos instalado en nuestro ordenador, no obstante, su uso y su configuracin son un tanto
complejos. LILO es el gestor que se dise inicialmente para gestionar los arranques de los kernels Linux, se caracteriza
por tener un sistema de instalacin ms intuitivo, adems de ofrecer la posibilidad de forma sencilla, mediante una sola
lnea de comados, de reestablecer la imagen de la MBR anterior si algo ha ido mal, aspecto muy interesante, sobre todo si
en nuestro 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 si queremos instalar uno, lo primero que debemos hacer
es arrancar el sistema operativo que hemos instalado mediante el disco de arranque y comprobaremos si la aplicacin est
instalada, haciendo, por ejemplo, un man de la aplicacin.

9.2.1. Instalacin de LILO


El archivo de configuracin de LILO se encuentra en /etc/lilo.conf. El archivo est bien documentado, y por
consiguiente, es fcil de modificar, mediante un editor de texto, y adaptarlo a nuestras necesidades. Una vez hayamos
87

CAPTULO 9. TALLER DE CONFIGURACIONES BSICAS

88

hecho las modificaciones que consideremos oportunas, lo que haremos es, ejecutar, como root, la instruccicin lilo para
transferir a la MBR el contenido del fichero de configuracin.
Como medida de precaucin lo que haremos inmediatamente despus es reiniciar el ordenador, por ejemplo mediante
el comando reboot, y comprobaremos que todos los sistemas operativos que tenemos instalados arrancan correctamente.
Si no fuese as, lo que se debe hacer es, volver arrancar nuestro recin instalado sistema operativo (mediante LILO, si
ste es capaz de hacerlo, o mediante el disquet de rescate1 ) y ejecutar la instruccin siguiente para reestablecer la copia
de seguridad del la MRB que LILO ha hecho antes de escribir sobre ella; con ello estaremos en la misma situacin que
estbamos 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 documentacin, empezando por los mans, las FAQs, la documentacin 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 conclusin que: o que LILO no puede o que no sabemos
configurarlo correctamente para arrancar todos los sistemas operativos que tenemos instalados en el ordenador. Ha llegado
el momento de probar con otros gestores, como puede ser grub.

9.2.2. Instalacin de grub


Grub no viene instalado por defecto, y es por este motivo que antes de usarlo debemos proceder a su instalacin.
Para ello podemos proceder a leer las secciones posteriores para informarnos sobre el sistema gestor de paquetes, su
configuracin y su uso, o simplemente, en caso de que durante la instalacin hagamos introducido en la base de datos los
contenidos de todos los CDs o que hagamos optado por una instalacin por red, ejecutar la lnea siguiente:
brau:~# apt-get install grub grub-doc

Si no deseamos instalar el paquete de documentacin, se puede omitir el ltimo parmetro de la lnea anterior.
Una forma recomendable de trabajar con grub es hacer, antes de escribir en la MRB, las pruebas que se estimen
oportunas sobre un disquet, y probar su correcto funcionamiento arrancando desde ste. Para ello lo primero que haremos
es copiar los ficheros necesarios en /boot/:
brau:~# cp /usr/lib/grub/i386-pc/stage* /boot/
brau:~# cp /usr/share/doc/grub/examples/menu.lst /boot/

Una vez hecho esto, editaremos el fichero de configuracin de grub, /boot/menu.lst, y lo adaptaremos a nuestras
necessidades. Esta operacin puede ser un tanto compleja, debido, entre otras cosas, al cambio de nomenclatura en lo que
hace referencia a los discos duros; as pues, para identificar en qu dispositivo se halla un fichero en concreto podemos
ayudarnos del comando find una vez hayamos entrado en el modo de comandos de grub mediante grub. As pues, por
ejemplo, para localizar un fichero, cuya ubicacin seguro que necesitaremos especificar en el fichero de configuracin de
grub, como puede ser /vmlinuz, procederemos de la manera siguiente:
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)
1 El

que hemos utilizado hasta el momento para arrancar el sistema.

9.2. EL GESTOR DE ARRANQUE

89

grub cuenta con muchos ms comandos, para ver un listado de algunos de ellos basta que pulsemos la tecla TAB en la
lnea 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 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 algn comando en concreto basta con teclear help seguido del nombre de dicho comando.
Una buena forma de trabajar sobre nuestro fichero de configuracin de grub, /boot/menu.lst es abriendo una nueva
sesin en una tty distinta e ir modificando dicho fichero a medida que vayamos trabajando sobre la interficie de comandos
de grub.
Una vez hayamos terminado de editar el fichero de configuracin, y tras introducir un disquet virgen en la disquetera,
teclearemos, sustituyendo el carcter X por el nmero de disco duro e Y por la particin correspondientes, la siguiente
lnea de comandos:
grub> install (hdX,Y)/boot/stage1 d (fd0) (hdX,Y)/boot/stage2 p (hdX,Y)/boot/menu.lst

Con la lnea anterior hemos transferido al disquet (fd0) la informacin de la MBR (stage1), grub y su interficie de
comandos (stage2), y el men de arranque que hayamos configurado en en fichero /boot/menu.lst. Estamos, pues,
en condiciones de reiniciar la mquina, arrancar mediante el disquet que acabamos de crear y comprobar si nuestra
configuracin es correcta.
Es muy interesante disponer de un disquet con grub, ya que mediante su interficie de comandos podemos intentar
arrancar directamente los distintos sistemas operativos que tengamos instalados, con el objeto de ir haciendo pruebas
para refinar el contenido del fichero /boot/menu.lst. A modo de ejemplo, se expone el procedimiento a seguir
para arrancar un sistema MicrosoftTMinstalado como (hd0,0) y a continuacin los comandos necesarios para arrancar un
sistema GNU/Linux instalado como (hd1,0):
Para un sistema Microsoft:

grub> rootnoverify (hd0,0)


grub> makeactive
grub> chainloader +1
grub> boot

Para un sistema GNU/Linux:


grub> kernel (hd1,0)/vmlinuz root=/dev/hdc1
grub> boot

Una vez tengamos en nuestro disquet el sistema de arranque definitivo que deseamos implementar, simplemente
debemos transferir esta misma configuracin a la MBR del disco duro de arranque, desde la misma lnea de comados del
disquet teclearemos:
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 ms complejo que LILO, por esta razn se recomienda que antes de
inbrincarse en su instalacin y posterior configuracin, se lea detenidamente los mans y la documentacin que se ha
instalado con el paquete grub-doc, tambin accesible en http://www.gnu.org/software/grub/.

CAPTULO 9. TALLER DE CONFIGURACIONES BSICAS

90

9.3. El sistema de paquetes


Ha llegado el momento de entrar a analizar y de aprender a utilizar el sistema de paquetes de Debian, probablemente
el ms slido 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 resultado. Se expondrn algunas de ellas, con dos objetivos principales: el primero, para que el lector pueda
escoger la que ms le interese, y el segundo, porque es interesante conocer siempre ms de una solucin a un mismo
problema por si, por cualquier motivo, alguna de ellas fallase.
ACTIVIDADES
1. Para la plena comprensin del funcionamiento del sistema de paquetes Debian se recomienda la lectura de:
APT HOWTO: http://www.de.debian.org/doc/manuals/apt-howto/index.en.html
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 mans2 de: apt, apt-cache, apt-get, sources.list, dpkg y dselect.

9.3.1. /etc/apt/sources.list
El archivo /etc/apt/sources.list es el corazn de la configuracin del sistema de paquetes de Debian. Al
tratarse de un fichero de texto, como la mayora de ficheros de configuracin en los sistemas UNIX, lo podemos editar
manualmente, o bien mediate algunas herramientas de las que dispone el sistema para tal fin.
El contenido de este fichero depender en gran medida de la velocidad con que podamos acceder a Internet, si es que lo
podemos hacer. Pero no debemos olvidar en ningn caso ejecutar, una vez hayamos modificado el fichero, la instruccin
siguiente como root:
brau:/etc/apt# apt-get update

Si no lo hicieramos, la base de datos del sistema de paquetes no se actualizara, y en consecuencia, ninguno de los
cambios realizados surgira efecto. En una instalacin donde los paquetes se obtengan de forma remota, este comando
debe ser ejecutado peridicamente par ir actualizando la base de datos; por este motivo no es mala idea incluirlo dentro
del sistema cron.
Cada lnea de este fichero hace referencia a una fuente de paquetes y los campos van separados por un espacio. En
primer lugar especificaremos si la fuente de paquetes es de paquetes binarios deb o si es de cdigo fuente deb-src. En
el segundo campo especificaremos la forma de aceder a estos: cdrom, http, ftp, etc. seguido de la direccin de acceso.
Los campos restantes hacen referencia tipo de paquetes al que queremos acceder por esta lnea.
/etc/apt/sources.list con acceso rpido a Internet
En el mejor de los casos dispondremos de un acceso rpido a Internet. Esto probablemente, ya nos haya permitido
hacer la instalacin del sistema bsico por red, adems de permitirnos disponer siempre de las ltimas versiones de
los paquetes. Se trata, adems de la forma ms cmoda de trabajar con paquetes, ya que no tenemos tan siquiera que
preocuparnos de insertar el CD correspondiente para hacer una instalacin.
De lo que debemos cerciornarnos, antes que nada, es de que el contenido de /etc/apt/sources.list sea
correcto. A continuacin 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
2 Para hacer estas lecturas ms asequibles podemos esperar a realizarlas cuando tengamos configurada la impresora hayamos aprendido a imprimir
mans.

9.3. EL SISTEMA DE PAQUETES

91

Todas las direcciones anteriores son oficiales, es decir, reconocidas por Debian. A parte de estas fuentes tambin
se pueden utilizar paquetes no oficiales, los cuales, por no ser oficiales, no significa que carezcan de calidad suficiente
como para ser incluidos en nuestro fichero de configuracin. Una buena direccin para obtener informacin acerca de la
localizacin de estos paquetes s 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 reconfigurara su base de datos y visualizar por pantalla los distintos accesos que se
realizan, ya tendremos acceso a los nuevos paquetes.
/etc/apt/sources.list sin acceso rpido a Internet
En el caso de no disponer de conexin a Internet o de ser sta lenta, debemos optar, sin dudarlo, por utilizar el juego
de CDs de la distribucin para ir instalando los distintos paquetes. Si durante el proceso de intalacin no hemos insertado
todos los CDs, ahora ha llegado el momento de hacerlo. Insertemos el primer CDROM en el lector y usemos el comado
apt-cdrom para incluir sus contenidos en la base de datos:
brau:/etc/apt# apt-cdrom add
Using CD-ROM mount point /cdrom/
.
.
.
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 CDs de la distribucin 3 .
Una vez tengamos configurado nuestro acceso a Internet, si lo estimamos oportuno, tambin podemos incluir fuentes
de paquetes de acceso reomoto. Para esto editaremos el fichero /etc/apt/sources.list y despues de ejecutrar
apt-get update ya tendremos disponibles los nuevos paquetes.

9.3.2. apt
apt es acrnimo de Advanced Package Tool, como ya se ha dicho en diversas ocasiones es el sistema bsico encargado
de la administracin de paquetes de las distribuciones basadas en Debian. apt pone a nuestra disposicin esencialmente
dos herramientas: apt-get y apt-cache. El primer comando lo puede utilizar nica y exclusivamente el root del
sistema, ya que es la herramienta de gestin de paquetes: instalacin, desinstalacin, actualizacin, etc. mientras que el
segundo, al ser un comando orientado a la bsqueda de informacin dentro de la base de datos, ya sean paquetes instalados
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 sobre 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 administracin de paquetes, debemos conocer algunos conceptos acerca de stos y de su relacin con el
sistema y el sistema de gestin.
Tipos de paquetes segn su prioridad
Dentro del sistema de paquetes se distingue entre cinco tipo de paquetes distintos segn su grado de dependencia con
el mismo sistema. Por orden decreciente de prioridad se clasifican como:
Required: Se trata de paquetes indispensables para el correcto funcionamiento del propio sistema.
Important: Se trata de paquetes que deberan estar presentes en cualquier sistema tipo UNIX.
Standard: Se trata de paquetes que comnmente se encuentran en un sistema GNU/Linux. Se trata, por lo general,
de aplicaciones de tamao 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 hallan todos los paquetes referentes al sistema grfico, ya que ste no se considera indispensable. En
realidad, en muchos servidores, con el objeto de augmentar su redimiento se prescinde del entorno grfico.
3 Puede,

tambin, utilizarse el mismo procedimiento para incorporar datos procedentes de CDROMs no oficiales.

CAPTULO 9. TALLER DE CONFIGURACIONES BSICAS

92

Extra: Son paquetes que, o bien presentan conflictos con paquetes con prioridad superior a la suya, o bien porque
requieren de configuraciones especiales que no los hacen aptos para ser integrados como Optional.
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 aplicacin que queremos instalar dependa de una librera, y, en consecuencia, de otro
paquete que no tengamos instalado. En este caso apt nos informar de esta dependencia y nos preguntar si queremos que,
junto con la aplicacin que vamos instalar, se instale el paquete que contiene dicha librera. Las relaciones entre paquetes
se clasifican de la manera siguiente:
depends: El paquete que queremos instalar depende de estos paquetes y, por consiguiente, si queremos que este
paquete funcione correctamente, debemos permitir que apt instale el resto de paquetes.
recommends: El responsable del mantenimiento del paquete ha estimado que normalmente los usuarios que vayan
a intalar este paquete tambin usaran los que recominenda.
suggests: Los paquetes que se suguieren permiten obtener un mayor rendimiento del paquete que vamos a instalar.
conflicts: El paquete que vamos a instalar no funcionar correctamente si estos otros paquetes estn presentes en el
sistema.
replaces: La instalacin de este paquete implica la desinstalacin de los otros paquetes.
provides: El paquete que vamos a instalar incorpora todo el contenido de los paquetes mencionados.
Podemos determinar las dependencias de un paquete, por ejemplo, la sentencia apt-cache depends
<nombre_del_paquete>.
Acciones sobre los paquetes
Mediante los flags siguientes dpkg o dselect nos informar qu es 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 ficheros de configuracin (comnmente situados
en /etc/).
purge: Se quiere desintalar por completo el paquete, inclusive sus ficheros de configuracin.
hold: Se quiere indicar que sobre este paquete no se quiere que se realice ninguna opercacin (es decir, que se
mantenga hasta nuevo aviso su versin y su configuracin).
Estado de instalacin de los paquetes
Dentro del sistema un paquete se puede hallar:
installed: El paquete ha sido instalado y configurado correctamente.
half-installed: La instalacin del paquete se ha comenzado, pero, por algnuna razn, no ha terminado.
not-installed: El paquete no est instalado en el sistema.
unpacked: El paquete ha sido desempaquetado, pero no configurado.
config-files: Slo existen, en el sistema, los archivos de configuracin de dicho paquete.

9.3. EL SISTEMA DE PAQUETES

93

apt-cache
Como ya se ha dicho, apt-cache, es un comando orientado al anlisis del sistema de paquetes, y por tanto, al no
ser un arma potencialmente peligrosa para el sistema, es accesible a todos sus usuarios. Los parmetros ms utilizados
para este comando son los siguientes:
search pattern: Busca en la base de datos los paquetes cuyo nombre contenga pattern o en cuya Description
aparezca pattern (si el resultado es un lista extensa debido a que pattern es muy general, se puden utilizar pipes i
grep para filtrar estos resultados).
show package: Da informacin acerca del paquete, sus dependencias, y una descripcin del mismo.
policy package: Da informacin acerca del estado de intalacin, la versin y revisin del paquete y su procedencia.
depends package: Explicita las dependencias del paquete.
apt-get
apt-get es el comando que se utiliza para gestionar los paquetes del sistema. Por este motivo su uso est restringuido
al root del sistema. Los parmetros ms utilizados para este comando son los siguientes:
install package: Para instalar el paquete. Si ste depende de paquetes que no se encuentran en el sistema, apt nos
informar de ello, y nos preguntar si junto con el paquete en cuestin queremos instalar los paquetes de los que
depende y que no estn instalados; por lo general es interesante seguir los consejos de apt.
update: Para actualizar la base de datos de apt. Este comando debe ejcutarse cada vez que se modifique el archivo
/etc/apt/sources.list.
upgrade: Para forzar la actualizacin de todos los paquetes instalados en el sistema a la ltima versin disponible.
remove package: Para eliminar el paquete, sin eliminar los ficheros de configuracin, de cara a posibles reinstalaciones.
remove purge package: Para eliminar por completo el paquete, incluyendo sus archivos de configuracin.
autoclean: Para eliminar las copias caducadas de los paquetes que se ha ido instalando, proceso en el cual se
almacena de manera automtica una copia del paquete sin desempaquetar en /var/cache/apt/archives
cuando se instala un paquete. Comando muy til cara a liberar espacio del disco duro, ocupado por ficheros que,
probablemente, nunca ms sean utilizados.
clean: Para eliminar todas las copias no desempaquetadas de los paquetes, independientemente de su vigencia.

9.3.3. dpkg
dpkg es acrnimo de Debian Pckage manager y fue concibido como back-end de apt. Los parmetros ms utilizados
son los siguientes:
-l: Para listar todos los paquetes de la base de datos y su estado de instalacin (generalmente esta opcin 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.
-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 instalacin del paquete.
-S file: Busca a qu paquetes pertenece el fichero.

CAPTULO 9. TALLER DE CONFIGURACIONES BSICAS

94

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 mediante los mens de esta interfice ir selecionando los distintos paquetes sobre los cuales queremos operar
y especificar qu tipo de operacin deseamos hacer sobre ellos.

9.3.5. aptitude
aptitude es otra GUI que corre sobre apt. Por defecto no viene instalada; hay por esto antes de proceder a su uso ya
que instalarla:
brau:/etc/apt# apt-get install aptitude

Una vez instalada, la lanzamos mediante el comando aptitude, y en seguida veremos que su uso es igual o ms
simple que el de dselect ya que dispone de mens desplegables accesibles mediante F10.

9.4. locales: configuracin regional


Aunque aparentemente nuestro teclado funcione correctamente, ya que podemos utilizar acentos, diresis y otros
caracteres no ingleses, a medida que vayamos adaptando el sistema a nuestras necesidades, y especialmente cuando
instalemos el sistema grfico y hagamos correr aplicaciones sobre l en el prximo taller, nos daremos cuenta de que sto
no es as. Podemos pues, en este punto, proceder a configurar correctamente estos aspectos para no tenerlo que hacer ms
tarde.
En primer lugar comprobaremos si el paquete locales est instalado:
brau:/# dpkg -l| grep locales
ii locales
2.2.5-11.2

GNU C Library: National Language (locale) da

Si no obtenemos la ltima lnea, debemos proceder a instalar el paquete y configurarlo:


brau:/# apt-get install locales

Y si ya disponemos de l, teclearemos la siguiente lnea para reconfigurarlo:


brau:/# dpkg-reconfigure locales

De las muchas opciones que se nos ofrecen escojamos [*] es_ES ISO-8859-1, es decir situmonos sobre dicha
opcin y pulsemos la barra espaciadora. Mediante TABsitumonos sobre OK y pulsemos INTRO. En la prxima pantalla
selecionemos C.
De vuelta a la lnea de comandos editemos el fichero /etc/environment para dejarlo de la forma siguiente:
LC_ALL=es_ES
LANGUAGE=en_US
LC_TYPE=es_ES
LC_MESSAGES=ISO8859-1
LANG=C

Para hacer efectivo el cambio basta con teclear el comando locale-gen, y saldremos de todas las sesiones que
tengamos abiertas para cargar la nueva configuracin4.
4 Para

saber ms de locales ser recomineda visitar la pgina http://www.uni-ulm.de/ s_smasch/locale/

9.5. CONFIGURACIN DE MAN Y SU PAGER

95

9.5. Configuracin de man y su pager


Puede que al intentar invocar man nos de 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

En este caso no tenemos ningn paginador assignado a /usr/bin/pager para que man lo pueda utilizar para
mostrarnos los contenidos de ayuda. Es ms, probablemente no tengamos ningun paginador instalado. En ambos casos lo
que haremos es intentar instalar less, seguramente el paginador ms utilizado para man:
brau:/# apt-get install less

En el caso que el paquete no est instalado se nos abrir una pantalla de configuracin, a la que en principio, contestaremos negativamente, opcin por defecto. Con esto, ya habremos instalado less, y probablemente ya se haya asignado l
mismo como paguinador de man. Si no fuese as (lo podramos probar ejecutando un man man, por ejemplo), o si less
ya estuviese instalado, utilizaramos el comando siguiente para assignarlo como paginador (tambin 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 general con el resto de aspectos configurables mediante
l, es crear enlaces simblicos. Para el caso del pagindor estos son:
/etc/alternatives/pager -> /usr/bin/less
/usr/bin/pager -> /etc/alternatives/pager

9.6. El archivo principal de arranque, /etc/inittab


Aunque el proceso de arranque de un sistema GNU/Linux es complejo, en esta seccin slo se pretende trabajar sobre
uno de los ficheros principales de este proceso: /etc/inittab. Este archivo indica al proceso de arranque, entre otros,
a qu runlevel es al que se entrar, y en definitiva, esto definir qu procesos se arrancarn de forma automtica durante
el processo de arranque. Para saber en qu runlevel nos hallamos basta con teclear el comando runlevel. Para cambiar
de runlevel, como root, usaremos la instruccin init <runlevel_de_destino>.
Es interesante abrir este fichero e irse familiarizando con su contenido, ya que esto nos permitir comprender mejor el
processo de arranque de un sistema GNU/Linux.

9.7. Montaje de dispositivos, /etc/fstab


/etc/fstab es el fichero que contiene la informacin acerca de las particiones y dispositivos que se montarn de
forma automtica durante el proceso de arranque, y las que se pueden montar posteriormente, as como establece quin
puede hacerlo. A continuacin se muestra el posible contenido de este fichero y se pasa a analizarlo:
# /etc/fstab: static file system information.
#
# <file system> <mount point>
<type> <options>
/dev/hdg1
/
ext3
errors=remount-ro
/dev/hdg2
none
swap
sw
proc
/proc
proc
defaults
/dev/fd0
/floppy
auto
user,noauto
/dev/hdg5
/usr
ext3
defaults

<dump>
0
0
0
0
0

<pass>
1
0
0
0
2

CAPTULO 9. TALLER DE CONFIGURACIONES BSICAS

96

/dev/hdg6
/dev/hdg7

/var
/home

/dev/cdrom

/cdrom

ext3
ext3

defaults
defaults

0
0

2
2

iso9660 ro,user,noauto

/dev/hdc1
/dev/hde1
/dev/hde5

/mnt/hdc1 ntfs ro,user,noauto,gid=windows,umask=0007,utf8 0 0


/mnt/hde1 ntfs ro,user,noauto,gid=windows,umask=0007,utf8 0 0
/mnt/hde5 ntfs ro,user,noauto,gid=windows,umask=0007,utf8 0 0

/dev/hde6
/dev/hde7

/mnt/hde6 vfat utf8,user,noauto 0 0


/mnt/hde7 vfat utf8,user,noauto 0 0

Las primeras lneas las ha generado automticamente el proceso de instalacin y en ellas podemos ver omo estn
distribuidos los distintos directorios dentro de la estructura puramente GNU/Linux. Quizs la lnea que ms llame la
atencin sea la proc /proc proc defaults 0 0; sta es la encargada del montaje del directorio virtual proc, del
qual ya se habl en el primer taller.
Ms interessantes son las lneas 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 particiones pertenecientes al sistema operativo Windows2000 TM, es decir, de tipo ntfs. En estas particiones no se puede escribir desde GNU/Linux, aunque s se puede leer su contenido, esto se ve reflejado en las opciones
ro,noauto,user,gid=windows,umask=0007,utf8 (es fundamental no dejar ningn espacio en blanco entre
opciones, ya que este carcter es el que se utiliza para separar los campos en este fichero). La primera indica que se trata de
una particin de solo lectura; la segunda, que no se monte automticamente durante el proceso de arranque del sistema; la
tercera indica que esta particin la puede montar cualquier usuario; pero la cuarta opcin indica que slo podrn acceder a
ella los miembros pertenecientes al grupo windows (definido en el fichero /etc/group); la penltima opcin establece
la antimscara de montaje y la ltima la tabla de cdigos a utilizar.
Hay que tener presente que por defecto el kernel que hemos instalado no soporta el tipo ntfs. Por tanto hay que cargar
el mdulo correspondiente mediante el comando modconf y seleccionar la opcin kernel/fs/ntfs.
Las ltimas lneas del fichero anterior van destinadas a montar particiones fat32, sobre las cuales s que es possible
escribir desde GNU/Linux. Por esta razn es buena idea disponer siempre de una pequea particin con este tipo de
formato ya que ser accesible tanto desde GNU/Linux como desde Windows TM.
Si bien es cierto que es possible montar un sistema de ficheros desde la lnea de comandos, como por ejemplo se hara
para montar el CDROM:
brau:/etc/apt# mount /dev/cdrom /cdrom -t iso9660 ro

Es mucho ms cmodo tener la informacin introducida en el archivo /etc/fstab, ya que esto nos perimitir hacer
lo mismo tecleando tan solo:
brau:/etc/apt# mount /cdrom

9.8. Configuracin de dispositivos


Una vez sentadas las bases para la adminstracin de paquetes, podemos abordar la tarea de empezar a configurar el
sistema a medida de nuestras necesidades. Este proceso consta, bsicamente, de dos partes: configuracin de los distintos
dispositivos de hardware que tengamos instalados en el ordenador, e instalacin del software que vamos a utilizar.
La configuracin del hardware del sistema suele ser la parte que cuesta ms esfuerzo en general, ya que en cada
ordenador encontraremos dispositivos distintos, y por tanto cada ordenador ser un mundo. Por lo general, en los sistemas GNU/Linux se puede configurar cualquier dispositivo, por raro que ste sea, aunque en funcin de su grado de
estandarizacin, esto ser ms o menos complicado. Pero tambin es cierto que durante este proceso es cuando ms se
aprende, ya que, por lo general, configurar un dispositivo implicar siempre ciertas tareas previas, como informarnos exactamente sobre qu tipo de dispositivo es el que disponemos, leer documentacin acerca de cmo este tipo de dispositivos
se integran en los sistams GNU/Linux, cmo se hace esta integracin para nuestro dispositivo en particular, etc.

9.8. CONFIGURACIN DE DISPOSITIVOS

97

Dado que no todos los fabricantes de hardware dan soporte a los sistemas GNU/Linux, y los hay que ni tan si quiera
facilitan la informacin necesaria para que los desarrolladores de la comunidad puedan escribir el cdigo necesario para
poder integrar estos dispositivos al sistema operativo se recomienda siempre que a la hora de adquirir hardware nuevo,
previamente nos informemos sobre cal es exactamente el producto que que deseamos adquirir (informacin, en general, mucho ms precisa de la que suelen facilitar los proveedores de hardware, y de la cual, a veces, ni disponen), si
ste est plenamente soportado, de qu infomacin disponemos para integrar el nuevo producto en nuestro sistema, etc.
Los aspectos generales a considerar, a la hora de realizar una nueva adquisicin, a grandes rasgos son dos: el grado de
estandarizacin, y calidad del producto. Por lo que a la estandarizacin se refiere, cuanto ms estndar sea el producto,
seguro que ms usuarios disponen de l y, por tanto se hace mucho ms probable que ste est plenamente soportado. En
cuanto a calidad del producto se refiere, hace ya algunos aos, que algunos fabricantes de hardware, para reducir costes,
empezaron a sustituir funciones que inicialmente se implementaban via hardware por soluciones software (siendo el caso
ms comnmente conocido de esta prctica, quizs, los mdems conocidos como winmdems). Esto se traduce, por una
parte, en una bajada de rendimiento del sistema, ya que presupone cargar a la CPU con nuevas tareas, para muchas de la
cuales ni tan siquiera ha sido diseada y, por otra la necessidad de disponer del software que subplante al hardware eliminado, y que, por lo general, slo est desarrollado para cierto tipo de sistemas operativos; Por esta razn, se recomienda
en general rehuir de cualquier producto que se distinga por ser diseado para un sistema operativo determinado.
A lo largo de cada subseccin de configuracin se irn comentando algunos aspectos sobre los distintos dispositivos
que nos podemos encontrar, y qu problemas lleban implcitos.
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 informacin
acerca de cmo estos dispositivos han sido reconocidos por el sistema durante el proceso de arranque. Si esta informacin
no nos es suficiente, siempre podemos recurrir al directorio virtual /proc/, donde queda registrada toda la informacin
acerca del hardware del sistema, entre otra informacin. Tambin pueden ser de utilidad los ficheros de log, ubicados en
/var/log/ (una prctica interesante para ver cmo evoluciona temporalmente el contenido de estos ficheros es utilizar
el comando tail con el parmetro -f y redireccionar su salida a una tty que no estemos usando; a modo de ejemplo
tail -f /var/log/messages >/dev/tty10).

9.8.1. Configuracin del ratn


Al igual que se ha hecho en el taller de KNOPPIX, el deamon que se en cargar de gestionar el ratn ser gpm.
Procedamos pues a instalar el paquete:
brau:/etc/apt# apt-get install gpm

Al finalizar la instalacin se arranca automticamente un script para asistirnos en la configuracin del ratn, los
parmetros que debemos pasarle son ecencialmente los mismos que le pasamos en su momento en el taller de KNOPPIX,
pero si algo fallase siempre podemos volver a lanzar el programa de configuracin mediante el comando gpmconfig (por
lo general la configuracin -m /dev/psaux -t ps2 debera ser vlida para la mayora de mice de tres bottones
PS2). La configuracin que utilizar gpm cada vez que arranque se guarda en /etc/gpm.conf.
Se recomienda que el ratn tenga tres botones, ya que se acostumbra a asignar funciones a los tres, en especial en
los entornos grficos. Por esta razn, si disponemos de un ratn de tan solo 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 funcionamiento del ratn es un deamon. Por ello tanto
para lanzarlo como para detenerlo, precediremos de la misma forma que se hace con cualquier deamon. Esta subseccin
servir de ejemplo para mostrar cmo 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 ningn parmetro l mismo nos mostrar una lnea de ayuda para orientarnos en su
uso. Procedamos pues a parar el deamon gpm:
brau:/etc/init.d# ./gpm stop
Stopping mouse interface server: gpm

CAPTULO 9. TALLER DE CONFIGURACIONES BSICAS

98

Mediante ps aux podemos comprobar que, efectivamente, no hay ningn processo llamado gpm corriendo, y
adems podemos ver que si movemos el ratn no se muestra nada por pantalla. Ahora procedamos a arrancarlo:
brau:/etc/init.d# ./gpm start
Starting mouse interface server: gpm

Movamos el ratn y observemos como en pantalla aparece su puntero. Ahora procedamos a analizar si al arrancar el
ordenador este deamon se arrancar automticamente. El fichero /etc/inittab nos indica en qu runlevel se arrancar
el sistema operativo: por defecto el 2; por lo tanto en dicho archivo deberamos encontrar una lnea como la que sigue:
# The default runlevel.
id:2:initdefault:

Comprobemos pues si en el directorio /etc/rc2.d/ existe un enlaces simblico 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 simblico no existiera, y desesemos que gpm se arrancase automticamente durante el proceso de arranque, deberamos crearlo manualment mediante ls -s. Si por el contrario, el enlace existiera y no desesemos que
gpm se arrancara durante el proceso de arranque bastara con borrar este enlace simblico; 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. Configuracin de mdems


Al igual que el resto de hardware, los mdems se pueden configurar de modo totalmente manual, pero esta prctica, en
general, ha pasado a formar parte del pasado, ya que con el tiempo se han ido desarrollando herramientas suficientemente
potentes y fiables que nos pueden ayudar a ahorrarnos la tediosa tarea de configurar un mdem manualmente. Una de
estas herramientas es pppconfig, que es la que se propone en este texto para configurar nuestro mdem.
Pero antes de empezar con la configuracin de nuestro mdem hay que poner de manifiesto que no son realmente
mdems 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 fsicos por software, siendo, probablemente los
mdems los primeros dispositivos que histricamente fueron vctimas de estas prcticas 5 . Por esta razn muchos de
estos dispositivos se han visto reducidos a meros esclavos de su software (para ms informacin acerca de estos dispositivos, y de su integracin en GNU/Linux vase6 . Por ello, en general se recominenda utilizar, siempre que sea possible mdems externos. Independientemente de que se disponga de un mdem 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 mdem, si no lo instalamos durante el proceso de instalacin del sistema (se puede probar intentando lanzar la aplicacin directamente, es decir, tecleando pppconfig, o
mediante dpkg -l | grep pppconfig), lo primero que debemos hacerlo es instalar la aplicacin:
brau:~# apt-get install ppp pppconfig

Una vez estemos en la pantalla principal de la interfaz de instalacin, seleccionaremos la opcin Create Create
a connection y en la pantalla siguiente introduciremos el nombre con el que nos referiremos a esta configuracin ya
que es posible configurar y gestionar ms de una conexin.
Despus de asignar un nombre a la nueva configuracin debemos configurar el accesso al DNS, podemos escoger la
opcin por defecto, asignacin esttica de DNS, o por asignacin dinmica de DNS, si sabemos certeramente que nuestro
ISP durante el processo de conexin nos facilita las direcciones de los DNS. Si escogemos la opcin por defecto se nos
5 Hay que prestar especial atencin a los mdems internos, ya que en realidad son pocos los que incorporan todo el hardware propio de estos
dispositivos. stos son facilmente reconocibles por la diferencia de precio con respecto a los falsos mdems.
6 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

9.8. CONFIGURACIN DE DISPOSITIVOS

99

pedir que entremos las IP de los DNS que queremos utilizar, y que se almacenarn en el fichero /etc/ppp/resolv/
nombredeconfiguracion).
En la pantalla seguiente debemos escoger el mtodo de autenticacin para establecer la configuracin. En general, y
salvo casos excepcionales, escogeremos la primera opcin, PAP. Seguidamente facilitaremos el nombre de usuario y el
password de conexin y seleccionaremos la velocidad de acceso; la que se propone por defecto, 115200, en la mayora
de conexiones debera funcionar sin ningn problema. Tras especificar si nuestra lnea telefnica va por pulsos o por tonos
(actualmente, la mayora ya van por tonos) entraremos el nmero que se debe marcar y que nos tiene que haber facilitado
nuestro ISP.
Llegados a este punto pppconfig nos propone la ejecucin de autodeteccin del mdem. Con el mdem en marcha
podemos dejar que sea el mismo programa el que detecte a qu puerto est conectado el mdem, o lo podemos hacer
nosotros manualmente (recordando siempre la correspondencia: primer puerto serie, COM1, /dev/ttyS0, segundo
puerto serie, COM2, /dev/ttyS1, etc).
Una vez hayamos entrado la ttyS a la que est conectado el mdem, entraremos en una pantalla de resumen de los
datos que hemos entrado, la cual tambin nos ofrece la posibilidad de establecer opciones avanzadas (por lo general
no necessarias). Si los datos son correctos podemos escoger la opcin Finished Write files and return
to main menu, y tras confirmar la operacin, de retorno al men principal de la interficie, si no queremos configurar ninguna otra conexin escogeremos la opcin Quit
Exit this utility para volver a la lnea de
comandos. Una vez en la lnia de comandos podemos comprobar que los datos se han guardado correctamente en
/etc/ppp/peers/nombredeconfiguracin
Para los usuarios de conexiones PPP tambin puede ser interesante instalar el paquete pppstatus para monotorizar
el trfico de la conexin, entre otros.
Establecimiento y finalizacin de conexin: pon, poff
Para establecer la conexin bastar con teclear la instruccin pon seguido del nombre de conexin que queramos
utilizar; si slo hemos configurado una conexin no ser necesario especificar su nombre. En principio, si no se restringe
el uso, pon puede ser ejecutado por cualquier usuario.
Para finalizar la conexin bastar con ejecutar el comando poff.

9.8.3. Configuracin de mdems DSL


De la misma manera que se ha hecho en la seccin anterior para la configuracin de mdems tradicionales, utilizaremos una herramienta para configurar los mdems DSL: pppoeconf. 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. Configuracin de tarjetas de red


Si por el motivo que sea no hemos configurado la tarjeta de red durante el proceso de instalacin, ahora es el momento
de hacerlo. Aunque prcticamente todas las tarjetas de red estn soportadas en los sistemas GNU/Linux, ya que stas
son una pieza clave para un sistema operativo orientado a redes, una vez ms se recomienda el uso de hardware lo ms
estndar posible para no tener complicaciones a la hora de configurarla. Puede que nuestra tarjeta venga soportada 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 ms 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 dmesg7 .
Si despus de analizarse detalladamente la salida del comand dmesg llegamos a la conclusin de que el driver para nuestra tarjeta no ha sido cargado, podemos ejecutar el comando modconf, comando que sirve para cargar
mdulos al kernel que han sido compilados junto a l, y comprobar si el driver para sta aparece en la subseccin
kernel/drivers/net. Si es as, bastar con seleccionarlo para cargarlo en el kernel.
7 La configuracin 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

CAPTULO 9. TALLER DE CONFIGURACIONES BSICAS

100

Si nuestra tarjeta de red no est soportada por defecto, deberemos recurrir a la recompilacin del kernel.
Una vez hecho esto, editaremos el fichero /etc/network/interfaces para pasar los parmetros correspondientes a nuestra red a la tarjeta. Una posible configuracin sera:
# /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.html8, y


el man de interfaces. Si no disponemos de tarjeta de red, y quisiramos hacer pruebas, siempre podemos recurrir al
mdulo dummy; en este caso, el dispositivo, en vez de llamarse eth0 se llamara dummy0.
Si se quiere configurar ms de una tarjeta de red en el mismo ordenador (prctica muy habitual en gateways, etre
otros) es necesario pasar los parmetros correspondientes al kernel durante el proceso de arranque (utilizando append
en LILO, por ejemplo) para evitar conflictos entre dispositivos.
Arranque y parada de servicios de red: ifup, ifdown
La reinicializacin todos los servicios de red (los de /etc/network/interfaces) se puede hacer mediante el
script /etc/init.d/networking con el parmetro restart.
ifup se utiliza para arrancar los servicios de red de una interface determinada, y ifdown para pararlos. As pues,
para la configuracin anterior, si quisieramos detener y volver a arrancar los servicios de eth0, lo que haramos es lo
siguiente (se utiliza el comando ifconfig 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
brau:~# ifconfig
lo
Link encap:Local Loopback
8 Tambin

http://www.fokus.gmd.de/linux/HOWTO/Net-HOWTO/

9.8. CONFIGURACIN DE DISPOSITIVOS

101

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:~# 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. Configuracin 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 configuracin, etc. para poderlos estudiar ms detenidamente sobre formato papel.
Por lo que se refiere al tipo de impresora preferible, en un entorno domstico sera una que usara el puerto paralelo
(/dev/lpX, normalmente /dev/lp0) con el objetivo de garantizar que se trata de una impresora no dependiente de
su software, ya que la mayora de las nuevas que estn apareciendo en el mercado, especialmente las de puerto USB,
son impresoras generalmente diseadas para ser empleadas para un sistema operativo determinado. Estas impresoras son
popularmente conocidas como winprinters (y su gnesis es parecida a la de los denominados winmodems). En un entorno
profesional, lo ptimo sera contar con una impresora que incorporara su propia interfaz de red y que, por lo tanto, fuera
un nodo ms de sta. Para ms informacin acerca de impresoras y su integracin en los sistemas operativos GNU/Linux,
se recomienda visitar la pgina http://www.linuxprinting.org, donde encontraremos un listado exahustivo de
las impresoras existentes en el mercado, y su grado de soporte.
La topologa general del sistema de impresin bajo GNU/Linux es la de cliente-servidor. El servidor, lpd (en el
sistema BSD), es tipo daemon, y en consecuencia lo manipularemos como tal. El archivo de configuracin del servidor es
/etc/printcap. En el podemos configurar tantas impresoras como deseemos 9 .
Como hemos visto, configurar correctamente una impresora puede ser un tanto difcil. Por esta razn han aparecido
diversos proyectos para desarrollar interficies para hacer ms amena su configuracin, algunos de los cuales aportan su
propio servidor de impresin y sus propias herramientas cliente.
Impresin de ficheros de texto
Los formatadores son programas que se utilizan, principalmente, para transcribir ficheros en formato texto a formato
PostScript10 . Estos programas nos pueden ser de utilidad ya que nos permiten pasar a formato papel la ayuda de los
comandos, ficheros de configuracin, etc. para poderlos estudiar de una forma ms cmoda. Entre estos encontramos
mpager (dentro del paquete con el mismo nombre), o enscrip (tambin empaquetado con este mismo nombre, y ms
potente que el anterior). A continuacin se detallan un par de lneas para ejemplificar su uso:
9 Ante la presencia de ms de una impresora configurada, los clientes usan, normalmente el parmetro -P seguido del nombre de la impresora,
para referirse a sta
10 El lenguaje PostScrip histricamente ha tenido ms implementacin en el campo de la impresin

102

CAPTULO 9. TALLER DE CONFIGURACIONES BSICAS

man man | mpage -2 -o |lpr

Mediante esta lnea redireccionamos la salida de man de man a mpage, que le da formato a dos columnas por hoja,
sin mrgenes y redireccionamos su salida al cliente de impresin lpr
endscript /etc/fstab -B -fTimes-Roman7 -r

Con esta lnea haremos que se imprima el contenido del fichero /etc/fstab sin cabecera, utilizando el tipo de
carcter Times-Roman de tamao 7 y de forma apaisada.

9.8.6. Configuracin de tarjetas de sonido


Debido a la gran cantidad de tarjetas de sonido existentes en el mercado, se hace casi imposible dar una descripcin
de cmo configurarlas todas. Se recomienda la lectura de http://www.tldp.org/HOWTO/Sound-HOWTO/ y la
visita a las pginas de los dos proyectos ms destacados en cuanto a sonido bajo GNU/Linux se refiere: http://www.
opensound.com/ y http://www.alsa-project.org/.
A continuacin se expondr el modo de proceder para configurar una tarjeta de sonido bastante comn: SoundBlasterPCI (chipset ES1371). Para este tipo de tarjeta, el comando lspci nos devolver una lnea como la siguiente:
00:0d.0 Multimedia audio controller: Ensoniq 5880 AudioPCI (rev 02)

En primer lugar cargaremos el mdulo correspondiente a esta tarjeta de sonido mediante el comando modconf,
kernel/drivers/sound, es1371.
Seguidamente crearemos el grupo audio en /etc/group e incluiremos en l todos los usuarios que deseamos que
tengan acceso al dispositivo de sonido (si deseamos que todos los usuarios tengan acceso a l, podemos obviar este paso, y
dar todos los permisos a los ficheros /dev/dsp y /dev/mixer); a continuacin 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 suguiere http://www.tldp.org/HOWTO/Sound-HOWTO/ o esperar a tener el
entorno grfico configurado para poder instalar aplicaciones de audio que corren sobre l.

9.9. Conclusin
En este taller hemos aprendido a trabajar con el sistema de paquetes de Debian, hecho fundamental, ya que esto nos
ha permitido aprender a instalar, desinstalar y a gestionar aplicaciones. Tambin hemos aprendido a configurar distintos
dispositivos de hardware, y con ello, una cosa bsica: que con GNU/Linux esto no es tan sencillo como en otros sistemas
operativos, ya que requiere, por lo general, tener un conocimiento ms profundo tanto del propio dispositivo como del
sistema en s. Pero en compensacin podemos asegurar que, una vez configurado un dispositivo, ste funcionar perfectamente y no deberemos preocuparnos ms de l. Y todo esto teniendo en mente que an no hemos configurado el entorno
grfico (probablemente una de las misiones ms complicadas en un entorno GNU/Linux). No obstante, y para animar a
aquellos que a estas alturas puedan pensar que adentrarse en el mundo GNU/Linux ha sido una mala idea, una misin
fallida, y una prdida de tiempo, nos gustara citar un prrafo del libro Debian GNU/Linux 2.1 de Mario Camou, John
Goerzen y Aaron Van CouWenberghe, Part I, Chapter 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 Windows NT
administrators most common job is crash recovery; he wastes too much time doing busywork, such as booting servers
that have gone down.
Aaron Van CouWenberghe

Captulo 10

Arquitectura X-Window
10.1. Qu es X-Window?
X-window es una arquitectura de ventanas diseada a mediados de los 80 para poder disponer de un entorno grfico
en estaciones de trabajo. Una arquitectura de ventanas (o sistema de ventanas) es un entorno grfico que nos proporciona
la posibilidad de tener diferentes aplicaciones localizadas en diferentes regiones de la pantalla, generalmente delimitadas
por algn tipo de ventana. Estos entornos suelen proporcionar mecanismos para el desplazamiento y manipulacin de
estas ventanas de forma que el trabajo pueda ser ms interactivo y ameno.
A diferencia de otros entornos de ventanas, la arquitectura X-Window se dise para ser independiente de plataforma,
de manera que se pudiera instalar en cualquier ordenador que corriera un sistema tipo UNIX. Aunque la arquitectura
de ventanas X-Window ha tenido una dilatada historia en la que se han utilizado diferentes tipos de licencias, varias
implementaciones y muchos equipos de desarrollo diferentes, actualmente se utiliza, mayoritariamente, la implementacin
que ha desarrollado el proyecto XFree86 Inc, llamada XFree86. Esta implementacin se ditribuye con licencia open
source, que aunque no es exactamente igual que la GPL o sus variantes, tiene caractersticas parecidas que permiten
acceder a su cdigo fuente, su redistribucin, etc. Es por este motivo que en la mayora de distribuciones de GNU/Linux
(y cada vez ms en otros sistemas operativos -como Mac OS X-) se incorpora esta implementacin de X-Window.
X-Window est diseado con un arquitectura cliente/servidor. Este tipo de arquitectura significa que el software est
estructurado en dos partes totalmente independientes (servidor y cliente) que se comunican a partir de un enlace de
comunicacin. Aunque esto implica que el diseo y la codificacin es un poco ms compleja, esta arquitectura proporciona
un flexibilidad total en el sentido que cliente y servidor pueden estar ubicados en diferentes sitios y utilizando diferentes
plataformas y/o sistemas operativos. Adems, podemos aprovechar muchsimo ms un mismo servidor ya que ste podr
dar servicio a ms de un cliente a la vez. De esta forma, los ordenadores clientes pueden trabajar con un entorno grfico y
los recursos del servidor. Naturalmente, esta arquitectura tambin nos permite trabajar con X-Window de forma local, en
la mquina donde est situado el servidor, aunque no es indispensable.
Los componentes de los que est compuesto X-Window son: servidor, cliente y enlace de comunicacin. Servidor y
cliente estn diseados para ser independientes de plataforma y, en el caso del enlace de comunicacin, para ser independiente del protocolo de red. De esta forma, podemos utilizar X-Window en cualquier tipo de escenario; por ejemplo,
podramos tener el servidor instalado en un ordenador con Windows TM, conectndose a un cliente con GNU/Linux y utilizar como canal de comunicacin Internet (protocolo IPv4). Aunque la configuracin de cada uno de estos componentes
(sobretodo el cliente) s que depende, en cierto modo, de la plataforma dnde est instalado, el enlace de comunicacin
nos permite aislar los componentes, dndoles un lenguaje propio para su entendimiento. Este enlace utiliza un protocolo propio denominado XDMCP (X Display Manager Control Protocol), que est en un nivel superior al de la red de
comunicacin utilizada (es por este motivo que es independiente de red).
En esta arquitectura (figura 10.1), el servidor est ideado para recoger los eventos que se producen por los dispositivos
de entrada como el teclado, el ratn, etc. y enviarlos al cliente. El cliente procesa estos eventos y responde al servidor,
que muestra los resultados en los dispositivos de salida (generalmente el monitor). Aunque la primera impresin que
puede sugerirnos este diseo es que el tiempo de respuesta debe ser muy lento, el protocolo XDMCP est especialmente
diseado para proporcionar un enlace rpido entre servidor y cliente, 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 redes
de comunicaciones lentas.
103

CAPTULO 10. ARQUITECTURA X-WINDOW

104
SERVIDOR X
windows

SERVIDOR X
debian
Potato

SERVIDOR X
FreeBSD

ENLACES DE COMUNICACIN (XDMCP)


debian Woody
CLIENTE X

Figura 10.1: Arquitectura X-window.

En resumen, pues, las principales caractersticas y funciones de cada uno de los componentes de X-Window son las
siguientes:
CLIENTE
Control del display del usuario
Gestin de diferentes servidores simultneamente
Dependiente de plataforma
SERVIDOR
Procesamiento de los dispositivos de entrada
Independiente de plataforma
ENLACE
Diseado para poder trabajar interactivamente
Pensado para minimizar el trfico en la red
Transparente (independiente de red)
A medida que las tarjetas grficas han ido evolucionando, cada vez ms aplicaciones y juegos necesitan de un procesamiento en 2D o 3D ms rpido. Si bien la arquitectura de ventanas X-Window aporta muchas ventajas, cuando queremos
utilizar este tipo de aplicaciones el diseo servidor/cliente no es el ms adecuado ya que no aprovechamos las funciones de
procesamiento 2D y 3D extremadamente rpido de las tarjetas grficas instaladas en el cliente. Para solucionar este problema, a partir del 1998 apareci una tecnologa llamada DRI (Direct Rendering Infrastructure) que permite aprovechar
los chips de procesamiento de las tarjetas para ahorrar faena al servidor X-Window. De esta forma, continuamos teniendo
todas las ventajas de X-Window aprovechando los elementos especficos de las tarjetas grficas.
A diferencia de otros sistemas operativos dnde el entorno grfico est ntimamente integrado con el resto de funciones, la arquitectura X-Window es totalmente independiente del operativo y no nos limita a ningn GUI (Grafic User
Interface) determinado. De hecho, la arquitectura slo nos proporciona herramientas grficas de bajo nivel para manipular
la salida del monitor. Estas herramientas estan includas en la librera Xlib y principalmente son funciones para crear
y manipular ventanas, operaciones con fuentes de caracteres, deteccin de eventos de usuario y operaciones grficas.
Con estas funciones podemos dotar a nuestras aplicaciones del look and feel (diseo de botones, mens, . . . ) que queramos, crear nuevos GUI, . . . De hecho, esto supuso un trabajo adicional para los primeros desarrolladores de aplicaciones
en X-Window ya que adems de programar la aplicacin tenan que desarrollar sus propias libreras para la creacin de
mens, iconos, etc. A medida que X-Window fue creciendo fueron apareciendo lo que llamamos toolkits, que son libreras
generalmente implementadas con Xlib y que proporcionan un GUI particular. De esta forma, al disear una aplicacin
podemos utilizar alguno de estos toolkits que ya proporcionan las herramientas estndar para crear mens, botones, gestionar los cut and paste, . . . y centrarnos en programar la aplicacin en s. El no marcar ningn 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 disearse
uno de propio, marcando la diferencia con los dems.
Aunque existen muchos toolkits diferentes, en la figura 10.2 podemos ver algunos de los ms populares que se han
utilizado a lo largo de la historia de X-Window.
El window manager es un cliente especial de X-Window que se encarga de gestionar todas las ventanas, los escritorios, las pantallas virtuales, etc. Naturalmente, todas las aplicaciones pueden funcionar con cualquier window manager ya
que ste slo se encarga de gestionar la ventana donde est ubicado el programa. Aunque la programacin de un window
manager es muy diferente que la de una aplicacin, tambin se suelen utilizar toolkits particulares que proporcionan un

10.2. CONFIGURACIN

105

Figura 10.2: Algunos de los toolkits utilizados en X-window.

look and feel determinado. Actualmente existen decenas de window managers diferentes (wmaker, sawmill, olvwm, . . . ),
siendo el mismo usuario quien puede elegir el que ms le guste.
Otro tipo de software muy relacionado con X-Window es el que se encarga de proporcionar un entorno integrado
para las aplicaciones, el escritorio, las herramientas de administracin del sistema, etc. Los ms populares que hoy en da
existen son el KDE (the K Desktop Environment) y el GNOME (GNU Object Model Environment). Los dos proporcionan
un toolkit particular, un entorno de escritorio con muchsimas funcionalidades y configuraciones diferentes y una lista de
aplicaciones integradas que cada vez va creciendo ms. La mayora 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 caractersticas bsicas. En la figura 10.3 podemos ver el
aspecto de los dos.
Finalmente, otro tipo de aplicacin que se utiliza en X-Window es el session manager, que son una serie de programas
que permiten guardar la configuracin de una determinada sesin de usuario para que al arrancar de nuevo X-Window
se carguen las aplicaciones que tenga configuradas. Generalment, en los entornos integrados ya se incorporan estas herramientas de forma automtica; si no podemos recurrir al que la misma infrestructura de X-Window proporciona: el xsm.
ACTIVIDADES
1. Leer la historia de X-Window en el artculo:
http://www.linux-mag.com/2001-12/xfree86_01.html
2. Ver algunos de los window manager y entornos de escritorio existentes en:
http://www.xwinman.org

10.2. Configuracin
Actualmente, las versiones de la implementacin XFree86 que ms se utilizan son las 4.X, la configuracin de las
cuales veremos en esta seccin. Si bien la mayora de tarjetas grficas del mercado ya estn soportadas, es posible que
desde el momento de aparicin en el mercado de una nueva tarjeta hasta que se d soporte en X-Window pasen unas
semanas o unos pocos meses. De todas formas, cada vez ms, los mismos fabricantes estn dando soporte a GNU/Linux
y, en algunos casos, ya estn proporcionando sus propios drivers para este sistema operativo. Aun as, antes de comprar

CAPTULO 10. ARQUITECTURA X-WINDOW

106

Figura 10.3: Entornos de escritorio.

una nueva tarjeta grfica siempre es recomendable comprobar si hay disponible algn tipo de driver para la distribucin
que estemos utilizando.
Para instalar XFree86 en nuestro ordenador lo primero que deberemos hacer es bajarnos los paquetes que contienen
las herramientas bsicas y el software para el cliente y el servidor. Generalmente, estos paquetes se suelen denominar
xfree86-common, xfree86- server, etc. y llevan implcitos varias dependencias de fuentes y algunas utilidades
bsicas para el manejo de X-Window. Una vez instalados estos paquetes debemos configurar adecuadamente los dispositivos de los que disponemos para poder arrancar correctamente el cliente y servidor X-Window. Segn la distribucin que
utilicemos se utiliza un programa u otro o, en algunos casos, con la misma instalacin de los paquetes ya se lanza una
pequea aplicacin de configuracin. Algunos programas tpicos de configuracin de X-Window son el xf86config o
el XF86Setup. De todas formas, esta configuracin siempre debe contener unos determinados pasos, que detallamos a
continuacin clasificados segn el dispositivo a configurar:
1. Tarjeta grfica
Driver: las diferentes familias de tarjetas grficas llevan unos microprocesadores especficos y utilizan unas
funciones determinadas para realizar sus operaciones. Es por este motivo que debemos indicar el driver adecuado para nuestra tarjeta. Si no lo sabemos, podemos instalar algn tipo de aplicacin para la deteccin de
hardware automtico; si utilizamos, por ejemplo, el discover, podemos saber qu driver necesita nuestra
tarjeta con el comando discover -xdriver video.
Identificador: el identificador de la tarjeta puede ser cualquier nombre con el que queremos referirnos a nuestra

10.2. CONFIGURACIN

107

tarjeta. Este identificador es utilizado internamente para poder referenciar adecuadamente las tarjetas que
tenemos instaladas en el sistema.
Cantidad de memoria: segn la cantidad de memoria de la tarjeta, podremos inicializar los grficos con ms o
menos resolucin y con profundidades de color ms o menos elevadas. Aunque no es imprescindible indicar
esta cantidad (el sistema lo detecta automticamente) s es recomendable especificarla en la configuracin.
Utilizacin del framebuffer del ncleo: el frambuffer del ncleo es un driver especial de Linux que permite
realizar algunas operaciones sobre X-Window. Aunque su utilizacin no es obligatoria, generalmente se utiliza para que el servidor de X-Window se pueda comunicar directamente con el ncleo del sistema. De todas
formas, si nos diera algn problema, siempre podemos desactivarla.

2. Teclado

Regla XKB: para que el servidor de X-Window pueda manejar correctamente el teclado, necesita saber qu
reglas aplicar sobre l. Para la mayora de teclados estndar 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 nmero de teclas que
tiene. Los teclados de los PC estndar que tienen las teclas de men y logo suelen tener 104 teclas (los
identificamos con el nombre pc104). Los teclados que no llevan estas teclas se identifican como de 101
teclas (pc101).
Keyboard layout: en esta seccin debemos identificar el pas del teclado con su referencia ISO 3166. En el
caso de Espaa es es, para Francia fr, etc.
Keyboard options: opcin para personalizar algunas de las teclas del teclado.

3. Ratn

Puerto: el puerto del ratn es la conexin que utiliza para comunicarse con el ordenador. Cuando compramos
el ratn 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.
Tipo: para especificar el tipo del ratn se suelen proporcionar una lista de la que debemos escoger el que
ms se ajuste a nuestro modelo y fabricante. Generalmente, sabiendo el model del ratn ya podremos escoger
adecuadamente la opcin que le corresponde.
Emulacin de 3 botones: en el caso que nuestro ratn solo tenga 2 botones, se propociona la posibilidad de
emular el tercero (el del medio) apretando los dos simultneamente. Si nuestro ratn no tiene el botn del
centro, es recomendable activar esta opcin porque algunos programas de X-Window necesitan que el ratn
tenga los 3 botones .

4. Monitor

Identificador: igual que en el caso de la tarjea grfica, la identificacin del monitor sirve para que el sistema
lo pueda referenciar internamente. Le podemos poner el nombre que queramos.
Monitor tipo LCD: en la mayora de procesos de configuracin se nos preguntar si nuestro monitor es de tipo
LCD (pantalla TFT). Es importante responder correctamente esta pregunta porque el manejo de un tipo u otro
de monitor vara considerablemte.
Caractersticas: en la configuracin de caractersticas se preguntar las resoluciones mximas que puede
obtener nuestro monitor, la frecuencia de refresco, etc. Aunque segn el programa utilizado para configurar X-Window se harn ms o menos preguntas de este estilo, es importante tener a mano la informacin del
monitor y contestar adecuadamente para poder aprovechar al mximo las caractersticas del mismo.

CAPTULO 10. ARQUITECTURA X-WINDOW

108

Resoluciones disponibles: en este paso debemos sealar qu resoluciones queremos poder mostrar en nuestro
monitor cuando iniciemos X-Window. Tambin es habitual que se nos pregunte la profundidad de color que
queremos utilizar por defecto; lo ms recomendable es utilizar alguna de alta (16 o 24 bits) para poder ver
ntidamente todos los colores.

Una vez contestadas a estas preguntas, que pueden ser ms o menos segn el programa que utilicemos, toda la configuracin se guarda en el fichero /etc/X11/XF86Config-4. Este fichero est organizado en las diferentes secciones
que hemos ido viendo y, recorriendo a su manual veremos que tenemos muchsimas ms posibilidades que nos dan una
flexibilidad total para configurar de la forma como queramos nuestras X-Window. Para probar si realmente funcionan,
podemos ejecutar X, con lo cual debera aparecernos una pantalla con cuadros blancos y negros muy pequeos y el
puntero del ratn como una X (para salir de la misma podemos utilizar CTRL+ALT+BACKSPACE).
Si tenemos instalado algn window manager, lo ms habitual para arrancar X-Window es utilizar alguno de los shell
scripts xinit o startx. stos se encargan de lanzar el window manager configurado y realizan algunas otras acciones necesarias para inicializar correctamente X-Window. Una vez tenemos la pantalla en modo grfico, podemos
cambiar la resolucin 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 volveramos a la grfica). Cuando utilizamos startx o
xinit, al arrancar X-window se ejecutan las instrucciones del fichero /etc/X11/Xsession. Si en el directorio
home del usuario que iniciara X-Window hubiera un fichero .xsession, se ejecutaran las instrucciones de ste en
lugar del otro.
Otra caracterstica importante en la configuracin de X-Window es la de la configuracin de los Xwrappers. Los
Xwrappers nos permiten controlar qu usuarios pueden iniciar una sesin con X-Window. En el fichero /etc/X11/
Xwrapper.config se encuentra la directiva allowed_users, con la cual especifcamos quin est autorizado
para arrancar X-Window con los valores:
console: cualquier usuario que est en un consola local puede iniciar X-Window.
rootonly: slo el root puede iniciar X-Window.
anybody: cualquier usuario del sistema puede iniciar X-Window (aunque no est conectado localmente).
Esto es muy til, sobretodo, al administrar un servidor en el que generalmente no se permite que los usuarios trabajen
con el entorno grfico por el gasto de recursos que ello supone.

10.3. X display manager


En la seccin anterior hemos visto como configurar X-Window de forma local. Tal y como hemos ido comentando a lo
largo del captulo, la arquitectura de ventanas X-Window nos permite que cliente y servidor estn instalados en diferentes
ordenadores. Para configurar nuestro ordenador para que haga las funciones de un cliente X-Window debemos instalar
algn tipo de X display manager. Estos programas abren un puerto de comunicaciones con el cual los servidores 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 remota. Entre otras funciones, lo que hacen es
mostrar una pantalla (en el entorno grfico) para que el usuario se identifique con su login y contrasea. Funcionan
como cualquier otro daemon del sistema, de forma que su inicio y parada se puede configurar queramos (uilizando los
niveles de ejecucin que el sistema proporciona). Debemos tener en cuenta que si lo configuramos para que funcione
de forma local, al arrancar el sistema nos encontraremos con la pantalla de identificacin grfica y no las consolas a las
que estbamos acostumbrados (aunque continan estando disponibles). Con esta configuracin ya no podremos utilizar
startx o xinit para inicializar X-Window, ya que por defecto ya estarn ejecutndose.
Cuando instalemos xdm, todos sus ficheros de configuracin se dejarn en el directorio /etc/X11/xdm. Vamos a
repasar qu contiene cada uno de estos ficheros:

10.3. X DISPLAY MANAGER

xdm-config
xdm.options
Xaccess
Xservers
Xresources
Xsetup
Xstartup

Xsession

Xreset

109
Localizacin de los archivos de configuracin de xdm.
Opciones globales de configuracin.
Definicin de los equipos remotos a los que dejamos acceder.
Servidores locales de xdm.
Configuracin de la pantalla de login: colores, fuentes,
tamao, etc.
Script que se ejecutar cuando se arranque xdm.
Script que se ejecutar cuando un usuario entre en XWindow. Se suelen poner acciones relacionados con el
xdm.
Script que se ejecutar al entrar en una sesin de usuario.
Se suelen poner acciones especiales para los usuarios,
aunque tambin se suele llamar a la ejecucin del fichero
/etc/X11/Xsession.
Script que se ejecutar al acabar una sesin de usuario.

La configuracin de los servidores locales la encontramos en el fichero Xservers. Si quisiramos desactivar el


servidor local, podramos comentar todas las lneas de este archivo. De esta forma, aunque tuviramos instalado un
servidor de X-Window, por defecto no se iniciara en la mquina local. Si, por el contrario, quisiramos instalar ms de
uno, podramos editar el fichero y aadir 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. Fijmonos como cada directiva incluye un
:0 o :1, que hacen referencia a la instancia de X-Window que manejan. Por defecto, siempre se utiliza la 0, pero
al querer ms de un servidor local debemos referenciarlo de esta forma. Al final de cada una de estas lneas podramos
aadir parmetros 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 resolucin de la pantalla, etc. De esta forma, podramos trabajar con
diferentes sesiones de X-Window abiertas tal y como hacamos con las consolas.
Si en el fichero de Xaccess hay una lnea con el caracter *, indica que dejamos que cualquier servidor se conecte
al cliente X-Window del ordenador. Utilizar X-Window de forma remota sin ningn tipo de encriptacin puede suponer
un fallo de seguridad, con lo que es muy recomendable informarse adecuadamente antes de utilizarlo.
Generalmente, la configuracin por defecto de xdm no permite conexiones remotas por razones de seguridad. Si
quisiramos activar estas conexiones podramos editar el fichero Xaccess y, utilizando la sintaxi que se nos indica, aadir
los servidores a los que permitimos dar este servicio. Tambin deberamos comentar la lnea DisplayManager.
requestPort: 0 del fichero xdm-config, que por defecto inutiliza todas las conexiones que se reciben. Una vez
realizados estos cambios, reiniciando el daemon de xdm, el ordenador ya estara preparado para servir X-Window a
cualquier servidor que se lo pidiera.
Para las mquinas dnde solo queremos instalar el servidor de X-Window deberamos instalar X-Window tal y como
veamos en el apartado anterior y utilizar el comando X -query IP dnde la IP debera ser la del servidor. Al igual
que pasaba cuando tenamos ms de un servidor X-Window en una mquina local, si en el ordenador ya tuviramos otra
instancia de X-Window ejecutndose, deberamos utilizar X -query IP :1 para la segunda instancia, :2 para
la tercera y consecutivamente. Tambin existe Xnest, que es un servidor de X-Window que nos permite abrir en una
ventana otra instancia de X-window.

Captulo 11

Taller de X-windows
11.1. Introduccin
En el segundo taller se sentaron las bases para la correcta manipulacin y gestin de paquetes, y aprendimos a configurar algunos dispositivos. No obstante, y debido a su complejidad, no se abord el tema de la configuracin de la
tarjeta grfica, o mejor dicho, de la instalacin del entorno grfico X. Es precisamente debido a esta complejidad de su
estructura y configuracin que se ha optado por dedicar un taller monogrfico sobre el X Window System. En este taller
aprenderemos a instalar, configurar y personalizar este sistema. Pero no se pretende hacer un repaso exahustivo de todo el
sistema, pues esta tarea sera probablemente inabordable por muy distintas razones. Se pretende sentar las base para que
cada uno sea capaz de configurar su propio sistema en funcin de la tarjeta grfica de la que disponga, de sus gustos y de
sus preferencias. Al final del taller deberamos ser capaces de instalar un entorno X, y de saber sacar partido a su increble
potencia.
ACTIVIDADES
1. Debido a la complejidad del sistema X, se recomienda la lectura de los siguientes documentos, para asentar conceptos antes de empezar a trabajar sobre el sistema. Adems, estos nos aportarn conocimientos suplementarios, que
pueden ser puestos en prctica a lo largo del taller.
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 bsicos que conciernen al sistema.
http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats
/html_single/XWindow-User-HOWTO.html
Es un documento con contenidos ms avanzados que el anterior, pero tambin recomendable.

11.2. Instalacin del sistema bsico


Como ya se ha dicho, el X Window System es un sistema muy complejo que integra muchsimas libreras y aplicaciones, algunas de las cuales son fundamentales para su funcionamiento, aunque la mayora slo deben ser instaladas si,
por nuestras necesidades, precisamos de ellas. Es sta una de las razones por las que en Debian el sistema viene distribuido
en muchos paquetes distintos, de los que, slo instalaremos aquellos que nos sean necesarios.

11.2.1. Distintas estrategias para la instalacin de los paquetes


Debido a que la interdependencia entre los distintos paquetes es muy fuerte, podemos aprovechar este hecho para
que sea el mismo sistema de gestin de paquetes que instale todos aquellos que considere necesarios para el correcto
funcionamiento de una aplicacin de alto nivel, entre los cuales se encontrarn, obviamente, todos los paquetes bsicos
del sistema. As pues podramos utilizar dselect o apt-get para instalar una de estas aplicaciones. Pero esta no es una
110

11.2. INSTALACIN DEL SISTEMA BSICO

111

buena estrategia, ya que implica la prdida del control de los paquetes que estamos instalando y adems puede implicar la
omisin de algunos paquetes esenciales, de los que, por el motivo que sea, no se haya hecho referencia durante el clculo
de dependencias.
Por este motivo se recomienda la construccin del sistema paso a paso, para ir comprendiendo qu paquetes se estn
instalando en cada momento, y el porqu.

11.2.2. Instalacin de paquetes bsicos


Los paquetes bsicos del sistema se pueden agrupar, de forma general en:
core: Paquetes esenciales e imprescindibles para el correcto funcionamiento del sistema (x-window-system-core).
system: Paquetes esenciales cuya presencia es altamente recomendable (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 correran sobre el sistema grfico. Son, en el fondo, los que dan la razn de
existencia del sistema.
libs: Paquetes de libreras del entorno grfico, las cuales proporcionan funciones a otros programas.
Para instalar los paquetes bsicos del sistema lo podemos hacer mediante la siguiente orden:
brau:~# apt-get install x-window-system

Con ello se calcularn las dependencias entre paquetes y se nos informar de que deben de instalarse alrededor de una
treintena de paquetes. Para proceder se nos pide la confirmacin, a la cual contestaremos afirmativamente.
Nota: despus de que se hayan desempaquetado los paquetes, se ejecutarn automticamente los scripts de configuracin de varios de ellos. Siempre es posible interrumpir la ejecucin de estos scripts con la combinacin de teclas Ctrl-C,
y reiniciar el proceso de nuevo volviendo a ejectuar el comando anterior.
Durante la ejecucin del script de configuracin del paquete X-server-common se nos preguntar si queremos que
sea debconf quien configure los wrappers. La opcin ms sencilla y prctica es permitir que la configuracin se haga
de forma automtica, y seguir adelante.
El script de configuracin de Xserver-xfree86 nos situar en la interficie de configuracin del servidor. Lo
primero que se nos pregunta es si deseamos que se ejecute un test de autodeteccin del driver que debe cargarse para nuestra tarjeta. Es buena opcin contestar afirmativamente a esta pregunta, ya que si el test falla o detecta ms de una possibilidad nos dar accesso a la pantalla de seleccin de drivers. Si debemos seleccionar el driver manualmente lo que debemos
hacer es, en primer lugar, leer la documentacin de la targeta grfica; si no disponemos de ella, tambin podemos utilizar el
comando lspci para informarnos de cmo sta ha sido detectada por el kernel (generalemente la ltima lnea de retorno).
Una vez dispongamos de esta informacin, nos dirigiremos a http://xfree86.org/current/Status.html
para informanos de cul es el driver que debemos cargar. Con esto nos situamos a la pantalla siguiente. En sta se nos
pedir si deseamos que sea debconf quien nos gue en la configuracin del archivo /etc/X11/XF86Config-4, que
es el archivo fundamental de configuracin del servidor. No es mala idea contestar afirmativamente, y, al final, comprobar
si la configuracin resultante es vlida o no. En primer lugar se nos pregunta si queremos usar el kernel framebuffer device interface, y se nos sugiere que lo hagamos; en principio contestaremos afirmativamente, pero teniendo muy presente
que esto es una fuente potencial de problemas, de manera que, una vez hayamos finalizado la configuracin, si al intentar
arrancar el servidor, algo va mal, deberemos estar atentos al contenido la lnea, y probar si con el valor false funciona:
#/etc/X11/XF86Config-4
Section "Device"
Identifier
Option

"Generic Video Card"


" UseFBDev"

"true"

CAPTULO 11. TALLER DE X-WINDOWS

112

Lo siguiente que configura el mismo script es el teclado. Por lo general, y en especial sobre la plataforma PC, la
sugerencia de utilizar el tipo xfree86 debe funcionar correctamente, aunque en las pantallas posteriores terminaremos
de ajustar su funcionamiento. En la siguiente 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
variacin idiomtica puede entrarse el mismo valor anterior, pero es recomendable dejarlo en blanco, ya que, si se entra
el valor es, esta directriva tambin se convierte en una funete potencial de errores. Si ms a delante, y en el caso que
hayamos rellenado el campo de variacin idiomtica, al parar el servidor, se visualiza, entre otras lneas, 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 |, deberemos comentar la directiva de variante idiomtica
en el archivo principal de configuracin:
#/etc/X11/XF86Config-4
Section " InputDevice"
Identifier
"Generic Keyboard"
#

Option

"XkbVariant"

"es"

El campo siguiente, referente a la personalizacin del teclado, se deja en blanco si no se tiene ningn propsito al
respecto. Con esto habremos terminado con la configuracin del teclado y pasaremos a la configuracin del ratn. Para
ello, en primer lugar, se nos pide en qu puerto est ubicado (actualmente, la mayora de ellos en /dev/psaux, la
primera opcin). A continuacin se nos pregunta de qu tipo de ratn disponemos (nuevamente, la primera opcin, PS/2,
suele ser la ms habitual). Terminada la configuracin del ratn, entramos en la configuracin 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 parametros referentes a nuestro monitor. La forma ms simple (Simple) slo nos pedir el tamao
del monitor, mientras que en la ms compleja (Advanced) se nos pedir las frecuencias de refresco horizontales y
verticales del monitor, entre otros. Seguidamente se nos preguntar con qu resoluciones queremos trabajar, y en funcin
de los parmetros que hayamos entrado en el apartado anterior se nos harn distintas sugerencias. A continuacin se nos
pedir cal ser la resolucin de color que se usar por defecto al arrancar el servidor (actualmente la mayora de tarjetas
sorportan, sin ningn problema, resoluciones de 24 bits). Con esto habremos terminado la configuracin 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 grfico; as pues, podemos hacer una copia de este fichero, en un disquet, por
ejemplo, y compararlo con el que hemos generado mediante el script de configuracin del servidor.
ACTIVIDADES
1. Una vez terminada la instalacin, editar el fichero /etc/X11/XF86Config-4, e intentar asociar las distintas
directrices, a los parmetros que hemos entrado durante la ejecucin del script de configuracin del servidor.

11.2.3. Inicializacin del servidor


Ha llegado el momento de comprobar si el fichero de configuracin del servidor es correcto, y en consecuencia el
servidor arranca como es debido. para eso basta con ejecutar el comando startx.
Si todo funciona correctamente, al cabo de unos momentos nuestra pantalla adquirir un fondo mallado de colores
grisceos, y en el centro de la pantalla aparecer una aspa. Hemos dado un gran paso adelante, pues configurar el servidor
para que arranque es lo ms difl del entorno X. Ahora slo es cuestin de tiempo para terminar dando el aspecto que
nosotros queramos al entorno. Mediante el ratn podemos mover el aspa, y pulsando los botones del medio y izquierdo

11.2. INSTALACIN DEL SISTEMA BSICO

113

podemos explorar un poco las posibilidades de este entorno grfico un tanto rudimentario. Para salir de l y continuar con
la configuracin del sistema hay que pulsar el botn izquierdo del ratn, situarnos sobre Exit opcin Yes, really
quit, o simplemente pulsar la combinacin de teclas CTRL-ALT-BackSpace.
Si por el contrario, al cabo de unos momentos retornamos a la consola alfanumrica, es que el servidor no ha podido arrancar adecuadamente. 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 ms comunes suelen ser: mala eleccin del driver a cargar (si el
proceso de seleccin lo hemos dejado en manos del script, deberemos consultar la pgina antes mencionada para asegurarnos de que el driver que el script ha escogido es el correcto), poner la directiva UseFBDev a true, cuando debe estar
en false, usar resoluciones o frecuencias de refresco ms altas de las que la tarjeta puede soportar, etc.
Otra posibilidad es que, an estando soportada la tarjeta por el Xfree86 Project, puede que el paquete que estemos
usando no la soporte. Frente a esta situacin se suguiere que se incorpore la siguiente lnea 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 ejecutar el comando de instalacin del X-WindowSystem (apt-get install X-Window-System). Con esto acudiremos a una pgina no oficial para obtener los
paquetes de versiones ms actualizadas del sistema X Window, y en ellos, probablemente, ya se d soporte a nuestra
tarjeta.
Con todo esto, hay que destacar que la correcta configuracin de una tarjeta de vdeo puede llegar ha ser una tarea
verdaderamente difcil. Para ello acudiremos a buscadores donde entraremos palabras clave referentes a nuestra tarjeta
junto con X o Linux para ver si encontramos documentacin al respecto.
Llegados a este punto, mediante el comando siguiente evitaremos que cada vez que arranquemos el ordenador entremos en el modo grfico:
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 grfico. Para hacerlo, slo habr que volver
a crear el enlace simblico que con el comando anterior hemos borrado:
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 esto debemos dejar de analizar el contendido del
fichero principal de log del sistema X, /var/log/XFree86.0.log, ya que esto nos ayudar a depurar fallos y errores
menores que no han interrumpido el arranque del servidor, pero s que hacen bajar su rendimiento.
Algunos ejemplos tpicos pueden ser: eliminar la lnea del fichero de configuracin que hace referencia a las fuentes
cicrlicas, si nunca las vamos 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


El sistema grfico en si no lleva asociado ningn tipo de base de datos acerca de las fuentes disponibles, pues esto no
entra en el dominio de sus funciones. sta es la tarea del servidor de fuentes xfs (/usr/bin/X11/xfs), de esta forma
cualquier programa cliente puedr usar cualquier las fuentes disponibles el qual se arranca automticamente al lanzar el
servidor X en forma de deamon. Existen multitud de paquetes para agregar ms fuentes al conjunto que hemos instalado
por defecto.
Una aplicacin que puede ser til para conocer qu fuentes tenemos instaladas y que aspecto tienen es xfontsel.
Se trata de una aplicacin escrita mediante libreras de athena (como el resto de los xbase-clients, grupo al cual pertenece
xfontsel), en la cual, mediante mens desplegables se seleccionan las opciones disponibles de configuracin de las

114

CAPTULO 11. TALLER DE X-WINDOWS

fuentes y nos muestra algunos caracteres de ejemplo. Para conocer todos los caracteres de una fuente se puede usar la
aplicacin xfd.
As pues, una vez sepamos que fuente queremos utilizar para un determinado programa podemos lanzarlo desde una
xterm con el argumento -fn segido de la descripcin de la fuente 1 . Un exemplo 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 llama meta-clientes) encargados de gestionar las
distintas ventanas que corren sobre el entorno grfico y de su presentacin, as como de lanzar otros clientes (aplicaciones).
A estas alturas, ya tenemos un Window Manager instalado, el twm, ya que una instalacin completa de un sistema X
requiere como mnimo de un window manager, aunque 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 ms complejos, como puede
ser WindowMaker, BlackBox, qvwm, etc. Vamos pues a instalar algunos de ellos y a probarlos. El objetivo final, siguiendo
la filosofa 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 que decida cul va a usar. Obviamente, es posible tener ms de
un window manager instaladado, aunque slo se pueda hacer correr uno por sessin 2 .
En primer lugar instalaremos, a modo de ejemplo, el qvwm. Se trata, como veremos al lanzarlo, de un window manager
que simula un entorno que probablemente nos sea conocido. Para hacerlo basta con ejecutar la instruccin:
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 ubicacin del window manager que deseemos utilizar despus del comando startx
(Recordemos que el comando whereis nos puede ser muy til a la hora de buscar la ubicacin 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 habra que haber especificado su ruta completa de la forma siguiente:
brau:~# startx /usr/bin/X11/twm

Tener que especificar cada vez qu window manager deseamos utilizar, 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 despus del
comando startx no se especifique ninguno en concreto crearemos el archivo .xsession en el directorio raz del
usuario con el contenido siguiente, en el caso que quiseramos que el window manager por defecto fuese el twm, por
ejemplo:
#~/.xsession
exec twm

Si quisesemos que fuese qvwm el window manager por defecto, bastara con cambiar twm por qvwm. La ejecucin
de los distintos procesos que implican el arranque del entorno grfico, as como los ficheros de configuracin que se van
leyendo durante este proceso, estn fuertemente determinados. As pues, creando el fichero anterior, lo que hemos hecho
es editar uno de los ltimos ficheros (los que residen en el directorio raz del usuario) que se leen antes de entrar en el
entorno grfico. Este fichero, por tanto, nos permite modificar algunos aspectos de los que se han determinado por defecto
dentro del sistema y que estn definidos en los ficheros residentes en /etc/X11 y sus subdirectorios.
Para finalizar esta seccin instalaremos un window manager muy utilizado en el mundo GNU/Linux, que se caracteriza
por su versatilidad y su escaso consumo de recursos: el WindowMaker:
1 Otros

programas pueden usar nombres distiontos para este argumento.


podemos, pero, y como ejemplo de la flexibidad del sistema X, tener dos window manager corriendo en un mismo ordenador, cada uno en un
terminal distinto.
2 Si

11.4. X SESSION MANAGER

115

brau:~# apt-get install wmaker

Animamos al lector a familiarizarse un poco con este window manager y a que visite su pgina para ampliar conocimientos: http://www.windowmaker.org/.
Hemos instalado, ya, tres window managers, y seguramente instalaremos ms. A parte del mtodo anteriormente descrito para preestablecer cul queremos ejecutar por defecto, podemos utilizar el men del comando update-alternatives
para establecerlo:
brau:~# update-alternatives --config x-window-manager

11.4. X Session Manager


Los session managers son programas que pueden hacerse correr sobre una sesin grfica y que nos permitirm establecer y modificar parmetros de esta. xms es el session manager que viene por defecto con la instalacin que hemos
hecho del servidor grfico. Podemos lanzarlo desde un Terminal X 3 , mediante el comando xsm.
Una vez lanzado xsm mediante Checkpoint, podemos guardar la configuracin de la sesin actual (esencialmente
referente a las aplicaciones que tengamos corriendo), gestionar los procesos que estan corriendo mediante Client List,
consultar el log de la sesin o cerrar la sesin guardando la configuracin actual.
Aparte de xsm existen otros session managers. stos acostumbran a ser una parte ms de los desktop managers, y
estan tan integrados en ellos que a veces resulta difcil reconocer sus acciones. Un ejemplo tpico es la pregunta que se
nos formula acerca de si deseamos guardar la sesin al cerrar KDE.

11.5. X Display Manager


Al finalizar la instalacin del Xserver sugeramos que se eliminara el enlace simblico /etc/rc2.d/S99xdm para
evitar que al volver arrancar el sistema al entrar al runlevel 2 se ejecutase xdm, acrnimo de X Display Manager. Este
es el display manager que el paquete X-Window-System instala por defecto. Los display managers son los programas
encargados de gestionar quin, desde dnde, y cmo puede entrar un usuario al entorno grfico. Para lanzarlo lo haremos
como con cualquier otro daemon:
brau:~# /etc/init.d/xdm start

Para pararlo tambin utilizaremos el mismo procedimiento que seguiramos para detener cualquier otro daemon, con
la salvedad de que deberemos pulsar la combinacin de teclas Ctrl+Alt+F1, para salir del entorno grfico y situarnos en
la tty1, por ejemplo, en vez de utilizar la combinacin que se usa para cambiar de ttys en entornos alfanumricos:
brau:~# /etc/init.d/xdm stop

Como habremos 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 ninguna restriccin. Tras validarnos, entramos en el modo grfico de la misma forma que lo hacamos mediante el comando startx. La diferencia radica en que, cuando terminemos
la sesin grfica, el servidor no se parar, si no que sobre continua corriendo el xdm.
Uno de los inconvenientes de xdm es que no nos permite seleccionar con qu window manager queremos trabajar.
Pero existen otros display managers, como pueden ser wdm (de WindowMaker), gdm (del proyecto GNOME), o kdm (del
proyecto KDE), que s lo permiten. Podemos instalar el wdm, para ver su aspecto, y para conocer otro display manager:
brau:~# apt-get install wdm

Al ejecutarse el script de postinstalacin, se nos preguntar qu display manager queremos usar, xdm, que ya tenamos
instalado, o wdm. Seleccionaremos este ltimo, para que se cree el enlace necessario para que se lanze wdm com display
3 Para

lanzar una xterm pulsaremos el botn del medio del ratn y seleccionaremos Programs/XShells/XTerm

116

CAPTULO 11. TALLER DE X-WINDOWS

manager durante el processo 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 automticamente ningn display
mananager 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 sesin X desde el display manager, es decir, una vez hayamos lanzado el pertinente window
maker, puede ser interesante ejecutar el comando pstree para ver las relaciones de dependencia entre los distintos
procesos que estn corriendo en este momento, junto con la informacin que nos aprotar la lnia ps aux.

11.6. Desktop Managers


La aparicin de distintas toolkits, as como el desarrollo de diversos proyectos que desarrollaban o usaban libreras
del entorno grfico, hizo aparecer proyectos que buscasen la unificacin de todos estos esfuerzos. Fue entonces cuando
apareci un concepto nuevo en el entorno X: el de desktop manager. Los desktop managers son proyectos que pretenden
sentar las bases para la unificacin y estandarizacin tanto de presentacin como de polticas de programacin y de
desarrollo de aplicaciones. Uno de los primeros en aparecer fue el CDE (Common Desktop Manager), aunque actualmente
los dos proyectos ms destacados en este sentido son: GNOME y KDE, a los cuales, dado su alto grado de implementacin
y de desarrollo dedicaremos una subseccin respectivamente. Pero antes podemos nombrar otros desktop managers, como
pueden ser: GNUStep ,ROX, GTK+Xfce o UDE.

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 GNOMEcompliant window manager) como pueden ser: IceWM o Sawfish. Aun y as, para respetar las preferencias y la libertad
del usuario, GNOME, en su control panel siempre dispone de un window manager selector, que nos permite escoger
qu window manager queremos usar. GNOME est basado en Gtk toolkit las propias libreras desarrolladas dentro del
proyecto, conocidas como gnome-libs especfiques.
Como todos los desktop managers, GNOME dispone de su propio panel, panel, de su gestor de archivos: Nautilus y
de su control panel: GNOME Control Panel.
Para hacer una instalacin bsica de GNOME, instalaremos el paquete siguiente, junto con todas sus dependencias:
brau:~# apt-get install gnome-session

Tal como se ha dicho, aunque GNOME no exija el uso de ningn window manager determinado, se recomienda que
ste sea GNOME-compliant window manager. Vamos pues a instalar Sawfish, que fue desarrollado estrictamente para
cumplir este requisito. Instalemos el paquete y todas sus dependencias:
brau:~# apt-get install sawfish-gnome

Tenemos, pues, otro window maker instalado. Detendremos el display manager y volveremos a lanzarlo para que este
nuevo window maker se integre en l (GNOME tambin tinene su propio display manager, gdm, que podemos instalar,
si lo deseamos). Ahora tenemos dos posiblidades 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, arrancar GNOME, por los mismos procedimientos que Sawfish, y
luego lanzar sawfish desde un terminal X. Se recomienda proceder de la ltima forma si querremos que la prxima
vez que arranquemos GNOME se ejecute Swafish (ser el propio sesin manager de GNOME el encargado de realizar y
registrar los cambios necesarios para que sto 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 interfcie donde podremos leer mans,
ficheros de texto, en un entorno grafico, y el segundo instala el xterm propio de GNOME.
Una aplicacin que dar un aspecto mucho ms amigable a GNOME, ser Nautilus , concebido, en principio, como un
gestor de ficheros, pero que adems nos permitir configurar el desktop. Para su correcto funcionamiento, Nautilus necesita de Mozilla M18 y de GNOME Helix. Por tanto, los paquetes a instalar sern los siguientes: nautilus-suggested,

11.6. DESKTOP MANAGERS

117

para hacer la instalacin de Nautilus, mozilla, para hacer una instalacin completa del navegador (en cuanto a su
configuracin, podemos instalar las fuentes True Type, y podemos poner en auto el sound daemons dsp wrapper).
GNOME es un proyecto en constante desarrollo y que ofrece multitud de aplicaciones. Por eso, una vez instalado su
sistema bsico, sugerimos al lector que vistite su pgina http://www.gnome.org y que sea l mismo el que explore,
descubra y decida cul de ellas pueden ser de su inters para instalrselas. La sola ejecucin de la lnea siguiente nos
puede dar una idea de la magnitud del proyecto:
brau:~# apt-cache search gnome

Debian Woody integra la versin 1.4 de GNOME. Estando ya disponible la versin 2.2, proponemos modificar el
contenido de /etc/apt/sources.list aadiendo las lneas siguientes, para poder actualizar, o instalar de raz los
paquetes de esta versin debianizados:
#GNOME2
deb http://ftp.acc.umu.se/mirror/mirrors.evilgeniuses.org.uk/debian/backports/woody gnome2.2/
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 comandos 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 manager concreto, se trata de kwm, basado en Qt toolkit
y en las propias kdelibs. Tambin dispone de su launcher panel: kpanel, de su propio gestor de archivos: Konqueror
y de su utilidad de configuracin: Control Panel. bviamente, KDE puede estar instalado en el mismo sistema donde
hayamos instalado GNOME, e incluso hay apliaciones de pertenecientes a un desktop manager que pueden correr en el
otro. Adems, KDE tambin tiene su propio display manager (kdm) junto con muchsimas ms aplicaciones. Nuevamente
se recomienda al lector una visita a su pgina para conocer sus posibilidades: http://www.kde.org, i la pgina del
encargado de integrar KDE en Debian http://people.debian.org/ ccheney/. Tambin podemos ejecutar la
lnea siguiente para ver la integracin de KDE en Debain:
brau:~# apt-cache search kde

Los paquetes bsicos de KDE estn en el paquete kdebase. ste ser, pues, el primero que instalaremos:
brau:~# apt-get install kdebase

Nuevamente deberemos reinicializar nuestro window manager para tener acceso al desktop manager recin instalado. Una vez hecho esto podemos proceder a instalar el gestor de archivos, paquete konqueror. Mediante el paquete
kde-i18n-es podemos instalar los ficheros necesarios para que KDE trabaje en castellano.
A partir de este punto, ya ser cada usuario el que instalar los distintos paquetes del proyecto que le sean de inters.
Por lo que a versiones se refiere, Debian Woody integra la versin 2. Para disponer de versiones ms recientes hay
que recurrir a paquetes no oficiales. Si se desea tener acceso a estos paquetes, podemos aadir la siguiente lnea 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 y como ya haciamos para preestablecer el window maker por defecto, podemos utilizar el men del comando
update-alternatives para seleccionar el session manager:
brau:~# update-alternatives --config x-session-manager

118

CAPTULO 11. TALLER DE X-WINDOWS

11.7. Personalizacin de algunos aspectos


El diseo del entorno grfico X responde al ambicioso objetivo de sacar el mximo rendimiento del hardware disponible,
usando el mnimo de sus recursos, y ofrecer la mxima flexibilidad posible. La estructura de servidor cliente en que se
basa este sistema hace posible que estos objetivos sean una realidad, y las aparentes dificultades con las que se encuentra
el usuario novel desaparecen rpidamente con un poco de prctica para permitir que afloren las mltiples ventajas que
ofrece este diseo. En esta seccin slo se pretende dar una somera idea de la potencia de este sistema, la cual se pone
plenamente de manifiesto cuando se trabaja en red, aunque queda un poco ensombrecida cuando se trabaja en un sistema
stand alone como sobre el cual se desarrolla todo este curso. De todas formas se introducen algunos conceptos que pueden
ser de utilidad cuando se entre a trabajar en red.

11.7.1. Personalizacin de aspectos locales


En general los archivos de configuracin se hallan en el directorio /etc/X11/ o en algunos de sus subdirectorios. De
forma personalizada, cada usuario puede redefinir los parametros de configuracin y aadir de nuevos creando o editando
en su directorio de home los ficheros que llevan el mismo nombre que los de configuracin general pero precedidos de un
.. Se podrn redefinir o establecer todos aquellos parmetros que no requieran de permisos de superusuario, ya que los
archivos de home se procesan despus de los de configuracin general, y los parmetros siempre tomarn el ltimo valor
que se les asigne.
Xsession
/etc/X11/Xsession es un script que se ejecuta al entrar en una sessin de ususario. Este script es el que gobierna todo el proceso de arranque de la sesin hasta que podemos empezar a trabajar, y tambin es el encargado
de gestionar los mensajes de posibles errores que se puedan producirdurante 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 automticamente bbkeys en background al iniciar la sesin, este
contendr las siguientes lneas:

bbkeys &
blackbox

Xresources
En el archivo $HOME/.Xresources personalizaremos el aspecto de las distintas aplicaciones. La sintaxis es
application*parameter: value. Asi pues, si quisiramos invertir los colores de laplicacin xterm, aadiriamos la lnea siguiente en el fichero:

Xterm*reverseVideo: true

El comando xrdb es el encargado de gestionar la base de datos de Xresources. Mediante xrdb -query podemos
conecer todas las propiedades establecidas y su valor, y mediante el parmetro -display obtendremos un listado de
todos los parmetros que acepta el comando. Si a ste le pasamos como parmetro la ubicacin de un fichero, leer de l
todas las definiciones de parmetros.
Xmodmap
El servidor grfico usa la tabla de cdigos de caracteres para hacer la conversin de seales provinientes del teclado
(server-independent) a smbolos del sistema (server-dependent). La tabla de conversin a usar a sido seleccionada durante

11.7. PERSONALIZACIN DE ALGUNOS ASPECTOS

119

el proceso de configuracin del teclado, pero el comando xmodmap nos permite modificar su contenido. Un ejemplo de
su uso puede ser el siguiente4 :

brau:~# xmosmap -e "keycode 127 = Delete"


brau:~# xmosmap -e "keycode 22 = BackSpace"

Mediante los parmetro -pk xmodmap nos devolver todo el contenido de la tabla de conversin que se est
usando.

11.7.2. Personalizacin de aspectos de red


Los aspectos aqu presentados tambin son de inters para un sistema stand alone, ya que, como todo el sistema
operativo, el sistema X usa siempre un diseo orientado a red.
$DISPLAY
La variable $DISPLAY sirve para indicar al cliente con qu servidor debe comunicarse. Su sintaxis es la siguiente:
hostname:display_number.screen_number. As pues, si hubisemos definido otro terminal grfico al sistema
X, aadiendo la lnea siguiente a /etc/X11/xdm/Xservers:

:1 local /usr/X11R6/bin/X vt8

Podramos lanzar una aplicacin grfica desde un xterm de un terminal grfico a otro definiendo la variable adecuadamente. As pues, si quisiramos lanzar xeyes desde el primer terminal grfico, via xterm, y displayarlo en el segundo,
procediramos de la forma siguiente:

brau:~$ set DISPLAY :0.1; export DISPLAY


brau:~$ xeyes &

Si entramos en una sesin grfica, abrimos un xterm, cambiamos de usuario mediante el comando su y probamos
de lanzar una aplicacin grfica se nos devolver un mensage de error indicndonos que se puede establecer coneccin
con el servidor. Una estrategia para evitar este problema es utilizar con el parmetro -p para que se exporte todo el
conjunto de variables de entorno, y evitar as, que el servidor rechace nuestra peticin de coneccin. Esta prctica puede
ser muy til para lanzar programas de configuraci que necesitan permisos de root, ya que nos evitar tener que entrar en
el entorno grfico como root (prctica 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 grfico de forma remota, es decir,
qu mquinas cliente pueden lanzar una aplicacin para ser displayada en el servidor. Su sintaxis es la siguiente: xhost
+hostname. Si no se especifica ningn hostname, cualquier mquina podr lanzar aplicaciones sobre el servidor 5 .
El comando xauth sirve para determinar qu usuarios pueden lanzar aplicaciones sobre el servidor grfico. As pues,
mediante la combinacin de estos dos comandos podremos establecer una poltica de seguridad de acceso al servidor X
bastante razonable.
4 Estos comandos fueron utilizados durante mucho tiempo debido a la inversin de asignacin de smbolos en las tablas de conversin; actualmente,
pero, este problema est resuelto.
5 Por defecto, no se permite la coneccin desde ningn equipo remoto.

120

CAPTULO 11. TALLER DE X-WINDOWS

11.8. Configuracin de impresoras


La tarea de configurar impresoras se puede ver facilitada a partir del entorno grfico. Existen mulitud de aplicaciones
para configurar el sistema de impresin nativo (basado en lpd como servidor y lpr como cliente), y otras que substituyen
este sistema por uno propio, comnmente tambin basado en la estructura cliente servidor. En esta seccin presentaremos
dos de estas herramientas: CUPS y LPRng, ambos con su sistema propio servidor de impresin.
Para la instalacin de LPRng hay que instalar necesariamente el paquete lprng. El paquete que contiene la GUI es de
configuracin del fichero /etc/printcap basado en LPRng es lprngtool. bviamente, para hacer modificaciones
en dicho fichero de configuracin, habr que ejecutar el comando lprngtool con privilegios de root. Adicionalmente se
recomienda instalar el paquete printop que aporta una interficie grfica para todo el sistema de impresin, y el paquete
lprng-doc, el cual contiene toda la documentacin de este sistema de impresin.
Para instalar CUPS (Common Linux Printing System) habr que instalar el paquete del servidor de impresin,
cupsys; y se recomineda instalar, junto a este paquete el de clientes de impresin, paquete cupsys-client. Tambin se puede instalar el paquete cupsys-bsd para disponer de los comandos habituales en el sistema de impresin
de BSD. Por lo que ser refiere a drivers, los paquetes cupsys-driver-gimpprint y cupsomatic-ppd, aportan
gran nmero de ellos junto con numerosos algoritmos de procesamiento de imagen, definicin de tamaos de papel, etc.

11.9. OpenOffice
En esta seccin, aunque se aparte un poco del objeto principal del curso, presentaremos una suite ofimtica que puede
ser de extraordinaria utilidad para aquellos que estn acostumbrados a utilizar software de ste tipo. Se trata de OpenOffice6 , proyecto derivado de StarOffice, de Sun MicroSystems. Hay que destacar que este proyecto es multiplataforma, 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 aadido la lnea anterior a /etc/apt/sources.list y hayamos actualizado la base de datos
mediante apt-get update, bastar con ejecutar la lnea siguiente para proceder a la instalacin:
brau:~# apt-get install openoffice.org openoffice.org-l10n-en

Slo hay que tener presente, durante el proceso de instalacin (el cual debe ejecutarse bajo un entorno grfico) que
hay que hacer la instalacin para red. As slo ser necesario que en el directorio home de cada usuario exista un pequeo
directorio donde se guardarn sus configuraciones personales.
Una vez se haya instalado el programa la primera vez, cada usuario deber ejecutar el programa siguiente, para que se
cree su directorio:
/usr/lib/openoffice/program/setup

Una vez hecho esto, y se hayan respuesto algunas preguntas, mediante el comando openoffice abriremos la suite.

11.10. Conclusin
Con este taller se termina el material didctico del segundo mdulo del mster. En l hemos aprendido a instalar
el entorno grfico al sistema, el cual, como ya vimos en su momento, no es una parte fundamental dentro del sistema
operativo. Pero es bvio que su utilidad en muchos casos, y no es llegado hasta este punto que muchos creen que el
sistema operativo que ha sido objeto de estudio en este mdulo puede ser una alternativa seria a otros sistemas. Llegados
6 http://www.openoffice.org/

11.10. CONCLUSIN

121

a este punto los autores querramos manifestar nuestro absoluto convencimiento que GNU/Linux es un sistema operativo
extraordinario, no slo debido a su entorno grfico, que es lo que quizs sorprenda ms a primera vista, sino por un sinfin
de argumentos, de entre los cuales podemos destacar su filosofa, su robustez, su adaptabilidad, su potncia, por los niveles
de seguridad que se pueden conseguir, etc. Estamos convencidos de que este sistema operativo es una apuesta de futuro
para el cual, si bien ya ha demostrado que es capaz de abrirse un espacio en el mundo de los sistemas operativos, slo
cabe esperar sorpresas positivas.
Deseamos haber sabido dar los conocimientos suficientes y transmitir el entusiasmo necesario para que el lector inice
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.

APNDICES

Apndice A

Tablas de comandos
A.1.

Sistema de ficheros

COMANDO
ls [pattern]

cd [ruta]
pwd
find [parmetros] [path]

ln
ruta
breNuevoLink]

A.2.

[nom-

SIGNIFICADO Y PARMETROS TILES


Lista los contenidos de un directorio determinado.
-a muestra todos los contenidos, incluso los que empiezan por .
-l muestra la informacin completa relativa a los contenidos
-h acompaada de -l muestra el tamao de los archivos en unidades de bytes,
KB, MB, GB
-S ordena el listado por tamao
-w muestra el listado por columnas
-R muestra el listado de forma recursiva, pasando por todos los subdirectorios
--color colorea el texto del listado segun el tipo de archivo
Cambia al directorio especificado. Si no se especifica ninguno va al home del usuario
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 bsqueda insensible a maysculas o minsculas
-maxdepth numLevels realiza la bsqueda 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 simblico, se hace una
copia exacta y se modifica frente a cualquier actualizacin (hard link)
-s crea un enlace simblico

Ayuda del sistema

COMANDO
man [numManual] comando

SIGNIFICADO Y PARMETROS TILES


Muestra el contenido del manual del comando mediante un paginador.

info comando

Otra fuente de ayuda, que a veces complementa los contenidos del man, y en otras es
la nica documentacin que se mantiene.
Busca todos los comandos que contienen la palabra clave en la descripcin de su
manual.

apropos palabraClave

124

A.3. PERMISOS DE LOS FICHEROS

A.3.

Permisos de los ficheros

COMANDO
chmod modo fichero

chown
propietario[.grupo] fichero
chgrp grupo fichero
umask modo

A.4.

SIGNIFICADO Y PARMETROS TILES


Establece los permisos de ficheros y/o directorios.
-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 directorios.
-R el comando acta de forma recursiva
Establece el grupo al que pertenecen ficheros y/o directorios.
-R el comando acta de forma recursiva
Inicializa los permisos de todos los ficheros creados a partir del momento en que se
ejecuta el comando.

Copia y borrado de ficheros

COMANDO
rm fichero

rmdir directori
cp
ficheroOrigen
ficheroDestino

mv
ficheroOrigen
ficheroDestino

SIGNIFICADO Y PARMETROS TILES


Comando para borrar ficheros y/o directorios.
-f suprime los mensajes de confirmacin
-R el comando acta de forma recursiva
-i pregunta antes de proceder al borrado
Borra directorios vacos.
Copia archivos del origen al destino especificados.
-f no pide confirmacin
-i pide confirmacin antes de copiar cada fichero
-l realiza enlaces en vez de copiar
-R acta recursivamente copiando los contenidos de los subdirectorios
-s realiza enlaces simblics en vez de copiar
Mueve archivos del origen al destino especificados.
-f no pide confirmacin
-i pide confirmacin antes de mover cada fichero

A.5.

Parada o reinicio

COMANDO
logout
halt
reboot

SIGNIFICADO Y PARMETROS TILES


Sale de la shell y devuelve al login.
Inicia el proceso de paro del sistema (nunca debemos apagar el ordenador hasta que
no se displeye Power Down).
Reinicia el sistema, es decir, procede al paro de ste y luego resetea el ordenador.

125

APNDICE A. TABLAS DE COMANDOS

126

A.6.

Operaciones con ficheros

COMANDO
cat [archivo]

less archivo

more archivo
grep [pattern] archivo

cut archivo

wc fichero

diff archivo1 archivo2

SIGNIFICADO Y PARMETROS TILES


Muestra el contenido del archivo o, si este no se ha especificado, muestra por pantalla
todo lo que se entra por teclado.
-n enumera las lneas mostradas
Paginador para mostrar contenido de archivos. Las opciones que se especifican a continuacin NO son parmetros del comando, sino teclas de acceso directo a utilitzar en
su uso.
/pattern dentro de less podemos realizar una bsqueda del pattern especificado
precedido de /; Para continuar la bsqueda hacia delante o hacia atrs, usaremos las
teclas n y N respectivamente
FIN va al final del archivo
INICIO va al principio del archivo
AVPAG avanza pgina
REPAG retrocede pgina
RETURN avanza una lnea
SPACE avanza una pguina
Muestra el contenido del archivo de una forma similar a less pero ms simple (no
permite, por ejemplo, la opcin de retroceder).
Busca las lneas que cumplen con el pattern y las muestra por pantalla.
-b muestra el nmero de byte de cada lnea encontrada
-c no muestra las lneas por pantalla, sino que las cuentas y devuelve el nmero
-e pattern til cuando el pattern empieza por el carcter -
-i ignora la diferencia entre maysculas y minsculas
-n muestra el nmero de lnea
-v invierte el resultado de la bsqueda
-w selecciona slo aquellas lneas donde el pattern es toda una palabra

Muestra los campos del achivo.


-d carcter indica qu carcter es el delimitador de campo
-f numCampo indica qu campo debe mostrado
-b listaBytes del campo seleccionado, slo se quiere ver los bytes indicados,
separados por comas
Muestra el nmero de bytes, lneas y palabras del fichero.
-c slo muestra los bytes
-l slo muestra el nmero de lneas
-w slo muestra el nmero de palabras
Muestra les diferencias entre archivo1 y archivo2.
-B ignora lneas en blanco
-i ignora la diferencia entre maysculas y minsculas
-w ignora los espacios en blanco

A.7. COMPRESIN DE FICHEROS Y COPIAS DE SEGURIDAD

A.7.

Compresin de ficheros y copias de seguridad

COMANDO
tar opciones archivo
[archivoOrigen]

cpio
gzip archivo
gunzip archivo
zip
archivoFinal
archivoOrigen

unzip archivo

SIGNIFICADO Y PARMETROS TILES


Une distintos archivos y directorios en uno de 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
-cvzf como en el caso anterior, pero comprimiendo los archivos con gzip
-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
Para hacer copias de seguridad.
comprime el archivo y le da la extensin .gz.
-d descomprime.
Descomprime el archivo.
Comprime todos los archivos origen en archivo final (el cual se caracteriza por terminar con .zip.
-e encripta el archivo mediante una palabra clave que se pide al ejecutar el comando
Descomprime el archivo.

127

APNDICE A. TABLAS DE COMANDOS

128

A.8.

Operaciones de disco

COMANDO
df

du [archivo]

mkfs
dumpe2fs dispositivo
fsck dispositivo

sync
badblocks dispositivo

A.9.

SIGNIFICADO Y PARMETROS TILES


Muestra el estado de las particiones montadas por lo que se refiere a espacio total,
ocupado y libre.
-h muestra la informacin en unidades de bytes, KB, MB, GB
-m muestra la informacin en unidades de MB
Muestra los bloques que ocupa archivo.
--block-size=TAMAO nos permite establecer el tamao de bloque que deseemos
-h muestra la informacin en unidades de bytes, KB, MB, GB
Comando para crear un nuevo sistema de ficheros. Debido a la naturaleza del comando, se recomienda la lectura y la comprensin del manual del comando.
Muestra informacin del sistema de archivos indicado.
Hace un chequeo del sistema de archivos y repara sus possibles fallos. Es importante
tener en cuenta que el dispositivo no debe estar montado en el sistema durante el uso
del comando.
Sincroniza los archivos de cache y disco duro.
Busca errores en la particin especificada.
-s se displaya informacin del proceso

Usuarios y grupos

COMANDO
whoami
groups
who

w [nombreUsuario]
write
nombreUsuario
[consola]
talk
nombreUsuario
[consola]
mesg [y|n]
adduser [nombreUsurio]
userdel nombreUsuario
addgroup
[nombreGrupo]
groupdel nombreGrupo

SIGNIFICADO Y PARMETROS TILES


Muestra qu usuario somos.
Muestra el grupo al que pertenecemos.
Muestra los usuarios que estan en el sistema en el momento de la ejecucin del comando.
-T indica, para cada usuario, si permite la recepcin de mensajes
Muestra informacin extendida sobre los usuarios del sistema en el momento de la
ejecucin. Si no se especifica un usuario en concreto nos la muestra para todos.
Para mandar un mensaje al usuario especificado. Para determinar la consola podemos
utilizar los comandos who o w.
Abre una sesin de chat con el usuario especificado si ste la acepta.
Sin pasar parmetros, muestra si est o no activa la recepcin de mensajes. El
parmetro y la activa y el parmetro n la desactiva.
Crea un nuevo usuario del sistema.
Elimina el usuario especificado del sistema.
Crea un nuevo grupo.
Elimina un grupo del sistema.

A.10. GESTIN DE PROCESOS

A.10.

Gestin de procesos

COMANDO
ps

top
kill PID
killall nombreProceso
nice [comando]

renice prioritad PID


at tiempo
atq
atrm numComando
batch

SIGNIFICADO Y PARMETROS TILES


Muestra los procesos del sistema.
-A muestra todos los procesos que estn ejecutndose en el sistema (igual que
-e)
-H muestra los procesos ordenados por jerarqua
-l muestra informacin extendida sobre los procesos
Muestra los procesos en ejecucin de forma interactiva.
Manda una seal de finalizacin al proceso.
-9 enva la seal de matar el proceso
Manda la seal de fin de proceso a todos los procesos indicados.
-9 enva la senyal de matar els procesos
Muestra el nivel de prioridad de ejecucin que se utiliza por defecto, y si se le pasa
como parmetro un comando junto con la prioridad deseada, ajusta la prioridad del
comando a la especificada.
-n nuevoNivel ejecutar el comando con la prioridad especificada
Cambia la prioridad del PID especificado.
Ejecuta el comando a la hora especificada.
-f comando especifica el comando a ejecutar
Muestra la cola de espera de at.
Para eliminar un comando de la cola de espera. El nmero de comando es el que
devuelve atq.
Ejecuta los comandos o procesos cuando la carga del sistema es baja.
-f comando para especificar el comando

129

Apndice B

El editor vi
B.1. Introduccin
El saber utilizar un editor de textos es imprescindible para poder editar y modificar los ficheros del sistema. Aunque
existen centenares de editores diferentes, el vi siempre ha sido el editor por defecto de los sistemas like UNIX. Aunque
en un principio el vi pueda parecernos un editor muy simple, a medida que nos vayamos acostumbrando a sus comandos
veremos que tiene muchsimas utilidades que nos facilitan mucho la manipulacin de los ficheros. Aunque para tareas
largas (como cuando programamos) existen otros editores ms tiles, la gran mayora de administradores de sistemas
utilizan el vi para muchas de las tareas de administracin. El hecho que sea un editor en modo texto (que permite su
utilizacin en la consola del sistema) y el estar disponible en todos los sistemas hacen del vi el editor ideal en entornos los
UNIX. En GNU/Linux se suele utilizar ms el vim (Vi IMproved), que es 999 % compatible con el vi pero aade unas
cuantas funcionalidades ms.
Para llamar el vi podemos utilizar alguno de los mtodos que vemos en la siguiente tabla:

vi archivo
vi -r archivo

vi + archivo
vi +numLnea archivo
vi archivo1 ...archivoN

vi +/string archivo

Edita el fichero en modo full


screen.
Recupera la ltima versin guardada del
fichero (por los casos en que no salimos
correctamente del editor y queda un fichero
de swap).
Edita el fichero y se sita en la ltima lnea.
Edita el fichero y se sita en la lnea indicada.
Va editando todos los archivos especificados. Para saltar de uno a otro debemos escribir en modo comando :n. Con :n!
no guardamos las modificaciones.
Edita el fichero y sita el cursor en la
primera ocurrencia del string.

B.2. Modos del vi


El vi tiene dos modos de utilizacin: modo comando y modo insercin. En el modo comando todo lo que escribamos
ser interpretado por el editor para realizar acciones concretas, mientras que el modo insercin se utiliza para modificar el
contenido del archivo. Cuando entramos en el vi, por defecto estamos en modo comando. Para cambiar a modo insercin
podemos utilizar cualquiera de las teclas de la siguiente tabla:
130

B.2. MODOS DEL VI

131
a
i
A
I
R
o
O

Inserta despus del carcter al que estamos situados.


Inserta antes del carcter donde estemos situados.
Aade al final de la lnea actual.
Aade al principio de la lnea actual.
Entra en modo insercin reemplazando caracteres.
Aade una lnea en blanco debajo la nuestra y pasa a modo insercin.
Aade una lnea en blanco encima de la actual y pasa a
modo insercin.

Para volver a modo comando podemos utilizar la tecla ESC. En modo insercin lo nico que podemos hacer es
escribir texto, eliminarlo o desplazarnos con las teclas de AVPAG y REPAG. El modo comando nos permite muchsimas
ms acciones. En las siguientes tablas especificamos algunas de las ms comunes:

j
k
l
h
[[
]]
nG
G
RETURN
CTRL+F
CTRL+B
CTRL+D
CTRL+U

:w
:w nombreArchivo
:wq
:x
ZZ
:q
:q!
:e archivo
:e! archivo
:r archivo
:Nr archivo
:sh
:N,Mw!
:N,M

archivo
:=
CTRL+G


Movindonos por el fichero


Siguiente lnea.
Lnea anterior.
Siguiente caracter.
Caracter anterior.
Incio del archivo.
Final del archivo.
Ir a la lnea n.
Ir al final del archivo.
Siguiente lnea.
Pantalla siguiente.
Pantalla anterior.
Media pantalla siguiente.
Media pantalla anterior.

Operaciones con archivos


Guarda el fichero.
Guarda el fichero con el nombre indicado.
Guarda el fichero y sale del editor.
Guarda el fichero y sale del editor.
Guarda el fichero y sale del editor.
Sale si no ha habido cambios en el fichero.
Sale sin guardar los cambios.
Edita el archivo indicado si no hay cambios en el actual.
Edita el archivo indicado perdiendo los cambios en el actual, si hubiera.
Aade el archivo indicado despus de la lnea actual.
Aade el archivo indicado despus de la lnea N.
Ejecuta un shell sin salir del editor; para salir del shell
debemos escribir exit.
Guarda desde la lnea N a la M descartando todas las
otras.
Aade, desde la lnea N a la M el archivo indicado.
Muestra la lnea actual.
Muestra el estado del fichero.

132

APNDICE B. EL EDITOR VI
Copiar, borrar, pegar, buscar y reemplazar
yy
Copia la lnea actual.
Nyy
Copia las N lneas a partir del cursor..
p
Pega las lneas copiadas debajo la actual.
P
Pega las lneas copiadas encima la actual.
x
Borra el caracter de debajo el cursor.
dw
Borra la palabra de debajo el cursor.
dd
Borra la lnea actual.
D
Borra desde la posicin del cursor hasta final de lnea.
/string
Busca el string a partir de la posicin actual. Para
continuar con la bsqueda se puede utilizar n y N
para ir hacia delante o atrs respectivamente.
?string
Como el comando anterior pero en modo invertido.
:set ic
Realiza
las
bsquedas
ignorando
maysculas/minsculas.
:set noic
Realiza las bsquedas con maysculas/minsculas.
:g/HOLA/s//ADIOS Substituye todos los HOLA por ADIOS.

En la lnea inferior del editor veremos los comandos que vayamos escribiendo, que se ejecutarn al apretar el RETURN. Adems, la mayora de estos comandos permiten la repeticin: tan solo debemos escribir el nmero de veces
que queremos que se ejecuten antes que el comando. Por ejemplo, con dd conseguimos que se borre la lnea actual; si
escribiramos 3dd en lugar de la lnea actual se borraran las tres siguientes.

Apndice C

Heramientas de administracin
C.1.

Introduccin

Cuando se administra un sistema GNU/Linux es necesario conocer una gran variedad de aplicaciones y programas
diferentes. Aunque antes de instalar cualquier aplicacin es totalmente imprescindible leerse detenidamente la documentacin que incorpora, en algunos casos las configuraciones pueden llegar a ser realmente complejas. Es por este
motivo que desde hace ya varios aos han ido apareciendo herramientas de administracin ms intuitivas que permiten
manejar mltiples aplicaciones y servicios de forma ms amena.
Al instalar alguna herramienta general de administracin es muy importante que limitemos su uso y acceso a slo el
root del sistema, sino cualquier usuario podra modificar cualquier aspecto del sistema. Adems, tambin debemos estar
muy alerta de los agujeros de seguridad que pueden aparecer en ellas, ya que al tener que poder manejar los programas
instalados en el sistema, la mayora de estas herramientas deben ejecutarse con los permisos de root, con el peligro que
esto conlleva.
Generalmente, estas herramientas globales de administracin incorporan mecanismos para poder configurar y manejar
los aspectos bsicos del sistema y los ficheros de configuracin de las aplicaciones que utilizamos. Si bien es interesante
saber que existen estas herramientas, no es recomendable que basemos toda la configuracin de un servidor en ellas por
varios motivos. En primer lugar debemos tener en cuenta que estos programas no siempre tienen en cuenta todas las
posibilidades que los servidores proporcionan. Esto puede provocar que dejemos sin una configuracin adecuada alguna
opcin importante para nuestras necesidades, que no tengamos en cuenta algn sistema de seguridad, etc. En segundo
lugar, tampoco podemos olbidar que aunque el entorno de configuracin sea ms ameno y, generalmente, ms fcil de
utilizar y manejar, debemos conocer qu es lo que realmente se hace cuando activamos los opciones de los diferentes
programas y servicios que configuramos. Aunque el entorno sea muy intuitivo, esto no implica que no debamos saber qu
significa exactamente cada opcin. Si no tenemos un conocimiento extenso del servicio que estamos manipulando es muy
fcil generar errores que pueden provocar un mal funcionamiento del sistema, agujeros de seguridad, etc. Finalmente, otro
motivo para no utilizar nicamente estas aplicaciones es que en algn momento el sistema puede tener fallos o errores que
no nos permitan utilizarlas o sencillamente que en otros sistemas que tengamos que administrar no estn instaladas. Si no
conocemos con un poco de detalle los ficheros de configuracin de las aplicaciones que uitilizamos nos encontraremos
totalmente indefensos ante cualquier pequeo problema que pueda surgir.
Es por todos estos motivos que la utilizacin de estas herramientas debe realizarse con cuidado y sabiendo exactamente qu es lo que estn modificando. En algunos casos pueden ser muy tiles para ver como realizar algn tipo de
configuracin complicada o para detectar errores que hayamos generado. La forma como deberamos utilizarlas es como
un complemento de nuestra administracin, pero nunca basarnos totalmente en ellas.
Todas las distribuciones de GNU/Linux acostumbran a incorporar sus propias herramientas automticas de administracin. Esto es una caracterstica claramente diferenciadora de las diferentes distribuciones de GNU/Linux. En SuSE, por
ejemplo se incorpora una aplicacin denominada Yast2 que nos permite realizar casi cualquier operacin de configuracin del sistema; RedHat incorpora mltiples programas diferentes para configurar la red, los daemons, los servidores
de aplicacin, etc.; al instalar un paquete en Debian ya se permite inicilizar una configuracin a partir de las respuestas
que damos en varias pantallas de dilogo; algunas aplicaciones llevan sus propios scripts para permitir configuraciones
estndar ms rpidas, etc. An as, si sabemos qu es lo que realmente hacen estas aplicaciones y en qu ficheros guardan
su configuracin, al tener problemas con el sistema su arreglo ser mucho ms fcil. Adems de estas herramientas nicas
133

APNDICE C. HERAMIENTAS DE ADMINISTRACIN

134

para la distribucin que utilicemos existen algunas otras de generales que podemos instalar en la mayora de distribuciones
existentes. Aunque hay unas cuantas decenas y cada administrador debe escoger la que ms le guste o se adapte a sus
necesidades, en este apndice mostraremos un par de las ms verstiles y populares: linuxconf y webmin.

C.2.

Linuxconf

La aplicacin de administracin general Linuxconf est basada en un entorno de mens de texto que podemos
utilizar desde cualquier consola del sistema.
Como podemos apreciar en la imagen, linuxconf divide sus operaciones en las siguientes secciones:
Configuracin: esta es la seccin principal de linuxconf, donde podemos configurar la mayora de aspectos
del sistema como la red, los usuarios, los perifricos instalados, etc. En la figura C.1 podemos ver el dilogo de
configuracin de la red y de usuarios.
Control: seccin para realizar acciones concretas en el sistema tales como montar o desmontar unidades, cambiar la
hora del sistema, personalizar los mens, etc. En la figura C.2 podemos apreciar algunos de las acciones del men
de panel de control.
Estado: cuando queramos ver los logs o el estado de algn aspecto del sistema podemos recorrer a los mens de esta
seccin. En ellos se utilizan muchos de los comandos bsicos del sistema para ver el estado del disco, la memoria
usada, etc.
Tareas: otros dilogos de configuracin para inicializar correctamente un mdem, la red, etc.

Figura C.1: Configuracin de red y usuarios.

Figura C.2: Panel de control de Linuxconf.


Otra forma de utilizar este programa es a partir de un navegador web. Por defecto el acceso va un navegador
est cerrado, por lo que antes de utilizarlo deberemos habilitarlo a partir del men de Networking, Linuxconf
network access y activando la opcin de Enable network access. Abriendo el navegador y accediendo a

C.3. WEBMIN

135

http://localhost:98/ tendremos los mismos dilogos y opciones del men de linuxconf en formato html.
Por defecto slo se podr acceder a este servicio desde la misma mquina, 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 veamos anteriormente pero se puede utilizar en las X. En la figura C.3 podemos ver su aspecto.

Figura C.3: Aspecto de Linuxconf en gnome.

C.3.

Webmin

Tal y como su nombre indica webmin es una herramienta de configuracin va web. Su diseo est muy bien conseguido y la mayora de sus mtodos de configuracin estn muy bien pensados. Bien utilizada, es una herramienta que
puede llegar a sernos muy til. Por defecto, al instalarla abre el puerto 10000 para que podamos acceder a ella a partir
de un navegador cualquiera. Antes de entrar nos pedir la contrasea del administrador del sistema, aunque tambin tiene
un sistema muy til de administracin de usuarios propios con el cual le podemos especificar qu acciones puede realizar
cada uno de ellos. Esta opcin es muy interesante porque permitir configurar ms de un administrador de sistema cada
uno especializado en algunas tareas.
Para hacernos una idea de la aplicacin mostramos una serie de capturas de diferentes secciones (figuras C.4, C.5,
C.6, C.7).

Figura C.4: Administracin de usuarios del sistema.

136

APNDICE C. HERAMIENTAS DE ADMINISTRACIN

Figura C.5: Configuracin de arranque del sistema.

Figura C.6: Informacin de disco.

Figura C.7: Navegador de archivos.

Apndice D

GNU Free Documentation License


GNU Free Documentation License
Version 1.2, November 2002
Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. 59
Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but
changing it is not allowed.
0. PREAMBLE
The purpose of this License is to make a manual, textbook, or other
functional and useful document "free"in the sense of freedom: to assure
everyone the effective freedom to copy and redistribute it, with or without
modifying it, either commercially or noncommercially. Secondarily, this
License preserves for the author and publisher a way to get credit for their
work, while not being considered responsible for modifications made by
others.
This License is a kind of opyleft", which means that derivative works
of the document must themselves be free in the same sense. It complements
the GNU General Public License, which is a copyleft license designed for
free software.
We have designed this License in order to use it for manuals for free
software, because free software needs free documentation: a free program
should come with manuals providing the same freedoms that the software
does. But this License is not limited to software manuals; it can be used for
any textual work, regardless of subject matter or whether it is published as
a printed book. We recommend this License principally for works whose
purpose is instruction or reference.
1. APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work, in any medium,
that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide,
royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual
or work. Any member of the public is a licensee, and is addressed as ou".
You accept the license if you copy, modify or distribute the work in a way
requiring permission under copyright law.
2

A "Modified Version.of the Document means any work containing the


Document or a portion of it, either copied verbatim, or with modifications
and/or translated into another language.
A "Secondary Section"is a named appendix or a front-matter section
of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Documents overall subject (or
to related matters) and contains nothing that could fall directly within that
overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with
related matters, or of legal, commercial, philosophical, ethical or political
position regarding them.

The "Invariant Sections.a re certain Secondary Sections whose titles


are designated, as being those of Invariant Sections, in the notice that says
that the Document is released under this License. If a section does not fit
the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the
Document does not identify any Invariant Sections then there are none.
The over Texts.are certain short passages of text that are listed, as
Front-Cover Texts or Back-Cover Texts, in the notice that says that the
Document is released under this License. A Front-Cover Text may be at
most 5 words, and a Back-Cover Text may be at most 25 words.
A "Transparentopy of the Document means a machine-readable
copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with
generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is
suitable for input to text formatters or for automatic translation to a variety
of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has
been arranged to thwart or discourage subsequent modification by readers
is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent"is called .Opaque".
Examples of suitable formats for Transparent copies include plain
ASCII without markup, Texinfo input format, LaTeX input format, SGML
or XML using a publicly available DTD, and standard-conforming simple
HTML, PostScript or PDF designed for human modification. Examples of
transparent image formats include PNG, XCF and JPG. Opaque formats
include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML,
PostScript or PDF produced by some word processors for output purposes
only.
The "Title Page"means, for a printed book, the title page itself, plus
such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do
not have any title page as such, "Title Page"means the text near the most
prominent appearance of the works title, preceding the beginning of the
body of the text.
A section "Entitled XYZ"means a named subunit of the Document
whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands
for a specific section name mentioned below, such as .Acknowledgements",
"Dedications", "Endorsements", or "History".) To "Preserve the Title. of
such a section when you modify the Document means that it remains a
section "Entitled XYZ.according to this definition.
The Document may include Warranty Disclaimers next to the notice
which states that this License applies to the Document. These Warranty
Disclaimers are considered to be included by reference in this License, but
only as regards disclaiming warranties: any other implication that these

137

138

APNDICE D. GNU FREE DOCUMENTATION LICENSE

Warranty Disclaimers may have is void and has no effect on the meaning
of this License.
2. VERBATIM COPYING
You may copy and distribute the Document in any medium, either
commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions
whatsoever to those of this License. You may not use technical measures to
obstruct or control the reading or further copying of the copies you make or
distribute. However, you may accept compensation in exchange for copies.
If you distribute a large enough number of copies you must also follow the
conditions in section 3.
You may also lend copies, under the same conditions stated above,
and you may publicly display copies.
3. COPYING IN QUANTITY
If you publish printed copies (or copies in media that commonly have
printed covers) of the Document, numbering more than 100, and the Documents license notice requires Cover Texts, you must enclose the copies
in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover
Texts on the front cover, and Back-Cover Texts on the back cover. Both
covers must also clearly and legibly identify you as the publisher of these
copies. The front cover must present the full title with all words of the title
equally prominent and visible. You may add other material on the covers in
addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated
as verbatim copying in other respects.

I. Preserve the section Entitled "History", Preserve its Title, and add to it
an item stating at least the title, year, new authors, and publisher of the
Modified Version as given on the Title Page. If there is no section Entitled
"History"in the Document, create one stating the title, year, authors, and
publisher of the Document as given on its Title Page, then add an item
describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access
to a Transparent copy of the Document, and likewise the network locations
given in the Document for previous versions it was based on. These may be
placed in the "History"section. You may omit a network location for a work
that was published at least four years before the Document itself, or if the
original publisher of the version it refers to gives permission. K. For any
section Entitled .Acknowledgements.o r "Dedications", Preserve the Title of
the section, and preserve in the section all the substance and tone of each
of the contributor acknowledgements and/or dedications given therein. L.
Preserve all the Invariant Sections of the Document, unaltered in their text
and in their titles. Section numbers or the equivalent are not considered
part of the section titles. M. Delete any section Entitled "Endorsements".
Such a section may not be included in the Modified Version. N. Do not
retitle any existing section to be Entitled "Endorsements.or to conflict in
title with any Invariant Section. O. Preserve any Warranty Disclaimers.
If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied
from the Document, you may at your option designate some or all of these
sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Versions license notice. These titles must be distinct
from any other section titles.

If the required texts for either cover are too voluminous to fit legibly,
you should put the first ones listed (as many as fit reasonably) on the actual
cover, and continue the rest onto adjacent pages.

You may add a section Entitled "Endorsements", provided it contains


nothing but endorsements of your Modified Version by various partiesfor
example, statements of peer review or that the text has been approved by
an organization as the authoritative definition of a standard.

If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque
copy a computer-network location from which the general network-using
public has access to download using public-standard network protocols a
complete Transparent copy of the Document, free of added material. If
you use the latter option, you must take reasonably prudent steps, when
you begin distribution of Opaque copies in quantity, to ensure that this
Transparent copy will remain thus accessible at the stated location until at
least one year after the last time you distribute an Opaque copy (directly or
through your agents or retailers) of that edition to the public.

You may add a passage of up to five words as a Front-Cover Text, and


a passage of up to 25 words as a Back-Cover Text, to the end of the list
of Cover Texts in the Modified Version. Only one passage of Front-Cover
Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover
text for the same cover, previously added by you or by arrangement made
by the same entity you are acting on behalf of, you may not add another;
but you may replace the old one, on explicit permission from the previous
publisher that added the old one.

It is requested, but not required, that you contact the authors of the
Document well before redistributing any large number of copies, to give
them a chance to provide you with an updated version of the Document.
4. MODIFICATIONS
You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the
Modified Version under precisely this License, with the Modified Version
filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition,
you must do these things in the Modified Version:
A. Use in the Title Page (and on the covers, if any) a title distinct from
that of the Document, and from those of previous versions (which should,
if there were any, be listed in the History section of the Document). You
may use the same title as a previous version if the original publisher of that
version gives permission. B. List on the Title Page, as authors, one or more
persons or entities responsible for authorship of the modifications in the
Modified Version, together with at least five of the principal authors of the
Document (all of its principal authors, if it has fewer than five), unless they
release you from this requirement. C. State on the Title page the name of
the publisher of the Modified Version, as the publisher. D. Preserve all the
copyright notices of the Document. E. Add an appropriate copyright notice
for your modifications adjacent to the other copyright notices. F. Include,
immediately after the copyright notices, a license notice giving the public
permission to use the Modified Version under the terms of this License, in
the form shown in the Addendum below. G. Preserve in that license notice
the full lists of Invariant Sections and required Cover Texts given in the
Documents license notice. H. Include an unaltered copy of this License.

The author(s) and publisher(s) of the Document do not by this License


give permission to use their names for publicity for or to assert or imply
endorsement of any Modified Version.
5. COMBINING DOCUMENTS
You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified
versions, provided that you include in the combination all of the Invariant
Sections of all of the original documents, unmodified, and list them all as
Invariant Sections of your combined work in its license notice, and that
you preserve all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and
multiple identical Invariant Sections may be replaced with a single copy.
If there are multiple Invariant Sections with the same name but different
contents, make the title of each such section unique by adding at the end
of it, in parentheses, the name of the original author or publisher of that
section if known, or else a unique number. Make the same adjustment to
the section titles in the list of Invariant Sections in the license notice of the
combined work.
In the combination, you must combine any sections Entitled "History"in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled .Acknowledgements", and any
sections Entitled "Dedications". You must delete all sections Entitled "Endorsements".
6. COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of

139

this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for
verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this
License into the extracted document, and follow this License in all other
respects regarding verbatim copying of that document.
7. AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate
and independent documents or works, in or on a volume of a storage or distribution medium, is called an .aggregate"if the copyright resulting from the
compilation is not used to limit the legal rights of the compilations users
beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the
aggregate which are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies
of the Document, then if the Document is less than one half of the entire aggregate, the Documents Cover Texts may be placed on covers that bracket
the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on
printed covers that bracket the whole aggregate.
8. TRANSLATION
Translation is considered a kind of modification, so you may distribute
translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their
copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections.
You may include a translation of this License, and all the license notices

in the Document, and any Warranty Disclaimers, provided that you also
include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between
the translation and the original version of this License or a notice or disclaimer, the original version will prevail.
If a section in the Document is Entitled .Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title
(section 1) will typically require changing the actual title.
9. TERMINATION
You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to
copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who
have received copies, or rights, from you under this License will not have
their licenses terminated so long as such parties remain in full compliance.
10. FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions of
the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail
to address new problems or concerns. See http://www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this
License .or any later version.applies to it, you have the option of following the terms and conditions either of that specified version or of any later
version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License,
you may choose any version ever published (not as a draft) by the Free
Software Foundation.

Autores (por orden alfabtico):


Aul Llins, Francesc (francesc.auli@uab.es)
Baig Vias, Roger (roger.baig@uab.es)

Você também pode gostar