Buch lesen: «El gran libro de Debian GNU/Linux»
El gran libro de Debian GNU/Linux
Primera edición, 2012
© 2012 Rafael Eduardo Rumbos Salomón
© MARCOMBO, S.A. 2012
Gran Via de les Corts Catalanes, 594
08007 Barcelona
«Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra sólo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra».
ISBN: 978-84-267-2032-0
Debian, sus logos y fuente son marcas registradas que hacen referencia a un Software centrado en el Interés Público Inc.
El logo sin “Debian” se libera bajo la siguiente licencia:
Copyright (c) 1999 Software de Interés Público
Se concede permiso, de forma gratuita, a cualquier persona que obtenga una copia de este software y archivos de documentación asociados (el “Software”), para trabajar con el sin restricciones, incluyendo, los derechos para usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar, y / o vender copias del Software, con sujeción a las siguientes condiciones:
El aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE ENTREGA “TAL CUAL”, SIN GARANTÍA DE NINGÚN TIPO, EXPRESAS O IMPLÍCITAS, INCLUYENDO PERO NO LIMITADO A LAS GARANTÍAS DE COMERCIALIZACIÓN, APTITUD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DEL COPYRIGHT SERÁN RESPONSABLES POR CUALQUIER RECLAMACIÓN, DAÑOS U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O CUALQUIER OTRA FORMA, SE PRESENTE, O EN RELACIÓN CON EL SOFTWARE O EL USO U OTRAS OPERACIONES EN EL SOFTWARE.
El logotipo con “Debian” es liberado bajo la siguiente licencia:
Copyright (c) 1999 Software en el Interés Público
Este logo o una versión modificada puede ser utilizada por cualquier persona para referirse al proyecto Debian, pero no indica la aprobación del mismo.
ÍNDICE GENERAL
1. Sobre Debian GNU/Linux y la instalación del sistema
1.1. Introducción
1.2. Historia de Debian GNU/Linux
1.3. Qué es Debian GNU/Linux
1.4. Contrato Social de Debian GNU/Linux
1.4.1. Debian permanecerá 100% libre
1.4.2. Contribuiremos a la comunidad de software libre
1.4.3. No ocultaremos los problemas
1.4.4. Nuestra prioridad son nuestros usuarios y el software libre
1.4.5. Trabajos que no siguen nuestros estándares de software libre
1.5. Las ramas del sistema Debian
1.5.1. Estable
1.5.2. En pruebas
1.5.3. Inestable
1.5.4. Experimental
1.6. Las arquitecturas
1.7. Dónde obtener el sistema Debian GNU/Linux
1.7.1. Grabando el disco compacto
1.7.1.1. Desde Microsoft Windows
1.7.1.2. Desde GNU/Linux
1.8. Arrancando vía USB
1.9. Arrancando vía red
1.10. La instalación
1.10.1. Requerimientos mínimos
1.10.2. Procedimientos
1.10.3. La instalación experta
1.10.4. El modo de rescate
1.10.5. La instalación automática
1.10.6. El argumento hd
1.10.7. El argumento reserve
1.10.8. El argumento VGA
1.10.9. El argumento console
1.10.10. El argumento all_generic_ide
1.10.11. Los argumentos noapic/nolapic
1.10.12. El argumento nousb
1.10.13. El argumento irqpoll
1.10.14. El argumento panic
1.10.15. El argumento max_cpus
1.10.16. El argumento root
1.10.17. El argumento rootdelay
1.10.18. El argumento ro
1.10.19. El argumento quiet
1.10.20. El argumento initrd
1.10.21. El argumento fb
1.10.22. El argumento hw-detect/start_pcmcia
1.10.23. El argumento netcfg/disable_dhcp
1.10.24. El argumento bootkbd
1.10.25. El argumento desktop
1.11. Iniciando la instalación
1.11.1. Partición primaria
1.11.2. Partición extendida
1.11.3. Partición lógica
1.12. Esquema de particionado para equipo de escritorio
1.13. Esquema de particionado para servidores
1.13.1. El sistema de archivos ReiserFS
1.13.2. El sistema de archivos JFS
1.13.3. El sistema de archivos XFS
1.13.4. Fat16
1.13.5. Fat32
1.14. Opciones de montaje
1.14.1. atime
1.14.2. ctime
1.14.3. mtime
1.14.4. noatime
1.14.5. relatime
1.14.6. nodev
1.14.7. nosuid
1.14.8. exec/noexec
1.14.9. ro
1.14.10. sync/async
1.14.11. usrquota/grpquota
1.14.12. user_xattr
1.15. RAID
1.15.1. Los beneficios de RAID
1.15.2. Software RAID
1.15.3. Hardware RAID
1.15.4. RAID 0
1.15.4.1. Posibles aplicaciones
1.15.5. RAID 1
1.15.5.1. Posibles aplicaciones
1.15.6. RAID 5
1.15.6.1. Posibles aplicaciones
1.15.7. RAID 6
1.15.7.1. Posibles aplicaciones
1.15.8. RAID 10
1.15.8.1. Posibles aplicaciones
1.16. Terminando la instalación
1.17. Actividades para el laboratorio
2. Introducción a Debian GNU/Linux
2.1. El sistema de archivos
2.2. Conectando el equipo a la red
2.3. Modificando el archivo de fuentes
2.3.1. main
2.3.2. contrib
2.3.3. non-free
2.3.4. debian backports
2.4. Actualizando el sistema
2.5. Actividades para el laboratorio
3. Fundamentos de la terminal
3.1. La ayuda del sistema
3.2. Comandos básicos
3.3. El historial de comandos
3.4. La variable PS1 y los alias
3.5. El calendario del sistema
3.6. Los terminales virtuales
3.7. Navegando el directorio /proc/
3.8. Actividades para el laboratorio
4. Trabajando en la terminal
4.1. Configurando el dispositivo de sonido
4.2. Navegando la web
4.3. Ingresando a redes de chat
4.4. Bittorrent
4.5. El editor de texto VIM
4.6. Correo electrónico
4.7. Compresión y descompresión
4.8. La calculadora bc
4.9. Corrección ortográfica
4.10. Wget
4.10.1. Uso Sencillo
4.10.2. Uso avanzado
4.11. Localizando ficheros
4.12. Aptitude
4.13. Actividades para el laboratorio
5. Guiones de comandos con Bash
5.1. Bash
5.2. Script
5.3. Caracteres Especiales de Unix
5.4. Consolas
5.5. Introducción a los guiones de comandos
5.6. Herramientas para la construcción de scripts
5.6.1. El comando echo
5.6.2. El comando read
5.6.3. El comando expr
5.6.4. El comando if
5.6.5. El comando case
5.6.6. El comando test
5.6.7. Los comandos while y until
5.6.8. El comando for
5.6.9. Las funciones
5.7. Ejemplos de las herramientas
5.7.1. Un ejemplo del comando echo
5.7.2. Un ejemplo del comando read
5.7.3. Un ejemplo del comando expr
5.7.4. Ejemplo del comando if
5.7.5. Un ejemplo del comando case
5.7.6. Otro ejemplo del comando case
5.7.7. Un ejemplo del comando test
5.7.8. Un ejemplo de los comandos while y until
5.7.8.1. While
5.7.8.2. Until
5.7.9. Un ejemplo del comando for
5.7.10. Un ejemplo de funciones
5.8. Cron
5.9. Caso de estudio
5.10. Actividades para el laboratorio
6. Entornos gráficos
6.1. GNOME
6.1.1. Los principales componentes del escritorio GNOME
6.1.1.1. Escritorio
6.1.1.2. Paneles
6.1.1.3. Ventanas
6.1.1.4. Áreas de trabajo
6.1.1.5. Gestor de archivos
6.1.1.6. Centro de control
6.1.2. Requerimientos mínimos
6.1.3. GDM/GDM3
6.1.4. Otros datos sobre Gnome
6.2. KDE
6.2.1. Requerimientos mínimos
6.3. XFCE
6.3.1. Gestor de ventanas
6.3.2. Manejador de escritorio
6.3.3. Paneles
6.3.4. Administrador de sesiones
6.3.5. Administrador de archivos
6.3.6. Administrador de preferencias
6.3.7. Requerimientos mínimos
6.4. LXDE
6.4.1. Requerimientos mínimos
6.5. Fluxbox
6.5.1. Archivo de aplicaciones
6.5.2. Archivo de atajos de teclado
6.5.3. Ventanas con pestañas
6.5.4. SLIT
6.5.5. Menú raíz
6.5.6. Barra de herramientas
6.5.7. Bandeja del sistema
6.6. Wmaker
6.6.1. Características de Window Maker
6.7. Enlightenment DR16
6.8. Enlightenment DR17
6.9. Configuración de Xorg
6.10. Actividades para el laboratorio
7. Configuración de servidores
7.1. Qué es Apache
7.2. Instalando y configurando Apache
7.2.1. Protegiendo los directorios de los clientes
7.2.2. Enlazando PHP5, Apache y PostgreSQL
7.2.3. Monitoreando el servidor Apache
7.3. Profundizando en PostgreSQL
7.3.1. Local
7.3.2. Host
7.3.3. Hostssl
7.3.4. Hostnossl
7.3.5. Database
7.3.6. User
7.3.7. Address
7.3.8. IP-address IP-mask
7.3.9. Auth-method
7.3.10. trust
7.3.11. reject
7.3.12. md5
7.3.13. password
7.3.14. gss
7.3.15. sspi
7.3.16. krb5
7.3.17. Ident
7.3.18. ldap
7.3.19. radius
7.3.20. cert
7.3.21. pam
7.3.22. Auth-options
7.3.23. Comandos básicos
7.3.24. Trabajando con archivos
7.3.25. Usuarios y Permisos
7.3.26. Exportando e importando bases de datos
7.4. VSFTPD
7.4.1. Características
7.4.2. Configuración de VSFTPD con usuarios virtuales
7.4.3. Configuración de VSFTPD con usuarios y cuotas de disco
7.4.3.1. Primera y segunda columnas: dispositivo y punto de montaje
7.4.3.2. Tercera columna: sistema de ficheros
7.4.3.3. Cuarta columna: opciones de montaje
7.4.3.4. Quinta y sexta columna: opciones de dump y fsck
7.5. OpenSSH
7.6. Exim4
7.7. Notas finales
7.8. Actividades para el laboratorio
8. Administración del sistema
8.1. Administrando los usuarios
8.1.1. Los números UID y GID
8.1.1.1. 0-99
8.1.1.2. 100-999
8.1.1.3. 1000-59999
8.1.1.4. 60000-64999
8.1.1.5. 65000-65533
8.1.1.6. 65534
8.1.1.7. 65535
8.2. Procesos
8.3. Fecha y hora
8.4. Interactuando con el núcleo
8.4.1. dmseg
8.4.2. lsmod
8.4.3. modconf
8.5. Red
8.5.1. El comando ifup
8.5.2. El comando ifdown
8.5.3. El comando route
8.6. Iptables
8.6.1. Tabla de filtros (filter table)
8.6.2. Tabla de traducción (nat table)
8.6.3. Tabla de mutilación (mangle table)
8.6.4. Tabla de paquetes crudos (raw table)
8.6.5. Sentencia de reglas
8.6.6. Aceptar (ACCEPT)
8.6.7. Descartar (DROP)
8.6.8. Encolar (QUEUE)
8.6.9. Retorno (RETURN)
8.6.10. Rechazo (REJECT)
8.6.11. Registro (LOG)
8.6.12. DNAT (traducción destino)
8.6.13. SNAT (traducción origen)
8.6.14. MASQUERADE
8.6.15. Rastreo de conexiones
8.6.16. Nuevo (NEW)
8.6.17. Establecido (ESTABLISHED)
8.6.18. Relacionado (RELATED)
8.6.19. Inválido (INVALID)
8.6.20. Redirección de puertos
8.6.21. IPTRAF
8.6.22. NMAP
8.6.23. NETCAT
8.6.24. SHELL
8.7. LSBInitScripts
8.7.1. start
8.7.2. stop
8.7.3. status
8.7.4. restart
8.7.5. force-reload
8.8. Permisología de los archivos
8.8.1. El dueño (Owner)
8.8.2. El grupo (Group)
8.8.3. Permisos UNIX (UNIX permissions)
8.8.4. Lectura (read)
8.8.5. Escritura (write)
8.8.6. Ejecución (execute)
8.8.7. chmod
8.8.8. chown
8.8.9. chgrp
8.8.10. chattr
8.9. Actividades para el laboratorio
9. Instalación y configuración de juegos
9.1. OpenArena
9.2. Warsow
9.3. UrbanTerror
9.4. Secret Maryo Chronicles
9.5. Teeworlds
9.6. Crack Attack
9.7. Frets On Fire
9.8. Typespeed
9.9. Servidor de OpenArena
10. Recursos de ayuda
10.1. Documentación general
10.2. Documentación específica de Debian GNU/Linux
10.3. Debian en IRC
10.4. Las reglas del IRC
Capítulo 1
Sobre Debian GNU/Linux y la instalación del sistema
1.1. Introducción
Al destapar la cobertura de este libro usted se ha adentrado en un viaje en el cual ganará en conocimientos valiosos para la construcción de avanzadas infraestructuras tecnológicas, los beneficios del software libre son muy numerosos pero poseen la desventaja de que requieren gente capacitada y preparada para la correcta configuración e implementación de las aplicaciones.
Debian GNU/Linux es uno de los proyectos de software libre más antiguos que existen además de ser uno de lo más organizados, tanto a nivel virtual como real. Es, también, ejemplo de muchos otros proyectos por sus estándares de calidad y seguridad. Durante diez capítulos intentaré demostrarle todas las cosas que puede lograr haciendo el uso correcto de las herramientas proporcionadas por el sistema operativo y otros elementos del software libre.
Permítame darle una pequeña introducción de lo que le aguarda a medida que pase las hojas de este documento. En el primer capítulo vamos estudiar distintas formas de instalar el sistema operativo, en el segundo se le introducirá al sistema de ficheros y su propósito luego, en el tercero, aprenderá sobre la terminal de comandos, la ayuda del sistema y ejecuciones básicas de algunas herramientas fundamentales de los sistemas operativos basados en Linux. Asimismo, en el cuarto capítulo, nos adentraremos aún más en la terminal de comandos y aprenderá a realizar múltiples tareas desde ella; aprenderá, en el quinto capítulo, aprenderá a escribir programas y automatizar el sistema operativo mediante guiones de comandos, consecuentemente el sexto capítulo le dará una visión objetiva de algunos de los entornos gráficos más populares del ambiente del software libre para ayudarle a la toma de una decisión a la hora de trabajar con equipos de medianos y escasos recursos. En el séptimo capítulo convertiremos nuestro equipo en una máquina de producción instalando y configurando servicios de red, utilizando enfoques diferentes a los tradicionales, fusionaremos aplicaciones como el servidor HTTP Apache con PHP y el motor de base de datos PostgreSQL, también trabajaremos con VSFTPD y un sistema de cuotas de disco, construiremos un servidor de correo completo, con certificados de seguridad y conexiones cifradas mediante los protocolos SSL y TLS entre otras aplicaciones. En el octavo capítulo profundizaremos en la administración avanzada del sistema pasando por los usuarios y grupos, permisos extraordinarios a determinados usuarios, casos de estudio, construiremos un cortafuego con estrictas políticas de seguridad y configuraremos una pasarela de conexiones a nivel profesional entre otros temas; ya para relajarnos después de todo ese aprendizaje en el noveno capítulo se le proporcionara una visión sobre los juegos más populares del ambiente del software libre y, para cerrar, en el décimo capítulo se le mostrará una variedad de enlaces de Internet donde va conseguir más documentación tanto sobre GNU/Linux como del proyecto Debian específicamente. Comencemos pues sin más preámbulos con nuestro aprendizaje.