Sei sulla pagina 1di 329



Linux Avanzado

Editado por:
ICB, S.L. (Interconsulting Bureau S.L.)
Avda. Ortega y Gasset, 198. P.I. Alameda
29006 – Málaga. España
Tfno: (+34) 952 28 87 67
Web: www.icbeditores.com
Correo electrónico: info@icbeditores.com

Linux Avanzado
Coordinadora de la obra: Mª Dolores Pérez Rodríguez
Licenciada en Pedagogía por la Universidad de Málaga

2ª Edición

© ICB, S.L. (Interconsulting Bureau S.L.), 2015/02, 1ª edición


© ICB, S.L. (Interconsulting Bureau S.L.), 2015/11, 2ª edición

Reservados todos los derechos de publicación en cualquier


idioma.

Según el Código Penal vigente ninguna parte de este o


cualquier otro libro puede ser reproducida, grabada en alguno
de los sistemas de almacenamiento existentes o transmitida
por cualquier procedimiento, ya se electrónico, mecánico,
reprográfico, magnético o cualquier otro, sin autorización previa
y por escrito de Interconsulting Bureau S.L., su contenido está
protegido por la Ley vigente que establece penas de prisión y/o
multas a quienes intencionadamente reprodujeren o plagiaren,
en todo o en parte, una obra literaria, artística o científica.

ISBN: 978-84-92889-46-4

CÓDIGO: MAIC000673

Impreso en España- Printed in Spain

Diríjase a CEDRO (Centro Español de Derechos Reprográficos,


www.cedro.org) si necesita fotocopiar, escanear o hacer copias
digitales de algún fragmento de esta obra.
MÓDULO 1: Introducción a GNU/Linux
TEMA 1. Introducción al Sistema GNU/Linux
Introducción ........................................................................................... 5
¿Qué es GNU y el Software Libre? ........................................................... 5
¿Qué es GNU/Linux? ............................................................................... 7
La Licencia de Linux ............................................................................... 8
Linux Hoy en Día .................................................................................... 9
Un Paseo por Nuestro Sistema GNU/Linux ............................................ 10
Lo que hemos aprendido ...................................................................... 11
Test .................................................................................................... 13

TEMA 2. Introducción a la Administración de Sistemas GNU/Linux


Perfil del Administrador ........................................................................ 17
Tareas del Administrador ...................................................................... 18
Distribuciones GNU/Linux ..................................................................... 21
Lo que hemos aprendido ...................................................................... 28
Test .................................................................................................... 30
Actividades ........................................................................................... 31

MÓDULO 2: Administración de
Sistemas GNU/Linux
TEMA 3. Instalación de Linux
Preparándose Para la Instalación .......................................................... 37
Particionamiento del Disco Duro ........................................................... 37
Formas de Instalación ........................................................................... 40
Cómo Generar un Diskete de Instalación ............................................... 40
Instalación desde CD-ROM ................................................................... 41
Lo que hemos aprendido ...................................................................... 48
Test 51 ................................................................................................ 50
Actividades ........................................................................................... 51
índice
TEMA 4. Herramientas Básicas para el Administrador
Introducción ......................................................................................... 55
Herramientas Gráficas y Línea de Comandos ........................................ 56
Documentos Estándares ....................................................................... 57
Documentación del Sistema en Línea ................................................... 58
Shell y Scripts ....................................................................................... 59
Herramientas Genéricas del Administrador ........................................... 63
Otras Herramientas............................................................................... 64
Lo que hemos aprendido ...................................................................... 65
Test .................................................................................................... 68
Actividades ........................................................................................... 69
TEMA 5. Intérprete de Comandos
Comandos Básicos ............................................................................... 73
Comandos en Background .................................................................... 75
Intérprete de Comandos (shell) ............................................................. 75
Programación Shell ............................................................................... 80
El Editor Emacs ..................................................................................... 84
El Editor Vim ......................................................................................... 92
Lo que hemos aprendido .................................................................... 102
Test .................................................................................................. 104
Actividades ......................................................................................... 105

TEMA 6. Sistema de Ficheros


Sistema de Ficheros............................................................................ 109
Sistemas de Ficheros en un Sistema GNU/Linux ................................. 110
Puntos de Montaje ............................................................................. 112
Permisos............................................................................................. 114
Enlaces ............................................................................................... 119
Lo que hemos aprendido .................................................................... 120
Test .................................................................................................. 122
Actividades ......................................................................................... 123

TEMA 7. Arranque y Servicios


Niveles de Arranque y Servicios .......................................................... 127
Fichero /Etc/Inittab .............................................................................. 129
Comando Init ...................................................................................... 130
Arranque del Sistema con Diskete ...................................................... 130
Configuración del Gestor de Arranque LILO ........................................ 131
Configuración del Gestor de Arranque GRUB ...................................... 133
Lo que hemos aprendido .................................................................... 138
Test .................................................................................................. 140
Actividades ......................................................................................... 141

TEMA 8. Usuarios y Grupos


Gestión de Usuarios............................................................................ 145
Ficheros de Configuración de Usuarios y Grupos ................................ 145
Comandos Útiles para la Gestión de Usuarios ..................................... 149
Añadiendo Usuarios ........................................................................... 149
Añadiendo Grupo................................................................................ 152
Vencimiento de Contraseña ................................................................ 156
Eliminando Usuarios ........................................................................... 158
Poniendo Atributos al Usuario ............................................................ 158
Configuración de Grupos y Usuarios con la Herramienta Gráfica de Red
Hat Mandrake 9 .................................................................................. 158
Lo que hemos aprendido .................................................................... 162
Test .................................................................................................. 164
Actividades ......................................................................................... 165
TEMA 9. Administración de Paquetes
Herramientas de Gestión de Paquetes ................................................ 169
Paquetes TGZ ..................................................................................... 169
Red Hat Paquetes RPM....................................................................... 172
Debian: Paquetes DEB ........................................................................ 173
Administración de Paquetes en Red Hat Linux Mandrake 9 ................ 174
Lo que hemos aprendido .................................................................... 188
Test .................................................................................................. 190
Actividades ......................................................................................... 191

TEMA 10. Configuración de la Red


Introducción ....................................................................................... 195
Introducción a TCP/IP ......................................................................... 195
¿Qué es TCP/IP? .................................................................................. 196
Conceptos en TCP/IP .......................................................................... 197
¿Cómo Asignar una Dirección Internet? .............................................. 198
¿Cómo se Debe Configurar la Red? ..................................................... 200
Configuración de Red en Red Hat Linux 9 ........................................... 203
Lo que hemos aprendido .................................................................... 214
Test .................................................................................................. 217
Actividades ......................................................................................... 218

TEMA 11. Impresoras


Introducción ....................................................................................... 221
CUPS .................................................................................................. 223
Configuración de la Impresora en Red Hat Mandrake Linux 9 ............. 224
Lo que hemos aprendido .................................................................... 229
Test .................................................................................................. 231

MÓDULO 3: Seguridad
TEMA 12. Seguridad
Introducción ....................................................................................... 237
Tipos de Intruso.................................................................................. 237
Backup ............................................................................................... 238
Spyware y Adware ............................................................................. 238
Encriptación........................................................................................ 239
Antivirus ............................................................................................. 240
Navegación Segura ............................................................................. 243
Sistemas de Recuperación, Mantenimiento y Borrado Seguro de Ficheros 244
Firewall ............................................................................................... 245
Tipos de Ataques ................................................................................ 246
Software de Seguridad ....................................................................... 248
Distribuciones Orientadas a Seguridad ............................................... 249
Configuración Seguridad en Red Hat Linux Mandrake 9 ..................... 250
Lo que hemos aprendido .................................................................... 254
Test .................................................................................................. 256
TEMA 13. Copias de Seguridad
¿Por qué Hacer Copias de Seguridad? ................................................. 259
¿A Qué se Debe Hacer una Copia de Seguridad? ................................ 260
Políticas de Copias de Seguridad. Tipos Backups ............................... 261
Medios Utilizados para el Almacenamiento de Backups ...................... 262
Comandos y Aplicaciones Utilizados en la Realización de Backup ....... 265
Lo que hemos aprendido .................................................................... 270
Test .................................................................................................. 272
Actividades ......................................................................................... 273

Solucionarios
Solucionarios Test .............................................................................. 277

Solucionarios Actividades ................................................................... 293

Glosario
Bibliografía

Linux Avanzado
 

Introducción a GNU/Linux

TEMA 1. Introducción al Sistema GNU/Linux

TEMA 2. Introducción a la Administración de Sistemas GNU/Linux

módulo 1

1
2
Linux Avanzado

Introducción al Sistema GNU/Linux

i Introducción

i ¿Qué es GNU y el Software Libre?

i ¿Qué es GNU/Linux?

i La Licencia de Linux

i Linux Hoy en Día

i Un Paseo por Nuestro Sistema GNU/Linux


tema 1
Objetivos:
i Conocer historia del software libre

i Procedencia del sistema operativo GNU/Linux.

i Saber qué es Linux.

i Conocer la licencia de Linux .

3
4
Introducción

La mayoría de los ordenadores de la actualidad están diseñados para que puedan


ejecutar diferentes tareas o programas. Dichos programas pueden ser un procesador de
textos, un programa para animación de gráficos tridimensionales o distintos tipos de
juegos. Para su funcionamiento deben saber acceder a los recursos disponibles en el
ordenador. Si cada programa actuase de forma independiente, provocaría graves
problemas y conflictos, por ejemplo, tendrían libertad para escribir sus datos sobre los
de otro, etc.

Para solucionar estos problemas se desarrollaron los Sistemas Operativos, aportando


mecanismos y reglas de funcionamiento, permitiendo que los programas puedan
acceder a los recursos del ordenador de una forma correcta. Esta fue la funcionalidad
inicial de los sistemas operativos, pero se han ido añadiendo otras, como por ejemplo, la
ejecución de programas, el control de la memoria del ordenador, la creación y control de
interfaces gráficas de usuario, etc.

Hoy en día existen varios sistemas operativos dependiendo del tipo de ordenador en el
que se va a ejecutar. Por ejemplo para los PC el sistema operativo más difundido es
Microsoft Windows, tanto en las versiones 95, 98, 2000, NT 4.0 y XP. Otros sistemas
operativos para este tipo de ordenadores son Solaris, OS/2, BeOS, Microsoft DOS, o uno
de los sistemas operativos en más rápida expansión para PC, es GNU/LINUX.

¿Qué es GNU y el Software Libre?

El movimiento del software libre, comienza a finales de la década de los sesenta,


principios de los setenta. Cuando las grandes compañías de ordenadores no daban el
valor que ahora se da al software. La mayoría eran fabricantes de ordenadores cuyos
ingresos principales se obtenían vendiendo sus máquinas, a las que incorporaban algún
tipo de sistema operativo y aplicaciones. Las universidades tenían permiso para estudiar
el código fuente de estos sistemas operativos con fines docentes. Los usuarios podían
solicitar el código fuente de drivers y programas para modificarlo conforme a sus
necesidades. El software no tenía valor si no estaba acompañado por el hardware que lo
soportaba. En este momento, los laboratorios Bell (ATT) diseñaron un sistema operativo
llamado UNIX, cuya principal característica era la buena gestión de los recursos del
sistema, su estabilidad y su compatibilidad con el hardware de diferentes fabricantes
(para homogeneizar todos sus sistemas). Este hecho fue importante ya que todos los
fabricantes tenían sus propios sistemas operativos incompatibles con los demás.

Las grandes empresas empezaron a darse cuenta del valor del software: la primera fue
IBM que en 1965 dejó de dar el código fuente de su sistema operativo, a finales de los
setenta Digital Research empezó a vender el suyo, etc. Esto hizo que todas las
compañías se dieran cuenta que el software podía ser muy rentable y podía aportar
muchos beneficios.

5
A partir de este momento, la mayoría de empresas empezaron a no dejar el código
fuente de sus programas y sistemas operativos y empezando a vender sus programas
como un valor añadido a su hardware. En este entorno tan cerrado, Richard Stallman
(que trabajaba en aquel momento en el MIT, Massachusetts Institute of Technology) se
sintió indignado al comprobar que era más difícil conseguir el código fuente de los
programas que utilizaba para adaptarlos a sus necesidades.

A partir de ese momento, Stallman decidió iniciar un gran proyecto para intentar volver a
abrir el código fuente de los programas. Conocedor de que no iba a conseguir que las
compañías cedieran, se propuso crear su propio sistema operativo y aplicaciones
iniciando un proyecto llamado GNU.

Para entender los motivos de Stallman de iniciar GNU basta con leer su primer
manifiesto, documento donde explicó a toda la comunidad en qué consistiría el
proyecto, cómo lo orientaría y por qué debía hacerlo. Empezó por describir el concepto
de software libre y para qué veía necesario que programadores y desarrolladores del
mundo contribuyeran con él. En muchas ocasiones se confunde el concepto de software
libre con el de software gratuito (en inglés, free tiene los dos significados), en posteriores
documentos se aclaró que el software libre no tiene por qué ser gratuito. Hay entender
como software libre programas de los que podemos conseguir su código fuente,
estudiarlo, modificarlo y redistribuirlo sin que nos obliguen a pagar por ello. Debemos
tener claro que podemos pedir dinero por los programas y su código fuente, el soporte a
ofrecer a los usuarios, los libros que vendamos o el material que proporcionemos. Pero
no podemos obligar a los usuarios que no distribuyan el software que les hemos
vendido. Es una forma diferente de entender el software a la que estamos
acostumbrados. En muchos de los textos de la FSF (Free Software Foundation) se habla
más de filosofía que de ingeniería. La filosofía que en la FSF se tiene del software lo
define con las siguientes cuatro libertades:

x La libertad 0 se refiere a la libertad de poder usar el programa para cualquier


propósito.

x La libertad 1 es la que permite estudiar cómo funciona el programa y adaptarlo a


las propias necesidades. El acceso al código fuente es una condición necesaria
para garantizar esta libertad.

x La segunda libertad es la que permite distribuir libremente copias del software,


ayudando al vecino.

x La última libertad es la que permite mejorar el programa y hacer públicas las


propias mejoras, en beneficio de toda la comunidad. El acceso al código fuente,
asimismo, es un requisito imprescindible para asegurar esta libertad.

Para dar todas estas libertades al software se escribió la licencia, con la que se ha
protegido todo este tipo de programas, la GPL (General Public License). Esta licencia
pone por escrito las cuatro libertades.

6
Este proyecto lleva produciendo software desde 1984, comenzando con todo lo
necesario para implementar un sistema operativo completo. Aunque es un proceso largo
y complejo, desde el primer momento muchos programadores y desarrolladores de
software apoyaron la idea de Stallman y empezaron a colaborar de forma gratuita. La
comunidad crecía rápidamente, y empezaron a disponer de las herramientas necesarias
(editores, compiladores, etc.) para implementar el núcleo del sistema operativo, que era
la tarea que requería las herramientas que se estaban desarrollando. Siempre se quiso
crear un sistema operativo parecido a UNIX y siguiendo las normas POSIX (Portable
Operating System Interface). A pesar de que UNIX tenía sus problemas y carencias, era
suficientemente bueno como para adaptarse a la mayoría de las necesidades. La tarea
de diseñar y escribir el núcleo del sistema operativo se dejó para el final. Actualmente
está por finalizar y permanece en fase de desarrollo.

¿Qué es GNU/Linux?

En este contexto definido anteriormente, y cuando la FSF todavía no tenía ningún núcleo
estable para su sistema operativo, un profesor Andrew Tanenbaum de la universidad de
Holanda, escribió un sistema operativo para que sus estudiantes pudieran estudiarlo. Su
idea era escribir un sistema operativo que fuera estudiado y modificado por cualquiera
que quisiera. En 1987 se puso manos a la obra y llamó a su proyecto mini UNIX, dando
lugar a MINIX. Como no utilizó ni una sola línea de código del UNIX de ATT, el código
podía ser utilizarlo y modificarlo libremente.

El profesor Tanenbaum quiso crear un sistema simplemente orientado a la docencia, así


que pensó que la mejor manera para ello era utilizando una arquitectura micro-kernel, la
cual era fácil comprensión y aportaba tecnología novedosa para la época permitiendo
versatilidad, multiplataforma, etc. El usar la arquitectura nombrada anteriormente ha
sido uno de los puntos fuertes y débiles del MINIX. El sistema es tremendamente para
su estudio y diseño, pero poco probable de utilizar en entornos reales. Al optar por
hacerlo modular y muy pedagógico, nunca se tuvo la preocupación de la rapidez. De
todas formas, el objetivo del profesor Tanenbaum se vio cumplido. MINIX ha ido
evolucionando y hoy sigue existiendo y siendo usado para el estudio por muchos
alumnos de universidades de todo el mundo.

A partir de este momento es cuando entra en juego Linux. Mientras la FSF continuaba
con su proyecto proporcionando herramientas para la construcción de un sistema
operativo, Tanenbaum orientaba MINIX a la docencia y muchas empresas hacían
evolucionar sus versiones de UNIX. Un estudiante de la Universidad de Helsinki, Linus
Torvalds, en agosto de 1991 decide crear un núcleo para un nuevo sistema operativo,
Linux. . La primera aparición fue en un debate sobre MINIX y sistemas operativos. La
gente de todo el mundo desde el primer momento empezó a interesarse por este nuevo
sistema, que al utilizar el compilador e intérprete de comandos de GNU (gcc y bash),
también tenía las características de software libre. Esfuerzos de muchos expertos en
informática de todo el mundo hicieron posible este proyecto.

7
GNU/Linux se ha identificado durante mucho tiempo como el sistema operativo de los
hackers por su difícil instalación, manipulación y falta de drivers. Fueron estos primeros
usuarios los que diseñaron los drivers necesarios y los que dieron a conocer al mundo
este sistema. El número de usuarios empezó a crecer y actualmente ya existen empresas
y grupos de usuarios que crean sus propias distribuciones de GNU/Linux.

La Licencia de Linux

La licencia de Linux no cuesta nada y fue creada para garantizar que esto siga siendo
así.

Antes del proyecto GNU, los programadores que querían distribuir gratuitamente sus
programas los ponían bajo el dominio público. El problema que originaba esto, es que
empresas comerciales podían tomar el programa y, modificándolo un poco, ponerle
licencia comercial. Esto ocurrió muchas veces. Un ejemplo de ello fue el primer
navegador de páginas Web para Internet estaba en el dominio público (Mosaic). Como
no existían restricciones de copyright, una empresa comercial tomo el software, le
añadió algunas características y lo volvió un producto comercial, creando Netscape
Navigator.

Una clasificación de las licencias se ve a continuación:

x Comercial: Debe ser comprado, no puede ser distribuido, y solamente está


disponible como código binario para los usuarios finales. Un ejemplo de este
software es Microsoft Office.

x Software de Evaluación: Son versiones con características limitadas de software


comercial, que pueden ser distribuidas libremente y que intentan ser propaganda
para el software comercial.

x Uso no Comercial: Es software que es se puede usar gratuitamente por


individuos e instituciones educativas. Las corporaciones deben comprar una
licencia. Ejemplos son StarOffice y Netscape.

x Shareware: Son versiones completas y de libre distribución, pero tienen una


licencia que obliga a ser pagada para un uso prolongado del software. Ejemplos
de esto son WinZip y WinAmp.

x Freeware: Consisten en software que puede ser libremente usado y distribuido,


pero está disponible solamente en forma binaria. Ejemplos de esto son Internet
Explorer y Netmeeting.

x Librerías Gratuitas: Son software que puede ser libremente usado y distribuido
como código fuente y como binario, pero no puede ser modificado sin violar la
licencia. Un ejemplo son las librerías de clases de C++.

8
x Software de Fuentes Abiertas, estilo BSD: Un grupo cerrado de individuos crea el
software y permite la libre distribución de los binarios y del código fuente.
Aunque los usuarios pueden modificar el código, el grupo de desarrollo
generalmente no usa las modificaciones de los usuarios.

x Software de Fuentes Abiertas, estilo Apache: Es como el BSD, pero el grupo de


desarrollo puede usar las modificaciones de los usuarios si son útiles.

x Software de Fuentes Abiertas, estilo GNU GPL: Además de las características del
estilo Apache, la licencia GPL (General Public License) requiere que todos los
trabajos derivados del software deben estar también bajo esta licencia. Esta
característica adicional, ideada por Stallman, es la que protege al software GNU
de las empresas comerciales.

Originalmente Linus distribuía su kernel bajo una licencia particular que permitía su libre
uso y distribución, pero prohibía su uso comercial o cualquier manera de usarlo para
ganar dinero.

El kernel de Linux actualmente se distribuye bajo la licencia GNU GPL. Esto significa que
el kernel se puede copiar, cambiar, distribuir, y cobrar una suma de dinero por él si se
desea, pero no se le pueden quitar estos derechos a nadie. La persona que adquiera
Linux tiene estos mismos derechos.

Cada uno de los programas en un sistema Linux tiene una licencia diferente y su autor
original conserva el copyright. Cuando esto sucede, no ocurren problemas legales, sino
que varios autores comparten el copyright. Casi todo el software para Linux está bajo la
licencia GPL o una licencia gratuita similar, como el servidor X que está bajo la licencia
MIT X.

Linux Hoy en Día

Podemos encontrarnos aproximadamente de 7 a 8 millones de computadores en todo el


mundo en los que corre Linux. Además, contando con miles de programadores que
trabajan en encontrar soluciones al los problemas si es que se presentan.

Actualmente estamos en la versión de Kernel 2.4.20 que es compatible con una gran
cantidad de arquitectura de hardware como Alpha, Amiga, Atari, IBM, Intel, Power
PC/Macintosh, SGI, Sun SPARC y otras más.

En todas las plataformas o arquitectura de hardware Linux corre con mucha estabilidad
y más rápido que otros sistemas operativos.

9
Un Paseo por Nuestro Sistema GNU/Linux

Para comenzar a acercaros el sistema Linux vamos a realizar un pequeño recorrido para
que aprecie las potencialidades del sistema y vea que sus necesidades están cubiertas:

x Cuenta de usuario: User: clinux Passwd: clinux

x Abra Mozilla y vea que puede navegar por la web.

x Abra OpenOffice y vea que no todo es Microsoft Office.

x Abra File Manager y recorra el árbol de directorios.

x Abra una xterm y comience a familiarizarse con el trabajo con la línea de


comandos.

x Abra el GNOME Control Center y aprenda a configurar su entorno Gnome.

x Salga de la sesión y vea que pueden abrirse muchos otros gestores de ventanas.

10
LO QUE HEMOS APRENDIDO
‡ Los Sistemas Operativos, aportan unos mecanismos y reglas básicas de
funcionamiento, de forma que los programas puedan acceder a los recursos del
ordenador de una forma adecuada.

‡ Linux es un sistema operativo gratuito y de libre distribución inspirado en el


sistema Unix, escrito por Linus Torvalds con la ayuda de miles de programadores
en Internet.

‡ Unix es un sistema operativo desarrollado en 1970, una de cuyas mayores


ventajas es que es fácilmente portable a diferentes tipos de ordenadores, por lo
que existen versiones de Unix para casi todos los tipos de ordenadores.

‡ Richard Stallman creo el proyecto GNU, para intentar abrir el código fuente de los
programas. Creo su propio sistema operativo y aplicaciones.

‡ Debemos entender como software libre programas de los cuales podemos


conseguir su código fuente, estudiarlo, modificarlo y redistribuirlo sin que nos
obliguen a pagar por ello.

‡ Linus Torvalds, estudiante de la Universidad de Helsinki, creó en agosto de 1991


su propio núcleo para un nuevo sistema operativo, Linux.

11
ANOTACIONES
.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

12
TEST
Marcar la respuesta correcta.

1. Linus Torvadls es:


† El creador del proyecto GNU.
† Creador de un núcleo para un nuevo sistema operativo, Linux.
† Profesor de la Universidad de Holanda.

2. El creador del proyecto GNU fue:


† Richard Gnu.
† Richard Stallman.
† Andrew Tanenbaum.

3. Software libre significa:


† Software gratuito.
† Programas de los cuales podemos conseguir su código fuente pagando por ello.
† Programas de los cuales podemos conseguir su código fuente, estudiarlo,
modificarlo y redistribuirlo sin que nos obliguen a pagar por ello.

4. ¿Cuáles de estas no es una licencia software?


† GNU/Linux.
† GPL.
† Freeware.

5. ¿Qué significan las siglas FSF?


† Force Software Foundation.
† First Software Foundation.
† Free Software Foundation.

6. GPL es:
† El nombre de un sistema operativo.
† El nombre del primer sistema operativo creado por Linus Torvadls.
† Licencia creada por Richard Stallman.

13
14
Linux Avanzado

Introducción a la Administración de
Sistemas GNU/Linux

i Perfil del Administrador

i Tareas del Administrador

i Distribuciones GNU/Linux

Objetivos:
i Conocer como ha ido evolucionando el perfil del administrador
tema 2
de sistemas.

i Tener una idea general de las numerosas tareas que requiere la


administración de sistemas GNU/Linux.

i Conocer lo que es una distribución y las diferentes


distribuciones existentes de GNU/Linux.

15
16
Perfil del Administrador

Las grandes empresas y organizaciones cada vez más de sus recursos de computación y
de cómo todos estos recursos deben ser administrados para que realicen las tareas
demandadas. Esto ha originado una gran demanda de un nuevo perfil laboral: que se le
ha llamado administrador de sistemas.

El administrador de sistemas es aquel se encarga de numerosas tareas muy diversas.


Tales como: realizar cableados de instalaciones o reparar cables; instalar sistemas
operativos o software de aplicaciones; corregir problemas y errores en los sistemas,
tanto hardware como software; formar a los usuarios, ofrecer trucos o técnicas para
mejorar la productividad en áreas que pueden ir desde aplicaciones de procesamiento de
textos hasta áreas complejas de sistemas CAD o simuladores; evaluar económicamente
compras de equipamiento de hardware y software; automatizar un gran número de
tareas comunes, e incrementar el rendimiento general del trabajo en su organización.

Recuerda: Se considera al administrador como un perfil de empleado que ayuda a los


demás empleados a que saque el mayor provecho de los recursos disponibles, de forma
que mejore toda la organización.

La relación con los usuarios finales se puede establecer, mediante la formación de


usuarios o bien por ayuda directa en el caso de presentarse problemas. El administrador,
se debe encargar de que todas las tecnologías, utilizadas por los usuarios, funcionen
correctamente. Además de que cumplan las perspectivas de los usuarios, así como las
tareas que debe realizar.

Hace muchos años que el papel de administrador de una organización o empresa, no


esta bien definido. En los principios de la informática, era visto como el ‘entendido’ en
ordenadores (el “guru”), encargado de poner las maquinas en funcionamiento, vigilarlas
y solucionar cualquier problema que surgiera. Su currículum no estaba claramente
definido, ya que no era necesario que fuera un experto en ningún campo, sino que debía
tener conocimientos básicos de numerosos temas, tanto software como hardware. Por
lo que cualquiera con conocimientos de informática podía ocupar dichos puestos.

Con lo anterior, nos encontrábamos en un pasado, no demasiado lejano, de la


administración de sistemas (aunque hay personas que siguen pensando que se trata del
mismo trabajo). En la época en la que estamos, de Internet y de los servicios
distribuidos, un administrador de sistemas es un profesional que proporciona servicios
del software y hardware de sistemas. El administrador tiene que llevar a cabo varias
tareas que tendrán como destino múltiples sistemas informáticos, con la misión de
hacerlos operativos para las tareas asignadas.

Actualmente, los administradores necesitan tener conocimientos generales (teóricos y


prácticos) de áreas muy diversas, tanto en el campo software (aplicaciones de ámbitos
diversos, programación básica en una amplia variedad de lenguajes de programación,...)
como en el campo hardware (tecnologías de redes, sistemas operativos,...). También es
buscado con el perfil de conocimientos básicos sobre el área de trabajo de la empresa.

17
No es extraño, entonces, que en una empresa de tamaño medio a grande se haya
pasado del “chapuzas” de turno a un pequeño grupo de profesionales, la mayoría con
nivel académico universitario, con diferentes tareas asignadas dentro de la organización.

Recuerda: El administrador debe dominar numerosas tecnologías para adaptarse a


diferentes tareas, que pueden surgir dentro de la organización.

Debido a los diversos conocimientos, aparecen diferentes subperfiles de la tarea del


administrador. En organizaciones o empresas grandes es habitual encontrar a los
administradores de sistemas operativos (UNIX, Mac, o Windows), diferentes a los
administrador de bases de datos, administrador de copias de seguridad, administradores
de seguridad informática, administradores encargados de atención a los usuarios, etc.

En las empresas u organizaciones más pequeñas, las tareas suelen estar asignadas a
uno o pocos administradores.

Los administradores de sistemas UNIX (o de GNU/Linux) serían una parte de estos


administradores.

Hemos mencionado el problema de determinar con exactitud las tareas de un


administrador de sistemas. Era normal pedir administradores de sistemas según
categoría, sin adecuar dichas categorías correctamente a dicho perfil.

Tareas del Administrador

Podríamos separar las tareas de un administrador GNU/Linux (o UNIX en general) en dos


partes: administración del sistema y administración de red.

En los siguientes puntos explicamos en que consisten las tareas de dichos grupos de
administradores.

Recuerda: Las tareas de administración del sistema se podrían resumir, por una parte,
en la administración local del sistema, y por otra, en la administración de red.

TAREAS DE ADMINISTRACIÓN LOCAL DEL SISTEMA (SIN UN ORDEN CONCRETO)


x Arranque y apagado del sistema: los sistemas basados en UNIX tiene unos
sistemas de arranque y apagado los cuales ofrecen unos servicios en el arranque
de la maquina, pudiendo configurar estos.

x Gestión de usuarios y grupos: Tendrá que decidir qué usuarios podrán acceder al
sistema, de qué forma y bajo con qué permisos; y establecer una serie de grupos.

x Gestión de recursos del sistema

18
x Gestión de los sistemas de ficheros: Disponemos de diferentes recursos de
almacenamiento (extraíbles o no extraíbles), de los que debemos gestionar el
montaje y desmontaje, además del sistema de ficheros de estos.

x Cuotas del sistema: los recursos compartidos deben ser administrados. Debemos
tener cuidado según la cantidad de usuarios que los vaya a compartir. Debemos
establecer lo que llamamos, clases de usuario (grupos), dependiendo de los
recursos que usen más dichos usuarios. Y se le asignará a cada uno lo que se
denomina cuotas, que no son más que los privilegios que tendrá dicho usuario en
el sistema.

x Seguridad del sistema

x Backup y restauración del sistema: se necesita establecer políticas de copias de


seguridad, ya que es importante poder recuperar el sistema si tenemos cualquier
tipo de problema.

x Automatización de tareas rutinarias: muchas de las tareas que debemos hacer


diariamente, son fácilmente automatizables. En los sistemas Linux, se suele usar
lo que denominamos script, son programados con lenguajes interpretados
(shells, Perl ,etc…).También da la opción de temporizar dichas tareas(crontab…).

x Gestión de impresión y colas

x Gestión de módems y terminales. Dispositivos habituales en entornos no


conectados a red local ni a banda ancha:

o Los módems permiten una conexión a la red por medio de un intermediario (el
ISP o proveedor de acceso), o conectar al sistema desde el exterior por acceso
telefónico.

o En el caso de los terminales, antes de la aparición de las redes eran el


elemento central de cómputo, únicamente se dedicaban a visualizar la
información o a permitir la entrada de información por medio de teclados
externos.

x Accounting (o log) de sistema: llevaremos un sistema de log funcionando


correctamente, para hacer que el sistema funcione perfectamente.

En él deberá quedar reflejada cualquier incidencia, software o hardware, para


poder ser inmediatamente solucionada.

x System performance tunning: técnicas de optimización del sistema para un fin


dado.

x Personalización del sistema: el kernel de Linux puede ser configurado conforme a


nuestras necesidades.

19
TAREAS DE A D M I N I S T R A C I Ó N DE RED
x Interfaz de red y conectividad: Tipo de interfaz de red que utilizaremos y de
conectividad.

x Routing de datos: qué datos y por donde circularán dichos datos, dependiendo
de los dispositivos de red que tengamos.

x Seguridad de red: una red es un punto de ataque, así que nuestros sistemas
deben disponer de la mayor seguridad. Hay que protegerse, detectar e impedir
posibles ataques.

x Servicios de nombres: los servicios de una red se identifican con un nombre.


Servicios como el DNS, DHCP, LDAP, etc.

x NIS (Network Information Service): las grandes organizaciones deben tener


mecanismos para organizar los recursos y el acceso de sus grandes sistemas.
Para ello se suelen utilizar los servicios como: NIS,NIS+,LDAP,… que nos dan la
posibilidad de organizar todas las complejidades de sus sistemas.

x NFS (Network Fylesystems): a veces es necesario el compartir información con


lN
los distintos usuarios del sistema. El sistema NFS permite que esto se lleve a
cabo de manera transparente e independientemente de la situación en la red.

x UNIX remote commands: UNIX posee comandos transparentes a la red, esto


quiere decir, que sea cual sea la conexión física, se pueden ejecutar comandos
que mueva información por la red y te de acceso a algunos servicios.

x Aplicaciones de red: aplicaciones de conexión a servicios de red (telnet,f tp, …)

x Impresión remota: acceso a servidores de impresión remotos.

x Correo electrónico: fue uno de los primeros servicios proporcionado por las
máquinas UNIX, permite el almacenamiento de correo o un punto de
retransmisión de este hacia otros servidores. El caso Web es parecido.

x X Window: un caso muy particularizado de la interconexión es el sistema gráfico


de los sistemas GNU/Linux, lo que suele llamar X Windows. Permite que nos
abstraigamos totalmente de la red, el modelo bajo el que trabaja es
cliente/servidor. Es el encargado de visualizar la información de manera gráfica,
siendo totalmente independiente del sistema operativo.

20
Distribuciones GNU/Linux

Cuando hemos hablado de los sistemas GNU/Linux, hemos visto que no había un único
sistema claramente definido. Debemos destacar tres elementos software principales de
estos sistemas:

1) El kernel Linux: el kernel es la pieza donde esta centrado todo el sistema. Pero sin
nada más, ni compiladores, ni aplicaciones, ...

2) Aplicaciones GNU: el desarrollo de Linux se vio complementado con el software de la


FSF, perteneciente al proyecto GNU.

3) Software de terceros: casi siempre de tipo de código abierto.

Al ser todos estos elementos software de código abierto, hay una evolución rápida de
ellos, pudiendo ser corrección de errores o nuevas versiones del mismo. Esto hace que
se nos de la opción de elegir el software que deseamos en el momento de elegir un
sistema GNU/Linux.

Nota: El mundo GNU/Linux no se limita a una empresa o comunidad particular, con lo


que ofrece a cada uno la posibilidad de crear su propio sistema adaptado a sus
necesidades.

En el transcursos de versiones, podemos encontrar algunas que estén en fase beta y


tenga errores o sean inestables, por lo que siempre tenemos que tener mucho cuidado a
la hora de crear nuestro sistema GNU/Linux.

Un problema añadido a tanta variedad, es que hay que saber que ofrecer al usuario
conforme a sus necesidades, y saber hacerlo bien.

Ejemplo: Por ejemplo os gestores de escritorio de X Window, se nos ofrecen dos


entornos de escritorio diferentes como Gnome y KDE; los dos tienen características
parecidas y aplicaciones semejantes o complementarias.

En el caso que el distribuidor sea comercial o una organización sin beneficio propio, este
será el encargado de montar un sistema GNU/Linux que funcione y se adapte a las
necesidades del usuario.

En este caso una distribución GNU/Linux, decimos que es un sistema operativo basado
en el kernel Linux.

Hay que tener en cuenta un dato importante, para que no nos cree confusión, y es que,
como los paquetes software de la distribución tienen sus propias versiones, hay que
saber que estas son independientes de la distribución en las que se encuentre, por lo
que las versiones de las distribuciones no coincidirán con las versiones de los paquetes
software.

21
Recuerda: El número de distribución sólo sirve para comparar las distribuciones de un
mismo distribuidor, y no permite comparar entre distribuciones diferentes. Para
comparar distribuciones, habrá que comparar tanto los paquetes software principales y
sus versiones como las novedades que aporta cada distribución.

Ejemplo: Un ejemplo de las versiones que aparecen a finales del año 2003:

x Kernel Linux: distribuciones que ofrecen uno o más kernels, como los 2.2.x o
2.4.x o algún nuevo 2.6.x en versión beta.

x XFree86: en el sistema gráfico X Window, se manejan versiones 4.1.x o 4.2.x o la


beta de 4.3.x.

x Gestor de ventanas o escritorio: Gnome o KDE, o los dos; Gnome con versiones
1.4, 2.2, 2.3 o KDE 2, 3.0, 3.1.x.

La distribución podría ser: un kernel 2.2, con XFree 4.2 y Gnome 2.2; otra, por ejemplo,
kernel 2.4, XFree 4.1, KDE 3. Es difícil saber cual es mejor, ya que es una mezcla de
elementos, y, dependiendo como combines estos elementos, el producto saldrá mejor o
peor. Casi siempre el distribuidor mantiene un compromiso entre la estabilidad del
sistema y la novedad de las versiones incluidas.

Vamos a exponer como podríamos hacer un análisis de versiones:

x Versión del núcleo Linux: la versión de los núcleos se indican : X.Y.Z. La X es la


versión principal, representa los cambios importantes en el núcleo; Y versión
secundaria, son mejoras y prestaciones del núcleo, es par para los núcleos
estables e impar para los que aun están en desarrollo o pruebas. Z es la versión
de construcción, indica la versión X.Y, en lo que se refiere a parches o
correcciones.

x Formato de empaquetado: es todo lo referido para instalar y administrar el


software de nuestra distribución. Solemos tener los formatos RPM (RedHat), DEB
(Debian), tar.gz, mdk, cada distribución utiliza sus propios formatos. El software
viene en paquetes que contiene todo lo necesario para su instalación y posibles
dependencias.

x Estructura del sistema de archivos: En los sistemas GNU/Linux y UNIX hay varios
estándares de colocación de los archivos. Con ellos sabremos dónde encontrar la
mayor par de los archivos.

x Scripts de arranque del sistema: los sistemas Linux y UNIX tiene lo que se llama
guiones de arranque (o shell scripts) que indica cómo se arranca la máquina y
cuales son sus fases, y como se deberá hacerse en cada paso. Hay dos modelos
de arranque, SysV o BSD. Tanto las distribuciones Red Hat como Debian el
utilizado es el SysV, aunque existen otras distribuciones que utilizan el BSD, un
ejemplo, Slackware.

22
x Versiones de la biblioteca del sistema: todos los programas que tenemos en el
sistema para su ejecución dependen de una serie de bibliotecas. Normalmente
son de dos tipos, estáticas (libxxx.a) o dinámicas que se cargan en tiempo de
ejecución (libxx.so). La ejecución de algunos programas, puede depender de unas
bibliotecas en concreto y de la versión de estas.

x Escritorio X Window: el sistema X Window es el estándar gráfico para Linux como


visualización de escritorio. Linux trae una versión denominada XFree86.
Normalmente, el X Window es una capa gráfica intermedia que confía a otra capa
denominada gestor de ventanas la visualización de sus elementos. Podemos
combinar el gestor de ventanas con utilidades y programas de aplicación variados
para formar un entorno de escritorio.

x Los dos entornos de escrito más conocidos de Linux son: Gnome y KDE. Cada
uno de ellos se basa en una biblioteca de componentes propia. Pero además de
estos dos entornos hay otros gestores de ventanas o escritorios.

x Software de usuario: software añadido por el distribuidor, en su mayoría de tipo


Open Source, para las tareas habituales (o no). En las distribuciones habituales,
suelen encontrarse en sus CDs de instalación. Y en algunas distribuciones se
añaden software propietario de terceros.

Este es el modo en que cada distribución saca diferentes versiones.

Recuerda: El sistema GNU/Linux es el mismo, hay diferencias (que se pagan) en el


software añadido. Por ejemplo, en servidores web o en servidores correo, ya sean
propios, optimizados o mejorados. O bien la inclusión de mejores herramientas,
desarrolladas por la distribuidora.

A menudo, este coste económico extra no tiene mucho sentido, ya que el software
estándar es suficiente (con un poco de trabajo extra de administración).

Vamos a hacer una pequeña introducción de las dos distribuciones más conocidas.

DEBIAN
Debian es una comunidad sin fines comerciales, aparte de mantener su distribución y
promocionar el uso del software de código abierto y libre.

Debian esta apoyada por una comunidad entusiasta de usuarios y desarrolladores


propios.

Debian comenzó en 1993 para comenzar a crear una distribución GNU/Linux, que en la
actualidad compite con otras distribuciones comerciales, como son Red Hat o Mandrake.
Al ser un proyecto comunitario se hizo que se rigiera por una serie de políticas, se realizó
un documento llamado “Contrato social Debian”, donde se incluía la filosofía del
proyecto, la política y la implementación de la distribución.

23
Esta muy relaciona con los objetivos de FSF y el Software Libre GNU. En lo que respecta
a las políticas, todo aquel que quiera participar en el proyecto, tendrá que seguir dichas
políticas.

Nota: Puedes consultar los documentos del “Contrato Social Debian” en:
www.debian.org

Hay que mencionar que Debian siempre ha sido una distribución difícil. Siempre se la ha
llamado la distribución de los hackers de Linux, en el buen sentido.

Las versiones anteriores de Debian se habían hecho famosas por su dificultad de


instalación. Las cosas con el tiempo han mejorado. La instalación puede realizarse
guiadas con menús, aunque se requieren ciertos conocimientos, y hay programas que
facilitan la instalación de los paquetes.

Se suele llamar “sabores” a las variantes de las distribuciones Debian. Nos encontramos
con tres ramas de distribución: la stable, la testing y la unstable. Stable destinada a
entornos de producción, testing software nuevo que ha sido testeado e instable las
ultimas novedades. A todas ellas se puede tener fácil acceso a través de diversas
fuentes (CD, ftp, web) a través de un sistema denominado APT que maneja todos los
paquetes software DEB de Debian.

Los más comunes asignados:

x Woody (stable)

x Sarge (testing)

x Sid (unstable)

Vamos a comentar brevemente algunas características de las distribuciones más


usadas:

x La distribución actual consta de 78 CD de la Woody 3.0r1. Dos CD de instalación


iniciales (se instala uno o el otro) y 34 CD de aplicaciones, además de
documentación y paquetes de código fuente, así como un CD de actualizaciones.
Podemos comprarla por un precio simbólico para que el proyecto siga adelante o
bajárnosla debian.org o sus mirrors.

24
x La Sarge y Sid no suelen tener CD, sino que puede convertirse una Woody a
testing o unstable mediante cambios de configuración del sistema de paquetes
APT.

x Núcleo Linux: utiliza núcleos de la serie 2.2.x por defecto (pero incluye 2.4.x de
forma opcional).

x Formato de empaquetado: Debian soporta uno de los más potentes, el APT.


Tienen un formato denominado DEB. El APT es una herramienta de alto nivel
para manejarlos y mantener una base de datos de los instalables y los
disponibles en el momento.

x En el escritorio acepta tanto Gnome 1.4 (por defecto) como KDE 2.2 (K Desktop
Environment). Sid con Gnome 2.2.3, y KDE 3.1.3.

x En cuanto a aplicaciones destacables, incluye casi todas las que nos encontramos
en las distribuciones de GNU/Linux; en Sid: editores como emacs 21.3 (y
xemacs), compilador gcc (3.3.1) y herramientas, servidor web Apache (2.0.47),
navegador web Mozilla (1.4), software Samba (3.0a) para compartir archivos con
Windows, etc.

x Incluye también suites ofimáticas como OpenOffice (1.0.3) y KOffice.

x Usa por defecto el gestor de arranque lilo. Lo cual no significa que no podamos
utilizar otros gestores de arranque.

x La configuración de la escucha de los servicios de red TCP/IP, que se realiza como


en la mayoría de UNIX, con el servidor inetd (/etc/inetd.conf).

x Hay muchas distribuciones más basadas en Debian,. Una de las más famosas es
Knoppix, una distribución de un único CD, tipo LiveCD (de ejecución en CD), que
es muy usada para demos de Linux, o para probarlo en una máquina sin hacer
una instalación previa, ya que arranca y se ejecuta desde CD, aunque también
puede instalarse en disco duro y convertirse en una Debian estándar. Linex es
otra distribución que ha conseguido bastante fama por su desarrollo apoyado por
una administración, la de la comunidad autónoma de Extremadura.

RED HAT
Red Hat inc. es una de las principales firmas comerciales del mundo GNU/Linux.Bob
Young y Marc Ewing crearon Red Hat Inc en 1994. Estaban interesados en los modelos
de software de código abierto y pensaron que se podía hacer negocio de ello. Su
producto estrella es su distribución Red Hat Linux, que es tanto para usuario individual
(versiones personal y profesional), como para las medianas o grandes empresas (con su
versión Enterprise y sus diferentes subversiones).

25
Recuerda: Red Hat Linux es la principal distribución comercial de Linux, Red Hat Inc es
una de las empresas que más colaboran con el desarrollo de Linux, varios miembros
importantes de la comunidad trabajan para ella.

Aunque trabajan con un modelo de código abierto, es una empresa, por lo que sus fines
son comerciales, suelen añadir a su distribución básica valores por medio de contratos
de soporte, suscripciones de actualización y otros métodos. Añaden software
personalizado (o propio), para hacer que se adecue más el rendimiento de la empresa, ya
sea por servidores optimizados o por software de utilidad propio de Red Hat.

Como valor añadido depura extensamente el kernel de Linux con su


distribución, y genera correcciones y parches para mejorar su
estabilidad. También ofrece muchas utilidades en el entorno gráfico y
programas gráficos propios, unas cuantas herramientas de
administración; los entornos gráficos que utiliza son tanto Gnome
(por defecto) como KDE, también posee un entorno modificado
propio denominado BlueCurve.

Red Hat abandona la distribución del Red Hat Linux, en sus versiones de escritorio,
centrando sus negocios en las versiones empresariales (Red Hat Linux Enterprise WS,
ES, y AS). Cediendo su distribución Red Hat Linux 9 a la comunidad A partir de ahora el
proyecto Fedora es el encargado de continuar la versión desktop libre.

Nota: Ver: //httpfedora.redhat.com

Comentaremos algunas características de esta distribución:

x Consiste en 6 CD, tres son básicos, junto con el primero,


bootable, para su instalación. Tres CD extras que contienen
documentación (manuales de Red Hat en diferentes
idiomas) y código fuente de la mayoría del software
instalado con la distribución.

x Núcleo Linux: utiliza núcleos de la serie 2.4.x (la 9 viene con un 2.4.20), que
puede irse actualizando con el servicio de suscripción Red Hat Network , de pago,
pudiendo obtenerse una cuenta “demo”.

x Formato de empaquetado: Red Hat distribuye su software mediante el sistema de


paquetes RPM (Red hat Package Manager), gestionados mediante el comando
rpm. El paquete RPM es básicamente un conjunto de ficheros comprimidos junto
con información de sus dependencias o del software que necesita.

x El arranque, utiliza scripts de tipo SystemV.

x Algunas de las versiones utilizadas son: XFree86 (4.3.0), glibc (2.3.2), Shell bash
(2.05b), etc.

x En el escritorio acepta tanto Gnome 2.2 o KDE 3.1 de forma opcional.

26
x Aplicaciones , incluye la mayoría de las distribuciones de GNU/Linux: editores
como emacs 21.3 (y xemacs), compilador gcc (3.2) y herramientas, servidor web
Apache (2.0.40), navegador web Mozilla (1.2.1), software Samba (2.2.7a) para
compartir archivos con Windows, etc. Incluye también suites ofimáticas como
OpenOffice (1.0.2) y KOffice.

x El software adicional puede obtenerse del servicio Red Hat Network.

x Usa por defecto el gestor de arranque Grub, a diferencia de la mayoría de


distribuciones que usan lilo.

x La configuración de escucha de los servicios de red TCP/IP, se realiza con el


servidor inetd (/etc/inetd.conf) en la mayoría de las distribuciones, en Red Hat ha
sido substituido por xinetd (directorio /etc/xinetd.d).

x Dispone en arranque de un programa denominado Kudzu que se encarga de


verificar cambios de hardware y detectar el hardware nuevo instalado.

x Hay varias distribuciones más basadas en Red Hat que siguen muchas de sus
características.

x La nueva distribución Fedora Core 1 presenta sólo unas pocas diferencias


respecto a Red Hat 9.

27
LO QUE HEMOS APRENDIDO
‡ Puede considerarse al administrador como un perfil de empleado que ayuda a los
demás empleados de la organización a aprovechar mejor y más óptimamente los
recursos disponibles, de forma que mejore toda la organización.

‡ El administrador debe dominar un rango amplio de tecnologías para poder


adaptarse a una multitud de tareas variadas, que pueden surgir dentro de la
organización.

‡ Normalmente, por administración de la red se entiende la gestión del sistema


como parte de la red, y hace referencia a los servicios o dispositivos cercanos
necesarios para que la máquina funcione en un entorno de red; no cubre
dispositivos de red como switches, bridges o hubs u otros dispositivos de red,
pero unos conocimientos básicos son imprescindibles para facilitar las tareas de
administración.

‡ Las tareas del administrador del sistema se podría resumir, por una parte, en la
administración loca del sistema, y por otra, en la administración de red.

‡ Algunas de las tareas de la administración local del sistema son : arranque y


apagado del sistema, gestión de usuarios y grupos, gestión de recursos del
sistema, gestión de los sistemas de ficheros, cuotas del sistema, seguridad del
sistema, backup y restauración del sistema, automatización de tareas rutinarias,
gestión de impresión y colas, …

‡ Los tres elementos software principales que componen un sistema GNU/Linux


son: el kernel Linux, las aplicaciones GNU y software de terceros.

‡ El número de distribución sólo sirve para comparar las distribuciones que genera
un mismo distribuidor, y no permite comparar entre otras distribuciones. Si
queremos hacer comparaciones entre distribuciones tendremos que examinar los
paquetes software principales y sus versiones para poder determinar qué
distribución aporta más novedades.

‡ Para hacer un mejor análisis de las distribuciones, habría que comprobar: versión
del núcleo Linux, formato de empaquetado, estructura del sistema de archivos,
scripts de arranque del sistema, versiones de la biblioteca del sistema, escritorio
X Window, software de usuario.

‡ El sistema GNU/Linux de fondo es el mismo, sólo hay diferencias (que se pagan)


en el software añadido (en general, obre de la misma casa distribuidora).

‡ Debian es una distribución apoyada por una comunidad entusiasta de usuarios y


desarrolladores propios, basada en el compromiso de la utilización de software
libre.

‡ Red Hat Linux es la principal distribución comercial de Linux, orientada tanto a


mercado personal de escritorio como a servidores de gama alta. Además, Red Hat
Inc es una de las empresas que más colaboran con el desarrollo de Linux, ya que
varios miembros importantes de la comunidad trabajan para ella.

28
ANOTACIONES
.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

29
TEST
Marcar la respuesta correcta.

1. ¿Cuáles de estas no es una tarea del administrador de sistemas?


† Gestión de recursos del sistema.
† Cuotas del mes.
† Seguridad del sistema.

2. El sistema GNU/Linux esta compuesto por:


† Hardware y software.
† Tres elementos básicos software.
† El kernel y los programas.

3. ¿Qué es una distribución GNU/Linux?


† Cualquiera de sus programas.
† Las compañías que se encargan de distribuir los sistemas GNU/Linux.
† Colección de software que forma un sistema operativo basado en el kernel del
Linux.

4. ¿Cuál no es una distribución GNU/Linux?


† Red Hat Woody .
† ReHat.
† Debian Sid.

5. ¿Qué son los documentos “Contrato social Debian”?


† Documentos que tienes que firmar cuando compras una distribución Debian.
† Documentos propios de ello que certifican la calidad de la distribución.
† Documentos que especifican en detalle cómo se implementa la distribución
Debian, especificando su filosofía y sus políticas.

6. ¿Qué núcleo de Linux utiliza Red Hat Linux 9?


† 1.x.
† 2.3.x.
† 2.4.x.

30
ACTIVIDADES
1. Leer el manifiesto Debian en http://www.debian.org/social/contract.

2. Documentarse sobre las diferentes distribuciones Debian: Knoppix, Linex. Aparte de


los sitios de cada distribución, en la dirección http://www.distrowatch.com hay una
buena guía de las distribuciones y su estado, así como el software que incluyen. En
esta web, o bien en http://linuxiso.org, se pueden obtener las imágenes de los CD de
la mayoría de las distribuciones.

31
32

Linux Avanzado
 

Administración de Sistemas GNU/Linux

TEMA 3. Instalación de Linux

TEMA 4. Herramientas Básicas para el Administrador

módulo 2
TEMA 5.Intérprete de Comandos

TEMA 6. Sistema de Ficheros

TEMA 7. Arranque y Servicios

TEMA 8. Usuarios y Grupos

TEMA 9. Administración de Paquetes

TEMA 10. Configuración de la Red

TEMA 11. Impresoras

33
34
Linux Avanzado

Instalación de Linux

i Preparándose Para la Instalación

i Particionamiento del Disco Duro

i Formas de Instalación

i Cómo Generar un Diskete de Instalación

i Instalación desde CD-ROM

Objetivos:
tema 3
i Ser capaz de instalar cualquier distribución GNU/Linux.

35
36
Preparándose Para la Instalación

Es necesario antes de instalar cualquier distribución , en la medida de nuestras


posibilidades, conocer el hardware que tenemos, para saber si es soportado por Linux.
Aquí puede encontrar una relación de todo el hardware soportado por Linux:
http://www.linux.org/docs/ldp/howto/HOWTO-INDEX/howtos.html

Es poco el hardware que no soporta Linux hoy en día. Si no conoce todo el hardware, no
ocurre nada, Linux posee un gran número de drivers que permitirá que sus dispositivos
trabajen correctamente, solo necesita saber, en principio, el tipo de procesador, el tipo
de tarjeta de red, arquitectura hardware, cantidad de memoria y disco duro.

Particionamiento del Disco Duro

Para la instalación de Linux es necesario realizar particiones en el disco duro, asi que
vamos a ver unos conceptos básicos de esto.

CONCEPTOS SOBRE PARTICIONES


Normalmente los discos duros los encontramos divididos en diferentes particiones, cada
una de ellas para un sistema operativo diferente. Hoy en día no es dificil encontrarse un
ordenador donde convivan , tanto el sistema operativo Windows, como, una de nuestras
numerosas distribuciones Linux.

En el caso de que ya tenga otro sistema operativo en su sistema, habrá que


redimencional el tamaño de las particiones, para encontrar un lugar en el que isntalar
nuestro sistema Linux. Es necesario una partición para nuestro sistema Linux, y otra,
para el espacio de intercambio, como mínimo, aunque es posible tener más particiones.
A este proceso de le denomina reparticionar.

Para los sistemas MS-DOS se utiliza una única partición, la cual ocupa todo el disco
duro. A esta partición la suele llamar C:. Si se crea alguna otra partición las irá llamando
D:, E:, y asi sucesivamente, cada partición la ve como un disco duro independiente.

En el primer sector del disco nos encontramos el registro de arranque, junto a la tabla de
particiones. El registro de arranque es lo que se usa para el arranque del sistema. Y las
tablas de particiones lo que contienen es la información de cada una de las particiones
que se encuentran en nuestro disco duro. Tenemos tres clases de particiones: primarias,
extendidas y lógicas. Las más utilizadas son las primarias, pero sólo se pueden tener un
máximo de cuatro en un mismo disco duro. Para poder tener más de cuatro particiones
en un disco duro es usando particiones extendidas. Un partición extendida no contiene
datos en si misma, es como una especie de recipiente, para las particiones lógicas, que
son las que contienen los datos. Es decir que, por ejemplo, todo el disco duro podría ser
una partición extendida y dentro tener muchas particiones lógicas. Sólo se puede tener
una partición extendida por disco duro.

37
NECESIDADES DE REPARTICIONADO EN LINUX
Antes de reparticionar el disco, necesita saber cuales son las particiones necesarias para
que un sistema Linux pueda ser instalado.

Los sistemas UNIX almacenan los ficheros en un sistema de ficheros, que ocupan una
zona del disco duro (u otro dispositivo) formateado para almacenar ficheros. Cada
sistema de ficheros esta asociado a una parte del árbol de directorios; un ejemplo, el
directorio /usr, tendrá un sistema de ficheros, y el directorio /tmp tendrá otro. El sistema
de ficheros principal es el raíz, que se denota como /.

En Linux, cada sistema de ficheros representa una partición diferente del disco duro. Es
decir, si tenemos un sistemas de ficheros para la raíz, /, y tenemos otro distinto para el
directorio /usr, estos deberán encontrarse en particiones diferentes del disco.

Antes de instalar Linux es necesario tener preparado el sistema de ficheros que nos
permita almacenar el software Linux. Como mínimo de debe tener una partición con un
sistema de ficheros, para almacenar la raíz, /. La mayoría de las veces suele ser esta la
forma de realizarlo, ya es más fácil de gestionar el sistema de esta forma pero, como
hemos dicho anteriormente, se pueden tener diferentes directorios en particiones
distintas.

Algunas distribuciones Linux crean particiones y sistemas de ficheros automáticamente.

Otra cuestión a tener en cuenta es la partición de intercambio (swap). Si se desea utilizar


espacio de intercambio, se tiene dos opciones. Podemos usar un fichero de intercambio
que existe dentro de uno de los sistemas de ficheros Linux. Se crea el fichero de
intercambio una vez instalado el software. La otra opción, es crear una partición de
intercambio, reservada como espacio de intercambio. La mayoría de la gente opta por
crear una partición de intercambio. Cada fichero o partición de intercambio puede ser de
hasta 16 megabytes. Si se quiere tener más se pueden crear varios ficheros o
particiones.

Por lo general, se crearán dos particiones para Linux: una para ser usada como sistema
de ficheros raíz, y la otra como espacio de intercambio. Por supuesto, hay otras opciones
pero esta es la opción mínima. El espacio de swap no es obligatorio en Linux, pero está
muy recomendado si posee menos de 16 megabytes de memoria física.

Hay que conocer el tamaño requerido para cada partición. Normalmente en los sistemas
Linux, este tamaño depende del software que vaya a ser instalado y de la distribución
Linux que se utilice. Las distribuciones vienen con documentación, donde se da una idea
del espacio requerido. Un sistema pequeño puede solo usar 20 megabytes o menos, y
un sistema mayor 80 o 100 megabytes o más.

El tamaño de la partición de intercambio (swap) depende de la RAM virtual que se


necesite. Lo normal es crearla de tamaño el doble del tamaño de la RAM física. Esto sólo
es una aproximación de lo que se le puede dar, siempre dependerá del software que se
quiera ejecutar.

38
Nota importante: Debido a las limitaciones de la BIOS, no se puede arrancar desde
particiones que empiecen más allá del cilindro 1023. Cuando decida el espacio para
Linux, recuerde que una partición que sobrepase ese cilindro para el sistema de ficheros
raíz. Linux puede usar particiones con cilindros más allá del 1023, pero dichas
particiones no servirán para arrancar.

REPARTICIONADO D E LOS DISCOS


Este apartado es en caso de que ya tenga algún sistema operativo en el disco duro, en
caso que este instalando Linux en un disco duro limpio no es necesario este paso.

La manera más común de cambiar el tamaño de una partición es borrándola y


rehaciéndola. Por lo que se deberá hacer una copia de seguridad del sistema. Aunque
hay que mencionar, para sistemas operativos, como windows, existen programas que te
realizan esta redimensión, no fuera de riesgos.

Después de cambiar el tamaño de las particiones, puede reinstalar el software desde la


copia de seguridad. Pero, como ya hemos mencionado, podemos cambiar el tamaño sin
necesidad de destruir la partición.

Existe un programa para hacer particiones muy utilizado, el fdisk. Cada sistema
operativo tiene su propia versión. Si se desea utilizar, debe consultar la documentación
del sistema operativo.

Un aviso: No modifique o cree particiones para otros sistemas operativos (incluyendo


Linux) utilizando FDISK bajo MS-DOS. Solo pueden modificarse particiones de cada
sistema operativo con la versión de fdisk correspondiente a ese sistema; por ejemplo, se
crearán las particiones para Linux utilizando el programa fdisk que viene con Linux.

Imaginemos que únicamente tenemos un disco duro en nuestro sistema, por ahora, con
MS-DOS.

Es decir tenemos una partición que es llamada “C:”. Ya que en este caso destruiremos
los datos, tendremos que crear un disco de sistema MS-DOS arrancable, que contenga
lo necesario para arrancar el FDISK y recuperar el software desde la copia de seguridad
una vez se haya realizado el reparticionado.

Normalmente se puede usar el disco de instalación para ello, pero si necesita un disco
de sistema formatéelo con el comando:

x FORMAT /s A:

Copiamos en el disco todas las utilidades de MS-DOS, normalmente es todo lo


que podemos encontrar en el directorio /DOS, y además, los programas
FORMAT.COM y FDIS.EXE.

39
A partir de este momento podremos arrancar desde el disquete y ejecutar el comando:

x FDISK C:

La utilización de FDISK es muy explicativa, ya que te da un menú para seguirla. A


continuación vamos a crear nuestro sistema de particiones.

Crear partición DOS o unidad lógica DOS". Especifique el tipo de partición (primaria,
extendida o lógica) y el tamaño (en megabytes). FDISK deberá crear la partición.

Después de hacer esto mediante FDISK, debe abandonar el programa y reformatear las
nuevas particiones. Por ejemplo, si se cambió el tamaño de la partición C: se tecleará el
comando:

x FORMAT /s C:

En este momento se puede reinstalar el software desde el backup.

Nota: Esta es una de las muchas opciones que existen para particionar el disco duro. Por
ejemplo, Microsoft posee programas software que te permiten particionar y
redimensionar particiones, sin necesidad de borrar todo el disco duro. Además en
muchas distribuciones Linux, el proceso de instalación te dan la posibilidad de ello, de
forma rápida y fácil.

Formas de Instalación

El Linux puede ser instalado de 3 formas

x Desde un CDROM local

x Desde un disco duro

x Desde la red por FTP , http, nfs

Cómo Generar un Diskete de Instalación

Si el hardware no detecta el CD de arranque, puede generar un disquete el cual dará


esas opciones.

En el directorio /dosutils/ encontramos el programa “rawrite” con el que podemos


generar el disquete siguiendo los siguientes pasos:

1. Ejecutamos el comando

rawrite

2. Indicamos el tipo de disquete que queremos generar,

../images/boot.img

40
Existen tres imágenes:

x boot.img : para casos en que el hardware no reconozca el disco de arranque.

x bootnet.img: para casos que la instalación sea por red.

x pcmcia.img: para casos de tecnología PCMCIA generalmente encontrada en


computadores portátiles.

3. Indicamos en donde se encuentra el disquete “a” o “b” ya sea el caso.

4. Ingresamos el disquete y le damos enter.

5. El disquete es generado.

Instalación desde CD-ROM

Esta es la forma más utilizada para instalar Linux.

Arrancamos directamente desde el cdrom o con el disquete según sea el caso.

Se pueden elegir varias formas de instalación: modo texto, modo gráfico, modo experto
o modo vesa graphics.

A lo largo de la instalacion nos saldrá:

SELECCIÓN DEL IDIOMA


Casi todas las distribuciones Linux presentan varias opciones de lenguaje. Linux no tiene
problema de compatibilidad con los idiomas.

Seleccione el Idioma (En caso de que fueran estos tres).

x Portugués

x Español

x Inglés

Seleccionamos el idioma español

DETECCIÓN DE MOUSE O RATÓN


El mouse siempre es detectado, pero si desea buscar el tipo exacto puede seleccionarlo,
en cualquier caso, no hay ningún problema si lo deja con el que se le da por defecto.

En Linux la denominación COM1 es representada por el puerto ttyS0 de ahí COM2 como
ttyS1 y así sucesivamente.

Le damos continuar

41
SELECCIÓN DEL TIPO DE TECLADO
Casi al 100% el teclado es detectado automáticamente, solo hay que tener en cuenta
que la mayoría de los teclados vienen con la distribución Latinoamericana o español.

Seleccionemos el tipo de teclado y le damos continuar

Nota: Ahora Linux comienza a cargar los Módulos del Kernel para la instalación, detecta
los destinos y carga el particionador.

SELECCIÓN DEL TIPO DE INSTALACIÓN


Elegiremos:

x Realizar una instalación nueva.

x Actualizar copia ya instalada.

Es recomendable realizar siempre una instalación nueva, si quiere pasar a una mejor, es
preferible realizar una copia de todos los datos, y comenzar esta instalación desde el
principio.

SELECCIÓN DEL MODO DE INSTALACIÓN


x Instalación realmente mínima.

x Instalación mínima.

x Instalación estándar.

x Encaminador / Firewall.

x Estación de Trabajo Básica con X.

x Estación de Trabajo.

x Notebook.

x Servidor de Red.

x Instalación completa.

x Instalación personalizada.

o Forzar Selección de paquetes.

o Forzar Particionamiento manual.

o No instalar Documentación.

42
Dependiendo de la instalación se nos instalará los módulos de paquetes necesarios, es
recomendable forzar la opción de selección de paquetes, y elegir nosotros los que
deseemos.

También es recomendable que se marque la opción Particionamiento manual, que nos


permitirá particionar el disco duro manualmente.

La última opción no se debe marcar ya que es muy útil tener la documentación a mano y
no ocupa demasiado espacio.

PARTICIONAMIENTO DEL DISCO DURO


El sistema de Archivos nativo de Linux es el ext2 y la ultima versión mejorada es el ext3

Primero se definamos la forma en que el Linux nombra a los dispositivos de


almacenamiento.

x Para los discos IDE

El primer disco físico instalado se denominará:

hda > Hard Disk A (Primer disco físico del sistema)

Si a este disco le definimos particiones se denominarán :

hda1 > Hard Disk A partición primaria 1

hda2 > Hard Disk A partición primaria 2

Las particiones de la 1 a la 4 (hda1,hda2,…,hda4), se refiere a las particiones


primarias. Ya que un disco duro puede soportar un máximo de cuatro particiones
primarias, asi que Linux las reserva para dicho caso. Si definimos particiones
lógicas empezará a contar des de la 5 (hda5,hda6,…)

hda5 > Har Disk A (primera) partición lógica 5

El Segundo disco físico instalado se denominará:

hdb > Hard Disk B (Segundo disco físico del sistema)

Y de la misma forma las particiones serán hdb1, hdb2, hdb3….etc y así


sucesivamente con los siguientes discos.

x Discos SCSI

En el caso de los Discos SCSI la denominación sería sda1, sda2…. sdb1,


sdb2….

43
LINUX-SWAP

Debe ser dos veces el tamaño de la memoria RAM de la que esta provista nuestro
sistema.

Linux-Swap = 2 x memoria RAM

En los discos duros con más de 1024 cilindros será necesario crear una partición
pequeña para el boot.

El siguiente ejemplo es el caso de un disco 5.0 GB

Dispositivo F B Tipo Sistema deInicio Tamaño Punto de


Archivos
(Mb) (Mb) Montaje

/dev/hda1 * * Primary ext 3 0 100 /boot

/dev/hda2 * Primary Linux-swap 101 512

/dev/hda3 * Primary ext3 614 4506 /

x Dispositivo: Indica el disco duro y la partición

x F: Indica que la partición será formateada

x B: Indica que la partición será booteable

x Tipo: Indica si la partición es primaria, extendida o lógica

x Sist. Archivos: Indica el sistema de Archivos ext2, ext3, Vfat, linux-swap, etc

x Inicio: Indica el punto donde inicia la partición en Mega Bytes

x Tamaño: Indica el tamaño de la partición en MegaBytes

x Punto de Montaje: Indica el lugar donde serán instalados los paquetes

x /boot > En este directorio se instalan todos los archivos de booteo del Linux

x / > Directorio raíz, se instala el resto de archivos de Linux.

Linux tiene una estructura de directorios estándar aplicable a todas sus distribuciones,
por lo que es conveniente respetarla.

Si el sistema operativo que esta instalado ocupa todo el disco duro lo recomendable, si
tiene espacio suficiente, es reparticionar el disco duro usando algún programa indicado
para ello.

http://www.partition-manager.com

http://www.ranish.com/part/

44
Una vez terminado el Particionamiento le damos continuar

Nota: El sistema en este momento comienza a formatear las particiones, suele tardar
algún tiempo dependiendo del tamaño de las particiones. Formateado el disco duro,
comienza a cagar el listado de paquetes si es que eligió la opcion “Forzar Selección de
paquetes”.

SELECCIÓN DE PAQUETES
Aparecerá un amplio listado de paquetes, puede elegir todas las que desea.

Aparte de la selección de paquetes usted puede instalar cada uno de los componentes
de cada paquete individualmente eligiendo la opción:

Seleccionar Paquetes Individualmente

En este caso, controlamos con todo detalle la instalación del software de Linux, no
debemos preocuparnos por las dependencias porque él solo las marcará en el caso que
las haya.

Si no quiere darse molestias seleccione los paquetes deseados y la opción instalar todos
los paquetes, y dele continuar.

Nota: Linux crea una base de datos de todos los componentes a instalar. Una vez la crea
comienza a detectar las dependencias. Comienzo de la instalación de paquetes, esto
puede tardar varios minutos dependiendo de la cantidad de paquetes seleccionados.

SELECCIÓN DE TARJETA DE RED


En el caso de que la tarjeta no haya sido detectada automáticamente, el sistema te
ofrece un listado de drivers a seleccionar.

Si le apareció esta opción elija el driver que mas se adecua a su tarjeta de Red y dele
continuar.

CONFIGURACIÓN DE RED
Primero nombre del servidor.

Segundo tiene tres Opciones:

x Sin interfaz de red <este caso es para estaciones de trabajo stand alone>

x Configuración de Red vía DHCP <para cuando tiene un servidor DHCP>

x Configuración de red manual

45
Si se elige cualquiera de las dos primeras se da a continuar, en otro caso se va al
siguiente paso.

Si Eligió la tercera opción tendrá que ingresar los siguientes datos

x Dirección IP <IP-de su red> ejemplo: 172.16.2.123

x Mascara de Red <netnamsk> ejemplo: 255.255.255.0

x Encaminador <IP-router> ejemplo: 172.16.2.1

x (En este caso ingrese la dirección del router o del servidor proxy si lo tuviese)

x Servidor de Nombres <IP-DNS> ejemplo: 206.105.138.36

SELECCIONAR LA TARJETA DE VIDEO


Dos Opciones

x Usar lo detectado o configurarlo manualmente

x Usar la configuración detectada automáticamente

Esta opción es para los dos casos modelo y controlador

x Seleccionar la tarjeta de video manualmente y/o

x Seleccionar un controlador alternativo

Una vez seleccionado dele continuar

SELECCIÓN DEL MONITOR


Debe buscar el nombre de la marca y el modelo de la lista que se le da, si no lo
encuentra, utilicé un controlador genérico o sálteselo y lo configura posteriormente.

CONFIGURACIÓN DEL ESCRITORIO


Seleccione la opción de resolución y cantidad de colores en el que desea trabajar y dele
continuar.

CONFIGURACIÓN DEL USUARIO


Lo primero que le pide es que cree la contraseña del súper usuario, denominado root.

También da la opción de crear un usuario,

Ingrese Su nombre Completo, el Nombre de Acceso, su contraseña y de la opción añadir


o agregar.

46
Una ves creado el usuario e ingresado la contraseña del root le damos continuar

CONFIGURACIÓN DEL GESTOR DE ARRANQUE


El gestor de arranque es lo que permitirá arrancar nuestro sistema Linux, pero también,
con él, se puede gestionar el arranque de otros sistemas operativos.

Es recomendable es que el gestor de arranque sea instalado en el sector de arranque


Master Boot Record (MBR).

Tenemos dos opciones con respecto al gestor de arranque:

x GRUB Gestor de Arranque en modo gráfico

x LILO Gestor estándar y es en modo texto

x Ninguno no recomendable

Elegimos Lilo e instalarlo en el MBR

Nota: En este momento el sistema graba los archivos de configuración.

CREAR UN DISCO DE ARRANQUE.


Es importante que por lo menos tenga un disco de arranque, así es que si no lo tiene es
mejor que no se salte esta opción y lo genere.

Genere el disco y dele continuar.

Nota: Una vez generado el disquete el sistema ejecuta el script de posinstalación y


finaliza la instalación.

FIN DE LA INSTALACIÓN
Retire el cd y el disquete si lo tuviese y de clic en la opción salir.

47
LO QUE HEMOS APRENDIDO
‡ Existen tres formas diferentes para instalar un sistema Linux. Boteando desde un
CDROM local ,desde un disco duro o desde la red por FTP , http, nfs

‡ Es necesario particionar el disco duro antes de nuestra instalación. Mínimo


debemos tener una partición primaria y una partición swap.

‡ Debemos conocer nuestro hardware antes de la instalación.

‡ Linux es perfectamente capaz de coexistir con otros sistemas operativos en un


mismo disco duro.

48
ANOTACIONES
.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

49
TEST
Marcar la respuesta correcta.

1. ¿Para que es necesario realizar particiones del disco duro?


† Para dejar espacio libre.
† Para poder tener varios sistemas operativos o almacenamientos.
† Para nada.

2. ¿Qué tamaño debe tener la partición de intercambio?


† El que queramos.
† Igual que el de la partición donde vayamos a instalar Linux.
† Dos veces la memoria RAM.

3. ¿Qué es una distribución GNU/Linux?


† Cualquiera de sus programas.
† Las compañías que se encargan de distribuir los sistemas GNU/Linux.
† Colección de software que forma un sistema operativo basado en el kernel del
Linux.

4. ¿Cuántos tipos de particiones existen?


† Tres (física, lógica, extendida).
† Tres (extendidas, primarias, lógicas).
† Dos (primarias, extendidas).

5. ¿Debemos al menos crear un usuario más además del root?


† No.
† Si.
† Depende de la seguridad que le queramos dar a nuestro sistema.

6. ¿Cuáles son los gestores de arranque?


† LILO, GUB.
† LOLI, GRUB.
† GRUB, LILO.

50
ACTIVIDADES
1. Elija una de las muchas distribuciones Linux e instálela en su ordenador, siguiendo
los pasos indicados en el tema.

51
52
Linux Avanzado

Herramientas Básicas para el


Administrador

i Introducción

i Herramientas Gráficas y Línea de Comandos

i Documentos Estándares

i Documentación del Sistema en Línea

i
Shell y Scripts

Herramientas Genéricas del Administrador


tema 4
i Otras Herramientas

Objetivos:
i Conocer las numerosas herramientas, gráficas y no gráficas,
que poseemos en nuestro sistema.

i Saber manejarse con el intérprete de comandos.

53
54
Introducción

El administrador GNU/Linux tiene que enfrentarse a tareas diferentes día tras día. La
filosofía UNIX no es tener una única herramienta para realizar una tarea, sino que te da
un amplio número de tareas para enfrentar cualquiera de las tareas.

Veremos, a continuación, los diferentes grupos de herramientas y ejemplos de su uso.


Dando a conocer algunas funciones básicas de dichas herramientas y su uso.

Empezaremos por estudiar algunos de los estándares Linux, tales como el LSB (Linux
Standard Base) y el FHS (Filesystem Hierarchy Standard), nos hablan de herramientas
que tendremos disponibles en todos los sistemas Linux, una estructura común de
sistemas de ficheros, así como las normas que deben cumplirse para que una
distribución sea considerada un sistema GNU/Linux.

Nota: Ver FHS en: www.pathname.com/fhs

Se suelen utilizar lo que llamamos shell scripts para automatizar las tareas de
administración, consiste en una agrupación de comandos en un mismo fichero, son
lenguajes interpretados por el shell (intérprete de comandos), que son los que nos
permiten unir los comandos del sistemas con estructuras de control de flujo.

También se suelen utilizar herramientas de compilación y depuración de lenguajes de


alto nivel, un ejemplo de ello el lenguaje C. Serán utilizadas por el administrador para
desarrollar nuevas aplicaciones o herramientas, o para incorporar sistema de
aplicaciones que vengan con el código fuente y para adaptarse deban compilarse.

Analizaremos algunas herramientas gráficas que realizan las mismas tareas que
comandos. Suelen facilitar la tarea al administrador, pero son de uso limitado, ya que
son dependientes de la distribución GNU/Linux que utilizaremos, y, a veces, incluso, de
la versión. Existen herramientas útiles que son exportables entre distribuciones.

También analizaremos el uso de algunas herramientas gráficas con respecto a las de la


línea de comandos.

Estas herramientas suelen facilitar las tareas al administrador, pero su uso es limitado,
ya que dependen fuertemente de la distribución de GNU/Linux, o incluso de cada
versión. Aun así, hay algunas herramientas útiles que son exportables entre
distribuciones.

En último lugar, analizaremos un grupo de herramientas para mantener las


actualizaciones, es lo que llamamos herramientas de gestión de paquetes. Normalmente,
todas las distribuciones GNU/Linux suelen aportar software de gestión para mantener
las listas de paquetes instalados o por instalar, además de control de versiones, o la
posibilidad de actualizar las diferentes fuentes.

55
Herramientas Gráficas y Línea de Comandos

Existen muchas más herramientas que las que estudiaremos en esta a continuación.

Estas herramientas pueden cubrir los aspectos de la administración y presentables en


interfaces diferentes: ya sea en línea de comandos y/o ficheros de configuración
asociados o herramientas textuales con algún tipo de menús elaborados, o herramientas
gráficas; o asistentes que automaticen tareas, o interfaces web de administración.

Nota: Todo esto nos ofrece un gran número de posibilidades de cara a la administración,
pero siempre tenemos que valorar su facilidad de uso con las prestaciones y los
conocimientos del administrador que se dedica a estas tareas.

Un administrador GNU/Linux puede llegar a trabajar con diferentes distribuciones, o


trabajar con variantes comerciales UNIX. Debemos establecer una manera de trabajar
para hacer de forma uniforme las tareas en los diferentes sistemas.

Todas las distribuciones GNU/Linux aportan herramientas del tipo línea de comandos,
textual o gráfico.

Hay que tener en cuenta varios puntos:

x Estas herramientas son una interfaz elaborada de las herramientas básicas de


línea de comandos y los correspondientes ficheros de configuración.

x Ofrecen todas las prestaciones o configuraciones que pueden realizarse a bajo


nivel.

x Los errores serán difíciles de gestionar, simplemente proporcionar mensajes tipo


“la tarea no se ha podido realizar”.

x Son útiles en la mejora de la producción, cuando el administrador tiene los


conocimientos adecuados, realiza las tareas rutinarias de forma más eficaz y las
automatiza.

x Puede ocurrir el caso contrario, la tarea puede ser compleja, o necesitar tantos
parámetros, o generar tantos datos, que es imposible de controlar de forma
manual. En estos casos, es cuando las herramientas de alto nivel pueden ser muy
útiles y volver practicables algunas tareas que de otra manera son difíciles de
controlar.

x En la automatización de tareas, estas herramientas pueden no ser las adecuadas,


pueden no haber estado pensadas para los pasos que hay que realizar, o bien
hacerlo de forma no eficaz.

x Los administradores suelen querer personalizar sus tareas utilizando las


herramientas que consideran más cómodas y fáciles de adaptar. Lo que más
suelen utilizar son las herramientas básicas de bajo nivel y la utilización de shell
scripts para combinarlas de modo que formen una tarea.

56
Documentos Estándares

Los estándares nos permiten seguir unos criterios básicos, para guiarnos a la hora de
realizar nuestro trabajo y nos proporcionan información básica para el comienzo de
nuestro trabajo.

Recuerda: En GNU/Linux encontrarnos los estándares FHS (Filesystem Hierarchy


Standard), que nos explica qué podemos encontrar en la estructura del sistema de
ficheros de nuestro sistema. O el LSB (Linux Standard Base), que nos comenta
diferentes componentes que encontramos en los sistemas.

En el estándar FHS (Filesystem Hierchachy Standard) se describen la estructura de árbol


del sistema de ficheros principal (/), donde vemos especificada la estructura de
directorios y los ficheros que contendrá. Es el estándar utilizado en mayor o menor
medida también para los UNIX comerciales, donde en principio existieron muchas
diferencias que hacía que cada fabricante cambiará la estructura a su antojo. El estándar
fue pensado para GNU/Linux se hizo para normalizar esta situación. El estándar tiene
diferentes grados de utilización, la mayoría de las distribuciones lo siguen, solo
aportando cambios aportando nuevos ficheros o directorios que no existían en el
estándar.

Nota: El estándar FHS es una herramienta básica para el conocimiento de una


distribución, que nos permite conocer la estructura y funcionalidad del sistema de
archivos principal del sistema.

Es muy importante conocer esta estructura para manejarse por el sistema.

Un esquema básico de directorios sería:

x /bin: utilidades de la base del sistema, programas empleados por los usuarios.
Por ejemplo; /bin/ls es la lista de directorios o, /bin/bash los shells.

x /boot: archivos necesarios para el arranque del sistema, por ejemplo la imagen
del kernel Linux, en /boot/vmlinuz.

x /dev: podemos encontrar todos los ficheros que representan los dispositivos
disponibles posibles (los podemos tener o no). Podemos encontrar ficheros como
/dev/console, /dev/modem, /dev/mouse, /dev/cdrom, /dev/floppy,... estos suelen
ser enlaces a dispositivos.

x /etc: ficheros de configuración. La mayoría de tareas de administración


necesitarán examinar o modificar los ficheros contenidos en este directorio.

x /home: las cuentas de los usuarios, es decir, los directorios personales de cada
usuario.

x /lib: las bibliotecas del sistema.

x /mnt: punto para montar (comando mount) sistemas de ficheros extraíbles.

57
x /opt: el software añadido al sistema posterior a la instalación.

x /sbin: utilidades de base del sistema. Comandos reservados al administrador


(root).

x /tmp: ficheros temporales de las aplicaciones o del propio sistema.

x /usr: diferentes elementos instalados en el sistema.

x /var: ficheros de registro de sesión o de estado (ficheros de tipo log) y/o errores
del propio sistema y de diversos servicios. Por ejemplo, ficheros de sesión en
/var/log, contenido de los mails en /var/spool/mail, o trabajos de impresión en
/var/spool/lpd.

Las distribuciones Red Hat sigue el estándar FHS de cerca, pero representa algunos
cambios en los archivos en /usr, /var. En /etc, suele haber un directorio por componente
que se pueda configurar, y en /opt, no suele estar el software instalado, a no ser que el
usuario lo instale. Debian sigue el estándar, pero añade algunos directorios de
configuración en /etc.

El otro estándar en proceso es el LSB (Linux Standard Base). La idea de este estándar es
hacer posible la portabilidad de aplicaciones entre distribuciones definiendo unos niveles
entre las aplicaciones, bibliotecas y utilidades, además aporta un conjunto de pruebas
para verificar el nivel de compatibilidad.

Documentación del Sistema en Línea


Uno de los aspectos más importante para las tareas de administración es disponer de
una buena documentación. Hay muchas fuentes de información, pero a destacar:

x man es la ayuda por excelencia. Permite consultar el manual de GNU/Linux,


agrupado en secciones, correspondientes a comandos de administración, formato
de fichero, comandos de usuarios, llamadas de lenguaje C, etc. Para obtener la
ayuda:

i. man comando

Cada página describe el comando con sus opciones y, aporta algunos ejemplos.
Puede ocurrir que haya más de una entrada al manual, por ejemplo, puede que
haya una llamada a C con igual nombre que el comando. En estos casos para
especificar la sección:

ii. man n comando siendo n el número de sección.

Existen también herramientas de exploración de los manuales, (xman y tkman),


mediante interfaz gráfica facilitan el examen de las diferentes secciones, así
como índices de los comandos.

Un comando interesante es apropos palabra, utilizado para localizar páginas man


que hablen de un tema determinado.

58
x info. Programa desarrollado por GNU para la documentación de muchas de sus
herramientas.

x Documentación de las aplicaciones: es habitual incluir en las aplicaciones


documentación extra, ya sea en manuales o tutoriales, o guías de usuario. Estos
componentes de documentación se suelen instalar en el directorio /usr/doc.

x Sistemas propios de las distribuciones. Red Hat suele venir con unos CD de
manuales de consulta que son instalables en el sistema y tienen formatos HTML
o PDF. Debían trae los manuales como un paquete de softwarec. Además,
dispone de herramientas que clasifican la documentación presente en el sistema,
y la organizan por menús para su visualización.

x Por último, los escritorios X, como Gnome y KDE, también traen sistemas de
documentación propios con su documentación y manuales.

Shell y Scripts

El termino shell es utilizado para referirse a un programa que sirve de interfaz entre el
usuario y el kernel del sistema GNU/Linux. Nos centraremos en los shells de texto, que
es lo que nos encontramos como usuarios dentro del sistema.

El shell es lo que los usuarios ven del sistema, el resto esta oculto para ellos. Se ejecuta
como un programa más del sistema, no esta integrado en el kernel.

Cuando arrancamos un sistema GNU/Linux podemos tener dos tipos de interfaces, una
de texto o una gráfica. Dependiendo del modo de arranque del sistema, que pueden ser
cualquier de los diferentes de texto o aquellos en los que tenemos el arranque de la X
Windows.

Recuerda: El shell es como un programa que te permite interactuar con el kernel a través
de comandos o de ficheros de configuración.

En los modos gráficos de arranque lo que nos encontramos es una ventana gráfica
donde introducir los datos necesarios para el acceso, como son: identificador de usuario,
y su contraseño.

La mayoría de las distribuciones, también te da la opción de elegir el gestor de ventana,


lo más utilizados son Gnome y KDE. Una vez validado el usuario, lo que nos
encontraremos será una interfaz gráfica X Windows con su correspondiente gestor de
ventanas. Si se desea interactuar desde un shell tendremos intérpretes que nos lo
permitirá.

Si nuestro acceso es por modo consola, cuando validados obtendremos el acceso directo
al shell interactivo.

Se tiene acceso a un shell interactivo a través del acceso remoto a la maquina, por
cualquiera de las vías posibles.

59
SHELLS INTERACTIVOS (INTÉRPRETE DE COMANDOS)
Una vez iniciado el shell se muestra un prompt, indicándole que puede introducir
cualquier comando. El shell asume la responsabilidad de validar y poner los procesos
necesarios en ejecución mediante las siguientes fases:

x Leer e interpretar la línea de comandos.

x Evaluar los caracteres “comodín” como $ * ? u otros.

x Gestionar las redirecciones de E/S necesarias, los pipes y los procesos en


segundo plano (background) necesarios (&).

x Manejar señales.

x Preparar la ejecución de los programas.

Recuerda: Los shell scripts son ficheros de texto que contienen secuencias de comandos
de sistema, más comandos propios del shell interactivo, más las estructuras de control
necesarias para el flujo del programa (tipo while, for, etc.).

Los ficheros script son ejecutables por el sistema. Para ejecutarlos, se invoca el shell
junto con el nombre del fichero, o se dan permisos de ejecución al shell script.

Podemos ver un shell script como código de un lenguaje interpretado que se ejecuta
sobre su shell correspondiente. Para un administrador estos son muy importantes, por
dos razones:

1. La configuración del sistema y de la mayoría de los servicios proporcionados se


hacen mediante herramientas proporcionadas en forma de shell scripts.

2. La principal forma de automatizar procesos de administración es mediante la


creación de shell scripts . Todos los programas invocados mediante un shell poseen
tres ficheros predefinidos. Estos ficheros son:

x standard input (entrada estándar): asignada al teclado del terminal; usa el


descriptor número 0.

x standard output (salida estándar): asignada a la pantalla del terminal; usa el


descriptor 1.

x standard error (salida estándar de errores): asignada a la pantalla del terminal;


utiliza el descriptor 2.

Cualquier programa ejecutado desde una shell tiene por defecto la entrada asociada al
teclado, su salida a la pantalla, y en el caso de producir errores, a la pantalla.

60
Los shells suelen proporcionar los tres mecanismos siguientes:

x Redirección: se pueden redefinir los descriptores de los ficheros para que los
flujos de datos de un descriptor vayan a cualquier otro descriptor; a esto se le
llama redirección.

x Tuberías (pipes): la salida estándar de un programa puede usarse como entrada


estándar de otro por medio de pipes.

x Concurrencia de programas de usuario: los usuarios pueden ejecutar varios


programas simultáneamente, indicando que su ejecución se va a producir en
segundo plano (background), en términos opuestos a primer plano (o
foreground), donde se tiene un control exclusivo de pantalla.

En los shells UNIX/Linux estos tres aspectos suponen en la práctica:

x Redirección: un comando va a poder recibir su entrada o salida desde otros


ficheros o dispositivos.

x Pipes: encadenamiento de varios comandos, con transmisión de sus datos:

comando1 | comando2 | comando3

Esta instrucción el comando1 recibirá entrada posiblemente de teclado, enviará


su salida a comando2, que la recibirá como entrada, y éste producirá salida hacia
comando3, que la recibe y produce su salida hacia salida estándar .

x Concurrencia en segundo plano: cualquier comando al que le pongamos ‘&’ al


final de la línea será ejecutado en segundo plano, y prompt de shell lo vuelves a
tener mientras continua su ejecución.

Se puede seguir la ejecución de los comandos con el comando ps y sus


opciones. También tenemos el comando Hill para matar los procesos que no
deseemos continúen su ejecución.

Ejemplo:

comando op fichero donde op puede ser:

x < : recibir entrada del fichero.

x > : enviar salida al fichero.

x >>: indica que se añada la salida (por defecto, con > se crea de nuevo el fichero)

61
SHELLS DISPONIBLES
Disponemos de varios shells en el sistema. Los más comunes son:

x El shell Bash (bash). El shell Linux por defecto.

x El shell Bourne (sh). Éste ha sido siempre el shell estándar UNIX. Suele ser el
shell por defecto del administrador (root). En GNU/Linux suele ser el Bash, una
versión mejorada del Bourne. Fue creado por Stephen Bourne en AT&T. El
prompt por defecto era ‘$’ (en root ‘#’). El shekk Korn (ksh) es un súper conjunto
del Bourne, donde si hizo cierta mezcla de funcionalidades del Bourne y del C.

x El shell C (csh). Desarrollado en la Universidad de Berkeley por Bill Joy a finales


de los setenta . El prompt por defecto para los usuarios es ‘%’. Los usuarios UNIX
suelen preferir este shell como interactivo, pero los administradores UNIX
prefieren utilizar el Bourne, ya que los scripts suelen quedar más compactos, y la
ejecución suele ser más rápida. Una ventaja de los scripts en C shell es que, su
sintaxis está basada en el lenguaje C.

El shell Bash (Bourne Again Shell ) forma parte del software GNU. Es un intento de
combinar los tres shell anteriores (Bourne, C y Korn), manteniendo la sintaxis del shell
Bourne original.

Una forma rápida de conocer bajo qué shell nos encontramos es mediante la variable
$SHELL, desde una línea de comandos con la instrucción:

echo $SHELL

Nota: El shell es un programa más de usuario, existiendo diferentes posibilidades de


elección, con funcionalidades y prestaciones diferentes.

Algunas cuestiones que encontraremos comunes a todos los shells:

x Todos permiten la escritura de shell scripts .

x Los usuarios del sistema tienen un shell por defecto asociado a ellos. Esta
información se proporciona al crear las cuentas de los usuarios. El administrador
asigna un shell a cada usuario, o el shell por defecto. Esta información se
encuentra en el fichero de passwords en /etc/passwd.

x Cada shell es en realidad un comando ejecutable, normalmente presente en los


directorios /bin.

x Se pueden escribir shell scripts en cualquiera de ellos, pero ajustándose a la


sintaxis de cada uno.

x Cada shell tiene algunos ficheros de arranque asociados, cada usuario puede
adaptarlos a sus necesidades, incluyendo código, variables, caminos (path), ...

62
x La potencia en la programación está en combinar la sintaxis de cada shell, con
los comandos internos de cada shell (grep, sed, awk).

x Si estamos utilizando un shell determinado, podemos arrancar una copia nueva


de shell (subshell). Para ello lo invocamos por el nombre del ejecutable, ya sea el
sh, bash, csh o ksh. También podemos ejecutarlo desde un shell script.

Algunas diferencias básicas entre ellos:

x Bash es el shell por defecto en GNU/Linux. En otros sistemas UNIX suele ser el
shell Bourne (sh). Bash es compatible con sh, y además incorpora algunas
características de los otros shells, csh y ksh.

x Ficheros de arranque: sh, ksh tienen .profile y también ksh suele tener un .kshrc
que se ejecuta a continuación, csh utiliza. login, .logout y .cshrc. Y Bash utiliza el
.bashrc y el .bash_profile. Además, el administrador puede colocar variables y
caminos comunes en el fichero /etc/profile que se ejecutará antes que los ficheros
que tenga cada usuario. Los ficheros de inicialización de los shell se ponen en la
cuenta del usuario al crearla (normalmente se copian del directorio /etc/skel).

x Los scripts de configuración del sistema o de servicios suelen estar escritos en


shell Bourne (sh), En GNU/Linux también nos podemos encontrarlos en Bash.

x Podemos identificar en qué shell se ejecuta el script mediante el comando file. O


bien examinando la primera línea del script, que suele ser: #!/bin/nombre, donde
nombre es bash, sh, csh, ksh. Es importante que todos los scripts la contengan,
ya que si no, se intentarán ejecutar en el shell por defecto, y la sintaxis puede no
corresponder.

Herramientas Genéricas del Administrador

Existen herramientas pensadas de forma genérica para la administración:

x Linuxconf: herramienta genérica que agrupa diferentes aspectos de la


administración en menús de texto. Puede utilizarse en casi todas las
distribuciones GNU/Linux.

x Webmin: herramienta de administración pero con una interfaz web, funciona


con unos plugins que se pueden añadir para cada servicio a administrar.

Los entornos de escritorio de Gnome y KDE disponen del concepto de “Panel de control”,
que permite gestionar tanto el aspecto visual de las interfaces gráficas, como tratar
algunos parámetros de los dispositivos del sistema.

En cuanto a las herramientas gráficas del administrador, la distribución GNU/Linux


ofrece herramientas dedicadas a gestionar sus funciones.

63
Otras Herramientas

Algunas otras herramientas a considerar serían:

x Los múltiples comandos UNIX básicos: grep, awk, sed, find, diff, gzip, bzip2, cut,
sort, df, du, cat, more, file, which...

x Los editores, imprescindibles para cualquier tarea de edición, cuentan con


editores como: Vi, muy utilizado en tareas de administración por la rapidez de
efectuar pequeños cambios en los ficheros. Vim es el editor compatible Vi, que
suele traer GNU/Linux; permite sintaxis coloreada en varios lenguajes. Emacs,
editor muy completo, adaptado a diferentes lenguajes de programación (sintaxis
y modos de edición); dispone de un entorno muy completo y de una versión X
denominada Xemacs. Joe, editor compatible con Wordstar. Y muchos otros...

x Lenguajes de tipo script, útiles para administración, como: Perl, muy útil para
tratamiento de expresiones regulares, y análisis de ficheros (filtrado, ordenación,
etc.). PHP, lenguaje utilizado en entornos web. Python, otro lenguaje que permite
hacer prototipos rápidos de aplicaciones, ...

x Herramientas de compilación y depuración de lenguajes de alto nivel: GNU gcc


(compilador de C y C++), gdb (depurador), xxgdb (interfaz X para gdb), ddd
(depurador para varios lenguajes).

64
LO QUE HEMOS APRENDIDO
‡ Cualquiera de las distribuciones de GNU/Linux suele aportar herramientas del tipo
línea de comandos, textual o gráfica, que complementan las anteriores y
simplifican en mayor o menor medida la administración de las tareas.

‡ El estándar FHS es una herramienta básica para el conocimiento de una


distribución, que nos permite conocer la estructura y funcionalidad del sistema de
archivos principal del sistema.

‡ En GNU/Linux podemos encontrarnos con estándares como el FHS


(FilesystemHierarchy Standard), que nos explica qué podemos encontrarnos (o
dónde buscarlo) en la estructura del sistema de ficheros de nuestro sistema. O el
LSB (Linux Standard Base), que nos comenta diferentes componentes que solemos
encontrar en los sistemas.

‡ Hay muchas fuentes de información, como: man, info, documentación de


aplicaciones.

‡ El término genérico shell se utiliza para denominar un programa que sirve de


interfaz entre el usuario y el núcleo (kernel) del sistema GNU/Linux.

‡ El shell, como programa, es una utilidad que permite a los usuarios interactuar con
el kernel por interpretación de comandos que el mismo usuario introduce en la
línea de comandos o en los ficheros de tipo shell script.

‡ Las líneas de comandos podrán ser ejecuciones de comandos del sistema,


comandos propios del shell interactivo, puesta en marcha de aplicaciones o shell
scripts.

‡ Los shell scripts son ficheros de texto que contienen secuencias de comandos de
sistema, más una serie de comandos propios del shell interactivo, más las
estructuras de control necesarias para procesar el flujo del programa (tipo while,
for, etc.).

‡ Los shell scripts son muy importantes básicamente por dos razones: La
configuración del sistema y de la mayoría de los servicios proporcionados se hacen
mediante herramientas proporcionadas en forma de shell scripts. La principal
forma de automatizar procesos de administración es mediante la creación de shell
scripts por parte del administrador. Todos los programas invocados mediante un
shell poseen tres ficheros predefinidos, especificados por los correspondientes
descriptores de ficheros (file handles). Por defecto, estos ficheros son: standard
input (entrada estándar), standard output (salida estándar), standard error (salida
estándar de errores).

‡ Los shells suelen proporcionar los tres mecanismos siguientes: Redirección,


tuberías (pipes), concurrencia de programas usuario.

65
‡ Algunos de los más comunes son: Shell Bash (bash), shell Bourne (sh), shell Korn
(ksh), shell C (csh), …

‡ El shell es un programa más de usuario, existiendo diferentes posibilidades de


elección, con funcionalidades y prestaciones diferentes.

‡ Podemos considerar algunas herramientas, como las pensadas de forma genérica


para la administración: Linuxcof, Webmin.

‡ Algunas de las herramientas que podríamos considerar básicas: comandos UNIX


básicos, los editores, lenguajes de tipo script, herramientas de compilación y
depuración.

66
ANOTACIONES
.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

67
TEST
Marcar la respuesta correcta.

1. ¿Cuál no es una herramienta de administración?


† Linuxcof.
† Wincof.
† Shells.

2. La shell es:
† Una distribución GNU/Linux más.
† Un programa más de usuario.
† Un lenguaje de programación.

3. ¿Qué es una distribución GNU/Linux?


† Cualquiera de sus programas.
† Las compañías que se encargan de distribuir los sistemas GNU/Linux.
† Colección de software que forma un sistema operativo basado en el kernel del
Linux.

4. ¿Cuál no es una herramienta de documentación?


† Man.
† Help.
† Info.

5. ¿Por qué son los scripts importantes?


† Facilitan las tareas al usuario.
† Agilizan la instalación del sistema.
† Las herramientas de administración y los servicios se invocan mediante scripts.

6. ¿Qué comando es incorrecto?


† Man ls.
† 4 man ls.
† Man 4 ls.

68
ACTIVIDADES
1. Ver el FHS en : http://www.pathname.com/fhs

Nos servirá para tener una buena guía a la hora de buscar archivos de nuestra
distribución.

2. Abrir una Konsola y empezar a familiarizarse con la herramienta man, ya que la


utilizaremos con mucha frecuencia a la hora de configurar nuestro sistema.

69
70
Linux Avanzado

Intérprete de Comandos

i Comandos Básicos

i Comandos en Background

i Intérprete de Comandos (shell)

i Programación Shell

i El Editor Emacs

i El Editor Vim
tema 5
Objetivos:
i Manejar la línea de comandos.

i Descubrir el lenguaje bash de programación de scripts.

i Familiarizarse con el editor Emacs.

i Reconocer el editor Vim.

71
72
Comandos Básicos

Lo primero vamos a presentar en que forma se presentan los comandos.

x #comando <opciones> < ruta_origen> <ruta_destino>

x #comando <opciones> <nombre>

COMANDOS LINUX/UNIX DE MANIPULACIÓN DE FICHEROS Y DIRECTORIOS


Comando/Sintaxis Descripción Ejemplos

cat /etc/passwd
cat fich1 [...fichN] Concatena y muestra un archivos
cat dict1 dict2 dict

cd [dir] Cambia de directorio cd /tmp

Chmod permisos fich Cambia los permisos de un archivo chmod +x miscript

chownusuario:grupo chown nobody


Cambia el dueño un archivo
fich miscript

cp fich1...fichN dir Copia archivos cp foo foo.backup

diff [-e]arch1 arch2 Encuentra diferencia entre archivos diff foo.c newfoo.c

du [-sabr] fich Reporta el tamaño del directorio du -s /home/

file arch Muestra el tipo de un archivo file arc_desconocido

find. -name ``.bak'' -


find dir test acción Encuentra archivos.
print

Grep[-cilnv]expr grep mike


Busca patrones en archivos
archivos /etc/passwd

Head -count fich Muestra el inicio de un archivo head prog1.c

mkdir dir Crea un directorio. mkdir temp

mv fich1 ...fichN dir Mueve un archivo(s) a un directorio mv a.out prog1

mv fich1 fich2 Renombra un archivo. mv .c prog_dir

Visualiza página a página un archivo. more muy_largo.c


Less / more fich(s)
less acepta comandos vi less muy_largo.c

ln -s
ln [-s] fich acceso Crea un acceso directo a un archivo
/users/mike/.profile .

Ls Lista el contenido del directorio ls -l /usr/bin

Pwd Muestra la ruta del directorio actual pwd

rm fich Borra un fichero. rm foo.c

rm –r dir Borra un todo un directorio rm -rf prog_dir

rmdir dir Borra un directorio vacío rmdir prog_dir

tail -count fich Muestra el final de un archivo tail prog1.c

vi fich Edita un archivo. vi .profile

73
COMANDOS LINUX/UNIX MÁS FRECUENTES
Comando/Sintaxis Descripción Ejemplos

at [-lr] hora [fecha] Ejecuta un comando mas tarde at 6pm Friday miscript

Muestra un calendario del


cal [[mes] año] cal 1 2025
mes/año

date [mmddhhmm]
Muestra la hora y la fecha date
[+form]

Escribe mensaje en la salida


echo string echo ``Hola mundo''
estándar

Muestra información general


finger usuario fingernn@maquina.aca.com.co
sobre un usuario en la red

id Número id de un usuario id usuario

kill [-señal] PID Matar un proceso kill 1234

man gcc
man comando Ayuda del comando especificado
man -k printer

passwd Cambia la contraseña. passwd

Muestra información sobre los


ps –ux
ps [axiu] procesos que se están ejecutando
ps -ef
en el sistema

Muestra información de los


who / rwho who
usuarios conectados al sistema.

EQUIVALENCIA DE COMANDOS LINUX/UNIX Y DOS


Linux DOS Significado

cat type Ver contenido de un archivo.

cd, chdir cd, chdir Cambio el directorio en curso.

chmod attrib Cambia los atributos.

clear cls Borra la pantalla.

ls dir Ver contenido de directorio.

mkdir md, mkdir Creación de subdirectorio.

more more Muestra un archivo pantalla por pantalla.

mv move Mover un archivo o directorio.

rmdir rd, rmdir Eliminación de subdirectorio.

rm -r deltree Eliminación de subdirectorio y todo su contenido.

74
Comandos en Background

Linux, como todos los sistemas Unix, puede ejecutar varias tareas a la vez. En los
sistemas monoprocesadores, se suele asignar un tiempo a cada tarea, lo que hace que
al usuario le parezca que se están ejecutando al mismo tiempo.

Con poner ampersand (&) al termino de la línea de comandos se ejecutará el programa


en background.

Ejemplo: queremos copiar el directorio /usr/src/linux al directorio /tmp:

cp -r /usr/src/linux /tmp &


#c

Cuando ha terminado la ejecución del programa, el sistema lo reporta mediante un


mensaje:

[Done] cp -r /usr/src/linux /tmp

Si ejecutamos un programa y no ponemos ampersand, lo podemos pasar a background


de la siguiente forma:

x Se suspende la ejecución del programa, pulsando Ctrl+Z.

x Se ejecutamos la siguiente orden: bg

Intérprete de Comandos (shell)

Un intérprete de comandos es una pieza fundamental del sistema operativo, ya que se


va a encargar de ejecutar las órdenes básicas del manejo del sistema. También lo
llamamos shell. Suelen incorporar algunas características como: el control de procesos,
redirección de entrada/salida y un lenguaje de órdenes para escribir scripts.

El objetivo del intérprete de comandos es ejecutar los programas que el usuario teclea en
el prompt. El prompt es una indicación que el intérprete nos muestra para indicarnos la
espera de una orden.

Cuando un usuario escribe una orden, el intérprete ejecuta dicha orden. En dicha orden
se pueden ejecutar tanto programas internos como externos. Los programas internos
son aquellos que vienen incorporados en el intérprete de comandos, y los externos son
los programas separados de este.

75
Los principales intérpretes de comandos son:

x command.com: perteneciente a los sistemas MS-DOS y derivados como


Windows 95 y 98.

x ksh: El korn shell de UNIX.

x C Shell (csh): similar en sintaxis al lenguaje C Bourne Shell (sh).

x GNU Bourne Again Shell (bash): variante del Bourne Shell clásico para Linux con
características avanzadas como control de procesos, historial de órdenes y
edición similar a Emacs entre otras.

x Tcsh: versión de C Shell para Linux con funcionalidades similares a bash.

x Zsh: pequeño intérprete similar al Bourne Shell.

SINTAXIS DE COMANDOS
Los comandos tienen la siguiente sintaxis:

# programa arg1 arg2 ... argn

En la línea de comandos se introduce el programa con varios argumentos seguidos. Así


el intérprete ejecuta el programa con las opciones.

Si se quiere que el comando tenga varias líneas, se separa cada línea con el carácter
barra invertida (\).

Y si se quiere ejecutar varios comandos en la misma línea, los separa con punto y coma
(;).

Ejemplo: # make modules; make modules_install

También se puede utilizar los comodines:

x El asterisco (*) equivale a uno o más caracteres en el nombre de un archivo. Ejm:


ls *.c lista todos los archivos con extensión c.

x El signo de interrogación (?) equivalente a un único carácter. Ejm: ls curso.te? lista


el archivo curso.tex completando el último carácter.

x Un conjunto de caracteres entre corchetes es equivalente a cualquier carácter del


conjunto. Ejm: ls curso_linux.t[aeiou]x lista curso_linux.tex seleccionando la e del
conjunto.

76
VARIABLES DE ENTORNO
Una variable de entorno es un nombre asociado a una cadena de caracteres.

Algunas son útiles para no tener que escribir muchas opciones al ejecutar un programa,
otras las utiliza el propio shell (PATH, PS1,...).

VARIABLES DE ENTORNO MÁS USUALES

Variable Descripción

DISPLAY Donde aparecen las salidas de X-Windows.

HOME Directorio personal.

HOSTNAME Nombre de la máquina.

MAIL Archivo de correo.

PATH Lista de directorios donde buscar los programas.

PS1 Prompt.

SHELL Intérprete de comandos por defecto.

TERM Tipo de terminal.

USER Nombre del usuario.

Para definir una variable de entorno, hay que tener en cuenta en que intérprete nos
encontramos, ya que no es igual en todos.

bash: export VARIABLE=Valor

tcsh: setenv VARIABLE Valor

ALIAS
Un “alias”' es un nombre alternativo para un comando. Un alias se puede definir por
varios motivos, por ejemplo:

Dar nombres familiares a comandos comunes: alias md = ‘mkdir’.Crería un alias para el


comando mkdir, similar al de DOS.

Dar nombres a comandos largos: alias tbz2 = ‘tar –cv –use-compress-program=bzip2.


Crearía un alias para el comando tar para que use el compresor bzip2 en lugar de gzip.

Para no tener que escribir todos los alias siempre que entremos al sistema, escribiríamos
estos alias en el archivo /.bash_profile

77
REDIRECCIONAMIENTO DE E/S
La filosofía de Linux/Unix es modular. Se prefieren las herramientas pequeñas con tareas
puntuales. Hace falta proveer el medio para ensamblar estas herramientas en
estructuras más complejas. Esto se realiza por medio del redireccionamiento de las
entradas y las salidas.

Redirección de Entrada y Salidas fig_redirect width=5cmimages/standard_io.eps

Todos los programas tiene por defecto como entrada estándar el teclado y dos salidas:
la estándar (pantalla) y la salida de error. Se pueden sustituir estas salidas por otros
dispositivos utilizando los caracteres ``'' y ``''.

Ejemplo:

Entrada:

Se desea realizar una transferencia de archivos por ftp automática. Para


ello se va a utilizar el programa ncftp con unas determinadas instrucciones
preestablecidas.

Se crea un archivo entrada con dichas instrucciones:

open linuxcol.uniandes.edu.co

cd /pub/linux/utils

get *

quit

y se ejecuta el programa: ncftp < entrada.

Salida:

Se quiere saber los archivos que empiezan por i o I y almacenarlo en un


archivo:

ls [iI]* > listado.txt

TUBERÍAS O PIPES
Una tubería o pipe es una combinación de varios comandos que se ejecutan
simultáneamente, donde el resultado del primero se envía a la entrada del siguiente.

Por ejemplo si se quiere ver todos los archivos que hay en el directorio /usr/bin, se
ejecuta lo siguiente: ls /usr/bin | more. De este modo, la salida del programa ls (listado
de todos los archivos del directorio /usr/bin) irá al programa more (modo paginado, es
decir, muestra una pantalla y espera a que pulsemos una tecla para mostrar la
siguiente).

78
ALGUNOS FILTROS EN LÍNEA DE COMANDOS LINUX/UNIX

Filtros Función

sort Ordena las líneas de un texto

cut Corta secciones de una línea

od Convierte archivos a forma octal u otras

paste Une líneas de diferentes archivos

tac Concatena e imprime archivos invertidos

tr Traduce o borra caracteres

uniq Remueve líneas repetidas

wc Cuenta bytes, palabras y líneas

Vamos explicar algunas de estas herramientas en la siguiente sección, ya que algunas


son complejas.

REUTILIZACIÓN DE COMANDOS
El shell tiene una especie de historial con los comandos que ha escrito el usuario. Por
medio de este historial se puede volver a ejecutar una orden anterior.

El comando history muestra la secuencia de comandos, con un número a su izquierda.


Con este número es posible llamar de nuevo el comando utilizando el carácter
admiración “!”.

1 history

2 ls

3 cd public_html

4 ls

5 rm *.bak

6 history

Y para ejecutar nuevamente el comando rm *.bak solo es necesario escribir !5. También
se puede pedir el último ``rm'' que se ha ejecutado escribiendo !rm.

El último comando se repite con doble admiración ``!!''.

79
Programación Shell

La programación de shell es una de las herramientas más valoradas por los


administradores y usuarios de Linux/Unix, debido a que permite la automatización de
tareas complejas, comandos repetitivos y ejecutarlo con una sola llamada a un script o
hacerlo automáticamente a horas determinadas.

Estos scripts pueden usar un sin número de herramientas como:

x Comandos del sistema Linux/Unix (ejm: ls, cut)

x Funciones intrínsecas del shell (ejm: kill, nice)

x Lenguaje de programación del shell (ejm: if/then/else/fi)

x Programas y/o lenguajes de procesamiento en línea. (ejm: awk, sed, Perl)

x Programas propios del usuario escritos en cualquier lenguaje.

El lenguaje de programación de cada shell tiene una amplia gama de estructuras de


control:

x for name [ in word; ] do list ; done

x select name [ in word ; ] do list ; done

x case word in [ pattern [ | pattern ]\ldots ) list ;; ]\ldots esac

x if list then list [ elif list then list ]\ldots [ else list ] fi

x $while list do list done

x $until list do list done

x [ function ] name () { list; }

PROGRAMACIÓN BASH
Conceptos básicos de los shell script en Bash.

Todos los scripts Bash tienen que comenzar con la línea:

#!/bin/bash

Esta línea le indica al shell usado por el usuario con qué shell hay que ejecutar el script.

El script puede ejecutarse de dos modos diferentes:

80
x Por ejecución directa desde la línea de comandos, para ello hay que darle permiso
de ejecución. Para darle los permisos solo debemos poner: chmod +x script.

x Por ejecución mediante el shell, llamamos al shell explícitamente: bash script.

VARIABLES EN BASH

La asignación de variables se realiza por:

variable = valor

El valor de la variable se puede ver con:

echo $variable

donde ’$’ nos hace referencia al valor de la variable.

Las variables por defecto solo son visibles en el script. Si la variable debe ser vista fuera
de este, debe de ser exportada además de asignada. Se puede hacer de la siguiente
forma:

x Asignar y exportar después:

var = valor

export var

x Exportar en la asignación:

export var = valor

En los scripts Bash tenemos algunas variables predeterminadas accesibles:

x $1-$N: Guarda los argumentos pasados como parámetros al script desde la línea
de comandos.

x $0 : Guarda el nombre del script, sería el parámetro 0 de la línea de comandos.

x $* : Guarda todos los parámetros del 1 al N en esta variable.

x $ : Guarda todos los parámetros, pero con comillas dobles (“ ”) en cada uno de
ellos.

x $? ,“Status”: guarda el valor devuelto por el último comando ejecutado.

Otra cuestión importante en las asignaciones es el uso de las comillas:

x Las “dobles” permiten que sea considerado todo como una unidad.

81
x Las ‘simples’ son parecidas, ignorando los caracteres especiales que se
encuentren dentro.

x Las inclinadas hacia la izquierda `comando`, son utilizadas para evaluar el


interior, si hay alguna ejecución o sustitución que hacer.

x listado del directorio en $var.

COMPARACIONES

x Comparación numérica: -eq, -ge, -gt, -le, -lt, -ne, correspondiendo a: igual que,
más grande o igual que (ge), más grande que, menor o igual que (le), menor que,
distinto que.

x Comparación de cadenas: = , ! = , -n, -z, correspondiendo a cadenas de


caracteres: iguales, diferentes, con longitud mayor que 0, longitud igual a cero o
vacío.

x Comparación de ficheros: -d, -f -r, -s, -w, -x. El fichero es: un directorio, un
fichero ordinario, es leíble, es no vacío, es escribible, es ejecutable.

x Booleanos entre expresiones: !, -a, -o, condiciones de not, and y or.

ESTRUCTURAS DE CONTROL

Nos vamos a encontrar con:

x Comandos propios del operativo.

x Comandos propios internos del shell Bash (ver: man bash).

x Las estructuras de control propias de programación (for, while, ...), con la sintaxis
propia de Bash.

La sintaxis de las estructuras de control es:

x Estructura if...then, se evalúa la expresión y si se obtiene un valor cierto, entonces


se ejecutan los commands.

if [ expresion ]

then

commands

fi

x Estructura if..then...else, se evalúa la expresión, y si se obtiene un valor de cierto,


entonces se ejecutan los commands1, en caso contrario se ejecutan los
commands2:

if [ expresion ]

then

82
commands1

else

commands2

fi

x Estructura if..then...else if...else, misma utilización que la anterior, con


anidamientos de estructuras if.

if [ expresion ]

then

commands

elif [ expresion2 ]

then

commands

else

commands

fi

x Estructura case select, estructura de selección múltiple según valor de selección


(en case)

case string1 in

str1)

commands;;

str2)

commands;;

*)

commands;;

esac

x Bucle for, sustitución de variable por cada elemento de la lista:

for var1 in list

do

commands

done

x Bucle while, mientras se cumpla la expresión:

while [ expresion ]

83
do

commands

done

x Bucle until, hasta que se cumpla la expresión:

until [ expresion ]

do

commands

done

x Declaración de funciones:

fname() {

commands

o bien con llamada acompañada de parámetros:

fname2(arg1,arg2...argN) {

commands

y la llamadas de la función con fname o fname2 p1 p2 p3 ... pN.

El Editor Emacs

¿QUÉ ES EMACS?
Emacs es un editor de texto de gran potencia que está disponible
para multitud de plataformas y forma parte del Proyecto GNU.
Emacs significa Editor MACroS aunque también se suele traducir
como “advanced, self-documenting, customizable extensible
real-time display editor”. Emacs surgió como una
implementación para otro editor de texto llamado TECO (Text
Editor and Corrector), el cual era un proyecto del MIT para la
edición de programas. Emacs surgió como un programa para
editar las macros que luego se utilizarían en la edición de programas con TECO, lo que
agilizaba enormemente la edición de los programas que interactuaban con los primeros
ordenadores. Por lo tanto Emacs surgió como complemento de un editor de texto pero
dada su gran funcionalidad tuvo tal aceptación y desarrollo que se ha creado un nombre
propio dentro del campo de la edición.

84
Todo el mundo le atribuye la creación de Emacs a Richard M. Stallman en 1976 pero
cabe decir que también hubo otro programador involucrado en un principio que fue
quien empezó la implementación de la distintas clase de macros, este programador fue
Guy Steele el cual cuando lo entrevistan y sale el tema de Emacs suele decir “Tengo el
honor de haber hecho el 0,001% de la implementación de Emacs el resto es obra de
Stallman”.

Emacs también tiene un “hermano gemelo” llamado Xemacs que esta basado en los
mismos principios del primero; de hecho si usas el Xemacs te servirán la mayoría (si no
todos) los comandos que se comentaran aquí, aunque lo más probable es que estén
accesibles desde los menús y no haya que aprender las teclas rápidas.

CARACTERÍSTICAS
Una de las principales características de Emacs es que esta programado en LISP (cuyas
siglas significan List Processing) aunque sus detractores también lo traducen como Lots
of Isolated Silly Parentheses (que se traduciría algo así como 'Montones de paréntesis
tontamente aislados'); pero resulta que para manejar las listas y listas de listas Lisp usa
los paréntesis, los cuales marcan los limites de las listas.

Resumiendo que las listas son la base para programar en Lisp. El hecho de estar
programado en este lenguaje le añade la posibilidad de crear nuevos comandos a gusto
y necesidades del usuario.

Como se comento antes, Emacs es un editor funcionalmente completo, muy potente y


ampliado con funciones que van mas allá de la simple edición de texto; por ejemplo en
algunas instalaciones se puedo usar para mantener un calendario, trabajar con e-mail,
leer noticias de la red, leer USENET, gestionar archivos, calculadora, etc; por lo que
podría decirse que de alguna forma Emacs en un entorno de trabajo que contiene un
editor de textos.

Otra de sus principales características es que posee un keymap global que abarca a
todos los demás modos de edición y además también posee otros para los distintos
modos ('major','minor', que serán explicados a continuación).

A groso modo podría decirse que el modo global es como la base sobre la cual se erige
toda la estructura del editor, y es sobre esta base donde se cargan los 'major modes' con
sus correspondientes keymaps aportando novedades y teniendo preferencia en caso de
conflicto pues se entiende que estamos amoldando el editor a nuestras necesidades y
por último estarían los 'minor modes' que afinan el editor aún mas a nuestras
necesidades.

Como última característica se podría destacar que Emacs es un editor multiplataforma, o


sea que existen versiones para distintos sistemas operativos, lo cual lo dota de una gran
utilidad para el desarrollo en universidades y la alta disponibilidad que posee facilita el
intercambio de documentos entre plataformas y la adaptación de los usuarios a un
nuevo entorno.

85
CÓMO OBTENER EMACS
Emacs es software libre, y como tal puedes obtener de forma completamente gratuita (y
legal) el código fuente así como versiones precompiladas para tu plataforma específica.

La forma más fácil de obtener tu copia de Emacs es descargarlo de Internet. En la página


principal de emacs (http://www.gnu.org/emacs/emacs.html), se encuentra la última
versión estable la 21.3.

Si por cualquier otro motivo prefieres el Xemacs, su página principal es


http://www.xemacs.org y su última versión estable es la 21.4.16.

DESCRIPCIÓN DEL ENTORNO EMACS


Emacs ofrece la posibilidad de modificar sus keymaps. El keymap o mapa de teclas es lo
que caracteriza a un editor. Emacs por ejemplo utiliza las siguientes combinaciones de
teclas para cortar y pegar ctrl-space ctrl-w (para cortar) y ctrl-y (para pegar). Emacs
posee distintos tipos de keymaps. El principal se denomina global y afecta a todos los
modos de edición. Para cada modo denominado major existe otro keymap que define
las características propias del modo y finalmente para los modos minor tenemos más
keymaps que definen las teclas especiales de esos modos. Solo necesitamos tener una
idea aproximada de lo que son los modos en Emacs, y espero que según avancemos
esta idea se concrete poco a poco. Las definiciones global se pueden ver como la base
de la pirámide sobre la que se basa todo el resto y sin la cual no existiría nada. Un poco
como el sistema operativo para un ordenador. Los major modes se sobreponen al global
de forma que aportan novedades, es decir nuevas utilidades y en caso de conflicto
tienen mayor prioridad porque consideramos que estamos adaptando nuestro editor a
nuestras necesidades concretas que ya no son tan generales. Finalmente los minor
modes son una capa superior que con la misma lógica afinan más el editor.

Podemos modificar cualquiera de estos keymaps de forma sencilla mediante los


comandos: M-x global-set-key o M-x local-set-key Estas modificaciones incluyen tanto la
redefinición de teclas como la definición de nuevas secuencias de teclas que ejecuten
nuevas acciones. Otra forma interesante de configurar Emacs es redefiniendo sus
variables. Estas variables determinan de muchas formas el comportamiento del editor
puesto que definen valores clave para Emacs. Por ejemplo cuando se realiza el wrapping
en Emacs?. Pues el valor que determina esto se encuentra en la variable fill-column que
podemos cambiar a nuestro gusto con el comando M-x set-variable. Estos son los
conceptos básicos sobre la configuración del editor.

Debería empezar a quedar claro que en Emacs podemos acceder a casi todo. Esto se
debe a que la mayor parte del código está escrito en LISP y nos permite crear nuevos
comandos y modificar los ya existentes en una misma sesión, de forma interactiva. Una
pequeña nota sobre la asignación de teclas. Conviene utilizar las combinaciones de tipo
ctrl-c seguido por una letra porque este rango esta reservado a este fin. De otra forma
podrían surgir conflictos.

86
EMACS: AUTO-AYUDA (SELF-DOCUMENTING)
Hasta ahora hemos mostrado una diminuta parte de las posibilidades de Emacs, sin
embargo puede parecer que el número de comandos que entrarán en juego va a ser muy
grande. La verdad es que conocer diez o veinte comandos o secuencias de teclas suele
bastar para la mayor parte de las actividades habituales.

Pero para poder aprovechar de forma real y efectiva la potencia de Emacs tiene que
existir un mecanismo de ayuda que nos permita aprender nuevas funciones a medida
que las vayamos necesitando, o que simplemente nos recuerde como se utilizaba tal o
tal función.

Si no recordamos la secuencia de teclas que realiza una función siempre podemos


probar a teclear M-x y una parte del nombre que creemos pueda haber sido elegido para
nombrar la función deseada.

Por ejemplo si queremos hacer algo tan sencillo como borrar un carácter y no
recordamos que hay que pulsar ctrl-d, podemos teclear M-x delete y después una o dos
veces el tabulador. Se abrirá una ventana nueva (entiéndase como ventana una window
de Emacs es decir una subdivisión del frame que es el objeto que se abre al iniciar
Emacs) con posibles soluciones.

Para nuestro ejemplo habremos acertado puesto que no hay muchas y entre ellas se
encuentra delete-char. Si solo hubiera una solución el hecho de pulsar el tabulador
hubiera completado automáticamente el nombre de la función. Además del enorme
juego que proporciona el tabulador Emacs posee una importante ayuda.

Vamos a describir de forma muy breve una serie de comandos de ayuda de forma que
nos hagamos una idea de como funcionan pero sin entrar en detalle. C-h a topic RET
Busca los comandos que tengan coincidencias con el topic C-h i d m emacs RET i topic
RET Busca el topic en los índices del manual on-line de Emacs. Mostrando el primero
por pantalla. C-h F Muestra la sección FAQ de Emacs donde se pueden realizar
búsquedas como si se tratase de un documento normal de Emacs. C-h c seguido por
una serie de teclas nos indica a que función están asociadas las teclas. Siempre es
interesante teclear C-h ? para ver el resto de opciones que ofrece la ayuda de Emacs.

LA PANTALLA DE EMACS
Emacs puede ejecutarse en dos modos, en modo consola (terminal) o en modo gráfico
(X-Window, Windows...). Nosotros nos centraremos en el modo gráfico, aunque el
funcionamiento en modo texto es idéntico salvo que no podremos usar el ratón y que
accedemos a los menús con la tecla <F10>.

Cuando entramos en Emacs tenemos una ventana con una barra de menús en la parte
superior y un par de líneas de texto en la parte inferior. La parte central es la parte donde
editaremos nuestros documentos.

87
Como hemos mencionado antes, la parte inferior tiene dos líneas: la superior nos
muestra información sobre el documento actual y nos permite efectuar algunas
operaciones con el ratón y la inferior es el “minibuffer”, por donde el programa se
comunica con nosotros.

EL FUNCIONAMIENTO DE EMACS
Al entrar en Emacs veremos un “buffer” llamado “scratch”, que es un documento para
anotaciones y pruebas, en el que no deberíamos empezar a trabajar...

Acaba de aparecer un término importante: buffer. Buffer es el objeto donde tenemos los
documentos con los que estamos trabajando actualmente. En Emacs podemos tener
varios bufferes abiertos y podemos movernos entre ellos de varias formas, que veremos
más adelante.

Al estar pensado para ejecutarse en muchos entornos, las teclas de los cursores tienen
equivalencias en el teclado como combinaciones de teclas, pero dado que actualmente
casi todo el mundo tiene un teclado expandido no comentaremos estas peculiaridades.

Las abreviaturas sobre las teclas que podemos observar en la ayuda de Emacs (y que
emplearemos en este documento) son las siguientes:

C-1 significa pulsar la tecla <Control> y la tecla <1> simultáneamente.

M-1 significa pulsar la tecla <Alt> y la tecla <1> simultáneamente.

C-1 2 significa pulsar la tecla <Control> y la tecla <1> simultáneamente y


posteriormente pulsar la tecla <2>.

C-1 2 significa pulsar la tecla <Control> y la tecla <1> simultáneamente y


posteriormente pulsar la tecla 2.

Nosotros encerraremos las combinaciones de teclas entre corchetes [] para evitar


confusiones con el texto que las rodea. A continuación se describen a groso modo las
FUNCIONES BÁSICAS, divididas en funciones generales, Tratamiento de archivos,
Funciones de edición (en las que nos centraremos más), Visualización y Especiales.

FUNCIONES GENERALES
Para salir de Emacs emplear la combinación de teclas [C-x C-c].

Si queremos dejar de usar Emacs momentáneamente pero no deseamos salir del


programa podemos usar [C-z], que en un entorno gráfico normalmente minimizará la
ventana.

Si en algún momento hemos entrado en alguna opción y no estamos muy seguros de lo


que estamos haciendo podemos cancelarla pulsando <Esc> hasta que aparezca el
mensaje de que está cancelada o pulsando [C-g].

88
TRATAMIENTO DE ARCHIVOS
Cuando queremos empezar a trabajar lo primero que necesitamos es un documento
nuevo. En Emacs no existe esta opción como tal, lo cual puede sorprender al usuario
que está acostumbrado a las aplicaciones Windows, pero la solución es fácil: cuando
queremos crear un nuevo documento simplemente lo abrimos.

Para abrir un documento empleamos la combinación de teclas [C-x C-f] y escribimos en


el minibuffer el nombre del archivo que queremos abrir.

El minibuffer posee la característica de auto-completado, es decir, que si pulsamos la


tecla <tab> y sólo hay una opción que comienza por el texto que ya tenemos escrito
rellenará el restante automáticamente. Esto funciona tanto al abrir archivos como la
mayoría de las veces que usemos el minibuffer para introducir información.

Para guardar un documento empleamos [C-x C-s]. Si queremos guardarlo con un


nombre distinto empleamos [C-x C-w].

FUNCIONES DE EDICIÓN
Para desplazarnos por el texto en Emacs podemos usar las teclas de cursores, así como
las teclas <RePág> <AvPág> <Inicio> y <Fin>. Estas dos últimas no siempre tienen el
comportamiento normal de llevarnos al final de la línea que estamos editando, sino que
pueden llevarnos al final del documento. Si estamos en este caso, para ir al final de la
línea emplearemos [C-e] y para ir al comienzo [C-a].

Si mantenemos la tecla <Ctrl> mientras empleamos los cursores ampliamos su rango de


efecto, de forma que en lugar de desplazarnos de carácter en carácter y de línea en línea
nos movemos de palabra en palabra y de párrafo en párrafo.

Para borrar caracteres empleamos la tecla <Supr> o <Backspace>. Su funcionamiento


puede varia dependiendo de la plataforma y versión de Emacs, por lo que deberías
probar.

Para borrar desde la posición del cursor hasta el final de la línea empleamos la
combinación [c-k].

Para borrar desde la posición del cursor hasta el final del párrafo empelamos [m-k].

Para copiar tienes que seleccionar el texto y pulsar [C-<Insert>], para cortar tienes que
pulsar [C-w] y para pegar [C-y] o [<mayus>-<insert>]. Debes tener cuidado con el
comando de cortar, porque realmente lo que hace es borrar, y [C-y] deshace un borrado,
así que si borras un párrafo o una línea [C-y] lo restaurará en el punto que te
encuentres... Si crees que has perdido algo que habías cortado no te preocupes, siempre
lo puedes recuperar con [M-y], que irá recorriendo todos los textos que hayas borrado.

89
Para seleccionar con el teclado hay que pulsar [C-<space>] y desplazarse con los
cursores de la forma habitual.

Para deshacer cualquier cambio hay que usar la combinación de teclas [C-_], lo que
normalmente equivale a <Ctrl>+<Shift>+<->.

Hay una opción de pegar el texto seleccionado con el ratón. Para realizar esta operación
debes pulsar los dos botones del ratón al mismo tiempo (ó botón central).

Hay una opción para repetir pulsaciones de teclas un número determinado de veces: [C-
u ##], donde las almohadillas son el número de veces que se va a repetir la tecla
pulsada a continuación. Esto es útil para deshacer un número determinado de veces, o
para borrar varias líneas.Esta opción a veces se usa como entrada para los argumentos
de algunas funciones.

FUNCIONES DE VISUALIZACIÓN
Para desplazar la ventana sin desplazar el cursor tenemos algunas opciones bastante
útiles: [C-l] centra la ventana en el cursor, [C-M-l] reajusta la ventana para mostrar la
información útil empleando un heurístico (normalmente dejará el cursor en la parte
superior de la pantalla).

En Emacs podemos tener en la misma ventana varios buffers al mismo tiempo o varias
ventanas abiertas.

Para dividir la ventana actual tenemos las siguientes opciones:

[C-x 1] Restaura la ventana a un solo buffer.

[C-x 2] Divide la ventana horizontalmente.

[C-x 3] Divide la ventana verticalmente.

Para cambiar de una sección a otra se emplea la combinación [C-x o].

Para cambiar el contenido de una sección se puede abrir un archivo ([C-x C-f]) o se
puede escoger entre alguno de los que ya están abiertos con [C-x C-b].

Si estamos trabajando en un documento y necesitamos repasar continuamente otro,


podemos navegar en el buffer que no tenemos activo usando [M-<AvPag>] y [M-
<RePag>] sin tener que cambiar continuamente de buffer.

FUNCIONES ESPECIALIZADAS
Para emplear una función para la cual no existe una combinación de teclas rápidas
usamos la combinación [M-x], que nos permite introducir el nombre del comando a
usar. De nuevo aquí la opción de auto-completado del minibuffer nos será de gran
utilidad.

90
BÚSQUEDAS
En Emacs se pueden hacer búsquedas en el texto de las siguientes formas:

[C-s] Busca un texto que coincida exactamente con el introducido en el minibuffer en el


texto a partir de la posición del cursor en adelante. Para buscar la siguiente ocurrencia
debemos volver a pulsar [C-s] sin salir del modo de búsqueda.

[C-r] Funciona igual que la búsqueda hacia adelante pero hacia atrás.

[M-%] Es la función de reemplazar. Funciona igual que la búsqueda hacia adelante pero
necesita un segundo parámetro, que es el texto que se pondrá en lugar del texto
buscado.

Esta opción es algo incómoda cuando se quieren reemplazar todas las ocurrencias de un
tipo en un documento, ya que va una por una.

Para reemplazar todas las ocurrencias de un tipo en un documento empleamos la


función “replace-string”.

El modo de usarlo es el siguiente: [[M-x]replace-


string<ret>texto_viejo<ret>texto_nuevo<ret>]

Para buscar y reemplazar expresiones regulares disponemos de las mismas funciones,


pero hay que pulsar <Ctrl> y <Alt> al mismo tiempo en lugar de uno de los dos.

La sintaxis de las expresiones regulares en Emacs es bastante amplia, por lo que aquí
sólo haremos una pequeña referencia:

‘*’ Es el cierre sobre un elemento. Indica que ese elemento puede aparecer un número
de veces desde cero hasta infinito (postfijo).

‘+’ Es la clausura positiva. Indica que ese elemento puede aparecer desde una vez hasta
infinito (postfijo).

‘?’ Indica que la aparición de un elemento es opcional (postfijo).

‘\’ Indica que un carácter especial es un literal, o indica que un carácter normal es un
carácter especial :-|

‘\|’ Indica un or exclusivo entre los elementos que hay a ambos lados. Ha de haber uno u
otro, pero no ambos a la vez.

‘\(...\)’ Agrupa elementos.

‘[...]’ Indica cualquier elemento dentro de los corchetes (pero sólo uno).

‘[^...]’ Indica cualquier elemento que no esté entre los corchetes.

91
FUNCIONES DE FORMATEO DE TEXTO
Emacs posee algunas capacidades como editor de texto con formato, aunque este no es
su principal cometido.

Para centrar la línea actual se emplea [M-s].

Para justificar un párrafo se emplea la combinación de teclas [M-q], que por defecto deja
el texto alineado a la izquierda, con un ancho de párrafo de 70 caracteres.

Para cambiar el ancho del párrafo tenemos que emplear [C-x C-f], pasándole antes un
argumento numérico mediante [C-u ##] (el número de caracteres de ancho).

Para cambiar el tipo de justificado hay que introducir los siguientes comandos en el
minibuffer (mediante [M-x])

set-justification-left

set-justification-right

set-justification-center

set-justification-full

set-justification-none

Para cambiar el formato de la fuente está la opción [M-g] donde podremos escoger entre
negrilla, cursiva, subrayado, etc.

El Editor Vim

¿QUÉ ES VIM?
VI iMproved, es un clon del editor de texto VI distribuido con la mayoría de los sistemas
UNIX.

Vim es uno de los editores más eficientes y altamente


configurables del mercado. La revista internacional ´The
Linux Journal magazine otorgó a este editor el pasado
17 de Nov y por cuarta vez consecutiva el premio al
mejor editor de textos ´Readers´ Choice Award´ (Vi
segundo y GNU Emacs tercero).

La versión más actual es la versión 6.3.053.

92
Vim es conocido como ´Editor de programadores´(Programmer´s editor) por su potencia
en configuración y rapidez (una vez q se sabe usar) en edición. Pero también es perfecto
para todo tipo de edición de texto, como mail, ficheros, etc.

Vim no es un ´word processor´, aunque permite editar en varios formatos. Pero no esta
hecho para proporcionar edición WYSIWYG de documentos escritos.

CARACTERÍSTICAS:

x Trabaja tanto en modo texto -vim- como con interfaz gráfico –gvim- (ratón,
iconos, menús, …)

x Disponibles en múltiples plataformas.

x Disponibles para muchos SO: Windows, Mac, OS/2, DOS, Atari, Amiga, UNIX,….
Especialmente para FreeBSD y LINUX.

x Soporta múltiples lenguajes, tales como edición derecha-izquierda para Árabe y


Hebreo y caracteres gráficos de más de un octeto como por ejemplo el Chimo y
Japonés.

x Colonización de la sintaxis según lenguaje de programación. Más de 200 ficheros


de sintaxis.

x 100% compatible con Vi.

x Comandos de completación de entrada, comandos automáticos, caracteres


especiales (Diagraphs), detección y conversión de formatos, historia, macros,
undo y redo, ayudas, etc, etc, etc.

LICENCIA

Por último decir que Vim es un programa OpenSource (todos son bienvenidos para
ayudar a mejorarlo), GPL compatible y ´charityware´ (programa de caridad) el cual
sugiere donación a los huérfanos en Uganda. El copyright está en las manos del autor
principal y mantenedor Bram Moolennar, bram@vim.org.

MODO NORMAL. EDICIÓN BÁSICA.


x Vim fichero para abrir un fichero a editar.

x ~ indica que no hay línea introducida.

x Nombre del fichero en la parte inferior del la pantalla.

x 3 Modos:

93
o NORMAL y COMANDO: Se reconoce cuando en la parte inferior esta en negro
o aparece el nombre del fichero. ESC para ir a este modo. Este modo permite
introducir comandos.

o INSERT: Parte inferior de la pantalla aparece – INSERT-. Teclas i, a, tecla


insert… permite pasar a este modo. Este modo es el usado para editar el
fichero.

o VISUAL: Parte inferior de la pantalla aparece – VISUAL. Tecla v permite pasar a


este modo. Este modo es el usado para realizar funciones de pegado, copia,
etc sobre el fichero.

x Para salir cuando no se sabe en que modo nos encontramos pulsar ESC para
volver al modo Normal.

x h, j, k, l para moverse por el texto, son muchas más rápidas que usando las
teclas de fechas. Además las teclas de flechas a veces no están disponibles o se
encuentran en una posición diferente a la acostumbrada.

x ncomando. Realiza el comando (en modo Normal) n veces. Ej 5u, deshace los 5
últimos cambios.

x Pulsar enter para ejecutar los comandos introducidos en el modo Comando los
cuales van seguidos de :. Estos comandos aparecen en la parte inferior izquierda
de la pantalla.

x Comandos en modo normal que necesitan introducir más de un carácter,


aparecen abajo a la derecha en la pantalla. Ej: dd, 1u,….

x $ vimtutor en la shell muestra un tutorial de VIM.

MODO NORMAL
Tecla Función
Movimientos
w,b
Mueve el cursor una palabra hacia delante. b hacia detrás.
ncomando n veces. Ej 5w

0,$
Mueve el cursor al principio de la línea. $ al final de la línea.

h,l
Mueve el cursor izquierda o derecha

j, k
Mueve el cursor abajo o arriba.

CTRL-U
Igual que las teclas RePag y AvPag. Se mueve por el fichero media
CTRL-D
pantalla.

nG
El curso se mueve a la línea n. G se mueve al final del fichero y 1G al
principio.

94
Edición

i, I Pasa a modo INSERT; i inserta en carácter antes del cursor. I


inserta al comienzo de la línea.

a,A Pasa a modo INSERT. Inserta en carácter después del cursor. A


inserta al final de la línea.

o, O Pasa a modo INSERT. Abre una nueva línea debajo del cursor,
Abre una línea encima del cursor.

x Borra el carácter sobre el que se encuentra el cursor. (= Supr)

dd, D Borra la línea sobre la que se encuentra el cursor. D borra desde el


cursor al final del fichero.

dw Borra una palabra

dnd, dnw, d$ Borra n líneas o palabras. d$ borrar desde el cursor al final de la


línea.

cw , cc Función reemplazar una palabra. Igual q el comando dw pero cw


nos deja en Modo Insert. Comando cc borra una línea completa.

p Función pegar (curiosidad p originalmente viene de la palabra put


y no paste). Pega lo ultimo cortado o borrado con el comando cw,
cc, dw, dd, x,…

u Undo. Deshace el último cambio.

CTRL-r Redo. Contrario a undo usando u.

. Repite el último comando

J Une la línea que se encuentra el curso con la siguiente.

~ Cambian Mayúsculas por Minúsculas y al contrario el carácter


donde se encuentra el cursor. Ej 14~, 14 caracteres.

Marcas

ma, El comando m marca un posición identificada por ejemplo por el


comando’a carácter a (se puede usar desde a – z). Marca permanecen incluso
si el texto se mueve. Marca desde principio de la línea que se
encuentra el cursor.

Si por ejemplo quiero borrar desde ese punto a otro punto donde
me encuentro con el cursor… d’a.

Nota: ‘ es la tecla ? junto a la tecla 0.

:marks Muestra las marcas existentes.

95
Yanking – Copiar +Pegar

Una forma seria borrar con el comando d, volver a pegarlo en el


mismo lugar con p y pegar con p donde desee. Usando Yanking
es + fácil.

Ymotion Funciona como el comando d pero no borrar el texto. Ej yw, yy,


3yy,…

p Usar el comando p para pegar.

ma , y’a Usando marcas es + eficiente. ma desde el punto de inicio que


queremos copiar, después y’a el punto final

Filtros

!motion Ejecuta un comando de la shell sobre el text dado por motion.


command
Ej. !10Gsort : ordena desde la línea q me encuentro a la 10 en
orden alfabético.

!!command
Ejecuta un comando de la shell sobre la línea que se encuentra el
cursor. Ej. !!date, !!ls

Otros

ZZ, :wq
Escribe los cambios y sale del fichero.

:q!
Sale del fichero sin guardar los cambios.

:set number
Numera las líneas del fichero. :set nonumber elimina la
numeración.

: digraphs
Muestra los caracteres especiales que existen, la combinación de
teclas para introducirlos desde el modo Insert y numero del
carácter. Ejemplo (desde el modo Insert). CTRL-K PI

:vi file
Cambia a otro fichero. Si hay cambios hay que guardarlos :w o sin
guardarlos :vi! file.

:view file
Abre un fichero en modo lectura. Si quiero forzar una escritura
:write!

: flechas Fecha hacia arriba muestra ultimo comando usado con :

K
Busca la palabra seleccionada como entrada del comando man. q
para salir

CTRL-g Muestra en la parte inferior de la pantalla donde estoy en el


fichero. Nombre del fichero, numero total de líneas, línea que me
encuentro, columna carácter, columna de la pantalla.

96
Macros

qa – q
qa empieza a grabar un macro y q lo termina. Ej: qa 0 i#include
“<ESC> $ a”<ESC> j q …. Este ejemplo incluye: #include “ línea “
, en la línea.

@a , n@a
Ejecuta el macro grabado como a, n@a lo ejecuta n veces desde
donde se encuentra el cursor.

MODO NORMAL. BUSCANDO CON VIM.

fx , Fx
Buscas el carácter x el la línea. Fx busca x hacia atrás en la línea

/cadena
Busca la cadena de texto cadena en el fichero. ¿cadena hacia
¿cadena
atrás. Los caracteres especiales .*[]^%/?\~$ necesitan \ delante.

/<Enter>, n, N
Busca la siguiente concurrencia. El comando n hace lo mismo y N
invierte la dirección de la búsqueda.

/<up>,
Muestra las últimas búsquedas.
/<down>
:set hlsearch
Resalta las palabras encontradas. :set nohlsearch

:nohlsearch
Quita el resalte de la/s palabras/s encontradas.

:set incsearch
Búsqueda incremental. El editor empieza a buscar tan pronto
como se introduce el primer carácter. Para desactivarlo :set
noincsearch.

^, $, .
Algunos de los caracteres que pueden ser usados junto a la
cadena buscar en la búsqueda avanzada mediante Expresiones
Regulares.

^ Comienzo de la línea.

$ Fin de la línea.

. un carácter.

Ej c.m encontraría com de la palabra computer y cam de la


palabra became.

Ej /^hola mundo$ … busca una fila que empiece y termine dicha


cadena.

\comodin, cuando quiero buscar los caracteres especiales $, * ,


….

97
BUSQUEDA AVANZADA CON EXPRESIONES REGULARES

Nota: :set hlsearch para ver mejor el efecto de búsqueda

:set
La búsqueda será independiente de las mayúsculas o
ignorecase
minúsculas. :set noignorecase para desactivarlo.

:set wrapscan
Busca en todo el fichero. :set nowrapscan busca desde el cursor
hasta el final del fichero

*, #
Busca la palabra bajo el cursor. Cada vez q se pulse busca la
siguiente ocurrencia. # realiza la búsqueda hacia atrás desde
donde se encuentra el cursor.

g*, g#
Busca las palabras bajo el cursor y las que contengan dicha
palabra. g# hacia atrás. Ej: si estoy sobre lo, encontrara: sólo,
olvidarlo, ….

/\<búsqueda>
Busca la palabra ‘búsqueda’. \< principio de la palabra, \> fin de
la palabra. Sin esto, ej /en ,encontraría mente, tiene, …

*
La letra que precede se puede repetir 0 o mas veces. Ej /te*,
encontraría, t , te, tee, teee, …

\+
La letra que precede se puede repetir 1 o mas veces. Ej /te\+,
encontraría, te, tee, teee, …

\=
La letra que precede se puede repetir 0 o 1 vez. Ej /te\=,
encontraría, t y te.

\a , \d
Cualquier carácter = [a-zA-Z]. \d cualquier digito. Ej./ \<\a\a\a_\>
busca palabras de tres letras seguidas de guión bajo.

[]
Busca rangos. Ej t[aeiou]n …. Tan, ten, tin, ton, tun. Ej2 [0-
9aeiou]. Ej3 m[a-zA-Z]*e … mente, miedo, primer, imposible,…

\{min,max}
Numero de veces que el carácter se puede repetir en la palabra.
Min por defecto 0 y max infinito. Ej a\{3,5}, encontrará aaa, aaaa,
aaaaa. Ej2 a\{3}, encontrará solo aaa

buca1\¦busca2
Búsqueda de más de 1 palabra.

ejemplos

/\<m[a-zA-
Busca palabras que empiecen por m y terminen por e.
Z]*e\>

Búsqueda de la matricula 1MGU103. /[0-9][A-Z]\{3}[0-9]\{3} o


/\d\a\{3}\d\{3}

98
MODO VISUAL.
x Para entrar en el modo visual desde el Modo Normal (ESC) pulse:

o v: Selecciona carácter a carácter.

o V: Selecciona línea completa.

o CTRL-V: Selecciona bloques. Muy útil para tablas.

x Al mover el cursor se selecciona el texto deseado.

x Pulsar un el comando de edición oportuno para realizar la operación deseada. Ej d


borra el texto seleccionada.

x Pulsar ESC para salir y volver al modo Normal.

x Para conseguir ayuda de este modo:help v_comando o :help v_b_comando


cuando se usan bloques con CTRL-V.

TECLA FUNCIÓN

d, D Borra el texto marcado. D borra la línea completa incluso si no esta


seleccionada.

y, Y Guarda el texto seleccionado en un registro. Después se puede usar


para pegarlo en otra localización. Y líneas completa

c Borra el texto marcado y pasa al modo visual.

J, gJ Une las líneas marcadas en una misma línea separadas por


espacios. gJ no deja el espacio en la unión.

>,< Aplica una tabulación al texto seleccionada. < quita una tabulación.
El tamaño de la tabulación se puede definir con el comando
:shiftwidth

rcaracter Sustituye el texto seleccionado por un único carácter dado.

MODO COMANDO.
Vim esta basado en un mas viejo editor llamado Vi. A su vez, Vi esta basado en un editor
de línea de comando llamado ex. Ex aún es usado y aunque Vim contiene una gran
cantidad de comandos algunos son mejor llevado a cabo por los comandos de ex y otros
solo se encuentran en este modo.

Cualquier comando que empiece con: son considerados comandos al estilo ex.

99
TECLA FUNCIÓN

Sustitución :range substitute /from/to/flags

:% s /x/y Sustituye la primera ocurrencia de x por y en cada línea en todo el


fichero. Para separar los patrones usar / u otro carácter que no
aparezca en el patrón a buscar, excepto letras, dígitos, \, “, ¦. ej :%s
/NEO/NEON

flag g Sustituye todas las ocurrencias de x por y en cada línea en todo el


fichero. g=global. ej :%s /NEO/NEON/g

Flag c Pregunta antes de hacer el cambio. y:cambiar, n: no cambiar, a:


remplazar las que quedan sin confirmar, q: salir sin hacer mas
cambios, CTRL-E: Subir una línea, CTRL-Y: Bajar una línea.

Comando de edición

:1,5 delete Borra las líneas 1 a 5

:3 delete 5 Borra la 5 líneas desde la línea 3, inclusive

:1,3 copy Copia las líneas 1 a 3 después de la línea 5.


5

:1,3 move Mueve las líneas 1 a 3 después de la línea 5.


5

Manipulación de ficheros

: line read Añade en la línea pasada como parámetro. Si no se especifica


fichero ninguna línea donde se encuentra el cursor el fichero dado como
parámetro.

:write Guarda una copia del fichero en otro nombre de fichero dado como
fichero parámetro. Si selecciono una parte del texto solo guardar la parte
seleccionada. :write >> nuevo.txt agrega el fichero actual al final del
fichero nuevo.txt.

:pwd Directorio actual.

:file Igual q CTRL-g. Información del fichero

:file name Cambia el nombre al fichero. Útil para guardar cambios con otro
nombre.

:= Muestra la línea actual.

Comando shell

:shell, exit El comando :shell nos lleva a la consola. exit para volver al editor

100
AYUDA EN VIM.

TECLA FUNCIÓN

:help , <F1> Muestra el fichero de ayuda de VIM.

ZZ, :q Para salir de la ayuda.

CTRL - ] ; CTRL - Entra en un link que se encuentran entre []. En el teclado


T español es necesario pulsar al mismo tiempo que CTRL, ALT
Gr.

CTRL – T para volver atrás.

:help tema Muestra ayuda sobre un tema o comando dado.

:help index Muestra un índice de ayuda disponible.

:help CTRL-A Muestra ayuda de la combinación CTRL-tecla

:help i_CTRL-A Muestra ayuda de la combinación CTRL-tecla en el modo Insert.

101
LO QUE HEMOS APRENDIDO
‡ Linux puede ejecutar varias tareas al mismo tiempo. En sistemas
monoprocesador, se asigna un determinado tiempo a cada tarea de manera que,
al usuario, le parece que se ejecutan al mismo tiempo. Para ejecutar un programa
en background, basta con poner el signo ampersand (&) al término de la línea de
comandos.

‡ Un intérprete de comandos es la parte fundamental de un sistema operativo


encargada de ejecutar las órdenes básicas para el manejo del sistema. También
se denomina shell. Suelen incorporar características tales como control de
procesos, redirección de entrada/salida y un lenguaje de órdenes para escribir
programas por lotes o (scripts).

‡ Los comandos tienen la siguiente sintaxis: # programa arg1 arg2 ... argn.

‡ En los comandos se puede utilizar los comodines (*, ¿, …).

‡ Una variable de entorno es un nombre asociado a una cadena de caracteres.

‡ Un “alias”' es un nombre alternativo para un comando. Así, en lugar de escribir el


comando propiamente dicho, escribiríamos el alias de dicho comando.

‡ En la línea de comandos la integración entre diferentes programas se realiza por


medio de la re-dirección de las entradas y salidas a través de pipes o tuberías.

‡ El comando history muestra la secuencia de comandos, con un número a su


izquierda.

‡ La programación del shell es una de las herramientas mas apreciadas por todos
los administradores y muchos usuarios de Linux/Unix ya que permite automatizar
tareas complejas, comandos repetitivos y ejecutarlas con un solo llamado al
script o hacerlo automáticamente a horas escogidas sin intervención de
personas.

‡ Emacs es un editor de texto de gran potencia que está disponible para multitud
de plataformas y forma parte del Proyecto GNU.

‡ Es un clon del editor de texto VI distribuido con la mayoría de los sistemas UNIX.

102
ANOTACIONES
.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

103
TEST
Marcar la respuesta correcta.

1. ¿Para qué sirve el comando chown?


† Cambia los permisos de usuario.
† Cambia el dueño de un archivo.
† Cambia los permisos de un grupo.

2. ¿Qué hace este comando ‘mv a.out /prog1’?


† Copia a.out en /prog1.
† Mueve a.out a /prog1.
† Renombre el archivo.

3. ¿Qué hace el comando finger?


† Busca algo en concreto.
† Muestra información de un usuario.
† Muestra información del sistema.

4. ¿Qué necesitamos para colocar un programa en background?


† Linux.
† &.
† #.

5. ¿Qué es un intérprete de comandos?


† Un programa de nuestra distribución GNU/Linux.
† La parte del sistema operativo encargado de ejecutar las órdenes básicas para el
manejo del sistema.
† Herramienta única para configurar un sistema GNU/Linux.

6. ¿Qué debe aparecer en todos los scripts Bash?


† #!/bin/bash.
† #!/bin/bsh.
† #!/bin/sch.

104
ACTIVIDADES
1. Volcar la entrada de teclado en un fichero usando el comando cat, el volcado
terminara cuando se escriba la palabra “Exit”.

2. Usar el comando cut para mostrar solo una parte de cada línea de un fichero.

3. Copia el fichero creado a otro fichero.

4. Une ambos ficheros mediante el comando paste.

5. Usa el comando tr para convertir todas la letras a mayúsculas.

6. Crea un script en bash el cual sobre dos números pasados como parámetros diga
cual es el mayor.

105
106
Linux Avanzado

Sistema de Ficheros

i Sistema de Ficheros

i Sistemas de Ficheros en un Sistema GNU/Linux

i Puntos de Montaje

i Permisos

i Enlaces

Objetivos:
tema 6
i Comprender lo que es un sistema de ficheros y un fichero.

i Descubrir el sistema de fichero en GNU/Linux.

i Modificar, eliminar o añadir permisos a ficheros.

i Crear enlaces a ficheros o directorios.

107
108
Sistema de Ficheros

QUÉ ES UN SISTEMA DE FICHEROS


Un sistema de ficheros es el responsable de los siguientes aspectos relacionados con los
ficheros:

x Organización (secuencias de bytes, registros, ...)

x Almacenamiento (contiguo, enlazado, ...)

x Recuperación (tablas de ficheros, caches, ...)

x Denominación (nombres de los ficheros)

x Compartición (enlaces)

x Protección (mecanismos de protección)

ESTRUCTURA DE UN SISTEMA DE FICHEROS


x La capa de conexión puede ser:

x Memoria compartida > En los sistemas operativos tradicionales

x Una red de alta velocidad > En los sistemas operativos en red

x Los servicios de directorios y ficheros están en el núcleo. En la actualidad no


siempre es así.

x Los directorios se implementan como ficheros, aunque algunos sistemas los


implementan de forma independiente.

CONCEPTO DE FICHERO
Los usuarios ven un fichero como una recopilación de información almacenada en un
dispositivo secundario. Cada fichero tiene un nombre.

Sin embargo, para los programadores un fichero es un tipo abstracto de datos, usado
mediante una serie de operaciones.

Y para los implementadores un fichero es una colección de bloques de disco, donde


cada fichero tiene un identificador binario.

109
Sistemas de Ficheros en un Sistema GNU/Linux
Linux aporta una gran cantidad de sistemas de ficheros. Ejemplos: ext, ext2, ext3,
reiserfs, msdos, vfat, xia, minix, umsdos, proc, smb, ncp, iso9660, sysv, hpfs, affs y ufs.

El sistema de ficheros propio de Linux es el ext2 y más recientemente, el ext3. Los


elementos de dicho sistema de ficheros se pueden clasificar en:

x Ficheros.

x Directorios.

x Enlaces simbólicos.

x Dispositivos de caracteres y de bloques.

x Tuberías (pipes) y sockets.

Un fichero no se almacena de forma continua en los dispositivos físicos. Aunque Linux


en la medida de lo posible, procura hacerlo así, a veces existen ficheros que se ven
fragmentados en diferentes bloques. Debido a esta posible fragmentación, es necesaria
una estructura que direccione los bloques de los ficheros. Es lo que se conoce en Linux
como al estructura i-nodo, almacena las direcciones físicas de los bloques que forman
un fichero. Cada i-nodo ocupa 4K, pequeña y continua, identificada a través de un
número entero. La estructura de un i-nodo es la siguiente:

x Tipo del fichero y sus permisos.

x Identificador del usuario dueño y del grupo del fichero.

x Cantidad de bytes del fichero.

x Tiempos de: último acceso al fichero (lectura o ejecución), última modificación del
fichero (escritura), última modificación del i-nodo.

x Direcciones de los 20 bloques directos del fichero, del indirecto de primer nivel,
del indirecto de segundo nivel y del indirecto de tercer nivel.

110
Figura: Estructura lógica en el sistema de ficheros de Linux

El sistema de ficheros de Linux tiene una estructura de árbol, donde la raíz es única y es
representada por. La figura se muestra un esquema general de los principales directorios
del sistema de ficheros de Linux.

Para nombrar los ficheros se puede emplear hasta 256 caracteres, pudiendo ser de
cualquier tipo con excepción de /, por ser el separador de caminos. Linux es un sistema
case sensitive, es decir, diferencia entre mayúsculas y minúsculas. Los ficheros
``ocultos'' en Linux son aquellos cuyo nombre comienza con el carácter “.” (punto).

Los directorios siempre tienen dos ficheros ocultos representados por “.” y “...”
representa el directorio actual y el directorio padre.

Una de las configuraciones posibles de Linux es tener dos particiones, una Linux Swap,
memoria de intercambio y otra con nuestro sistema GNU/Linux, pudiendo ser el sistema
ext2, o el mejorado ext3, este es una mejora del ext2 compatible con journaling.

Otra posible configuración serían tres particiones: swap, /home (dedicada a las cuentas
de usuarios) y la raíz.

Ya por ultimo, otro ejemplo muy utilizado de configuración es separar las partes
estáticas del sistema de las partes dinámicas. En un partición pondremos la raiz con la
parte estática (/bin, /sbin y /usr en algunos casos) y en la otra la parte dinámica (/var ,
/tmp, /home).

111
Puntos de Montaje

Además del sistema de ficheros raíz y sus posibles particiones, se tendría en cuenta
posibilidad de otros puntos de montaje preparados para otros posibles sistemas de
ficheros, particiones o cualquier otro dispositivo de almacenamiento.

En las maquinas que se comparten varios sistemas operativos, se suele asignar a casa
uno de estos una partición.

A veces es necesario e interesante compartir datos de un sistema a otro, a diferencia de


otros sistemas operativos, GNU/Linux posee un gran número de sistemas de ficheros y
es capaz de compartir información con otros sistemas operativos.

GNU/Linux es capaz de leer datos de todos los sistemas de ficheros y escribir en la


mayoría de ellos. En el caso de NTFS, existen ciertas incompatibilidades, aún no
solucionadas, que podrían hacer los datos corruptos o provocar errores en el sistema. En
las próximas versiones del kernel se espera que Linux tenga soporte para dicho sistema
de ficheros, siempre y cuando, Windows no siga haciendo modificaciones.

Recuerda: Para que se puedan leer o escribir los datos, la partición tiene que estar
disponible dentro de nuestro sistema de ficheros raíz (/). Por lo tanto, hay que llevar a
cabo un proceso de “montaje” del sistema de ficheros en algún punto de nuestro árbol
de directorios. Se seguirá el mismo proceso si se trata de un dispositivo de
almacenamiento, ya sea disquete o floppy.

Dependiendo de la distribución, hay unos u otros puntos de montaje. Normalmente


suelen existir o bien como subdirectorios de la raíz, por ejemplo /cdrom /win /floppy, o
bien son subdirectorios dentro de /mnt, el punto estándar de montaje (aparecen como
/mnt/cdrom /mnt/floppy...).

PROCESO DE MONTAJE DE DISPOSITIVOS.


Se realiza mediante la orden mount con el siguiente formato:

mount -t filesystem-type device mount-point

x El filesystem puede ser msdos (fat), vfat (fat32), ntfs (ntfs lectura), iso9660 (para
cdrom), ...

x El dispositivo es la entrada correspondiente en el directorio /dev a la localización


del dispositivo, los IDE tenían /dev/hdxy donde x es a,b,c, o d (1 master, 1 slave,
2 master, 2 slave) e y, el número de partición, los SCSI (/dev/sdx) donde x es
a,b,c,d ... (según el ID SCSI asociado 0,1,2,3,4 ...).

Nota: man mount , para más información.

112
Ejemplos:

mount -t iso9660 /dev/hdc /mnt/cdrom

Montaría el CD-ROM (si es el IDE que está en el segundo IDE de forma


master) en el punto /mnt/cdrom.

mount -t iso9660 /dev/cdrom /mnt/cdrom

Montaría el CD-ROM; /dev/cdrom se usa como sinónimo (es un link) del


dispositivo donde está conectado.

mount -t vfat /dev/fd0H1440 /mnt/floppy

Montaría el disquete, /dev/fd0H1440. Sería la disquetera A en alta


densidad (1.44 MB), también puede usarse /dev/fd0.

mount -t ntfs /dev/hda2 /mnt/winXP

Montaría la segunda partición del primer dispositivo IDE (la C:),

de tipo NTFS (por ejemplo un Windows XP).

Si queremos hacer las particiones fijas en el sistema, podemos hacerlo mediante la


configuración del fichero /etc/fstab:

Ejemplo:

# /etc/fstab: Información estática del sistema de ficheros

# <Sis. ficheros> <Punto montaje> <Tipo> <Opciones> <volcado> <pasada>

/dev/hda2 / ext3 errors = remountro 0 1

/dev/hdb3 none swap sw 0 0

proc /proc proc defaults 0 0

/dev/fd0 /floppy auto user,noauto 0 0

/dev/cdrom /cdrom iso9660 ro,user,noauto 0 0

/dev/sdb1 /mnt/usb vfat user,noauto 0 0

Nota: El fichero /etc/fstab Indica los dispositivos que están preparados para montarse en
el arranque o los extraíbles que podrán ser montados.

Nota: man /etc/fstab, para más información.

113
Con esta información en el fichero, el proceso de montaje se simplifica, ya que se hará o
bien en ejecución o bien bajo demanda (para los noauto). Y puede hacerse ahora
simplemente pidiendo que se monte el dispositivo o el punto de montaje:

mount /mnt/cdrom

mount /dev/fd0

dado que el sistema ya tiene el resto de la información.

El desmontaje, es bastante sencillo, el comando umount con punto o dispositivo:

umount /mnt/cdrom

umount /dev/fd0

Nota: man umount , para más información.

En el caso de medios extraíbles, tipo CD-ROM (u otros), puede usarse eject para la
extracción del medio:

eject /dev/cdrom o, en este caso, sólo: eject

Nota: man eject , para más información.

Los comandos de montaje y desmontaje se pueden encontrar en todos los sistemas. En


el fichero /etc/mtab encuentras la lista de los sistemas montados o ejecutar mount sin
parámetros para obtener esta información.

Permisos
Cada elemento del sistema de ficheros de Linux tiene permisos de acceso de acuerdo a
tres tipos de usuarios:

x Su dueño (casi siempre el creador) representado por la letra u (user).

x Su grupo representado por la letra g (group).

x El resto de los usuarios que no son el dueño ni pertenecen al grupo. Se


representa con o (other).

Para cada grupo de usuarios existen tres tipos de permisos:

x r: read (lectura). Podrá si es un directorio, listar los recursos almacenados en él, y


leer el contenido de un fichero.

x w: write (escritura). Podrá modificar un fichero. Para un directorio podrán crear y


borrar ficheros en su interior.

x x: execute (ejecución). Permitirá ejecutar el fichero desde la línea de comandos y


para los directorios, tendrá acceso para realizar el resto de las funciones
permitidas mediante los otros permisos (lectura y/o escritura).

114
Para determinar los permisos se deben tener en cuenta:

x Para poder realizar operaciones sobre cualquier directorio es necesario tener el permiso de
ejecución.

x Para acceder a un recurso de cualquier forma (ejecución, lectura o escritura) hay que poseer
todos los permisos de ejecución de cada uno de los directorios.

Los tipos de permisos tienen su representación numérica, basada en un sistema octal,


representado como “1” los permisos dados y “0” los no dados. Luego transforma dicha
representación en octal, con los siguientes valores:

r-- = 100 (4 en octal)

--w = 100 (2 en octal)

--x = 001 (1 en octal)

La combinación oscila desde cero (ningún permiso) hasta siete (todos los permisos).

Ejemplos:

rw- = 110 (6 en octal)

rwx = 111 (7 en octal)

r-x = 101 (5 en octal)

Los permisos “totales” de un recurso constan de nueve indicadores, los tres primeros
pertenece a los permisos asociados al dueño, los otros tres, al grupo y el resto a los
usuarios.

Ejemplos: Dueño Grupo Usuario

rwx r-x --- = 111 101 000 (750 en octal)

rw- r-- r-- = 110 100 100 (644 en octal)

Sólo el dueño de un recurso siempre tendrá derecho a cambiar sus permisos, además de
root.

Existen otros tipos de permisos más complejos:

x s y S: este permiso puede provocar problemas de seguridad si no se utiliza


correctamente. Se utiliza en lugar del permiso de ejecución. La s incluye el
permiso de ejecución y la S no lo incluye.

Puede ser asociado al dueño o al grupo. Cuando se le da a un fichero el usuario


que acceda al fichero, tendrá todos los permisos del dueño o grupo. Un ejemplo
de fichero con dicho permiso es el passwd.

Para el caso de un directorio solo tiene validez para el grupo permitiendo a los
ficheros y a los subdirectorios que hereden el permiso s.

115
x t y T: cuando esta asignado a un directorio con permiso de escritura, le da
permiso a los usuarios para que creen ficheros en dicho directorio, pero solo
podrán ser borrados por root o el dueño. Para un fichero, el texto se almacena en
memoria swap para ser accedido con rapidez. Se emplea el bit correspondiente al
de ejecución para su asignación. t significa que además tiene el permiso de
ejecución y T que no lo tiene. Un ejemplo de directorio con este permiso es el
/tmp.

Para representar estos permisos se utilizan tres bits adicionales: el primero para s en el
dueño, el segundo para s en el grupo y el tercero para t. Se colocan al inicio de la cadena
numérica de nueve bits vista anteriormente. En la cadena de caracteres se mezclan con
el permiso de ejecución y de ahí la necesidad de emplear las mayúsculas y minúsculas.

Ejemplos:

rws rwS r-- = 110 111 110 100 (6764 en octal)

rwx rws -wT = 011 111 111 010 (3772 en octal)

Posiblemente el comando más empleado en Linux es el que muestra el contenido de un


directorio, llamado ls. Este comando con la opción -l permite observar los permisos que
tienen asociados los recursos listados, además de otras características. Los permisos
vienen representados a través de una cadena de 10 caracteres donde el primero indica el
tipo de recurso que es:

x d : directorio

x l : enlace simbólico

x b : dispositivo de bloque

x c : dispositivo de caracteres

x s : socket

x p : tubería (pipe)

x -: fichero regular

Los otros nueve caracteres representan los permisos del recurso. El resto de las
columnas de la salida representan:

x El número de enlaces duros que posee.

x El identificador del dueño.

x El identificador del grupo.

x El tamaño en bytes si es un fichero y si es un directorio el tamaño en bloques que


ocupan los ficheros contenidos en él.

x La fecha y hora de la última modificación.

x El nombre del recurso.

116
Ejemplos:

drwx---r-x 3 alina alina 4096 Oct 11 12:52 doc

-rw-r--r-- 1 alina alina 330106 Sep 7 08:39 tesis.tgz

drwxrwxrwt 5 root root 1024 Nov 15 10:40 tmp

lrwxrwxrwx 1 alina alina 21 Oct 1 09:46 curso -> ../documentación

brw-rw---- 1 root disk 3, 1 Fri Mar 23 2001 /dev/hda1

Para cambiar los permisos de un recurso se utiliza el comando chmod.

Sintaxis: chmod [opciones] <permisos> <ficheros>

Ejemplos:

$ chmod u+x clase.txt

# añade el permiso de ejecución al dueño

$ chmod g=rx program.sh

# asigna exactamente los permisos de lectura y ejecución al grupo

$ chmod go-w profile

# elimina el permiso de escritura en el grupo y en otros

$ chmod a+r,o-x *.ts

# adiciona el permiso de lectura para todos los usuarios y elimina el de ejecución

para nosotros

$ chmod +t tmp/

# adiciona el permiso especial t

$ chmod 755 /home/pepe/doc/

# asigna los permisos con representación octal 755 (rwxr-xr-x)

$ chmod -R o+r apps/

# adiciona el permiso de lectura a otros para un directorio de forma recursiva

incluyendo todo su contenido

$ chmod +x ./bin/*

117
# adiciona el permiso de ejecución a todos los usuarios que les corresponde por

defecto

# chmod 4511 /usr/bin/passwd

# asigna los permisos con representación octal 4511 (r-s--x--x)

Para asignar permisos por defecto, tanto a ficheros como a directorios, cada usuario
posee una máscara de permisos. Se expresa en formato octal. La mascara representa los
permisos que se le quiere asignar al recurso. Por defecto es 002 para los usuarios
comunes y 022 para root.

Se calculan los permisos finales que se tienen dado en la máscara 022:

Ficheros = totales_para_ficheros - máscara = 666 - 022 = 644 = -rw-r--r--

Directorios = totales_para_directorios - máscara = 777 - 022 = 755 = drwxr-xr-x

Para realizar operaciones en la máscara se emplea el comando umask.

Sintaxis: umask [-S] [máscara]

Ejemplos:

$ umask

# sin argumentos muestra la máscara actual en formato numérico 022

$ umask -S

# muestra el complemento de la máscara en formato de caracteres u=rwx,g=r,o=r

$ umask -S 037

# asigna la máscara 037 (niega permisos de ejecución y de escritura para el grupo,

u=rwx,g=r,o= y todos los permisos para el resto de los usuarios). Se muestra

el resultado en formato de caracteres

$ umask g=rx,o=

# especifica el complemento la máscara utilizando el formato de caracteres

Para ser bien restrictivos se recomienda hacer: $ umask 077

Los nuevos directorios tendrán el permiso: 700 = drwx------

Los nuevos ficheros tendrán el permiso: 600 = -rw-------

118
Nota: Existen comandos para modificar los permisos de ficheros y/o directorios:

• chown: cambiar propietario de los ficheros.

• chgrp: cambiar grupo de los ficheros.

• chmod: cambiar permisos específicos (rwx) de los archivos.

Permiten la opción –R, que es recursiva si se trata de un directorio. Consultar el man


para más información.

Enlaces
En Linux es posible definir enlaces a sistemas de ficheros, para que sean accesible desde
cualquier punto de la jerarquía, tenemos dos tipos de enlaces:

x Fuertes o duros: no se diferencian en nada del fichero original. Un fichero existe


físicamente y su nombre no es más que un enlace fuerte a él. Cuando se crea un
enlace fuerte se esta apuntando a la misma zona física. De esta forma se
obtendrían dos o más copias lógicas de un fichero, pero solo habría una copia
física. Por lo que el fichero no desaparece físicamente hasta que el enlace no deje
de apuntar a él.

x Simbólicos o débiles: apuntan al nombre del fichero, no a su contenido. Si


desaparece el fichero original (todos los enlaces duros a este) los enlaces
simbólicos correspondientes quedan inconsistentes.

No se pueden crear enlaces fuertes a directorios, ni a ficheros en particiones distintas.


Para crear enlaces:

Sintaxis:

ln [opciones] <fichero|directorio> [nombre_del_enlace]

ln [opciones] <lista_de_ficheros> <directorio>

ln [opciones] <fichero|directorio>[nombre_del_enlace]

Opción: -s se utiliza para crear enlaces simbólicos

Ejemplos:

$lln -s /home/pepe/public_html/raiz.html index.html

$lln doc/important.doc clases/* backup/

# ln -s /usr/bin /binarios

119
LO QUE HEMOS APRENDIDO
‡ Un sistema de ficheros es aquél componente del sistema operativo responsable
de los siguientes aspectos relacionados con los ficheros: organización
(secuencias de bytes, registros,...), almacenamiento (contiguo, enlazado,...),
recuperación (tablas de ficheros, caches,...), denominación (nombres de los
ficheros), compartición (enlaces), protección (mecanismos de protección).

‡ Para los usuarios: Un fichero es una colección de información que se encuentra


en un dispositivo de almacenamiento secundario. Cada fichero tiene un nombre,
en forma de cadena de caracteres.

‡ El sistema de ficheros propio de Linux es el conocido como ext2 y más


recientemente, el ext3. Los elementos de dicho sistema de ficheros se pueden
clasificar en: ficheros, directorios, enlaces simbólicos, dispositivos de caracteres y
de bloques, tuberías (pipes) y sockets.

‡ Para que se puedan leer o escribir los datos, la partición tiene que estar
disponible dentro de nuestro sistema de ficheros raíz (/). Por lo tanto, hay que
llevar a cabo un proceso de “montaje” del sistema de ficheros en algún punto de
nuestro árbol de directorios. Se seguirá el mismo proceso si se trata de un
dispositivo de almacenamiento, ya sea disquete o floppy.

‡ El fichero /etc/fstab Indica los dispositivos que están preparados para montarse
en el arranque o los extraíbles que podrán ser montados.

‡ Cada uno de los elementos del sistema de ficheros de Linux posee permisos de
acceso de acuerdo a tres tipos de usuarios: dueño, grupo y el resto. Para cada
uno de estos tres grupos de usuarios existen tres tipos de permisos
fundamentales: lectura (read), escritura (write), ejecución (execute).

‡ Los tres tipos de permisos poseen una representación numérica basada en el


sistema octal que parte de representar como “1”' los bits de los permisos
otorgados y “0” para los negados.

‡ No se pueden crear enlaces fuertes No se pueden crear enlaces fuertes distintas.

‡ Para crear enlaces se emplea el comando ln.

120
ANOTACIONES
.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

121
TEST
Marcar la respuesta correcta.

1. Un sistema de ficheros es aquel responsable de:


† Almacenar ficheros.
† Almacenar información.
† Aspectos relacionados con los ficheros.

2. ¿Cuál es el sistema de ficheros utilizado en Linux?


† Ext4.
† NTFS.
† Ext2.

3. ¿Cuál es el fichero que indica los dispositivos que van a ser montados en el arranque
o los extraíbles que podrán ser montados?
† /etc/fmount.
† /etc/fstab.
† /bin/fstab.

4. ¿Qué comando utilizamos para cambiar, borrar o modificar los permisos de los
ficheros?
† Chmod.
† chonw.
† chgpr.

5. Cuales son los tipos de enlaces que existen:


† Blando, directo.
† Duros, débiles.
† Simbólicos, indirectos.

6. Cuando listamos un directorio con el comando ls, ¿qué significado tiene la cada de
10 caracteres que nos muestra?
† Permisos de usuario, grupo, numero de enlaces simbólicos, tipo de recurso, el
identificador del dueño, el identificador del grupo, el tamaño en bloque, la fecha y
hora de la ultima modificación y el nombre del recurso.
† Permisos de usuarios y grupos.
† Tipo de recurso, el número de enlaces duros que posee, el identificador del
dueño, el identificador del grupo, el tamaño en bloque, la fecha y hora de la
ultima modificación y el nombre del recurso.

122
ACTIVIDADES
1. Crear una estructura de directorios dentro de la carpeta de trabajo con un mínimo de
3 niveles.

2. Crea o copia 1 fichero dentro de cada nivel de la estructura anterior.

3. Cambia los permisos del fichero de primer nivel añadiendo ejecución solo al
propietario del fichero y añadir permiso de escritura global al resto.

4. Crea enlaces simbólicos a cada uno de los ficheros dentro de la estructura creada de
manera que el enlace del primer nivel apunte al fichero del último y así
sucesivamente.

5. Crear un enlace duro en el primer nivel a la última carpeta dentro de la estructura.

123
124
Linux Avanzado

Arranque y Servicios

i Niveles de Arranque y Servicios

i Fichero /Etc/Inittab

i Comando Init

i Arranque del Sistema con Diskete

i Configuración del Gestor de Arranque LILO

i Configuración del Gestor de Arranque GRUB


tema 7
Objetivos:
i Comprender el arranque del sistema en Linux.

i Saber configurar el gestor de arranque.

125
126
Niveles de Arranque y Servicios

Linux utiliza el arranque INIT de Sys; init es el primer proceso que se ejecuta en el
sistema, del cual dependen los demás. Es importante conocer el funcionamiento de los
llamados niveles de ejecución(o runlevels), y en los servicios que se proporcionan en
cada nivel.

Un servicio es una funcionalidad proporcionada por la máquina. Se activan y se paran a


través de scripts. La configuración de los servicios se suele tener en el directorio /etc, los
scripts están en /etc/init.d/, aquí podemos encontrar scripts con nombres parecidos a los
servicios y suelen aceptar parámetros de activación y parada.

/etc/init.d/servicio start arranque del servicio.

/etc/init.d/servicio stop parada del servicio.

/etc/init.d/servicio restart parada y posterior arranque del servicio.

Cuando arrancamos un sistema GNU/Linux se arranca el kernel y a continuación se


arranca el proceso init, que es el encargado de ejecutar y activar el resto del sistema a
través de unos niveles de ejecución.

Nota: Se llama nivel de ejecución a la configuración de programas y servicios que serán


ejecutados orientados a un determinado funcionamiento.

Runlevel Función Descripción

Nivel de ejecución Modo


0 Detener el sistema
1 Mono usuario, sin soporte de red

2 Multiusuario, sin soporte de red


3 Modo multiusuario completo
4 Sin uso. Recomendado para pruebas
5 Multiusuario completo en entorno gráfico
6 Reiniciar el sistema

Estos niveles suelen estar configurados en los sistemas GNU/Linux (y UNIX) por dos
sistemas diferentes, el BSD, o el System V.

El modelo runlevel de System V, utiliza un fichero de configuración llamado /etc/inittab


para decidir el runlevel del cual vamos a arrancar el sistema.

Según el runlevel escogido el sistema dispone de otros ficheros contenidos en /etc/rcn.d,


donde n es el número de runlevel, en donde se encuentra la lista de servicios por activar
o parar. Dentro de estos directorios se encuentran una serie de scripts o enlaces a
scripts de los servicios.

127
Los scripts tienen un nombre relacionado con el servicio, una S o K inicial que indica si
es el script para iniciar (S) o matar (K) el servicio, y un número que refleja el orden en
que se ejecutarán los servicios.

Existen algunos comandos que sirven para manejar los niveles de ejecución.

x Los scripts del directorio /etc/init.d/ nos permiten arrancar, parar o reiniciar
servicios individuales.

x telinit, permite cambiar el nivel de ejecución, únicamente habrá que indicar el


número. Por ejemplo si tuviéramos que hacer una tarea como root, sin usuarios
trabajando, haríamos un telinit 1, y pasamos al modo monousuario. Para volver al
modo multiusuario pondremos telinit 3. También puede utilizarse el comando init
para la misma tarea.

x shutdown, permite parar (’h’ de halt) o reiniciar el sistema (’r’ de reboot).

x wall, permite enviar mensajes de advertencia a los usuarios del sistema.

x pidof, permite averiguar el PID (process ID) asociado a un proceso.

Respecto a todo el modelo de arranque, las distribuciones presentan algún pequeño


cambio:

x Red Hat: el runlevel 4 no tiene un uso declarado. Los directorios son:


/etc/rc.d/rcn.d. El runlevel por defecto es el 5 con arranque con X.

En el fichero /etc/sysconfig se encuentran los archivos que especifican valores por


defecto de la configuración de dispositivos o servicios. El guión /etc/rc.d/rc.sysinit
es invocado cuando el sistema arranca; el guión /etc/rc.d/rc.local se invoca
cuando finaliza el proceso de carga y sirve para indicar configuraciones
específicas de la máquina.

El arranque de los servicios se hace por medio de los scripts almacenados en


/etc/rc.d/init.d. Red Hat proporciona unos scripts de utilidad para manejar
servicios: /sbin/service para parar o iniciar un servicio por el nombre; y
/sbin/chkconfig, para añadir enlaces a los ficheros S y K necesarios para un
servicio.

x Debian dispone de comandos de gestión de los runlevels como updaterc.d,


permite instalar o borrar servicios arrancándolos o parándolos en otros runlevels.

El runlevel por defecto en Debian es el 2, el X Window System no se gestiona


desde /etc/inittab, existe el gestor como un servicio más del runlevel 2.

128
Fichero /Etc/Inittab

Para Init es necesario un fichero de configuración que le indique lo que debe hacer,
/etc/inittal. Este fichero contiene información del nivel por defecto a ejecutar, previsión
ante determinadas situaciones, describe los procesos que se cargan en el inicio y
arranque.

/etc/inittab tienen el siguiente formato:

id:niveles_ejecución: acción:proceso

x id: Una secuencia única de 1 a 4 caracteres que identifican la entrada de inittab

x niveles_ejecución: Lista de niveles de ejecución para los que se llevarán a cabo las
acciones definidas a continuación en la línea.

x acción: La acción se llevará a cabo.

x proceso: El proceso a ejecutar.

Las acciones que podemos definir en el campo acción son:

initdefault: Especifica el nivel de ejecución por defecto al arrancar el sistema.

Respawn: El proceso se reiniciará cuando termine.

once: El proceso se ejecutará una sola vez cuando se entre en el nivel de ejecución
especificado.

wait: El proceso se iniciará una vez cuando se entre en el nivel de ejecución e init
esperará a su terminación.

boot: El proceso se ejecutará durante el arranque del sistema.

bootwait: El proceso se ejecutará durante el arranque del sistema, mientras init espera
su terminación.

sysinit: El proceso se ejecutará durante el arranque del sistema, antes que cualquier
entrada boot o bootwait. El campo niveles_ejecución se ignora.

powerwait: El proceso se ejecutará si init recibe una señal SIGPWR, que indica algún
problema con la alimentación eléctrica. Init esperará que el proceso termine.

powerfail: Como powerwait, excepto que init no espera a que termine el proceso.

powerokwait: El proceso se ejecutará si init recibe la señal SIGPWR, con la condición de


que haya un fichero llamado /etc/powerstatus que contenga la palabra OK. Esto significa
que se ha restablecido la alimentación eléctrica.

ctrlaltdel: Especifica qué proceso se ejecutará al pulsar la combinación de teclas


[Ctrl+Alt+Supr]. Normalmente, reiniciar la máquina.

129
Comando Init

Podemos ejecutar init desde línea de comandos con alguno de los siguientes
argumentos:

0, 1, 2, 3, 4, 5, 6: Para cambiar al nivel de ejecución especificado.

Q, q: Si queremos que init relea el fichero /etc/inittab.

S, s: Entra en modo monousuario.

U, u: Reejecuta init respetando el estado actual. No se relee el fichero /etc/inittab.

Arranque del Sistema con Diskete

Es posible arrancar Linux utilizando un "disquete de arranque" que contiene una copia
del núcleo de Linux. Este núcleo tiene la partición raíz de Linux codificada en él, para que
sepa donde buscar en el disco duro el sistema de ficheros raíz. (El comando rdev puede
ser utilizado para poner la partición raíz en la imagen del núcleo; ver más adelante.) Por
ejemplo, este es el tipo de disquete creado por Slackware durante la instalación.

Para crear su propio disquete de arranque, localice en primer lugar la imagen del núcleo
en su disco duro. Debe estar en el fichero /Image o /etc/Image. Algunas instalaciones
utilizan el fichero /vmlinux para el núcleo. En su lugar, puede que tenga un núcleo
comprimido. Un núcleo comprimido se descomprime a si mismo en memoria en tiempo
de arranque, y utiliza mucho menos espacio en el disco duro. Si se tiene un núcleo
comprimido, puede encontrarse en el fichero /zImage o /etc/zImage. Algunas
instalaciones utilizan el fichero /vmlinuz para el núcleo comprimido.

Una vez que se sabe donde está el núcleo, hay que poner el nombre de la partición raíz
de un dispositivo raíz en la imagen del núcleo, utilizando el comando rdev. El formato de
este comando es:

rdev <nombre-de-núcleo> <dispositivo-raíz>

<nombre-del-núcleo> es el nombre de la imagen del núcleo

<dispositivoraíz> es el nombre de la partición raíz de Linux

Ejemplo: para hacer que el dispositivo raíz en el núcleo /etc/Image sea /dev/hda2:

# rdev /etc/Image /dev/hda2

rdev también puede poner otras opciones en el núcleo, como puede ser el modo SVGA
por defecto a utilizar en tiempo de arranque. Tan sólo utilice "rdev -h" para obtener un
mensaje de ayuda.

130
Una vez puesto el dispositivo raíz, tan sólo hay que copiar la imagen del núcleo al
disquete. Siempre que se copia datos a un disquete, es una buena idea formatear
previamente el disquete en MS-DOS. Esto establece la información de pista y sector en
el disquete con la que puede detectarse como de alta o baja densidad.

Ejemplo: copiar el núcleo en el fichero /etc/Image al disquete en /dev/fd0

# cp /etc/Image /dev/fd0

Este disquete debe arrancar ahora Linux.

Configuración del Gestor de Arranque LILO

Otro método de arranque es utilizar LILO, un programa que reside en el sector de


arranque del disco duro. Este programa se ejecuta cuando el sistema se inicia desde el
disco duro, y puede arrancar automáticamente Linux desde una imagen de núcleo
almacenada en el propio disco duro.

LILO puede utilizarse también como una primera etapa de carga de varios sistemas.
Cuando se arranca utilizando LILO, se inicia el sistema operativo por defecto, a menos
que pulse |_ctrl_|, |_alt_|, o |_shift_|durante lel arranque. En caso que pulse cualquiera
de dichas teclas se presentará un indicador de arranque, donde debe teclear el nombre
del sistema operativo a arrancar (como puede ser "linux" o "msdos"). Si se pulsa la tecla
|_tab_|en el indicador de arranque, se le presentará una lista de los sistemas operativos
disponibles.

La forma más simple de instalar LILO es editar el fichero de configuración, /etc/lilo.conf, y


ejecutar el comando # /sbin/lilo

El fichero de configuración de LILO contiene un párrafo para cada sistema operativo que
se pueda querer arrancar.

Ejemplo: Fichero /etc/lilo.conf

# File generated by DrakX/drakboot

# WARNING: do not forget to run lilo after modifying this file

default="linux" # Sistema operativo que salta por defecto

# Opciones del arranque

boot=/dev/hda

map=/boot/map

keytable=/boot/es-latin1.klt

131
prompt

nowarn

timeout=100

message=/boot/message

menu-scheme=wb:bw:wb:bw

#Mandrake 10.1

image=/boot/vmlinuz

label="linux"

root=/dev/hda6

initrd=/boot/initrd.img

append="acpi=ht resume=/dev/hda5 splash=silent"

vga=788

read-only

#Linux-nonfb

image=/boot/vmlinuz

label="linux-nonfb"

root=/dev/hda6

initrd=/boot/initrd.img

append="acpi=ht resume=/dev/hda5"

read-only

image=/boot/vmlinuz-2.4.27-0.pre2.1mdk

label="2427-0pre21"

root=/dev/hda6

initrd=/boot/initrd-2.4.27-0.pre2.1mdk.img

append="devfs=nomount acpi=ht resume=/dev/hda5 splash=silent"

vga=788

read-only

image=/boot/vmlinuz

label="failsafe"

132
root=/dev/hda6

initrd=/boot/initrd.img

append="failsafe acpi=ht resume=/dev/hda5"

read-only

#Windows

other=/dev/hda1

label="windows"

table=/dev/hda

Configuración del Gestor de Arranque GRUB

GNU GRUB es un gestor de arranque muy potente, capaz de arrancar un amplio abanico
de sistemas operativos libres y otros.

Una de las facetas importantes de GRUB es su flexibilidad; GRUB entiende sistemas de


ficheros y formatos ejecutables del núcleo, por lo que permite arrancar cualquier sistema
operativo.

NOMENCLATURA
La sintaxis de dispositivos usada en GRUB es algo diferente a las que se puedan haber
visto.

Ejemplos:

(fd0) :Requiere que se encierre el nombre del dispositivo entre paréntesis'. “fd”
significa es que se trata de un disquete (floppy disk). El numero “0” es el número
de la unidad, empezando a contar desde cero. La expresión significa que GRUB
usará todo el disquete.

(hd0,1): “hd” indica un disco duro (hard disk). “0” número de la unidad, es decir,
que se trata del primer disco duro, el “1” indica el número de la partición. Los
números de partición se cuentan desde cero y no desde uno. La expresión
representa la segunda partición de la primera unidad de disco duro. En este caso,
GRUB usa una partición del disco y no el disco entero.

(hd0,4): Esto indica la primera partición lógica de la primera unidad de disco.

133
Para poder acceder a discos o particiones, necesitas especificar el dispositivo mediante
una instrucción, como `root (fd0)' o `unhide (hd0,2)'. Para ayudarte a averiguar qué
número es una partición que quieres, las opciones de la línea de órdenes auto-
completan los argumentos.

Advierte que GRUB no distingue entre IDE y SCSI - simplemente cuenta las unidades
desde cero sin que importe su tipo. Por lo general, el número de una unidad IDE es
menor que el de una SCSI, aunque esto no se cumpliría si cambias la secuencia de
arranque intercambiando las unidades IDE y SCSI en la BIOS.

Vamos a ver como se especifica esto en un archivo a partir del fichero.

Ejemplo:

(hd0,0)/vmLinuz: Esto especifica un archivo llamado `vmlinuz' en la primera partición del


primer disco duro. Nóta que también se pueden auto completar los nombres de archivo.

INSTALACIÓN
Necesitamos instalar GRUB debes instalarlo en tu disco. Existen dos formas de
conseguirlo - usando la aplicación grub-install en un SO tipo UNIX, o mediante una
Etapa 2 nativa. Ambas son bastante similares, sin embargo, es posible que la aplicación
escoja una unidad equivocada de la BIOS así que conviene ser precavido.

Asimismo, si instalas GRUB en un SO tipo UNIX, asegúrate de tener un disco de


arranque de emergencia a mano, para poder rescatar el ordenador en caso de que, por
algún motivo, el disco duro quedara inservible (no pudiera arrancarse).

GRUB viene con imágenes de arranque, que se instalan en el directorio


`/src/share/grub/i386-pc'. Es necesario copiar los archivos `stage1', `stage2' y `*stage1_5'
al directorio `/boot/grub'. Se llama directorio de imágenes y directorio de arranque al
directorio donde se instalan las imágenes de GRUB y al directorio que GRUB usa para
encontrarlas.

CREAR UN DISKETE DE ARRANQUE GRUB

Se necesita tomar los archivos `stage1' y `stage2' del directorio de imágenes, y


escribirlos en el primer y segundo bloque de un disquete.

Precaución: Este método destruye cualquier dato que esté guardado en el disquete.

En UNIX esto se puede hacer con las órdenes siguientes:

# cd /usr/share/grub/i386-pc

# dd if=stage1 of=/dev/fd0 bs=512 count=1 1+0 records in 1+0 records out

# dd if=stage2 of=/dev/fd0 bs=512 seek=1 153+1 records in 153+1records out

134
INSTALAR GRUB NATIVAMENTE

Precaución: Instalar la Etapa 1 de GRUB de esta manera borrará el sector de arranque


normal de un SO.

GRUB puede arrancar directamente GNU Mach, Linux, FreeBSD, NetBSD y OpenBSD,
por lo que usarlo no debería dar problemas. Aunque es buena idea hacer una copia de
seguridad del primer sector de la partición en la que vayas a instalar la etapa 1 de GRUB.
Si instalas GRUB en el primer sector del disco duro no es tan importante tomar
precauciones, ya que es fácil restaurarlo (por ejemplo, usando `FDISK /MBR' desde DOS).

Instalar GRUB de manera nativa en el sistema es recomendable. Se necesita hacer un


disquete de arranque de GRUB y arrancar el ordenador con él.

Lo primero es fijar el directorio de arranque como dispositivo raíz de GRUB:

grub> root (hd0,0)

Si no estás seguro de cual es la partición que contiene los archivos, puedes usar la
orden find de la manera siguiente:

grub> find /boot/grub/stage1

Esto busca el archivo `/boot/grub/stage1' y lista los dispositivos que lo contienen.

Una vez que has fijado correctamente el directorio raíz, utiliza la orden setup:

grub> setup (hd0)

Esta orden instala GRUB en el MBR de la primera unidad. Si lo que quieres es instalar
GRUB en el sector de arranque de una partición en vez de en el MBR, especifica la
partición en la que quieres instalar GRUB:

grub> setup (hd0,0)

Si instalas GRUB en una partición o en una unidad que no sea la primera, tendrás que
arrancar en cadena a GRUB desde otro gestor de arranque.

Los ficheros que intervienen en la configuración del GRUB son dos:

/boot/grub/menu.lst: Le indicamos donde están las imágenes.

/etc/fstab: Para montar nuestra particion en el arranque.

135
Ejemplo:

Fichero /boot/grub/menu.lst

# menu.lst GRUB

timeout 10

default 0

#Windows

title Windows

root (hd0,0)

chainloader +1

#Mandrake 10.1

title Linux

kernel (hd0,5)/boot/vmlinuz root=/dev/hda6 acpi=ht resume=/dev/hda5 splash=verbose


vga=788

initrd (hd0,5)/boot/initrd.img

#Knoopix

title Knoppix

kernel (hd0,6)/boot/vmlinuz root=/dev/hda7

initrd (hd0,6)/boot/initrd.img

title linux-nonfb

kernel (hd0,5)/boot/vmlinuz root=/dev/hda6 acpi=ht resume=/dev/hda5

initrd (hd0,5)/boot/initrd.img

title 2427-0pre21

kernel (hd0,5)/boot/vmlinuz-2.4.27-0.pre2.1mdk root=/dev/hda6 devfs=nomount acpi=ht


resume=/dev/hda5 splash=silent vga=788

initrd (hd0,5)/boot/initrd-2.4.27-0.pre2.1mdk.img

title failsafe

136
kernel (hd0,5)/boot/vmlinuz root=/dev/hda6 failsafe acpi=ht resume=/dev/hda5

initrd (hd0,5)/boot/initrd.img

Fichero /etc/fstab

/dev/hda6 / reiserfs notail 1 1 #Mandrake 10.1

/dev/hdb /mnt/cdrom auto umask=0,user,iocharset=iso8859-


15,codepage=850,noauto,ro,exec,users 0 0

/dev/hdc /mnt/cdrom2 auto umask=0,user,iocharset=iso8859-


15,codepage=850,noauto,ro,exec,users 0 0

none /mnt/floppy supermount dev=/dev/fd0,fs=ext2:vfat,--,umask=0,iocharset=iso8859-


15,sync,codepage=850 0 0

/dev/hda1 /mnt/win_c ntfs umask=0,nls=iso8859-15,ro 0 0 #Windows

/dev/hda8 /mnt/win_d vfat umask=0,iocharset=iso8859-15,codepage=850 0 0 none


/proc proc defaults 0 0

/dev/hda5 swap swap defaults 0 0

Ahora ya puedes arrancar GRUB sin usar un disquete.

Nota: Algunas distribuciones GNU/Linux, poseen herramientas gráficas para la


configuración del gestor de arranque, que facilitan la tarea.

137
LO QUE HEMOS APRENDIDO
‡ Linux utiliza el proceso de arranque init de Sys V.

‡ Un servicio es una funcionalidad proporcionada por la máquina. La activación o


parada de servicios se realiza mediante la utilización de scripts.

‡ La mayoría de los servicios estándar, los cuales suelen tener su configuración en


el directorio /etc, suelen controlarse mediante los scripts presentes en /etc/init.d/.

‡ Un nivel de ejecución es sencillamente una configuración de programas y


servicios que se ejecutarán orientados a un determinado funcionamiento.

‡ Los niveles de ejecución son 7, numerados del 0-6.

‡ El comando init se puede utilizar desde línea de comandos para cambiar de nivel
de ejecución.

‡ Los gestores de arranque para un sistema GNU/Linux, son LILO y GRUB.

‡ El fichero de configuración del gestor de arranque LILO es /etc/lilo.conf.

138
ANOTACIONES
.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

139
TEST
Marcar la respuesta correcta.

1. ¿Cuál es el fichero de configuración del LILO?


† /etc/grub/lilo.conf.
† /etc/lilo.conf.
† /boot/lilo.conf.

2. ¿Cuántos runlevels tenemos?


† 7, numerados del 1-7.
† 6, numerados del 0-5.
† 7, numerados del 0-6.

3. ¿Qué fichero de configuración utiliza el proceso init cuando arranque?


† /etc/inittab.
† /etc/initrd.
† /etc/init.d/inittab.

4. Un servicio es una funcionalidad proporcionada por la máquina.


† Verdadero.
† Falso

5. El runlevel de arranque en modo gráfico es:


† 5.
† 4.
† 3.

6. (hd0,1) Indica:
† La primera partición extendida del disco duro.
† El disco duro.
† La primera partición lógica.

140
ACTIVIDADES
1. Cambiar el runlevel usando el comando init.

2. Cambiar el runlevel por defecto al iniciar el sistema.

3. Elimina de un runlevel un servicio determinado, como por ejemplo la red.

4. Añade un servicio determinado para que se ejecute en un runlevel determinado.

5. Personalizar el gestor de arranque para que muestre una denominación distinta en


las opciones de arranque, ej: Mi windous, Linux para practicas, etc...

141
142
Linux Avanzado

Usuarios y Grupos

i Gestión de Usuarios

i Ficheros de Configuración de Usuarios y Grupos

i Comandos Útiles para la Gestión de Usuarios

i Añadiendo Usuarios

i Añadiendo Grupo

i
Vencimiento de Contraseña

Eliminando Usuarios
tema 8
i Poniendo Atributos al Usuario

i Configuración de Grupos y Usuarios con la Herramienta Gráfica


de Red Hat Mandrake 9

Objetivos:
i Configurar grupos y usuarios.

143
144
Gestión de Usuarios

Lo usuarios de los sistemas GNU/Linux tienen asociada una cuenta con todos sus datos,
además del espacio en disco para poder desarrollar sus archivos y directorios.

Hay diferentes tipos de cuentas asociadas a usuarios:

x La del administrador, el usuario root es el que posee más permisos en el sistema.


Este solo debería ser utilizado para las tareas administrativas, ya que este puede
causar daños o errores en el sistema. Así que se recomienda no utilizar dicha
cuenta como un usuario normal.

x Cuentas de usuarios: cuentas para cualquier usuario de la maquina, con


permisos restringidos al uso de los ficheros de su cuenta, además de utilizar los
dispositivos que se le haya habilitado.

x Cuentas especiales de los servicios: lp, news, wheel, www-data,... cuentas que
no son usadas por servicios internos del sistema. Algunos de los servicios
también son usados bajo el nombre de root.

Un usuario se crea mediante la especificación de un nombre (o identificador de usuario),


una palabra de paso (password) y un directorio personal asociado (la cuenta).

Ficheros de Configuración de Usuarios y Grupos

La información de los usuarios del sistema está incluida en los siguientes archivos:

/etc/passwd: Información sobre el usuario.

/etc/shadow: Información de contraseñas de usuarios.

/etc/group: Información de grupos.

/etc/gshadow: Información de contraseñas de grupo.

Ejemplo de unas líneas del /etc/passwd:

juan:x:1000:1000:Juan García,,,:/home/juan:/bin/bash

root:x:0:0:root:/root:/bin/bash

Nota: si aparecen”:” seguidos, el campo está vacío.

x juan: identificador de usuario en el sistema.

x x: palabra de paso del usuario codificada, si hay una “x” es que se encuentra en
el fichero /etc/shadow.

145
x 1000: código del usuario, lo usa el sistema como código de identidad del usuario.

x 1000: código del grupo principal al que pertenece, la información del grupo en
/etc/group.

x Juan García: comentario, suele ponerse el nombre completo del usuario.

x /home/juan: directorio personal asociado a su cuenta.

x /bin/bash: shell interactivo que utilizará el usuario al interactuar con el sistema, en


modo texto, o por shell gráfico. En este caso, el shell Bash de GNU, que es el
utilizado por defecto.

Para evitar que cualquier usuario del sistema pueda acceder al fichero de contraseñas,
existe un fichero donde se encuentra la información de estas, que es sólo accesible al
usuario root y en forma de sólo lectura. El fichero es /etc/shadow, el contenido del cual
podría ser algo parecido a lo siguiente:

juan:a1gNcs82ICst8CjVJS7ZFCVnu0N2pBcn/:12208:0:99999:7:::

donde se encuentra el identificador del usuario junto con la palabra de paso encriptada.
Además, aparecen (como campos separados por “:”):

x Días desde 1 de enero de 1970 en que la palabra de paso se cambió por última
vez.

x Días que faltan para que se cambie (0 no hay que cambiarla).

x Días después en que hay que cambiarla (o sea, plazo de cambio).

x Días en que el usuario será avisado antes de que le expire.

x Días una vez expirado cuando se le deshabilitará la cuenta.

x Días desde 1 enero 1970 en que la cuenta está deshabilitada.

x Y un campo reservado.

En /etc/group está la información de los grupos de usuarios: jose:x:1000:

Donde tenemos: nombre-grupo:contraseña grupo:identificador-del grupo:lista-usuarios

La lista de usuarios del grupo puede estar o no, ya que esa información la tenemos en
/etc/passwd.

Los grupos también pueden poseer una contraseña, también existe un fichero de tipo
shadow: /etc/gshadow.

146
Otros ficheros interesantes son los del directorio /etc/skel, donde se hallan los ficheros
que se incluyen en cada cuenta de usuario al crearla.

Ejemplos: (ficheros de configuración)

Fichero /etc/passwd

root::0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/bin/sh

daemon:x:2:2:daemon:/sbin:/bin/sh

adm:x:3:4:adm:/var/adm:/bin/sh

lp:x:4:7:lp:/var/spool/lpd:/bin/sh

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/bin/sh

news:x:9:13:news:/var/spool/news:/bin/sh

uucp:x:10:14:uucp:/var/spool/uucp:/bin/sh

operator:x:11:0:operator:/var:/bin/sh

games:x:12:100:games:/usr/games:/bin/sh

nobody:x:65534:65534:Nobody:/:/bin/sh

rpm:x:13:101:system user for rpm:/var/lib/rpm:/bin/false

vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

rpc:x:70:70:system user for portmap:/:/bin/false

xfs:x:71:71:system user for xorg-x11:/etc/X11/fs:/bin/false

postfix:x:72:72:system user for postfix:/var/spool/postfix:/bin/false

messagebus:x:73:73:system user for dbus:/:/sbin/nologin

apache:x:74:74:system user for apache2:/var/www:/bin/sh

rpcuser:x:75:75:system user for nfs-utils:/var/lib/nfs:/bin/false

sshd:x:76:76:system user for openssh:/var/empty:/bin/true

147
ftp:x:77:77:system user for proftpd:/var/ftp:/bin/false

postgres:x:78:78:system user for postgresql:/var/lib/pgsql:/bin/bash

inma:x:501:501:Inma:/home/inma:/bin/bash

invitado:x:502:502:Invitado:/home/invitado:/bin/bash

Fichero /etc/shadow

root::12810:0:99999:7:::

bin:*:12810:0:99999:7:::

daemon:*:12810:0:99999:7:::

adm:*:12810:0:99999:7:::

lp:*:12810:0:99999:7:::

sync:*:12810:0:99999:7:::

shutdown:*:12810:0:99999:7:::

halt:*:12810:0:99999:7:::

mail:*:12810:0:99999:7:::

news:*:12810:0:99999:7:::

uucp:*:12810:0:99999:7:::

operator:*:12810:0:99999:7:::

games:*:12810:0:99999:7:::

nobody:*:12810:0:99999:7:::

rpm:!!:12810:0:99999:7:::

vcsa:!!:12810:0:99999:7:::

rpc:!!:12810:0:99999:7:::

xfs:!!:12810:0:99999:7:::

postfix:!!:12810:0:99999:7:::

messagebus:!!:12810:0:99999:7:::

apache:!!:12810:0:99999:7:::

148
rpcuser:!!:12810:0:99999:7:::

sshd:!!:12810:0:99999:7:::

ftp:!!:12810:0:99999:7:::

postgres:!!:12810:0:99999:7:::

inma:$1$hzS96Uy3$Y.IL.IuJ2hV9OX9yotorO.:12810:0:99999:7:::

invitado:$1$bIP.KWXT$w2SOOfwhXJ0OYaIYu28YY1:12810:0:99999:7:::

Comandos Útiles para la Gestión de Usuarios


x useradd: añadir un usuario al sistema.

x userdel: borrar un usuario del sistema.

x usermod: modificar un usuario del sistema.

x groupadd, groupdel, groupmod lo mismo para grupos.

x newusers, chpasswd: permiten crear varias cuentas desde la información


introducida en un fichero (newusers) o bien cambiar las contraseñas a un gran
número de usuarios (chpasswd)

x chsh: cambiar el shell de login del usuario.

x chfn: cambiar la información del usuario, la presente en el comentario del fichero


/etc/passwd.

x passwd: cambia la contraseña de un usuario.

x su: una especie de cambio de identidad. Lo utilizan tanto usuarios, como el root
para cambiar el usuario actual.

NOTA: Para más detalle de cada uno de estos comandos, consulte el man.

Añadiendo Usuarios
Para añadir un usuario al sistema:

x Comando useradd para crear una cuenta de usuario bloqueada:

useradd <username>

x Desbloquee la cuenta ejecutando el comando passwd para asignar una


contraseña y configurar el vencimiento:

passwd <username>

Opciones del comando useradd.

149
Opción Descripción

-c comentario Comentario para el usuario

-d home-dir Directorio principal a ser usado en vez del directorio


predeterminado /home/nombredeusuario

-e fecha Fecha en que la cuenta será desactivada usando el formato de


fecha YYYY-MM-DD

-f días Número de días que pasarán después que la contraseña ha


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

-g nombredegrupo Nombre o número del grupo para el grupo predeterminado del


usuario (El grupo debe existir.)

-G listadegrupo Lista de nombres de los grupos adicionales (además del


predeterminado), separados por comas, de los cuales el
usuario es miembro (Los grupos deben existir.)

-m Crea el directorio principal si no existe

-M No crea el directorio principal

-n No crea un grupo de usuario privado para el usuario

-r Crea una cuenta de sistema con un UID menor que 500 y


dentro del directorio principal.

-p contraseña La contraseña encriptada con crypt

-s Línea de comando de conexión del usuario, predeterminada a


/bin/bash

-u uid ID de usuario, el cual debe ser único y mayor que 499

150
EXPLICACIÓN DEL PROCESO
¿Qué ocurre al escribir useradd juan?

1. Se crea una línea para juan en /etc/passwd. La línea tiene:

x Comienza con el nombre del usuario, juan.

x Hay una x para el campo de contraseña indicando que es sistema está usando
contraseñas ocultas.

x Se crea un UID en o sobre 500.

x Se crea un GID en o por encima de 500.

x La información para el GECOS óptimo se deja en blanco.

x El directorio principal se configura a /home/juan/.

x El intérprete de comandos predeterminado se configura a /bin/bash.

2. Se crea una nueva línea para juan en /etc/shadow. La línea tiene:

x Comienza con el nombre del usuario, juan.

x Aparecen dos símbolos de exclamación (!!) en el campo de la contraseña, lo cual


bloquea la cuenta.

x Se configura la contraseña para que no caduque nunca.

3. Se crea una nueva línea para un grupo llamado juan en /etc/group.

La línea creada en /etc/group tiene:

x Comienza con el nombre del grupo, juan.

x Aparece una x en el campo de contraseña indicando que el sistema está usando


contraseñas de grupo oculta.

x El GID coincide con el listado para el usuario juan en /etc/passwd.

4. Es creada una nueva línea para un grupo llamado juan en /etc/gshadow. La línea
tiene:

x Comienza con el nombre del grupo, juan.

x Aparece un símbolo de exclamación (!) en el campo de contraseña del archivo


/etc/gshadow, lo cual bloquea el grupo.

x Todos los otros campos quedan en blanco.

5. Se crea un directorio para el usuario juan en el directorio /home/.

6. Los archivos dentro del directorio /etc/skel/ (lo cual contiene configuraciones
predeterminadas del usuario) son copiadas en el nuevo directorio /home/juan/.

151
Añadiendo Grupo

Comando groupadd:

groupadd <nombredegrupo>

Opciones del comando groupadd

Opción Descripción

-g gid ID para el grupo, el cual debe ser único y mayor que 499.

-r Crea un grupo de sistema con un GID menor que 500.

-f Sale con un error si el grupo ya existe. (El grupo no es


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

Ejemplos: (ficheros de configuración)

Fichero /etc/group

root:x:0:

bin:x:1:

daemon:x:2:messagebus

sys:x:3:

adm:x:4:

tty:x:5:

disk:x:6:

lp:x:7:

mem:x:8:

kmem:x:9:

wheel:x:10:

mail:x:12:

news:x:13:

uucp:x:14:

man:x:15:

152
floppy:x:19:

games:x:20:

cdrom:x:22:

utmp:x:24:

usb:x:43:

cdwriter:x:80:

audio:x:81:

video:x:82:

users:x:100:

nogroup:x:65534:

rpm:x:101:

xgrp:x:102:xfs

ntools:x:103:

ctools:x:104:

vcsa:x:69:

rpc:x:70:

xfs:x:71:

postfix:x:72:

postdrop:x:105:postfix

messagebus:x:73:

apache:x:74:

rpcuser:x:75:

sshd:x:76:

machines:x:421:

slocate:x:422:

ftp:x:77:

153
postgres:x:78:

inma:x:501:

invitado:x:502:

Fichero /etc/gshadow

root:::

bin:::

daemon:::messagebus

sys:::

adm:::

tty:::

disk:::

lp:::

mem:::

kmem:::

wheel:::

mail:::

news:::

uucp:::

man:::

floppy:::

games:::

cdrom:::

utmp:::

usb:::

cdwriter:::

audio:::

154
video:::

users:::

nogroup:::

rpm:!::

xgrp:!::xfs

ntools:!::

ctools:!::

vcsa:!::

rpc:!::

xfs:!::

postfix:!::

postdrop:!::postfix

messagebus:!::

apache:!::

rpcuser:!::

sshd:!::

machines:!::

slocate:!::

ftp:!::

postgres:!::

155
Vencimiento de Contraseña

Para configurar el vencimiento de la contraseña para un usuario desde el intérprete de


comandos, usaremos el comando chage, seguido de una opción de la tabla, seguido por
el 'nombredeusuario' del usuario.

Importante: La contraseña oculta debe estar activada para poder usar el comando
chage.

Opción Descripción

-m días Especifica el número mínimo de días entre los cuales el


usuario debe cambiar su contraseña. Si el valor es 0, la
contraseña no caduca.

-M días Especifica el número máximo de días durante los cuales la


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

-d días Especifica el número de días desde Enero 1, 1970 que la


contraseña fue cambiada.

-I días Especifica el número de días inactivos después de la


expiración de la contraseña antes de bloquear la cuenta. Si el
valor es 0, la cuenta no es bloqueada después que la
contraseña caduca.

-E fecha Especifica la fecha en la cual la cuenta es bloqueada, en el


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

-W días Especifica el número de días antes de la fecha de expiración


de la contraseña para advertir al usuario.

Para obligar al usuario a configurar su contraseña la primera vez que se conecte en la


consola, siga los pasos siguientes.

1. Bloquear la contraseña del usuario — Si el usuario no existe, use el comando useradd


para crear la cuenta del usuario.

Si la contraseña ya está activa, bloquéela con el comando:

usermod -L nombredeusuario

2. Obligar el vencimiento inmediato de la contraseña — Escriba el comando siguiente:

chage -d 0 nombredeusuario

156
3. Este comando coloca el valor para la fecha en que la contraseña fue cambiada la
última vez (Enero 1, 1970).

4. Desbloquear la cuenta — Hay dos formas. El administrador puede asignar una


contraseña inicial o puede asignar una contraseña nula.

5. Para asignar una contraseña inicial:

x Arranque el intérprete de línea de comandos python con el comando python. Se


mostrará lo siguiente:

Python 2.2.2 (#1, Dec 10 2002, 09:57:09)

[GCC 3.2.1 20021207 (Red Hat Linux 8.0 3.2.1-2)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>>

x En la línea de comandos, escriba lo siguiente (sustituyendo contraseña con la


contraseña a encriptar y salt con una combinación de exactamente 2 caracteres
en mayúsculas o minúsculas, números, y el carácter punto (.) o la barra (/)):

import crypt; print

crypt.crypt("password","salt")

x La salida es la contraseña encriptada similar a 12CsGd8FRcMSM.

x Presione [Ctrl]-[D] para salir del intérprete Python.

x Corte o pegue la salida exacta de la contraseña encriptada, sin dejar espacios en


blanco al principio o final, en el siguiente comando:

usermod -p "contraseña-encriptada"

nombredeusuario

6. Se puede asignar una contraseña nula con el comando:

usermod -p "" username

7. En cualquier caso, luego de la conexión inicial, se le pedirá al usuario una nueva


contraseña.

157
Eliminando Usuarios

Borrar usuarios puede hacerse con los comandos userdel o deluser dependiendo de qué
software fuera instalado en el sistema. Y se hace de la misma forma que añadir.

Por ejemplo: cambiando la línea de /etc/passwd correspondiente a kiwi a


kiwi:*Xv8Q981g71oKK:102:100: Laura Poole: /home/kiwi: /bin/bash evitará que kiwi se
conecte. También podemos usar el comando: userdel <nombre_usuario>

Poniendo Atributos al Usuario

Después de que haya creado un usuario, puede necesitar cambiar algún atributo de
dicho usuario, como puede ser el directorio inicial o la clave. La forma más simple de
hacer esto es cambiar los valores directamente en /etc/passwd. Para poner clave a un
usuario, utilice el comando passwd.

Por ejemplo: # passwd larry cambiará la clave de larry.

Sólo root puede cambiar la clave de otro usuario de ésta forma. Los usuarios pueden
cambiar su propia clave con passwd también.

Configuración de Grupos y Usuarios con la


Herramienta Gráfica de Red Hat Mandrake 9

CONFIGURACIÓN DE GRUPOS Y DE USUARIOS


El Administrador de usuarios le permite visualizar, modificar, añadir y borrar los usuarios
y grupos locales. Para usar el Administrador de usuarios, debe estar ejecutando el
sistema X Window y tener privilegios de root y tener el paquete RPM redhat-config-
users instalado. Para iniciar el Administrador de usuarios desde el escritorio, Botón del
menú principal (en el Panel) => Configuración del sistema => Gestor de usuarios o
escriba el comando redhat-config-users en el intérprete del shell.

Figura 1: Administrador de usuarios

158
Para visualizar una lista de usuarios la pestaña Usuarios. Para visualizar lista de todos
los grupos pestaña Grupos.

Si necesita encontrar un usuario o grupo específico, teclee las primeras letras del
nombre en el campo Buscar filtro.

Para clasificar usuarios y grupos, haga clic en el nombre de la columna. Usuarios y


grupos serán clasificados por el valor de la columna.

Red Hat Linux reserva los IDs de usuario por debajo de 500 para los usuarios del
sistema. Por defecto, el Administrador de usuarios no visualiza los usuarios del sistema.
Para visualizar todos los usuarios, incluyendo los usuarios del sistema, Preferencias =>
Sistema de filtrado de usuarios y grupos desde el menú desplegadle.

AÑADIR UN NUEVO USUARIO


Para añadir un nuevo usuario, haga clic en el botón Añadir usuario. Escriba el nombre de
usuario y el nombre completo para el nuevo usuario en los campos apropiados. Teclee la
contraseña de usuario en los campos Contraseña y Confirmar contraseña.

Seleccione una shell de registro. El directorio principal por defecto es


/home/nombredeusuario. Puede cambiar el directorio principal que se ha creado para el
usuario o puede escoger no crear el directorio principal anulando la selección Crear
directorio de conexión.

Red Hat Linux utiliza un esquema grupo de usuario privado (UPG). El esquema UPG no
añade ni cambia nada en el modo estándar de UNIX de gestionar grupos. Siempre que
cree un nuevo usuario, por defecto, se crea un grupo único con el mismo nombre que el
del usuario

Para especificar el ID del usuario, seleccione Especificar el ID del usuario manualmente.


Si la opción no ha sido seleccionada, se asignará al nuevo usuario el próximo ID del
usuario disponible que empiece con el número 500. Red Hat Linux se reserva los IDs de
usuario por debajo de 500 para los usuarios de sistemas. Pulse OK para crear el usuario.

Figura 2. Nuevo usuario

159
MODIFICAR LAS PROPIEDADES DEL USUARIO
Para ver las propiedades de un usuario ya existente, haga clic en la pestaña Usuarios,
seleccione el usuario de la lista de usuarios y haga clic en Propiedades desde el menú de
botones (o escoja Fichero => Propiedades desde el menú desplegadle). Aparecerá una
ventana parecida a la Figura 3.

Figura 3. Propiedades del usuario

La ventana Propiedades de los usuarios está dividida en dos páginas:

x Datos de Usuario — Información básica del usuario configurada cuando ha


añadido el usuario.

x Información de la cuenta

x Información de la contraseña — Esta pestaña muestra la fecha en que el usuario


cambió la contraseña por última vez.

x Grupos — Seleccione los grupos de los que desea que el usuario sea miembro.

AÑADIR UN NUEVO GRUPO


Pulse el botón Añadir Grupo. Aparecerá
una ventana parecida a la Figura 4 nombre
del grupo nuevo que desea crear. Para
especificar un ID de grupo para el nuevo
grupo seleccione Especificar el ID de grupo
manualmente y seleccione el GID. Red Hat
Linux reserva los IDs de grupo menores de
500 para los grupos de sistemas.

Figura 4. Nuevo grupo

160
Pulse OK para crear el grupo. Aparecerá un grupo nuevo en la lista.

MODIFICAR LAS PROPIEDADES DEL GRUPO


Para ver las propiedades de un grupo ya existente, seleccione el grupo desde la lista de
grupos y pulse Propiedades desde el menú (o seleccione Archivo => Propiedades desde
el menú desplegadle). Aparecerá una ventana similar a la Figura 5.

Figura 5. Propiedades del grupo

161
LO QUE HEMOS APRENDIDO
‡ Los usuarios de un sistema GNU/Linux disponen normalmente de una cuenta
asociada con sus datos, junto con el espacio en disco para que puedan
desarrollar sus archivos y directorios. Este espacio está asignado al usuario, y
sólo puede ser usado por éste (a no ser que los permisos especifiquen cosas
diferentes).

‡ Existen tres tipos de cuentas: las del administrador, las del usuario y cuentas
especiales de los servicios.

‡ Los ficheros de configuración de grupos y usuarios son: /etc/passwd,


/etc/shadow, /etc/group y /etc/gshadow. El único que tiene permisos para
modificar estos ficheros es el usuario root.

‡ Los comandos que utilizamos para la gestión de usuarios son: useradd, userdel,
usermod, groupadd, groupdel, groupmod, newusers, chpasswd, chsh, chfn,
passwd, su.

162
ANOTACIONES
.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

163
TEST
Marcar la respuesta correcta.

1. ¿Dónde tenemos las contraseñas de los usuarios encriptadas?


† /etc/shadow.
† /etc/gshadow.
† /etc/passwd.

2. ¿Qué hace este comando: Useradd –g cursos –d /home/pepe –m pepe?


† Añade un usuario pepe al grupo cursos que solo puede tener acceso al directorio
/home/pepe.
† Añade un usuario pepe a cualquier grupo, cuyo directorio home es /home/pepe.
† Añade un usuario pepe al grupo cursos, cuyo directorio home es /home/pepe y,
además, forzando que use los ficheros que se encuentran en /etc/skel.

3. ¿Qué comando nos añadiría un usuario luis con el directorio home, /home/luis/ en el
grupo por defecto?
† useradd –g luis –d /luis luis.
† useradd –g luis –d /home/luis luis.
† useradd –d /home/luis luis.

4. ¿Qué información contiene cada una de las líneas del fichero shadow?
† Contraseña encriptada, días de vencimiento de la contraseña, días desde
01/01/1700 que se creo el usuario.
† Identificador del usuario, palabra de paso encriptada, días desde 01/01/1700 que
la palabra de paso se cambió por ultima vez, días que faltan para que se cambie.
† Identificador del usuario, palabra de paso encriptada, días desde 01/01/1700 que
la palabra de paso se cambió por ultima vez, días que faltan para que se cambie,
días después en que hay que cambiarla, días en que el usuario será avisado
antes de que le expire., Días una vez expirado cuando se le deshabilitará la
cuenta.

5. ¿Qué contiene el fichero /etc/skel?


† La estructura de ficheros de cada cuenta de usuario.
† Los ficheros que se incluyen en cada cuenta al crearla.
† Los ficheros que va creando cada usuario desde que se creo la cuenta.

6. ¿Qué paquete debes tener instalado en la distribución Red Had Linux 9 para tener la
herramienta gráfica de administración de usuarios?
† redhat-config-users.
† redhat-config-users-groups.
† redhat-users.

164
ACTIVIDADES
1. Añade un usuario al sistema, especificando una carpeta de trabajo distinta del
nombre del usuario.

2. Añade otro usuario pero sin crear la carpeta del sistema.

3. Añade un grupo.

4. Cambia el grupo del usuario con carpeta de trabajo al grupo creado.

5. Cambia la contraseña del usuario anterior.

6. Borra el usuario sin carpeta del sistema.

165
166
Linux Avanzado

Administración de Paquetes

i Herramientas de Gestión de Paquetes

i Paquetes TGZ

i Red Hat Paquetes RPM

i Debian: Paquetes DEB

i Administración de Paquetes en Red Hat Linux Mandrake 9

Objetivos:
tema 9
i Instalar cualquier utilidad que nos sea necesaria.

i Descubrir todas las posibles formas de instalación.

167
168
Herramientas de Gestión de Paquetes

Los paquetes son el elemento básico para tratar las tareas de instalación de nuevo
software, actualización del existente o eliminación del no utilizado.

Los paquetes suelen estar agrupados por categorías como:

x base: paquetes necesarios para el funcionamiento del sistema.

x sistema: útiles de administración, comandos de utilidad.

x desarrollo: útiles de programación: editores, compiladores, depuradores,...

x gráficos: controladores e interfaces gráficas, escritorios, gestores de ventanas,…

x otras categorías.

Para la instalación de un paquete hay que seguir los siguientes pasos:

1. Previo (preinstalación): comprobar que existe el software necesario (y con las


versiones correctas) para su funcionamiento (dependencias).

2. Descomprimir el contenido del paquete, copiando los ficheros a sus localizaciones


definitivas.

3. Postinstalación: retocar los ficheros necesarios, configurar posibles parámetros del


software, adecuarlo al sistema ...

Nota: Un paquete es un conjunto de ficheros que forman una aplicación o una unión de
varias aplicaciones relacionadas, formando un único fichero (denominado paquete), con
un formato propio y normalmente comprimido.

Dependiendo de los tipos de paquetes, se pueden hacer automáticamente o a mano,


dependiendo de las herramientas que proporcione la distribución.

Paquetes TGZ

Estos paquetes son los que utilizaban las primeras distribuciones de GNU/Linux para
instalar el software, y, hoy en día, varias distribuciones los usan. Son varios ficheros
unidos por el comando tar en un único fichero .tar, el cual luego ha sido comprimido con
la utilidad gzip, suele aparecer con la extensión .tgz o bien .tar.gz. También se puede
encontrar los tar.bz2, que la única deferencia con los anteriores es que utilizan el bzip2
para comprimir.

Recuerda: Estos paquetes no contienen información sobre dependencias, y pueden


presentar el contenido tanto en código binario como código fuente.

169
Es un formato muy utilizado.

En el proyecto GNU, se distribuye su software en este formato (en forma de código


fuente), ya que puede utilizarse en cualquier UNIX, ya sea un sistema propietario, una
variante BSD o una distribución GNU/Linux.

Si el paquete viene dado en formato binario, tendremos que tener en cuenta que sea el
correcto para nuestro sistema. Por ejemplo:

mozilla-i686-pc-linux-gnu-1.4-installer.tar.gz

x Nombre del paquete: Mozilla.

x Arquitectura a la que va destinado: i686 (Pentium II o superiores o compatibles),


podría ser i386, i586, i686, k6 (amd k6), k7 (amd athlon) otras para máquinas
sparc, powerpc, hppa,...

x Indica que es para Linux en una maquina pc: pc-linux.

x Versión software: 1.4

Si fuese en formato fuente, suele aparecer como:

mozilla-source-1.4.tar.gz

x Nombre del paquete: Mozilla.

x Fichero fuente: source.

x No indica arquitectura: significa que está preparado para compilarse en diferentes


arquitecturas.

De otro modo, habría diferentes códigos para cada sistema operativo o fuente: Linux,
Solaris, Irix, bsd,...

El proceso básico con estos paquetes es:

1. Descomprimir el paquete:

tar -zxvf fichero.tar.gz (o fichero.tgz)

Las opciones significan: z: descomprimir, x: extraer ficheros, v: ver proceso, f: fichero


por tratar.

También se puede hacer por separado (sin la z del tar):

gunzip fichero.tar.gz (nos deja un fichero tar)

tar -xvf fichero.tar

170
2. Cuando descomprimimos tenemos los ficheros correspondientes al software,
normalmente encontraremos un fichero readme o install en el que se nos explicará
los pasos para la instalación y las posibles dependencias existentes.

Lo primero verificar las dependencias por si disponemos del software adecuado, y si no,
buscarlo e instalarlo.

Cuando son paquetes binarios la instalación es más fácil, ya que o es ejecutable


directamente y donde lo dejemos funciona, o traerá un instalador propio.

Tenemos otro caso en el que lo que tenemos es el código fuente. Estos, antes de ser
instalados, tendrán que ser compilados.

Habrá que leer las instrucciones del programa para saber como se debe hacer.

Aunque la mayoría de los desarrolladores GNU tienen un autoconf, donde debemos


seguir los siguientes pasos:

x ./configure: script que configura el código para poder ser compilado en nuestra
máquina, verifica que existan las herramientas adecuadas. La opción --prefix =
directorio permite especificar dónde se instalará el software.

x make: compilación.

x make install: instalación del software a un lugar adecuado, normalmente


especificado previamente como opción al configure o asumida por defecto.

Éste es un proceso general, pero depende del software que lo siga o no, hay casos
bastante peores donde todo el proceso se tiene que realizar a mano, compilando uno a
uno los ficheros, pero esto, por suerte, es cada vez menos habitual.

Cuando queremos borrar el software instalado, hay que utilizar el desinstalador si nos lo
proporcionan, si no, borrar directamente el directorio o ficheros que se instalaron,
teniendo cuidado con las dependencias.

Los paquetes tgz son bastante habituales como mecanismo de backup en tareas de
administración.

Supongamos que queremos guardar la copia de un directorio, lo podríamos hacer con


un solo comando.

tar -zcvf dir.tgz dir > El resultado será un fichero dir.tar.gz.

171
Red Hat Paquetes RPM
Nota: El sistema de paquetes RPM creado por Red Hat supone un paso adelante, ya que
incluye la gestión de dependencias y tareas de configuración del software. Además, el
sistema guarda una pequeña base de datos con los paquetes ya instalados, que puede
consultarse y se actualiza con las nuevas instalaciones.

Los paquetes RPM suelen usar un nombre como:

paquete-versión-rev.arq.rpm

x paquete es el nombre del software.

x versión es la versión del software.

x Rev: suele ser la revisión del paquete RPM, que indica las veces que se ha
construido.

x arq: la arquitectura a la que va destinado el paquete. La ejecución típica incluye


la ejecución de rpm, las opciones de la operación a realizar, junto con uno o más
nombres de paquetes por procesar juntos.

Ejemplo: El paquete: apache-1.3.19-23.i686.rpm indicaría que se trata del software


Apache (el servidor web), en su versión 1.3.19, revisión del paquete RPM 23, para
arquitecturas Pentium II o superiores.

Las operaciones típicas con los paquetes RPM incluyen:

x Información del paquete.

Por ejemplo, preguntas a un paquete instalado:

rpm –qpl <paquete.rpm> Lista de los archivos que contiene


rpm –qpi <paquete.rpm> Descripción del paquete
rpm –qpR <paquete.rpm> Requisitos previos, bibliotecas o software

x Instalación: simplemente rpm -i paquete.rpm.

x Actualización: equivalente a la instalación pero comprobando primero que el


software ya existe rpm -u paquete.rpm. Se encargará de borrar la instalación
previa.

x Verificación: Mediante rpm -V paquete verificamos un paquete concreto, y


mediante rpm -Va los verificará todos.

x Eliminación: rpm –e paquete.rpm o rpm –uninstall paquete.rpm. Comprobará si


hay dependencias y nos avisa, si queremos evitar esta comprobación usaremos
la opción -–nodeps.

Existe la posibilidad de trabajar con paquetes remotos, que pueden descargarse


desde servidores FTP o web.

172
Ejemplo: rpm -i ftp://sitio/directorio/paquete.rpm nos permitiría descargar el paquete
desde el sitio ftp o web proporcionado, con su localización de directorios, y proceder en
este caso a la instalación del paquete.

Hay que observar bien la procedencia de los paquetes, debemos obtener las fuentes de
sitios conocidos y fiables.

En cRed Hat (y también en Fedora), RPM es el formato por defecto de paquetes y el que
usa ampliamente la distribución para las actualizaciones, y la instalación de software. En
Debian se utiliza el formato DEB, hay soporte para RPM (existe el comando rpm), pero
sólo para consulta o información de paquetes.

Nota: Ver: www.rmpfind.net

Nota: En la Mandrake existe una herramienta muy útil para la instalación de paquetes
RPM, urpmi.

Debian: Paquetes DEB

Debian tiene herramientas interactivas como tasksel, que permiten escoger unos
subconjuntos de paquetes agrupados por tipo de tareas, o como dselect que permite
navegar por toda la lista de paquetes disponible , y escoger aquellos que queramos
instalar o desinstalar.

Tenemos el comando dpkg, que gestiona directamente los paquetes DEB de software,
dpkg -i paquete.deb para realizar la instalación.

Otra herramienta es el APT (la mayoría son comandos apt-xxx), que gestionan los
paquetes a través de una lista de paquetes actuales y disponibles a partir de varias
fuentes de software (CD de la instalación, sitios ftp o web).

La configuración se realiza desde los archivos disponibles en /etc/apt, donde


/etc/apt/sources.list es la lista de fuentes disponibles; un ejemplo:

http://http.us.debian.org/debian stable main contrib non-free

deb 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

debsrc http://http.us.debian.org/debian stable main contrib non-free

debsrc http://nonus.debian.org/debian-non-US stable non-US

#Sources Oficiales de Debian STABLE “Woody”

deb http://ftp.debian.org/debian/ woody main non-free contrib

173
debsrc http://ftp.debian.org/debian/ woody main non-free contrib

deb http://non-us.debian.org/debian-non-US woody/non-US main contrib non-free

debsrc http://non-us.debian.org/debian-non-US woody/non-US main contrib non-free

Nota: Los paquetes DEB de Debian es quizás el sistema de instalación más potente
existente en GNU/Linux.

Los paquetes de software están disponibles para las diferentes distribuciones Debian,
existen paquetes para las versiones stable, testing, y unstable.

Una vez todo configurado la herramienta para manejar los paquetes en el sista es apt-
get, para instalar, actualizar o borrar. Existe otra herramienta, aptitude, que posee un
interfaz de opciones casi igual, pero aporta mejor gestión de dependencias de paquetes.
Otra herramienta útil es el comando apt-cache, que nos permite interactuar con las listas
de paquetes de software Debian.

Ejemplo: La herramienta apt-cache dispone de comandos que nos permiten buscar


información sobre los paquetes:

x Buscar paquetes sobre la base de un nombre incompleto: apt-cache search


nombre

x Mostrar la descripción del paquete: apt-cache show paquete

Otras tareas más específicas necesitarán realizarse con la herramienta de más bajo nivel,
como dpkg. Cabe destacar que el software APT es muy flexible y potente a la hora de
gestionar las actualizaciones, y poco a poco se está imponiendo en las distribuciones.
Por ejemplo, en la actual Fedora se puede utilizar para gestionar la instalación de
paquetes RPM.

Administración de Paquetes en Red Hat Linux


Mandrake 9

Todo el software en un sistema Red Hat Linux está dividido en paquetes RPM los cuales
pueden ser instalados, actualizados o eliminados.

EL USO DE RPM
RPM tiene cinco modos de operación básicos: instalación, desinstalación, actualización,
consulta y verificación.

ENCONTRAR PAQUETES RPM

Los paquetes RPM se pueden encontrar en los siguientes sitios:

x Los CD-ROMs Red Hat Linux oficiales

174
x La página de errata de Red Hat a disposición en
http://www.redhat.com/apps/support/errata/

x Existe un sitio espejo FTP de Red Hat en


http://www.redhat.com/download/mirror.html

x Red Hat Network

INSTALACIÓN DE RPM

Los paquetes RPM tienen nombres de archivo como foo-1.0-1.i386.rpm. El nombre de


paquete (foo), versión (1.0), lanzamiento (1) y arquitectura (i386).

Las instalaciones realiza de la siguiente forma:

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

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

Preparing... ########################################### [100%]


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

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

Si empieza con la versión 4.1 del RPM, la firma del paquete se autentica en el momento
de la instalación o de la actualización del paquete.

Si la verificación de la firma falla, verá el siguiente mensaje de error:

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

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

error: Header V3 DSA signature: BAD, key ID


0352860f

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

warning: V3 DSA signature: NOKEY, key ID


0352860f

175
PAQUETE YA INSTALADO

Cuando ya está instalado:

Preparing... ########################################### [100%]


package foo-1.0-1 is already installed

Si desea instalar un paquete ya instalado, se puede usar la opción –replacepkgs para


instalarlo.

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

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

ARCHIVOS EN CONFLICTO

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

Preparing... ########################################### [100%]


file /usr/bin/foo from install of foo-1.0-1 conflicts with file from package
bar-2.0.20

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

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

DEPENDENCIAS RESUELTAS

Si intenta instalar un paquete que tiene una dependencia no resuelta, verá lo siguiente:

Preparing... ########################################### [100%]


error: Failed dependencies:
bar.so.2 is needed by foo-1.0-1
Suggested resolutions:
bar-2.0.20-3.i386.rpm

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

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

Preparing... ########################################### [100%]


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

176
Si no se le sugiere resolver la dependencia, puede intentar usar la opción --
redhatprovides para determinar el paquete que contenga el archivo requerido. Necesita
instalar el paquete rpmdb-redhat para usar esta opción.

rpm -q --redhatprovides bar.so.2

Si el paquete que contiene el archivo bar.so.2 se encuentra en la base de datos instalada


del paquete rpmdb-redhat aparecerá el nombre del paquete:

bar-2.0.20-3.i386.rpm

DESINSTALACIÓN

Desinstalar un paquete es tan simple como instalarlo:

rpm -e foo

Podría encontrarse con un error de dependencia cuando esté desinstalando un paquete


si otro paquete instalado depende del que está tratando de eliminar. Por ejemplo:

Preparing... ########################################### [100%]


error: removing these packages would break dependencies:
foo is needed by bar-2.0.20-3.i386.rpm

ACTUALIZACIÓN

Actualizar un paquete es parecido a instalarlo. Teclee el siguiente comando en un


intérprete de comandos de la shell:

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

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

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

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

La actualización es en realidad una combinación de las actividades de desinstalación e


instalación, así que durante una actualización RPM, podrá encontrar errores de
desinstalación e instalación, además de cualquier otro tipo de error.

177
Si RPM cree que usted está tratando de actualizar a un número de versión de paquete
más antiguo, aparecerá lo siguiente:

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

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

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

REFRESCAMIENTO

Refrescar un paquete es parecido a actualizarlo:

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

Esta opción compara las versiones de los paquetes especificados en la línea de


comandos con las versiones de los paquetes que ya han sido instalados en su sistema.
Pero la opción de refrescamiento de RPM no instalará un paquete si no existe un
paquete previamente instalado del mismo nombre. Esta es una de las diferencias con la
actualización.Con este comando RPM actualizará automáticamente sólo los paquetes
que ya estén instalados.

rpm -Fvh *.rpm

CONSULTAS

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

foo-2.0-1

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

x -a consulta todos los paquetes actualmente instalados.

x -f <file> consultará el paquete que posea <file>. Cuando especifique un archivo,


deberá especificar la ruta completa del archivo (/usr/bin/ls, por ejemplo).

x -p <packagefile> consulta el paquete <packagefile>.

Hay varias maneras de especificar qué información mostrar sobre los paquetes
consultados:

x -i muestra información del paquete como el nombre, la descripción, la versión, el


tamaño, la fecha de construcción, la fecha de instalación, el distribuidor, y otra
información miscelánea.

178
x -l muestra la lista de archivos contenidos en el paquete.

x -s muestra el estado de todos los archivos en el paquete.

x -d muestra una lista de archivos marcados como documentación (páginas de


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

x -c muestra una lista de archivos marcados como archivos de configuración. Estos


son los archivos que usted cambia después de la instalación para adaptar el
paquete a su sistema (como sendmail.cf, passwd, inittab, etc.).

VERIFICACIÓN

La verificación consiste en comparar información de archivos instalados con la


información original de paquete.

El comando rpm -V verifica un paquete. Un modo sencillo de verificar es rpm -V foo, que
verifica si todos los archivos en el paquete foo se encuentran en el mismo estado en que
estaban cuando originalmente fueron instalados. Por ejemplo:

x Para verificar un paquete que contiene un determinado archivo:

rpm -Vf /bin/vi

x Para verificar TODOS los paquetes instalados:

rpm -Va

x Para verificar un paquete instalado contra un archivo de paquete RPM

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

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

Si todo fue verificado correctamente, no habrá salida. Si se encuentran discrepancias,


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

x 5 — MD5 suma de verificación

x S — tamaño de archivo

x L — enlace simbólico

179
x T — hora de modificación de archivo

x D — dispositivo

x U — usuario

x G — grupo

x M — modo (incluye permisos y tipos de archivos)

x ? — archivo que no se puede leer

IMPRESIONE A SUS AMIGOS CON RPM

Vamos a exponer algunos ejemplos para que comprenda mejor todas las utilidades de
las herramientas RPM.

x Si ha borrado algunos archivos accidentalmente, pero no está seguro de lo que ha


eliminado. Para verificar su sistema entero y ver lo que podría hacer falta, utilice
el comando siguiente:

rpm –Va

x Si faltan algunos archivos o parecen dañados, debería reinstalar el paquete o


desinstalarlo y luego reinstalarlo.

x Cuando vea un archivo que no reconoce. Para saber a qué paquete pertenece,
teclearía:

rpm -qf /usr/X11R6/bin/ghostview

x La salida es parecida a lo siguiente:

gv-3.5.8-22

x Estamos teniendo problemas con /usr/bin/paste. Para verificar el paquete al cual


pertenece ese programa, pero no sabe a cuál paquete pertenece paste.
Simplemente teclee el siguiente comando:

rpm -Vf /usr/bin/paste

x ¿Desea encontrar más información sobre un determinado programa?

rpm -qdf /usr/bin/free

180
x La salida debería ser parecida a la siguiente:

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

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

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

x La salida es parecida a lo siguiente:

Name: crontabs Relocations: (not relocateable)


Version: 1.10 Vendor: Red Hat, Inc.
Release: 5 Build Date: Fri 07 Feb 2003 04:07:32
PM EST
Install date: (not installed) Build Host: porky.devel.redhat.com
Group: System Environment/Base Source RPM: crontabs-1.10-5.src.rpm
Size: 1004 License: Public Domain
Signature: DSA/SHA1, Tue 11 Feb 2003 01:46:46 PM EST,
Key ID fd372689897da07a
Packager: Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Summary: Root crontab files used to schedule the execution of programs.
Description:
The crontabs package contains root crontab files. Crontab is the
program used to install, uninstall, or list the tables used to drive the
cron daemon. The cron daemon checks the crontab files to see when
particular commands are scheduled to be executed. If commands are
scheduled, then it executes them.

181
x Quizás desea ver qué archivos instala el RPM crontabs.

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

x La salida será de la siguiente manera:

Name: crontabs Relocations: (not relocateable)


Version: 1.10 Vendor: Red Hat, Inc.
Release: 5 Build Date: Fri 07 Feb 2003 04:07:32
PM EST
Install date: (not installed) Build Host: porky.devel.redhat.com
Group: System Environment/Base Source RPM: crontabs-1.10-5.src.rpm
Size: 1004 License: Public Domain
Signature: DSA/SHA1, Tue 11 Feb 2003 01:46:46 PM EST,
Key ID fd372689897da07a
Packager: Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Summary: Root crontab files used to schedule the execution of programs.
Description:
The crontabs package contains root crontab files. Crontab is the
program used to install, uninstall, or list the tables used to drive the
cron daemon. The cron daemon checks the crontab files to see when
particular commands are scheduled to be executed. If commands are
scheduled, then it executes them.

Estos son solamente algunos ejemplos. Al usarlo, descubrirá muchos más usos para
RPM.

HERRAMIENTA GRÁFICA DE ADMINISTRACIÓN DE PAQUETES


Durante la instalación, los usuarios seleccionan un tipo de instalación como por ejemplo
Estación de trabajo o Servidor. Los paquetes de software son instalados basándose en
esta selección.

Los usuarios usan los ordenadores de forma distinta, algunos desearán instalar o
eliminar paquetes tras la instalación.

La Herramienta de administración de paquetes permite a los usuarios ejecutar estas


acciones.

Se requiere el sistema X Window para ejecutar la aplicación Herramienta de


administración de paquetes. Botón de menú principal (en el Panel) => Configuración del
sistema => Paquetes, o escriba el comando redhat-config-packages en el intérprete de
comandos.

182
Figura 33-1. Herramienta de administración de paquetes

Los paquetes están divididos en grupos de paquetes, que contienen una lista de
paquetes estándar y paquetes extra que comparten funcionalidades comunes. Los
paquetes estándar no pueden ser seleccionados para eliminar a menos que el grupo de
paquetes entero sea eliminado. Los paquetes extra son opcionales y pueden ser
seleccionados para la instalación o la eliminación, siempre y cuando el grupo de
paquetes sea seleccionado.

INSTALACIÓN DE PAQUETES

Para instalar los paquetes estándar en un grupo de paquetes que no esté instalado en la
actualidad, compruebe la casilla de verificación.

Para personalizar los paquetes que van a ser instalados dentro del grupo, haga clic en el
botón Detalles. La lista de paquetes estándar y extra está visualizada, como se muestra
en la Figura 33-2.

Al pulsar el nombre del paquete se visualiza el espacio en el disco necesario para instalar
el paquete en la parte inferior de la ventana.

Al controlar la casilla de verificación al lado del paquete lo marca durante la instalación.

Puede seleccionar paquetes individuales de los grupos de paquetes ya instalados al


pulsar el botón Detalles y marcar la casilla de verificación de cualquier paquete extra que
no haya sido instalado.

183
Figura 33-2. Selección individual de paquetes

Tras haber seleccionado los grupos de paquetes y los paquetes individuales a instalar,
pulse el botón Update en la ventana principal. La aplicación contará la cantidad de
espacio necesario para instalar los paquetes así como cualquier dependencia de
paquetes y visualizar una ventana de resumen. Si existen dependencias de paquetes,
éstas serán añadidas automáticamente a la lista de paquetes a instalar.

Figura 33-3. Resumen de la instalación de paquetes

ELIMINAR PAQUETES

Para eliminar todos los paquetes instalados dentro de un grupo de paquetes, anule la
selección de la casilla de verificación. Para eliminar paquetes individuales, pulse el botón
Detalles al lado del grupo de paquetes y anule la selección de paquetes individuales.

Cuando haya acabado de seleccionar los paquetes a eliminar, pulse el botón Actualizar
en la ventana principal. La aplicación cuenta la cantidad de espacio en disco que se
liberará así como las dependencias del paquete de software. Si otros paquetes dependen
de los paquetes que haya seleccionado eliminar, éstos serán añadidos de forma
automática a la lista de paquetes a eliminar.

184
Figura 33-4. Resumen de la eliminación de paquetes

Pulse Continuar para iniciar el proceso de eliminación. Cuando haya acabado, aparecerá
un mensaje Update Complete.

RED HAT NETWORK


Red Hat Network es una solución de Internet para administrar uno o más sistemas Red
Hat Linux. Todos los parches de seguridad, correcciones de errores y mejoras en los
paquetes, pueden ser descargadas directamente desde Red Hat usando la aplicación
Agente de actualización de Red Hat o a través del sitio web de RHN en
http://rhn.redhat.com/.

Figura 34-1. Su RHN

185
Red Hat Network ahorra tiempo a los usuarios porque estos reciben un correo
electrónico cuando está disponible una actualización de paquetes.

Cada cuenta Red Hat Network viene con:

x La lista de erratas — que le indica cuándo salen los parches de seguridad, las
correcciones de errores y las mejoras de paquetes de los sistemas en su red a
través de la interfaz Basic

Figura 34-2. Erratas de importancia

x Notificaciones automáticas de

x Actualizaciones planificadas de errata

x Instalación de paquetes

x El Agente de actualización de Red Hat

x Sitio web Red Hat Network

186
Para comenzar a usar Red Hat Network, siga estos pasos básicos:

x Cree un Perfil del sistema usando alguno de los métodos siguientes:

o Inscriba el sistema con RHN durante el Agente de configuración la primera vez


que su sistema arranca luego de la instalación.

o Seleccione el Botón de menú principal => Herramientas del sistema => Red
Hat Network en su escritorio.

o Ejecute el comando up2date desde el intérprete de comandos shell.

x Conéctese a RHN en http://rhn.redhat.com/ y pida un determinado servicio para el


sistema. Todos reciben una cuenta gratis a Red Hat Network para cada sistema.
También se pueden adquirir cuentas adicionales.

x Inicie la planificación de actualizaciones a través del sitio web de RHN o


descargue e instale las Actualizaciones de Errata con el Agente de actualización
de Red Hat.

Para instrucciones detalladas, lea el Manual de referencia del usuario de Red Hat
Network disponible en http://www.redhat.com/docs/manuals/RHNetwork/.

187
LO QUE HEMOS APRENDIDO
‡ Los paquetes son el elemento básico para tratar las tareas de instalación de
nuevo software, actualización del existente o eliminación del utilizado.

‡ Tres pasos para la instalación de paquetes:preinstalación (comprobación


existencia del paquete), descomprimir el contenido del paquete, postinstalación
(instalación).

‡ Existen tres tipos de paquetes: TGZ, RMP, DEB.

‡ Los paquetes TGZ son los de más antigua utilización. Hay que tener cuidado ya
que no controla las dependencias.

‡ Los paquetes RPM son los pertenecientes a la distribución Red Hat.

‡ Los paquetes DEB son los pertenecientes a la distribución Debian.

‡ El comando para la administración de los paquetes RPM es: rpm.

‡ Los paquetes RPM incorporan la idea de dependencias y la base de datos de los


paquetes existentes.

‡ El comando para la administración de paquetes DEB es:apt-get.

188
ANOTACIONES
.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

189
TEST
Marcar la respuesta correcta.

1. ¿Cuáles son los tres tipos de paquetes que tenemos en GNU/Linux?


† TZG, RPMI, DEB.
† TGZ, RPMI, DEB.
† TGZ,RPM,DEB.

2. ¿Qué son los paquetes?


† Conjunto de ficheros que forman una aplicación.
† Un programa.
† Un fichero.

3. La herramienta para administrar paquetes en Red Hat es:


† Rpmi.
† Urp.
† Rpm.

4. Los paquetes TGZ suelen tener extensión:


† tar.zip.
† tar.tgz o tar.gz.
† tar.tgz.

5. Por convección los paquetes RPM suelen utilizar el nombre de:


† paquete-versión-distribución-arq.
† paquete-versión-rev.arq.rmp.
† paquete_version_rev.arq.rmp.

6. Los paquetes debian se nombran:


† paquete-versión-rev.arq.deb.
† paquete_version.deb.
† paquete.deb.

190
ACTIVIDADES
1. Lista todos los paquetes instalados, elige uno y muestra la información de dicho
paquete.

2. Si usas Debian, utiliza el comando correspondiente para buscar un paquete dentro


de la cache de paquetes.

3. Visita la web http://java.sun.com/j2se/1.3/download.html y descárgate el tgz del


plugin del flash para tu navegador.

191
192
Linux Avanzado

Configuración de la Red

i Introducción

i Introducción a TCP/IP

i ¿Qué es TCP/IP?

tema 10
Conceptos en TCP/IP

i ¿Cómo Asignar una Dirección Internet?

i ¿Cómo se Debe Configurar la Red?

i Configuración de Red en Red Hat Linux 9

Objetivos:
i Descubrir los conceptos básicos necesarios para configurar
redes.

i Configurar nuestra red.

193
194
Introducción

El sistema operativo UNIX (GNU/Linux) es tomado como ejemplo de una arquitectura de


comunicaciones estándar. UNIX siempre ha mostrado su versatilidad en aspectos
relacionados a la comunicación y el intercambio de información. Con la introducción de
redes de ordenadores ofreciendo enlaces multipunto a diferentes velocidades, han ido
surgiendo nuevos servicios basados en protocolos más rápidos, portables entre
diferentes ordenadores y mejor adaptados, como el TCP/IP.

Introducción a TCP/IP

El protocolo TCP/IP es una estandarización y una voluntad de comunicación a nivel


global. Donde más se utiliza el TCP/IP es en las conexiones remotas a otros ordenadores
(telnet, SSH Secure Shell), la utilización de ficheros remotos (Network File System NFS) o
su transferencia (File Transfer Protocol FTP, Hipertext Markup Protocol, HTTP).

SERVICIOS SOBRE TCP/IP


Los servicios TCP/IP más importantes son:

x Transferencia de archivos: File Transfer Protocol (FTP), permite obtener y enviar


información de un ordenador a otro. Para ello, el usuario obtendrá un login y una
contraseña en el ordenador remoto. Se conectará como anónimo para transferir
los archivos a su ordenador. Esto no es lo mismo que el NFS (Network File
System), el cual nos permite visualizar un sistema de archivos de un ordenador
al que tengamos acceso de forma interactiva.

x Conexión (login) remota: es llamado telnet, y lo que permite es que nos


conectemos a un ordenador de forma remota. Este servicio se ha sustituido por el
SSH (Secure Shell) por seguridad. Con el protocolo telnet los archivos se
transfieren como texto plano por la red, sin embargo, SSH codifica la información.

x eMail: permite enviar y recibir mensajes desde otros ordenadores.

El avance de la tecnología y los bajos coste ha permitido que se realicen


especializaciones y se hayan mejorado mucho algunas configuraciones que siguen el
modelo cliente-servidor. Lo que llamamos servidor es un sistema que ofrece servicio al
resto de la red y, un cliente, es otro ordenador que utiliza este servicio. Estos servicios se
encuentran dentro del protocolo TCP/IP:

x Sistemas de archivos en red (Network File Systems): permite acceder a los


archivos de otro ordenador. La manera de realizarlo es haciendo que los
dispositivos de almacenamiento sean exportado hacia el sistema que accede y
este los utilice como dispositivos locales. A quien exporta se le permite poner las
reglas y las formas de acceso.

195
x Impresión remota: permite acceder a impresoras conectadas a otros ordenadores.

x Ejecución remota: permite un programa sobre otro ordenador.

x Servidores de nombre (name servers): Es un servicio de nombres para guardar la


relación entre el nombre de la maquina y la identificación lógica de ese máquina
(dirección IP).

x Servidores de terminal (terminal servers ): conecta terminales a un servidor que


ejecuta telnet para conectarse al ordenador central. Reduce costes y mejora
conexiones al ordenador central .

x Servidores de terminales gráficas (network-oriented window systems): permiten


que un ordenador pueda visualizar información gráfica sobre un display que está
conectado a otro ordenador.

¿Qué es TCP/IP?
Por un lado, TCP (transmission control protocol), define las reglas de comunicación para
que un ordenador (host) pueda comunicarse con otro. TCP es orientado a conexión. Por
otro lado, IP (Internet Protocol), define el protocolo que permite identificar las redes y
establecer los caminos entre los diferentes ordenadores.

Tenemos el protocolo UDP (User Datagram Protocol), que se puede considerar una
alternativa al TCP, esta trata el mensaje como datos y envía paquetes. Es un protocolo
sin protección y sobrecarga menos la red, pero la comunicación no es fiable.

También tenemos el protocolo llamado ICMP (Internet Control Message Protocol). Se


utiliza para mensajes de error o control. En el modelo adoptado por muchas redes es el
modelo de arquitectura OSI/ISO (OSI, Open Systems Interconnection Reference Model,
ISO, International Standards Organization). Está formado por siete capas de
comunicación donde cada una tiene una interfaz de comunicación con la anterior y la
posterior:

Nivel Nombre Utilización


7 Aplicación SMTP, simple mail transfer protocol, el
servicio propiamente dicho
6 Presentación Telnet, FTP implementa el protocolo del
servicio
5 Sesión Generalmente no se utiliza
4 Transporte TCP, UDP transformación de acuerdo a
protocolo de comunicación
3 Red IP permite encaminar el paquete
(routing)
2 Link Controladores (drivers) transformación
de acuerdo al protocolo físico
1 Físico Ethernet, ADSL, ... envío del paquete
físicamente

196
Conceptos en TCP/IP

Vamos a definir algunos conceptos que nos haga más fácil el entendimiento del
protocolo TCP/IP:

x Internet/intranet: aplicación de tecnologías de Internet.

x Nodo: se denomina nodo (host) a una máquina que se conecta a la red .

x Dirección de red Ethernet (Ethernet address o MAC address): un número de 48


bits (por ejemplo 00:88:40:73:AB:FF –en octal– 0000 0000 1000 1000 0100 0000
0111 0011 1010 1011 1111 1111 en binario) que se encuentra en el dispositivo.

x Host name: cada nodo debe tener además un único nombre en la red. Los
nombres de los nodos deben ser únicos. Los nombres deben ser de un máximo
de 32 caracteres entre a-zA-Z0-9.-, y que no contengan espacios o #
comenzando por un carácter alfabético.

x Dirección de Internet (IP address): compuesto por cuatro números en el rango 0-


255 separados por puntos (ejemplo 192.168.0.1), nos identifica los ordenadores
sobre una red o Internet. La traslación de nombres en direcciones IP es realizada
por un servidor DNS (Domain Name System) que transforma los nombres de
nodo (legibles por humanos) en direcciones IP.

Nota: Dirección IP de la máquina: more /etc/hosts

x Puerto (port): identificador numérico del buzón en un nodo que permite que un
pueda ser leído por una aplicación concreta dentro de este nodo.

Nota: Puertos preasignados en UNIX: more /etc/services. Este comando muestra


los puertos predefinidos por orden y según soporten TCP o UDP.

x Nodo router (gateway): es un nodo que realiza encaminamientos (transferencia de


datos routing).

Nota: Configuración del routing: netstat -r

x Domain Name System (DNS): permite asegurar un único nombre y facilitar la


administración de las bases de datos que realizan la traslación entre nombre y
dirección de Internet y se estructuran en forma de árbol.

Nota: Nombre de la máquina: more /etc/hostname

Nota: Dominio y quién es nuestro servidor de DNS: more /etc/default domain


more /etc/resolv.conf

x DHCP, bootp: DHCP y bootp son protocolos que permiten a un nodo cliente
obtener información de la red.

197
x ARP, RARP: en algunas redes (como por ejemplo IEEE 802 LAN que es el estándar
para Ethernet), las direcciones IP son descubiertas automáticamente a través de
dos protocolos miembros de Internet protocol suite: Address Resolution Protocol
(ARP) y Reverse Address Resolution Protocol (RARP).

Nota: Tablas de arp: arp a NombreNodo

x Biblioteca de sockets: en UNIX toda la implementación de TCP/IP forma parte del


kernel del sistema operativo .

La forma de utilizarlas por un programador es a través de la API (Application


Programming Interface) que implementa ese operativo.

¿Cómo Asignar una Dirección Internet?

Importante: La direcciones tienen dos campos. El izquierdo es la red y el derecho el


nodo. Cada byte representa o la red o el nodo. La parte de la red es asignada por el NIC
y la parte del nodo por la institución del proveedor.

Tenemos que tener en cuenta las restricciones existentes: 0 (0.0.0.0) es el campo que se
reserva al routing y el 127 (127.0.0.1) es el que reservamos a la autorreferencia, a lo que
solemos llamar localhost. Si ya nos encontramos en la parte del nodo, el 0 e refiere a la
red en la que estamos (192.168.0.0) y el 255 (192.168.0.255) para lo que llamamos
broadcast, que es el envío de paquetes a toda la red.

En las diferentes asignaciones se puede tener diferentes tipos de redes o direcciones:

x Clase A (red.host.host.host): 1.0.0.1 a 126.254.254.254 (126 redes, 16 millones


de nodos) definen las grandes redes. El patrón binario es 0 + 7 bits red + 24 bits
de nodos.

x Clase B (red.red.host.host): 128.1.0.1 a 191.255.254.254 (16K redes, 65K nodos)


generalmente se utiliza el primer byte de nodo para identificar subredes dentro de
una institución). El patrón binario es 10 + 14 bits de red + 16 bits de nodos.

x Clase C (red.red.red.host): 192.1.1.1 a 223.255.255.254 (2 millones de bits de


redes, 254 de nodos). El patrón binario es 110 + 21 bits red + 8 bits de nodos.

x Clase D y E (red.red.red.host): 224.1.1.1 a 255.255.255.254 reservado para


multicast (desde un nodo a un conjunto de nodos que forman parte de un grupo)
y propósitos experimentales.

Hay rangos de direcciones que se reservan a redes privadas, lo que conocemos como
Intranet. Éstas son para la clase A 10.0.0.0 hasta 10.255.255.255, clase B 172.16.0.0
hasta 172.31.0.0 y clase C 192.168.0.0 hasta 192.168.255.0.

La dirección de broadcast es especial porque cada nodo en una red escucha todos los
mensajes.

198
Anteriormente hemos hablado de subredes y routing. Las subredes es dividir el nodo en
pequeñas redes dentro de la red en la que estamos, puede ser una buena manera de
mejorar el tráfico. El número de bits que son interpretados como identificador de la
subred es dado por una máscara de red (netmask) que es un número de 32 bits. Para
obtener el identificador de la subred solo debemos hacer la operación lógica AND entre
la máscara y la IP, con lo que obtendremos la IP de la subred. Vamos a poner un ejemplo
para entenderlo mejor.

Tenemos una red de clase B con número 172.17.0.0 hasta, por lo que, su netmask será
255.255.0.0. Esta red estará compuesta por varias subredes, el rango de estas será para
20 subredes. Es decir, irían del 172.17.1.0 hasta 172.17.20.0. El punto que conecta
todas las subredes (backbone), la dirección 172.17.1.0. El ultimo bytes, nos indica el
host, y el tercer bytes es el que identifica cada una de las subredes. El routing es el
modo en que los mensajes son enviados a través de las subredes.

Ejemplo: tres departamentos con subredes Ethernet: compras (subred 172.17.2.0),


clientes (subred 172.17.4.0), recursos humanos, RR.HH., (subred 172.17.6.0) y el
backbone con FFDI (subred 172.17.1.0). Para encaminar los mensajes entre los
ordenadores de las tres redes, se necesitarán tres gateways que tendrán cada uno dos
interfaces de red para cambiar entre Ethernet y FFDI.

Éstos serán CromprasGW (IPs:172.17.2.1 y 172.17.1.1), CLientesGW (IPs:172.17.4.1 y


172.17.1.2) y RRHHGW (IPs:172.17.6.1 y 172.17.1.3), es decir, una IP hacia el lado de
la subnet y otra hacia el backbone.

Cuando se envían mensajes entre máquinas de compras, no es necesario salir al


gateway. El problema se da cuando la máquina Compras0 quiere enviar un mensaje a
RRHH3. El mensaje debe circular por los dos gateways respectivos. Cuando Compras0
“ve” que RRHH3 está en otra red, envía el paquete a través del gateway ComprasGW,
que a su vez se lo enviará a RRHHGW y que a su vez se lo enviará a RRHH3.

CONFIGURACIÓN DE SEGMENTOS Y GATEWAYS EN UNA INTRANET


IP utiliza una tabla para hacer el
routing de los paquetes entre las
diferentes redes y en la cual existe un
routing por defecto asociado a la red
0.0.0.0. Todas las direcciones que
coinciden con ésta, ya que ninguno de
los 32 bits son necesarios, son
enviados por el gateway por defecto
(default gateway) hacia la red
indicada. Sobre comprasGW, por
ejemplo, la tabla podría ser:

199
Dirección Máscara Gateway Interfaz
172.17.1.0 255.255.255.0 - fddi0
172.17.4.0 255.255.255.0 172.17.1.2 fddi0
172.17.6.0 255.255.255.0 172.17.1.3 fddi0
0.0.0.0 0.0.0.0 172.17.2.1 fddi0
172.17.2.0 255.255.255.0 - eth0

Ejemplo: un mensaje de la 172.17.2.4 hacia la 172.17.2.6 significará:

172.17.2.4 AND 255.255.255.0 = 172.17.2.0 y

172.17.2.6 AND 255.255.255.0 = 172.17.2.0

Como los resultados son iguales, no habrá routing. En cambio, si hacemos lo mismo con
172.17.2.4 hacia 172.17.6.6 podemos ver que habrá un routing a través del 172.17.2.1
con un cambio de interfaz (eth0 a ffdi0) a la 172.17.1.1 y de ésta hacia la 172.17.1.2 con
otro cambio de interfaz (fddi0 a eth0) y luego hacia la 172.17.6.6. El routing, por defecto,
se utilizará cuando ninguna regla satisfaga la coincidencia. En caso de que dos reglas
coincidan, se utilizará aquella que lo haga de modo más preciso, es decir, la que menos
ceros tenga. Para construir las tablas de routing, se puede utilizar el comando route
durante el arranque de la máquina, pero si es necesario utilizar reglas más complejas (o
routing automático), se puede utilizar el routing information protocol (RIP) o entre
sistemas autónomos el external gateway protocol (EGP) o también el border gateway
protocol (BGP). Estos protocolos se implementan en el comando gated.

Recuerda: Para instalar una máquina sobre una red existente necesitamos la siguiente
información: dirección IP del nodo, dirección de la red IP, dirección de broadcast,
dirección de máscara de red, dirección de router, dirección del DNS.

¿Cómo se Debe Configurar la Red?

CONFIGURACIÓN DE LA INTERFAZ (NIC, NETWORK INTERFACE CONTROLLER)


Los dispositivos de red se crean automáticamente cuando se inicializa el hardware
correspondiente. Por ejemplo, el controlador de Ethernet crea las interfaces eth[0..n]
secuencialmente cuando se localiza el hardware correspondiente.

A partir de aquí podemos comenzar a configurar la red. Lo que debemos hacer, es


asignar la dirección de red al dispositivo e inicializar los parámetros de la red.
Utilizaremos el comando: ifconfig (interface configure).

Ejemplo: ifconfig eth0 192.168.110.23 netmask 255.255.255.0 up

Esta instrucción significa: se configure el dispositivo eth0 con la dirección IP


192.168.110.23 y la máscara de red 255.255.255.0.

200
El up indica que pasará a estar activa. Si en caso contrario se quiere desactivar,
únicamente habrá que poner down. Hay valores que se asumen automáticamente.

Por ejemplo:

ifconfig eth0 192.168.110.23 netmask 255.255.255.0 up

Existen comandos como el ifup e ifdown, que permite configurar / desconfigurar la red
en forma más simple utilizando el archivo /etc/network/interfaces para obtener todos los
parámetros necesarios (consultar man interfaces para su sintaxis).

Nota: Consultar man ifconfig para las diferentes opciones del comando.

CONFIGURACIÓN DEL NAME RESOLVER


El siguiente paso es configurar el name resolver que convierte nombres tales como
pirulo.remix.com en 192.168.110.23. El archivo utilizado es /etc/resolv.conf. Hay una
línea por sentencia, y el formato es muy sencillo, es el siguiente: domain (dominio local),
search (lista de dominios alternativos) y name server (la dirección IP del Domain Name
Server). Siempre lo veremos mejor con un ejemplo.

Ejemplo de resolv.conf:

domain remix.com

search remix.com piru.com

name server 192.168.110.1

name server 192.168.110.65

El archivo /etc/host.conf nos permite configurar el comportamiento del name resolver.

Ejemplo de /etc/host.conf:

order hosts,bind

multi on

Indica que primero se verifique el /etc/hosts antes de solicitar una petición al DNS y
también indica (2.ª línea) que retorne todas las direcciones válidas que se encuentren en
/etc/hosts.

Ejemplo de /etc/hosts:

127.0.0.1 localhost loopback

192.168.1.2 pirulo.remix.com

201
Podemos utilizar lo que se llama alias, para el nombre de las maquinas, para poder
llamar a una misma con la misma IP de diferentes maneras. La interfaz loopback es la
que permite realizar conexiones consigo misma.

Ejemplo Configuración del loopback:

ifconfig lo 127.0.0.1

route add host 127.0.0.1 lo

En la versión 2 de la biblioteca GNU existe un cambio en el archivo host.conf. Los


nombres y servicios se encuentran en el archivo /etc/nsswitch.conf. Tendremos cada
servicio en una línea con un conjunto de opciones.

Ejemplo:

hosts: xfn nisplus dns [NOTFOUND = return] files

Esto indica que cuando se realice la consulta al DNS, si no existe un registro para esta
consulta, retorne al programa que la hizo con un cero. Puede utilizarse el ‘!’ para negar
la acción, por ejemplo:

hosts dns [!UNAVAIL = return] files

Nota: Para más información sobre cualquier fichero de configuración utilice la


herramienta man.

CONFIGURACIÓN DEL ROUTING


El routing consiste en decidir dónde hay que enviar y qué se recibe. Como se explicamos
antes, existe una tabla llamada routing table que contiene filas con diversos campos,
pero con tres campos sumamente importantes: dirección de destino, interfaz por donde
saldrá el mensaje y dirección IP, que efectuará el siguiente paso en la red (gateway).

Nota: Consulta de tablas de routing: route –n o también netstat -r

Importante: El comando route permite modificar esta tabla para realizar las tareas de
routing adecuadas.

Ejemplo: nuestro nodo está en una red clase C con dirección 192.168.110.0 y tiene una
dirección 192.168.110.23; y el router con conexión a Internet es 192.168.110.3. La
configuración será:

x Primero la interfaz:

ifconfig eth0 192.168.110.23 netmask 255.255.255.0 up

x Más adelante, indicar que todos los datagramas para nodo con direcciones
192.168.0.* deben ser enviados al dispositivo de red:

route add -net 192.1 ethernetmask 255.255.255.0 eth0

202
El -net indica que es una ruta de red pero también puede utilizarse -host 192.168.110.3.
Esta configuración permitirá conectarse a todos los nodos dentro del segmento de red
(192.1), pero ¿qué pasará si se desea conectar con otro nodo fuera de este segmento?
Sería muy difícil tener todas las entradas adecuadas para todas las máquinas a las
cuales se quiere conectar. Para simplificar esta tarea, existe el default route, que es
utilizado cuando la dirección destino no coincide en la tabla con ninguna de las
entradas. Una posibilidad de configuración sería:

route add default gw 192.168.110.3 eth0

(el gw es la IP o nombre de un gateway o nodo router).

Configuración de Red en Red Hat Linux 9

Hasta ahora el tipo de configuración que hemos visto es a través de ficheros pero, como
en anteriores temas, tenemos una herramienta gráfica para realizarlo también.

Para usar la Herramienta de administración de redes, debe tener privilegios de usuario


root. Para arrancar la aplicación, vaya al Botón de menú principal (en el Panel) =>
Configuración del sistema => Red, o escriba el comando redhat-config-network. Para
forzar a que se ejecute la versión basada en texto, use el comando redhat-config-
network-tui.

Figura 1. Herramienta de administración de redes

Para configurar una conexión de red con la Herramienta de administración de redes, siga
los pasos siguientes:

1. Añada dispositivos hardware a la lista del hardware.

2. Añada dispositivos de red asociados al hardware anterior.

3. Configure el nombre del host y los parámetros DNS.

4. Configure cualquier hosts que no pueda ser encontrado a través de DNS.

203
CONEXIÓN ETHERNET
Para establecer una conexión Ethernet, necesita una interfaz de red (NIC), un cable de
red (usualmente un cable CAT5) y una red a la cual conectarse.

1. Haga click en Dispositivos.

2. Haga click en el botón Añadir.

3. Seleccione Conexión Ethernet en la lista de Seleccionar el tipo de dispositivo y haga


click en Siguiente.

4. Si ya ha añadido el dispositivo de red a la lista de hardware, selecciónelo de la lista


Dispositivo. Sino, añada otros dispositivos de hardware seleccionándolo en Otros
dispositivos Ethernet.

5. Si ha seleccionado Otros dispositivos de red, aparecerá la pantalla Seleccionar


adaptador de Ethernet. Seleccione el fabricante y el modelo del dispositivo Ethernet.
Seleccione el nombre del dispositivo. Si se trata del primer dispositivo Ethernet del
sistema, seleccione eth0 como nombre del dispositivo, si es el segundo eth1 (y así
sucesivamente).

6. En la pantalla Configuración de parámetros de red como se muestra en la Figura 2,


elija entre DHCP y la dirección estática IP. Si el dispositivo recibe una dirección IP
diferente cada vez que se arranca la red, no especifique el nombre del host. Haga
click en Siguiente para continuar.

7. Haga click en Aplicar en la página Crear dispositivo Ethernet.

Figura 2. Parámetros de Ethernet

204
Después de haber configurado el dispositivo Ethernet, aparece en la lista de los
dispositivos como se muestra en la Figura 3.

Figura 3. Dispositivo Ethernet

Asegúrese de seleccionar Archivo => Guardar para guardar los cambios. Se puede
modificar la configuración de dispositivo seleccionando el dispositivo de la lista de
dispositivos y haciendo click en Modificar.

Cuando se añade un dispositivo, no se activa inmediatamente. Para activar el


dispositivo, selecciónelo desde la lista de dispositivos y luego presione el botón Activar.

Si asocia más de un dispositivo con una tarjeta Ethernet, los dispositivos subsecuentes
serán aliases de dispositivos. Un alias de dispositivo le permite configurar múltiples
dispositivos virtuales a un dispositivo físico, por tanto dándole más de una dirección IP.

CONEXIÓN RDSI
Una conexión RDSI es una conexión a Internet con un módem a través de una línea de
teléfono especial. Para establecer una conexión RDSI, siga los siguientes pasos:

1. Haga click en Dispositivos.

2. Haga click en el botón Añadir en la barra de herramientas.

3. Seleccione la Conexión RDSI en la lista de los Seleccionar el tipo de dispositivos y


haga click en Siguiente.

4. Seleccione el adaptador RDSI del menú desplegable. Después configure los recursos
y el protocolo del canal D para el adaptador.

205
Figura 4. Parámetros RDSI

5. Si su proveedor Internet Service Provider (ISP) esta en la lista de las cuentas


preconfiguradas, selecciónela. Sino, introduzca la información necesaria sobre la
cuenta ISP. Si no sabe los valores, contacte a su ISP.

6. En la ventana Configuraciones IP, seleccione Modo de encapsulación y si se debe


obtener una dirección IP a través de DHCP o si se debe configurar una manualmente.

7. En la pantalla Crear
conexión telefónica haga
click en Aplicar.

Después de configurar el
dispositivo RDSI, aparece en
la lista de los dispositivos
como un dispositivo RDSI
como se muestra en la Figura
5. Asegúrese de seleccionar
Archivo => Guardar para
guardar los cambios. Se
puede modificar la
configuración del dispositivo
haciendo click en Modificar.

Figura 5. Dispositivo RDSI

Cuando se añade un dispositivo, este no se activa inmediatamente, como se puede ver


en su estado Inactivo. Para activar el dispositivo, selecciónelo desde la lista de
dispositivos y luego presione el botón Activar.

206
CONEXIÓN VÍA MÓDEM
Un módem se puede usar para configurar una conexión a Internet con una línea
telefónica activa. Se necesita una cuenta ISP, también llamada cuenta de conexión.

1. Haga click en Dispositivos.

2. Haga click en el botón Añadir en la barra de herramientas.

3. Seleccione Conexión vía módem en Seleccionar tipos de dispositivos y haga click en


Siguiente.

4. Si ya tiene un módem configurado y aparece en la lista de hardware, la Herramienta


de administración de redes supone que desea usarla para establecer una conexión
vía módem. Si no hay módems ya configurados, tratará de detectarlos en el sistema.
Esta búsqueda puede tardar un rato. Si no encuentra un módem, se mostrará un
mensaje para advertirlo de que las configuraciones mostradas no son valores
encontrados en la prueba.

5. Después aparecerá la pantalla como en la Figura 6.

Figura 6. Parámetros del módem

1. Configure el dispositivo módem, rata de baudios, el control del flujo y el volumen del
módem. Si no conoce estos valores, acepte los valores si el módem fue probado
exitósamente. Si no recibe el tono cuando marca el número, quite el ok de la casilla.
Haga click en el botón Siguiente.

207
2. Si su ISP aparece en la lista de las cuentas predeterminadas, selecciónela; sino,
introduzca la información de la cuenta ISP. Si no conoce los valores, contacte con su
ISP.

3. En la página Configuración IP, seleccione si desea obtener una dirección IP a través


de DHCP o si la desea configurar de forma estática.

4. En la pantalla Crear conexión telefónica haga click en Aplicar.

Después de haber configurado el módem, aparece en la lista de los dispositivos con el


tipo Modem como se muestra en la Figura 7.

Figura 7. Dispositivo del módem

Asegúrese de seleccionar Archivo => Guardar para guardar los cambios. Después de
haber añadido el dispositivo del módem, puede modificar la configuración
seleccionándolo de la lista de dispositivos y haciendo click en Modificar.

Cuando se añade un dispositivo, este no se activa inmediatamente, como se puede ver


en su estado Inactivo. Para activar el dispositivo, selecciónelo desde la lista de
dispositivos y luego presione el botón Activar.

208
CONEXIÓN XDSL
DSL viene de las siglas de Digital Subscriber Lines. Hay diferentes tipos de DSL tales
como ADSL, IDSL, y SDSL. La Herramienta de administración de redes usa el término
xDSL para incluir todos los tipos de conexiones de DSL. Algunos proveedores DSL
requieren que el sistema esté configurado para obtener una dirección IP a través de
DHCP con una tarjeta Ethernet. Algunos proveedores DSL requieren que configure una
conexión PPPoE (Point-to-Point Protocol over Ethernet) con una tarjeta Ethernet.
Pregúntele a su proveedor DSL qué método usar.

Si usa el PPPoE, siga los pasos siguientes:

1. Haga click en Dispositivos.

2. Haga click en el botón Nuevo.

3. Seleccione conexión xDSL en la lista de los Seleccionar el tipo de dispositivos y haga


click en Siguiente.

4. Si su tarjeta Ethernet está en la lista de hardware, seleccione el Dispositivo Ethernet


desde el menú desplegable desde la página como se muestra en la Figura 8. De lo
contrario, aparecerá la ventana Seleccionar adaptador Ethernet.

Figura 8. Parámetros xDSL

5. Si aparece la ventana Seleccionar adaptador Ethernet, seleccione el fabricante y el


modelo del dispositivo Ethernet. Seleccione el nombre del dispositivo. Si es el primer
dispositivo Ethernet del sistema llámelo eth0; si es el segundo llámelo eth1 (y así
sucesivamente).

209
6. Introduzca el Nombre del proveedor, Nombre de conexión, y Contraseña. Si tiene una
cuenta T-Online, en vez de ingresar un Nombre de conexión y Contraseña en la
ventana por defecto, haga click en el botón Configuración de cuenta T-Online e
introduzca la información requerida.

7. En la pantalla Crear una conexión DSL haga click en Aplicar.

Después de haber configurado la conexión DSL, aparece la lista de los dispositivos como
se muestra en la Figura 9.

Figura 9. Dispositivo xDSL

Asegúrese de seleccionar Archivo => Guardar para guardar los cambios.

Después de haber establecido la conexión xDSL, puede modificar la configuración


seleccionando el dispositivo de la lista de dispositivos y haciendo click en Modificar.

Cuando se añade un dispositivo, este no se activa inmediatamente, como se puede ver


en su estado Inactivo. Para activar el dispositivo, selecciónelo desde la lista de
dispositivos y luego presione el botón Activar.

CONEXIÓN DE TIPO INALÁMBRICA


Los dispositivos Ethernet inalámbricos cada vez son más famosos. La configuración es
parecida a la configuración de los dispositivos Ethernet salvo que permite configurar el
SSID y la clave del dispositivo inalámbrico.

1. Haga click en Dispositivos.

2. Haga click en Añadir en la barra de herramientas.

210
3. Seleccione Conexión inalámbrica desde Seleccionar el tipo de dispositivo y haga click
en Siguiente.

4. Si ya ha agregado una tarjeta de red inalámbrica a la lista de hardware, selecciónela


de la lista Tarjeta inalámbrica. De lo contrario, seleccione Otra tarjeta inalámbrica
para añadir el dispositivo de hardware.

5. Si ha seleccionado Otra tarjeta inalámbrica, aparece la ventana Seleccionar el


adaptador Ethernet.

6. Seleccione el nombre del fabricante y el modelo del adaptador y del dispositivo. Si es


el primer dispositivo del sistema llámelo eth0; si es la segunda tarjeta Ethernet para
el sistema, seleccione eth1 (y así sucesivamente). La Herramienta de administración
de redes también permite al usuario configurar los recursos para el dispositivo de red
inalámbrico. Haga click en Siguiente para continuar.

7. En la página Configurar conexión inalámbrica como se muestra en la Figura 13,


configure las propiedades para el dispositivo inalámbrico.

Figura 13. Parámetros de la conexión inalámbrica

1. En la pantalla Configurar parámetros de la red, escoja entre DHCP y la dirección IP.


Debe especificar un nombre del host para el dispositivo. Si el dispositivo recibe una
dirección IP cada vez que se arranca la red, no especifique este nombre. Haga click
en Siguiente para continuar.

2. Haga click en Aplicar en la pantalla Crear dispositivo inalámbrico.

3. Después de configurar el dispositivo inalámbrico, aparece en la lista de dispositivos


como se muestra en la Figura 14.

211
Figura 14. Dispositivo inalámbrico

Asegúrese de seleccionar Archivo => Guardar para guardar los cambios.

Después de añadir el dispositivo inalámbrico, puede modificar la configuración


seleccionándolo de la lista de dispositivos y haciendo click en Modificar.

Cuando se añade un dispositivo, este no se activa inmediatamente, como se puede ver


en su estado Inactivo.

Para activar el dispositivo, selecciónelo desde la lista de dispositivos y luego presione el


botón Activar.

ADMINISTRACIÓN DE LOS PARÁMETROS DNS


La pestaña DNS le permite configurar el nombre host del sistema, el dominio, los
servidores de nombres y buscar el dominio. Los servidores de nombres se usan para
buscar otros hosts en la red.

Si los nombres de servidores de DNS son obtenidos desde DHCP o PPPoE (o


recuperados desde el ISP), no añada servidores DNS primarios, secundarios o terciarios.

Si el nombre del host es recuperado dinámicamente desde DHCP o PPPoE (o desde el


ISP), no lo cambie.

212
Figura 15. Configuración DNS

ACTIVACIÓN DE DISPOSITIVOS
Los dispositivos de red pueden configurarse para activarse en el momento del arranque
o no.

Si su dispositivo de red está configurado para no iniciarse en el momento del arranque,


puede usar Red Hat Control Network para activarlo a posteriori del arranque. Para
iniciarlo, seleccione Botón del menú principal (en el Panel) => Herramientas del sistema
=> Control de dispositivos de red o escriba el comando redhat-control-network.

Para activar un dispositivo, selecciónelo de la lista y pulse el botón Activar. Para parar un
dispositivo, selecciónelo desde la lista y pulse Desactivar.

213
LO QUE HEMOS APRENDIDO
‡ El protocolo TCP/IP es en realidad un conjunto de protocolos básicos que se han
ido agregando a principal para satisfacer las diferentes necesidades en la
comunicación ordenador-ordenador como son TCP, UDP, IP, ICMP, ARP.

‡ Los servicios TCP/IP tradicionales más importantes son: File Transfer Protocol
(FTP) (Transferencias de archivos), telnet (conexión remota), email (enviar
mensajes a los usuarios de otros ordenadores).

‡ Los servicios TCP/IP modelo cliente-servidor: NetWork File System (NFS),


impresión remota, ejecución remota, servidores de nombres (names servers),
servidores de terminal (terminals servers), servidores de terminales gráficas (net-
work orlented window system).

‡ TCP (transmission control protocol), define las reglas de comunicación para que
un ordenador (host) pueda ‘hablar’ con otro (si se toma como referencia el
modelo de comunicaciones OSI/ISO se describe la capa 4. Por otro lado, IP
(Internet Protocol), define el protocolo que permite identificar las redes y
establecer los caminos entre los diferentes ordenadores.

‡ El término intranet se refiere a la aplicación de tecnologías de Internet (red de


redes) dentro de una organización.

‡ Se denomina nodo (host) a una máquina que se conecta a la red (un ordenador,
una impresora,…).

‡ Se denomina dirección de red Ethernet (Ethernet address o MAC address) a un


número de 48 bits que se encuentra en el dispositivo físico (hardware) del
controlador (NIC) de red Ethernet y es grabado por el fabricante del mismo.

‡ Se denomina Host name al nombre, único, que cada nodo tiene en la red.

‡ Dirección de Internet (IP address): está compuesto por cuatro números en el


rango 0-255 separados por puntos (por ejemplo 192.168.0.1) y es utilizado
universalmente para identificar los ordenadores sobre una red o Internet...

‡ Puerto (port): identificador numérico del buzón en un nodo que permite que un
mensaje pueda ser leído por una aplicación concreta dentro de este nodo.

‡ Nodo router (gateway): es un nodo que realiza encaminamientos.

‡ Domain Name System (DNS): permite asegurar un único nombre y facilitar la


administración de las bases de datos que realizan la traslación entre nombre y
dirección de Internet y se estructuran en forma de árbol.

‡ DHCP, bootp: DHCP y bootp son protocolos que permiten a un nodo cliente
obtener información de la red (tal como la dirección IP del nodo).

214
‡ Para instalar una máquina sobre una red existente, es necesario, por lo tanto,
disponer de la siguiente información obtenida del proveedor de red o de su
administrador: dirección IP del nodo, dirección de la red IP, dirección de
broadcast, dirección de máscara de red, dirección de router, dirección del DNS.

‡ El comando que utilizamos para la configuración de nuestra red es: ifconfig.

‡ El fichero /etc/resolv.conf es que el utiliza para los DNS.

‡ El comando para configurar el router es: route.

215
ANOTACIONES
.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

216
TEST
Marcar la respuesta correcta.

1. ¿Qué es DNS?
† Direct Name Sorted.
† Domanin Name Server.
† Dinamic Name Server.

2. El protocolo TCP/IP es:


† Protocolo de normas a seguir en internet.
† Conjunto de protocolos básicos para las comunicaciones ordenador-ordenador.
† Protocolo para las comunicaciones entre ordenadores.

3. Esta dirección IP 126.254.254.128 pertenece a una red de clase:


† A.
† B.
† C.

4. ¿Para qué esta reservada esta dirección IP 198.162.255.255 en su red?


† Rouing.
† Loopback.
† Broadcast.

5. El comando ifconfig:
† Lo utilizamos para asignar direcciones IP.
† Configuramos la red con él.
† Configuramos el modem.

6. ¿Qué comando tenemos que escribir en la consola para que se nos despliegue la
herramienta gráfica para configurar la red?
† redhat-configuration-net.
† redhat-network-config.
† redhat-network-config-tui.

217
ACTIVIDADES
1. Cambia tu ip y la mascara de red con el comando ifconfig.

2. Añade una puerta de enlace con el comando route y unas DNS.

218
Linux Avanzado

Impresoras

i Introducción

i CUPS

i Configuración de la Impresora en Red Hat Mandrake Linux 9

tema 11
Objetivos:
i Aprender a configurar cualquier tipo de impresora en nuestro
sistema.

219
220
Introducción

Este sistema es denominado LPD (Line Printer Daemon). Es un sistema de impresión


muy potente, tiene capacidad de gestionar impresoras locales y de red. Dando dentro del
mismo tanto el cliente como el servidor.

Este sistema es antiguo, lo que hace que le suelan faltar soporte para dispositivos más
modernos, ya que no fue pensado para las impresoras actuales.

Además de este sistema, también tenemos el System V. Por compatibilidad las


distribuciones suelen traer ambos. En GNU/Linux podemos tener uno y otro según la
instalación que realicemos. Una forma de identificar los dos sistemas es con el comando
principal de impresión, en BSD (LPD) es lpr y en System V es lp.

Este era el inicio de los sistemas de impresión en GNU/Linux, pero en estos años han
surgido más sistemas. Los dos principales son LPRng y CUPS.

Los dos son unos sistemas de alto nivel, a pesar de que no tiene muchas diferencias con
los anteriores, ya que los comandos para imprimir son los mismos. Las diferencias se
encuentran al administrar, los sistemas de configuración son diferentes.

En las distribuciones actuales encontramos todos los sistemas de impresión.

Respecto a cada uno de los sistemas:

x BSD LPD: estándar UNIX, Ali que se asume que el sistema tendrá disponible este.
LPRng y CUPS emulan el funcionamiento de los comandos BSD LPD. No es un
sistema muy configurable.

x LPRng: se diseñó para reemplazar a BSD, es parecida la configuración, solo se


diferencia en algunos ficheros.

x CUPS: es una desviación del BSD original. Se proporciona información a las


aplicaciones sobre las impresoras disponibles.

Hay que tener en cuenta varios aspectos:

x Sistema de impresión que se utiliza: BSD, LPRng o CUPS.

x Dispositivo de impresión (impresora): puede disponer de conexión local a una


maquina o estar colocada en red.

x Protocolos de comunicación utilizados con la impresora, o el sistema de


impresión: ya sea TCP/IP directo, o bien otros de más alto nivel sobre TCP/IP,
como IPP (CUPS), JetDirect, etc. Este parámetro es importante, ya que lo
debemos conocer para instalar la impresora en un sistema.

x Sistema de filtros usado, cada sistema de impresión soporta uno o varios.

221
x Hay muchos controladores para las impresoras en GNU/Linux, por ejemplo,
controladores de: CUPS; Gimp, el programa de retoque de imágenes también
posee drivers optimizados para la impresión de imágenes; Foomatic es un
sistema de gestión de controladores que funciona con la mayoría de sistemas
(CUPS, LPD, LPRng, y otros); los controladores de Ghostscript, etc. En casi todas
las impresoras tienen uno o más controladores de estos conjuntos.

Los comandos básicos son iguales para los diferentes sistemas, y éstos son los
comandos del sistema BSD :

x lpr: envía a la cola de impresión el trabajo, el daemon (lpd) es el que se encarga


de mandarlo a la que le corresponda, y le asigna un número de trabajo. La
impresora por defecto se indica en la variable de sistema PRINTER.

Ejemplo de lpr:

lpr –P epson datos.txt

Esta instrucción mandaría el fichero datos.txt a la cola de impresión asociada a una


impresora que hemos definido como “epson”.

x Se puede encontrar información

x lpq: nos permite examinar los trabajos existentes en la cola.

Ejemplo de lpq:

# lpq -P epson

Rank Owner Job Files Total Size

1st juan 15 datos.txt 74578 bytes

2nd marta 16 fpppp.F 12394 bytes

x lprm: elimina trabajos de la cola, podemos especificar un número de trabajo, o un


usuario para cancelar los trabajos.

Ejemplo de lprm:

#lprm –P epson 15

Eliminar el trabajo con id 15 de la cola.

En BSD el comando sería lpc, para activar y desactivar colas, mover trabajos en las colas
y activar y desactivar las impresoras.

En el caso de System V, los comando del cliente son: lp, lpstat, cancel y para temas de
administración: lpadmin, accept, reject, lpmove, enable, disable, lpshut.

222
CUPS

Es una arquitectura nueva para la impresión diferente a las existente, aunque tiene
compatibilidad con ellas. Soporta un nuevo protocolo llamado IPP, únicamente
disponible cuando el cliente y el servidor son de tipo CUPS. Utiliza unos tipos de drivers ,
PPD, para identificar las capacidades de la impresora.

El sistema de administración es totalmente diferente. Tendremos los ficheros:


/etc/cups/cupsd.conf centraliza la configuración del sistema, y /etc/printers.conf controla
la definición de impresoras, y /etc/cups/classes.conf los grupos de éstas.

En /etc/cups/cupsd.conf, configuramos el sistema. El archivo es bastante grande,


destacaremos algunas directivas importantes:

x Allow: especifica las máquinas que pueden acceder al servidor.

x AuthClass: indica si se pedirá que el usuario se autentifique.

x BrowseXXX: hay unas directivas para ver que impresoras podemos encontrar en
la red es la llamada browsing. Otra importante para mencionar es BrowseAllow,
que dice a quién le damos la posibilidad de preguntar por nuestras impresoras;
por defecto está habilitada, por lo que cualquiera puede ver nuestra impresora
desde nuestra red.

CUPS está pensado para que tanto clientes, como el servidor funcionen bajo el mismo
sistema, si los clientes utilizan LPD o LPRng, hay que instalar un daemon de
compatibilidad llamado cups-lpd. En este caso, CUPS acepta trabajos que provengan de
un sistema LPD o LPRng, pero no controla los accesos (cupsd.conf sólo sirve para el
propio sistema CUPS), por lo tanto, habrá que implementar alguna estrategia de control
de acceso, tipo firewall por ejemplo.

223
Configuración de la Impresora en Red Hat Mandrake
Linux 9

La Herramienta de configuración de impresoras permite a los usuarios configurar una


impresora en Red Hat Linux.

Desde la versión 9, Red Hat Linux, CUPS es el sistema de impresión predeterminado.


Pero proporcionando todavía el sistema de impresión por defecto anterior.

Si un sistema fue actualizado desde una versión anterior de Red Hat Linux que usaba
CUPS, el proceso de actualización mantiene las colas configuradas y el sistema
continuará usando CUPS.

La Herramienta de configuración de impresoras configura ambos sistemas de impresión


CUPS y LPRng, dependiendo de cual se configure a usar en el sistema.

Para usar la Herramienta de configuración de impresoras debe tener privilegios como


root. Para iniciar: Botón de menú principal (en el Panel) => Configuración del sistema =>
Impresión, o escriba el comando redhat-config-printer.

Importante: No modifique el archivo /etc/printcap o los archivos en el directorio


/etc/cups/. Cada vez que el demonio de impresión (lpd o cups) es iniciado o reiniciado, se
crean dinámicamente nuevos archivos de configuración.

Si está usando LPRng y desea añadir una impresora sin usar la Herramienta de
configuración de impresoras, modifique el archivo /etc/printcap.local. Cada vez que se
genera un nuevo archivo de configuración, el archivo viejo es guardado como
/etc/printcap.old.

Si está usando CUPS, la Herramienta de configuración de impresoras no despliega las


colas o comparticiones que no hayan sido configuradas con la Herramienta de
configuración de impresoras; sin embargo, no las eliminará de los archivos de
configuración.

Figura 1. Herramienta de configuración de impresoras

224
Se pueden configurar los siguientes tipos de colas de impresión:

x Conectada-localmente Conectada CUPS (IPP) — una impresora conectada a un


sistema CUPS diferente que puede ser accesada sobre una red TCP/IP.

x Conectada UNIX (LPD) — una impresora conectada a un sistema UNIX diferente


que puede ser accesada sobre una red TCP/IP.

x Conectada Windows (SMB) — una impresora conectada a un sistema diferente el


cual está compartiendo una impresora sobre una red SMB.

x Conectada Novell (NCP) — una impresora conectada a un sistema diferente el cual


usa la tecnología de red Novell NetWare.

x Conectada JetDirect — una impresora connectada directamente a la red a través


de HP JetDirect en vez de a un computador.

Importante: Si agrega una nueva cola de impresión o modifica una existente, debe
aplicar los cambios para que tomen efecto.

AÑADIR UNA IMPRESORA LOCAL


Para añadir una impresora local, haga clic en Nuevo en la ventana principal de la
Herramienta de configuración de impresoras para mostrar la ventana en la Figura 2.
Haga clic en Siguiente para proceder.

Figura 27-2. Añadir una impresora

225
En la ventana mostrada en Figura 3, introduzca un nombre único para la impresora en el
campo de texto Nombre.

Figura 3. Seleccionar un nombre de cola

Después de hacer clic en Siguiente, aparecerá la Figura 4. Seleccione Conectado


localmente desde el menú Seleccionar el tipo de cola y seleccione el dispositivo. El
dispositivo es usualmente /dev/lp0 para una impresora paralela o /dev/usb/lp0 para una
impresora USB. Si no aparece ningún dispositivo en la lista, haga clic en Volver a
escanear dispositivos para revisar nuevamente la máquina o haga clic en Dispositivo
personalizado para especificarlo manualmente. Haga clic en Siguiente para continuar.

Figura 4. Añadir una impresora local

226
AÑADIR UNA IMPRESORA IPP
Una impresora de red IPP es una impresora conectada a un sistema Linux diferente en la
misma red ejecutando CUPS o una impresora configurada para usar IPP en otro sistema
operativo. Por defecto, la Herramienta de configuración de impresoras navega la red en
busca de impresoras compartidas IPP.

Si tiene un cortafuegos (firewall) configurado en el servidor de impresión, este debe ser


capaz de enviar y recibir conexiones en el puerto de entrada UDP 631.

Si desactivó la característica automática de navegación, todavía puede agregar una


impresora de red IPP haciendo clic en el botón Nuevo en la ventana principal de la
Herramienta de configuración de impresoras para desplegar la ventana en la Figura 2.
Haga clic en Siguiente para proceder.

En la ventana mostrada en Figura 3, introduzca un nombre único para la impresora en el


campo de texto Después de hacer clic en Siguiente, aparecerá la Figura 5. Seleccione
Conectada CUPS (IPP) desde el menú Seleccionar un tipo de cola.

Figura 5. Añadir una impresora de red IPP

Aparecen los campos de texto para las opciones siguientes:

x Servidor — El nombre de la máquina o dirección IP de la máquina remota a la cual


la impresora está conectada.

x Ruta — La ruta de la cola de impresión en la máquina remota.

227
SELECCIÓN DEL MODELO DE IMPRESORA
Verá una ventana similar a la Figura 10. Si no fue detectado automáticamente,
seleccione el modelo de la lista. Las impresoras son divididas por fabricantes. Seleccione
el nombre del fabricante desde el menú. Seleccione el modelo de impresora de la lista.

Figura 10. Selección del modelo de impresora

El controlador de la impresora recomendado es escogido basado en el modelo de


impresora seleccionado. El controlador de la impresora procesa los datos que desea
imprimir en un formato que la impresora pueda entender.

CONFIRMACIÓN DE LA CONFIGURACIÓN DE LA IMPRESORA


El último paso es la configuración de su impresora. Haga clic en Aplicar para agregar la
cola de impresión si las configuraciones son correctas. Haga clic en Anterior para
modificar la configuración de la impresora.

Presione el botón Aplicar en la ventana principal para guardar sus cambios y reiniciar el
demonio de impresión. Después de aplicar los cambios, imprima una página de prueba
para asegurarse de que la configuración es correcta.

Si necesita imprimir caracteres fuera del conjunto ASCII básico (incluyendo aquellos
usados por idiomas tal como el japonés), debe revisar las opciones de su controlador y
seleccionar Preparar Postscript.

228
LO QUE HEMOS APRENDIDO
‡ El sistema de impresión de GNU/Linux es el denominado LPD (Line Printer
Daemon)

‡ Los dos principales sistemas de impresión son: LPRng y CUPS.

‡ Los comandos básicos son iguales para los diferentes sistemas, y son :lpr,lpq,
lprm.

‡ CUPS es una nueva arquitectura para el sistema de impresión bastante diferente,


tiene, una capa de compatibilidad hacia BSD LPD, que le permite interaccionar
con servidores de este tipo.

‡ Los ficheros de configuración de CUPS son: /etc/printers.conf,


/etc/cups/cupsd.conf, /etc/cups/classes.conf.

‡ Desde la versión 9, Red Hat Linux, CUPS es el sistema de impresión


predeterminado. Sin embargo, todavía se proporciona el sistema de impresión
por defecto anterior, LPRng.

229
ANOTACIONES
.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

230
TEST
Marcar la respuesta correcta.

1. LPD es:
† Live Print Document.
† Line Printer Document.
† Line Printer Daemon.

2. ¿Qué es CUPS?
† Una arquitectura de impresión.
† Un programa para imprimir.
† Un paquete RMP.

3. Esta instrucción: lpr –P hp fichero.txt


† Manda el fichero a la cola de impresión de cualquier impresora que este libre.
† Manda el fichero a la cola de impresión de la impresora asociada al nombre hp.
† Imprime el fichero.

4. ¿Qué comando tendría que escribir para eliminar mi fichero.txt de la cola de


impresión de mi impresora Epson?
† lprm –P epson 1
† lprm –P epson
† No puedo si no conozco el id de la cola que pertenece al fichero.

5. ¿Con qué comando ejecuto mi el asistente gráfico para configurar mi impresora en


Red Hat?
† Rehat-configuration-p.
† Redhat-conf-print.
† Redhat-configuration-printer.

6. ¿Cuál es el dispositivo para una impresión paralela?


† /dev/lp1.
† /dev/usb/lp0.
† /dev/lp0.

231
232

Linux Avanzado
 

Seguridad

TEMA 12. Seguridad

TEMA 13. Copias de Seguridad

módulo 3

233
234
Linux Avanzado

Seguridad

i Introducción

i Tipos de Intruso

i Backup

i Spyware y Adware

i Encriptación

i Antivirus

i Navegación Segura

i Sistemas de Recuperación, Mantenimiento y Borrado Seguro de

tema 12
Ficheros

i Firewall

i Tipos de Ataques

i Software de Seguridad

i Distribuciones Orientadas a Seguridad

i Configuración Seguridad en Red Hat Linux Mandrake 9

Objetivos:
i Conocer todos los posibles problemas de seguridad de nuestro
sistema GNU/Linux.

i Prevenir problemas de seguridad.

235
236
Introducción
Pensar que GNU/Linux es un sistema operativo invulnerable a los ataques
malintencionados, virus hackers, etc, es un grave error, de hecho las versiones no
actualizadas de los kernel Linux contienen diversas vulnerabilidades que permiten que
un usuario local obtenga privilegios de “root”, o tirar el sistema abajo.

Lo que sí es muy cierto es que GNU/Linux es uno de los S. O. más seguros que se
conocen y más aun gracias a su estructura permite detectar mejor y protegernos de
cualquier ataque o intrusión no autorizada.

La llegada de Internet y las comunicaciones globales de datos es un hecho y cuando


nuestros datos van desde el punto A al punto B sobre Internet, por ejemplo, pueden
pasar a través de diversos otros puntos por el camino, dando a otros usuarios la
oportunidad de interceptarlos e incluso de alterarlos. Además, otros usuarios de nuestro
sistema de forma maliciosa pueden transformar nuestros datos en algo que no
pretendemos. Es por ello que la seguridad se está convirtiendo cada vez más en un
problema o mejor dicho en una necesidad.

Para concluir la introducción hay que aclarar dos cosas, en primer lugar, hay que tener
en cuenta que ningún sistema de computadores puede ser “completamente seguro”.
Todo lo que se puede hacer es que cada vez le sea más difícil a alguien comprometer
nuestro sistema. Y en segundo lugar, un nivel de seguridad excesivo nos brindará un
sistema muy “IN”: in-vulnerable, in-comunicado e in-servible.

Tipos de Intruso
La amenaza de seguridad normalmente procede de alguien que tiene motivos para
querer un acceso no autorizado a nuestra red o computador. Debemos decidir en
quiénes confiar y qué amenazas podrían suponer.

x El Curioso: básicamente estará interesado en averiguar qué tipo de sistema y


datos tenemos.

x El Malicioso: Tratará de hacer caer nuestros sistemas, o de deformar una página


web, o de hacer gastar tiempo y dinero para recuperarnos del daño.

x El intruso de Perfil-alto: Trata de usar el sistema para lograr popularidad o


anunciar sus habilidades.

x El Competidor: Estará interesado en los datos de nuestro sistema, bien por que
piensa que tenemos podría beneficiarlo financieramente o de otro modo.

x Los Gorrones: Están interesados en establecer comercio en nuestro sistema y


usar sus recursos para sus propios fines. Pueden querer ejecutar servidores de
Chat o IRC o incluso servidores DNS.

x El Saltador: Querrá usar nuestro sistema como medio para entrar en otros
sistemas.

237
Backup

Las copias de seguridad o backup son el pilar sobre el que se construye cualquier
sistema de seguridad y realmente un seguro de vida frente a cualquier pérdida de
información.

No hablaremos de las copias de seguridad en este tema, ya que el siguiente estará


dedicado por completo a ello.

Spyware y Adware

Los programas espía o spyware son aplicaciones que recopilan información sobre una
persona u organización sin su conocimiento. La función más común que tienen estos
programas es la de recopilar información y distribuirla a empresas publicitarias.

Los programas espía pueden ser instalados en un ordenador mediante un virus, un


troyano que se distribuye por correo electrónico, o bien puede estar oculto en la
instalación de un programa aparentemente inocuo.

KEYLOGGERS
Técnicamente no son más que un programa que se ejecuta de manera invisible para el
usuario y que se dedica a capturar todo lo que el usuario teclea. Sólo comentar también
que existen keyloggers hardware que algunas empresas suelen usar para controlar lo
que teclean sus empleados.

ELIMINAR EL SPYWARE
Un método para eliminar el spyware es borrar los archivos manualmente, para ello ahí
que conocer el nombre del archivo en cuestión, localizarlo y eliminarlo, aunque tiene el
inconveniente de que podemos eliminar archivos incorrectos e inutilizar funciones de
nuestro sistema. Para sistemas Windows hay cientos de programas especializados en
rastrear y eliminar automáticamente los programas espía de nuestro ordenador, en
GNU/Linux, aunque también podemos encontrar estos programas en menor cantidad,
simplemente teniendo bien configurado nuestro firewall podemos resolver el problema
del spyware.

ADWARE
El adware es software que durante su funcionamiento despliega publicidad de distintos
productos o servicios. En cuanto a lo demás es prácticamente igual que es el spyware.

238
SOFTWARE CONTRA SPYWARE
Tripwire - Web: www.tripwire.org

Este programa es un completo sistema de detección de intrusos basado en técnicas de


comprobación. Tripwire es una de las mejores herramientas existentes para detectar
posibles ataques locales y de red en el sistema y permite también detectar los
movimientos y acciones de programas spyware.

Encriptación

La encriptación de datos es uno de los sistemas de seguridad más antiguos y efectivos.


Tanto si los datos están guardados en local como si vamos a transportarlos a través de
cualquier red.

En local un sistema de encriptación no tiene mayor misterio, no tenemos más que


utilizar cualquier programa de encriptación de archivos o documentos con una clave
más o menos sensata y tendremos esos datos protegidos.

En principio para proteger datos dentro de un equipo, basta con encriptarlos con
cualquier aplicación como por ejemplo:

Gzip - Web: www.gnu.org/software/gzip/gzip.html

Gzip es una utilidad de compresión diseñada para ser el sustituto de compress.

Sus principales ventajas sobre compress son mayor ratio de compresión y que los
algoritmos son libres. Permite utilizar clave de encriptación por lo que podremos
proteger cualquier fichero con el sin problemas.

Gringotts 1.2.8 - Web: http://devel.pluto.linux.it/projects/Gringotts/home.htm

Gringotts es una sencilla utilidad que permite codificar ciertos datos que no deseamos
que otras personas puedan observar como por ejemplo contraseñas, números de
tarjetas de crédito, PIN, etc. Es muy sencilla de utilizar.

ENVÍO CIFRADO
El problema de la encriptación de información llega cuando tenemos que enviar la
información cifrada y solo queremos que el destinatario pueda acceder a ella.

Normalmente lo que hacemos es enviarla por correo electrónico y luego por otros medios
decirle la clave al destinatario.

239
CRIPTOGRAFÍA DE LA CLAVE PÚBLICA
La criptografía de la clave pública o asimétrica esta basada en el uso de un par de claves
que cumplen, entre otros requisitos, que lo que somos capaces de cifrar con una de
ellas, comos capaces de descifrarlo con la otra y sólo con ella.

El sistema más famoso de encriptación de clave pública es PGP www.pgpi.com, pero


utiliza un algoritmo de encriptación patentado por lo que no es completamente libre.
Existe una versión libre, GnuPG.

SOFTWARE ENCRIPTACIÓN
GnuPG - Web: www.gnupg.org

GnuPG es un programa completamente libre para cifrar y firmar nuestros ficheros o


correos electrónicos. Algo muy a tener en cuenta es que todo el código fuente es
accesible, por lo que la existencia de puertas traseras es prácticamente imposible de que
existan.

Enigmail - Web: http://enigmail.mozdev.org/

La función que tiene Enigmail es la de incorporar el soporte GPG/PGP al trabajar con el


correo. Puede tanto cifrar como firmar el correo al enviar, así como descifrar e identificar
el correo recibido. También puede importar y exportar claves públicas. Soporta PGP
inline y PGP/MIME, para cifrar documentos adjuntos. Enigmail es un “add-on” que
funciona con el componente de correo que forma parte de Mozilla o Netscape 7.x.
Importante decir que GPG/PGP debe estar instalado previamente en nuestro sistema.

Antivirus

Los virus son la amenaza informática más antigua después de los desastres o
accidentes. Un virus se define como un pequeño programa escrito intencionadamente
para instalarse en el ordenador de un usuario sin el conocimiento o permiso de éste y
causar daño o recopilar información.

Aunque no está claro cuando nacieron los virus, hacia finales de los años 60, ingenieros
de Bell de AT&T idearon un juego al que llamaron Core War (Guerra en lo central,
aludiendo a la memoria de la computadora), que se convirtió en el pasatiempo de
algunos de los programadores de los laboratorios Bell de AT&T. El juego consistía en
que dos jugadores escribieran cada uno un programa llamado organismo, cuyo hábitat
fuera la memoria de la computadora. A partir de una señal, cada programa intentaba
forzar al otro a efectuar una instrucción inválida, ganando el primero que lo consiguiera.
Al término del juego, se borraba de la memoria todo rastro de la batalla, ya que estas
actividades eran severamente sancionadas por los jefes por ser un gran riesgo dejar un
organismo suelto que pudiera acabar con las aplicaciones del día siguiente. De esta
manera surgieron los programas destinados a dañar en el mundo de los ordenadores.

240
VIRUS EN GNU/LINUX
Durante los primeros años de expansión de Linux a escala mundial se extendió la
creencia de que para este sistema no existían virus y que eran totalmente invulnerables
a los virus diseñados para Windows. Esto es falso. En realidad lo que ocurría era que los
virus se diseñaban para Windows por su mayor extensión entre los usuarios. De hecho
es mucho más sencillo diseñar un virus para un sistema Unix o GNU/Linux que para
Windows debido precisamente a su filosofía abierta. Aunque gracias a esta filosofía es
mucho menos efectivo.

Si es cierto que el cuidado y evolucionado sistema de permisos de usuario en GNU/Linux


es una barrera muy efectiva que no tienen los usuarios de Windows. En Windows una
vez que ejecutamos un programa este puede hacer y deshacer a su antojo, mientras que
en GNU/Linux esto no ocurre ya que el sistema esta diseñado específicamente para que
esto no ocurra gracias a los permisos de usuario. Otra barrera muy efectiva es la
estructura de directorios que hace difícil la propagación de cualquier programa
malintencionado por el sistema.

Finalmente a la estructura de permisos y archivos se une a la filosofía totalmente abierta


del sistema, es decir, cualquier usuario puede ver en todo momento todos los procesos
que se están realizando y modificar a su antojo cualquier línea de código a cualquier
nivel. Esta es probablemente la principal razón por la que no proliferan más virus para
este sistema ya que en pocas horas se ha encontrado la vacuna y no es muy alentador
para un programador pasar semanas o meses diseñando un virus y que se lo hunda
cualquier usuario medianamente avanzado en un par de horas.

EJEMPLO DE UN VIRUS SENCILLO EN GNU/LINUX

Crear virus con los lenguajes de programación utilizados generalmente en UNIX y


GNU/Linux es muy sencillo. Con cuatro líneas de código se puede crear un virus que se
replica en todos los ficheros. Por supuesto es muy fácil de detectar y anular pero
básicamente funciona. Sin embargo gracias al sistema de permisos y ficheros poco o
nada tendría que hacer si sus intenciones fuesen malintencionadas.

#!/bin/sh

For FICHERO in *

do

tail -4 $0 >> $FICHERO

done

241
INSTALACIÓN Y USO DE UN ANTIVIRUS EN GNU/LINUX
Tomaremos como ejemplo la versión para GNU/Linux de Panda Antivirus. Esta aplicación
analiza y desinfecta las estaciones Windows y DOS conectadas a un servidor GNU/Linux
así como al propio servidor.

Copiamos el archivo pavcl_linux_i386 en un determinado directorio.

Desde el directorio donde copiamos el archivo ejecutamos el comando

rpm –i pavcl_linux_i386.rpm

También podemos copiar en el directorio raíz el archivo pavcl_linux_i386.tgz


descomprimirlo con el comando gzip –d pavcl_linux_i386.tgz e instalarlo con el comando
tar –xvf pavcl_linux_i386.tar

Al finalizar la instalación se creará la correspondiente estructura de directorios.

La sintaxis para usar éste antivirus es:

pavcl [Ruta de análisis] –parametro1 … -parametroN

Algunos parámetros interesantes son los siguientes:

pavcl –nbr: impide que el usuario interrumpa la ejecución del antivirus mediante

CTRL-C.

pavcl –clv: cuando se realiza un análisis y se detecta un virus, se pregunta al

usuario sobre la acción a realizar.

pavcl –aut: permite al antivirus funcionar de forma automática.

pavcl –cmp: permite analizar ficheros comprimidos y sus contenidos.

SOFTWARE ANTIVIRUS
KASPERSKY ANTI-VIRUS FOR LINUX WORKSTATIONS

Web: www.kaspersky.com

Sistema completo de prevención, detección y eliminación de cientos de virus y troyanos.


Consta de tres componentes básicos: un escáner antivirus, un daemon antivirus y un
monitor antivirus.

242
VEXIRA MAILARMOR FOR LINUX

Web: www.centralcommand.com

Protege nuestro correo de infecciones inoportunas. Funciona con SendMail, Qmail,


Postfix y Exim entre otros.

VEXIRA ANTIVIRUS FOR LINUX WORKSTATIONS

Web: www.centralcommand.com

Permite analizar los archivos tan pronto como son accedidos, posibilidad de uso bajo
consola y optimizado consumo de recursos de sistema.

Navegación Segura

Cuando navegamos por Internet estamos expuestos a todo tipo de ataques y a que
recojan información de nuestro sistema por varios métodos. Además de los firewalls y
de bloqueo de ataques e intrusiones, podemos protegernos de indeseables configurando
las opciones de seguridad del navegador, configurando cookies o utilizando sistemas de
anonimato, es en esto último en lo que nos centraremos un poco más.

NAVEGACIÓN ANÓNIMA
Uno de los sistemas más efectivos para proteger nuestra privacidad es la navegación
anónima, conocida también como “Anonymous Surfing”. Básicamente son servicios
comerciales o gratuitos que nos facilitan el poder navegar a través de sus servidores o
proxy con lo que interponemos su sistema entre nuestro ordenador y las páginas que
visitemos. De esta forma nunca nadie podrá acceder a nuestros datos a través de
Internet ya que toda la información que pudiesen recabar, con cookies u otros métodos,
queda bloqueada por el servicio de navegación anónima. Como inconvenientes tienen
que algunas páginas de Internet no permiten visualizarse utilizando estos sistemas de
ocultación. Además la navegación se ralentiza debido a la necesidad de pasar por los
servidores del servicio de anonimato.

Estos son algunos de los servicios de navegación anónima más utilizados en Internet:

-@nonymouse:

www.nonymouse.com/anonwww.html

-Anonymizer:

www.anonymizer.com

-Autistici:

243
www.autistici.org

-Send FakeMail:

www.sendfakemail.com/anonbrowser

-The Cloak:

www.the-cloack.com

Sistemas de Recuperación, Mantenimiento y Borrado


Seguro de Ficheros

Aunque no lo parezca, las herramientas de unidades de disco son importantes cuando


hablamos de seguridad, básicamente por dos aspectos.

En primer lugar, nos pueden evitar pérdidas de información y borrados accidentales.

Este tipo de utilidades suelen venir incluidas en distribuciones GNU/Linux aunque


también existen programas y mini distribuciones pensadas para incluirlas en un CD de
arranque de emergencia.

Y en segundo lugar, igualmente útiles les resultan a personas no autorizadas a rastrear


el disco duro de nuestro sistema y recuperar información borrada que en teoría
pensamos que ya nadie podrá ver.

SOFTWARE DISCO Y ARCHIVOS


RECOVER

Web: http://recover.sourceforge.net/linux/recover

Es un sistema de recuperación de archivos que automatiza la mayoría de los pasos


indicados en el ext2-undeletion howto.

SAMHAIN

Web: www.freshmeat.net/redir/samhain

Completo programa que analiza la integridad de los archivos y su estructura.

Puede ser usado tanto de manera individual como mediante la combinación


cliente/servidor para monitorización centralizada, haciendo uso de encriptación de 192
bits.

244
XFILES

Web: www.idiom.com/~zilla/xfiles.html

Sistema de comprobación de archivos en entornos de red. Es una utilidad para comparar


y unir un árbol de archivos con otro a través de una red. También puede realizar
backups y comprobación de discos.

ALCOLIX

Web: http://alcolix.sourceforge.net/

Es una mini distribución basada en la versión 2.4.20 del kernel de Linux. Ofrece un
entorno seguro y eficaz de rescate para MBR y podemos usarlo para reparar las tablas
de varias particiones.

AUTOCLAVE

Web: http://staff.washingtong.edu/dlarios/autoclave/

Sistemas de borrado seguro total para discos duros. Antes de deshacerse de un disco
duro, hay que asegurarse que los datos están completamente borrados. Autoclave
realiza un borrado seguro de los discos duros desde un disquete de arranque.

RECOVERY IS POSSIBLE (RIP)

Web: http://www.tux.org/pub/people/kent-robotti/looplinux/rip

Es un completo sistema de boot/rescue/backup, que cuenta con soporte para reiserfs,


ext2/3, XFS, JFS, UMS, MS, DOS, umsdos y vfat.

Firewall

Un firewall o cortafuegos es una barrera que impide a los intrusos poder acceder a una
red o sistema informático creando una separación entre ellos y la red exterior o Internet.
Esta separación puede estar constituida por un sistema firewall hardware o por un
cortafuegos basado en software. La instalación de un cortafuegos es, junto con la del
antivirus, una de las columnas esenciales para la seguridad en un sistema.

SOFTWARE FIREWALL
SINUS FIREWALL

Web: www.ifi.unzich.ch/ikm/

Completo interfaz gráfico para configurar varios firewalls. Es un filtro de paquetes


TCP/IP.

245
FIRESTARTER

Web: www.firestarter.sourceforge.net

Es una herramienta para configurar un firewall. Su interfaz gráfico está optimizado para
Gnome 2, aunque también funciona con Gnome 1.4 y KDE. Dispone de asistentes de
configuración, un monitor en tiempo real de quien puede estar intentando acceder a
nuestro sistema, abrir y cerrar puertos con unos pocos golpes de ratón, configuración de
NAT y forwarding, etc.

LINUX INTRUSION DETECTION SYSTEM

Web: www.lids.org

Es un parche con el cual acentuamos la seguridad del kernel mediante la


implementación de un monitor de referencia y el MAC (Mandatory Access Control).
Cuando LIDS se pone en marcha, hace que la selección de ficheros de acceso, la
administración de operaciones del sistema/red, la memoria y el acceso I/O sean
imposibles de llevar a cabo ni siquiera por el root.

Tipos de Ataques

Veamos algunos de los tipos de ataques más comunes a los que nuestros sistemas
pueden andar expuestos por fallos de seguridad o malas gestiones de red.

ESCANEO DE PUERTOS
Un ataque se va fraguando poco a poco en silencio hasta que se hace consistente
suficientemente para dar el golpe. La primera fase de cualquier ataque puede ser
perfectamente la recogida de información. En un sistema se puede empezar por hacer
una exploración de los servicios y puertos que tiene activados para intentar entradas
fortuitas.

Existen varias técnicas de escaneo de puertos, la mayoría son fácilmente detectables y


evitables con un buen cortafuegos. Si nos basamos en las técnicas utilizadas, podemos
dividir los escaneos en tres grandes familias: open, half-open y stealth.

Los escaneos open se basan en el establecimiento de una conexión TCP completa


mediante el conocido como protocolo de acuerdo de tres vías o three-way handshake,
por lo que son muy sencillos de detectar y detener. Intentan establecer una conexión
con un puerto concreto del host atacado, y en función de la respuesta obtenida conoce
su estado.

Es una técnica rápida, sencilla, fiable y que no necesita de ningún privilegio especial en
la máquina atacante.

246
En los escaneos half-open el atacante finaliza la conexión antes de que se complete el
protocolo de acuerdo de tres vías, lo que de entrada dificulta, aunque no mucho, la
detección del ataque por parte de algunos detectores de intrusos muy simples. Dentro
de ésta técnica se encuentra el SYN Scanning: cuando el origen, atacante, recibe del
destino, máquina escaneada, los bits SYN+ACK, envía un bit RST en lugar del ACK
correspondiente a un acuerdo de tres vías completo. Los escaneos SYN son fácilmente
detectables y pueden ser bloqueados en cualquier cortafuegos.

Por stealth scanning se conoce a una familia de técnicas que cumplen algunas de las
siguientes condiciones:

x Eludir cortafuegos o listas de control de acceso.

x No ser registradas por sistemas de detección de intrusos, ni orientados a red ni


en el propio host escaneado.

x Simular tráfico normal y real para no levantar sospechas ante un analizador de


red.

Una de las técnicas que nos encontramos dentro de la familia de los escaneos stealth es
la conocida como SYN+ACK. La idea es muy simple, y consiste en una violación del
three-way handshake: el atacante, en lugar de enviar en primer lugar una trama SYN,
envía SYN+ACK. Si el puerto está abierto simplemente se ignora, y si está cerrado sabe
que no ha recibido previamente un paquete SYN, por lo que se considera un error y
envía una trama RST para finalizar la conexión.

Otra técnica dentro de los escaneos stealth es el FIN scanning: en este caso, el atacante
envía una trama con el bit FIN activo, ante lo que este responde con un RST si el puerto
está cerrado, o simplemente no responde en caso de estar abierto; como en el caso de
los escaneos SYN+ACK.

También, un método de escaneo algo más complejo es el ACK. El atacante envía una
trama con este bit activo, y si el puerto destino está abierto es muy posible que o bien el
campo TTL del paquete de vuelta sea menor que el del resto de las tramas RST
recibidas, o que el tamaño de ventana sea mayor que cero: en este caso no basta con
analizar el bit RST sino también la cabecera IP del paquete respuesta.

Este método es difícil de registrar por parte de los detectores de intrusos, pero se basa
en el código de red de BSD, por lo que es dependiente del operativo escaneado.

ATAQUES DE DICCIONARIO
Los ataques diccionarios se basan en la poca imaginación que a veces tienen los
usuarios a la hora de definir sus contraseñas. Su finalidad es probar como clave un
sinfín de combinaciones de palabras habituales y previsibles a la hora de definir una
contraseña.

247
ATAQUES DOS
Las negaciones de servicio (conocidas como DoS, Denial of Service) son ataques
dirigidos contra un recurso informático con el objetivo de degradar total o parcialmente
los servicios prestados por ese recurso. Las negaciones de servicio más habituales
suelen consistir en la inhabilitación de un determinado servicio o de un sistema
completo, bien porque ha sido realmente bloqueado por el atacante o bien porque está
tan degradado que es incapaz de ofrecer servicio a sus usuarios.

EXPLOITS
Son por lo general programas muy ligeros que se centran en explotar vulnerabilidades
conocidas de aplicaciones. No suelen tener mucho tiempo de vigencia ya que los propios
proveedores de software son los primeros que indagan Internet en busca de exploits que
les desvelen los posibles agujeros de seguridad que se les hayan podido pasar en la
aplicación.

Software de Seguridad

HPING

Web: www.hping.org

Potente herramienta para poner a prueba la seguridad de una red, ping es una
herramienta muy potente orientada a TCP/IP, ICMP y UDP.

DANSGUARDIAN 2.6.1-13

Web: www.dansguardian.org

Es un Proxy de filtrado de contenidos de Internet.

KNETFILTER 3.2.0

Web: http://expansa.sns.it/knetfilter

Knetfilter es un front-end KDE para las iptables. Es posible administrar un firewall de


forma sencilla y aun así realizar configuraciones avanzadas.

PORT SCAN ATTACK DETECTOR 1.3.1

Web: www.cipherdyne.com/psad

Es un programa escrito en Perl diseñado para trabajar junto al código de cortafuegos de


Linux. Está destinado a detectar los escaneos de puertos.

248
NESSUS 2.0.9

Web: www.nessus.org

El proyecto “NESSUS” tiene como objetivo proveer a la comunidad de Internet de una


herramienta de Scanner Remoto de Seguridad gratuita, potente, actualizada y fácil de
usar.

AGT 1.11

Web: http://sourceforge.net/projects/agt

Potente configurador para Iptables. AGT es una consola para Iptables que permite
configurar todas sus opciones en archivos de configuración más fáciles de entender.

SEAHORSE 0.6.3

Web: http://seahorse.sourceforge.net

Un completo gestor de llaves PGP/GPG.

DSNIFF 2.3

Web: www.datanerds.net/~mike/dsniff.html

Dsniff es una amplia colección de herramientas cuyo único objetivo consiste en


introducirse por cualquier medio en una red. Perfecto para comprobar la vulnerabilidad
de una red.

Distribuciones Orientadas a Seguridad

LOCALAREASECURITY

Web: www.localareasecurity.com

Distro “LiveCD” de 185 MB pensada para instalarse en un CD pequeño del tamaño de


una tarjeta de crédito. Basado en Knoppix y versión 2.4.20 del kernel. Está especializada
en la realización de pruebas de verificación de seguridad y en pruebas de intrusión.

PHLAX (PROFESIONAL HACKER’S LINUX ASSAULT KIT)

Web: www.phlak.org

Distro “LiveCD”. Especializada en análisis de seguridad, pruebas de intrusión, análisis


forense y auditorias de seguridad.

249
WARLINUX

Web: http://sourceforge.net/projects/warlinux

Esta distro en modo texto está especialmente pensada para la verificación de la


seguridad de redes inalámbricas. Funciona desde el CD y permite identificar las redes
inalámbricas que están al alcance del ordenador y la realización de auditorias de
seguridad y valoración de su nivel de seguridad.

Configuración Seguridad en Red Hat Linux Mandrake


9

Durante la instalación de Red Hat Linux en la pantalla de configuración del firewall, se le


ha dado la posibilidad de escoger el nivel de seguridad alto, medio o ninguno así como
también de permitir dispositivos específicos, servicios entrantes y puertos.

Después de la instalación, puede cambiar el nivel de seguridad de su sistema utilizando


la Herramienta de configuración de nivel de seguridad.

Para iniciar la aplicación, seleccione Botón de menú principal (en el panel) =>
Configuración del sistema => Seguridad o escriba el comando redhat-config-
securitylevel desde un indicador de comandos de shell (por ejemplo, en una terminal
XTerm o GNOME).

Figura 1. Herramienta de configuración de nivel de seguridad

250
Seleccione el nivel de seguridad deseado desde el menú despegable.

ALTO

Si elige Alto, su sistema no aceptará conexiones (que no sean parámetros por defecto)
que usted no haya definido específicamente. Por defecto, sólo las siguientes conexiones
están permitidas:

x respuestas de DNS

x DHCP — de modo que cualquier interfaz de la red que use DHCP se puede
configurar correctamente

Si elige Alto, su firewall no permitirá lo siguiente:

x Modo activo FTP (modo pasivo FTP, usado por defecto en la mayoría de clientes
sí debería funcionar)

x transferencias de archivos IRC DCC

x RealAudio™

x Clientes remotos del sistema X Window

Si va a conectar su sistema a Internet, pero no desea ejecutar un servidor, ésta es la


opción más segura. Si necesita servicios adicionales, puede elegir Personalizar para
permitir servicios específicos a través del firewall.

Nota: Si selecciona un firewall medio o alto, los métodos de autenticación de red (NIS y
LDAP) no funcionarán.

MEDIO

Si elige Medio, su firewall no permitirá que máquinas remotas tengan acceso a ciertos
recursos de su sistema. Por defecto, el acceso a los siguientes recursos no está
permitido:

x Puertos por debajo del 1023 — los puertos reservados estándar, usados por la
mayoría de servicios de sistema, tales como FTP, SSH, telnet, HTTP, y NIS.

x El puerto de servidor NFS (2049) — NFS se deshabilita tanto para servidores


remotos como para clientes locales.

x El modo de pantalla local del sistema X Window para clientes X remotos.

x El puerto de servidor X Font (por defecto, xfs no se escucha en la red; está


deshabilitado en el servidor fuente).

Si quiere permitir recursos tales como RealAudio™ a la vez que bloquea el acceso a
los servicios normales del sistema, elija Medio. Seleccione Personalizar para permitir
servicios específicos a través del firewall.

251
NINGÚN FIREWALL

Ningún firewall proporciona acceso completo a su sistema y no realiza comprobaciones


de seguridad. La Comprobación de seguridad es la deshabilitación del acceso a ciertos
servicios. Esto debería estar seleccionado únicamente si usted está conectado a una red
de confianza (no Internet) o si desea hacer más configuraciones de firewall en otro
momento.

Elija Personalizar para añadir dispositivos de confianza o para permitir servicios de


entrada adicionales.

DISPOSITIVOS FIABLES

Al seleccionar cualquiera de los Dispositivos fiables se permite el acceso a su sistema a


todo el tráfico de ese dispositivo; queda excluido de las reglas del firewall. Por ejemplo,
si está ejecutando una red local, pero está conectado a Internet por medio de un acceso
remoto PPP, puede comprobar eth0 y el tráfico proveniente de su red local será
permitido. Seleccionar eth0 como de confianza significa que todo el tráfico a través de
Ethernet está permitido, pero la interfaz ppp0 sigue teniendo un firewall. Si desea
restringir el tráfico en una interfaz, déjela sin marcar.

No es recomendable que haga cualquier dispositivo conectado a redes públicas, como


Internet, un Dispositivo fiable.

PERMITIR LA ENTRADA

Activar estas opciones permite que los servicios especificados pasen a través del
firewall. Nota, durante la instalación de la estación de trabajo, la mayoría de estos
servicios no están instalados en el sistema.

DHCP

Si permite preguntas y respuestas DHCP de entrada, está permitiendo que cualquier


interfaz de red que use DHCP determine sus direcciones IP. Normalmente DHCP está
activado. Si DHCP no está activado, su ordenador no podrá obtener una dirección IP.

SSH

Secure SHell (SSH) es un conjunto de herramientas para conectarse y ejecutar


comandos en una máquina remota. Si desea utilizar herramientas SSH para acceder a su
máquina a través de un firewall, active esta opción. Para acceder a su máquina
remotamente, utilizando herramientas SSH, necesita tener instalado el paquete openssh-
server

TELNET

Telnet es un protocolo para conectarse a máquinas remotas. Las comunicaciones Telnet


no son cifradas y no proporcionan seguridad ante la posibilidad de que alguien husmee
la red. No se recomienda permitir el acceso Telnet de entrada. Si quiere permitir el
acceso de entrada a Telnet, tendrá que instalar el paquete telnet-server.

252
WWW (HTTP)

Apache (y otros servidores Web) utilizan el protocolo HTTP para servir páginas web. Si
está planeando hacer su servidor Web accesible para todos, active esta opción. No se
requiere esta opción para visualizar páginas localmente o para desarrollar páginas web.
Tendrá que instalar el paquete apache si quiere servir páginas web.

Al activar WWW (HTTP) no se abrirá un puerto para HTTPS. Para activar HTTPS,
especifíquelo en el campo Otros puertos.

MAIL (SMTP)

Si quiere permitir la entrega de correo a través de su firewall, de modo que hosts


remotos puedan conectarse directamente a su máquina para entregar correo, active esta
opción. No necesita activarla si recoge el correo desde su servidor de ISP utilizando
POP3 o IMAP, o si usa una herramienta como por ejemplo fetchmail. Tenga en cuenta
que un servidor SMTP que no esté configurado adecuadamente puede permitir que
máquinas remotas usen su servidor para enviar correo basura.

FTP

El protocolo FTP se utiliza para transferir archivos entre máquinas en red. Si quiere hacer
su servidor FTP accesible para todos, active esta opción. Necesita instalar el paquete wu-
ftpd para que esta opción sea de utilidad.

Haga clic en OK para activar el firewall. Después de presionar OK, las opciones
seleccionadas son traducidas a comandos iptables y escritos al archivo
/etc/sysconfig/iptables. El servicio iptables es también iniciado para que el cortafuegos se
active inmediatamente después de guardar las opciones seleccionadas.

Aviso: Si tiene un firewall configurado o cualquier regla de firewall en el archivo


/etc/sysconfig/iptables, el archivo será borrado si selecciona Ningún Firewall y luego
presiona OK para guardar los cambios.

Las opciones seleccionadas son también escritas al archivo /etc/sysconfig/redhat-config-


securitylevel para que así la configuración pueda ser recuperada la próxima vez que se
arranque la aplicación. No modifique este archivo manualmente.

253
LO QUE HEMOS APRENDIDO
‡ GNU/Linux es uno de los S. O. más seguros que se conocen y más aun gracias a
su estructura permite detectar mejor y protegernos de cualquier ataque o
intrusión no autorizada.

‡ Hay varios tipos de intrusos: el curioso, el malicioso, el intruso de perfil alto, el


competidor, los gorrones, el saltador.

‡ Los programas espía o spyware son aplicaciones que recopilan información sobre
una persona u organización sin su conocimiento.

‡ El adware es software que durante su funcionamiento despliega publicidad de


distintos productos o servicios.

‡ La encriptación de datos es uno de los sistemas de seguridad más antiguos y


efectivos. Tanto si los datos están guardados en local como si vamos a
transportarlos a través de cualquier red.

‡ Un virus se define como un pequeño programa escrito intencionadamente para


instalarse en el ordenador de un usuario sin el conocimiento o permiso de éste y
causar daño o recopilar información.

‡ Un firewall o cortafuegos es una barrera que impide a los intrusos poder acceder
a una red o sistema informático creando una separación entre ellos y la red
exterior o Internet.

‡ Los tipos de ataques posibles son: escaneo de puertos, ataques de diccionario,


ataques dos, exploits,

‡ Existen distribuciones orientadas a la seguridad.

‡ La distribución Red Hat Linux 9 posee una herramienta gráfica para configurar los
niveles de seguridad.

254
ANOTACIONES
.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

255
TEST
Marcar la respuesta correcta.

1. ¿Existen virus para los sistemas GNU/Linux?


† SÍ.
† No.
† SÍ, pero pocos.

2. ¿Cómo clasificamos los tipos de intruso?


† Curioso, malicioso, competidor, no peligroso.
† Curioso, perfil alto, malicioso, peligroso.
† Curioso, perfil alto, competidor, malicioso.

3. Spyware es:
† Una distribución GNU/Linux.
† Aplicación que recopila información.
† Software que despega publicidad.

4. Un virus se define como:


† Un programa malo para nuestro sistema.
† Una aplicación preparada para agotar nuestros recursos.
† Programa escrito para instalarse en un ordenador sin el conocimiento del usuario.

5. ¿Qué es el firewall?
† Un antivirus.
† Un programa.
† Un cortafuegos.

6. ¿Qué son los exploits?


† Programas que explotan.
† Un tipo de virus.
† Un programa.

256
Linux Avanzado

Copias de Seguridad

i ¿Por qué Hacer Copias de Seguridad?

i ¿A Qué se Debe Hacer una Copia de Seguridad?

i Políticas de Copias de Seguridad. Tipos Backups

i Medios Utilizados para el Almacenamiento de Backups

tema 13
i Comandos y Aplicaciones Utilizados en la Realización de
Backup

Objetivos:
i Comprender cuándo y por qué debo hacer un backup.

i Saber hacer backups de mi sistema.

257
258
¿Por qué Hacer Copias de Seguridad?

Un administrador de sistemas tiene una amplia variedad de tareas importantes, una de


todas ellas es la realización de backups o copias de seguridad y la restauración del
sistema en el caso de pérdida de datos.

Las copias de seguridad o salvaguarda del sistema son, con frecuencia, el único
mecanismo de recuperación que poseen los administradores para poder restaurar una
máquina, que por cualquier motivo, haya perdido DATOS.

Realizar backups del sistema, y su posterior verificación, es una forma importante de


proteger los datos de posible corrupción o pérdida debido a algún tipo de fallo ya sea
tanto hardware o software como humano.

No siempre es posible predecir o prevenir virus, accidentes, desastres naturales o


ataques en tu sistema, por lo tanto es muy conveniente la realización de copias de
seguridad periódicas de los datos del sistema.

Los DATOS es algo tan importante que en muchos casos no pueden ser reemplazados.

Los principales propósitos para realizar backups en un sistema son:

x Permitir la restauración de ficheros individuales.

x Permitir la restauración de sistema de ficheros enteros.

A continuación se van a numerar algunas de las razones por las que hacer copias de
seguridad en una organización es muy importante:

x Fallos de hardware: Los dispositivos hardware pueden estropearse.

x Errores del usuario: Que se borren archivos o se sobrescriban accidentalmente.

x Errores del administrador: Que se borre algún fichero o alguna cuenta de usuario
por error.

x Fallos de Software: Las aplicaciones informáticas pueden fallar dando lugar a una
pérdida de DATOS.

x Hacking: Que alguien entre en el sistema sin autorización y borre ficheros


intencionadamente.

x Robo: Una máquina se puede reemplazar en cambio los DATOS no.

x Desastres naturales: Lluvia, Fuego, temblores de tierra. Pasa lo mismo que con
Robo.

x Otro tipo de desastres: explosiones, etc...

259
¿A Qué se Debe Hacer una Copia de Seguridad?

Antes de comenzar a realizar un backup se debe decidir qué DATOS son importantes. Se
debe decidir que ficheros se deben copiar para poder recuperar el sistema en el caso de
que ocurra un problema.

Hay dos formas de pensar respecto a la realización de copias de seguridad:

x Copiar sólo lo que sea único al sistema, incluyendo ficheros de usuarios, bases de
datos, ficheros de configuración que se hayan modificado e importantes
directorios del sistema que se hayan modificado.

x Copiar Todo, porque restaurar un sistema completo es más fácil que restaurar
uno incompleto y el medio de almacenamiento no es tan caro.

Lo que realmente se recomienda es hacer copias de seguridad de forma periódica a


ficheros que contengan información vital del sistema o información de los usuarios.

Es interesante el tomar notas de todos los cambios que se hacen al sistema porque a la
hora de realizar copias de seguridad es más fácil el hacer decisiones sobre lo que se
debe copiar. Si se copia todo el sistema puede resultar muy caro debido al coste del
medio de almacenamiento.

Existen distintas categorías de datos, y cada una de ellas requiere un plan de actuación
independiente.

x Sistema Operativo: Dependerá del proceso de instalación y actualización del


sistema operativo. Se suelen tener los CDs de instalación por lo tanto no suele ser
necesaria su copia. Si se han hecho cambio en el SO, se podrían sólo archivar
dichos cambios, aunque con el paso del tiempo es difícil recordar todos los
cambios realizados.

x Aplicaciones: No se deben copiar las aplicaciones ya que se suelen tener los CDs
de instalación o se pueden obtener de Internet

x Ficheros y directorios del sistema. Algunos de los ficheros o carpetas a los que se
debe hacer copia de seguridad:

o Ficheros de configuración de /etc (/etc/passwd, /etc/inittab, /etc/crontab,


/etc/fstab etc).

o Ficheros de configuración de otros directorios como /usr/lib

o Por supuesto se deben backup el directorio de cada usuario en /home

o Importantes directorios del sistema que se hayan modificado como /bin,


/usr/bin

260
o También se pueden copiar los mensajes de correo de cada usuario del
sistema.

o Las fuentes del kernel si has actualizado o compilado tu propio kernel


(/usr/src/linux)

o No se deben hacerse copias del sistema de archivos virtual /proc, dispositivos


montados en /mnt, de sistemas importados por la red, ni archivos temporales
en /tmp

o Ficheros especiales como shell o perl scripts.

o Ficheros relacionados con la ejecución de un proyecto importante.

Políticas de Copias de Seguridad. Tipos Backups


1. Copia de Seguridad Completa:

También llamada Total o full backup. Se copian todos los datos, es decir, todos los
archivos del sistema se copian al medio de almacenamiento.

x Ventajas: Facilidad de realización.

x Inconvenientes: Proceso muy lento, se consumen muchos recursos, y dificultad


en el proceso de restauración al tener mayor número de cintas.

2. Copia de Seguridad Incremental o Progresiva:

Llamado Incremental backup. Con este tipo se hace copia a todos los archivos que han
sido modificados desde realización de la última copia de seguridad (ya sea total o
incremental).

Para localizar los ficheros modificados en los últimos 7 días: find /export/home/ -mtime 7
-print

x Ventajas: Se ahorra tiempo en la ejecución del proceso. Se requiere menor


capacidad de almacenamiento.

x Inconvenientes: El proceso de restauración es más complejo. Se requiere una


restauración completa y todas las incrementales hasta la fecha.

3. Copia de Seguridad Diferencial:

Differential Backup. Se hace copia a todos los archivos modificados desde la última
copia total.

x Ventajas: El proceso de restauración es más simple. Se requiere sólo la última


copia completa y la última copia de seguridad diferencial.

x Inconvenientes: Produce cierta redundancia de datos. Requiere mayor espacio en


medio de almacenamiento y más tiempo de ejecución.

261
NIVELES DE COPIA DE SEGURIDAD
Copias completas son de Nivel 0. Las copias de nivel 1 guardan los archivos modificados
desde la última copia de nivel 0 (desde el último backup completo) y las copias de nivel 2
guardan los archivos modificados desde la última copia de nivel 1, y así sucesivamente.

En realidad el nivel máximo utilizado en la práctica es el 2.

ESTRATEGIAS HABITUALES
Un plan de copias típico podría ser realizar periódicamente copias de nivel 0 y entre ellas
copias de nivel 1.

Por ejemplo, hacer una copia total semanalmente y realizar copias incrementales o
diferenciales cada día.

Otro ejemplo de estrategia podría ser: Copia total del sistema una vez al mes, y cada
noche copiar los archivos que se hayan modificado en las últimas 24 horas o copiar cada
semana los archivos que hayan cambiado en la última semana.

Los administradores de sistemas normalmente hacen un plan de copias según las


particiones del disco. Las diferentes particiones requieren distinta planificación de copia
de seguridad en la mayoría de los escenarios.

Algunas particiones, como /etc y los sistemas de ficheros de root deberían tener una
copia de seguridad después de que se haga algún cambio que es demasiado importante
para perder. Se debería hacerse copias totales de estos ficheros.

Por otro lado, se deberían realizar copias incrementales o diferenciales de las particiones
que son solo usadas para almacenar archivos de usuarios.

Si se hacen backups de las particiones que tengan aplicaciones y programas, estas se


deberían hacer cuando nuevos programas se hayan instalado o se haya hecho algún
cambio importante.

Medios Utilizados para el Almacenamiento de


Backups

Existen multitud de dispositivos diferentes donde almacenar nuestras copias de


seguridad, desde un disco flexible hasta un SAN pasando por distintas unidades de
cinta magnética de última generación, pero cada uno de estos medios va a tener sus
ventajas e inconvenientes.

Las copias se deben hacer sobre un medio independiente del sistema, un medio que al
mismo tiempo sea fiable, relativamente rápido, barato y de capacidad suficiente.

Tanto se utilice un medio como otro lo más importante a destacar es que este sea

262
estándar.

Cada administrador deberá elegir el medio que más se adapte a las necesidades de su
sistema informático. La elección de un medio u otro dependerá de muchos factores tales
como:

x La cantidad de datos a copiar.

x El tiempo disponible.

x El presupuesto del que se disponga.

Algunos de los medios de almacenamiento utilizados en la realización de backups en


Linux son: cintas magnéticas, floppies, discos, CDs, DVDs, y el almacenamiento en Red.
Estas son algunas de las ventajas e inconvenientes de los mismos:

Cintas Floppy Disks Discos DVD CD SAN


Fiables Baratos Muy rápidos Rápidos Rápidos Muy rápidos
Gran Portables Gran Acceso Acceso Muy fiable
Capacidad Ficheros Capacidad Selectivo Selectivo Gran
Coste medio individuales Full backups Capacidad y Bajo Coste Capacidad
Reutilizables Acceso coste medio Datos
Selectivo Estáticos

Lento Baja Fiabilidad Caros Incompatibilid Poca Muy caros


Acceso Muy baja Frágiles ad entre capacidad Requiere
Secuencial capacidad formatos Muy frágiles elevado BW
Frágiles Fiabilidad baja

Capacidades aproximadas de los distintos medios.

Cintas: 40GB-320GB

DVD: 4GB

CD: 700MB

Discos: 500GB

La lista de dispositivos disponibles en /dev pueden encontrarse en un archivo de texto


que se encuentra en /usr/src/linux/Documentacion/devices.txt que se genera al
descomprimir las fuentes del kernel. Algunos de ellos a modo de ejemplo:

/dev/ht0: IDE tape drive

/dev/nt0: IDE tape drive no rewind supported

/dev/rst0: QIC tape drive

/dev/st0: SCSI tape drive

/dev/iseries/vt0: IBM iseries tapes

El enlace simbólico que se suele utilizar para las cintas es /dev/tape

263
CINTAS MAGNÉTICAS
Los dispositivos de backup por excelencia hasta el momento han sido las cintas
magnéticas, ya que presentan ciertas ventajas frente a otro medio, estas podrían ser alta
capacidad, fiabilidad, durabilidad de los datos. Pero en cambio, las cintas también
presentan algunas desventajas, como podrían ser su lentitud y su uso limitado.

Hay una amplia variedad de tipos de cintas disponibles y Linux soporta la mayoría. El
siguiente cuadro muestra algunas de las características de algunos tipos de cintas
magnéticas disponibles en el mercado:

9 pistas (½ pulgada) QIC (¼ pulgada) 4mm (1/8 pulgada )

Son las más antiguas. QIC: Quarter Inch Compability DAT: Digital Audio Tapes
Nueve pistas: 8 datos y 1 Falta de estándares. No son DDS: Digital Data Storage
paridad silenciosas. Sustituyendo a QIC. Más
Están en desuso Unidades no muy caras, pero pequeñas y silenciosas. Pero
Alta fiabilidad las cintas son caras. no tan fiables como 8mm.
Capacidad limitada - 225MB Uso: 5000 copias Dimensiones: 76x51x12
Dimensiones: Capacidad: 1'3GB – 20GB
152x102x17mm Duplicada con compresión
Capacidad: 40MB – 15GB (40GB)
Tasa Transferencia: 150 - Tasa Transferencia: 150 –
500KB/s 500KB/s
Unidades múltiples con
cambio automático de cintas.
Cap: 240GB

8mm DLT LTO

Llamadas Hexabyte DLT: Digital Linear Tape LTO: Linear Tape Open
Fiables y silenciosas Dimensiones: Conocido por Ultrium
Precio elevado 100x100x25mm Desarrollado IBM y HP
Dimensiones:122x84x45mm Capacidad:DLT:100GBSDLT:3 Dimensiones: 105x102x21,5
Capacidad: 300M – 7GB 20GB mm
Duplicada con compresión Unidad sencilla y múltiple con Gran capacidad y alto
(14GB) cambiador de cintas rendimiento
Tasa de transferencia: 250 - automático. LTO1: 100 GB -200GB.
500KB/s Muy alta capacidad y alta LTO4:800 -1600GB
Unidades con cambio velocidad de transferencia. LTO1:30MB/s y LTO4:
automático de cintas. Interfaz SCSI o Fibra 320MB/s
Uso:100 copias Larga duración de datos (15- Larga duración de datos (15-
30 años). 30 años)
Unidades simples y múltiples.

264
Además de todos estos tipos, existen otras clases tales como
AIT (Advance Intelligent Tape), 3480 Tape, 3490 Tape, 3590
Tape, 9840, 9940. Y entre los fabricantes de cintas
magnéticas nos encontramos con Imation, Quantum, Fuji,
Maxell, HP, IBM, TDK, Verbatim, Seagate y Sony.

Además existen bibliotecas y racks de unidades de cintas


magnéticas que son utilizadas, sobre todo, para el
almacenamiento de datos. Hay bibliotecas pueden llegar a
almacenar hasta 300.000 cintas.

Si cada cinta es capaz de almacenar 200GB, en total se almacenarían unos 60000TB

Comandos y Aplicaciones Utilizados en la Realización


de Backups

En Linux hay una gran variedad de programas que permiten al administrador de


sistemas realizar copias de seguridad. Estos programas van desde la realización de un
script, que se automatiza con cron, hasta la utilización de paquetes de software.

Cada distribución ofrece distintas herramientas para realizar esta tarea y cada una va a
tener sus beneficios dependiendo del entorno.

Dentro de las utilidades que existen para realizar backups hay dos tipos:

x Las orientadas a copiar sistemas de ficheros enteros.

x Las orientadas a copiar ficheros y directorios individualmente.

Una característica importante a la hora de realizar backups es el poder seleccionar


archivos del backup a la hora de la restauración.

Esto te permite el sólo tener que restaurar ciertos archivos, en caso de que
accidentalmente se borren, en lugar de tener que realizar la restauración completa.

Pasemos a nombrar los programas más comunes, incluyendo tanto comandos como
aplicaciones basadas en GUI.

CP:
La forma más sencilla de realizar copias sería el hacer simples copias de los ficheros y
directorios. Da la opción de copiar ficheros y directorios individualmente, pero no
empaqueta ni comprime. Solo se utiliza en las ocasiones que se necesiten copiar
ficheros pequeños.

265
DD:
Este comando se usaría para copiar bloques de datos. Por ejemplo, un sistema de
ficheros entero, copia de un disco duro completo. Es útil para transferir backups a cintas
con dd if=backup.gz of=/dev/nrsa0

DUMP/RESTORE:
“dump” es un programa clásico y disponible en la mayoría de las distribuciones.

Lo que consigue dump es un volcado de datos, es decir, escribe en el medio de


almacenamiento un bloque de datos correspondiente a un Sistema de Ficheros
completo. Este comando es válido para los sistemas de ficheros ext2 y ext3.

Hay distintas versiones de dump y restore, rdump/rrestore se pueden usar para hacer
copias de seguridad a través de la red.

Las opciones más usadas de dump:

0-9: Dump Levels

-b: blocksize

-u: actualiza /etc/dumpdates al finalizar la copia.

-f: indica el dispositivo

“restore” es la orden que se utiliza para la recuperación de los datos, es decir, es un


programa para extraer sistemas de ficheros completos de backups realizados con dump.

Las opciones más usadas:

-r: Restaura cinta completa.

-f: Indica el dispositivo donde está el backup.

-i: Modo interactivo.

-x: Extraer.

-t: Imprime los nombres de los archivos.

TAR: TAPE ARCHIVER


“tar” es una herramienta de fácil manejo que está disponible en todas las distribuciones
de Linux.

Es la opción más usada. Permite volcar ficheros individuales o directorios completos a


un único archivo contenedor. Versión estable:tar-1.15.1

266
Opciones más usadas de tar:

-c: create. Crea contenedor

-x: Extrae de un contenedor

-t: Lista archivos de un contenedor

-r: append. Añade archivos al final de un contenedor.

-v: verbose

-f: file

-p: para conservar los permisos

-z: compresión/descompresión gzip/ungzip

-M: para crear multivolumenes

Tar sólo realiza copias completas por si solo, haría falta un script para realizar copias
progresivas y diferenciales.

La compresión reduce la cantidad de capacidad de almacenamiento requerido, pero si


algún dato del contenedor comprimido se encuentra corrupto, podría ocurrir que no se
pudiera descomprimir por lo que se perderían todos los datos.

Si en cambio, hay un mínimo error en una tar sin comprimir, este se podría recuperar.

CPIO: COPY IN OUT


Este comando es similar a tar, cpio copia ficheros a y desde un contenedor, admite
archivos binarios, ASCII. Tiene la opción de enviar mediante una tubería datos a otros
programas.

Opciones más usadas de cpio:

-o: copiar fuera “out”. Genera un contenedor en stdout

-i: copiar dentro “in”. Extrae archivos de stdin

-t: verificar tabla de contenido

Ventaja respecto a tar: Empaqueta los datos más eficientemente, pero presenta el
inconveniente que no es fácil de usar cuando se necesitan varios volúmenes. Versión:
cpio-2.6.2

267
AFIO:
Soporta la realización de backups multivolumen y es muy similar a cpio.

Afio utiliza compresión, y es más fiable porque cada archivo se comprime


individualmente. En caso de corrupción de algún dato, no todo el backup se pierde, si no
que el daño queda aislado a archivos individuales.

Licencia LGPL. Versión estable: afio-2.5-2

TAPER:
Es una solución fácil de usar para realizar backups.

Esta aplicación puede realizar full backups, incrementales y diferenciales.

Está diseñado para hacer copias en cintas aunque puede realizar las copias en discos y
en los distintos dispositivos de almacenamiento que Linux soporta.

Esta aplicación se puede usar tanto en consola como con GUI.

Taper mantiene un fichero que da información acerca de los ficheros que hay en el
archivo empaquetado. Última versión estable: 6.9b. No soporta archivos > 4GB

PAX:
Este comando está definido bajo el estándar de POSIX. Se creó porque las distintas
versiones de tar y cpio se fueron haciendo incompatibles. Este comando combina la
funcionalidad d tar y cpio.

Pax lee y escribe en varios de los formatos de cpio y tar además de tener sus formatos
propios.

FLEXBACKUP:
Flexbackup es fácil de configurar y usar.

Se usa en consola. Utiliza dump, afio, tar, cpio, pax.

Puede realizar distintos tipos de backups, total, incremental y diferencial.

Puede realizar compresión a distintos niveles.

Mantiene una tabla de contenido y ficheros log.

El fichero de configuración de Flexbackup: /etc/flexbackup.conf.

man flexbackup y man 5 flexbackup.conf

Versión estable: flexbackup-1.2.1

268
AMANDA: ADVANCED MARYLAND AUTOMATIC NETWORK.
Esta aplicación es de software libre aunque no es GNU. Amanda es una aplicación
cliente-servidor que permite hacer copias de seguridad remotas a través de la red. Este
programa requiere un servidor con gran capacidad de disco y que tenga conectado a el
un dispositivo de almacenamiento.

Está compuesto de dos partes, un cliente que se ejecuta en la máquina que tiene el
sistema de almacenamiento y un servidor que se ejecuta en las máquinas que se desean
backup.

El cliente se conecta al servidor y solicita los datos que se van a copiar en el medio de
almacenamiento. Este utilizará cualquiera de los medios de almacenamiento vistos
anteriormente aunque la mayoría utiliza las cintas magnéticas. Directorio de
configuración: /etc/Amanda. Versión más estable y reciente: amanda-2.4.4p4

BACULA:
Es una aplicación de software libre disponible bajo la licencia GPL. Es una aplicación
muy eficaz basada en estructura cliente/servidor que permite la realización de copias de
seguridad y restauración de sistemas. Está compuesta de una amplia colección de
herramientas para poder cubrir las necesidades de backups de una red extendida. Es
también escalable a pequeñas redes. Es más fácil de usar y de configurar y además tiene
mejores manuales y documentación que Amanda.

ARKEIA:
Arkeia es una solución comercial y profesional pero no es software libre. Este programa
es muy útil y eficiente cuando una red ha crecido mucho y el número de clientes,
servidores y aplicaciones ha aumentado considerablemente.

Da soporte a distintos sistemas operativos y es capaz de realizar copias de seguridad en


distintos medios de almacenamiento. Esta aplicación utiliza un GUI en el servidor, y cron
para automatizar tareas.Los ficheros logs están muy bien organizados y dan mucha
información que resulta muy útil.

Además de todos estos existen otros muchos programas (ya sean o no de pago) para
realizar backups, como son: Midnight backup, Simple backup, Partition Image, Perfect
backup etc.

Las mejores aplicaciones, para la realización de backups, en el año pasado según los
lectores de la revista “Linux Journal” (www.linuxjournal.com) fueron:

x Tar.

x Amanda.

x Arkeia.

269
LO QUE HEMOS APRENDIDO
‡ Realizar backups del sistema, y su posterior verificación, es una forma importante
de proteger los datos de posible corrupción o pérdida debido a algún tipo de fallo
ya sea tanto hardware o software como humano.

‡ Se recomienda es hacer copias de seguridad de forma periódica a ficheros que


contengan información vital del sistema o información de los usuarios.

‡ Tipos de backups: Completo, incremental o progresivo, diferencial.

‡ Existen tres niveles de seguridad, nivel 0 copias completas son de, nivel 1
archivos modificados, nivel 2 archivos modificados desde la ultima copia a nivel
1.

‡ Existen varios medios de almacenamientos para los backups dependiendo de la


cantidad de información que copiamos.

‡ Tenemos varios comandos y aplicaciones para realizar backups de nuestro


sistema GNU/Linux: cp, dd, dump/restore, tar, cpio, afio, taper, pax.

270
ANOTACIONES
.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

271
TEST
Marcar la respuesta correcta.

1. ¿Cuándo debemos hacer una copia de seguridad?


† Cada vez que apaguemos el ordenador.
† Cuando lo necesitemos.
† Periódicamente.

2. ¿A qué debemos hacerle una copia de seguridad?


† A todo el sistema.
† A los ficheros que me interese.
† A los ficheros con información importante e imprescindible.

3. ¿Qué es Amanda?
† Aplicación para hacer copia de seguridad.
† Un comando.
† Una distribución GNU/Linux orientada a copias de seguridad.

4. ¿Cuál de estos comandos puedo utilizar para hacer copias de seguridad?


† Tar.
† Ls.
† Mv.

5. ¿Qué directorio o directorios de nuestro sistema GNU/Linux deberían tener copia de


seguridad?
† /etc y ficheros nuestros.
† /etc .
† /etc y algunos ficheros de root.

6. ¿En cuál directorio tenemos la lista de los dispositivos disponibles?


† /dis.
† /dev.
† /etc/dev.

272
ACTIVIDADES
1. Realiza una copia de seguridad de cualquier fichero en tu floppy. Utilizando los
comandos: tar, cpio.

2. Hacer una copia de seguridad de uno de los sistemas que tengamos instalados.
Borrar esa partición, y después recuperar nuestro sistema.

273
274


Solucionarios

275
276

Test

Solucionarios

277
278
TEST tema 1:
Linux Avanzado
Marcar la respuesta correcta.

1. Linus Torvadls es:


† El creador del proyecto GNU.
„ Creador de un núcleo para un nuevo sistema operativo, Linux.
† Profesor de la Universidad de Holanda.

2. El creador del proyecto GNU fue:


† Richard Gnu.
„ Richard Stallman.
† Andrew Tanenbaum.

3. Software libre significa:


† Software gratuito.
† Programas de los cuales podemos conseguir su código fuente pagando por ello.
„ Programas de los cuales podemos conseguir su código fuente, estudiarlo,
modificarlo y redistribuirlo sin que nos obliguen a pagar por ello.

4. ¿Cuáles de estas no es una licencia software?


„ GNU/Linux.
† GPL.
† Freeware.

5. ¿Qué significan las siglas FSF?


† Force Software Foundation.
† First Software Foundation.
„ Free Software Foundation.
6. GPL es:
† El nombre de un sistema operativo.
† El nombre del primer sistema operativo creado por Linus Torvadls.
„ Licencia creada por Richard Stallman.

279
TEST tema 2:
Linux Avanzado
Marcar la respuesta correcta.

1. ¿Cuáles de estas no es una tarea del administrador de sistemas?


† Gestión de recursos del sistema.
„ Cuotas del mes.
† Seguridad del sistema.

2. El sistema GNU/Linux esta compuesto por:


† Hardware y software.
„ Tres elementos básicos software.
† El kernel y los programas.

3. ¿Qué es una distribución GNU/Linux?


† Cualquiera de sus programas.
† Las compañías que se encargan de distribuir los sistemas GNU/Linux.
„ Colección de software que forma un sistema operativo basado en el kernel del
Linux.

4. ¿Cuál no es una distribución GNU/Linux?


† Red Hat Woody .
„ ReHat.
† Debian Sid.

5. ¿Qué son los documentos “Contrato social Debian”?


† Documentos que tienes que firmar cuando compras una distribución Debian.
† Documentos propios de ello que certifican la calidad de la distribución.
„ Documentos que especifican en detalle cómo se implementa la distribución
Debian, especificando su filosofía y sus políticas.

6. ¿Qué núcleo de Linux utiliza Red Hat Linux 9?


† 1.x.
† 2.3.x.
„ 2.4.x.

280
TEST tema 3:
Linux Avanzado
Marcar la respuesta correcta.

1. ¿Para que es necesario realizar particiones del disco duro?


† Para dejar espacio libre.
„ Para poder tener varios sistemas operativos o almacenamientos.
† Para nada.

2. ¿Qué tamaño debe tener la partición de intercambio?


† El que queramos.
† Igual que el de la partición donde vayamos a instalar Linux.
„ Dos veces la memoria RAM.
3. ¿Qué es una distribución GNU/Linux?
† Cualquiera de sus programas.
† Las compañías que se encargan de distribuir los sistemas GNU/Linux.
„ Colección de software que forma un sistema operativo basado en el kernel del
Linux.

4. ¿Cuántos tipos de particiones existen?


† Tres (física, lógica, extendida).
„ Tres (extendidas, primarias, lógicas).
† Dos (primarias, extendidas).

5. ¿Debemos al menos crear un usuario más además del root?


† No.
„ Si.
† Depende de la seguridad que le queramos dar a nuestro sistema.

6. ¿Cuáles son los gestores de arranque?


† LILO, GUB.
† LOLI, GRUB.
„ GRUB, LILO.

281
TEST tema 4:
Linux Avanzado
Marcar la respuesta correcta.

1. ¿Cuál no es una herramienta de administración?


† Linuxcof.
„ Wincof.
† Shells.

2. La shell es:
† Una distribución GNU/Linux más.
† Un programa más de usuario.
„ Un lenguaje de programación.
3. ¿Qué es una distribución GNU/Linux?
† Cualquiera de sus programas.
† Las compañías que se encargan de distribuir los sistemas GNU/Linux.
„ Colección de software que forma un sistema operativo basado en el kernel del
Linux.

4. ¿Cuál no es una herramienta de documentación?


„ Man.
† Help.
† Info.

5. ¿Por qué son los scripts importantes?


† Facilitan las tareas al usuario.
† Agilizan la instalación del sistema.
„ Las herramientas de administración y los servicios se invocan mediante scripts.
6. ¿Qué comando es incorrecto?
† Man ls.
„ 4 man ls.
† Man 4 ls.

282
TEST tema 5:
Linux Avanzado
Marcar la respuesta correcta.

1. ¿Para qué sirve el comando chown?


† Cambia los permisos de usuario.
„ Cambia el dueño de un archivo.
† Cambia los permisos de un grupo.

2. ¿Qué hace este comando ‘mv a.out /prog1’?


† Copia a.out en /prog1.
„ Mueve a.out a /prog1.
† Renombre el archivo.

3. ¿Qué hace el comando finger?


† Busca algo en concreto.
„ Muestra información de un usuario.
† Muestra información del sistema.

4. ¿Qué necesitamos para colocar un programa en background?


† Linux.
„ &.
† #.

5. ¿Qué es un intérprete de comandos?


† Un programa de nuestra distribución GNU/Linux.
„ La parte del sistema operativo encargado de ejecutar las órdenes básicas para el
manejo del sistema.
† Herramienta única para configurar un sistema GNU/Linux.

6. ¿Qué debe aparecer en todos los scripts Bash?


„ #!/bin/bash.
† #!/bin/bsh.
† #!/bin/sch.

283
TEST tema 6:
Linux Avanzado
Marcar la respuesta correcta.

1. Un sistema de ficheros es aquel responsable de:


† Almacenar ficheros.
† Almacenar información.
„ Aspectos relacionados con los ficheros.
2. ¿Cuál es el sistema de ficheros utilizado en Linux?
† Ext4.
† NTFS.
„ Ext2.
3. ¿Cuál es el fichero que indica los dispositivos que van a ser montados en el arranque
o los extraíbles que podrán ser montados?
† /etc/fmount.
„ /etc/fstab.
† /bin/fstab.

4. ¿Qué comando utilizamos para cambiar, borrar o modificar los permisos de los
ficheros?
„ Chmod.
† chonw..
† chgpr.

5. Cuales son los tipos de enlaces que existen:


† Blando, directo.
„ Duros, débiles.
† Simbólicos, indirectos.

6. Cuando listamos un directorio con el comando ls, ¿qué significado tiene la cada de
10 caracteres que nos muestra?
† Permisos de usuario, grupo, numero de enlaces simbólicos, tipo de recurso, el
identificador del dueño, el identificador del grupo, el tamaño en bloque, la fecha y
hora de la ultima modificación y el nombre del recurso.
† Permisos de usuarios y grupos.
„ Tipo de recurso, el número de enlaces duros que posee, el identificador del
dueño, el identificador del grupo, el tamaño en bloque, la fecha y hora de la
ultima modificación y el nombre del recurso.

284
TEST tema 7:
Linux Avanzado
Marcar la respuesta correcta.

1. ¿Cuál es el fichero de configuración del LILO?


† /etc/grub/lilo.conf.
„ /etc/lilo.conf.
† /boot/lilo.conf.

2. ¿Cuántos runlevels tenemos?


† 7, numerados del 1-7.
† 6, numerados del 0-5.
„ 7, numerados del 0-6.
3. ¿Qué fichero de configuración utiliza el proceso init cuando arranque?
„ /etc/inittab.
† /etc/initrd.
† /etc/init.d/inittab.

4. Un servicio es una funcionalidad proporcionada por la máquina.


„ Verdadero
† Falso

5. El runlevel de arranque en modo gráfico es:


„ 5.
† 4.
† 3.

6. (hd0,1) Indica:
„ La primera partición extendida del disco duro.
† El disco duro.
† La primera partición lógica.

285
TEST tema 8:
Linux Avanzado
Marcar la respuesta correcta.

1. ¿Dónde tenemos las contraseñas de los usuarios encriptadas?


„ /etc/shadow.
† /etc/gshadow.
† /etc/passwd.

2. ¿Qué hace este comando: Useradd –g cursos –d /home/pepe –m pepe?


† Añade un usuario pepe al grupo cursos que solo puede tener acceso al directorio
/home/pepe.
† Añade un usuario pepe a cualquier grupo, cuyo directorio home es /home/pepe.
„ Añade un usuario pepe al grupo cursos, cuyo directorio home es /home/pepe y,
además, forzando que use los ficheros que se encuentran en /etc/skel.

3. ¿Qué comando nos añadiría un usuario luis con el directorio home, /home/luis/ en el
grupo por defecto?
† useradd –g luis –d /luis luis.
† useradd –g luis –d /home/luis luis.
„ useradd –d /home/luis luis.
4. ¿Qué información contiene cada una de las líneas del fichero shadow?
† Contraseña encriptada, días de vencimiento de la contraseña, días desde
01/01/1700 que se creo el usuario.
† Identificador del usuario, palabra de paso encriptada, días desde 01/01/1700 que
la palabra de paso se cambió por ultima vez, días que faltan para que se cambie.
„ Identificador del usuario, palabra de paso encriptada, días desde 01/01/1700 que
la palabra de paso se cambió por ultima vez, días que faltan para que se cambie,
días después en que hay que cambiarla, días en que el usuario será avisado
antes de que le expire., Días una vez expirado cuando se le deshabilitará la
cuenta.

5. ¿Qué contiene el fichero /etc/skel?


„ La estructura de ficheros de cada cuenta de usuario.
† Los ficheros que se incluyen en cada cuenta al crearla.
† Los ficheros que va creando cada usuario desde que se creo la cuenta.

6. ¿Qué paquete debes tener instalado en la distribución Red Had Linux 9 para tener la
herramienta gráfica de administración de usuarios?
„ redhat-config-users
† redhat-config-users-groups
† redhat-users

286
TEST tema 9:
Linux Avanzado
Marcar la respuesta correcta.

1. ¿Cuáles son los tres tipos de paquetes que tenemos en GNU/Linux?


† TZG, RPMI, DEB.
† TGZ, RPMI, DEB.
„ TGZ,RPM,DEB.
2. ¿Qué son los paquetes?
„ Conjunto de ficheros que forman una aplicación.
† Un programa.
† Un fichero.

3. La herramienta para administrar paquetes en Red Hat es:


† Rpmi.
† Urp.
„ Rpm.
4. Los paquetes TGZ suelen tener extensión:
† tar.zip.
„ tar.tgz o tar.gz.
† tar.tgz.

5. Por convección los paquetes RPM suelen utilizar el nombre de:


† paquete-versión-distribución-arq.
„ paquete-versión-rev.arq.rmp.
† paquete_version_rev.arq.rmp.

6. Los paquetes debian se nombran:


† paquete-versión-rev.arq.deb.
† paquete_version.deb.
„ paquete.deb.

287
TEST tema 10:
Linux Avanzado
Marcar la respuesta correcta.

1. ¿Qué es DNS?
† Direct Name Sorted.
„ Domanin Name Server.
† Dinamic Name Server.

2. El protocolo TCP/IP es:


† Protocolo de normas a seguir en internet.
„ Conjunto de protocolos básicos para las comunicaciones ordenador-ordenador.
† Protocolo para las comunicaciones entre ordenadores.

3. Esta dirección IP 126.254.254.128 pertenece a una red de clase:


„ A.
† B.
† C.

4. ¿Para qué esta reservada esta dirección IP 198.162.255.255 en su red?


† Rouing.
† Loopback.
„ Broadcast.
5. El comando ifconfig:
† Lo utilizamos para asignar direcciones IP.
„ Configuramos la red con él.
† Configuramos el modem.

6. ¿Qué comando tenemos que escribir en la consola para que se nos despliegue la
herramienta gráfica para configurar la red?
† redhat-configuration-net.
† redhat-network-config.
„ redhat-network-config-tui.

288
TEST tema 11:
Linux Avanzado
Marcar la respuesta correcta.

1. LPD es:
† Live Print Document.
† Line Printer Document.
„ Line Printer Daemon.
2. ¿Qué es CUPS?
„ Una arquitectura de impresión.
† Un programa para imprimir.
† Un paquete RMP.

3. Esta instrucción: lpr –P hp fichero.txt


† Manda el fichero a la cola de impresión de cualquier impresora que este libre.
„ Manda el fichero a la cola de impresión de la impresora asociada al nombre hp.
† Imprime el fichero.

4. ¿Qué comando tendría que escribir para eliminar mi fichero.txt de la cola de


impresión de mi impresora Epson?
† lprm –P epson 1
† lprm –P epson
„ No puedo si no conozco el id de la cola que pertenece al fichero.
5. ¿Con qué comando ejecuto mi el asistente gráfico para configurar mi impresora en
Red Hat?
† Rehat-configuration-p.
† Redhat-conf-print.
„ Redhat-configuration-printer.
6. ¿Cuál es el dispositivo para una impresión paralela?
† /dev/lp1.
† /dev/usb/lp0.
„ /dev/lp0.

289
TEST tema 12:
Linux Avanzado
Marcar la respuesta correcta.

1. ¿Existen virus para los sistemas GNU/Linux?


„ SÍ.
† No.
† SÍ, pero pocos.

2. ¿Cómo clasificamos los tipos de intruso?


† Curioso, malicioso, competidor, no peligroso.
† Curioso, perfil alto, malicioso, peligroso.
„ Curioso, perfil alto, competidor, malicioso.
3. Spyware es:
† Una distribución GNU/Linux.
„ Aplicación que recopila información.
† Software que despega publicidad.

4. Un virus se define como:


† Un programa malo para nuestro sistema.
† Una aplicación preparada para agotar nuestros recursos.
„ Programa escrito para instalarse en un ordenador sin el conocimiento del usuario.
5. ¿Qué es el firewall?
† Un antivirus.
† Un programa.
„ Un cortafuegos.
6. ¿Qué son los exploits?
† Programas que explotan.
† Un tipo de virus.
„ Un programa.

290
TEST tema 13:
Linux Avanzado
Marcar la respuesta correcta.

1. ¿Cuándo debemos hacer una copia de seguridad?


† Cada vez que apaguemos el ordenador.
† Cuando lo necesitemos.
„ Periódicamente.
2. ¿A qué debemos hacerle una copia de seguridad?
† A todo el sistema.
† A los ficheros que me interese.
„ A los ficheros con información importante e imprescindible.
3. ¿Qué es Amanda?
„ Aplicación para hacer copia de seguridad.
† Un comando.
† Una distribución GNU/Linux orientada a copias de seguridad.

4. ¿Cuál de estos comandos puedo utilizar para hacer copias de seguridad?


„ Tar.
† Ls.
† Mv.

5. ¿Qué directorio o directorios de nuestro sistema GNU/Linux deberían tener copia de


seguridad?
† /etc y ficheros nuestros.
† /etc .
„ /etc y algunos ficheros de root.
6. ¿En cuál directorio tenemos la lista de los dispositivos disponibles?
† /dis.
„ /dev.
† /etc/dev.

291
292

Actividades

Solucionarios

293
294
ACTIVIDADES tema 5:
Linux Avanzado
1. Volcar la entrada de teclado en un fichero usando el comando cat, el volcado
terminara cuando se escriba la palabra “Exit”.

cat > fich << “Exit”

2. Usar el comando cut para mostrar solo una parte de cada línea de un fichero.

cut -c vi-vf fich

Nota: vi=Posicion del primer carácter que se va a mostrar vf=La posicion del
ultimo carácter

3. Copia el fichero creado a otro fichero.

cp fich fich2

4. Une ambos ficheros mediante el comando paste.

paste fich fich2 > ficherounion

5. Usa el comando tr para convertir todas la letras a mayusculas.

cat fich | tr -s [:lower:] [:upper:]

6. Crea un script en bash el cual sobre dos números pasados como parámetros diga
cual es el mayor.

#!/bin/bash

if [ $1 > $2 ]

then

echo "$1 es mayor que $2";

else

echo "$2 es mayor que $1";

295
ACTIVIDADES tema 6:
Linux Avanzado
1. Crear una estructura de directorios dentro de la carpeta de trabajo con un minimo de
3 niveles.

# mkdir -p dir1/dir2/dir3

2. Crea o copia 1 fichero dentro de cada nivel de la estructura anterior.

# cp fich dir1; cp fich dir1/dir2; cp fic dir1/dir2/dir3

Nota: Los 3 comandos cp se pueden escribir en la misma linea intercalando “;” con
lo que solamente hay que pulsar la tecla enter una sola vez

3. Cambia los permisos del fichero de primer nivel añadiendo ejecución solo al
propietario del fichero y añadir permiso de escritura global al resto.

# cd dir1

# chmod u+x,go+w fich

4. Crea enlaces simbolicos a cada uno de los ficheros dentro de la estructura creada de
manera que el enlace del primer nivel apunte al fichero del ultimo y asi
sucesivamente.

# ln -s dir1/dir2/dir3/fich dir1/fich3

# ln -s dir1/fich dir1/dir2/fich1

# ln -s dir1/dir2/fich dir1/dir2/dir3/fich2

# ln dir1/dir2/dir3/fich dir1/fichfuerte

296
ACTIVIDADES tema 7:
Linux Avanzado
1. Cambiar el runlevel usando el comando init.

# init (0-6)

2. Cambiar el runlevel por defecto al iniciar el sistemal.

como root:

# vim /etc/inittab

Un vez dentro cambiar el numero de la siguiente linea por el runlevel que se quiera
cambiar:

id:X:initdefault: (X sera un numero, cambiarlo por el numero de runlevel deseado)

3. Elimina de un runlevel un servicio determinado, como por ejemplo la red.

# cd /etc/rcX.d

# rm -f SNNnetwork (Donde NN es el numero de orden para arrancar el servicio)

4. Añade un servicio determinado para que se ejecute en un runlevel determinado.

Basta con crear un enlace simbolico al servicio que se quiera añadir con la siguiente
nomenclatura:

# ln -s <rutadelservicio> /etc/rcX.d/SNN<nombredelservicio>

5. Personalizar el gestor de arranque para que muestre una denominacion distinta en


las opciones de arranque, ej: Mi windous, Linux para practicas, etc...

Si el gestor instalado es el lilo:

# vim /etc/lilo.conf

modificar las etiquetas label=<nombrepersonalizado>

guardar las modificaciones y ejecutar /etc/lilo

Si el gestor es el Grub:

# vi /boot/grub/menu.lst

Modificar las entradas title seguidas del nombrepersonalizado

297
ACTIVIDADES tema 8:
Linux Avanzado
1. Añade un usuario al sistema, especificando una carpeta de trabajo distinta del
nombre del usuario.

# useradd usuario -d /home/directorio

2. Añade otro usuario pero sin crear la carpeta del sistema.

# useradd -M usuario

3. Añade un grupo.

# groupadd grupo

4. Cambia el grupo del usuario con carpeta de trabajo al grupo creado.

# vim /etc/passwd

Y en la linea que pertenezca al usuario que sera parecida a esta:

usuario:x:501:501:comentario:/home/directorio:/bin/bash

Cambiar el directorio por el deseado

5. Cambia la contraseña del usuario anterior.

# passwd usuarios

Y seguir las instrucciones

6. Borra el usuario sin carpeta del sistema.

# userdel -r usuario.

298
ACTIVIDADES tema 9:
Linux Avanzado
1. Lista todos los paquetes instalados, elige uno y muestra la información de dicho
paquete.

# rpm -qa

# rpm -qi nombrepaquete

2. Si usas debian, utiliza el comando correspondiente para buscar un paquete dentro de


la cache de paquetes.

# apt-cache search nombrepaquete

3. Visita la web http://java.sun.com/j2se/1.3/download.html y descargate el tgz del


plugin del flash para tu navegador.

Sigue las instrucciones de la pagina web, hay un completo manual de instalacion


online.

299
ACTIVIDADES tema 10:
Linux Avanzado
1. Cambia tu ip y la mascara de red con el comando ifconfig.

# ifconfig eth0 <direccion ip> netmask <mascara>

2. Añade una puerta de enlace con el comando route y unas DNS.

# route add nameserver <direccion servidor dns>.

300
ACTIVIDADES tema 13:
Linux Avanzado
1. Realiza una copia de seguridad de cualquier fichero en tu floppy. Utilzando los
comandos: tar, cpio.

# tar czf /dev/fd0 /home/user/baa

Ver el contenido:

# tar tvzf /dev/fd0

Extracción de los archivos:

#ttar xzf /dev/fd0

# find /home/user/baa -print | cpio -o > /dev/fd0

Ver el contenido:

# cpio -it < /dev/fd0

Extracción de un archivo que se encuentra empaquetado:

# cpio -i /home/user/baa/foo < /dev/fd0

Extraer todo:

# cpio -i /home/user/baa < /dev/fd0

2. Hacer una copia de seguridad de uno de los sistemas que tengamos instalados.
Borrar esa partición, y después recuperar nuestro sistema.

Nos colocamos en la particion que vamos a copiar

# cd /dev/hdx

Podemos hacerlo tanto en linea de comandos como en un script bash

# for i in $(/bin/ls); do tar zcf $i.tgz $i; done

Copiamos los fichero tar a otra partición

# cp *.tgz /mnt

Ya podemos borrar la partición

301
GLOSARIO

ALAN COX

Junto con Linus Torvalds, unos de los desarrolladores más activos del
kernel.

APLIQUE

Normalmente se trata de un pequeño programa diseñado para ser


ejecutado empotrado en otro programa anfitrión.

ARRANQUE DUAL

El acto de configurar un ordenador para que pueda arrancar más de un


sistema operativo. El nombre es algo confuso, pues es posible arrancar
más de dos sistemas operativos, a diferencia de lo que implica la palabra
«dual». En inglés: «Dual Boot».

ARRANQUE

Proceso por el cual un ordenador comienza a ejecutar un sistema


operativo cuando se le aplica la energía de alimentación. En inglés:
«bootstrap» o más comúnmente «boot».

ATAPI

Sigla de AT Attachement Packet Interface (interfaz de paquetes para


conectar a AT). ATAPI es el protocolo mediante el cual las unidades de
CD-ROM se comunican con la computadora sobre la interfaz IDE.

BIBLIOTECA

Cuando se habla de ordenadores, se refiere al conjunto de rutinas que


realizan las operaciones usualmente requeridas por los programas. Las
glosario
bibliotecas pueden ser compartidas, lo que quiere decir que las rutinas
de la biblioteca residen en un fichero distinto de los programas que las
utilizan. Las rutinas de biblioteca pueden «enlazarse estáticamente» al
programa, en cuyo caso se agregan físicamente las copias de las rutinas
que el programa necesita. Estos binarios enlazados estáticamente no
requieren de la existencia de ningún fichero de biblioteca para poder
funcionar. Los programas enlazados con bibliotecas compartidas no
funcionarán a menos que se instalen las bibliotecas necesarias. En
inglés: «library».
BINARIO

Aunque se denomina binario al sistema de numeración en base dos que


usan las computadoras, con frecuencia la palabra se refiere a la forma
ejecutable de un programa. Lo contrario a «código fuente». En inglés:
«binary».

BINARY

Inglés, vea «binario».

BIOS

Sigla de Basic Input/Output System (sistema de entrada/salida básico). En


los sistemas compatibles con PC, el BIOS se utiliza para realizar todas
las funciones necesarias para colocar en estado inicial el hardware del
sistema cuando se lo conecta a la alimentación de energía. El BIOS
controla el proceso de arranque, proporciona rutinas de entrada/salida de
bajo nivel (de aquí su nombre) y (usualmente) permite que el usuario
modifique los detalles de la configuración del hardware del sistema.

BOOT

Abreviatura de «bootstrap». Vea arranque

CABEZA

Cuando se refiere a unidades de disco, la cantidad de la una unidad de


disco. En cada platina de una unidad de disco, hay dos cabezas -- una
en cada superficie -- aunque una de las superficies no se utilice. En
inglés: «head». Vea también «geometría».

CARGA DEL SISTEMA

Es una medida que nos indica la carga que están produciendo los
procesos que están usando la CPU en un momento determinado. Si
ejecutamos un solo proceso que consuma el 50% de CPU tendríamos
una carga de 0.50. Si ejecutamos un sólo proceso que requiere toda la
potencia de CPU disponible (100%) tendríamos una carga de 1.00. Si
ejecutamos dos procesos con las características del anterior, cada uno
consumiría el 50% de la potencia de la CPU y la carga subiría a 2.00. y
así sucesivamente. La carga del sistema se puede consultar con los
comandos top y w.
CILINDRO

Cuando se refiere a unidades de disco, corresponde a la cantidad de


distintas posiciones que pueden ocupar las cabezas de lectura/escritura
sobre la platina del disco. Cuando se mira desde arriba de las platinas,
cada posición de una cabeza describe un círculo imaginario con
diferentes diámetros sobre la superficie de la platina, pero cuando se
mira de costado, estos círculos pueden pensarse como una serie de
cilindros anidados uno dentro de otro, y de allí el término. En inglés:
«cylinder». Vea también «Geometría».

CISC

Sigla de Complex Instruction Set Computer (computadora con juego de


instrucciones complejo). Se trata de una filosofía de diseño de
ordenadores en la cual el procesador se diseña para ejecutar una
cantidad relativamente grande de instrucciones diferentes, cada una de
las cuales tarda distinto tiempo en ejecutarse (de acuerdo a la
complejidad de la instrucción). Lo contrario de «RISC».

CMOS

En un principio la sigla de Complementary Metal Oxide Semiconductor


(semiconductor de óxido metálico complementario) -- la tecnología de
semiconductores que se utiliza en muchos circuitos integrados. Ahora
con frecuencia designa al hardware de bajo nivel que contiene la
configuración del BIOS y el reloj por hardware de la computadora.

CÓDIGO FUENTE

El formato entendible por las personas de las instrucciones que


conforman un programa. También se lo conoce como «fuentes». Sin los
fuentes de un programa es muy difícil modificarlo. En inglés: «source
code».

CONTROLADOR DE DISPOSITIVO

Software que controla un dispositivo que está conectado a, o es parte


de, una computadora. (En inglés: device driver).

DAEMON

Inglés, ver «Demonio».


DEMONIO

Un demonio es un programa que funciona sin intervención humana,


para cumplir una tarea determinada. Por ejemplo, lpd es un demonio que
controla el flujo de los trabajos de impresión en una impresora.

DEPENDENCIAS

Cuando se refiere a paquetes, las dependencias son requerimientos que


existen entre paquetes. Por ejemplo, el paquete foo puede requerir
ficheros que son instalados por el paquete bar. En este ejemplo, bar
debe estar instalado, pues sino foo tendrá dependencias sin
dependencias sin resolver.

DESMONTAJE

El acto de revocar el acceso a un sistema de ficheros. (Debe usted


advertir que el programa que desmonta los sistemas de ficheros se
denomina umount.) En inglés: «unmount».

DESVICE DRIVER

Inglés, vea «controlador de dispositivo».

DIRECCIÓN IP

Las direcciones IP son el método mediante el cual se identifican los


ordenadores individuales (o, en una interpretación más estricta, las
interfaces de red de dichos ordenadores) dentro de un red TCP/IP. Todas
las direcciones IP consisten en cuatro números separados por puntos,
donde cada número está entre 0 y 255.

DISCO DURO

Un disco rígido contiene un medio magnético rotante (en forma de


discos) que gira rápidamente. Hay pequeñas cabezas que flotan sobre la
superficie de cada disco, y sirven para leer y escribir en el disco a medida
que rota. En inglés: «Hard Disk».

DISK DRIVER

Inglés, vea «disco rígido».

DISK DRUID

Disk Druid (Druida de disco) es un componente del programa de


instalación de RHL que se utiliza para realizar las particiones de las
unidades de disco durante el proceso de instalación.
DISKETTE

Inglés, vea «disquete».

DISQUETE DE ARRANQUE

El disquete que se utiliza para arrancar distintas instalaciones RHL. En


inglés: «boot diskette».

DISQUETE DE RESCATE

Disquete que contiene un entorno de sistema Disk Druid (Druida de


disco) rudimentario. Como el nombre sugiere, el disquete de rescate se
utiliza normalmente en un intento de «rescatar» un sistema dañado para
evitar la reinstalación total del sistema operativo. En inglés: «Rescue
Diskette».

DISQUETE

Dispositivo de almacenamiento masivo de pequeña capacidad, que viene


en un cartucho intercambiable, con el propósito de leer y/o escribir en el
mismo, mediante su uso en una unidad compatible. En inglés «diskette».

DISTRIBUCIÓN

Un sistema operativo (en general Linux), que se ha empaquetado para


facilitar su instalación. En inglés: «distribution».

DISTRIBUTION

Inglés, vea «distribución».

DOMAIN NAME

Inglés, vea «Nombre de dominio».

DRIVER

Vea «Controlador de dispositivo».

DUAL BOOT

Inglés, vea «arranque dual».

EIDE

Sigla de Enhanced Integrated Drive Electronics (electrónica de unidad


integrada mejorada), y es la nueva versión de la interfaz estándar
integrada y otra nomenclatura para una implementación particular de
interfaces IDE. Con EIDE se pueden tener discos más rápidos y de mayor
capacidad; la mayoría de los sistemas que se venden hoy día utilizan
EIDE.
ERRATA

Errata es el original en latín de «¡auch!». Cuando se detectan errores en el


software, se realiza la reparación de los errores y los cambios con
frecuencia se entregan como errata. RHL no es una excepción a esta
regla; disponemos de una página web para las Errata en
http://www.redhat.com/errata.

FAQ

Sigla de Frequently Asked Questions (Preguntas Frecuentes). La


información acerca de Linux se presenta generalmente en forma de listas
de preguntas y sus respuestas, denominadas FAQs.

FDISK

Fdisk es un programa de utilidad que se usa para crear, borrar o


modificar las particiones en una unidad de disco. Hay que tener mucho
cuidado al usar este programa, ya que, un uso inapropiado del mismo
puede hacernos perder nuestra información en el disco duro.

FILESYSTEM

Inglés, vea «Sistema de ficheros».

FLOPPY

Término con connotaciones históricas para referirse a un disquete. Vea


«disquete».

FORMATEAR

Dar formato. El acto de escribir un sistema de ficheros en una unidad de


disco.

FORMATTING

Inglés, vea «formatear».

FTP

Sigla de File Transfer Protocol (Protocolo de transferencia de ficheros).


También es el nombre del programa que, tal como su nombre indica,
permite copiar ficheros desde un sistema a otro a través de la red.

GEOMETRÍA

Cuando se refiere a unidades de disco, las características físicas de su


organización interna. Debe usted advertir que la unidad de disco puede
informar una «geometría lógica» que es diferente de su «geometría
física», normalmente para evitar las limitaciones impuestas por el BIOS.
En inglés «Geometry». Vea además «cilindro», «cabeza» y «sector». para
evitar la reinstalación total del sistema operativo. En inglés: «Rescue
Diskette».
GEOMETRY

Inglés, vea «geometría».

GUID

Abreviatura de Group ID (Identificador de grupo). Por medio del GID se


identifica la pertenencia de un usuario a un grupo. Los GIDs son
números, aunque se almacenan nombres entendibles para personas en
el fichero /etc/group.

GROUP

Inglés, vea «grupo».

GRUPO

El grupo es la manera de asignar derechos de acceso específicos a


ciertas clases de usuarios. Por ejemplo, todos los usuarios que trabajan
en el Proyecto X pueden agregarse al grupo proyx. Los recursos del
sistema (como por ejemplo espacio en disco) que se dedican al Proyecto
X se pueden configurar entonces para permitir su acceso total sólo a los
miembros de proyx. En inglés: «group».

HARD DISK

Inglés, vea «disco rígido».

HEAD

Inglés, vea «cabeza».

HOSTNAME

Inglés, vea «nombre de máquina».

I18n

Una «i» seguida de 18 letras, seguida de una «n», que corresponde a una
abreviatura de la palabra inglesa «internationalization».

IDE

Sigla de Integrated Drive Electronics (electrónica de unidad integrada),


que denota la interfaz estándar usada para conectar fundamentalmente
unidades de disco y CD-ROM a un ordenador. Vea también «EIDE» y
«ATAPI».
INTEL

Compañía responsable de la producción de los microprocesadores más


usuales en las computadoras personales compatibles con PC. Estos
procesadores incluyen el 80386, 80486, Pentium, Pentium Pro, Pentium
II y Pentium III.

INTERCAMBIO

También se lo conoce como «espacio de intercambio» («swap space»).


Cuando un programa necesita más memoria de la que hay disponible
físicamente en el ordenador, información que no se está utilizando en
ese momento se puede escribir en un búfer temporal en el disco,
denominado «swap», y de esa manera se libera memoria. Algunos
sistemas operativos admiten el intercambio contra un fichero específico,
pero Linux normalmente realiza los intercambios contra una partición
dedicada al intercambio. El término «swap» está mal elegido, pues en
Linux se lo usa para denotar el intercambio de páginas según la
demanda («demand paging»). En inglés: «Swap».

INTERNACIOLIZACIÓN

La práctica de diseñar y escribir programas que pueden configurarse


fácilmente para interactuar con el usuario en más de un idioma. Con
frecuencia se lo denomina «i18n», a causa de la cantidad de letras entre
la «i» de arranque y la «n» final. En inglés: «Internationalization».

ISP

Inglés, siglas de Internet Sservice Provider. Vea «psi».

KERNEL

Inglés, vea «núcleo».

LIBRARY

Inglés, vea «biblioteca».

LILO

Cargador de arranque muy utilizado en sistemas Linux que se basan en


procesadores compatibles con los de Intel.

LINUX

Sistema operativo completo, robusto, disponible libremente, que fue


desarrollado originalmente por Linus Torvalds.
GUIDLINUXCONF

Versátil programa de configuración del sistema escrito por Jacques


Gelinas. Linuxconf proporciona un enfoque basado en menúes para la
configuración del sistema a través de distintas interfaces de usuario.

LOAD AVERAGE

Inglés, vea «carga del sistema».

LOGICAL PARTITION

Inglés, vea «disco rígido».

MÁSCARA DE RED

Una máscara de red es un conjunto de cuatro números separados por


puntos. Cada número se representa normalmente como el equivalente
decimal de un número binario de 8 bits, lo que significa que cada
número puede tomar valores entre 0 (todos los bits en cero) y 255 (todos
los bits en uno). Cada dirección IP consiste de dos partes (la dirección de
red y el número de máquina). La máscara de red se usa para determinar
el tamaño de cada una de estas partes. Las posiciones de los bits en uno
de la máscara se consideran parte del espacio reservado para la
dirección de red, mientras que los bits que están puestos a cero se
consideran parte del espacio apartado para el número de máquina. En
inglés: «netmask».

MASTER BOOT RECORD

Inglés, vea «Registro de arranque maestro».

MEMORIA

Cuando se refiere a ordenadores, la memoria (en general) es cualquier


hardware capaz de almacenar datos para recuperarlos posteriormente.
En este contexto, la memoria en general se refiere específicamente a la
RAM.

MILO

Cargador que se usa generalmente para sistemas Linux basados en el


procesador Alpha.

MODULE

Inglés, vea «módulo».


MODULO

En Linux, un módulo es un conjunto de rutinas que realizan funciones a


nivel de sistema, y que pueden cargarse y descargarse dinámicamente
desde el núcleo cuando sea requerido. Los módulos con frecuencia
contienen controladores de dispositivos, y están fuertemente ligados a la
versión del núcleo; la mayorías de los módulos construidos con una
versión dada de núcleo, no se cargarán de manera apropiada en un
sistema que corra un núcleo con versión distinta. En inglés: «module».

MONTAJE

El acto por medio del cual los sistemas de fichero se hacen accesibles a
los usuarios del sistema. En inglés: «mount».

MOUNT POINT

Inglés, vea «punto de montaje».

MOUNT

Inglés, vea «montaje».

MOUSE

Inglés: ratón. Vea «ratón serie» y «ratón PS/2».

NFS

Sigla de Network File System, NFS es un método para lograr que un


sistema de ficheros de una máquina remota sea accesible para el
sistema local. Desde la perspectiva del usuario, un sistema de ficheros
montado por NFS es indistinguible de un sistema de ficheros que reside
en una unidad de disco directamente adosada a la máquina.

NOMBRE DE MÁQUINA

Es una cadena de caracteres entendible para las personas que se usa


para identificar una máquina computadora en particular. En inglés:
«hostname».

NÚCLEO

La parte central de un sistema operativo, sobre la cual el resto del


sistema se apoya. En inglés: «kernel».

OPERATING SYSTEM

Inglés, vea «sistema operativo».


PACKAGES

Inglés, vea «paquetes».

PAM

Sigla de Pluggable Authentication Modules (Módulos enchufables de


autenticación). PAM es un sistema de autenticación que controla el
acceso a RHL.

PAQUETES

Ficheros que contienen software; están escritos en un cierto formato que


permite la fácil instalación y borrado del software. En inglés: «packages».

PARTICIÓN

El segmento del espacio de almacenamiento de una unidad de disco que


puede accederse como si fuese un disco entero. En inglés: «partition».

PARTICIÓN LÓGICA

Partición que existe dentro de una partición extendida. Vea también:


«partición» y «partición extendida». En inglés: «Logical Partition».

PARTITION TABLE

Inglés, vea «tabla de particiones».

PARTITION TYPE

Inglés, vea «tipo de partición».

PASARELA

En términos de redes, se refiere al dispositivo que conecta uno o más


ordenadores de una red a otra red. El dispositivo puede ser un hardware
especializado (como un router), o puede ser una computadora de
propósito general que se configura para actuar de pasarela. En inglés:
«Gateway».

PCMCIA

Sigla de Personal Computer Memory Card International Association


(Asociación Internacional Tarjetas de Memoria para Computadoras
Personales). Esta organización produce una serie de estándares que
definen las características físicas, eléctricas y de software para pequeños
dispositivos del tamaño de tarjetas de crédito que pueden contener
memoria, modems, adaptadores de red, etc. También se las conoce
como «PC Cards» (tarjetas para PC), estos dispositivos se usan
principalmente en computadoras portátiles (aunque también algunos
sistemas de escritorio pueden utilizar tarjetas PCMCIA).
PERMISOS

El conjunto de identificadores que controlan el acceso a los ficheros. Los


permisos constan de tres campos: usuario, grupo y mundo. El campo de
usuario controla el acceso del propietario del fichero, y el campo de
grupo controla el acceso de cualquiera que concuerda con la
especificación de grupo del fichero. Como el nombre implica, el campo
mundo controla el acceso de cualquier otro usuario. Cada campo
contiene el mismo conjunto de bits que especifican las operaciones que
pueden o no realizarse, tales como lectura, escritura y ejecución.

PLIP

Sigla de Parallel Line Internet Protocol (Protocolo de Internet para líneas


paralelas). PLIP es un protocolo que permite comunicaciones TCP/IP
sobre el puerto paralelo de la computadora, mediante el uso de un cable
especialmente diseñado.

POSIX

Sigla un tanto forzada de Portable Operating System Interface (Interfaz


portable de sistema operativo). Conjunto de estándares que crecieron a
partir del sistema operativo UNIX..

PROCESO

Un proceso (en términos simplísticos en cierto modo) es una instancia de


un programa en ejecución sobre un sistema Linux. En inglés: «process».

PROCESS

Inglés, vea «proceso».

PSI

Siglas de Proveedor de Sservicios Internet. Empresa u organización que


ofrece acceso a Internet a usuarios finales y corporativos.

PUNTO DE MONTAJE

El segmento del espacio de almacenamiento de ficheros luego de su


montaje. En inglés: «Mount Point».

RAIZ

(N. del T.) Traducción de la palabra «root». En determinados contextos se


usa en castellano (ej.: «el directorio raíz»), mientras que en otros su
traducción es desaconsejada (ej.: «el usuario root», en cuyo caso podría
ser sinónimo de «superusuario» o «administrador»). Esta distinción
favorece a los lectores hispanos pues quita algunas de las
ambigüedades del término inglés.
RAM

Sigla de Random Access Memory (Memoria de acceso directo). La RAM


se usa para mantener los programas mientras se están ejecutando, y los
datos mientras se los procesa. La RAM es volátil, lo que significa que la
información escrita en la RAM desaparecerá cuando se apague la
alimentación de energía del ordenador.

RATÓN PS/2

El ratón PS/2 toma su nombre a partir de la computadora original donde


se comenzó a utilizar, la IBM PS/2. El ratón PS/2 puede identificarse
fácilmente por el pequeño conector redondo en el extremo del cable.

RATÓN SERIE

Un ratón serie es uno diseñado para conectarse al puerto serie del


ordenador. El ratón serie puede identificarse fácilmente por el conector
de forma rectangular que posee en el extremo de su cable.

REARRANCAR

Recomenzar el proceso de arranque. En inglés: «reboot». Vea también


«arranque».

REBOOT

Inglés, vea «rearrancar».

RISC

Sigla de Reduced Instruction Set Computer (Computadora con juego


reducido de instrucciones). Filosofía de diseño de computadoras en la
cual el procesador está optimizado para ejecutar un número
relativamente pequeño de instrucciones diferentes en una cantidad de
tiempo predeciblemente pequeña.

ROM

Sigla de Read Only Memory (Memoria de sólo lectura). La ROM se usa


para mantener los programas y datos que deben sobrevivir cuando se
apaga el ordenador. Como la ROM no es volátil, los datos en la misma
permanecerán sin cambios hasta la próxima vez que se encienda la
computadora. Como el nombre implica, los datos no pueden escribirse
con facilidad en la ROM; dependiendo de la tecnología que se usó en la
ROM, la escritura puede requerir de un hardware especial, o incluso ser
imposible. El BIOS del ordenador se almacena en ROM.
ROOT (raíz)

El nombre de la cuenta de ingreso que da acceso completo y total a


todos los recursos del sistema. También se usa para describir el
directorio denominado con «/», como en la expresión «el directorio raíz».

RPM

Sigla de Red Hat Package Manager (Gestionador de paquetes de Red


Hat). rpm es también el nombre del programa que permite la instalación,
actualización y eliminación de paquetes.

SCSI

Sigla de Small Computer System Interface (Interfaz de sistema para


pequeñas computadoras), SCSI es una interfaz estándar para conectar
una amplia variedad de dispositivos a la computadora. Los dispositivos
SCSI más populares son las unidades de disco, aunque también es
común encontrar unidades de cinta y «scaners».

SECTOR

Cuando se refiere a una unidad de disco, la cantidad de áreas de tamaño


fijo (normalmente 512 bytes) que se pueden acceder mediante una
cabeza de lectura/escritura, en una rotación del disco, sin que la cabeza
cambie su posición. Vea también «geometría».

SEVIDOR DE NOMBRES

En términos de redes TCP/IP, un servidor de nombres es un ordenador


que traduce un nombre entendible por personas (como «foo.bar.com»)
en una dirección numérica (como «10.0.2.14»). En inglés: «nameserver».

SETGID

Llamada al sistema que puede usarse para asignar el GID de un proceso.


Los programas grabados con el atributo «setgid» pueden adoptar el GID
del grupo al cual pertenece el fichero programa.

SETUID

Llamada al sistema que se usa para asignar el UID de un proceso. Los


programas grabados con «setuid» pueden adoptar el UID del usuario que
es dueño del fichero programa. Esto se considera un posible problema
de seguridad si el fichero es «setuid root».
SHADOW PASSWORD

Normalmente, la contraseña de cada usuario se almacena en forma


cifrada en el fichero /etc/passwd. Este fichero debe poderlo leer cualquier
usuario para que ciertas funciones del sistema trabajen correctamente.
Sin embargo, esto significa que cualquiera puede obtener copias de las
contraseñas cifradas de todos los usuarios, con lo cual resulta sencillo
ejecutar un programa que adivine las contraseñas de los usuarios. Las
«shadow passwords», por otro lado, almacenan la contraseña cifrada en
un fichero distinto altamente protegido, lo que hace mucho más difícil el
«crackeo» de contraseñas.

SILO

Cargador que se usa generalmente para sistemas Linux basados en el


procesador SPARC.

SISTEMA OPERATIVO

Conjunto de software que controla los distintos recursos del ordenador.


En inglés: «operating system».

SLIP

Sigla de Serial Line Internet Protocol (Protocolo de Internet para líneas


serie). SLIP es un protocolo que permite la comunicación TCP/IP sobre
líneas serie (típicamente una conexión por módem a través de la red
telefónica conmutada).

SMB

Sigla de Server Message Block (Bloque de mensajes de servidor), SMB es


el protocolo de comunicación que usan los sistemas operativos basados
en MS-Windows para permitir los recursos compartidos a través de la
red.

SOURCE CODE

Inglés, vea «código fuente».

SPARC

Arquitectura RISC desarrollada por Sun Microsystems.

SUPLEMENTAL

Inglés, vea «disquete suplementario».


DISKETTE SWAP

Inglés, vea «intercambio».

SYSTEM CALL

Inglés, vea «Llamada al sistema».

TCP/IP Sigla de Transmission Control Protocol/Internet Protocol


(Protocolo de control de transmisión/Protocolo de Internet), TCP/IP es el
nombre dado al estándar de redes de uso común en la actualidad en
Internet.

TIPOS DE PARTICIÓN

Las particiones tienen un campo que se usa para determinar el tipo de


sistema de ficheros que se espera que vaya a contener la partición. El
tipo de partición es en realidad un número, aunque muchas veces nos
referimos al tipo mediante un nombre.

UID

Abreviatura de User ID (ID de usuario). Es el medio por el cual se


identifica a un usuario en las distintas partes de un sistema RHL. Los
UIDs son numéricos, aunque hay nombres en formato entendible por
personas que se almacenan en el fichero /etc/passwd.

UNIDAD DE DISCO

Vea «disco rígido».

UNIX

Conjunto de sistemas operativos del estilo de Linux que crecieron a partir


de la versión original escrita por unos tipos de una compañía telefónica
(¡Es broma! ¡Gracias Ken Thompson y Dennis Ritchie de los «Bell
Telephone Laboratories» por vuestro inspirado diseño de sistema
operativo!).

UNMOUNT

Inglés, vea «desmontaje».

VIRTUAL CONSOLE

Inglés, vea «consola virtual».


WIDGET

Representación estandarizada en pantalla de un control que el usuario


puede manipular. Ejemplos de «widgets» son las barras de
desplazamiento, los botones y las cajas de texto.

X WINDOW SYSTEM (Sistema de ventanas X)

También denominado «X», esta interfaz gráfica de usuario proporciona la


bien conocida metáfora de «ventanas sobre un escritorio», común a la
mayoría de los sistemas hoy en día. Bajo X, los programas de aplicación
actúan como clientes y acceden al servidor X que gestiona toda la
actividad en pantalla. Además, las aplicaciones X pueden ejecutarse en
un sistema distinto al del servidor X, lo que permite la visualización
remota de las aplicaciones.

XFREE86

Implementación libre del «X Window System».


BIBLIOGRAFÍA

Título: Los Servicios Sociales en las CCAA y Ciudades Autónomas


Editorial: Tirant Lo Blanch
Autor: Gutiérrez Resa, A.
Año: 2000

Título: Administración Avanzada de GNU/Linux


Editorial: Fundación per a la Universitat Catalunya
Autor: Josep Jorba, E. y Remo Suppi, B.
Año: 2004

Título: Vi Editor Pocket Reference


Editorial: O’Reilly
Autor: Arnoldo, R.
Año: 1999

Título: La Biblia de Red Hat Linux


Editorial: Anaya Multimedia
Autor: Pitt
Año: 1998

bibliografía
Título: Configuración de Sistemas Linux
Editorial: Anaya Multimedia
Autor: Morril, D. L.
Año: 2003

Título: Learing the Bash Shell


Editorial: O’Reilly
Autor: Cameron, N.
Año: 2005

Título: Linux Guia de Referencia y Aprendizaje


Editorial: Anaya Multimedia / O’Reilly
Autor: Welsh, M.; Kalle Dalheimer, M. y Kaufman, L.
Año: 2000

Páginas Web

Título: Página oficial de Linux


Web: http:// www.linux.org
Título: Página dedicada al proyecto GNU
Web: http:// : www.gnu.og

Título: Página oficial Mandrake


Web: http:// www.mandrake-linux.org

Título: Usuarios de GNU/Linux en Mallorca


Web: http:// : www.bulma.net

Título: Página oficial Debian


Web: http:// : www.debian.org

Título: Proyecto Lucas. Todo en español


Web: http:// : www.tldp.org

Título: Usuarios de GNU/Linux en Málaga


Web: http:// www.linux-malaga.org

Potrebbero piacerti anche