Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduccin a LINUX
1.1.Historia de Linux y MINIX
La primera versin de LINUX, enumerada como 0.01 contena solo los rudimentos
del ncleo y funcionaba sobre una mquina con el MINIX instalado, esto es, para
compilar y jugar con LINUX era necesario tener instalado el MINIX de Tanembaum.
El 5 de Octubre de 1991, Linus anunci su primera versin 'oficial', la 0.02 con esta
versin ya se poda ejecutar el bash (GNU Bourne Shell) y el gcc (GNU C compiler).
Despus de la versin 0.03, Linus cambi este nmero por 0.10 y tras las aportaciones
de un grupo inicial de usuarios se increment de nuevo la denominacin a 0.95,
reflejando la clara voluntad de poder anunciar en breve una versin 'oficial' (con la
denominacin 1.0).
En Diciembre de 1993 el ncleo estaba en su versin 0.99 pH I. En la actualidad la
ltima versin estable es al 2.0.30 aunque existe ya la versin de desarrollo 2.1.
Hay que sealar que LINUX no sera lo que es sin la aportacin de la Free Software
Foundation y todo el software desarrollado bajo el soporte de esta asociacin as
como la distribucin del UNIX de Berkley (BSD), tanto en programas transportados
como en programas diseados para este que forman parte de algunas distribuciones
del LINUX.
1.2.Minix
A principios de los 90, su libro sobre sistemas operativos "Operating Systems: Design
and Implementation", en el que se inclua una versin impresa de MINIX, era
utilizado en las facultades de todo el mundo. El grupo de noticias de MINIX tena
40000 suscriptores, que pedan continuamente nuevas prestaciones para el software,
que Tanenbaum rechazaba porque quera mantenerlo lo suficientemente pequeo
como para poder seguir enseando con l.
1.3.Distribuciones
Como esto es una ardua tarea no tardan en surgir compaas dedicadas a reunir todos
esos programas facilitando la tarea de crear un sistema Linux funcional. En la
actualidad existe un sinnmero de estas compaas pero solo se mencionarn las mas
importantes dentro del contexto mundial.
Slackware
Debian
SuSE
Caldera
Mandrake
Red Hat Fedora
Slackware
Una de las primeras distribuciones que surge fue Slackware
(http://www.slackware.com), diseada por Patrick Volkerding a partir de SLS Linux .
Esta tuvo una gran aceptacin al principio hasta llegar a ser la distribucin mas
popular del mercado. Actualmente ha perdido terreno a favor de distribuciones mas
modernas, siendo relegada a aplicaciones especializadas.
Debian
Debian (http://www.debian.org) es una distribucin bastante popular que no est
desarrollada por ninguna compaa comercial sino que es fruto del trabajo de diversos
voluntarios en toda la comunidad de Internet. Es, por lo tanto, una distribucin
completamente gratis, sin restriccin de licencias en donde todo el software es
GNU/GPL y no incluye software comercial. Adems es bastante completa y estable
gracias a su sistema de instalacin de paquetes DEB. Sin embargo, tal vez sea algo
dficil para alguien que empieza por primera vez con Linux. Esto no quiere decir que
si es la primera vez que se va a instalar Linux y se tiene una Debian a mano vaya a ser
casi imposible instalarla. Es importante mencionar que Debian tambin ofrece una
versin de su distribucin basado en otro kernel diferente a Linux: GNU Hurd.
SuSE
SuSE (http://www.suse.de) es una distribucin de una compaa alemana la cual
combina el sistema de paquetes de Red Hat (RPM) con una organizacin derivada de
Slackware. Esta distribucin es la mas popular en Europa y tiene un gran soporte para
diferentes lenguas incluido el Espaol. Es una de las ms fciles de instalar y
configurar, adems viene con una gran cantidad de paquetes: 1300 en la versin 6.2 lo
que implica una instalacin completa de alrededor de 5.3 Gbytes en disco duro.
Caldera
Mandrake
Mandrake (http://www.linux-mandrake.com) surge originalmente como un clon de
Red Hat el cual incorporaba las bondades del ambiente integrado KDE con la
estabilidad e instalacin de Red Hat. Hoy en da es considerada una de las
distribuciones mas vendidas en el mundo, ganando varios premios como el Mejor
producto Linux del ao 1999 por la revista Linux World.
Red Hat
http://www.suse.com/index_us.html (SuSe)
http://www.mandrakelinux.com/es/ (Mandrake)
http://www.debian.org/ (Debian)
http://www.slackware.com/ (Slackware)
http://www.ubuntu.es.org (Ubuntu)
Esta seccin est dedicada a describir el hardware del PC segn el punto de vista de
Linux. Este punto de vista est heredado de la filosofa Unix, en la que todo son
archivos, incluidos los dispositivos de hardware. Por lo tanto, Linux virtualiza el
acceso a los dispositivos por medio de archivos que suelen estar en el directorio /dev
(por device: dispositivo). Se muestra un resumen de dispositivos en la tabla 1.1.
Discos duros
Dentro de un PC pueden haber normalmente hasta cuatro discos IDE en total (dos por
canal), cada disco duro tiene un nombre en Linux en funcin de como se haya
instalado. Si el disco duro est funcionando en el primer canal como maestro se
llamar /dev/hda (hard drive a), y si es esclavo /dev/hdb. En caso de que estemos en
el segundo canal IDE los nombres correspondientes sern /dev/hdc y /dev/hdd.
Es posible que sea un poco confuso todo esto y que no se tenga idea de donde se
encuentra el disco duro. En ese caso es bueno tener en cuenta que casi todos los
computadores vienen de fbrica con un solo disco duro que siempre es el /dev/hda.
Un caso a notar son los lectores de cdrom y otros dispositivos ATAPI como las
unidades ZIP o LS-120, normalmente funcionan conectados como un disco duro ms.
Por lo que el nombre ser igual que si fuese un disco duro, en la mayor parte de los
sistemas /dev/hdb.
Unidades de disquete
Las unidades de disquete en Linux se llaman /dev/fd0 y /dev/fd1 (floppy disk 0),
correspondiendo cada nombre a las unidades A: y B: en DOS. Actualmente, los
computadores nuevos con una nica unidad por lo que slo se podr utilizar /dev/fd0.
Puertos de serie
Los dos dispositivos mas comunes que se conectan a los puertos de serie suelen ser
ratones y mdems. En Linux existen dos maneras de nombrar a los puertos serie, en la
primera se llama al COM1 /dev/cua0 y al COM2 /dev/cua1. La segunda manera es
/dev/ttyS0 y /dev/ttyS1. Si es posible, se prefiere utilizar la segunda manera porque la
primera est llamada a desaparecer.
Existe un problema con los puertos serie en el hardware del PC y que puede provocar
problemas desconcertantes. Aun cuando existen cuatro puertos seriales por diseo,
solo existen dos interrupciones asignadas para este servicio. Este problema es
independiente del sistema operativo e implica que en general1.5 no se puede utilizar a
la vez /dev/ttyS0 y /dev/ttyS2, ni tampoco /dev/ttyS1 y /dev/ttyS3 (COM1 con COM3 y
COM2 con COM4 en DOS, respectivamente).
Por lo general aquellos que tengan un ratn conectado a un puerto de serie lo tendrn
en /dev/ttyS0 y su mdem deber estar instalado en el /dev/ttyS1 o /dev/ttyS3. Si el
ratn es tipo PS/2 entonces estar conectado en un dispositivo especial llamado
/dev/psaux y no usar ningn puerto serial.
Puertos Paralelos
Existe un primer sector en el disco duro que no pertenece a ninguna particin llamado
MBR (Master Boot Record) y contiene un pequeo programa de inicio que es el
primero en ejecutarse. l es el encargado de iniciar el sistema operativo: Windows y
DOS ponen ah el suyo. Este se cambiar por el de Linux, que se llama LILO (LInux
LOader), y que permitir escoger el sistema operativo con el que deseamos arrancar.
Linux necesita al menos una particin para poder funcionar. Aunque lo mnimo
aconsejable es tener dos particiones: una dedicada a Linux para su sistema de archivos
y otra de tamao menor dedicada a la memoria de intercambio denominada swap. La
memoria de intercambio permite funcionar con ms memoria RAM (Random Access
Memory) de la que en realidad se tiene, por ejemplo es posible tener 8 Mbytes de
RAM y 20 de swap por lo que el sistema parecer tener en realidad 28 Mbytes. Por
supuesto el disco duro es mucho ms lento que la RAM, por lo que sigue siendo
bueno tener mucha RAM. La recomendacin general es tener el doble de la memoria
RAM, en swap hasta el limite de 128 Mbytes: mximo tamao de una particin de
swap. Si se necesita mas memoria de intercambio se deben crear varias particiones de
swap.
Linux es capaz de distribuir su sistema de archivos entre varias particiones, esto tiene
una clara ventaja, si una particin falla el resto de los datos correspondientes a otras
particiones sigue intacto. Aunque una instalacin casera y por primera vez ser
suficiente con tener todo el sistema de archivos en una sola particin.
FIPS
Para poder dividir la particin eficientemente es necesario que todos los datos estn al
principio de la misma. Sino, es posible que incluso no se pueda hacer. Para
defragmentar se puede usar la utilidad defrag de DOS/Windows.
Un tamao orientativo para Linux puede ser de unos 800 Mbytes, aunque todo
depender del tamao lo que se piense instalar y del espacio libre en el disco duro.
Una vez se haya terminado con FIPS, est habr dividido la particin de
DOS/Windows en dos particiones. El espacio de la segunda particin es el que se
dedicar a Linux.
Es necesario borrar la nueva particin creada para dejar su espacio disponible para
Linux. Esto se har ejecutando FDISK y seleccionando la opcin 3 (Eliminar
particin o unidad lgica DOS) y posteriormente seleccionando la opcin 1 (Eliminar
particin primaria DOS). Cuidado con la particin que se vaya a eliminar, recuerde
que es la segunda particin.
Mas adelante, durante la instalacin de Linux se utilizar este espacio disponible para
crear las particiones que necesita Linux.
LILO.
Todas las particiones primarias y extendidas comienzan con lo que se llama sector de
arranque. El IPL por defecto, nicamente pasa el control al sector de arranque de la
particin marcada con el flag de activo, tambin llamado flag de arranque. Como se
puede suponer, slo debera haber una particin con el flag de activo marcado. De
esta manera se controla la particin de arranque.
Podemos usar otros gestores de arranque principal, en lugar del de por defecto, que
incorporen diversas funcionalidades como mens, colores, usuarios, claves u otras
opciones. Algunos gestores de arranque comerciales son el System Commander de V
Communications, el BootMagic de PowerQuest, o el BootStar, pero no son gratis.
Otro gestor que s es gratis es el Ranish Partition Manager.
Lilo no slo puede arrancar Linux, sino que tambin puede arrancar otros OS.
Adems, no ha de instalarse necesariamente en el sector de arranque de una particin,
sino que puede instalarse en el MBR, es decir, en el IPL, convirtindose en el gestor
de arranque principal.
Lilo tambin puede instalarse en el sector de arranque de una particin extendida, lo
cual viene muy bien si tenemos Linux instalado en una unidad lgica y queremos usar
otro gestor de arranque principal que no sea Lilo.
Instalacin de Lilo
Para instalar Lilo hay que crear primero el archivo de configuracin /etc/lilo.conf y
despus ejecutar como superusuario el comando:
lilo
Antes de instalar Lilo, podemos hacer una copia de seguridad de la zona que vamos
a sobreescribir. Por ejemplo, para hacer una copia del MBR del primer disco IDE,
ejecutamos el comando:
Tambin podemos instalar el IPL por defecto, desde MS-DOS, con el comando:
fdisk /mbr
Opciones globales
boot=<device>
Lugar donde instalar Lilo. Por defecto se toma la particin donde est el actual
sistema de archivos raz de Linux.
linear
Usar direcciones lineales en lugar de 3D. Necesario en discos SCSI.
message=<file>
Imprime el archivo indicado al cargar Lilo. Este archivo debe ocupar menos de 65535
bytes. El carcter 0xff hace que se borre la pantalla.
timeout=<tsecs>
Dcimas de segundo que espera Lilo la pulsacin de una tecla antes de arrancar un
OS. Por defecto se espera indefinidamente.
prompt
Fuerza la aparicin del prompt de Lilo.
default=<name>
OS de arranque por defecto.
GRUB
Empecemos a trabajar:
1. - Descarga: ftp://alpha.gnu.org/pub/gnu/grub/grub-0.92.tar.gz
Descarga:http://linuxfromscratch.org/~gerard/grub-0.91-vga16.patch
Esto aade el soporte para un dibujo de fondo en grub, si lo
3. - Instala:
./configure --prefix=/usr # lee INSTALL para saber ms opciones
make
make install
mkdir /boot/grub
cp /usr/share/grub/i386-pc/stage1 /boot/grub
cp /usr/share/grub/i386-pc/stage2 /boot/grub
Y, si quieres, copia tambin uno de los ficheros stage1.5.
4. - Iniciando Grub:
Ahora hay dos formas de continuar, puedes iniciar la Consola
GRUB usando /usr/sbin/grub o utilizando un disco de arranque:
cd /boot/grub
cat stage1 stage2 >/dev/fd0 # Asegrate de tener un disco vaco en
la disquetera!
Reinicia!
5. - Configuracin:
Ahora tienes que definir tu configuracin:
Primero, GRUB quiere saber en qu particin est instalado. GRUB
nombra a las particiones como sigue:
(hd<NmBios>,<NmParticin>) esto es, /dev/hda es (hd0),
#Teclado alemn
setkey y z
setkey z y
setkey Y Z
setkey Z Y
setkey equal parenright
setkey parenright parenleft
setkey parenleft asterisk
setkey doublequote at
setkey plus bracketright
setkey minus slash
setkey slash ampersand
setkey ampersand percent
setkey percent caret
setkey underscore question
setkey question underscore
setkey semicolon less
setkey less numbersign
setkey numbersign backslash
setkey colon greater
setkey greater bar
setkey asterisk braceright
#Linux Estndar
title LFS-Linux 2.4
kernel (hd0,1)/boot/bzImage root=/dev/hda2
#Linux Antiguo
title Antiguo Suse Linux 6.4
kernel (hd1,0)/bzImage root=/dev/hdb2
#Windows 98
title Windows 98
chainloader (hd0,0)+1
#instala grub
title (Re)Instala grub
root (hd0,1)
embed /boot/grub/reiserfs_stage1_5
install /boot/grub/stage1 (hd0) (hd0)1+19 p /boot/grub/stage2
/boot/grub/menu.lst
.
3. Comandos bsicos.
3.1. Terminales virtuales, login, cambio contrasea
Los terminales virtuales son las distintas sesiones (normalmente 6) que se arrancan en
Linux en modo consola y a las que puedes conmutar con ALT-Fn, o con CTRL-ALT-Fn
si ests bajo X-Window.
Las siguientes lneas de /etc/inittab son las encargadas de arrancar los terminales
virtuales:
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty5
Login : _
Password :_
Qu es un shell?
Lo que ocurre internamente en tu computador cuando este ejecuta una accin, tal
como, leer un archivo, grabar un documento, acceder al CD-Rom o ejecutar un
programa, es un proceso bastante complicado y que requiere una serie de acciones por
parte de tu sistema operativo. Por si esto no es suficiente, necesitamos tambin, una
manera de poder comunicarnos con nuestro sistema operativo para decirle que es lo
que queremos hacer. Es aqui donde un intrprete de comandos (shell) hace su trabajo.
Un shell o intrprete de comandos es el proceso encargado de traducir los comandos
que los usuarios introducen, a instrucciones que el sistema operativo entiende. Es el
programa que se encuentra entre el sistema operativo y el usuario ,el cual nos hace la
vida mas fcil.
La shell
Hay diversos tipos de shells, cada una con sus caractersticas. Podemos citar:
Para desarrollar los contenidos que vienen a continuacin voy a utilizar siempre las
shell bash, y algn comentario ocasional con las diferencias con otras shell.
Metacaracteres de la shell
Existen ciertos caracteres que tienen un significado propio para la shell. La shell sabe
interpretarlos para modificar algunos comportamientos. Estos caracteres son:
equivale a cualquier
equivale a cualquier cadena de
* cadena de texto en un ?
texto en un nombre de archivo
nombre de archivo
evala una condicin evala una condicin lgica
[] [! ]
lgica negativa
Tubera, utiliza la salida
Protege el siguiente
de la orden de la
| \ metacarcter para que la shell
izquierda, como entrada
no lo interprete
de la orden a la derecha
Extrae el contenido de una
Ejecuta un proceso en variable. Para usar el contenido
& $
segundo plano de una variable tenemos que
ponerle delante un $
redirige la salida
redirige la salida estndar,
estndar, creando un
> >> creando un archivo nuevo o
archivo nuevo borrando
aadiendo al existente
el existente
2> 2>> redirige la salida de errores,
creando un archivo nuevo o
aadiendo al existente
Redirige la entrada
< () Agrupacin de rdenes.
estndar
&& Y lgico entre rdenes || O lgico entre rdenes
Si en alguna ocasin nos interesa usar alguno de estos caracteres como literal, es
decir, que la shell no lo interprete como carcter especial es necesario que est
precedido (protegido) por el carcter de escape \ (barra invertida).
Un sistema Unix dispone de tres vas o canales para comunicarse con el exterior de
forma estndar.
Una de ellas, la entrada estndar, se utiliza para introducir datos en la shell; de forma
predeterminada est asociada al teclado.
Por ltimo existe un canal dedicado a mostrar la salida de errores, que de forma
predeterminada est asociado a la salida estndar. Cuando la ejecucin de una orden
falla por cualquier motivo, el sistema lo notifica a travs de esta canal. Normalmente,
como el canal va asociado a la salida estndar, los errores aparecen en panaalla.
En mltiples ocasiones nos puede interesar redirigir alguna de estas salidas a otro
canal; para realizar esto disponemos de los metacaracteres :
rbol de directorios
Esto quiere decir que los distintos discos no aparecen como tales discos
independientes en es sistema, sino que aparecen como un directorio ms y esto lo
podemos organizar de acuerdo con nuestros intereses. Cuando hablbamos del
sistema de archivos decamos que intuitivamente se poda ver cada sistema de
archivos como un rbo con archivos y directoriasl, pues ahora cada sistema de
archivos se integra en el rbol de directorio como una rama ms. Los disspositivos
extraibles se integran como ramas que se pueden poner o quitar.
$ mount
/dev/hdb1 on / type ext3 (rw)
none on /proc type proc (rw)
/dev/hdb3 on /usr type ext3 (rw)
/dev/hdb4 on /opt type ext3 (rw)
/dev/hda5 on /tmp type ext3 (rw)
/dev/hda6 on /usr/src type ext3 (rw)
archivo-datos.txt
"archivo de datos.txt"
archivo\ de\ datos.txt
archivo_copia\(1\).txt
archivo>datos.txt
archivo de datos.txt
archivo_copia(1).txt
Hay ocasiones en que nos interesa usar nombres de archivos que hagan referencia, no
a un archivo individual, sino a un conjunto de archivos. Para estos casos tenemos las
plantilla. Una plantilla se forma con caracteres normales y mediante los caracteres:
* equivale a cualquier cadena de caracteres. Por ejemplo ab* equivale a todos los
archivos que empiecen por ab.
? equivale a un carcter individual. Por ejemplo ab? equivale a los nombres de
archivos (o directorios) con tres caracteres y los dos primeros son ab.
Ruta de un archivo
Para indicar la ubicacin en disco de un archivo hay que indicar la lista de directorios
que contienen al archivo. Es decir, un archivo puede estar dentro de un directorio que
a su vez est dentro de otro y as varios. En esta lista, que denominaremos ruta de
acceso, cada directorio est separado del siguiente directorio por el signo / , y sin
dejar espacios en blanco. Por ejemplo:
/usr/bin/wc
hace referencia la archivo wc que est contenido en el directorio bin, que a su vez est
dentro del directorio usr, que est en el directorio raiz.
Ruta absoluta
Una ruta absoluta es aquella que parte del directorio raz. Las rutas absolutas son
vlidas en cualquier caso. Si establecemos como ejemplo paralelo la direccin de la
vivienda, la direccin abosluta incluye la calle y el nmero de la vivienda, de forma
nica e independiente.
Ejemplo:
/home/usuario/.profile
Ruta relativa
Es una ruta que parte del directorio actual como origen. Esta ruta slo es vlida desde
un directorio actual concreto , es decir es relativa a un directorio. Si seguimos el
ejemplo que pusimos para la direccin de una vivienda, una ruta relativa es como si te
indicaran "dos casas ms all de cierta esquina". Observamos como la direccin "dos
casas ms all una cierta esquina" es slo vlida para una calle, y esa misma direccin
referida a otra calle sera otro inmueble distinto. Es decir la ruta relativa depende del
punto de partida.
../../.profile
Propietarios y Permisos
Propiedad
Como vimos en la descripcin del sistema de ficheros, cada i-nodo guarda un espacio
para indicar los nmeros de usuario y grupo. Entonces cada i-nodo pertenece a un
usuario y a un grupo. Tambin el usuario que tenga el UID (nmero de identificacin)
descrito en la base de datos de usuario /etc/passwd que coincida con el del fichero
ser su propietario. Esto tambin es vlido para directorios.
Los propietarios, se utilizan como mecanismo de seguridad para poder asignar ciertas
propiedades en funcin del usuario, en particular los permisos.
Permisos
Cada i-nodo guarda un espacio para almacenar los permisos bajo los cuales se puede
acceder a un fichero. Los permisos se aplican al propietario, al grupo y al resto de los
usuarios. Unix dispone de tres permisos, lectura(r), escritura(w) y ejecucin(x). En
total tendremos nueve bits que indican los distintos permiso en el siguiente orden:
usuario, grupo, otros. Los permisos los podemos expresar en formato octal. Por
ejemplo el valor 751 indicar:
Hay que tener en cuenta que los permisos tienen distinto significado si se aplican a un
fichero o a un directorio.
Grupos de usuarios
Los Grupos son una forma de otorgar una serie de privilegios a un conjunto de
usuarios, sin tener que asignrselos a cada uno en particular.
Hemos dicho que todo usuario tiene siempre un grupo principal al que pertenece. Hay
dos posibilidades para los usuarios normales: que todos tengan el mismo grupo
principal (generalmente users) o que cada usuario tenga un grupo principal especco
(casi siempre del mismo nombre que el usuario).
Esto responde a las necesidades de cada sistema. En el primer caso, los directorios de
trabajo de los usuarios suelen ser accesibles por el resto de usuarios (no es lo ms
comn); mientras que en el caso de que cada usuario tenga un grupo principal, lo
normal es que los directorios de trabajo de cada usuario sean slo accesibles por ese
usuario (que s es lo ms comn).
Para mantener los grupos se usan los comandos groupadd, groupdel y groupmod.
3.5. Procesos
Cuando el ncleo Linux inicia llega un momento en que se debe ejecutar el primer
programa, el cual se encarga de leer los scripts de inicio y dejar el sistema listo para el
login. Este primer proceso es el INIT y recibe el identificador de proceso (PID)
numero 1. De este proceso se desprenden varios procesos, algunos que se ejecutan
una sola vez (scripts de runlevel), otros que se ejecutan repetitivamente (getty/mgetty,
el programa que nos solicita login en cada terminal que definimos en /etc/inittab), etc,
etc.
Pero en resumen, mas alla de cuando, como y cuanto se ejecutan, cada vez se define
un nuevo PROCESO. La imagen de un proceso es el programa en cuestion. Ahora, se
necesita una forma de saber cuando un proceso muere. Excelente, se hace con
seniales, pero, a quien se le avisa? Al proceso que genero a dicho proceso "hijo". Las
funciones que ahora vamos a ver nos permiten: crear procesos, reemplazar imagenes
de procesos y administrar la muerte de procesos que nosotros (o, mejor dicho, nuestro
programa) han creado.
Para conocer los procesos se debe ejecutar el comando ps e. Mostrar una lista
como la mostrada a continuacin:
shrek@pantano:~]$ ps
PID TTY STAT TIME COMMAND
172 p0 S 0:00 -bash
184 p0 R 0:00 ps
[shrek@pantano:~]$
Donde n de seal :
1 es corte
2 es interrupcin
3 es quit
5 es hangup
9 es cancelar inmediatamente.
Ejemplos:
cat <origen >destino. Se crea el chero destino como copia de origen.
cat noexiste 2>/dev/null. Se muestra por pantalla el contenido del archivo
coexiste ,pero los mensajes de error se desechan.
cat fichero2>error.log . Se muestra por pantalla el contenido del archivo fichero y
los errores quedan grabados en error.log.
Las tuberas o pipes se utilizan para secuencias procesos, es decir que el resultado de
un comando o proceso invocado, se redirecciona al siguiente. La tubera se indica con
el smbolo |.
Por ejemplo:
ls l $HOME | cat listado. Se almacena en el archive listado la salida del comando
ls (mostrar directorio).
Entrada y Salida
La mayora de los comandos UNIX que nosotros utilizamos tienen una entrada
estndar, una salida estndar y una salida para errores estndar. Las denominamos
stdin, stdout y stderr respectivamente.
Un comando genrico, lee datos de la entrada estndar, los procesa de alguna manera,
y luego emite el resultado por la salida estndar. En el caso de que durante el proceso
hubiera algn error, emitir una aviso de ese error por la salida de errores.
2
Utilizar 2> nos permite redirigir la salida de errores a un archivo. Por ejemplo, si
ejecutamos ls archivo-feo 2> test, el error del ls, indicndonos que el archivo-
feo no existe se almacenar en test.
Este comando recibe el nombre de pipe, que en ingls significa caera o tubera. Es
decir que es un comando que entuba la salida de un comando con la entrada de otro.
Adems es necesario tener en cuenta que un comando no puede utilizar como entrada
y salida un mismo archivo. Por ejemplo, al ejecutar cat archivo > archivo, el
intrprete de comandos nos indicar que esto no es posible.
Se puede sustituir la salida de una orden en la lnea de orden, de la misma forma que
se sustituyen las variables. Esto se logra con las comillas invertidas, `...`, colocando
entre ellas a la orden cuya salida se quiere sustituir en la lnea de orden.
Por ejemplo, si el archivo names contiene los nombres de camino de tres archivos de
texto:
$ cat names
/home/lgm/escritos/manual.txt
/sites/lgm/prc/files
/tmp/correo_abril
$ vi `cat names`
$ vi
/home/lgm/escritos/manual.txt
/sites/lgm/prc/files
/tmp/correo_abril
3.8. Expresiones regulares y otros filtros.
Una expresin regular es una plantilla formada por unos metacaracteres con
significado propio que se utiliza para especificar patrones regulares sobre cadenas de
texto. Como esta definicin no aclara mucho los conceptos vamos a intentar aclarar
ms las cosas con algunos ejemplos prcticos. Un ejemplo de algo parecido a un
expresin regular seran las plantillas para nombres de ficheros usando * y ?; en este
caso, *.txt expresara todos los ficheros cuyo nombre termina en .txt, pero una
expresin regular va mucho ms alla. Una expresin regular se puede construir, para
concordar con, por ejemplo, una direccin de correo electrnico, un nmero, una
fecha, una url, una etiqueta HTML, etc., es decir, cualquier cadena que cumpla unas
determinadas caractersticas de regularidad.
Existen distintas formas de aplicar expresiones regulares y puede que no todos los
programas las admitan en su totalidad. Ms adelante, en los ejemplos veremos ciertos
programas para ver qu podemos aplicar en cada caso y por qu se producen errores
de interpretacin. Podemos especificar la sintaxis, POSIX, tradicional o Unicode. Nos
vamos a centrar en la sintaxis POSIX, aunque tambin veremos a la vez algo de la
sintaxis tradicional. Aqu vamos a ver una visin general y completa de las
expresiones regulares.
Las expresiones regulares nos van a resultar de suma utilidad para realizar
operaciones sobre cadenas de caracteres, tanto de comprobacin como de edicin, con
una potencia imposible de obtener por lo sistemas tradicionales que proporcionan los
editores de texto.
Por ejemplo, si queremos encontrar en una pgina web todos los colores (bgcolor) de
las celdas (<td>)de una tabla tendramos la siguiente expresin:
/<td[^>]*?bgcolor=.?#([0-9a-fA-F]{6})[^>]*>/
Otro ejemplo, muy simple y mejorable, para verificar una direccin simple de correo
electrnico:
[A-z0-9_]+(EN)([A-z0-9]+\.[a-z]{2,4}
/[0-9]{2}\/[0-9]{2}[0-9]{2}\/[0-9]{2}/
Usamos como separador de la expresin regular el carcter "/". Entonces los
caracteres "/" propios del formato de fecha tienen que ir protegidos mediante la
contrabarra ("\"). El resto de la expresin consiste en indicar que tenemos dos dgitos.
Esta expresin no verificar fechas del tipo 2/3/07, ya que segn la definicin
obligamos a tener dos dgitos por componente. Para mejorarla exigiremos que los
componentes correspondientes al dia y al mes puedan tener uno o dos dgitos:
/[0-9]{1,2}\/[0-9]{1,2}[0-9]{2}\/[0-9]{2}/
No obstante seguiran siendo valores de fecha aceptados 9/99/07. Para afinar un poco
ms la expresin tendramos que exigir que el mes no pudiera ser mayor que 12 y el
da no mayor que 31:
\/([1-9]|1[012])\/
es decir o tenenemos un solo dgito que va del 1 al 9 o tenemos dos, de forma que el
primer es un 1 fijo y el segundo puede ser 0, 1 2.
\/([1-9]|[12][0-9]|3[01])\/
/\/([1-9]|[12][0-9]|3[01])\/\/([1-9]|1[012])\/[0-9]{2}/
Por ltimo, si quisiramos que tambin fuer vlida una fecha como 01/02/08, la
expresin quedara como:
/\/(0?[1-9]|[12][0-9]|3[01])\/\/(0?[1-9]|1[012])\/[0-9]{2}/
Es decir, aadiendo "0?" estamos diciendo que el "0" puede o no estar presente.
Vamos a definit una expresin regular para comprobar una direccin de correo
electrnico:
aaa-bbb
aaa.bbb
aaa_bbb
aaa_bbb_ccc
([0-9a-zA-Z]+)([._-]([0-9a-zA-Z]+))*
A continuacin, despus del literal (EN) el nombre del dominio que se construye de
una forma similar al nombre del usuario y al que le aadimos un dominio de nivel
superior que consta de 2 a 4 caracteres.
([0-9a-zA-Z]+)([._-]([0-9a-zA-Z]+))*[.]([0-9a-zA-Z]){2,4}
"^([0-9a-zA-Z]+)([._-]([0-9a-zA-Z]+))*(EN)([0-9a-zA-Z]+)([._-]([0-9a-
zA-Z]+))*[.]([0-9a-zA-Z]){2,4}$"
Modos de bsqueda
/s activa modo "lnea nica". En este modo los saltos de lneas verifican el punto.
Ejemplos
"^([0-9a-zA-Z]+)([._-]([0-9a-zA-Z]+))*(EN)([0-9a-zA-Z]+)([._-]([0-9a-
zA-Z]+))*[.]([0-9a-zA-Z]){2}([0-9a-zA-Z])?$"
Expresin de un hiperenlace
"<a[ ]{1,}href=[\"']{0,}([a-zA-Z0-9/:~._#]{0,})[\"']{0,}[^>]
{0,}>([^<]{0,})</a>"
Editor vi
Por tanto, queda claro que no se pueden usar las teclas de funcin. En el vi a muchas
funciones (como grabar fichero, borrar lneas, etc) se accede de dos formas posibles:
Pulsar esa tecla (tambin llamada Control) junto con otra tecla alfabtica. Por
ejemplo, si dejo pulsada la tecla Ctrl mientras pulso f, avanzar una pgina en mi
documento. Hay que hacer notar que esto es posible porque todos los terminales
generan el mismo cdigo numrico al pulsar Ctrl junto con una letra, por tanto no
hay problema de incompatibilidad entre fabricantes,
Por eso el vi tiene dos modos de funcionamiento, entre los cuales el usuario debe
alternar continuamente durante una sesin de edicin:
Modo edicin
Todo lo que escribo, aparece en pantalla, como es habitual en todos los editores.
Modo comando
Lo que escribo estando en este modo (al cual se accede pulsando la tecla ESC, llamada
tambin escape), las teclas tienen un significado especial. Por ejemplo, $ mueve el
cursor hasta el final de la lnea, j lo mueve una lnea hacia abajo, :w graba el fichero,
:q es para salir del editor.
Del modo edicin se pasa al modo comando usando la tecla ESC. Del modo comando
se pasa al modo edicin con alguna de las siguientes teclas: i,I,a,A,o,O (y alguna
otra).
Hay que tener presente que al entrar en el editor vi, el modo inicial es el MODO
COMANDO.
Entrada al editor vi
vi fichero
Tras ejecutar ese comando, se borra la pantalla y, si el fichero ya exista previemente,
aparece su contenido. Si no exista, quedan todas las lneas de la pantalla vacas pero
con una tilde (~) al principio. Con esa tilde representa el vi las lneas que estn vacas.
Una cosa que hay que tener en cuenta en el manejo del vi es que conviene estar el
mximo tiempo posible en el modo COMANDO, pues as las modificaciones no
deseadas en el texto son menores. En cuanto terminemos de escribir, debemos pulsar
ESC para ir al modo comando. Si queremos editar en otra parte del fichero, iremos a
esa parte en este modo y en ah pasaremos de nuevo al modo edicin.
Primeros comandos
Antes que nada, tendremos que empezar a escribir algo en un fichero. Si vamos a
llamar a este con el nombre primero, ejecutamos desde UNIX:
vi primero
Al pulsar la tecla INTRO aparece la pantalla vaca con una tilde al principio de cada
lnea. Estamos en modo comando, por lo que para comenzar a escribir hay que pasar
al modo edicin. La forma ms habitual de hacer esto es con el comando i. Al pulsar
esa letra, no ocurre nada, no vemos ningn cambio en la pantalla, pero el modo a
cambiado al de EDICION.
Ya hemos mencionado que para entrar en el modo edicin se usa el comando i (de
insertar). Al pulsarlo, lo que escribamos se aade justo donde est el cursor. A veces,
debemos usar otro comando. Este es el caso de tener que aadir texto al final de una
lnea. Si tenemos una lnea tal como la siguiente:
En un lugar de la Mancha
Si nos desplazamos al final para aadir lo que falta, el cursor no pasar ms all de la
ltima a (nunca se puede mover el cursor despus del ltimo carcter de una lnea). Si
ahora pulsamos i y escribimos un texo, ste se insertar entra la h y la a. Lo que
queremos en este caso no es INSERTAR, sino AADIR. Para ello se usa el comando
a. Al introducirlo, el cursor -que estaba, recordemos, encima de la o- se sita despus
de esta letra, permitindonos escribir ah.
Ya hemos abierto una lnea y podemos escribir. Pulsando INTRO podemos abrir ms
lneas si queremos. Para evitar esa secuencia tan tediosa, hay otro comando significa
abrir una lnea antes de la que est el cursor y pasar en ella al modo edicin. Este
comando es O (o mayscula).
Resumimos los comandos para pasar al modo edicin (hay alguno ms pero estos son
los ms habituales):
1. Ir a la primera lnea.
2. Ir al final de ella (con $ o pulsando l hasta llegar al final)
3. Pulsar a para aadir
4. Pulsar INTRO. Esto inserta un salto de lnea, o sea, una lnea nueva y deja el
cursor al principio de la misma. Ya podemos escribir
Forma 2
1. Ir a la primera lnea
2. Pulsa o. Esto inserta una lnea debajo y pone el cursor en ella. Ya podemos
escribir.
Forma 3
1. Ir a la segunda lnea
2. Pulsar O. Esto inserta una lnea encima de la actual y pone el cursor en ella.
Ya podemos escribir.
Borrar y copiar
Para copiar texto de un sitio del fichero a otro, primero hay que marcar el texto que
vamos a copiar, luego ir al sitio donde queremos copiarlo, y dar la orden de copia.
Esta orden de copia es el comando p. Hay varia formas de marcar el texto que
queremos copiar. Por ejemplo:
Rangos de lneas
En algunos comandos, como vimos por ejemplo en el caso de dd, podemos indicar el
rango de lneas en que hay que aplicarlo. Por ejemplo, 10dd significa borrar 10 lneas
(la actual y las 9 siguientes). Y si queremos borrar todas las lneas desde donde
estamos hasta el final del fichero? No es necesario contar cuntas son, pues podemos
hacer :,$d
El comando :d tambin sive para borrar lneas. A la mayora de los comandos que
comienzan por :,/,? podemos aplicar un rango de lneas a las que queremos aplicar el
comando. Ese rango puede ser o un nmero de lnea o un par de ellas separadas por
coma. Si dejamos una sin nmero, indica la lnea actual. Un signo $ indica la ltima
lnea. Ejemplos:
:set number
vi tiene unos cuantos comandos para activar y desactivar determinadas caractersticas.
Una lista exhaustiva se da al final de este manual. Si se desea usar siempre el vi con
las lneas numeradas, en vez de escribi siempre el comando, se puede aadir esa lnea
al fichero .exrc de nuestro directorio actual.
Bsqueda y sustitucin
La explicacin de los patrones de bsqueda est ms all de este texto (est explicada
en la pgina de manual UNIX del comando ed; se puede ver con la orden orden man
ed), pero debemos explicar algunas cosas. Por ejemplo, el patrn
^[0-9]:
buscar las lneas que comienzen (esto se indica con ^) por un dgito (indicado por
[0-9]) y luego el carcter :. otro ejemplo:
^.. ...$
Busca las lneas compuestas unicamente por dos caracteres, un espacio y 3 caracteres
ms. El carcter ^ indica el comienzo de lnea; el $ indica el final de lnea y el punto
un carcter cualquiera. As estamos indicando que entre el principio y el final slo
debe haber dos caracteres cualesquiera, un espacio y otros tres caracteres.
100$
Si lo buscamos con /100$, el signo $ se interpretar como fin de lnea. Nosotros no
queremos que sea as, sino buscar en el texto ese carcter. El mismo problema
tenemos con los signos que tienen un sentido especial (como ^,[,],.). Estos caracteres
deben ir con el signo [bsol ] delante para que se tomen literalmente, sin su sentido
especial. As para buscar 100$ sera:
/100\$
Esto se aplica a los siguientes caracteres:
^ $ . [ ] / \
Para SUSTITUIR texto, se usa el comando:
:s/texto a buscar/texto sustituto/
Al introducir :s, el cursor va a la ltima lneade la pantalla y ah escribimos el resto
del comando. Eso sustituir en la lnea actual el texto a buscar por texto sustituido. Si
queremos hacer esta operacin en todo el fichero, haremos:
:1,$s/texto a buscar/texto sustituto/
Vemos que entre el carcter :y la letra s podemos indicar el rango de lneas.
El comando s sustituye, como hemos dicho, un texto por otro, pero slo la primera
vez que aparezca el texto a buscar en cada lnea. Si queremos sustituir todas las veces
que aparezca, aadimos al final g:
Como ya hemos dicho, en la pgina del manual del comando ed se explica todo esto
en ms profundidad.
Otras posibilidades
Algunas de las muchas posibilidades adicionales que permite el vi, pero que no vamos
a detallar son:
Registros
Los registros son como zonas de memoria donde podemos guardar trozos de texto
para pegarlos en otros lugares. Ya vimos cmo hacer esto con los comandos Y, y y p,
pero slo con un trozo a la vez.
Podemos marcar puntos determinados del texto y movernos de unos a otros de forma
sencilla.
Macros
Para terminar, admitir que a pesar de su potencia es difcil dominar todo lo que hemos
visto, y difcil es explicarlo, pero creo que se entiende facilmente la lgica de sus
comandos, y a veces aunque no se sepa qu comando existe para hacer algo, se puede
deducir. Por ejemplo, cmo marco la palabra actual y las tres siguientes para
pegarlas en otro lado? No es difcil pensar que ser el mismo comando para marcar
una palabra, yw repetida tres veces, por tanto: 3yw.
Editor emacs
El editor emacs es un editor muy popular. Existe para casi todas las plataformas
o arquitecturas de mquinas. Estas son algunas de las ventajas del emacs:
1. A diferencia con el vi, el editor emacs opera en un slo modo: los caracteres son
insertados en donde se ubica el cursor. los comandos van acompaados de Ctrl-X o
Esc. El editor emacs puede manejar mltiples ventanas, dividiendo lapantalla en
varias secciones, entre las cuales se puede realizar "corta-pega".
Se puede definir funciones o comandos especiales dentro del emacs.
2. Algunas versiones de emacs contienen mdulos auxiliares que ayudan en la edicin
de programas en LISP, C, Pascal, Fortran y otros lenguajes.
Empezamos por los comandos ms bsicos. La mayor parte de los comandos son
de la forma: ESC-caracter, es decir, la secuencia de ESCAPE y despus el caracter
indicado. Por ejemplo ^XS significa Ctrl-X seguido del caracter S.
emacs archivo
dnde archivo es el nombre del archivo que queremos crear (o modificar,si ya existe).
^X^S
^X^C
Algunas veces, queremos cancelar algun comando por alguna razn para ello:
^G
(abortar comando)
Esc <
Esc >
^N
siguiente rengln.
^P
Rengln anterior.
^A
Inicio de rengln.
^E
^F
^B
ESC f
^V
Siguiente pgina.
Ecs v
Pgina anterior.
^S
^R
ESC x
goto-line Ir a rengln.
I-search:
Borrando en emacs.
^D
DELETE
ESC d
ESC DELETE
Cortando y pegando
^K
^W
ESC W
BARRA ESPACIADORA
n
No hace ningun reemplazo y sigue a la siguiente posicin.
.
Leer archivo.
^X ^S
^X ^W
^X ^I
Inserta archivo.
^X ^W
Visita archivo.
3.9. Programacin de shell scripts.
Si ya has practicado un poco con el shell bash, te habrs dado cuenta de que se
pueden hacer muchas cosas interesantes con l. Aunque hay veces, que para conseguir
determinado resultado necesitas introducir, por ejemplo, 3 o 4 comandos; o tenemos
que evaluar una condicin manualmente (por ejemplo, con ls comprobamos
manualmente si un archivo existe). Los scripts de shell nos dan la
posibilidad de automatizar series de comandos y evaluciones de condiciones.
$ bash miscript.sh
Hola
Soy un script de shell
Variables
Recordamos que una variable es un nombre al que le hacemos
corresponder un valor. Este valor puede ser un valor numrico o
bien una cadena de texto indistintamente en los scripts de shell. Los
nombres de las variables conviene que comiencen por una letra,
despus veremos por qu.
En el siguiente ejemplo aprenderemos a usar las variables en
nuestros scripts
#!/bin/bash
# Asignacin de una variable:
#
5
variable=5
otravariable=10
10 tercera=2
resultado1=$[5*10/2]
resultado2=$[$variable*$otravariable/$tercera]
15 echo " "
echo "El resultado de 5*10/2 es $resultado1 ,"
echo "que efectivamente coincide con $resultado2 "
echo " "
20 frase="Introduzca lo que usted quiera:"
echo $frase
read Entrada del usuario
echo
echo Usted intruso : $Entrada del usuario
25
exit 0
El proyecto
El software
La comunidad
2. Instalar KDE
Qu necesita?
Ante todo, si est interesado en instalar KDE (o el soporte para KDE), debe
asegurarse que su variable USE contenga las palabras claves kde y qt. Qt es el motor
de la biblioteca grfica de widgets de KDE.
Tambin debera agregar ahora hal a su variable USE si quiere aadir soporte para el
montaje automtico de dispositivos tal como se explica ms abajo en Configurar KDE
para montar dispositivos.
Listado de Cdigo 2.1: Listar de todos los paquetes que KDE instalara
# emerge --pretend kde | less
Paquete Descripcin
Programas relacionados con Accesibilidad, gestionados por el
kdeaccessibility
Proyecto de Accesibilidad de KDE
Herramientas de Administracin KDE, por ejemplo, KCron
kdeadmin (Planificacin de tareas), KUser (Gestin de Usuarios) y KDat
(Gestin de Copias de Seguridad)
Diferentes utilidades relacionadas con el arte, por ejemplo:
kdeartwork protectores de pantallas, temas de escritorio. Vase tambin
www.kde-artists.org para ms informacin.
Paquetes de aplicaciones educativas KDE diseadas para nios
kdeedu y jvenes de 3 hasta 18 aos. Vase tambin el Proyecto KDE
Edu.
Incluye algunos juegos desarrollados para KDE. Puede
kdegames encontrar ms informacin en la siguiente pgina de Centro de
Juegos KDE.
Herramientas grficas para KDE, incluyendo KSnapshot (para
sacar capturas de pantallas), KolourPaint (editor grfico
kdegraphics
sencillo), Kpdf (visualizador de ficheros PDF), KIconEdit
(editor de iconos) y KPovModeler (un modelador 3D).
Aplicaciones multimedia que proporcionan soporte para
reproduccin de CDs, MP3s, DVDs y otras aplicaciones de
kdemultimedia
sonido y video. Para ms informacin vase la web del Proyecto
KDE Multimedia.
Aplicaciones relacionadas con la conectividad y redes como por
ejemplo Kopete (Mensajera Instantnea Multi-Protocolo), kppp
kdenetwork (Marcado) y KSirc (Cliente IRC). Tenga en cuenta que
konqueror (Gestor de Ficheros y Navegador) es parte del
paquete kdebase!
Herramientas de Gestin de Informacin Personal (PIM) que
incluyen aplicaciones como KOrganizer (Agenda),
kdepim KAddressbook (Libreta de direcciones), Kontact (Groupware) y
KMail (Gestor de correo electrnico). Para ms informacin
vase la pgina del Proyecto KDE PIM.
Herramientas de desarrollo de cdigo, que incluyen KBabel
(Herramienta de Traduccin), KBugBuster (Utilidad para
kdesdk
informar de errores en KDE) y Kompare (Interfaz grfica para
ver diferencias entre ficheros).
Algunos juguetes para entretenerse mientras est esperando la
entrega de su pizza. El paquete incluye entre otras aplicaciones
kdetoys los siguientes applets eyesapplet y fifteenapplet, adems estn
disponibles curiosos programitas como amor que no hacen nada
ms aparte de consumir recursos :)
Interfaces grficas de herramientas kcalc (Calculadora), kdessh
kdeutils (Terminal SSH), kfloppy (Tareas relacionadas con diskettes),
etc.
Ficheros de internacionalizacin de KDE. Incluye
kde-i18n documentacin traducida. Vase para ms informacin la pgina
del Proyecto KDE i18n.
Saber qu instalar o no es un poco ms difcil con los ebuilds separados. Sin embargo,
Gentoo provee algunos meta-paquetes que instalarn consigo una cierta cantidad de
paquetes KDE para Ud.:
Si quiere una completa instalacin de KDE, instale kde-meta. Este paquete traer
todas las aplicaciones como dependencias.
Si desea una instalacin bsica de KDE, instale kdebase-startkde. Siempre puede
instalar aplicaciones KDE adicionales cuando quiera.
Estas dos posibilidades son los lmites extremos, probablemente est interesado en
una mezcla segura de las dos :) Para facilitar el proceso de decisin, la siguiente tabla
presenta un corta, muy incompleta pero til visin general de algunos de los paquetes
disponibles de KDE.
Nombre del
Descripcin
ebuild
La aplicacin para administrar y navegar fcilmente canales de
akregator
sindicacin RSS en internet.
El reproductor de media orientado a listas de reproduccin, con
juk
una apariencia similar al iTunes de Apple.
El Editor Avanzado de Textos de KDE, es un editor multi-
kate documento con resaltado de sintaxis, bloques de cdigo
contrables (code folding) y ms.
kcontrol El Centro de Control de KDE.
La aplicacin kicker es el conocido panel para ejecutar/lanzar
aplicaciones en KDE. Contiene el men K y es capaz de correr
kicker
applets fijos (docked) como el localizador, la barra de tareas, el
reloj, etc.
kmail Organice eficientemente sus correos electrnicos con KMail.
Con KNetAttach (tambin conocido como el Asistente de Carpetas
knetattach de Red), puede fcilmente agregar carpetas de red adicionales a su
escritorio KDE.
knode KNode es el poderoso lector de noticias de KDE.
Con Konqueror tiene completo un gestor de ficheros y un
konqueror
navegador web.
konsole Konsole es el emulador de terminal en KDE.
Kontact es el Administrador de Informacin Personal de KDE, el
cual le ayuda a gestionar sus comunicaciones ms fcilmente,
kontact
organizar ms rpido su trabajo y trabajar juntos de forma ms
cercana.
Kopete es la aplicacin de mensajera instantnea (MI) de KDE
kopete
que soporta todos los protocolos de MI conocidos.
korganizer Korganizer es la aplicacin de calendario y planificador para KDE.
Con KPDF puede ver y trabajar con ficheros PDF. Tiene
kpdf caractersticas muy nicas que mejoran con creces la visin de
documentos.
kscd kscd es un reproductor grfico de CD para KDE.
ksnapshot Con ksnapshot puede tomar capturas de pantalla de su escritorio.
La aplicacin kuickshow de KDE es capaz de visualizar y explorar
kuickshow
diversos formatos de imgenes.
Y esto es slo la punta del iceberg. Si quiere saber ms acerca de todas las
aplicaciones de KDE, d una mirada a la categora kde-base. Sus funciones deberan
estar disponibles en la descripcin de los paquetes.
Para previsualizar qu instalara emerge, use emerge -p junto con el paginador less, de
otra manera puede que no sea capaz de ver todos los paquetes.
Si est feliz con el resultado que se le propone, quite la opcin -p. Este proceso de
construccin tomar algo de tiempo pues KDE es un entorno grande. No se sorprenda
de que su sistema no lo concluya inmediatamente.
El nmero de aplicaciones de KDE no est limitado a aquellas que vienen con las
versiones oficiales de KDE, sino que incluyen cientos de otras aplicaciones que usan
el framework y bibliotecas de KDE. Aqu listamos algunas de las ms populares.
Nombre
Descripcin
del ebuild
KOffice en la completa suite ofimtica de KDE, con aplicaciones
para procesamiento de texto (KWord), hojas de clculo (KSpread),
presentaciones (KPresenter), manipulacin de imgenes (Krita),
koffice gestin de base de datos (Kexi) y mucho ms. As como KDE puede
ser instalado mediante los ebuilds kde o kde-meta, KOffice por su
parte se instala como un paquete completo (koffice) o como un
conjunto de paquetes individuales (koffice-meta).
Con amaroK tiene un poderoso reproductor de msica para
amarok
Unix/Linux.
K3B es una completa herramienta para quemar CD/DVD con soporte
k3b
de audio. Quemar CDs nunca fue tan fcil.
kaffeine Kaffeine es un completo reproductor multimedia para KDE.
Primeras impresiones
3. Configurar KDE
KPersonalizer
La segunda decisin que debe tomar es acerca del Comportamiento del Sistema; esto
incluye el modus operandi de ventanas, configuracin del ratn, etc. Cuando
selecciona un comportamiento especfico su descripcin aparece en la parte inferior
para ayudarle a tomar la decisin sobre el modo de funcionamiento que le gusta ms.
Si no est seguro, no se preocupe, podr cambiar esta configuracin cuando lo desee.
Finalmente KDE le pregunta sobre el estilo que debe usar. Los estilos definen la
decoracin de ventanas, temas de escritorio, tipos de botones, y etc. Pruebe diferentes
estilos para averiguar cul le agrada ms. Hemos dicho ya que KDE es totalmente
configurable, verdad?
Ya puede ejecutar emerge kde-i18n para instalar los packs de idiomas. Una vez
finalizada la instalacin, cuando inicie KDE debe ejecutar el KDE Control Center (K-
menu > Control Center). Esa es la aplicacin que le permite controlar casi cualquier
aspecto de KDE. Este programa contiene ms funcionalidades que el KPersonalizer.
Para cambiar el idioma, debe acceder a las opciones todava en ingls Regional &
Accessibility, Country/Region & Languages y entonces aadir los idiomas que desea.
Para ver su KDE (internacionalizado) y en toda su gloria, debe salir y volver a entrar
en el sistema.
Acceso grfico
Si desea utilizar kdm como gestor de acceso grfico (significa que no necesitar
identificarse en el terminal y ejecutar startx cada vez que desee iniciar una sesin
grfica) debe editar un fichero de configuracin para que el sistema entre en modo
grfico luego de arrancar, tal como se explica a continuacin.
KDM suministrar una lista de sesiones grficas disponibles para escoger, incluyendo
KDE - por supuesto - y las dems sesiones instaladas en el sistema, la cuales
encuentra KDM al examinar el directorio /usr/share/xsessions/. As que, si usa KDM,
no necesita modificar el fichero ~/.xinitrc.
Tambin puede hacer que sus dispositivos se monten automticamente sin interaccin
alguna, tan solo necesita instalar ivman y aadirlo al nivel de ejecucin default.
Qu es GNOME?
El proyecto
El software
La comunidad
As como cualquier proyecto grande de software libre, GNOME tiene una extensa
base de usuarios y desarrolladores. La pgina Footnotes contiene noticias del entorno
de escritorio GNOME para usuarios; GnomePlanet es para hackers/colaboradores y
Developer.Gnome.Org es para los desarrolladores de GNOME.
Instalar GNOME
Qu necesita?
Antes de comenzar a instalar GNOME, tal vez quiera modificar sus parmetros USE.
Asegrese que gtk y gnome sean agregados a su /etc/make.conf. Si desea agregar
soporte para hald, el demonio de abstraccin del hardware, agregue hal a sus
parmetros USE. El parmetro USE howl integra la deteccin DNS a GNOME
(similiar a Rendevouz bajo Mac OS X). Si no desea soporte para KDE (el otro
entorno de escritorio importante), quite los parmetros qt y kde.
Tambin puede optar por una instalacin mnima de Gnome, usando gnome-light:
Listado de Cdigo 2.3: Instalar un entorno mnimo GNOME
# emerge gnome-light
Esto tomar un rato, as que tal vez quiera comenzar a leer todos aquellos libros
comprados recientemente pero que no lleg a abrir. Listo? Bien, ahora actualice sus
variables de entorno:
Si puso atencin a la salida del comando emerge anterior, notar que sugiere agregar
gamin para que nautilus y gnome-vfs monitoricen los cambios en los archivos:
# /etc/init.d/mDNSResponder start
# rc-update add mDNSResponder default
Primeras impresiones
Tomemos una mirada a lo que acabamos de construir. Salga del shell de superusuario
e ingrese como un usuario normal. Configuraremos nuestra sesin para ejecutar
GNOME al escribir el comando startx (vea tambin Usar startx en la Gua de
configuracin del servidor X): :
Si todo va bien, ser saludado por GNOME. Felicitaciones. Veamos ahora cmo
configurar GNOME para sus necesidades.
Configurar GNOME
Deberas comprobar siempre un par o tres de veces los comandos que ejecutas como
superusuario, ya que un espacio de ms o un carcter omitido pueden significar una
prdida de datos irreparable.
As pues, lo primero que deberas hacer despus de leer este captulo es crear una
cuenta sin privilegios de uso general para ti si an no la tienes. Esto aplica tanto si
trabajas en una mquina con varios usuarios como si trabajas en una mquina con un
solo usuario. Ms adelante, en este mismo captulo, explicamos cmo crear cuentas
adicionales, y cmo cambiar de usuario normal a superusuario.
Dispositivos de arranque
LILO
LInux LOader, es el cargador del kernel ms comn para Linux
Uso casi exclusivo para arranques desde disco duro
Configuracin en /etc/lilo.conf
Cargador en sector de arranque y en /boot/map
Ejemplo de /etc/lilo.conf:
boot=/dev/hda
root=/dev/hda1
image=/boot/vmlinuz
label=Linux
image=/boot/vmlinuz-2.6.10
label=2.6.10
GRUB
GRand Unified Bootloader, es el cargador del Proyecto GNU
Muy verstil y configurable, permite arrancar casi cualquier sistema
operativo
Entiende internamente FAT, ext2, Reiser, JFS. . .
Configuracin en /boot/grub/menu.lst. Ejemplo:
title Debian GNU/Linux
root (hd0,1)
kernel /boot/vmlinuz root=/dev/hda1 ro
title Debian GNU/Linux, kernel 2.6.10
root (hd0,1)
kernel /boot/vmlinuz-2.6.10 root=/dev/hda1 ro
SYSLINUX / ISOLINUX
Orientado a arranques desde floppy o CD
Prcticamente todas las distribuciones de Linux lo utilizan como
cargador durante la instalacin del sistema
Configuracin en /syslinux.cfg (/isolinux.cfg):
DEFAULT Linux
DISPLAY readme.txt
LABEL Linux
KERNEL linux
APPENT ro initrd=image.gz
LABEL dos
KERNEL opendos.bss
Arranque remoto
En el cliente, tiene que estar activo el arranque por red
En el servidor, es necesario:
Servidor de DHCP (para configurar la red)
Servidor de TFTP (transmisin de cargadores, configuraciones
y kernels)
Cargador (los ms comunes son PXELINUX, ETHERBOOT,
COMBOOT) que descargan el kernel, lo configuran y lo ejecutan
Proceso init
Primer proceso del sistema.
PID=1 (siempre).
Padre de todos los procesos.
Adopta y recoge a todos los procesos hurfanos.
No se puede morir.
Fichero de configuracin: /etc/inittab
Niveles de ejecucin: runlevels.
Runlevels
Los runlevels son nmeros del 0 al 6.
3 de ellos tienen significado especial:
0: Parar la mquina (shutdown).
1: Modo monousuario (single-user ).
6: Reiniciar la mquina (reboot).
El resto pueden configurarse para que arranquen y paren determinados
servicios en cada uno.
NOTA: El significado de cada runlevel es un convenio, depende
exclusivamente de lo que indique el fichero de configuracin
/etc/inittab.
/etc/inittab
Formato de cada lnea:
identificador:runlevel:accin:proceso-a-ejecutar
Las acciones ms importantes son sysinit, initdefault,
wait, respawn.
sysinit: Orden a ejecutar en el arranque del sistema, antes
de preocuparse por los runlevels.
initdefault: Indica cul es el runlevel al que pasara el
sistema despus de la inicializacin.
wait: Ejecuta la orden dada si estamos en el runlevel indicado,
y espera a que termine.
respawn: Ejecuta la orden dada si estamos en el runlevel
indicado, y la relanza una y otra vez si esta termina.
scripts de inicio
Todos los scripts de inicio y fin de servicios estn en /etc/init.d,
pero init los ejecuta desde /etc/rcN.d, donde hay enlaces
simblicos al directorio real:
/etc/rc0.d/K20ssh -> ../init.d/ssh
/etc/rc1.d/K20ssh -> ../init.d/ssh
/etc/rc2.d/S20ssh -> ../init.d/ssh
/etc/rc3.d/S20ssh -> ../init.d/ssh
/etc/rc4.d/S20ssh -> ../init.d/ssh
/etc/rc5.d/S20ssh -> ../init.d/ssh
/etc/rc6.d/K20ssh -> ../init.d/ssh
Solo hay un script por servicio, y se comporta de distinta manera
dependiendo de si su primer argumento es start o
stop.
adduser carlos.
Habrs creado un usuario sin clave de acceso, y escribiendo al inicio de
Linux en login el nombre carlos, entrars en TU SESIN.
NOTA
(Si no existiera la sentencia "adduser", o "useradd", pudiera ser porque
tienes "linuxconf" instalado, escribe linuxconf, que es un frontend (entorno
amigable o entorno final) muy cmodo para gestionar todo linux, entre ellos
la creacin de usuarios.)
FIN NOTA
De esta forma crearemos un usuario con las caractersticas por defecto, que
suelen ser las mejores, pero para crear un usuario a nuestra medida, tambin
podemos escribir:
(Forma general)
o tambin:
-g 100. Indica el GID, esto es, el grupo al que ese usuario pertenece.
Esto es importante porque en Linux un grupo de usuarios puede
compartir una serie de ficheros y directorios. El nmero ha de ser el
mismo para todos los que formen el grupo. As, el grupo de los que
formen el grupo 100 ser uno, el 101 ser otro, el 102 otro, etc.
(TODOS los USUARIOS, deberan estar bajo el mismo grupo,
"users", que suele ser el grupo 100). El fichero que identifica a los
grupos es: /etc/group
Ej.:
Ej:
# fichero: /etc/shadow (ANTES de la modificacin)
carlos:xx:10745::99999::::
Editando usuarios.
Para editar usuarios, editamos el archivo passwd, con el joe, por ej.:
Escribiremos:
cd /etc
joe passwd
joe shadow
o bien:
joe /etc/passwd.
joe /etc/shadow
para cambiarle la clave a Carlos. Slo root puede cambiarle la clave a otros
usuarios, y puede cambiarse cada uno la suya (incluido root, claro), si como
usuarios normales escribimos:
passwd
javier:ClaveOlvidada:...
Para quedar:
javier::...
Borrando a un usuario.
Para borrar un usurio, bastar con escribir el comando:
userdel carlos
NOTA IMPORTANTE:
Mostrando Archivos
El comando que se utiliza en Unix, y por lo tanto en Linux para mostrar los ficheros
es el comando: "ls", tambin se utiliza "dir", pero no es mas que una copia de "ls",
con otro nombre.
1. Si ests en LYNX:
Pulsa [alt] y sin soltar, pulsa ahora [F2], para regresar tendrs que pulsar [alt] y sin
soltar [f1]
2. Si estas en XWindow:
Pulsa [control], sin soltar ahora tambin [alt], y ahora sin soltar ninguna de las dos
teclas pulsa [F3], para regresar pulsa [alt] y [F7]
Vers los ficheros que estn en ese directorio. Esos ficheros pueden ser:
Has visto los ficheros... pero... Bien, ahora te preguntars qu ficheros son
binarios, cules son directorios...?
Bueno, pues para saber cuales son cuales, puedes escribir vdir, en vez de ls,
entonces vers informacin muy rara ajustada a la izquierda de la pantalla (como
-rw-r--r--), eso son los atributos del fichero (no entraremos en detalles), despus un
nombre, puede que 'root', eso indicar a quien pertenece el fichero/directorio,
despus otra vez 'root', eso es el grupo al que pertenece, tras varios espacios podrs
ver ficheros como:
*noseque (eso es bien un binario o un script, ambos son ejecutables)
otronombre (eso podr ser un fichero de texto, o binario, pero no ejecutable, podr
ser de texto si lleva una extensin identificativa, como: otronombre.txt, o
otronombre.doc, etc., etc...)
directorio/ (los conocers porque siempre llevan detrs la barra identificativa: '/')
(Si alguna vez te encuentras con un fichero y no sabes que es, escribe: file
nombre_del_fichero)
Claro, que esta no son formas de ver los ficheros, habra alguna forma de
identificarlos de un vistazo?
Pero... claro, dirs que si siempre hay que escribir eso... (yo tambin), apaga y
vmonos, porque aunque hay que reconocer que es bonito, hay que escribir muchas
letras, incluso hasta para uno que sepa MECANOGRAFA.
Una de las muchas formas que tiene Linux para ahorrar tiempo es usando un 'alias',
de forma que cuando hagamos referencia al alias, se escriba el comando que
queramos con todos sus parmetros, este es el ejemplo que tienes que aprender
(todos los alias hacen referencia a la shell 'bash', que es la que seguramente tengas
por defecto):
ahora, escribe ls
[root@localhost /root]$ ls
Pero si lo que quieres es que esa (y otras) opciones puedan disponerlas todos los
usuarios debers configurar el fichero /etc/bashrc
Creando Directorios
Un directorio, es un archivo el cual tiene la propiedad de poder almacenar, ficheros
y directorios.
En Linux existe una forma muy sencilla de crear directorios. Para ello, simplemente
has de escribir mkdir NombreDirectorio, por ejemplo: mkdir carlos crear un
directorio llamado carlos. Un punto importante es recordarte que Linux es sensible a
las maysculas y no es lo mismo escribir mkdir carlos que mkdir Carlos ni
CARLOS. Estos son directorios diferentes, y, por tanto, para acceder a ellos habrs
de escribirlo tal y como los llamaste.
Si has venido del DOS, (Y si no has venido no importa), te acordars que para crear
directorios se usaba el comando: md, que es el acrnimo de Make Directory (MD),
y dirs que es mas corto, pues te recordamos que en Linux existe 'alias', as que
usando el alias de la forma siguiente podrs obtener la misma comodidad
alias md='mkdir'
mkdir carlos
o tambin
md carlos
Prueba: a crear tanto con mkdir o con md, es decir crea mkdir Amigos, md
Familia...
---
FICHEROS
Los ficheros o archivos, tienen la propiedad de poder almacenar en su interior datos,
de tipo texto o binarios, en este caso, nos ocuparemos del primer caso.
Aqu puedes utilizar, VARIOS procesadores de textos, entre todos ellos destacan
estos tres:
o vi
o emacs
o joe
Te aconsejamos que para empezar uses el JOE, y una vez que tengas experiencia, te
vayas introduciendo tanto en vi como en vim (el editor vi Mejorado) o emacs.
Particularmente, el que mas me gusta a mi es el emacs, pero cuando slo tengo que
escribir un simple documento de Texto, uso el joe, que adems es el que utilizo para
crear 80 de cada 100 documentos.
Si no tienes el JOE instalado haz esto (deber estar en formato .RPM) (ejemplo para
las distribuciones: SuSE, RedHat o GLHis) para instalarlo desde el CD-ROM
mount -t iso9660 /dev/cdrom (/mnt o /media)/cdrom
umount /dev/cdrom
Ejemplos:
joe carta.txt
[Ctrl]+[K]+[X] <--> Recuerda que significa: Pulsar [Ctrl], sin soltarla pulsar [K], y
sin soltar ninguna de las dos, pulsar [X]
[Ctrl]+[C]
Preguntar si desea PERDER LOS CAMBIOS, para lo que habr que pulsar: [Y], o
[N] PARA NO PERDER LOS CAMBIOS
* AYUDA DE JOE
[Ctrl]+[K]+[H]
[Ctrl]+[K]+[H]
Renombrando Directorios
El comando que se utiliza para RENOMBRAR, es el mismo que se utiliza para
MOVER, que es: 'mv'
Para cambiar el nombre del directorio carlos a javier, habr que escribir:
mv carlos javier
mv carta_a_pepe.txt /home/javier/cartas_a_amigos/
Por ejemplo:
mv * /algn_directorio
(ls / )
Ya que en ese momento TE ESTAS CARGANDO EL SISTEMA, y tendrs que
entrar con un disco de mantenimiento, adems de lo sufrido que supone su (nueva)
colocacin.
PWD, es el mismo comando que el comando de UNIX para mostrar la ruta "CWD",
hace un: "Current Work Directory"
cd
Sin parmetros regresara a "casa"
(Este comando, hace lo mismo que si escribes: "cd ~", o "cd $HOME", y de hecho,
esto es muy utilizado para regresar a cualquier directorio del dueo que en ese
momento est usando el ordenador, por ejemplo si quisiera ir al directorio
/home/javier/programacin/C, y estuviera como el usuario "javier", escribira
(independientemente de yo donde estuviera) cd ~/programacin/C, ahorrando
evidentemente tener que escribir la sentencia "/home/javier")
cd /
Independientemente del directorio donde te encuentres ira directamente a la raz
cd ..
Acceder a la carpeta/directorio inmediatamente anterior
Una raz:
Un rbol:
EJEMPLO:
Las KDE, consideran que acceder a un directorio es "bajar un nivel",
y cambiar de directorio ms prximo a la raz lo considera como
"subir un nivel", por lo que est considerando la estructura como:
una raz o un rbol?
-respuesta una raz-
Limpiando la pantalla
clear <--> Limpia la pantalla
Montando Unidades
Esto es una de las cosas ms importantes. Te preguntas montar?. Pues s, montar.
Un sistema de ficheros, no es ms que una particin en tu disco duro (que puede ser
nica) la cual tiene un formato, y el formato es la forma de colocar los archivos.
Por lo que para que un Sistema Operativo solo entienda su sistema de ficheros,
como por ejemplo pueden ser: Windows, MS-DOS, OS/2, etc., etc... cuando se
carga el sistema, automticamente tambin cargan su sistema de ficheros, y trabajan
con su sistema de ficheros, nica y exclusivamente (hasta que no se le aadan
mdulos al kernel o ncleo del Sistema Operativo).
"mount -t vfat"
mount: es el comando.
-t vfat: es la opcin para montar la virtual fat de Windows
/dev/fd0: en /dev/ se guardan los dispositivos (devices en ingls) y
fd0, es el disco floppy 0, si tuvieras otro disco floppy deberas
escribir fd1, fd2...
(/mnt o /media)/floppy: son directorios, (/mnt o /media)/ es donde se
deben montar TODOS los sistemas de archivos, /floppy, es dentro
del directorio (/mnt o /media)/ donde vamos a montar el disquete.
Para montar tu disco duro, la particin que tienes para, por ejemplo
Windows
cd (/mnt o /media)
ls
(Que existen los directorios cdrom y floppy, pues por ejemplo crea
win, y si tienes tambin una particin del dos crea otra para dos)
ahora ya tienes creado varios directorios dentro de (/mnt o /media)/,
as, cuando tengas montado win, el cdrom y el disquete, para cambiar
podrs hacer:
1. pwd (para mostrar la ruta)
2. cd ../win (para cambiar a la particin de windows)
3. cd ../floppy (para cambiar a la particin del disquete...
para montar tu 2 disco duro, tienes que escribir: (con formato para la virtual
fat de Windows)
tu 4 disco
Y evidentemente como habrs podido comprobar, hd, son las siglas de Hard Disk "
Disco duro en ingles", a, b,c, d, son los discos, a, el disco maestro, b, c, y d, los
discos esclavos dependientes del maestro y los nmeros finales son el numero de las
particiones.
Accediendo a Unidades
Para acceder a las unidades (una vez montadas), debers acceder escribiendo:
Ejemplo
cd (/mnt o /media)/floppy
Acceder a tu disquete.
Claro est que si quieres hacer ms cmodo tus accesos a las unidades puedes hacer
un enlace simblico desde tu directorio /home/[usuario] /root/ a los directorios
existentes en el directorio (/mnt o /media)/
Ejemplos:
umount /dev/df0
Desmontar el disquete.
umount /dev/hda1
Desmontar la particin 1 del disco duro A
umount -a
Desmontar TODAS las unidades montadas.
Puedes si quieres automatizar estas tareas modificando tu fichero .bashrc y
.bash_profile, esto lo podrs ver en el tema: Automatizar tareas
Automatizar Tareas
La automatizacin de tareas es algo fundamental, ya que si estamos mucho tiempo
haciendo siempre el mismo trabajo, al automatizar algo, nos ahorraremos tiempo.
Con este objetivo se hizo en linux comandos como: alias, y tambin por el mismo
motivo se hizo comandos para crear ejecutores de tareas (scripts)
Ejemplo de .bash_profile.
Ejemplo de .bashrc
Midnight Commader:
El Midnight Commader de Linux, es un entorno amigable en modo texto que te
ayudar a hacer todas, todas, las gestiones de ficheros que normalmente usas, para
ejecutar el Midnight Commander, bastar con escribir:
mc
/var/log
y aqu es donde deberan logear todos los programas.
syslog
syslog es un log del sistema y del kernel que nos puede dar importante informacin de
eventos que suceden en el sistema y en sus programas. Syslog provee incluso alguna
llamada para que los programas que corren en el sistema logeen en el propio syslog.
Todas las entradas que presenta syslog tienen como mnimo una fecha y una hora, el
nombre de la maquina y del programa que gener el evento. El fichero de
configuracin de syslog es
/etc/syslog.conf
y podemos ver un ejemplo de fichero de configuracin.
# /etc/syslog.conf Configuration file for syslogd.
#
# For more information see syslog.conf(5)
# manpage.
#
# First some standard logfiles. Log by facility.
#
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
#cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* /var/log/mail.log
user.* -/var/log/user.log
uucp.* -/var/log/uucp.log
#
# Logging for the mail system. Split it up so that
# it is easy to write scripts to parse these files.
#
mail.info -/var/log/mail.info
mail.warn -/var/log/mail.warn
mail.err /var/log/mail.err
#
# Some `catch-all' logfiles.
#
*.=debug;\
auth,authpriv.none;\
news.none;mail.none -/var/log/debug
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none -/var/log/messages
#
# Emergencies are sent to everybody logged in.
#
*.emerg *
#
# I like to have messages displayed on the console, but only on a
virtual
# console I usually leave idle.
#
#daemon,mail.*;\
# news.=crit;news.=err;news.=notice;\
# *.=debug;*.=info;\
# *.=notice;*.=warn /dev/tty8
local2.* -/var/log/ppp.log
Aunque no nos pararemos a ver este archivo de configuracin con demasiado detalle,
si es interesante ver en base a que criterios trabaja syslog. Podemos ver en el fichero
de configuracin, lineas que nombran una "facility" ( subsistema de aplicacin ) y
separados por un punto las palabras crit,debug,info,notice o warn. Por ejemplo:
mail.warn
-/var/log/mail.warn
Lo que realiza syslog es logear los eventos dependiendo de la aplicacin y de la
prioridad del evento ( crit = critical, warn=warning, info=information, err=errors .... )
y reenviandolos a syslog o a otros logs separados para "categorizar" mejor cada uno
de los eventos, puede usar tambin comodines de modo que sea posible incluir una
linea de este tipo
kern.* -/var/log/kern.log
de modo que todos los mensajes del kernel vayan a fichero kern.log, sean del tipo que
sean.
Como curiosidad hacer notar que las entradas de ficheros que van precedidos por un
guin (-) indican que no se hace un "sync" cada vez que existe una entrada en ese log,
de modo que si hay una caida del sistema pueden perderse datos en este fichero.
Adems de syslog y de los logs generados por el mismo, hay otros logs que hay que
tener en cuenta para saber en cada momento que ocurre o a ocurrido en nuestro
sistema. Enumeramos aqu algunos y su cometido.
/var/log/xferlog Este fichero es creado por los servidores de ftp e indica la fecha de
las transferencias de ficheros, los ficheros, cantidad de bytes, etc...
/var/log/apache/access.log Fichero creado por el servidor web apache e indica las
conexiones al servidor, con que version http, si ha sido un GET o un put, etc.
/var/log/apache/error.log Da los errores ( categorizados por warn, notice, etc... )
que surgen en el servidor web.
/var/log/setuid.changes Log generado por el programa checksecurity incluido en la
distribucin Debian y que da un listado de los setuids en el sistema. Se activa en el
cron.
/var/log/wtmp Es un log binario que guarda el los usuarios del sistema que han
hecho logins. No se usa directamente pero si podemos usarlo con la instruccin last
por ejemplo.
Rotado
emain:/var/log $ ls -1 syslog*
syslog
syslog.0
syslog.1.gz
syslog.2.gz
syslog.3.gz
syslog.4.gz
syslog.5.gz
syslog.6.gz
Vemos que hay un syslog, otro numerado con 0 y los demas numerados y
comprimidos. Esto lo podemos hacer con la utilidad logrotate incluyendola en el cron.
Este fichero rige los rotados de logs, en este caso se haran cada semana ( weekly ),
guardaran los logs antiguos 4 semanas y crear unos nuevos cada vez que lo rote.
Adems existe la posibilidad de especificar el comportamiento especifico de algunos
ficheros determinados en este caso btmp y wtmp.
Replicado
kern.warm @hostname
Logcheck y tripwire
En esta seccin veremos dos utilidades una para realizar chequeos automticos de
logs y hacer saltar alarmas por mail de modo automtico y la otra para realizar
chequeos de integridad de los ficheros de un sistema.
Logcheck
emain:/etc/logcheck# ls
logcheck.conf logcheck.ignore logcheck.violations.ignore
logcheck.hacking logcheck.violations
y un mail generado por un error en una autentificacin:
Date: Wed, 17 May 2000 23:02:02 +0200
From: root <root@emain.celtic.org>
To: root@emain
Subject: emain 05/17/00:23.02 system check
Security Violations
=-=-=-=-=-=-=-=-=-=
May 17 22:09:38 emain PAM_unix[579]: authentication failure;
david(uid=1000)
->
root for su service
May 17 22:09:40 emain su[579]: pam_authenticate: Authentication
failure
Tripwire
/etc/tripwire/
un ejemplo del mismo:
#
# tripwire.config for Linux/Debian machines
#
# I have tried to provide for a reasonable, minimal configuration
file.
# You will have to tune this to your own taste and needs. -- pw.
#
# I even removed some more stuff to make it fit on a floppy. -- MM
# Don't do these
# (/mnt is for temporarily mounted filesystems;
# do a minimal check on /home anyway;
# no spool files except the crontab for root):
!/mnt
=/home
!/root
#
# I don't like /var since too many files change automatically. -- MM
#
#/var R
!/var
# Log files:
#/var/log @@LOGSEARCH
#/var/account @@LOGSEARCH
Vemos que en este fichero indicaremos de que directorios no queremos que se hagan
copias bien por ser ficheros muy cambiantes o bien por que no tienen informacin
sensible.
El primer paso para analizar con tripwire es la creacin de una base con las sumas de
los ficheros de los sistmas:
tripwire -initialize
con esto el programa crear una base de datos que guardar en
/usr/lib/tripwire/databases
o en un lugar indicado previamente ( homde de root ) y que deberemos guardar en un
medio fisicamente seguro y nunca accesible por red, para que no se puedan operar
cambios en las sumas.
Otro programa muy util para el diagnostico del sistema y las conexiones de red
sera IPTRAF que se ejecuta como iptraf o /usr/bin/iptraf.
ESTADO DE DISCO: lo normal es que de un dia para otro no aumente ni en un
punto porcentual, a no ser que tenga algun servicio concreto de estadisticas o
BBDD. Si llega al 90% hay que empezar a barrer el sistema de ficheros,
localizar ficheros grandes, etc.
Mdulos de kernel.
Para el manejo del puer paralelo ser necesario asegurar la existencia de soporte
en el kernel, en los siguientes mdulos:
lp parport_probe parport_pc
Impresora testigo.
Crearemos primero una impresora testigo cuya salida se dirige a un archivo de
prueba, para verificar el funcionamiento del sistema de impresin.
Directorio de spool.
El directorio de "spool" es un depsito temporal para los archivos de los trabajos
de impresin, archivos de estado, filtros y auxiliares de una impresora. Los
siguientes comandos crean un directorio de spool para una impresora llamada
lpprueba, asignando los dueos y permisos requeridos.
cd /var/spool/lpd
mkdir lpprueba
chown lp.lp lpprueba
chmod g+w lpprueba
ls -l
Entrada en /etc/printcap.
El sistema de impresin se controla a travs del archivo /etc/printcap, donde se
definen todas las impresoras conectadas al sistema.
Se agrega en el archivo /etc/printcap una entrada descriptiva de la impresora
testigo. El dispositivo de impresin (lp=) se asigna a /dev/null, ya que no
disponemos de la impresora como equipo fsico:
Archivo de filtro.
Crearemos, en el directorio de spool de la impresora testigo, un archivo filtro de
entrada para dirigir la salida de impresin hacia un archivo.
cd /var/spool/lpd/lpprueba
vi filtro_entrada
#!/bin/bash
# filtro_entrada: para prueba de impresora hacia archivo texto
# en directorio "spool" de la impresora
# dueo root, grupo lp, permisos -rwxr-xr-x
#
echo
------------------------------------------------>/tmp/testlp.out
echo Prueba de impresora: >>/tmp/testlp.out
date >> /tmp/testlp.out
echo
------------------------------------------------>>/tmp/testlp.ou
t
cat - >> /tmp/testlp.out
En este ejemplo instalaremos una impresora Epson Stylus Color 400 de chorro
de tinta; su directorio de spool se llamar stc (STylus Color) y estar, como
todos los directorios de spool de impresoras, bajo /var/spool/lpd. Para el mismo
dispositivo fsico crearemos dos "impresoras" de nombre diferente, con
diferente resolucin, pero dirigidas al mismo dispositivo fsico, a esta nica
impresora Stylus Color. Ellas sern stcnor, de resolucin 360x180 puntos por
pulgada (calidad normal), y stcecon, de 180x180 puntos por pulgada (calidad
borrador o econmica).
Directorio de spool.
Crear un directorio de spool /var/spool/lpd/stc para estas impresoras. Aunque
crearemos dos impresoras, basta un solo directorio; la impresora como
dispositivo fsico es una sola, aunque la manejemos como dos impresoras
diferentes con diferentes resoluciones.
Archivos de filtro.
Crear los archivos de filtro en el directorio de la impresora, /etc/lpd/stc. La
impresora de chorro de tinta Epson Stylus Color 400 es una de las varias
manejadas por el controlador de GhostScript de nombre "stcolor"; para otras
impresoras ser preciso colocar el controlador correspondiente, listado en la
documentacin del paquete gs. Los archivos de filtro se llaman gsfilter.nor para
calidad normal, gsfilter.econ para calidad borrador; los nombres son arbitrarios.
gsfilter.nor: para impresora Epson Stylus 400 calidad normal. El texto con el
comando gs debe ir todo en una lnea.
#!/bin/sh
/usr/bin/gs -q -sDEVICE=stcolor -sPAPERSIZE=a4 -dNOPAUSE
-r360x180 -sOutputFile=- /usr/lib/ghostscript/5.10/stcolor.ps -
lpc status
muestra el estado de todas las impresoras.
lpc help
da una lista de los comandos aceptados.
lpq -P stcecon
muestra la cola de impresin en la impresora indicada:
stcecon is ready and printing
Rank Owner Job Files Total Size
active root 285 /etc/resolv.conf 107 bytes
1st root 286 /etc/hosts 122 bytes
Scripts de control.
/etc/init.d/lpd start
arranca el sistema de impresin.
/etc/init.d/lpd stop
detiene el sistema de impresin.
El sistema de impresin se maneja a travs del demonio lpd. El comando
ps auxw | grep lpd
permite averiguar si existe un proceso lpd corriendo; si lo hay, aparecer una
lnea similar a sta:
root 206 0.0 0.2 1352 560 ? S 09:42 0:00
/usr/sbin/lpd
5.9. Automatizacin de tareas
Tareas peridicas.
Automatizan la gestin del sistema.
Fiabilidad. Se llevan a cabo a pesar de posibles olvidos o descuidos
por parte del administrador.
Se ejecutan en el momento preciso (da y hora).
Ayudan o detectan situaciones de error.
Facilitan el control del sistema.
Posibilidad de tareas por usuario.
Programas: cron y at.
cron
Es uno de los demonios esenciales de un sistema, siempre est arrancado
(/usr/sbin/cron).
Se encarga de ejecutar tareas programadas para un determinado momento, bajo
la identidad del usuario que lo program y con precisin de 1 minuto.
Se controla a travs del uso de determinados ficheros de configuracin (solo
para el superusuario) y mediante el uso de la orden crontab (para todos los
usuarios).
crontab
crontab [ -u usuario ] fichero
crontab [ -u usuario ] { -l | -r | -e }
-u usuario: disponible solo para root, permite ver o modificar las tareas
programadas para otro usuario.
fichero: Reemplaza la lista de tareas programadas por las que aparezcan en el
fichero indicado.
-l: Muestra la lista de todas las tareas programadas.
-r: Elimina todas las tareas programadas.
-e: Edita la lista de tareas programada
anacron
Las tareas peridicas indicadas en los directorios /etc/cron.daily,
/etc/cron.weekly. . . , suelen ser tareas rutinarias del sistema que conviene
realizar de vez en cuando, como limpiar los temporales, gestionar colas de
correo, realizar back-ups, etc.
Estas tareas se realizan en horas de poco uso de la mquina (de madrugada).
Pero es habitual que haya mquinas que no estn encendidas 24 horas al da:
estaciones de trabajo que se encienden y apagan para cada uso, y no suelen estar
encendidas en el momento planificado para llevar a cabo estas tareas peridicas.
anacron: Servicio que se inicia al encender la mquina, se da cuenta de que
tareas peri odicas deberan haberse realizado desde la ltima vez que se apag
esta, y las realiza.
at
El demonio cron se utiliza para realizar tareas peridicas, que se realizan en un
momento determinado y se vuelven a realizar pasado un perodo de tiempo.
at y atd se utilizan para ejecutar una tarea concreta en un instante determinado,
y no volver a ejecutarla ms.
atd es un demonio, que siempre est arrancado, y se encarga de ejecutar las
tareas programadas.
at se ejecuta para aadir tareas nuevas a la lista de tareas por realizar.
atq lista las tareas pendientes para el usuario que las ejecuta.
atrm elimina una tarea de la lista de tareas pendientes.
Ficheros de configuracin de at
Son similares a los de crontab:
/etc/at.allow. Si existe, indica que solamente la lista de usuarios incluidos en
ese fichero (un usuario por lnea) tiene permiso para utilizar at, atq y atrm.
/etc/at.deny. Si no existe /etc/at.allow, y existe este fichero, los usuarios
incluidos en l no tienen permiso para utilizar at, atq y atrm.
Si ninguno de los dos ficheros existe, solo el superusuario puede
utilizar estas rdenes.
Normalmente, at.allow no existe, y at.deny es un fichero
vaco, lo cual permite el uso de at para todos los usuarios del sistema.
Uso de at
at fecha/hora. Lee ordenes de la entrada estndar, para que se realicen en la
fecha/hora especificadas.
fecha/hora puede ser:
HH[:]MM[am|pm] [Mes da]
now, midnight, noon, teatime, today o tomorrow.
fecha/hora + nmero (minutes,hours,days,weeks)
Ejemplos:
1550 Feb 14 + 3 days
10am Jul 31
1am tomorrow
Si tenemos Debian
Si nuestra distribucin es Debian o alguna basada en esta, lo mejor que podemos
hacer es utilizar apt-get para instalar software. Esta distribucin utiliza tambin
paquetes binarios, pero son distintos de los RPMs y se llaman comnmente DEB.
Si tenemos Slackware
Los paquetes en Slackware usan un sistema bastante simple. Un paquete de
Slackware es un paquete tar comprimido con gzip (Ver Captulo 12).
Descomprimiendo a mano uno de estos paquetes en el directorio raz (/) los
contenidos de aqul se distribuiran adecuadamente en el sistema (por ejemplo los
binarios en /usr/bin, los ficheros de configuracin en /etc ...). Pero adems del
software en s estos paquetes contienen informacin extra, til para las utilidades
que gestionan los paquetes binarios de esta distribucin.
Esto no debe llevar a confusin con los paquetes de cdigo fuente; un paquete
binario de Slackware es justamente eso, aunque venga comprimido como
habitualmente descargamos los paquetes de cdigo fuente.
La nomenclatura de los paquetes es del tipo nombre-version-plataforma-
IDcompilacin.tgz
por ejemplo cdrdao-1.1.7-i386-1.tgz
Aviso
Las utilidades bsicas de paquetes de Slackware NO GESTIONAN
DEPENDENCIAS ENTRE PAQUETES, esto es, no se quejarn si se instala un
paquete que depende de otro que no est instalado. Obviamente el software del
primer paquete no funcionar.
Pero es posible gestionarlas con otras utilidades descritas en la seccin la seccin
de nombre Gestin de dependencias. Adems, como irs descubriendo si usas
habitualmente Slackware, esto no es una desventaja en todos los aspectos como
pudiera parecer al principio.
Instalando paquetes normalmente
La utilidad installpkg instala un paquete en el sistema. Un ejemplo sera,
suponiendo que hemos descargado el fichero de Internet o estamos en el directorio
del CDROM donde aqul se encuentra:
# installpkg cdrdao-1.1.7-i386-1.tgz
Opciones interesantes para esta rden son:
-warn no instala el paquete pero nos informa de lo que pasara si lo instalamos
(ficheros nuevos o sobreescritos).
-r instalar los paquetes de el directorio de trabajo y adems recursivamente los
que haya en directorios inferiores que coincidan con el nombre de archivo que,
adems, puede contener los wildcards ya conocidos.
Ms opciones de esta orden en su pgina man
Actualizando paquetes
Si tenemos un paquete instalado y nos hemos hecho con una versin actualizada,
debemos usar la orden upgradepkg <nombrefichero> para actualizar al nuevo
nuestro sistema.
Eliminando paquetes
La orden removepkg seguida del nombre del paquete a quitar del sistema (puede
ser slo el nombre, sin versin, pero tambin el nombre del fichero completo que
se us para instalarlo -til si hay varias versiones-).
Del mismo modo que installpkg, aqu tambin disponemos de la opcin -warn
que nos permite ver qu cambiara en nuestro sistema sin desinstalar el paquete
realmente.
pkgtool, utilidad con mens
Ejecutando esta orden sin argumentos en un shell como root, obtendremos un
men con diversas opciones que hablan por s solas. Nos permitir intuitivamente
instalar, desinstalar, actualizar, ver informacin o los paquetes instalados, etc.
Conversor de paquetes RPM a TGZ
Esta posibilidad nos ser til si tenemos un paquete RPM que no tiene muchas
dependencias (porque si las tiene, las tendremos que satisfacer copiando libreras
o similar manualmente, y las rutas pueden ser distintas entre las distribuciones) y
no podemos conseguir un paquete Slackware y adems no nos apetece compilarlo.
Si las condiciones anteriores se cumplen, la orden rpm2tgz fichero.rpm nos
generar un paquete .tgz que podremos instalar normalmente con las utilidades
concidas.
Gestin de dependencias
Internamente Slackware s que conoce que paquetes dependen de cules otros, as
que hay utilidades que nos permiten instalar y desinstalar gestionando las
dependencias entre paquetes para que nosotros nos olvidemos de ello.
Si no la mejor, una de las mejores es swaret (http://swaret.sourceforge.net). Para
hacerla funcionar, simplemente instala el paquete que puedes descargarte desde la
direccin anterior y edita el fichero /etc/swaret.conf
Lo nico que hay que ajustar en este fichero es el nmero de versin de Slackware
que se tiene, y luego descomentar (borrar los #) de las lneas que comienzan por
ROOT que nos interesen. Estas lneas representan fuentes desde las cuales se
descargarn los paquetes que se quieran instalar (y sus dependencias).
A continuacin de lo anterior se pueden aadir repositorios de paquetes no
oficiales (como Linux-Packages (http://www.linuxpackages.net)) mediante las
lneas REPOS_ROOT. Para ms opciones consultar los comentarios del resto del
fichero.
Para instalar un paquete:
# swaret --update
# swaret --install cdrecord
La primera lnea actualiza el listado de paquetes con los ms recientes y la
segunda descarga e instala el paquete cdrecord. Si hay varias versiones de este
paquete disponibles se nos preguntar una por una si deseamos o no instalarla.
Hay muchas ms cosas que esta herramienta puede hacer, hay ms informacin en
su pgina man.
Fuentes
En caso de que vayamos a compilar un programa por nuestra cuenta lo mejor es
que leamos los ficheros de ayuda README e INSTALL del paquete. Para
descomprimirlo haremos (suponiendo el archivo de fuentes descargado en el
directorio actual):
# tar zxf paquete-version.tar.gz
Si el paquete es un .tar.bz2 haremos:
# tar jxf paquete-version.tar.bz2
Los pasos "genricos" son:
# ./configure
# make
# make install
Pero como las cosas pueden cambiar entre unos paquetes y otros lo mejor que
podemos hacer es leernos los ficheros de documentacin que acompaen a dicho
programa.
Desinstalando lo instalado
Binarios
En las diferentes sub-secciones pondremos el comando genrico que hay que
ejecutar si queremos desinstalar un paquete que ya est instalado. A veces se nos
avisar que otros paquetes dependen de el paquete que queremos quitar; en ese
caso, lo ms sencillo es quitar estos paquetes primero y despus desinstalar el que
queramos quitar.
RPMs
# rpm -evh paquete
En caso de usar apt-get para RPMs tambien disponemos del comando:
# apt-get remove paquete
DEBs
# apt-get remove paquete
TGZs
# removepkg paquete
EBUILDs
# emerge -C paquete
Fuentes
En el directorio donde se descomprimieron las fuentes ejecutamos:
# make uninstall
6. Administracin de redes.
6.1. Familia de Protocolos TCP/IP.
Introduccin a las direcciones IP.
Las direcciones del Protocolo Internet (IP) estn compuestas por cuatro bytes. La
convencin es escribir estas direcciones en la denominada notacin decimal
puntuada (dotted decimal notation). De esta forma cada byte es convertido en un
nmero decimal (0-255), despreciando los ceros a la izquierda a menos que el
nmero en s sea cero. Por convencin, cada interfaz de una mquina o encaminador
tiene una direccin IP. Es vlido usar la misma IP para cada interfaz de una sola
mquina en algunas circunstancias, pero normalmente cada interfaz tiene su propia
direccin.
Las Redes basadas en Internet Procotol son secuencias contiguas de direcciones IP.
Todas las direcciones dentro de una red tienen un nmero de dgitos de en comn. A
la porcin de la red que es comn a todas las direcciones llama la porcin de la
red. Los dgitos restantes son llamados porcin de la mquina. Al nmero de
bits que comparten todas las direcciones de una red se le llama mscara de red
(netmask), y su papel es determinar qu direcciones pertenecen a la red y cules no.
Consideremos el siguiente ejemplo:
--------------------- ---------------
Direccin Host 192.168.110.23
Mscara de red 255.255.255.0
Porcin de red 192.168.110.
Porcin de Host .23
--------------------- ---------------
Direccin de Red 192.168.110.0
Direccin de Difusin 192.168.110.255
--------------------- ---------------
Cualquier direccin a la que se aplique una operacin and de bits con su mscara de
red, revelar la direccin de la red a la que pertenece. La direccin de red es por
tanto siempre el menor nmero de direccin dentro de el rango de la red y siempre
tiene la porcin de mquina codificada toda con ceros.
----------------------------------------------------------
| Clase | Mscara de | Direcciones de red |
| de red | red | |
----------------------------------------------------------
| A | 255.0.0.0 | 0.0.0.0 - 127.255.255.255 |
| B | 255.255.0.0 | 128.0.0.0 - 191.255.255.255 |
| C | 255.255.255.0 | 192.0.0.0 - 223.255.255.255 |
|Multicast| 240.0.0.0 | 224.0.0.0 - 239.255.255.255 |
----------------------------------------------------------
Las direcciones que deber usar dependen de lo que vaya a hacer exactamente.
Puede que tenga que realizar varias de las siguientes actividades para obtener las
direcciones que necesite:
Requisitos de hardware
La propaganda que surgi hace algn tiempo fue que GNU/Linux poda ejecutarse
en un 386/16 sin disco rgido y con 2 MB de memoria. Aunque esto es cierto, no es
productivo. Para que GNU/Linux funcione correctamente se tendr que contar con
un sistema 486 con disco rgido de por lo menos 500 MB con al menos 8 MB de
memoria para las aplicaciones en modo texto y 16 MB para el modo grfico.
Si se pensara poner dicha mquina como servidor, tendramos que pensar en por lo
menos 1 MB de RAM adicional por usuario en modo texto y 2 MB para modo
grafico que aunque parezca demasiado, cuando se cuenta con 100 usuarios usando
el entorno grfico se vera que la memoria se evapora como agua en el desierto.
Habamos hablado antes de las compatibilidades con el hardware del sistema. Antes
de comenzar a instalar se tendr que armar una libreta o apuntador con todo el
Hardware de nuestro sistema, con sus correspondientes interrupciones y DMA as
como tambin las caractersticas que vienen puestas de fbrica; con esta lista se
buscara en el Hardware-HOWTO si es soportado y este ser el detalle que
seguiremos cada vez que se tenga que agregar un dispositivo nuevo. De esta manera
estarn seguros de que comprar y como instalarlo antes de que nos demos cuenta
que no funciona en nuestro sistema.
6.3. Configuracin de una LAN.
Instalar una mquina Linux en una red IP existente
Si desea instalar una mquina Linux en una red IP existente entonces debera
contactar con los administradores de la red y preguntarles por la siguiente
informacin:
Debera configurar entonces el dispositivo de red Linux con esos detalles. No puede
inventarlos y esperar que la configuracin funcione.
Construir una nueva red propia que nunca conectar con Internet
Si est construyendo una red privada y no tiene intencin de conectar nunca esa red
a Internet entonces puede elegir las direcciones que quiera. De todas maneras, por
razones de seguridad y consistencia, se han reservado algunas direcciones IP de red
especficamente para este propsito. Estn descritas en el RFC1597 y son las que
siguen:
-----------------------------------------------------------
| DIRECCIONES RESERVADAS PARA REDES PRIVADAS |
-----------------------------------------------------------
| Clase | Mscara de | Direcciones de red |
| de red | red | |
-----------------------------------------------------------
| A | 255.0.0.0 | 10.0.0.0 - 10.255.255.255 |
| B | 255.255.0.0 | 172.16.0.0 - 172.31.255.255 |
| C | 255.255.255.0 | 192.168.0.0 - 192.168.255.255 |
-----------------------------------------------------------
Primero debera decidir cun grande quiere que sea su red para entonces elegir
tantas direcciones como necesite.
Hay unas pocas opciones a elegir para el procedimiento de arranque del sistema
Linux. Despus de que carga el ncleo, siempre ejecuta un programa llamado init.
El programa init lee entonces el fichero de configuracin llamado /etc/inittab
y comienza el proceso de arranque. Hay unos pocos init diferentes, aunque todo el
mundo est ahora convergiendo al modelo SystemV, desarrollado por Miguel van
Smoorenburg.
A pesar de que el programa init sea el mismo, la configuracin del arranque del
sistema est organizada de manera diferente en cada distribucin.
Normalmente el fichero /etc/inittab contiene una entrada que dice algo como:
si::sysinit:/etc/init.d/boot
Esta lnea especifica el nombre del fichero de guin de ejecucin (script) que
controla la secuencia de carga. Este fichero es algo as como el AUTOEXEC.BAT en
MS-DOS.
El guin de arranque suele llamar a otros, y a menudo la red se configura dentro de
alguno de stos.
----------------------------------------------------------------------
Distrib. |Interfaz Configuracin/Encaminado |Iniciacin del Servidor
----------------------------------------------------------------------
Debian | /etc/init.d/network | /etc/rc2.d/*
----------------------------------------------------------------------
Slackware| /etc/rc.d/rc.inet1 | /etc/rc.d/rc.inet2
----------------------------------------------------------------------
RedHat | /etc/rc.d/init.d/network | /etc/rc.d/rc3.d/*
----------------------------------------------------------------------
Fjese en que Debian y Red Hat usan un directorio entero de guiones que levantan
los servicios del sistema (y normalmente la informacin no se encuentra en esos
archivos; por ejemplo, el sistema de Red Hat almacena toda la configuracin del
sistema en ficheros dentro de /etc/sysconfig, de donde es leda por los guiones
de carga). Si quiere comprender los detalles del proceso de arranque del sistema, le
sugiero que examine /etc/inittab y la documentacin que acompaa a init.
Linux Journal va a publicar (o lo ha hecho ya) un artculo tratando la iniciacin del
sistema, y este documento mantendr una referencia a l tan pronto como est
disponible en la red.
--------------------------------------------
Distrib. | Programa de configuracin de red
--------------------------------------------
RedHat | /sbin/netcfg
Slackware | /sbin/netconfig
--------------------------------------------
En la mayora de los casos los dispositivos de red son creados automticamente por
el controlador de dispositivos mientras se inicia y localiza el hardware. Por ejemplo,
el controlador Ethernet crea interfaces eth[0..n] secuencialmente segn va
encontrado tarjetas Ethernet. La primera tarjeta que encuentra es eth0, la segunda
eth1, etc.
Sin embargo, en algunos casos, de los que slip y ppp son ejemplos notables, los
dispositivos de red son creados por la accin de algn programa de usuario. Se
aplica la misma numeracin secuencial de dispositivos, pero no se crean al arrancar.
La razn es que al contrario que con los dispositivos Ethernet, el nmero de
dispositivos ppp o slip puede variar durante la actividad de la mquina. Estos casos
sern cubiertos con ms detalle en secciones posteriores.
El ncleo asume ciertas cosas cuando configura interfaces. Por ejemplo, puede
especificar la direccin de red y difusin de una interfaz, pero si usted no lo hace,
como en mi ejemplo anterior, entonces el ncleo har una suposicin razonable de
cules deberan ser, basndose en la mscara que se le proporciona; si tampoco
indica la mscara, entonces partir de la clase de la direccin IP configurada. En mi
ejemplo, el ncleo asumir que se va a configurar una red clase C en la interfaz y
establece una direccin de red 192.168.0.0 y una direccin de difusin
192.168.0.255. Hay otras muchas opciones para la orden ifconfig. Las mas
importantes son:
up
down
[-]arp
[-]allmulti
esta opcin activa o desactiva la recepcin de todos los paquetes multicast por
hardware. El multicast por hardware permite que varios grupos de interfaces reciban
paquetes remitidos a destinos especiales. Esto puede ser de importancia si est
usando aplicaciones como videoconferencia, pero normalmente no se usa.
mtu N
netmask <direc>
irq <direc>
este parmetro slo trabaja con ciertos tipos de hardware, y permite especificar la
IRQ del dispositivo.
[-]broadcast [direc]
[-]pointopoint [direc]
hw <tipo> <direc>
Los servidores de red y los servicios son aquellos programas que permiten a un
usuario remoto hacer uso de su mquina Linux. Los programas servidores escuchan
en los puertos de red. Los puertos de red son el medio de llegar a un servicio en
particular en una mquina en particular, y es as como un servidor conoce la
diferencia entre una conexin telnet y otra de FTP que le lleguen. El usuario remoto
establece una conexin de red con la mquina, y el programa servidor, el demonio
de red que est escuchando en ese puerto, aceptar la conexin y se ejecutar. Hay
dos modos de operacin para los demonios de red. Ambos se usan por igual en la
prctica. Las dos maneras son:
autnomo (standalone)
/etc/services
El fichero /etc/services es una base de datos sencilla, que asocia un nombre que
nosotros podamos entender, con un puerto de servicio de la mquina. Su formato es
bastante simple. Es un fichero de texto en el que cada lnea representa una entrada a
la base de datos. Cada entrada comprende tres campos separados por cualquier
nmero de espacios en blanco (espacio o tabulador). Los campos son:
puerto/protocolo
puerto
un nmero que especifica el nmero de puerto del servicio que estar disponible. La
mayora de los servicios comunes tienen asignados nmeros de servicio, y estn
descritos en el RFC-1340.
protocolo
Es importante que tenga en cuenta que el servicio 18/tcp es muy diferente del
18/udp y que no hay razn tcnica por la cual deban existir ambos. Normalmente
prevalece el sentido comn, y slo ver una entrada tcp y otra udp para el mismo
servicio si es que est disponible para ambos.
sobrenombres
(o alias) otros nombres que pueden usarse para referirse a esta entrada de servicio.
# Local services
/etc/inetd.conf
describe el tipo de socket que esta entrada considerar relevante. Los valores
permitidos son: stream, dgram, raw, rdm o seqpacket. Es un poco tcnico por
naturaleza, pero por regla general casi todos los servicios basados en tcp usan
stream, y casi todos los basados en udp usan dgram. Slo algunos demonios
servidores muy particulares usarn otros valores.
proto
flags
slo hay dos valores posibles. Este campo le dice a inetd si el programa servidor de
red libera el socket despus de comenzar la ejecucin, y si por tanto inetd podr
ejecutar otro servidor para la siguiente peticin de conexin, o si inetd deber
esperar y asumir que el demonio servidor que est ejecutndose controlar las
nuevas peticiones de conexin. Esto tiene su dificultad, pero por norma general
todos los servidores tcp deberan tener esta entrada con el valor nowait y la
mayora de servidores udp deberan tener wait. De todas maneras hay algunas
excepciones notables, por lo que debera leer la gua de ejemplo si no est seguro.
usuario
este campo indica qu cuenta de usuario de /etc/passwd ser asignada como duea
del demonio de red cuando se ejecute. Esto es a menudo til si quiere protegerse
ante riesgos de seguridad. Puede asignar el usuario nobody a una entrada, por lo que
si la seguridad del servidor de red es traspasada el posible dao queda minimizado.
Habitualmente, sin embargo, este campo est asignado a root, porque muchos
servidores requieren privilegios de administrador para funcionar correctamente.
servidor
este campo es el camino completo hasta el programa servidor a ejecutar para esta
entrada.
argumentos
Un ejemplo de /etc/inetd.conf
/etc/protocols
# /etc/protocols:
# $Id: protocols,v 1.1 1995/02/24 01:09:41 imurdock Exp $
#
# Internet (IP) protocols
#
# from: @(#)protocols 5.1 (Berkeley) 4/17/89
#
# Updated for NetBSD based on RFC 1340, Assigned Numbers (July 1992).
/etc/networks
nombredelared direccindered
loopnet 127.0.0.0
localnet 192.168.0.0
amprnet 44.0.0.0
Cuando use rdenes como route, si un destino es una red y la red tiene una entrada
en el fichero /etc/networks entonces route mostrar el nombre de la red en lugar de
su direccin.
Para iniciar una sesin con un interprete de comandos de otro computador, puede
emplear el comando telnet seguido del nombre de la mquina en la que desea
trabajar, por ejemplo si desea conectarse a la mquina
purpura.micolegio.edu.co:
telnet purpura.micolegio.edu.co
Una vez conectado podr ingresar su login y clave en esa mquina, y entonces se
iniciar una sesin en modo texto como las que ve en las consolas virtuales (ver
Lectura Sistema de usuarios y manejo de clave). La informacin que transmita
(incluyendo su clave) no ser protegida o encriptada y podra ser vista en otros
computadores por los que transite la informacin (esto slo puede hacerse con
herramientas apropiadas i.e. sniffers, y desde la cuenta del administrador del
sistema).
Una alternativa ms segura para telnet, pero que requiere ms recursos del
computador es ssh que encripta la informacin antes de transmitirla, que autentica
la mquina a la cual se conecta y que puede emplear mecanismos de autenticacin
de usuarios ms seguros. Para conectarse como usuario paz a la mquina
purpura.micolegio.edu.co:
COMO FUNCIONA
Normalmente los sistemas se configuran para autentificar los inicios de sesin, esto
es pues, colocando un password y una contrasea, de esta manea se puede acceder
al sistema. FTP tiene dos modalidades de uso:
FTP anonymous:
Supone un servidor FTP configurado para permitir el acceso publico es decir, no se
dejan de enviar ni el usuario ni la contrasea, pero por convencin, se utiliza el
usuario anonymous y como contrasea la direccin de correo del que hace la
solicitud.
FTP privado:
El servidor se basa en autentificacin a partir de la base de datos de usuario locales,
por lo tanto, solo pueden iniciar sesin los usuarios que hallan sido dados de alta en
dicho sistema.
Linux para Todos recomienda Very Secure FTP Daemon es un software utilizado
para implementar servidores de archivos a travs del protocolo FTP. Se distingue
principalmente porque sus valores por defecto son muy seguros y por su sencillez
en la configuracin, comparado con otras alternativas como Wu-ftpd. Actualmente
se presume que VSFTPD es quiz el servidor FTP ms seguro del mundo.
BENEFICIOS
SOFTWARE REQUERIDO
Vsftpd
HARDWARE REQUERIDO
Requerimientos minimos:
Servidor a 250 Mhz, 256 MB RAM, 8 GB disco duro
Si desea saber si su hardware es certificado por Linux (Funcionara con Linux)
chequelo en la siguiente pgina:
http://hardware.redhat.com
Instalacin del servidor FTP
Para comenzar tendremos que instalarnos el paquete que contiene el servidor FTP
que en este caso se llama Vsftpd 1.1.3-8, para lo cual ejecutaremos la siguiente
instruccin:
Configuracin
anonymous.allow
Write_enable
Indica si una carpeta tiene permiso de escritura o no. En otras palabras indica si a
una carpeta se la pueden subir archivos o no.
Write_enable=trae (si tiene permiso de escritura)
Write_enable=false (no tiene permiso de escritura)
ftpd_banner
chroot_local_user
Para decirle al servidor fe FTP que usuarios tienen permiso para acceder tenemos
que coger la ruta de el archivo antes comentado donde se encontraba la lista de
usuarios (vsftpd.user_list)
Para ello en el archivo de configuracin pondramos algo como esto:
Chroot_list_file=/etc/vsftpd.user_list
Bsicamente con estos comandos podrs configurar tu servidor FTP en Linux sin
ningn problema.
Ya solo nos queda arrancar el servidor para lo cual utilizaremos los siguientes
comandos.
Funcionamiento de DNS
La base de datos distribuida de DNS est indexada por nombres de dominio. Cada
nombre de dominio es esencialmente una trayectoria en un rbol invertido
denominado espacio de nombres de dominio. La estructura jerrquica del rbol es
similar a la estructura del sistema de archivos UNIX. El rbol tiene una nica raz
en el nivel superior llamada raz (root). Cada nodo del rbol puede ramificarse en
cualquier nmero de nodos de nivel inferior. La profundidad del rbol est limitada
a 127 niveles.
Cada nodo en el rbol se identifica mediante una etiqueta no nula que puede
contener hasta 63 caracteres, excepto el nodo raz, identificado mediante una
etiqueta nula. El nombre de dominio completo de cualquier nodo est formado por
la secuencia de etiquetas que forman la trayectoria desde dicho nodo hasta la raz,
separando cada etiqueta de la siguiente mediante un punto. De esta forma, el
nombre del nodo especifica de forma unvoca su localizacin en la jerarqua. A este
nombre de dominio completo o absoluto se le conoce como nombre de dominio
completamente cualificado o Fully Qualified Domain Name (FQDN). Al ser nula la
etiqueta que identifica el nodo raz, el FQDN de cualquier nodo del rbol siempre
acaba con un punto. La nica restriccin que se impone en el rbol de nombres es
que los nodos hijos del mismo padre tengan etiquetas diferentes.
El estndar DNS no impone muchas reglas sobre las etiquetas de los nombres de
dominio, ni tampoco asocia un significado determinado a las etiquetas de un
determinado nivel del espacio de nombres. Cuando manejamos una parte de este
espacio, podemos decidir el significado y la sintaxis de nuestros nombres de
dominio. Sin embargo, en el espacio de nombres Internet existente, se ha impuesto
una estructura de nombres bien definida, especialmente en los dominios de primer
nivel.
Delegacin
Es importante resaltar que el objetivo principal del diseo del sistema de nombres
de dominio fue su administracin descentralizada. Este objetivo se consigue a travs
de la delegacin. La delegacin de dominios funciona de forma parecida a la
delegacin de tareas en una organizacin. Un responsable de proyecto divide el
proyecto en pequeas tareas y asigna (delega) la responsabilidad de las mismas a
diferentes empleados.
DNS define dos tipos de servidores de nombres que mantienen informacion sobre el
espacio de nombres: primarios (maestros) y secundarios (esclavos). Un servidor de
nombres primario para una zona lee los datos de la zona desde un archivo que l
mantiene. Un servidor de nombres secundario para una zona obtiene los datos de la
zona desde otro servidor de nombres que es autoritario para la zona, llamado
servidor maestro. Normalmente el servidor maestro es el servidor primario de la
zona, pero esto no es un requisito ya que un servidor secundario puede cargar los
datos desde otro secundario.
Resolucin de nombres
Los servidores de nombres son los expertos en obtener informacin del espacio de
nombres de dominio. Es decir, no solamente responden los datos referentes a las
zonas sobre los que tienen autoridad, sino que pueden tambin buscar informacin a
travs del espacio de nombres de dominio para encontrar datos sobre los que no son
autoritarios. A este proceso se le denomina resolucin de nombres. Por ese motivo,
existen servidores de nombres que no mantienen informacin sobre ninguna zona, y
nicamente sirven para responder consultas de los clientes (resolvers) sobre
cualquier dominio. Este tipo de servidores DNS se denomina cache only.
Cuando se solicita una consulta a cualquier nombre de dominio, los servidores raz
pueden al menos proporcionar los nombres y direcciones de los servidores de
nombres autoritarios para el dominio de primer nivel al que pertenece el nombre de
dominio buscado. Y los servidores de nombres de primer nivel pueden proporcionar
la lista de servidores de nombres autoritarios para el dominio de segundo nivel al
que pertenece el nombre de dominio buscado. De esta forma, cada servidor de
nombres consultado va proporcionando la informacin ms prxima a la respuesta
buscada, o proporciona la propia respuesta.
Como conclusin hay que resaltar la importancia que tienen los servidores de
nombres raz en el proceso de resolucin. Por esta razn, el sistema de nombres de
dominio proporciona mecanismos de cach para ayudar a reducir la carga que
supondra el proceso de resolucin sobre los servidores raz. Si todos los servidores
raz de Internet fallaran por un largo perodo de tiempo, toda la resolucin en
Internet fallara. Para protegerse, Internet posee 13 servidores de nombres raz
repartidos por diferentes partes de la Red.
Configuracin de DNS
Para resolver nombres, los servidores consultan sus zonas. Las zonas contienen
registros de recursos que constituyen la informacin de recursos asociada al
dominio DNS. Por ejemplo, ciertos registros de recursos asignan nombres
descriptivos a direcciones IP.
donde:
Propietario: nombre de host o del dominio DNS al que pertenece este recurso.
Puede contener un nombre de host/dominio (completamente cualificado o no), el smbolo
"@" (que representa el nombre de la zona que se est describiendo) o una cadena vaca (en
cuyo caso equivale al propietario del registro de recursos anterior).
TTL: (Time To Live) Tiempo de vida, generalmente expresado en segundos, que un
servidor DNS o un resolver debe guardar en cach esta entrada antes de descartarla. Este
campo es opcional. Tambin se puede expresar mediante letras indicando das (d), horas
(h), minutos (m) y segundos (s). Por ejemplo: "2h30m".
Clase: define la familia de protocolos en uso. Suele ser siempre "IN", que
representa Internet.
Tipo: identifica el tipo de registro.
RDATA: los datos del registro de recursos.
A continuacin se describen los principales tipos de registros de recursos: SOA, NS,
A, PTR, CNAME, MX y SRV.
Hasta la versin 8.2 de BIND, este campo estableca el tiempo de vida por defecto
de todos los registros de la zona que no tuvieran un campo TTL especfico. A partir
de esta versin, esto ltimo se consigue con una directiva que debe situarse al
principio del archivo de la zona. Esta directiva se especifica as:
$TTL tiempo
$TTL 30m
Registro de Recurso NS
Por otra parte, estos registros tambin se utilizan para indicar quines son los
servidores de nombres con autoridad en subdominios delegados, por lo que la zona
contendr al menos un registro NS por cada subdominio que haya delegado.
admon.com. IN NS pc0100.admon.com.
valencia.admon.com. IN NS pc0102.valencia.admon.com.
Registro de Recurso A
Registro de Recurso MX
donde:
Un ejemplo de registros SRV para los servidores Web del dominio admon.com.,
sera:
http.tcp.admon.com. IN SRV 0 0 80 www1.admon.com.
http.tcp.admon.com. IN SRV 10 0 80 www2.admon.com.
Definicin de la delegacin
Para que una zona especifique que uno de sus subdominios est delegado en una
zona diferente, es necesario agregar un registro de delegacin y, generalmente, el
denominado "registro de pegado" (glue record). El registro de delegacin es un
registro NS en la zona principal (padre) que define el servidor de nombres
autorizado para la zona delegada. El registro de pegado es un registro tipo A para el
servidor de nombres autorizado para la zona delegada, y es necesario cuando el
servidor de nombres autorizado para la zona delegada tambin es un miembro de
ese dominio (delegado).
valencia.admon.com. IN NS pc0102.valencia.admon.com.
pc0102.valencia.admon.com. IN A 158.42.178.2
Tipos de zonas
En general, existen tres tipos distintos de zonas: zonas de bsqueda directa, zonas
de bsqueda inversa y zonas de "sugerencia raz". Un servidor DNS puede tener
autoridad sobre varias zonas directas e inversas, y necesita poseer informacin sobre
las "sugerencias raz" si desea responder a sus clientes sobre registros de zonas
sobre las que no posee autoridad. A continuacion se describe cada tipo brevemente.
Las zonas de bsqueda inversa contienen informacin necesaria para realizar las
bsquedas inversas. La mayor parte de las consultas proporcionan un nombre y
solicitan la direccin IP que corresponde a ese nombre. Este tipo de consulta es el
descrito en la zona de resolucin directa.
Para solucionar este problema se cre un dominio DNS especial para realizar
bsquedas "inversas", denominado in-addr.arpa.. Este dominio utiliza un orden
inverso de nmeros en la notacin decimal de las direcciones IP. Con esta
disposicin se puede delegar la autoridad de miembros inferiores del dominio in-
addr.arpa. a las distintas organizaciones, a medida que se les asigna
identificadores de red de clase A, B o C.
Transferencias de zona
En aquellas zonas en las que existen diferentes servidores de nombres con autoridad
(uno principal o maestro y uno o varios secundarios o esclavos), cada vez que se
realizan cambios en la zona del servidor maestro, estos cambios deben replicarse a
todos los servidores secundarios de esa zona. Esta accin se lleva a cabo mediante
un mecanismo denominado transferencia de zona. Existen dos tipos de transferencia
de zonas: completa e incremental.
En una transferencia completa de zona, el servidor maestro para una zona transmite
toda la base de datos de zona al servidor secundario para esa zona.
Los servidores secundarios siguen los siguientes pasos a la hora de realizar una
transferencia de zona:
Notificacin DNS
Con este proceso se pretende que el servidor maestro para la zona notifique los
cambios a ciertos servidores secundarios y de esta manera los secundarios podrn
comprobar si necesitan iniciar una transferencia de zona. De esta forma se mejora la
coherencia de los datos mantenida por todos los servidores secundarios.
Actualizaciones dinmicas
Introduccin al NFS
Compartiendo disco en una red local
El sistema NFS (Network File Sistem) fue desarrollado para permitir montar una
particin perteneciente a una mquina remota como si fuesa una particin local. Nos
proporciona, por tanto, un mtodo rpido y eficaz de compartir archivos y espacio
de disco entre distintos ordenadores de una red que soporte este sistema.
Qu necesitamos?
Necesitaremos tener instalado portmap y el paquete nfs (nfs-utils) que se puede
encontrar en la mayora de las distribuciones en el ordenador que vaya a hacer de
servidor de disco.
Para saber si NFS est en marcha haremos una consulta al portmap para que nos
indique qu servicios tiene en marcha
>> rpcinfo -p
Compartiendo el disco
Una vez tenemos los servicios en marcha nicamente nos falta determinar qu
queremos compartir. En mi caso me interesaba poder acceder al directorio home y
al directorio /var/db.
Un poco de seguridad
La prudencia nos aconseja editar los ficheros /etc/hosts.allow y /etc/hosts.deny para
acabar de especificar qu ordenadores de la red pueden usar los servicios del
servidor. La documentacin del NFS recomienda las siguientes entradas
/etc/hosts.deny
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
/etc/hosts.allow
portmap:192.168.0.0/255.255.255.0
lockd:192.168.0.0/255.255.255.0
mountd:192.168.0.0/255.255.255.0
rquotad:192.168.0.0/255.255.255.0
statd:192.168.0.0/255.255.255.0
Para una red privada esto puede ser suficiente. De todos modos podramos hacer
una configuracin mucho ms fina especificando para cada servicio las direcciones
IP que tendrn acceso a l.
Un simple ls /mnt/nfs nos tendra que permitir ver que ya tenemos acceso al disco
del servidor.
Y para finalizar.
SAMBA
Acerca del protocolo SMB.
SMB fue originalmente diseado para trabajar a travs del protoclo NetBIOS, el
cual a su vez travaja sobre NetBEUI (acrnimo de NetBIOS Extended User
Interface, que se traduce como Interfaz de Usuario Extendida de NetBIOS),
IPX/SPX (acrnimo de Internet Packet Exchange/Sequenced Packet Exchange, que
se traduce como Intercambio de paquetes interred/Intercambio de paquetes
secuenciales) o NBT, aunque tambin puede trabajar directamente sobre TCP/IP.
Acerca de Samba.
Los procedimientos descritos en este manual han sido probados para poder aplicarse
en sistemas con Red Hat Enterprise Linux 4, o equivalentes o versiones
posteriores, y al menos Samba 3.0.10 o versiones posteriores.
Si se utiliza Red Hat Enterprise Linux, solo bastar realizar lo siguiente para
instalar o actualizar la programtica necesaria:
Si se necesita que las cuentas se puedan utilizar para acceder hacia otros servicios como
seran Telnet, SSH, etc, es decir, que se permita acceso al interprete de mandatos, ser
necesario especificar /bin/bash como interprete de mandatos y adems se deber
asignar una clave de acceso en el sistema con el mandato passwd:
El fichero lmhosts
127.0.0.1 localhost
127.0.0.1 localhost
192.168.1.5 maquinalinux
192.168.1.6 isaac
192.168.1.7 finanzas
192.168.1.8 direccion
workgroup = MIGRUPO
El parmetro interfaces permite establecer desde que interfaces de red del sistema
se escucharn peticiones. Samba no responder a peticiones provenientes desde
cualquier interfaz no especificada. Esto es til cuando Samba se ejecuta en un
servidor que sirve tambin de puerta de enlace para la red local, impidiendo se
establezcan conexiones desde fuera de la red local.
interfaces = 192.168.1.254/24
Impresoras en Samba.
Las impresoras se comparten de modo predeterminado, as que solo hay que realizar
algunos ajustes. Si se desea que se pueda acceder hacia la impresora como usuario
invitado sin clave de acceso, basta con aadir public = Yes en la seccin de
impresoras del siguiente modo:
[printers]
comment = El comentario que guste.
path = /var/spool/samba
printable = Yes
browseable = No
writable = no
printable = yes
public = Yes
Windows NT, 2000 y XP no tendrn problema alguno para acceder e imprimir hacia
las impresoras, sin embargo Windows 95, 98 y ME suelen tener problemas para
comunicarse con Samba para poder imprimir. Por tanto, si se quiere evitar
problemas de conectividad con dichos sistemas operativos hay que agregar algunos
parmetros que resolvern cualquier eventualidad:
[printers]
comment = Impresoras.
path = /var/spool/samba
printable = Yes
browseable = No
writable = no
printable = yes
public = Yes
print command = lpr -P %p -o raw %s -r
lpq command = lpstat -o %p
lprm command = cancel %p-%j
[printers]
comment = Impresoras.
path = /var/spool/samba
printable = Yes
browseable = No
writable = no
printable = yes
public = Yes
print command = lpr -P %p -o raw %s -r
lpq command = lpstat -o %p
lprm command = cancel %p-%j
printer admin = fulano, @opers_impresion
[Lo_que_sea]
comment = Comentario que se le ocurra
path = /cualquier/ruta/que/desee/compartir
Opcin Descripcin
guest ok Define si ser permitir el acceso como usuario
invitado. El valor puede ser Yes o No.
public Es un equivalente del parmetro guest ok, es decir
define si ser permitir el acceso como usuario
invitado. El valor puede ser Yes o No.
browseable Define si se permitir mostrar este recurso en las listas
de recursos compartidos. El valor puede ser Yes o No.
writable Define si ser permitir la escritura. Es el parmetro
contrario de read only. El valor puede ser Yes o No.
Ejemplos: writable = Yes es lo mismo que
read only = No. Obviamente writable = No
es lo mismo que read only = Yes
valid users Define que usuarios o grupos pueden acceder al
recurso compartido. Los valores pueden ser nombres
de usuarios separados por comas o bien nombres de
grupo antecedidos por una @. Ejemplo: fulano,
mengano, @administradores
[ftp]
comment = Directorio del servidor FTP
path = /var/ftp/pub
guest ok = Yes
read only = Yes
write list = fulano, administrador
directory mask = 0755
create mask = 0644
Samba fue creado con un objetivo: ser en un reemplazo definitivo para Windows
como servidor en una red local. sto, por supuesto, requiere algunos procedimientos
adicionales dependiendo de las necesidades de la red local.
Los grupos que existen en Windows tambin se utilizan en Samba para ciertas
operaciones, principalmente relacionadas con lo que involucra un Controlador
Primario de dominio (o PDC que significa Primary Domain Controler). Estos
grupos existen de modo predefinido en Samba. Sin embargo, si se ejecuta lo
siguiente:
groupadd -r administradores
groupadd -r admins_dominio
groupadd -r duplicadores
groupadd -r invitados
groupadd -r invs_dominio
groupadd -r opers_copias
groupadd -r opers_cuentas
groupadd -r opers_impresion
groupadd -r opers_sistema
groupadd -r usrs_avanzados
groupadd -r usuarios
groupadd -r usuarios_dominio
Una vez creados los grupos en el sistema, solo resta re-asignar los nombres al
espaol en el mapa de grupo de Samba y asociarles a stos los grupos recin
creados en el sistema. El procedimiento se resume a ejecutar algo como lo siguiente:
Lo anterior establece que se modifique el registro del grupo que corresponda al sid
(identidad de sistema) definido con el nombre establecido con ntgroup, asocindolo
al grupo en el servidor con unixgroup y aadiendo un comentario descriptivo
acerca de dicho grupo con comment.
De modo tal, y a fin de facilitar las cosas a quien haga uso de este manual, puede
utilizar el siguiente guin para convertir los nombres al espaol y asociarlos a
grupos en Linux, donde solo deber definir el nmero de identidad del sistema que
corresponda al servidor:
#!/bin/sh
SIDSAMBA=XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX
exit 0
Nota: Este guin en esta incluido en el disco de Extras de curso de Linux Para Todos. Solo basta editarlo y definir la
variable SIDSAMBA y ejecutarlo como root.
Los usuarios es necesario darlos de alta de modo que queden agregados a los que
correspondan en el sistema a grupos Usuarios y Usuarios del dominio de
Windows, es decir a los grupos usuarios y usuarios_dominio.
cd /home
for user in *
do
mkdir -p /var/lib/samba/profiles/$user
chown $user.$user /var/lib/samba/profiles/$user
done
En algunos casos puede ser necesario denegar el acceso a cierto tipo de ficheros del
sistema. El parmetro veto files se utiliza para especificar la lista, separada por
diagonales, de aquellas cadenas de texto que denegarn el acceso a los ficheros
cuyos nombres contengan estas cadenas. En el siguiente ejemplo, se denegar el
acceso hacia los ficheros cuyos nombres incluyan la palabra Security y los que
tengan extensin o terminen en .tmp:
El parmetro add user script sirve para definir lo que se deber ejecutar en el
trasfondo en el sistema para crear una nueva cuenta de usuario. El parmetro add
machine script es particularmente importante porque es el mandato utilizado para
dar de alta cuentas de mquinas (trust accounts o cuentas de confianza) de modo
automtico. El parmetro delete user script es para definir lo propio para eliminar
usuarios, delete group script para eliminar grupos, add user to group para aadir
usuarios a grupos y set primary group script para establecer un grupo como el
principal para un usuario.
[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon
write list = @administradores, @admins_dominio
guest ok = Yes
browseable = Yes
[Profiles]
path = /var/lib/samba/profiles
read only = No
guest ok = Yes
create mask = 0600
directory mask = 0700
Para que Samba inicie automticamente cada vez que inicie el servidor solo ejecute
el siguiente mandato:
/sbin/chkconfig smb on
Modo texto.
Smbclient.
Server Comment
--------- -------
mi-servidor Servidor Samba 3.0.7-1.3E en mi-servidor
Workgroup Master
--------- -------
MI-DOMINIO MI-SERVIDOR
Ejemplo:
Para acceder hacia una mquina Windows determine primero que volmenes o
recursos compartidos posee est. utilice el mandato smbclient del siguiente modo:
smbclient -N -L alguna_maquina
Server Comment
--------- -------
mi-servidor Servidor Samba 3.0.7-1.3E en mi-servidor
Workgroup Master
--------- -------
MI-DOMINIO MI-SERVIDOR
mount -t smbfs -o
username=el_necesario,password=el_requerido
//alguna_maquina/algn_volumen /punto/de/montaje/
Puede aadirse tambin una entrada en /etc/fstab de modo que slo tenga que ser
tecleado mount /punto/de/montaje. Esta lnea sera de modo similar al siguiente:
[FTP]
comment = Programtica libre (RPMS)
path = /var/ftp/pub
public = Yes
guest ok = Yes
Modo grfico
Si utiliza GNOME 2.x o superior, ste incluye un mdulo para Nautilus que permite
acceder hacia los recursos compartidos a travs de Samba sin necesidad de
modificar cosa alguna en el sistema. Solo hay que hacer clic en Servidores de red
en el men de GNOME.
Desde Windows.
Por su parte, desde Windows deber ser posible acceder sin problemas hacia Samba
como si fuese hacia cualquier otra mquina con Windows. Vaya, ni Windows ni el
usuario notarn siquiera la diferencia.
Ya que los sistemas con Windows 95/98/ME y Windows XP Home no incluyen una
implementacin completa como miembros de dominio, no se requieren cuentas de
confianza. El procedimiento para unirse al dominio es el siguiente:
Windows NT
Crear manualmente la cuenta de mquina como se decribi anteriormente.
Acceder hacia Men de inicio Configuraciones Panel de control
Red.
Seleccionar la pestaa de Identificacin.
Clic en el botn de Cambiar.
Ingrese el nombre del dominio y el nombre del sistema. No selecione
Crear una cuenta de mquina en el Dominio.
Clic en Aceptar
Espere algunos segundos.
Deber mostrarse un mensaje emergente de confirmacin que dice
Bienvenido a MI-DOMINIO
Reinicie el sistema
Acceda con cualquier usuario que haya sido dado de alta en el servidor
Samba y que adems cuente con una clave de acceso asignada con
smbpasswd.
Windows 2000/2003 y Windows XP Profesional
Clic derecho en el icono de Mi PC.
Seleccionar Propiedades
Haga clic en la pestaa de Identificacin de red o Nombre del sistema.
Clic en el botn de Propiedades.
Clic en el botn Miembro de dominio
Ingrese el nombre del dominio y el nombre de la mquina y haga clic en el
botn de Aceptar
Aparecer un dilogo que preguntar por una cuenta y clave de acceso con
privilegios de administracin en el servidor. Especifique la root y la clave
de acceso que asign a la cuenta de root con el mandato smbpasswd (NO
LA CLAVE DE ACCESO DE ROOT EN EL SISTEMA).
Espere algunos segundos.
Deber mostrarse un mensaje emergente de confirmacin que dice
Bienvenido a MI-DOMINIO
Reinicie el sistema
Acceda con cualquier usuario que haya sido dado de alta en el servidor
Samba y que adems cuente con una clave de acceso asignada con
smbpasswd.
Simple Mail Transfer Protocol (SMTP), es uno de los servicios ms importantes que
proporciona Internet. Ahora casi todas las compaas tienen o dependen del correo,
y por extensin todos los servidores SMTP. Se encuentran disponibles muchos
paquetes SMTP, siendo el ms viejo y el ms probado el Sendmail (ahora con
soporte comercial, etc.), y hay dos nuevos contendientes, Postfix y Qmail, ambos
dos escritos desde cero teniendo en cuenta la seguridad. Filtrar con el cortafuegos el
SMTP no tiene prdida, se ejecuta en el puerto 25, tcp:
Sendmail es otro de esos servicios con los que la mayora de nosotros hemos tenido
relaciones. Odiamos administrarlo y nos encantara reemplazarlo (en realidad he
empezado a eliminar el Sendmail de las mquinas que administro y lo estoy
reemplazando con el Postfix).
Hacer un chroot del sendmail es una buena opcin, pero lleva demasiado trabajo, y
puesto que se ejecuta como root, algo bastante discutible en cuanto a su efectividad
(puesto que el root se puede escapar de una crcel chroot). Personalmente pienso
que es mejor invertir el esfuerzo en cambiarse a Postfix o a Qmail.
Sendmail slo tiene que estar accesible desde el mundo exterior si se est utilizando
para recibir correo de otras mquinas y repartirlo localmente. Si slo se quiere
ejecutar sendmail de forma que funcione el reparto local (p. ej., una estacin de
trabajo autnoma, un servidor de prueba u otros) y que se pueda enviar con
facilidad el correo a otras mquinas, simplemente filtra con el cortafuegos el
sendmail, o mejor, no lo ejecutes en modo demonio (en el cual escucha conexiones).
Sendmail se puede ejecutar en la cola de refresco de un nodo, donde simplemente se
"despierta" cada cierto tiempo y procesa el correo local, ya sea distribuyndolo
localmente o envindolo a travs de la red. Para configurar la ejecucin del
Sendmail en modo cola:
por:
sendmail -q1h
Ten en cuenta que: si utilizas el sistema para enviar mucho correo quizs prefieras
disminuir el tiempo de refresco, quizs "-q15m" (refrescar la cola cada 15 minutos),
ahora el correo saliente y el correo interno del sistema se comportarn bien, lo cual
a menos que se ejecute un servidor de correo, es perfecto.
Ahora vienen todas esas maravillosas caractersticas anti-spam del sendmail. Los
ficheros de configuracin del Sendmail consisten en (se aplica al Sendmail 8.9.x):
/etc/sendmail.cf
/etc/mail/
access
1. RELAY
spam.com REJECT
lo que quiere decir que a 10.0.0.* (los hosts de mi red interna) se les permite utilizar
el servidor de correo para enviar correo donde quieran, y el correo de *.spam.com
se rechaza. Hay listas en lnea de spammers conocidos, generalmente suele tener
entre 5-10.000 entradas, lo cual puede afectar seriamente el rendimiento del
sendmail (pues cada conexin se comprueba contra esta lista), por otra parte, tener
una mquina sendmail para enviar spam es incluso peor.
aliases
El fichero de alias, te permite controlar el reparto del correo local al sistema, es til
para hacer una copia de seguridad del correo entrante de un usuario a un spool por
separado. La mayora del software de servidores de listas utiliza este fichero para
enviar el correo que recibe a los programas que realmente procesan las listas.
Recuerda ejecutar el comando "newaliases" despus de editar este fichero, y
despus reiniciar el sendmail.
domaintable
la tabla de dominios (aadir dominios) que se maneja, til para hacer hosting
virtual.
majordomo
sendmail.cw
fichero que contiene nombres de hosts de los que se recibe correo, til si se alberga
ms de un dominio.
sendmail.hf
El correo (o las conexiones SMTP para ser ms precisos) primero se filtra con el
fichero access, y es aqu donde se pueden RECHAZAR correos de ciertos
dominios/IPs, y TRANSMITIR correo de ciertos hosts (p. ej. tu red interna de
mquinas windows). Cualquier dominio local para el que se hospeda el correo
tendr que ir al sendmail.cw. Suponiendo que el correo cumple con las reglas y va a
la cola para reparto local, el siguiente fichero que se comprueba en virtusertable,
que es una lista de direcciones de correo mapeadas al nombre de la cuenta/otra
direccin de correo. p.ej.:
seifried@seifried.org alias-seifried
listuser@seifried.org usuariolista
@seifried.org correos-estropeados
La ltima regla es para evitar que reboten los correos estropeados, y que en lugar de
eso se enven a un buzn. Despus se comprueba el fichero de alias, si se encuentra
una entrada se hace lo que dice, y si no, se intenta entregar el correo a un buzn de
un usuario local, mi entrada seifried del fichero de alias es:
Una advertencia, cuando se est usando una regla general para un dominio ( p. ej.
@seifried.org) hay que crear un alias para CADA cuenta, y para las listas de correo.
Si no, cuando se examina la lista y no se encuentra una entrada especfica (para,
digamos, lista-correo@seifried.org) lo enviar al buzn especificado por la regla
general. Ya slo por este motivo no se debera utilizar una regla general.
Qmail
Qmail (al igual que Postfix) fue creado como una respuesta directa a los fallos
percibidos en Sendmail. Qmail es GPL con una clusula sin distribucin binaria que
obliga a instalarlo desde el cdigo fuente. Muy poco del cdigo del Qmail se ejecuta
como root, y es muy modular comparado con el sendmail (el cual es un trozo de
cdigo monoltico). Se puede descargar de: http://www.qmail.org/
Postfix
master.cf
main.cf
Este fichero est muy prximo al sendmail.cf (en cuanto a propsito, en cuanto al
diseo es bastante diferente). Est bien comentado y configura todas las variables
principales, y las situaciones y formato de diferentes ficheros que contienen
informacin tal como los mapeos a usuarios virtuales e informacin relativa.
He aqu una lista de variables y localizacin de ficheros que se suele tener que
configurar, el fichero /etc/postfix/main.cf por lo general suele estar comentado
densamente. Ten en cuenta que los siguientes ejemplos de entradas main.cf no son
un main.cf completo.
myhostname = correo.ejemplo.org
mydomain = ejemplo.org
myorigin = $mydomain
# en qu interfaces lo ejecuto? Por lo general, en todas.
inet_interfaces = all
mydestination = /etc/postfix/mydestination
virtual_maps = hash:/etc/postfix/virtual
alias_maps = hash:/etc/postfix/aliases
# "man 5 aliases"
alias_database = hash:/etc/postfix/aliases
home_mailbox = Maildir/
mail_spool_directory = /var/spool/mail
mailbox_command = /usr/sbin/scanmails
relay_domains = /etc/postfix/relaydomains
Al igual que la mayora de productos de IBM, Postfix tiene una licencia bastante
curiosa, pero parece que la mayora es cdigo abierto y libre. Postfix se encuentra
disponible en: http://www.postfix.org/. Se pueden conseguir los rpms de postfix en:
ftp://contrib.Redhat.com/, y aparentemente SuSE ahora viene con Postfix.
Sendmail Pro
Zmailer
DMail
Existen clientes que acceden directamente al buzn del usuario si este tiene la
posibilidad de acceder a la maquina que mantiene los buzones (elm, pine, mutt).
Pero la alternativa ms utilizada es proporcionar al usuario un acceso remoto a su
buzn, evitando de esta forma que los usuarios puedan entrar en la maquina que
mantiene el servidor de correo.
Los protocolos IMAP y POP permiten al usuario a travs de un cliente de mail que
los soporte, acceder remotamente a los buzones.
IMAP: Internet Message Access Protocol
Tanto POP como IMAP son servicios bajo demanda, es decir, el demonio
correspondiente se invoca via xinetd cuando se le requiere. Por tanto, la nica
configuracin que tenemos que tener en cuenta, hace referencia al archivo de
configuracin del superdemonio xinetd: /etc/xinetd.d/imap|pop.
Usted puede copiar desde esta pgina la versin completa o RPM utilizada en
nuestra instalacin.
Si Usted instal una distribucin de Linux como RedHat, Conectiva, Corel Linux,
Suse, Mandrake, TurboLinux, Slackware, etc, es posible que ya tenga instalado
Apache. Para verificar si est ya instalado utilice el comando whereis as:
# whereis httpd
# whereis httpd
httpd:
Si responde:
# whereis httpd
httpd: /usr/local/bin/httpd
En este caso busque el archivo httpd.conf y aada los parmetros requeridos para la
instalacin del Programa de Registro.
RPM es la sigla para El Sistema de Manejo de Paquetes de Red Hat (Red Hat
Package Manager - RPM).
RedHat/RPMS/apache-1.3.12-25.i386.rpm.
# cd /mnt/cdrom/RedHat/RPMS/
3-. Instalacin de Apache desde las fuentes .Se sugiere bajar la ltima versin de
apache desde http://httpd.apache.org.
apache_1.3.19
Entre al directorio:
# cd apache_1.3.19
/usr/local/apache
/usr/local/apache/conf
/etc/httpd/conf
En este archivo se definen los parmetros del sistema. Cada parmetro posee un
nombre al comienzo de la lnea y su valor (o valores separados por espacios pero en
una sola lnea!) en frente separado por al menos un espacio:
nombre_del_parametro valor
Importante: Todas las lneas que comienzan en este archivo con el signo #
corresponden a comentarios dentro del archivo de configuracin.
Para instalacin desde las fuentes seguramente debe acceder el siguiente directorio:
# cd /usr/local/apache/conf
# cd /etc/httpd/conf
# pico httpd.conf
ServerAdmin soporte@colnodo.apc.org
ServerName 192.168.1.1
En caso de que se disponga de un enlace dedicado con una direccin IP fija y un
nombre de dominio se debera colocar en este parmetro el nombre de dominio del
servidor Linux:
ServerName cabinas.colnodo.apc.org
DocumentRoot "/var/www/html"
Opciones de directorios:
parmetro1 valor(es)
parmetro2 valor(es)
.....
parmetron valor(es)
</directory>
/var/www/html
/usr/local/apache/htdocs
<Directory "/var/www/html">
Options Indexes FollowSymLinks MultiViews Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Ntese que:
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
Opciones de ndices:
<IfModule mod_dir.c>
DirectoryIndex index.html index.htm index.php index.php3
</IfModule>
HostnameLookups On
*Importante: Esta opcin puede hacer que el acceso a las pginas del Sistema de
Registro sea lento si las estaciones no se encuentran registradas en el DNS de su
dominio. Si Usted tiene dudas le recomendamos que deje este parmetro como off:
HostnameLookups Off
/etc/rc.d/init.d/httpd start
# /usr/local/apache/bin/apachectl start
Para que Apache se inicie cada vez que se prenda el servidor se puede colocar al
final del archivo /etc/rc.d/rc.local la lnea de comando que se ejecut arriba.
Introduccin
Una direccin IP por cada tarjeta de red o NIC (Network Interface Card) que posea
el cliente.
La mscara de subred.
La puerta de enlace o gateway.
Otros parmetros adicionales, como el sufijo del dominio DNS, o el propio servidor
DNS.
En una red pueden convivir equipos que sean clientes DHCP con otros cuya
configuracin se haya establecido manualmente. Aquellos que estn configurados
como clientes DHCP necesitarn encontrar en la red local un servidor DHCP para
que les proporciones los parmetros TCP/IP.
Cuando un cliente arranca por primera vez, lanza por la red un mensaje de difusin,
solicitando una direccin IP. Si en la red existe un solo servidor DHCP, cuando este
reciba el mensaje contestar al cliente asocindole una direccin IP junto con el
resto de parmetros de configuracin. En concreto, el servidor DHCP puede estar
configurado para asignar al cliente una direccin IP cualquiera de las que tenga
disponibles, o bien para asignarle una direccin en concreto (o direccin reservada),
en funcin de la direccin fsica de la tarjeta ethernet del cliente. En ambos casos,
una vez el cliente recibe el mensaje del servidor, ya tiene una configuracin IP con
la que poder acceder a la red de forma normal.
Por tanto, cuando en una misma red TCP/IP existe ms de un servidor DHC, es
imprescindible que estn configurados de manera que no puedan asignar la misma
direccin IP a dos computadores distintos. Para ello basta que los rangos de
direcciones IP que puedan proporcionar no tengan direcciones comunes, o, si las
tienen, que estas sean direcciones reservadas.
En cualquiera de los casos anteriores, desde el punto de vista del cliente los
parmetros que ha recibido se consideran una concesin, es decir, son vlidos
durante un cierto tiempo. Cada vez que el cliente arranca, o bien cuando se alcanza
el lmite de la concesin (lease time) el cliente tiene que solicitar su renovacin.
Concesin y Renovacin
La primera vez que se inicia un cliente DHCP e intenta unirse a una red, se realiza
automticamente un proceso de inicializacin para obtener una concesin de un
servidor DHCP:
Cuando se inicia un cliente que ya tena concedida una direccin IP previamente, este
debe comprobar si dicha direccin sigue siendo vlida. Para ello, difunde un mensaje
DHCP Request en vez de un mensaje DHCP Discover. El mensaje DHCP Request
contiene una peticin para la direccin IP que se le asign previamente. Si el cliente
puede usar la direccin IP solicitada, el servidor responde con un mensaje DHCP Ack.
Si el cliente no pudiera utilizarla porque ya no es vlida, porque la este usando otro
cliente o porque el cliente se ha desplazado fsicamente a otra subred., entonces el
servidor responde con un mensaje DHCP Nack, obligando al cliente a reiniciar el
proceso de concesin. Si el cliente no consigue localizar un servidor DHCP durante el
proceso de renovacin, entonces este intenta hacer un ping al gateway predeterminado
que se lista en la concesin actual, procediendo de la siguiente forma:
Si tiene xito, el cliente DHCP supone que todava se encuentra en la red en la que
obtuvo la concesin actual y la seguir usando. En segundo plano, el cliente intentar
renovar la concesin actual cuando se agote el 50\% del tiempo de la concesin asignada.
Si fall el ping, el cliente supone que se desplaz a otra red y autoconfigura su
direccin IP, intentando cada 5 minutos localizar un servidor DHCP y obtener una
concesin.
La informacin de TCP/IP que se concede al cliente, deber ser renovada por este
de forma predeterminada cuando se haya agotado el 50\% del tiempo de concesin.
Para renovar su concesin, un cliente DHCP enva un mensaje DHCP Request al
servidor del cual se obtuvo la concesin. El servidor renueva automticamente la
concesin respondiendo con un mensaje DHCP Ack. Este mensaje contiene la nueva
concesin, as como cualquier parmetro de opcin DHCP. Esto asegura que el
cliente DHCP puede actualizar su configuracin TCP/IP s el administrador de la red
actualiza cualquier configuracin en el servidor DHCP.
Concepto de Ambito
Es decir, para que un servidor DHCP pueda asignar direcciones IP a sus potenciales
clientes, es necesario que defina al menos un mbito en cada red fsica en la que
haya clientes que atender. El administrador debe establecer para dicho mbito sus
parmetros de configuracin, tales como el rango de direcciones IP que puede
asignar, las direcciones excluidas, la mscara de red, el lmite de tiempo que los
equipos pueden disfrutar de la concesin, etc.
En cualquier caso, para que un servidor DHCP pueda atender varias redes fsicas
distintas interconectadas, es necesario que est conectado a dichas redes, o bien que
los encaminadores utilizados tengan la capacidad de encaminar los mensajes del
protocolo DHCP entre dichas redes. De no ser as, es necesario utilizar un servidor
DHCP distinto en cada red, o bien instalar el servicio de reenvo de DHCP en algn
host el cual est configurado para escuchar los mensajes de difusin utilizados por
el protocolo DHCP y redirigirlos a un servidor DHCP especfico. De esta manera se
evita la necesidad de tener que instalar dos servidores DHCP en cada segmento de
red.
Existen varias implementaciones del protocolo DHCP para servidores con sistemas
operativos parecidos al UNIX, tanto comerciales como libres. Uno de los ms
populares servidores es DHCPd de Paul Vixie/ISC, que actualmente se encuentra en
la versin 3.0, en concreto el paquete que habra que instalar se trata del siguiente:
dhcp.
Pero tambin ser necesario que en ocasiones asignemos direcciones de una forma
esttica (como lo hara el protocolo BOOTP) basndose en la direccin hardware
del cliente. El ejemplo siguiente asignar la direccin IP 192.168.1.222 a un cliente
con la direccin ethernet 08:00:2b:4c:59:23
host haagen {
hardware ethernet 08:00:2b:4c:59:23;
fixed-address 192.168.1.222;
}
Como asi siempre ocurre con todos los servicios de red que no son lanzados por
inetd, existe un script en el directorio /etc/init.d que se encarga del asunto,que
acepta los parmetros {start|stop} y que deber estar configurado para que se lance
en los niveles de ejecucin correctos.