Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
ISBN: 978-84-92889-46-4
CÓDIGO: MAIC000673
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
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
Glosario
Bibliografía
Linux Avanzado
Introducción a GNU/Linux
módulo 1
1
2
Linux Avanzado
i Introducción
i ¿Qué es GNU/Linux?
i La Licencia de Linux
3
4
Introducción
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.
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:
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.
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.
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 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.
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 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.
Richard Stallman creo el proyecto GNU, para intentar abrir el código fuente de los
programas. Creo su propio sistema operativo y aplicaciones.
11
ANOTACIONES
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
12
TEST
Marcar la respuesta correcta.
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 Distribuciones GNU/Linux
Objetivos:
i Conocer como ha ido evolucionando el perfil del administrador
tema 2
de sistemas.
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.
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.
En las empresas u organizaciones más pequeñas, las tareas suelen estar asignadas a
uno o pocos administradores.
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.
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.
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.
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.
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 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.
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, ...
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.
Un problema añadido a tanta variedad, es que hay que saber que ofrecer al usuario
conforme a sus necesidades, y saber hacerlo bien.
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 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.
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 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.
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 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.
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.
x Woody (stable)
x Sarge (testing)
x Sid (unstable)
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 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 Usa por defecto el gestor de arranque lilo. Lo cual no significa que no podamos
utilizar otros gestores de arranque.
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.
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.
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 Algunas de las versiones utilizadas son: XFree86 (4.3.0), glibc (2.3.2), Shell bash
(2.05b), etc.
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 Hay varias distribuciones más basadas en Red Hat que siguen muchas de sus
características.
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.
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.
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.
28
ANOTACIONES
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
29
TEST
Marcar la respuesta correcta.
30
ACTIVIDADES
1. Leer el manifiesto Debian en http://www.debian.org/social/contract.
31
32
Linux Avanzado
módulo 2
TEMA 5.Intérprete de Comandos
33
34
Linux Avanzado
Instalación de Linux
i Formas de Instalación
Objetivos:
tema 3
i Ser capaz de instalar cualquier distribución GNU/Linux.
35
36
Preparándose Para la Instalación
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.
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.
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.
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.
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.
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.
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:
39
A partir de este momento podremos arrancar desde el disquete y ejecutar el comando:
x FDISK C:
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:
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
1. Ejecutamos el comando
rawrite
../images/boot.img
40
Existen tres imágenes:
5. El disquete es generado.
Se pueden elegir varias formas de instalación: modo texto, modo gráfico, modo experto
o modo vesa graphics.
x Portugués
x Español
x Inglés
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.
Nota: Ahora Linux comienza a cargar los Módulos del Kernel para la instalación, detecta
los destinos y carga el particionador.
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.
x Instalación mínima.
x Instalación estándar.
x Encaminador / Firewall.
x Estación de Trabajo.
x Notebook.
x Servidor de Red.
x Instalación completa.
x Instalación personalizada.
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.
La última opción no se debe marcar ya que es muy útil tener la documentación a mano y
no ocupa demasiado espacio.
x Discos SCSI
43
LINUX-SWAP
Debe ser dos veces el tamaño de la memoria RAM de la que esta provista nuestro
sistema.
En los discos duros con más de 1024 cilindros será necesario crear una partición
pequeña para el boot.
x Sist. Archivos: Indica el sistema de Archivos ext2, ext3, Vfat, linux-swap, etc
x /boot > En este directorio se instalan todos los archivos de booteo del 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:
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.
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.
x Sin interfaz de red <este caso es para estaciones de trabajo stand alone>
45
Si se elige cualquiera de las dos primeras se da a continuar, en otro caso se va al
siguiente paso.
x (En este caso ingrese la dirección del router o del servidor proxy si lo tuviese)
46
Una ves creado el usuario e ingresado la contraseña del root le damos continuar
x Ninguno no recomendable
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
48
ANOTACIONES
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
49
TEST
Marcar la respuesta correcta.
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
i Introducción
i Documentos Estándares
i
Shell y Scripts
Objetivos:
i Conocer las numerosas herramientas, gráficas y no gráficas,
que poseemos en nuestro sistema.
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.
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.
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.
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.
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.
55
Herramientas Gráficas y Línea de Comandos
Existen muchas más herramientas que las que estudiaremos en esta a continuació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.
Todas las distribuciones GNU/Linux aportan herramientas del tipo línea de comandos,
textual o gráfico.
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.
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.
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 /home: las cuentas de los usuarios, es decir, los directorios personales de cada
usuario.
57
x /opt: el software añadido al sistema posterior a la instalación.
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.
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:
58
x info. Programa desarrollado por GNU para la documentación de muchas de sus
herramientas.
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.
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 Manejar señales.
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:
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.
Ejemplo:
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 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.
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
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 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 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).
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.
63
Otras Herramientas
x Los múltiples comandos UNIX básicos: grep, awk, sed, find, diff, gzip, bzip2, cut,
sort, df, du, cat, more, file, which...
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, ...
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 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.
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).
65
Algunos de los más comunes son: Shell Bash (bash), shell Bourne (sh), shell Korn
(ksh), shell C (csh), …
66
ANOTACIONES
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
67
TEST
Marcar la respuesta correcta.
2. La shell es:
Una distribución GNU/Linux más.
Un programa más de usuario.
Un lenguaje de programación.
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.
69
70
Linux Avanzado
Intérprete de Comandos
i Comandos Básicos
i Comandos en Background
i Programación Shell
i El Editor Emacs
i El Editor Vim
tema 5
Objetivos:
i Manejar la línea de comandos.
71
72
Comandos Básicos
cat /etc/passwd
cat fich1 [...fichN] Concatena y muestra un archivos
cat dict1 dict2 dict
diff [-e]arch1 arch2 Encuentra diferencia entre archivos diff foo.c newfoo.c
ln -s
ln [-s] fich acceso Crea un acceso directo a un archivo
/users/mike/.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
date [mmddhhmm]
Muestra la hora y la fecha date
[+form]
man gcc
man comando Ayuda del comando especificado
man -k printer
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.
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 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.
SINTAXIS DE COMANDOS
Los comandos tienen la siguiente sintaxis:
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
(;).
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,...).
Variable Descripción
PS1 Prompt.
Para definir una variable de entorno, hay que tener en cuenta en que intérprete nos
encontramos, ya que no es igual en todos.
ALIAS
Un “alias”' es un nombre alternativo para un comando. Un alias se puede definir por
varios motivos, por ejemplo:
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.
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:
open linuxcol.uniandes.edu.co
cd /pub/linux/utils
get *
quit
Salida:
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
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.
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.
79
Programación Shell
x if list then list [ elif list then list ]\ldots [ else list ] fi
PROGRAMACIÓN BASH
Conceptos básicos de los shell script en Bash.
#!/bin/bash
Esta línea le indica al shell usado por el usuario con qué shell hay que ejecutar el script.
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.
VARIABLES EN BASH
variable = valor
echo $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:
var = valor
export var
x Exportar en la asignación:
x $1-$N: Guarda los argumentos pasados como parámetros al script desde la línea
de comandos.
x $ : Guarda todos los parámetros, pero con comillas dobles (“ ”) en cada uno de
ellos.
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.
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 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.
ESTRUCTURAS DE CONTROL
x Las estructuras de control propias de programación (for, while, ...), con la sintaxis
propia de Bash.
if [ expresion ]
then
commands
fi
if [ expresion ]
then
82
commands1
else
commands2
fi
if [ expresion ]
then
commands
elif [ expresion2 ]
then
commands
else
commands
fi
case string1 in
str1)
commands;;
str2)
commands;;
*)
commands;;
esac
do
commands
done
while [ expresion ]
83
do
commands
done
until [ expresion ]
do
commands
done
x Declaración de funciones:
fname() {
commands
fname2(arg1,arg2...argN) {
commands
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.
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.
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.
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.
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:
FUNCIONES GENERALES
Para salir de Emacs emplear la combinación de teclas [C-x C-c].
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.
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].
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 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].
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-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.
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 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.
‘[...]’ Indica cualquier elemento dentro de los corchetes (pero sólo uno).
91
FUNCIONES DE FORMATEO DE TEXTO
Emacs posee algunas capacidades como editor de texto con formato, aunque este no es
su principal cometido.
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.
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 para muchos SO: Windows, Mac, OS/2, DOS, Atari, Amiga, UNIX,….
Especialmente para FreeBSD y LINUX.
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.
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.
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.
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
o, O Pasa a modo INSERT. Abre una nueva línea debajo del cursor,
Abre una línea encima del cursor.
Marcas
Si por ejemplo quiero borrar desde ese punto a otro punto donde
me encuentro con el cursor… d’a.
95
Yanking – Copiar +Pegar
Filtros
!!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!
K
Busca la palabra seleccionada como entrada del comando man. q
para salir
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.
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.
97
BUSQUEDA AVANZADA CON EXPRESIONES REGULARES
: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\>
98
MODO VISUAL.
x Para entrar en el modo visual desde el Modo Normal (ESC) pulse:
TECLA FUNCIÓ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
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
Comando de edición
Manipulación de ficheros
: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.
:file name Cambia el nombre al fichero. Útil para guardar cambios con otro
nombre.
Comando shell
:shell, exit El comando :shell nos lleva a la consola. exit para volver al editor
100
AYUDA EN VIM.
TECLA FUNCIÓN
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.
Los comandos tienen la siguiente sintaxis: # programa arg1 arg2 ... argn.
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.
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.
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 Puntos de Montaje
i Permisos
i Enlaces
Objetivos:
tema 6
i Comprender lo que es un sistema de ficheros y un fichero.
107
108
Sistema de Ficheros
x Compartición (enlaces)
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.
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.
x Ficheros.
x Directorios.
x Enlaces simbólicos.
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.
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.
x El filesystem puede ser msdos (fat), vfat (fat32), ntfs (ntfs lectura), iso9660 (para
cdrom), ...
112
Ejemplos:
Ejemplo:
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.
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
umount /mnt/cdrom
umount /dev/fd0
En el caso de medios extraíbles, tipo CD-ROM (u otros), puede usarse eject para la
extracción del medio:
Permisos
Cada elemento del sistema de ficheros de Linux tiene permisos de acceso de acuerdo a
tres tipos de usuarios:
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.
La combinación oscila desde cero (ningún permiso) hasta siete (todos los permisos).
Ejemplos:
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.
Sólo el dueño de un recurso siempre tendrá derecho a cambiar sus permisos, además de
root.
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:
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:
116
Ejemplos:
Ejemplos:
para nosotros
$ chmod +t tmp/
$ chmod +x ./bin/*
117
# adiciona el permiso de ejecución a todos los usuarios que les corresponde por
defecto
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.
Ejemplos:
$ umask
$ umask -S
$ umask -S 037
$ umask g=rx,o=
118
Nota: Existen comandos para modificar los permisos de ficheros y/o directorios:
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:
Sintaxis:
ln [opciones] <fichero|directorio>[nombre_del_enlace]
Ejemplos:
# 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 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).
120
ANOTACIONES
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
121
TEST
Marcar la respuesta correcta.
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.
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.
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.
123
124
Linux Avanzado
Arranque y Servicios
i Fichero /Etc/Inittab
i Comando Init
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.
Estos niveles suelen estar configurados en los sistemas GNU/Linux (y UNIX) por dos
sistemas diferentes, el BSD, o el System V.
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.
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.
id:niveles_ejecución: acción:proceso
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.
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.
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.
129
Comando Init
Podemos ejecutar init desde línea de comandos con alguno de los siguientes
argumentos:
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:
Ejemplo: para hacer que el dispositivo raíz en el núcleo /etc/Image sea /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.
# cp /etc/Image /dev/fd0
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.
El fichero de configuración de LILO contiene un párrafo para cada sistema operativo que
se pueda querer arrancar.
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
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
vga=788
read-only
image=/boot/vmlinuz
label="failsafe"
132
root=/dev/hda6
initrd=/boot/initrd.img
read-only
#Windows
other=/dev/hda1
label="windows"
table=/dev/hda
GNU GRUB es un gestor de arranque muy potente, capaz de arrancar un amplio abanico
de sistemas operativos libres y otros.
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.
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.
Ejemplo:
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.
Precaución: Este método destruye cualquier dato que esté guardado en el disquete.
# cd /usr/share/grub/i386-pc
134
INSTALAR GRUB NATIVAMENTE
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).
Si no estás seguro de cual es la partición que contiene los archivos, puedes usar la
orden find de la manera siguiente:
Una vez que has fijado correctamente el directorio raíz, utiliza la orden setup:
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:
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.
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
initrd (hd0,5)/boot/initrd.img
#Knoopix
title Knoppix
initrd (hd0,6)/boot/initrd.img
title linux-nonfb
initrd (hd0,5)/boot/initrd.img
title 2427-0pre21
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
137
LO QUE HEMOS APRENDIDO
Linux utiliza el proceso de arranque init de Sys V.
El comando init se puede utilizar desde línea de comandos para cambiar de nivel
de ejecución.
138
ANOTACIONES
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
139
TEST
Marcar la respuesta correcta.
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.
141
142
Linux Avanzado
Usuarios y Grupos
i 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
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.
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.
La información de los usuarios del sistema está incluida en los siguientes archivos:
juan:x:1000:1000:Juan García,,,:/home/juan:/bin/bash
root:x:0:0:root:/root:/bin/bash
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.
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 Y un campo reservado.
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.
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
147
ftp:x:77:77:system user for proftpd:/var/ftp:/bin/false
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:::
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:
useradd <username>
passwd <username>
149
Opción Descripción
150
EXPLICACIÓN DEL PROCESO
¿Qué ocurre al escribir useradd juan?
x Hay una x para el campo de contraseña indicando que es sistema está usando
contraseñas ocultas.
4. Es creada una nueva línea para un grupo llamado juan en /etc/gshadow. La línea
tiene:
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>
Opción Descripción
-g gid ID para el grupo, el cual debe ser único y mayor que 499.
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
Importante: La contraseña oculta debe estar activada para poder usar el comando
chage.
Opción Descripción
usermod -L nombredeusuario
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).
>>>
crypt.crypt("password","salt")
usermod -p "contraseña-encriptada"
nombredeusuario
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.
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.
Sólo root puede cambiar la clave de otro usuario de ésta forma. Los usuarios pueden
cambiar su propia clave con passwd también.
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.
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.
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
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.
x Información de la cuenta
x Grupos — Seleccione los grupos de los que desea que el usuario sea miembro.
160
Pulse OK para crear el grupo. Aparecerá un grupo nuevo en la lista.
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 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.
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.
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.
3. Añade un grupo.
165
166
Linux Avanzado
Administración de Paquetes
i Paquetes TGZ
Objetivos:
tema 9
i Instalar cualquier utilidad que nos sea necesaria.
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.
x otras categorías.
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.
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.
169
Es un formato muy utilizado.
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
mozilla-source-1.4.tar.gz
De otro modo, habría diferentes códigos para cada sistema operativo o fuente: Linux,
Solaris, Irix, bsd,...
1. Descomprimir el paquete:
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.
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.
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.
É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.
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.
paquete-versión-rev.arq.rpm
x Rev: suele ser la revisión del paquete RPM, que indica las veces que se ha
construido.
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: En la Mandrake existe una herramienta muy útil para la instalación de paquetes
RPM, urpmi.
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).
173
debsrc http://ftp.debian.org/debian/ woody main non-free contrib
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.
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.
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.
174
x La página de errata de Red Hat a disposición en
http://www.redhat.com/apps/support/errata/
INSTALACIÓN DE RPM
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 no tiene instalada la clave apropiada para verificar la firma, el mensaje dirá NOKEY y
será como lo siguiente:
175
PAQUETE YA INSTALADO
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á:
Para hacer que RPM ignore este error, use la opción --replacefiles:
DEPENDENCIAS RESUELTAS
Si intenta instalar un paquete que tiene una dependencia no resuelta, verá lo siguiente:
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.
bar-2.0.20-3.i386.rpm
DESINSTALACIÓN
rpm -e foo
ACTUALIZACIÓN
RPM lleva a cabo la actualización de paquetes con archivos de configuración, tal vez
vea un mensaje como el siguiente:
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.
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:
Para hacer que RPM "actualice" de todos modos, use la opción --oldpackage:
REFRESCAMIENTO
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.
Hay varias maneras de especificar qué información mostrar sobre los paquetes
consultados:
178
x -l muestra la lista de archivos contenidos en el paquete.
VERIFICACIÓN
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:
rpm -Va
x Este comando puede ser útil si sospecha que sus bases de datos de RPM están
dañadas.
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
Vamos a exponer algunos ejemplos para que comprenda mejor todas las utilidades de
las herramientas RPM.
rpm –Va
x Cuando vea un archivo que no reconoce. Para saber a qué paquete pertenece,
teclearía:
gv-3.5.8-22
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:
181
x Quizás desea ver qué archivos instala el RPM crontabs.
Estos son solamente algunos ejemplos. Al usarlo, descubrirá muchos más usos para
RPM.
Los usuarios usan los ordenadores de forma distinta, algunos desearán instalar o
eliminar paquetes tras la instalación.
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.
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.
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.
185
Red Hat Network ahorra tiempo a los usuarios porque estos reciben un correo
electrónico cuando está disponible una actualización de paquetes.
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
x Notificaciones automáticas de
x Instalación de paquetes
186
Para comenzar a usar Red Hat Network, siga estos pasos básicos:
o Seleccione el Botón de menú principal => Herramientas del sistema => Red
Hat Network en su escritorio.
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.
Los paquetes TGZ son los de más antigua utilización. Hay que tener cuidado ya
que no controla las dependencias.
188
ANOTACIONES
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
189
TEST
Marcar la respuesta correcta.
190
ACTIVIDADES
1. Lista todos los paquetes instalados, elige uno y muestra la información de dicho
paquete.
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
Objetivos:
i Descubrir los conceptos básicos necesarios para configurar
redes.
193
194
Introducción
Introducción a TCP/IP
195
x Impresión remota: permite acceder a impresoras conectadas a otros ordenadores.
¿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.
196
Conceptos en TCP/IP
Vamos a definir algunos conceptos que nos haga más fácil el entendimiento del
protocolo TCP/IP:
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 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.
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).
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.
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.
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
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.
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:
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.
Ejemplo de resolv.conf:
domain remix.com
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:
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.
ifconfig lo 127.0.0.1
Ejemplo:
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:
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:
x Más adelante, indicar que todos los datagramas para nodo con direcciones
192.168.0.* deben ser enviados al dispositivo de red:
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:
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 configurar una conexión de red con la Herramienta de administración de redes, siga
los pasos siguientes:
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.
204
Después de haber configurado el dispositivo Ethernet, aparece en la lista de los
dispositivos como se muestra en la Figura 3.
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.
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:
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
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.
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. 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.
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.
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.
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.
Después de haber configurado la conexión DSL, aparece la lista de los dispositivos como
se muestra en la Figura 9.
210
3. Seleccione Conexión inalámbrica desde Seleccionar el tipo de dispositivo y haga click
en Siguiente.
211
Figura 14. Dispositivo inalámbrico
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.
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).
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.
Se denomina nodo (host) a una máquina que se conecta a la red (un ordenador,
una impresora,…).
Se denomina Host name al nombre, único, que cada nodo tiene en la red.
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.
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.
215
ANOTACIONES
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
216
TEST
Marcar la respuesta correcta.
1. ¿Qué es DNS?
Direct Name Sorted.
Domanin Name Server.
Dinamic Name Server.
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.
218
Linux Avanzado
Impresoras
i Introducción
i CUPS
tema 11
Objetivos:
i Aprender a configurar cualquier tipo de impresora en nuestro
sistema.
219
220
Introducción
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.
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.
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.
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 :
Ejemplo de lpr:
Ejemplo de lpq:
# lpq -P epson
Ejemplo de lprm:
#lprm –P epson 15
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.
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
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.
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.
224
Se pueden configurar los siguientes tipos de colas de impresión:
Importante: Si agrega una nueva cola de impresión o modifica una existente, debe
aplicar los cambios para que tomen efecto.
225
En la ventana mostrada en Figura 3, introduzca un nombre único para la impresora en el
campo de texto Nombre.
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.
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.
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 comandos básicos son iguales para los diferentes sistemas, y son :lpr,lpq,
lprm.
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.
231
232
Linux Avanzado
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
tema 12
Ficheros
i Firewall
i Tipos de Ataques
i Software de Seguridad
Objetivos:
i Conocer todos los posibles problemas de seguridad de nuestro
sistema GNU/Linux.
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.
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 Competidor: Estará interesado en los datos de nuestro sistema, bien por que
piensa que tenemos podría beneficiarlo financieramente o de otro modo.
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.
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.
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
Encriptación
En principio para proteger datos dentro de un equipo, basta con encriptarlos con
cualquier aplicación como por ejemplo:
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 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.
SOFTWARE ENCRIPTACIÓN
GnuPG - Web: www.gnupg.org
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.
#!/bin/sh
For FICHERO in *
do
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.
rpm –i pavcl_linux_i386.rpm
pavcl –nbr: impide que el usuario interrumpa la ejecución del antivirus mediante
CTRL-C.
SOFTWARE ANTIVIRUS
KASPERSKY ANTI-VIRUS FOR LINUX WORKSTATIONS
Web: www.kaspersky.com
242
VEXIRA MAILARMOR FOR LINUX
Web: www.centralcommand.com
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
Web: http://recover.sourceforge.net/linux/recover
SAMHAIN
Web: www.freshmeat.net/redir/samhain
244
XFILES
Web: www.idiom.com/~zilla/xfiles.html
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.
Web: http://www.tux.org/pub/people/kent-robotti/looplinux/rip
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/
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.
Web: www.lids.org
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.
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:
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
KNETFILTER 3.2.0
Web: http://expansa.sns.it/knetfilter
Web: www.cipherdyne.com/psad
248
NESSUS 2.0.9
Web: www.nessus.org
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
DSNIFF 2.3
Web: www.datanerds.net/~mike/dsniff.html
LOCALAREASECURITY
Web: www.localareasecurity.com
Web: www.phlak.org
249
WARLINUX
Web: http://sourceforge.net/projects/warlinux
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).
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
x Modo activo FTP (modo pasivo FTP, usado por defecto en la mayoría de clientes
sí debería funcionar)
x RealAudio™
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.
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
DISPOSITIVOS FIABLES
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
SSH
TELNET
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)
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.
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.
Los programas espía o spyware son aplicaciones que recopilan información sobre
una persona u organización sin su conocimiento.
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.
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.
3. Spyware es:
Una distribución GNU/Linux.
Aplicación que recopila información.
Software que despega publicidad.
5. ¿Qué es el firewall?
Un antivirus.
Un programa.
Un cortafuegos.
256
Linux Avanzado
Copias de Seguridad
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.
257
258
¿Por qué Hacer Copias de Seguridad?
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.
Los DATOS es algo tan importante que en muchos casos no pueden ser reemplazados.
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 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 Desastres naturales: Lluvia, Fuego, temblores de tierra. Pasa lo mismo que con
Robo.
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.
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.
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 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:
260
o También se pueden copiar los mensajes de correo de cada usuario del
sistema.
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.
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
Differential Backup. Se hace copia a todos los archivos modificados desde la última
copia total.
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.
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.
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.
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 El tiempo disponible.
Cintas: 40GB-320GB
DVD: 4GB
CD: 700MB
Discos: 500GB
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:
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
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.
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:
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.
Hay distintas versiones de dump y restore, rdump/rrestore se pueden usar para hacer
copias de seguridad a través de la red.
-b: blocksize
-x: Extraer.
266
Opciones más usadas de tar:
-v: verbose
-f: file
Tar sólo realiza copias completas por si solo, haría falta un script para realizar copias
progresivas y diferenciales.
Si en cambio, hay un mínimo error en una tar sin comprimir, este se podría recuperar.
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.
TAPER:
Es una solución fácil de usar para realizar backups.
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.
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.
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.
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.
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.
270
ANOTACIONES
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
271
TEST
Marcar la respuesta correcta.
3. ¿Qué es Amanda?
Aplicación para hacer copia de seguridad.
Un comando.
Una distribución GNU/Linux orientada a copias de seguridad.
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.
279
TEST tema 2:
Linux Avanzado
Marcar la respuesta correcta.
280
TEST tema 3:
Linux Avanzado
Marcar la respuesta correcta.
281
TEST tema 4:
Linux Avanzado
Marcar la respuesta correcta.
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.
282
TEST tema 5:
Linux Avanzado
Marcar la respuesta correcta.
283
TEST tema 6:
Linux Avanzado
Marcar la respuesta correcta.
4. ¿Qué comando utilizamos para cambiar, borrar o modificar los permisos de los
ficheros?
Chmod.
chonw..
chgpr.
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.
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.
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.
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.
287
TEST tema 10:
Linux Avanzado
Marcar la respuesta correcta.
1. ¿Qué es DNS?
Direct Name Sorted.
Domanin Name Server.
Dinamic Name Server.
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.
289
TEST tema 12:
Linux Avanzado
Marcar la respuesta correcta.
290
TEST tema 13:
Linux Avanzado
Marcar la respuesta correcta.
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”.
2. Usar el comando cut para mostrar solo una parte de cada línea de un fichero.
Nota: vi=Posicion del primer carácter que se va a mostrar vf=La posicion del
ultimo carácter
cp fich fich2
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
else
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
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
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)
como root:
# vim /etc/inittab
Un vez dentro cambiar el numero de la siguiente linea por el runlevel que se quiera
cambiar:
# cd /etc/rcX.d
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>
# vim /etc/lilo.conf
Si el gestor es el Grub:
# vi /boot/grub/menu.lst
297
ACTIVIDADES tema 8:
Linux Avanzado
1. Añade un usuario al sistema, especificando una carpeta de trabajo distinta del
nombre del usuario.
# useradd -M usuario
3. Añade un grupo.
# groupadd grupo
# vim /etc/passwd
usuario:x:501:501:comentario:/home/directorio:/bin/bash
# passwd usuarios
# 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
299
ACTIVIDADES tema 10:
Linux Avanzado
1. Cambia tu ip y la mascara de red con el comando ifconfig.
300
ACTIVIDADES tema 13:
Linux Avanzado
1. Realiza una copia de seguridad de cualquier fichero en tu floppy. Utilzando los
comandos: tar, cpio.
Ver el contenido:
Ver el contenido:
Extraer todo:
2. Hacer una copia de seguridad de uno de los sistemas que tengamos instalados.
Borrar esa partición, y después recuperar nuestro sistema.
# cd /dev/hdx
# cp *.tgz /mnt
301
GLOSARIO
ALAN COX
Junto con Linus Torvalds, unos de los desarrolladores más activos del
kernel.
APLIQUE
ARRANQUE DUAL
ARRANQUE
ATAPI
BIBLIOTECA
BINARY
BIOS
BOOT
CABEZA
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
CISC
CMOS
CÓDIGO FUENTE
CONTROLADOR DE DISPOSITIVO
DAEMON
DEPENDENCIAS
DESMONTAJE
DESVICE DRIVER
DIRECCIÓN IP
DISCO DURO
DISK DRIVER
DISK DRUID
DISQUETE DE ARRANQUE
DISQUETE DE RESCATE
DISQUETE
DISTRIBUCIÓN
DISTRIBUTION
DOMAIN NAME
DRIVER
DUAL BOOT
EIDE
FAQ
FDISK
FILESYSTEM
FLOPPY
FORMATEAR
FORMATTING
FTP
GEOMETRÍA
GUID
GROUP
GRUPO
HARD DISK
HEAD
HOSTNAME
I18n
Una «i» seguida de 18 letras, seguida de una «n», que corresponde a una
abreviatura de la palabra inglesa «internationalization».
IDE
INTERCAMBIO
INTERNACIOLIZACIÓN
ISP
KERNEL
LIBRARY
LILO
LINUX
LOAD AVERAGE
LOGICAL PARTITION
MÁSCARA DE RED
MEMORIA
MILO
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
MOUNT
MOUSE
NFS
NOMBRE DE MÁQUINA
NÚCLEO
OPERATING SYSTEM
PAM
PAQUETES
PARTICIÓN
PARTICIÓN LÓGICA
PARTITION TABLE
PARTITION TYPE
PASARELA
PCMCIA
PLIP
POSIX
PROCESO
PROCESS
PSI
PUNTO DE MONTAJE
RAIZ
RATÓN PS/2
RATÓN SERIE
REARRANCAR
REBOOT
RISC
ROM
RPM
SCSI
SECTOR
SEVIDOR DE NOMBRES
SETGID
SETUID
SILO
SISTEMA OPERATIVO
SLIP
SMB
SOURCE CODE
SPARC
SUPLEMENTAL
SYSTEM CALL
TIPOS DE PARTICIÓN
UID
UNIDAD DE DISCO
UNIX
UNMOUNT
VIRTUAL CONSOLE
XFREE86
bibliografía
Título: Configuración de Sistemas Linux
Editorial: Anaya Multimedia
Autor: Morril, D. L.
Año: 2003
Páginas Web