X-Windows  

Posted by Danny in

X Window es el entorno gráfico habitual de los sistemas Unix. El sistema X Window se compone de dos parte principales el servidor X y el programa para la gestión de las ventanas. El servidor X es el programa que se encarga realmente de dibujar en la pantalla. Por el contrario el gestor de ventanas como su nombre indica es el encargado de crear las ventanas y gestionar su apariencia. Debido a este modelo, la apariencia de las aplicaciones varía según se use uno u otro gestor de ventanas, entre los que destacan por su sencillez de uso los entornos GNOME y KDE.

Al instalar Linux el sistema puede preguntar si se desea arrancar Linux en modo texto o en modo gráfico. Si se ha seleccionado esta última opción Linux arrancará directamente X Window, en caso contrario en la línea de comandos hay que escribir startx con lo cual se arranca el modo gráfico. Por defecto esto arranca el entorno gráfico GNOME (en distribuciones que no sean Red Hat 6.0 se puede arrancar por defecto otro entorno como KDE o AfterStep)

Introduccion a las Redes sobre Linux  

Posted by Danny in

El Sistema Operativo Linux se enorgullece de contar con una implementación de servicios de red basada en el núcleo,escrita casi por completo partiendo de cero. Su rendimiento en los núcleos recientes lo convierte en una alternativa válida incluso a el mejor de sus iguales. Este documento intenta describir cómo instalar y configurar el software de red de Linux y sus herramientas asociadas.

Esta es la primera entrega desde que LinuxPorts comenzó a hacerse cargo del documento. Quisiera decir antes que nada que deseamos que durante los próximos meses encuentre de utilidad este documento, y que seamos capaces de proporcionar información precisa y puntual en lo que respecta al tratamiento de redes con Linux.

Este documento, al igual que los otros Comos de los que nos encargamos, se va a convertir en algo muy diferente. Dentro de poco pasará a ser el Redes en Linux Como en lugar de ser sólo el Net-3(4) Como. Va a cubrir temas como PPP, VPN (Redes Privadas Virtuales), y otros...

Servicio HTTP (www) en Linux  

Posted by Danny in

Este es uno de los servicios básicos que debe tener un servidor, en LiNUX se dispone de Apache Web Server es realmente espectacular y su configuración en RedHat es algo bastante fácil, tenemos dos opciones la primera configurarlo vía GUI (interfaz gráfica), esto lo hacemos en Configuración de Servidores | Servidor Web (HTTPD) o si lo prefieres (y yo me quedo con está) en forma manual, al parecer el archivo de configuración generado a partir de la interfaz GUI tiene ciertos detalles que para mi gusto no son adecuados para el correcto funcionamiento de Apache por lo que prefiero configurarlo yo mismo, para empezar debemos distinguir que ficheros de configuración debemos modificar;

- /etc/httpd/conf/httpd.conf

- /etc/httpd/conf/vhost/vhost.conf

El primer archivo (fichero) es el principal y por lo general en RH no debemos configurar nada más, ahora bien el segundo es una implementación proveniente de Mandrake Linux y me pareció que es bastante más "ordenado" tener todos los host virtuales en un archivo aparte de el principal (lo que no significa que esto es o debe ser así en nuestro RH LiNUX), a continuación editamos el httpd.conf y buscaremos las siguientes directivas;

- ServerName; aquí debemos digitar el nombre de nuestro server ej. www.midominio.tld

- DirectoryIndex; aquí debemos ingresar los nombres de los archivos web que servirán de índex (archivo principal) para nuestro sitio. Ej. index.php index.php3 index.phtml index.html index.htm index.pl index.shtml etc.

- AddType application/x-httpd-php .php3 .phtml ; esta línea si no esta debe ser agregada y sirve para que Apache sepa que los archivos terminados en extensión .php3 .phtml sean enviados al interprete PHP (siempre y cuando tengamos implementado el modulo php(3 o 4)), en RH 8 y 9 no tenemos más que agregar el tipo .php3 y .phtml esto debido a que por defecto NO procesa páginas web con extensión .php3 y .phtml, cosa que en su tiempo me tubo bastante desconcertado ya que todo mundo me decía que debía cambiarme a un apache que trabajará con el modulo php3 (por lo general Apache 1.3), por suerte ALA me iluminó!!!

- NameVirtualHost 0.0.0.0 ; esta directiva le dice a Apache que estamos activando los host virtuales para nuestra dirección IP.

- ... ; estas directivas definen los host virtuales de nuestro servidor, en cada bloque debemos indicar el DocumentRoot y ServerName para cada host virtual. Este ejemplo tal vez aclare más las cosas:

NameVirtualHost 192.168.0.1

ServerAdmin webmaster@midominio.tld
DocumentRoot /var/www/midominio/html
ServerName www.midominio.tld
ErrorLog logs/error_log
CustomLog logs/access_log common

# Esto es un comentario.
#

ServerAdmin webmaster@otrodominio.tld
DocumentRoot /var/www/otrodominio/html
ServerName www.otrodominio.tld
ErrorLog logs/otrodominio_error_log
CustomLog logs/otrodominio_access_log common

De todos modos este tipo de configuraciones debe estar acompañada de su correspondiente configuración DNS (por lo general registros CNAME), luego de estos cambios se debe verificar si el demonio httpd (Apache) esta arrancando al iniciar el sistema, esto lo resolvemos en Configuración de Servidores| Servicios al Arranque, aquí seleccionamos httpd y lo activamos para que arranque cada vez que se inicie el sistema y ya que estamos aquí también verifica que los servicios named , sendmail, vsftpd , smb , imap , ipop3 y otros que consideres importantes estén arrancando al inicio al igual que httpd.

Configuración de los Servicios  

Posted by Danny in

Bueno... bueno, estamos listos para comenzar la pega cotota, lo primero que debemos saber son algunos comandos que ayudaran en el futuro;

rpm ; este comando en RedHat (en adelante RH) que sirve para instalar un paquete de software que venga en formato rpm, sus parámetros son los siguientes;

rpm -i : esta opción instalará el paquete de software determinado, una variante de este es rpm -Uvh, esto instala y/o actualiza el paquete que está por instalarse.

rpm -e : esta opción desinstala un determinado paquete de software ej. rpm -e httpd , desinstalará el paquete apache , hay otras opciones si deseas saber cuales son puedes buscar en INTERNET, simplemente haciendo un rpm --help o consultando las páginas man correspondientes.

dir / ls ; estos comandos sirven para visualizar el contenido de un directorio activo.

clear ; adivina ?... así es... es para limpiar el contenido de la pantalla (cls en DOS).

ps aux ; este comando nos permitirá saber si un determinado proceso está activo , por ejemplo para averiguar si named (DNS) está activo, y si queremos filtrar el contenido esto te puede servir; ps aux | grep named mostrará solo las líneas que contengan la palabra named.

service <> ; este comando sirve para reiniciar , parar, iniciar o recargar un determinado servicio, un ejemplo de esto es el siguiente; service httpd restart o service sendmail reload o service named stop, creo que no hace falta explicar cada caso... o si ?.

man ; este comando es muy conocido y nos entrega la tan anhelada ayuda cuando tenemos dudas respecto a algún comando o daemos en Linux. Un ejemplo de esto es man rm, nos entrega toda la información sobre el comando rm.

Si deseas conocer más comandos y sus respectivas funciones busca en INTERNET allí encontraras buenas guías que tratan este tema y por supuesto lee las páginas MAN.

La Instalación del Sistema LiNUX  

Posted by Danny in

Este es el tema más aterrador para alguien que esta recién ingresando al mundo LiNUX y dependiendo de la distribución (distribución se denomina a la versión de LiNUX que desarrolla cada una de las diferentes casas de software, ejemplo RedHat Inc. desarrolla LiNUX RedHat) que se elija este es un tema que puede ser fácil o realmente un dolor de cabeza, demos un par de ejemplos; si te decides por RedHat la instalación es algo realmente agradable y lo único que tienes que hacer es seguir las instrucciones que brinda el asistente de instalación, otro caso es Lycoris realmente espléndido como será de fácil que te da la oportunidad de jugar una partida de solitario mientras se instala tu sistema, otro cuento aparte es por ejemplo OpenBSD realmente es algo complicado de instalarlo y comprenderlo aunque te aseguro que si llegas a manejar bien este chiche tendrás en las manos la mejor distribución en términos de seguridad (un solo bug en siete (7) años de existencia).

Nos quedaremos con la instalación de RedHat, lo primero que debemos hacer es conseguir los CD´S de instalación, por ejemplo el RedHat 9 tiene 6 cds de los cuales los tres primeros son los de instalación (CDS Binarios).

RedHat dispone de una interfaz de instalación gráfica llamada anaconda y es realmente magnifica, para comenzar debes insertar el cd número uno (CD1) en tu unidad de cdrom y reinicializar el sistema, debes tener configurado tu sistema para que el primer dispositivo de arranque sea el CDROM , esto lo resuelves en la setup, hecho esto se comenzará a cargar la imagen del núcleo y se iniciará la carga de anaconda (así se llama el instalador gráfico de RedHat LiNUX), lo siguiente es cambiar el idioma y seguir las instrucciones ( por lo general lo único que debes hacer es presionar siguiente, ya que la instalación predefíne la opción adecuada para tu sistema), cuidado con la contraseña de root que se pedirá, debe ser celosamente guardada. Cuando se llegue a la opción que dice relación con el particionamiento del disco duro, debes tener cuidado si es que tienes datos en el mismo o si tienes instalada alguna versión de Windows, de preferencia crea una estructura de particiones como la que sigue:

Punto de Montaje

Espacio en MB

Descripción

/boot

150 MB Aproximadamente.

Esta partición guarda la imagen del núcleo y otros archivos necesarios para el proceso de arranque del sistema.

/var

Lo más que puedas

Nos interesa sobre manera ya que contendrá el directorio www de Apache, el directorio donde se almacenan los archivos para el servidor FTP, los logs del sistema, y el directorio spool/mail que contiene los mails de nuestros usuarios.

/home

Lo más que puedas

Muy importante contiene los directorios personales de nuestros usuarios.

/

Reserva una cantidad prudente de espacio.

Es el núcleo del sistema, contiene toda la estructura de directorios de nuestro sistema, así que debes ser cuidadoso en cuanto a la distribución de espacio.

Esto te permite cierta tolerancia a fallos con respecto a tu sistema de archivos, así por ejemplo si falla una partición solo deberás preocuparte de esta y no de todo el disco duro.

Cuándo llegue la sección en donde debes elegir que tipo de instalación deseas realizar le diremos que sea SERVIDOR y eliges la paquetería que consideres de mayor relevancia para tí, recuerda que siempre debes instalar aquello que te permita ser funcional con tu servidor, no es necesario instalar por ejemplo suites ofimáticas (es un servidor!!!) ni herramientas para ver películas o escuchar música, un punto importante es la interfaz gráfica, el XWindow, tendrás que elegir entre instalar GNOME o KDE ambos son muy buenos.

Un punto importante es la opción que dice relación con la modalidad de login, pudiendo ser gráfico (por defecto) o solo texto, siempre elige esta última (texto) ya que es una forma de aprovechar mejor nuestra RAM y no dejemos abierto un puerto del sistema a los molestos intrusos.

Finalizado el proceso de instalación llegó la hora de reiniciar el sistema y cargar LiNUX, cuando estemos en el logeo al sistema introducimos el nombre de usuario root y su correspondiente password (contraseña), estando en nuestro sistema debemos verificar lo siguiente;

1.- Si estamos en modo consola (sólo comandos) debemos ejecutar el comando startx, esto arrancará el XWindow (interfaz gráfica o también llamada GUI).

2.- Si ya estamos en modo gráfico no queda más que empezar a trabajar en la configuración del sistema.

La cuenta root  

Posted by Danny in

LiNUX dispone de un usuario todopoderoso llamado root, este es tan importante que para él no existen alertas al estilo Windows cuando estamos borrando algún archivo importante y esto es lamentable para muchos. Se recomienda trabajar lo mínimo con esta cuenta y ya es convención que una vez instalado el sistema se cree un cuenta personal para el administrador, desde ese momento para acceder a los privilegios del root es práctico usar el comando $ su root , se pedirá el password del root y después de esto estamos en condiciones de realizar las tareas administrativas correspondientes.

3.1 Rescate del Password del ROOT

Uno de los grandes problemas de administración de sistemas es que se pierda o por algún motivo se haya modificado el password del root dejando al administrador con un gran problema. Para los sistemas con LILO se dice que la opción el cargar el sistema como modo monousuario agregando el siguiente parámetro al cargador: linux single.

Para aquellos que utilizan GRUB, y es la mayoría de los sistemas RedHat, recomiendo la siguiente operación:

Este método ha sido tomado de un documento oficial emitido por RedHat INC. La URL es:

http://www.europe.redhat.com/documentation/rhl9/rhl-cg-es-9/s1-rescuemode-boot.php3

Bootear con el CD de Instalación de RedHat Linux.

Seleccionar linux rescue (en modo rescate).

Esperar que cargue, y al final arrojará un mensaje en el que se advierte que se procederá a montar el sistema de archivos en el directorio /mnt/sysimage, para lo que seleccionamos "Continuar".

Ejecutamos el comando chroot /mnt/sysimage, de esta forma cambiamos nuestro ambiente de modo de rescate a la partición root de nuestro sistema de archivos.

Luego ejecutamos el comando passwd y se pedirá la nueva contraseña del root.

La solución definitiva para este tipo de problemas es que nos organicemos correctamente y aseguremos un listado de passwords en el que aparezcan todos las contraseñas utilizadas, esto trae consigo una nueva tarea, proteger este listado de personal no autorizado.

Comparacion entre Linux y Otros Sistemas Operativos  

Posted by Danny in

Es importante entender las diferencias entre LiNUX y otros sistemas operativos como DOS, OS/2 , Windows y otras implementaciones de UNIX para ordenadores personales. Primeramente es conveniente decir que LiNUX puede convivir felizmente con otros sistemas operativos en la misma máquina; es decir que puedes correr DOS y Windows en compañía de LiNUX sobre el mismo sistema sin problemas.

Entre las principales diferencias que encontramos esta la forma en como funciona LiNUX, además de una de las diferencias mas importantes, a caso no la más importante para algunos, es que LiNUX es gratuito (por concepto de licencia de uso), mientras otros sistemas operativos como Windows tienen un costo bastante desagradable para el bolsillo, ni hablar de UNIX una licencia para un PC puede costar unos mil dólares o más.

De todos modos LiNUX tiene tantas ventajas como desventajas (aunque esto último depende del tipo de usuario) y para nuestros fines es el sistema ideal dado que es robusto y suficientemente completo para manejar grandes tareas.

Caracteristicas de Linux  

Posted by Danny in

Un Servidor de Comunicaciones como prefiero llamarlo es un computador con características especiales, por lo general es más poderoso que el común de los PC que conocemos (más RAM, mayor capacidad en disco duro, mejor procesador ... etc) ,aunque esta regla no siempre se aplica (hay servidores de mail que se han montado sobre un i386 con 8 megas de RAM), su función es brindar medios de comunicación de ahí el nombre, entre los servicios principales que brinda este tipo de máquina esta;
- Servicio HTTP (www)
- Servicio SMTP (email )
- Servicio DNS
- Servicio FTP
- otros posibles servicios.

LiNUX es una plataforma ideal para montar un servidor, es gratis (por el concepto de licencia de uso), se ampara bajo la Licencia GNU/GPL y además es muy estable y fiable, particularmente yo uso RedHat , es lo primero que aprendí (aunque espero poder ingresar al mundo de Debian y Slackware), me parece bastante fácil y existe un muy buen material tanto en INTERNET como el forma impresa (libros), aun así un servidor que este montado sobre LiNUX no esta ajeno a problemas de seguridad, este es un punto muy importante y pasa principalmente por la experiencia en seguridad que tenga el administrador del sistema, de todos modos en los siguientes capítulos hablaremos este tema, por ahora hablaremos sobre algunas características de LiNUX.

1.1 Sistema multiusuario

LiNUX al igual que su pariente (dicen que el padre) UNIX tiene la potencialidad de que es un sistema que permite el trabajo simultaneo de varios usuarios cada uno con su respectivo directorio personal y virtualmente sus propios programas ( algo que el Windows es bastante difícil o no?) sin que esto signifique intervenir en los datos de otro usuario.

1.2 Soporte nativo para Redes

LiNUX nace de INTERNET por tanto debía ser obvio que tendría soporte para redes y en especial todo lo relacionado con el protocolo TCP/IP , como FTP, telnet, NNTP y SMTP entre otros.

1.3 Soporte para diversos sistemas de ficheros

LiNUX permite guardar datos en muchos sistemas de archivos, como el FAT de DOS y Windows, Minix-1, Xenix (Xenix es el Unix de Microsoft) y otros como el ext2fs (hoy es el ext3fs) que se han desarrollado específicamente para LiNUX., además soporta el ISO-9660, que es el estándar en el formato de los CD-ROMs.

1.4 Utiliza el modo protegido de los microprocesadores 80386 y 80486

El núcleo de LiNUX se ha desarrollado para utilizar las características del modo protegido de los microprocesadores 80386 y 80486. En concreto, hace uso de la gestión de memoria avanzada del modo protegido y otras características avanzadas. Esta característica fue diseñada para su uso en UNIX (o tal vez Multics), LiNUX hace uso de esta funcionalidad.

1.5 Incrementación de memoria vía paginación con el disco

LiNUX implementa la paginación con el disco; puede tener hasta 256 megas (más incluso, esto de establece mediante la siguiente formula, siempre es el doble de la memoria física, RAM) de espacio de intercambio o "swap" en el disco duro. Cuando el sistema necesita más memoria, expulsará páginas inactiva al disco, permitiendo la ejecución de programas más grandes o aumentando el número de usuarios que puede atender a la vez. Sin embrago, el espacio de intercambio no puede suplir totalmente la memoria RAM, ya que el primero es mucho más lento que ésta.

1.6 Ejecutables más livianos

Los ejecutables en LiNUX hacen uso de las librerías de enlace dinámico. Esto significa que los ejecutables comparten el código común de las librerías en un único fichero, como sucede con SunOS. Así los ejecutables son más livianos.

1.7 Multitarea

La palabra multitarea describe la capacidad de ejecutar muchos programas al mismo tiempo sin detener la ejecución de cada aplicación.

LiNUX usa la multitarea prioritaria porque cada programa tiene garantizada la oportunidad de ejecutarse, y se ejecuta hasta que el sistema operativo da prioridad a otro programa para que se ejecute. DOS y Windows 3.1 no admiten la multitarea prioritaria; admiten una forma denominada multitarea cooperativa. Con ésta, los programas se ejecutan hasta que voluntariamente se ejecuten otros programas o no tiene nada más que hacer por el momento.

Relaying y Alias Basico  

Posted by Danny in

Esto consiste en activar la ip de nuestro servidor para que él sea el único que este autorizado para mandar correo sin autentificarse, es decir, que para poder mandar correo nos pedirá una contraseña, si nuestra ip estuviese dentro de este relaying no nos pediría dicha contraseña.

echo ?127.0.0.1:allow,RELAYCLIENT=??? >> /etc/tcp.smtp
qmailctl cdb

Una vez añadida la ip de localhost, nos disponemos a añadir una línea en el crontab, para que cada 10 minutos se borre la lista virtual de ip's.

crontab ?e

9-59,10 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null

Para comprobar que hemos añadido correctamente la línea en nuestro crontab ejecutaremos el siguiente comando:
crontab ?l

Alias básicos

Por último vamos a añadir unos alias básicos que necesitamos para el correcto funcionamiento de qmail.

ln -s /var/qmail/bin/sendmail /usr/lib
ln -s /var/qmail/bin/sendmail /usr/sbin
echo user > /var/qmail/alias/.qmail-root
echo user > /var/qmail/alias/.qmail-postmaster
ln -s .qmail-postmaster /var/qmail/alias/.qmail-mailer-daemon
chmod 644 /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-postmaster

Scripts servidor de correo  

Posted by Danny in

Script de inicio de qmail (/var/qmail/rc)
vi /var/qmail/rc

#!/bin/sh

# Using stdout for logging
# Using control/defaultdelivery from qmail-local to deliver messages by default

exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start "`cat /var/qmail/control/defaultdelivery`"

chmod 755 /var/qmail/rc

echo ./Maildir/ > /var/qmail/control/defaultdelivery

Automatización del script de inicio (/var/qmail/bin/qmailctl)
vi /var/qmail/bin/qmailctl

#!/bin/sh

# For Red Hat chkconfig
# chkconfig: - 80 30
# description: the qmail MTA

PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
export PATH

QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`

case "$1" in
start)
echo "Starting qmail"
if svok /service/qmail-send ; then
svc -u /service/qmail-send
else
echo qmail-send supervise not running
fi
if svok /service/qmail-smtpd ; then
svc -u /service/qmail-smtpd
else
echo qmail-smtpd supervise not running
fi
if [ -d /var/lock/subsys ]; then
touch /var/lock/subsys/qmail
fi
if svok /service/qmail-pop3d ; then
svc -u /service/qmail-pop3d
else
echo qmail-pop3d supervise not running
fi
;;
stop)
echo "Stopping qmail..."
echo " qmail-smtpd"
svc -d /service/qmail-smtpd
echo " qmail-send"
svc -d /service/qmail-send
if [ -f /var/lock/subsys/qmail ]; then
rm /var/lock/subsys/qmail
fi
echo " qmail-pop3d"
svc -d /service/qmail-pop3d
;;
stat)
svstat /service/qmail-send
svstat /service/qmail-send/log
svstat /service/qmail-smtpd
svstat /service/qmail-smtpd/log
svstat /service/qmail-pop3d
svstat /service/qmail-pop3d/log
qmail-qstat
;;
doqueue|alrm|flush)
echo "Flushing timeout table and sending ALRM signal to qmail-send."
/var/qmail/bin/qmail-tcpok
svc -a /service/qmail-send
;;
queue)
qmail-qstat
qmail-qread
;;
reload|hup)
echo "Sending HUP signal to qmail-send."
svc -h /service/qmail-send
;;
pause)
echo "Pausing qmail-send"
svc -p /service/qmail-send
echo "Pausing qmail-smtpd"
svc -p /service/qmail-smtpd
echo "Pausing qmail-pop3d"
svc -p /service/qmail-pop3d
;;
cont)
echo "Continuing qmail-send"
svc -c /service/qmail-send
echo "Continuing qmail-smtpd"
svc -c /service/qmail-smtpd
echo "Continuing qmail-pop3d"
svc -c /service/qmail-pop3d
;;
restart)
echo "Restarting qmail:"
echo "* Stopping qmail-smtpd."
svc -d /service/qmail-smtpd
echo "* Sending qmail-send SIGTERM and restarting."
svc -t /service/qmail-send
echo "* Restarting qmail-smtpd."
svc -u /service/qmail-smtpd
echo "* Restarting qmail-pop3d."
svc -t /service/qmail-pop3d
;;
cdb)
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp chmod 644 /etc/tcp.smtp.cdb echo "Reloaded /etc/tcp.smtp." ;; help) cat <

exit 0

chmod 755 /var/qmail/bin/qmailctl

Ahora nos disponemos a crear los enlaces de cada inicio en cada capa y los directorios de supervise.
ln -s /var/qmail/bin/qmailctl /etc/init.d/qmail
ln -s /etc/init.d/qmail /etc/rc0.d/K30qmail
ln -s /etc/init.d/qmail /etc/rc1.d/K30qmail
ln -s /etc/init.d/qmail /etc/rc2.d/S80qmail
ln -s /etc/init.d/qmail /etc/rc3.d/S80qmail
ln -s /etc/init.d/qmail /etc/rc4.d/S80qmail
ln -s /etc/init.d/qmail /etc/rc5.d/S80qmail
ln -s /etc/init.d/qmail /etc/rc6.d/K30qmail
ln -s /var/qmail/bin/qmailctl /usr/bin
mkdir -p /var/qmail/supervise/qmail-send/log
mkdir -p /var/qmail/supervise/qmail-smtpd/log
mkdir -p /var/qmail/supervise/qmail-pop3d/log
mkdir -p /var/log/qmail/smtpd
mkdir -p /var/log/qmail/pop3d
chown qmaill /var/log/qmail /var/log/qmail/smtpd /var/log/qmail/pop3d

Scripts de arranque y logeo de qmail-send
vi /var/qmail/supervise/qmail-send/run

#!/bin/sh

exec /var/qmail/rc

vi /var/qmail/supervise/qmail-send/log/run

#!/bin/sh

exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail

Scripts de arranque y logeo de qmail-smtpd (smtp-auth)

Para poder usar smtp-auth, vamos a crear una copia de vchkpw, aquí hay varios puntos importantes que hay que tener en cuenta.
cp /home/vpopmail/bin/vchkpw /home/vpopmail/bin/vchkpw.smtp
chown vpopmail.vchkpw /home/vpopmail/bin/vchkpw.smtp
chmod +s /home/vpopmail/bin/vchkpw.smtp

Estas líneas anteriores eran para mantener una copia intacta de vchkpw, ahora vamos a proceder a crear los scripts anteriormente citados.
vi /var/qmail/supervise/qmail-smtpd/run

#!/bin/sh

QMAILDUID=`id -u qmaild`

NOFILESGID=`id -g qmaild`

MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`

exec /usr/local/bin/softlimit -m 4000000 /usr/local/bin/tcpserver -H -R -l 0 -c "$MAXSMTPD" -x /etc/tcp.smtp.cdb -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd dominio.com /home/vpopmail/bin/vchkpw.smtp /bin/true 2>&1

NOTA: dominio.com lo tendremos que sustituir por el nombre de dominio asignado, en este caso era pruebas.com, pero hay que observar que tan solo ponemos pruebas.com y no ponemos mailhost.pruebas.com

Tenemos que crear el archivo concurrencyincoming, el cual estará determinado por un número concurrente para realizar envíos simultáneos.
echo 20 > /var/qmail/control/concurrencyincoming
chmod 644 /var/qmail/control/concurrencyincoming

Ahora vamos a crear el script de logeo de qmail-smtpd.
vi /var/qmail/supervise/qmail-smtpd/log/run

#!/bin/sh

exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd

Scripts de arranque y logeo de qmail-pop3d
vi /var/qmail/supervise/qmail-pop3d/run

#!/bin/sh

exec /usr/local/bin/tcpserver -v -R -H -l 0 -u 89 -g 89 0 110 /var/qmail/bin/qmail-popup dominio.com /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1

NOTA: dominio.com lo tendremos que sustituir por el nombre de dominio asignado, en este caso era pruebas.com, pero hay que observar que tan solo ponemos pruebas.com y no ponemos mailhost.pruebas.com

vi /var/qmail/supervise/qmail-pop3d/log/run

#!/bin/sh

exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/pop3d

Ahora nos disponemos a hacer ejecutables todos estos archivos y enlazarlos con daemontools.
chmod 755 /var/qmail/supervise/qmail-send/run
chmod 755 /var/qmail/supervise/qmail-send/log/run
chmod 755 /var/qmail/supervise/qmail-smtpd/run
chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
chmod 755 /var/qmail/supervise/qmail-pop3d/run
chmod 755 /var/qmail/supervise/qmail-pop3d/log/run
ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service
ln -s /var/qmail/supervise/qmail-pop3d /service

Una vez hecho este último paso nuestro servidor de correo debería estar funcionando, una forma de comprobarlo es de la siguiente forma.
telnet localhost 25
telnet localhost 110

También deberemos probar el script que creamos (qmailctl) para parar los servicios y volver a iniciarlos con este comando.
/etc/init.d/qmail stop
/etc/init.d/qmail start

Instalacion de ucspi-tcp, daemontools, vpopmail  

Posted by Danny in

Instalación de ucspi-tcp (tcpserver)
No hemos hablado anteriormente de este apartado ya que este paquete tan solo contiene tcpserver y tcpclient, las herramientas para construir la linea de comandos del servidor cliente.
cd /usr/local/src/qmail/ucspi-tcp-0.88
make
make setup check

Instalación de daemontools
cd /package/admin/daemontools-0.76
package/install

Para comprobar que las daemontools estan arrancadas, hacer un ps ax y mirar si aparece "/bin/sh /command/svscanboot" y "svscan /service".

Instalación de vpopmail.
Bueno ya vamos avanzando y cada vez queda menos para terminar nuestro servidor de correo. Ahora nos disponemos a instalar vpopmail.
groupadd -g 89 vchkpw
useradd -g vchkpw -u 89 vpopmail

Una vez añadido el grupo de vpopmail y el usuario nos disponemos a compilar vpopmail, todo ello como root.
cd /usr/local/src/qmail/vpopmail-5.3.14
./configure --enable-ip-alias-domains=y --enable-ucspi-dir=../ucspi-tcp-0.88 --enable-logging=y --enable-tcpserver-file=/etc/tcp.smtp --enable-many-domains=y --enable-passwd=y
make
make install-strip

Agregamos nuestro dominio y un usuario de prueba, para que una vez hechos los scripts los servicios abran los puertos pertinentes.
/home/vpopmail/bin/vadddomain pruebas.com
/home/vpopmail/bin/vadduser usuario@pruebas.com

Aplicacion de Parches e Instalacion de qmail  

Posted by Danny in

Una vez descomprimido cada paquete vamos a proceder a aplicar los parches pertinentes a qmail, para que nos de soporte para smtp-auth, para qmailscanner y nos quite algunos fallos de dns.

Este parche nos sirve para poder usar smtp-auth.
cd /usr/local/src/qmail/qmail-smtpd-auth-0.31
cp README.auth base64.c base64.h ../qmail-1.03
patch -d ../qmail-1.03

Este parche es para solucionar un problema de zonas mayores a 512.
cd /usr/local/src/qmail/qmail-1.03
patch -p1 < ../qmail-103.patch

El siguiente parche es por si más adelante o en posibles ampliaciones de este manual, podamos usar qmailscanner.
cd /usr/local/src/qmail/qmail-1.03

patch -p1 < ../qmailqueue-patch

Instalación de qmail
Bueno ya hemos aplicado los parches que necesitabamos, ahora nos toca instalar paso a paso nuestro qmail.
kdir /var/qmail
mkdir /var/log/qmail
groupadd nofiles
useradd -g nofiles -d /var/qmail/alias alias
useradd -g nofiles -d /var/qmail qmaild
useradd -g nofiles -d /var/qmail qmaill
useradd -g nofiles -d /var/qmail qmailp
groupadd qmail
useradd -g qmail -d /var/qmail qmailq
useradd -g qmail -d /var/qmail qmailr
useradd -g qmail -d /var/qmail qmails

cd /usr/local/src/qmail/qmail-1.03
make setup check
./config-fast maquina.dominio.com

NOTA: maquina.dominio.com quiere decir que en maquina ponemos el nombre que le dimos a nuestro servidor y en dominio el dominio el cual hayamos contratado, un ejemplo sería: Mi maquina se llama mailhost y mi dominio contratado es www.pruebas.com, entonces mi nombre sería mailhost.pruebas.com


Descarga y Descompresion de Paquetes  

Posted by Danny in

Descargar paquetes.
Vamos a descargar los paquetes necesarios para la instalación de nuestro servidor de correos. Por comodidad vamos a instalar el paquete wget, por si no lo poseemos. Una vez instalado wget nos vamos a disponer a descargar todos los paquetes necesarios.
mkdir -p /usr/local/src/qmail
cd /usr/local/src/qmail
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
wget http://cr.yp.to/software/qmail-1.03.tar.gz
wget http://members.elysium.pl/brush/qmail-smtpd-auth/dist/qmail-smtpd-auth-0.31.tar.gz
wget http://www.inter7.com/devel/vpopmail-5.3.14.tar.gz
wget http://www.ckdhr.com/ckd/qmail-103.patch
wget http://www.qmail.org/qmailqueue-patch

Descomprimir paquetes
Ahora vamos a proceder a descomprimir cada paquete descargado en el sitio que le corresponde.
cd /usr/local/src/qmail
tar -xzf qmail-1.03.tar.gz
tar -xzf ucspi-tcp-0.88.tar.gz
tar -xzf qmail-smtpd-auth-0.31.tar.gz
tar -xzf vpopmail-5.3.14.tar.gz
mkdir /package
cd /package
tar -xzf /usr/local/src/qmail/daemontools-0.76.tar.gz

Descarga y Descompresion de Paquetes  

Posted by Danny

Descargar paquetes.
Vamos a descargar los paquetes necesarios para la instalación de nuestro servidor de correos. Por comodidad vamos a instalar el paquete wget, por si no lo poseemos. Una vez instalado wget nos vamos a disponer a descargar todos los paquetes necesarios.
mkdir -p /usr/local/src/qmail
cd /usr/local/src/qmail
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
wget http://cr.yp.to/software/qmail-1.03.tar.gz
wget http://members.elysium.pl/brush/qmail-smtpd-auth/dist/qmail-smtpd-auth-0.31.tar.gz
wget http://www.inter7.com/devel/vpopmail-5.3.14.tar.gz
wget http://www.ckdhr.com/ckd/qmail-103.patch
wget http://www.qmail.org/qmailqueue-patch

Descomprimir paquetes
Ahora vamos a proceder a descomprimir cada paquete descargado en el sitio que le corresponde.
cd /usr/local/src/qmail
tar -xzf qmail-1.03.tar.gz
tar -xzf ucspi-tcp-0.88.tar.gz
tar -xzf qmail-smtpd-auth-0.31.tar.gz
tar -xzf vpopmail-5.3.14.tar.gz
mkdir /package
cd /package
tar -xzf /usr/local/src/qmail/daemontools-0.76.tar.gz

Definiciones  

Posted by Danny in

En este manual vamos a aprender como montar un servidor de correo paso a paso, intentando aprender de camino para que sirve cada paso que damos. Me he decidido a hacer este manual ya que me resulto difícil poder adaptar un apartado a mi servidor de correo, el cual me llevo a jurar que si conseguía montarlo, yo escribiría un manual para que nadie tuviese el mismo problema que tuve yo.

1.- ¿Qué es qmail?
qmail es un Agente de Transporte de Correo (MTA, Mail Transport Agent en inglés) para sistemas operativos tipo UNIX. Se trata de un sustituto completo para el sistema sendmail que se suministra con los sistemas operativos UNIX. qmail utiliza el Simple Mail Transfer Protocol (SMTP, Protocolo Simple de Transferencia de Correo) para intercambiar mensajes con los MTA (Agentes de Transporte de Correo) de otros sistemas.

2.- ¿Qué es smtp-auth?
smtp-auth es un parche para qmail, que activa el soporte para el protocolo de autentificación SMTP con la búsqueda de diferentes tipos de autentificación como: LOGIN, PLAIN y CRAM-MD5. Este parche nos va a ser útil ya que nos previene de la posibilidad que nuestro servidor sirva para hacer spam. Como antes comente al principio este es el motivo por el cual he hecho este manual, ya que mi servidor sirvió de spamer.

3.- ¿Qué es daemontools?
daemontools es una colección de utilidades para el manejo de servicios UNIX.

supervise supervisa un servicio. Este arranca el servicio y reinicia el servicio si este muere. Arrancar un nuevo servicio es facil: Todo supervise necesita un directorio con un script run que inicie el servicio.

multilog guarda los mensajes de error en uno o más logs. Él opcionalmente añade en cada línea la fecha y hora, y para cada registro, incluye o excluye las líneas que emparejan patrones especificados. Rota automáticamente registros para limitar la cantidad de espacio de disco usada. Si el disco está lleno, se detiene brevemente e intenta otra vez, sin perder ningunos datos.

4.- ¿Qué es vpopmail?
La manipulación de dominios virtuales es una edición común planteada por los nuevos usuarios en las comunidades de qmail y del postfix. Inter7 ha desarrollado el vpopmail (vchkpw), una paquete de software libre del GLP, para proporcionar una manera fácil de manejar dominios virtuales del email y cuentas del email y no /etc/passwd en su qmail o postfix. Además es muy útil ya que podemos tener varios dominios en una sola dirección IP.

Una vez visto por encima que es cada cosa que vamos a usar nos disponemos a empezar con la instalación de nuestro servidor de correo, cabe decir que esta misma instalación la he llevado acabo en una distribución Debian, pero que es adaptable para cualquier otra distribución, ya que se tenga un poco de conocimiento con los comandos.

5.- Requisitos
Debe tener usted en cuenta que debe tener desinstalado su MTA, que puede ser en caso de RedHat (sendmail) o en Debian (exim).
apt-get remove exim

Comandos y programas  

Posted by Danny in

Comandos y programas :

dmesg - Muestra los mensajes acaecidos durante el proceso de arranque.
lspci - Muestra los perifericos conectados al puente pci.
lsmod - Muestra los módulos cargados en el sistema.
whatis - Seguido de un nombre de fichero muestra una breve descripción de éste. ej. whatis chmod
whereis - Seguido de un nombre de fichero muestra la ubicación de éste. ej. whereis chmod
uname - Muestra el nombre de la máquina. ej. uname -a
mkdir - Crea un nuevo directorio. ej. mkdir /rafa/work
rmdir - Borra directorios vacios. *2
bc -Calculadora
rm -Borra ficheros. ej. rm -f lista.txt
free - Muestra estadisticas de memoria ram.
df - Muestra estadisticas de espacio en el disco.
cd - Cambia a directorio.
cp - Copia un fichero en el lugar especificado. ej. cp /lista.txt /rafa/work/lista.txt
mv - Mueve o renombra ficheros al lugar especificado. ej. mv /rafa/lista.txt /rafa/work/lista.txt
ls - Muestra el contenido de un directorio o un fichero especifico.
man - Seguido del nombre de un programa muestra el manual de este. ej. man echo
modprobe -Seguido del nombre de un módulo carga el susodicho. ej. modprobe 8139too
reboot - Reinícia el sistema automáticamente.
halt - Apaga el sistema automáticamente.*3
date - Muestra la fecha y hora actual.
ln - Crea enlaces ( Accesos directos ) ej. ln -s /rafa/lista.txt /rafa/Desktop/lista.txt
ps - Muestra la lista de los procesos activos. ej. ps -d
Kill - Mata procesos activos. ej. killall -9 wine
pwd - Nos muestra el camino ( path ) del directorio actual.
date - Muestra la fecha del sistema.
cal - Muestra un calendario.
du - Muestra el uso del disco. ej. du /rafa/work/games
less - Muestra ficheros de texto ej. less leemé.txt*4
exit - Salir de la sesión actual.
netstat - Muestra el estado de la red. ej. netstat -natu
ifconfig - Muestra la configuración de las interfaces de red
su - Invoca al superusuario ( root ) ( / ) o a cualquier otro usuario
tar - Descomprime ficheros. ej. tar xvfz xpde.tar.gz
mpg123 - Reproduce ficheros .mp3 ej. mpg123 /work/musica/mpg123 *.mp3
burnmp3 - Graba cd's en formato .mp3 o .ogg
nmap - Escanea la red. ej. nmap -sT 192.168.1.*
startx - Arranca el servidor X
chmod - Cambia el modo de un fichero. ej chmod 666 /dev/nvidia0
chown - Cambia el propietario de un fichero ej chown root.root /usr/local/bin/kradio

1: Algunos programas requieren de cierto permiso o modo para poder funcionar bajo un usuario corriente. ( chmod, chown, sudo )

2: Para borrar un directorio lleno, usa la siguiente línea: rm -rf ( remove recursive force ) ( borrar recursivamente forzar ) seguida del nombre del directorio a borrar ej. rm -rf /home/alan/wor

3: Si por ejemplo queremos que el equipo se apague dentro de x minutos, ( Dónde x es el número de minutos ) el comando a usar sería: shutdown -h +x nowej. para 4 horas; shutdown -h +240 now

Comandos del Sistema VII  

Posted by Danny in

Editor vi

El manejo de vi es un poco peculiar, sin embargo tiene preferencia en este manual, porque existe en cualquier sistema operativo parecido a UNIX y forma parte de la instalación predeterminada de Linux. Además, el control de este editor es totalmente uniforme y libre de equivocaciones. Finalmente: Si no funciona nada, vi aún funciona. La breve explicación que presentamos a continuación le servirá para utilizar las funciones básicas de vi para editar z. B. diferentes archivos de configuración.

vi conoce 3 modos de operar:

- Modo de comandos command mode

Todas las pulsaciones de teclas se interpretan como parte de un comando.

- Modo de inserción insert mode

Las pulsaciones de teclas se interpretan como texto que se introduce.

- Modo de comandos complejos last line mode

Modo para comandos complejos que se editan en la última línea.

Las órdenes más importantes del modo de comandos son:

Tabla 21.2. Comandos básicos del editor vi

i

cambia al modo de inserción (los caracteres se introducen en la posición actual del cursor).

a

cambia al modo de inserción (los caracteres se introducen detrás de la posición actual del cursor).

A

cambia al modo de inserción (los caracteres se añaden al final de la línea).

R

cambia al modo de inserción (sobrescribe el texto anterior).

r

cambia al modo de inserción sobrescribiendo un solo carácter.

s

cambia al modo de inserción (el carácter en la posición del cursor se sobrescribe con el carácter nuevo).

C

cambia al modo de inserción (el resto de la línea se reemplaza por el texto nuevo).

o

cambia al modo de inserción (detrás de la línea actual se añade una línea nueva).

O

cambia al modo de inserción (por delante de la línea actual se añade una línea nueva).

x

borra el carácter actual.

dd

borra la línea actual.

dw

borra hasta el final de la palabra actual.

cw

cambia al modo de inserción (el resto de la palabra actual se sobrescribe).

u

deshace el último comando.

J

añade la siguiente línea a la actual.

.

repite el último comando.

:

cambia al modo de comandos complejos.


Es posible anteponer una cifra a cualquier comando. Esta cifra indica el número de veces que se debe repetir el comando que sigue. z. B. 3dw borra tres palabras seguidas, 10x borra diez caracteres a partir de la posición del cursor y 20dd borra 20 líneas.

Los comandos más importantes del modo de comandos complejos:

Tabla 21.3. Comandos complejos del editor vi

:q!

sale de vi sin grabar los cambios.

:w nombre_archivo

graba bajo el nombre nombre_archivo.

:x

graba el archivo modificado y sale del editor.

:e Nombrearchivo

edita (carga) nombre_archivo.

:u

deshace el último comando de edición.

Para cambiar al modo de comandos dentro del modo de inserción se debe pulsar la tecla ESC.


Comandos del Sistema VI  

Posted by Danny in

Otros

passwd[opción(es)][nombre_de_usuario]

Con este comando, cada usuario tiene en todo momento la posibilidad de cambiar su propia contraseña. El superusuario root tiene además permiso para cambiar la contraseña de cualquier usuario.

su[opción(es)][nombredeusuario]

su permite cambiar el login del usuario durante una sesión. Si no se utiliza ningún parámetro, la línea de comando exigirá la contraseña de root. Una vez introducida ésta correctamente se obtendrán todos los derechos del superusuario. También se puede usar el entorno de otro usuario introduciendo detrás del comando el nombre del usuario y posteriormente la contraseña correcta del mismo. root no necesita introducir esta contraseña. Es decir, con los derechos de superusuario se puede asumir sin problemas la identidad de cualquier usuario.

halt[opción(es)]

Para evitar la pérdida de datos siempre debería apagar su computadora con este programa.

reboot[Opción(es)]

Funciona como el comando halt, pero la computadora se volverá a iniciar tras apagarse.

clear

De vez en cuando ocurre que la consola está tan llena de líneas de texto que una limpieza no le iría nada mal. Este comando se usa justamente para eso y no tiene ninguna opción.

Comandos del sistema IV  

Posted by Danny in

Información

df[opción(es)][directorio]

Si se ejecuta el comando df disk free sin ninguna opción, se nos dará una estadística sobre el espacio total, el ocupado y el libre de todas las unidades de disco montadas. Si por el contrario se introduce un directorio, se mostrarán sólo las estadísticas de la unidad de disco que incluye dicho directorio.

-H

Nos enseña el número de bloques ocupados en gigabytes, megabytes o kilobytes ? de forma legible para el ser humano human readable.

-t

Tipo de unidad (ext2, nfs, etc.).

du[opción(es)][ruta]

Este comando, usado sin opciones, indica el espacio total de almacenamiento utilizado por todos los archivos del directorio en el que nos encontremos. Si existen subdirectorios en él, también se indicará su tamaño total.

-a

Indica el tamaño de cada uno de los archivos.

-h

Listado en forma legible para el ser humano.

-s

Nos enseña tan sólo el tamaño total.

free[opción(es)]

free nos muestra el tamaño total y el usado de memoria física y de intercambio.

-b

Indicado en bytes,

-k

Indicado en kilobytes,

-m

Indicado en megabytes

date[opción(es)]

Ejecutando este pequeño programa, se nos informará de la hora del sistema. Además como root, se puede modificar con este comando la hora del sistema. Encontrará más detalles en la Manpage de (date).

Procesos

top[opción(es)]

Por medio de top obtendrá una lista rápida de todos los Procesos que se estén ejecutando. Pulsando la tecla h se le enseñara una página con aclaraciones y con las opciones más importantes para adecuar este programa a sus necesidades.

ps[opción(es)][proceso-ID]

Si se ejecuta sin opciones se mostrarán en una tabla todos los procesos propios, es decir, todos los programas y procesos que haya inicializado uno mismo. Tenga cuidado al usar las opciones de este comando; pues no se debe anteponer un guión.

aux

Proporciona una lista detallada de todos los procesos, sin tener en cuenta el dueño.

kill[opción(es)]proceso-ID

A veces, desafortunadamente, nos encontramos con programas que no se pueden cerrar de forma normal. Con el comando kill, se puedeeliminar todos los procesos muertos con ayuda del ID del proceso (ver top y ps).

Para ello envía una señal llamada TERM que ordena al programa cerrarse a sí mismo. Si esto tampoco sirve tenemos aún otro parámetro de gran ayuda:

-9

Envía en lugar de una señal tipo TERM una señal tipo KILL, lo que ocasiona que el proceso sea liquidado por el sistema operativo, consiguiendo en casi todos los casos que el proceso especificado se termine.

killall[opción(es)]nombreproceso

Este comando funciona de forma equivalente a kill, sólo que para este comando basta con dar el nombre del proceso - y no su ID - para matar todos los procesos que tengan ese nombre.

Comandos del sistema III  

Posted by Danny in

Sistema de archivos

mount[opción(es)][dispositivo]punto_de_montaje

Con ayuda de este comando se puede montar diferentes dispositivos de almacenamiento. Con ello se entiende la unión de discos duros, CD-ROM y otras unidades de disco con un directorio del sistema de archivos Linux.

-r

monta el dispositivo como sólo lectura

-t sistema de archivos

Especifica el sistema de archivos. Los más comunes son: ext2 para discos duros de Linux, msdos para dispositivos MS-DOS, vfat para sistema de archivos de particiones Windows y iso9660 para CDs.

En el caso de unidades que no estén definidas en el archivo /etc/fstab, se deberá también especificar el tipo de dispositivo. En este caso, sólo el root podrá montarlo. Para que el sistema de archivos pueda ser montado por otros usuarios, introduzca la opción user en la línea correspondiente del archivo/etc/fstab (separado por comas) y guarde los cambios. Para más información, diríjase a mount.

umount[opción(es)]puntodemontaje

Con este comando se retira una unidad de disco del sistema de archivos. Ejecute este comando antes de retirar un medio de almacenamiento de la unidad de discos. ¡De lo contrario se expone a una pérdida de datos! Por norma general, tanto el comando mount como el comando umount sólo pueden ser ejecutados por root. Excepción: Cuando, para el dispositivo, aparece la opción user en el archivo /etc/fstab.



Comandos del sistema II  

Posted by Danny in

Comandos para visualizar contenidos

cat[opción(es)]archivo(s)

Con el comando cat se ve el contenido del archivo elegido sin interrupciones.

-n

Numera el texto en el borde izquierdo.

less[opción(es)]archivo(s)

Con este comando se puede examinar el contenido del archivo elegido. Por ejemplo puede subir y bajar media hoja de pantalla con las teclas BildAb y BildAuf con la tecla espaciadora hasta una página entera hacia adelante. También puede desplazarse al comienzo y al final del texto con las teclas Inicio y Fin. Y con la tecla Q puede cerrar este modo de visualización.

grep[opción(es)]términodebúsquedaarchivo(s)

grep está pensado para buscar un determinado término de búsqueda en el archivo(s) elegido. Si la búsqueda se ha realizado con éxito, el programa mostrará la línea en la que se ha encontrado el término de búsqueda, así como el nombre del archivo.

-i

Ignora las diferencias entre mayúsculas y minúsculas

-l

Da sólo el nombre del archivo correspondiente y no el número de línea

-n

Numera, además, las líneas donde se encontró el texto buscado

-l

Da una lista de los archivos que no contengan el término de búsqueda

diff[opción(es)]archivo1archivo2

diff fue creado para comparar el contenido de dos archivos cualesquiera y mostrar en una lista las líneas en las que se hayan detectado diferencias.

Los programadores utilizan con frecuencia este comando para enviar los cambios realizados en sus programas sin necesidad de enviar todo el texto fuente.

-q

Indica tan sólo si existen diferencias entre el contenido de los dos archivos seleccionados.

Comandos del sistema  

Posted by Danny in

Administración de archivos

ls[opción(es)][archivo(s)]

Si introduce ls sin más datos ni parámetros, podrá ver un listado resumido con el contenido del directorio en el que se encuentre en ese momento.

-l

lista detallada,

-a

para ver los archivos ocultos.

cp[opción(es)]archivo_original archivo_copia

Crea una copia de archivo_original en archivo_copia.

-i

Espera, dado el caso, una confirmación antes de sobreescribir un archivo_copia existente.

-r

Copia recursiva (incluyendo subdirectorios)

mv[opción(es)]archivo_origenarchivo_destino

Hace una copia de archivo_origen en archivo_destino y a continuación borra el archivo original.

-b

Crea una copia de seguridad antes de desplazar archivo_origen.

-i

Espera, dado el caso, una confirmación antes de sobreescribir un archivo_destino existente.

rm[opción(es)]archivo(s)

Borra el archivo(s) indicado del sistema de archivos. Los directorios no serán borrados con el comando rm a menos que se haya especificado de forma explícita a través del parámetro -r.

-r

Borra, si existen, los subdirectorios existentes

-i

Espera una confirmación antes de borrar cada uno de los archivos

ln[opción(es)]archivo_origenarchivo_destino

Crea en archivo_destino una referencia cruzada dentro del sistema de archivos, (Link) del archivo_origen con otro nombre. Normalmente este enlace apunta directamente a la posición de archivo_origen dentro de un sistema de archivos. Si por el contrario se ejecuta el comando ln con la opción -s, se creará un denominado enlace simbólico que apuntará exclusivamente a la rama de archivo_origen y que por esa razón podrá ser usado fuera de los límites del sistema de archivos.

-s

Crea un enlace simbólico.

cd[opción(es)]directorio

Cambia el directorio actual. Si sólo se introduciecd, se desplazará al directorio home.

mkdiropción(es)]directorio

Crea un nuevo directorio.

rmdir[opción(es)]directorio

Borra el directorio, pero sólo si está vacío.

chown[opción(es)]nombreusuario.grupoarchivo(s)

Cambia el dueño de un archivo, otorgándole la propiedad a nombreusuario.

-R

Cambia los archivos y directorios en todos los subdirectorios.

chgrp[opción(es)]nombregrupoarchivo(s)

Cambia el nombre del grupo al que pertenece el archivo por nombregrupo. El dueño del archivo sólo puede cambiar este valor si pertenece tanto al grupo al que pertenecía el archivo hasta ahora como al nuevo grupo al que pertenecerá el archivo.

chmod[opciones]modoarchivo(s)

Cambia los permisos de acceso a uno o varios archivos.

El parámetro modo tiene tres partes: grupo, acceso y tipo de acceso. grupo acepta los siguientes caracteres:

u

para el usuario user,

g

para el grupo group,

o

para todos los demás: others.

+ y - se utilizan para permitir o denegar el acceso, de manera que: el símbolo + permitirá el acceso y el símbolo - lo denegará.

Los tipos de acceso son controlados por las siguientes opciones:

r

para lectura read,

w

para escritura write,

x

Ejecutar archivos o cambiar de directorio eXecute.

s

Setuid-Bit; el programa se ejecutará con los privilegios del propietario del archivo.

gzip[parámetros]archivo(s)

Este programa comprime el contenido de archivos mediante unos complicados procesos matemáticos. El nombre del archivo comprimido termina con .gz y debe ser descomprimido antes de poder ser usado nuevamente. Si desea comprimir más de un archivo o directorios completos, deberá usar además el comando tar.

-d

Descomprime el archivo comprimido gzip, recuperando éste su tamaño original y pudiendo volver a ser utilizado de forma normal (corresponde al comando gunzip).

taropcionesnombrepaquetearchivo(s)

El comando tar agrupa uno o (normalmente) más archivos en un llamado paquete, que luego se puede p.ej. comprimir.

tar es un comando muy complejo, que ofrece una gran cantidad de opciones. A continuación le enseñamosalgunas de las combinaciones más usadas.

-f

La información generada por el proceso se escribe en un archivo y no se muestra en la pantalla, como está previsto por defecto file.

-c

Crea un nuevo archivo tar create.

-r

Agrega archivos a un paquete existente.

-t

Muestra el contenido de un paquete.

-u

Agrega archivos al paquete, pero sólo si estos son más recientes que los existentes.

-x

Desempaqueta archivos de un paquete (extrae)

-z

Comprime con gzip el paquete generado.

-j

Comprime con bzip2 el paquete generado.

-v

Da los nombres de los archivos procesados.

Los archivos creados mediante tar terminan en .tar. Cuando el archivo tar ha sido además comprimido con gzip, la terminación será .tar.gz, con bzip2, será .tar.bz2.

Encontrará aplicaciones de ejemplo en el apartado

locateprueba

Con el comando locate se puede averiguar en qué directorio se encuentra el archivo especificado. Para ello también se puede usar los Comodines. El programa trabaja muy rápido ya que no busca en el sistema de archivos, sino en una base de datos propia creada a tal efecto. Éste es el mayor problema de estos comandos rápidos, ya que los archivos creados posteriormente a la última actualización de esta base de datos, no se tienen en cuenta.

Como root puede crear esta base de datos usando el comando updatedb.

updatedb[opción(es)]

Con este comando se puede actualizar de forma sencilla la base de datos requerida por locate. Para conseguir que todos los archivos se tengan en cuenta, se debe ejecutar el comando como root. También es posible, añadiendo al final del comando el símbolo &, que el programa se ejecute en segundo plano, y así poder seguir trabajando mientras se produce la actualización . (updatedb &).

find[Opción(en)]

Con el comando find puede buscar un archivo en un determinado directorio. El primer argumento representa el directorio desde el que debe comenzar la búsqueda. La opción -name requiere una cadena de búsqueda, en la que también se permite el uso de Comodines. Al contrario que locate, find busca en el directorio especificado, no en una base de datos.

Manejo de Directorios y Archivos  

Posted by Danny in

Creación de directorios:

Para esto usaremos el comando "mkdir" como en DOS seguido del nombre del directorio a crear.

mkdir

Copiado de archivos

La orden "cp" copia los ficheros listados en la línea de comandos al fichero o directorio pasado como ultimo argumento.

cp

Mover archivos

Tanto para mover como para renombrar archivos o directorio usaremos el comando "mv" de idéntica manera a "cp" solo que en esta caso no se preservara el origen.

mv

Borrado de archivos

Para borrar se usa "rm" que viene de remove. Se usa con un parámetro que es el nombre del fichero a borrar o una lista de ellos. También lo podemos usar para borrar directorios completos con el parámetro "-r" a hay que ser muy prudente y cuidadoso con este comando ya que podemos hacer macanas.

rm

Mirando los ficheros

Las ordenes "more", "cat" y "less" son usadas para ver el contenido de ficheros. More y less muestran el fichero pantalla a pantalla mientras que cat lo muestra entero de una vez.

more
less
cat

El sistema de ficheros y la jerarquía de directorios.

Primero cambie al directorio raiz (cd /) y ejecute ls -F. Probablemente vera estos directorios:

bin, dev, etc, home, install, lib, mnt, proc, root, tmp, user, usr, y var.

La distribución de directorios y archivos es Unix es muy ordenada y distinta que en DOS, veamos para que usamos cada directorio.

/bin: es la abreviación de "binaries", o ejecutables. Es donde residen la mayoría de los programas esenciales del sistema.
/dev: los "ficheros" en /dev son conocidos como controladores de dispositivo (device drivers)_son usados para acceder a los dispositivos del sistema y recursos, como discos duros, modems, memoria, etc
/etc
: contiene una serie de ficheros de configuración del sistema. Estos incluyen /etc/passwd (la base de datos de usuarios), /etc/rc (guiones de inicialización del sistema), etc.
/sbin: se usa para almacenar programas esenciales del sistema, que usara el administrador del sistema.
/var: contiene directorios que a menudo cambian su tamaño o tienden a crecer. Muchos de estos directorios solían residir en /usr, por ejemplo en /var/adm encontraremos varios ficheros de interés para el administrador del sistema, específicamente históricos del sistema, los cuales recogen errores o problemas con el sistema.
/usr/src: contiene el código fuente (programas por compilar) de varios programas de su sistema. El mas importante es /usr/src/linux, el cual contiene el código fuente del kernel de Linux.
/usr/local: es el directorio donde normalmente pondremos nuestras aplicaciones.
/usr/include: contiene los ficheros de cabecera para el compilador de C. Estos ficheros (la mayoría de los cuales terminan en .h, de "header") declaran estructuras de datos, subrutinas y constantes usados en la escritura de programas en C. Los ficheros que se encuentran en /usr/include/sys son generalmente usados en la programación de en UNIX a nivel de sistema. Si esta familiarizado con el lenguaje de programación C, aquí encontrara los ficheros de cabecera como stdio.h, el cual declara funciones como printf().
/usr/bin: es el deposito real de programas del sistema UNIX. Contiene la mayoría de los programas que no se encuentran en otras partes como /bin.
/usr/X11R6: contiene todos los ejecutables de X Window, ficheros de configuración y de soporte.
/usr: es un directorio muy importante. Contienen una serie de subdirectorios que contienen a su vez algunos de los mas importantes y útiles programas y ficheros de configuración usados en el sistema.
/proc: es un "sistema de ficheros virtual". Los ficheros que contiene realmente residen en memoria, no en un disco. Hacen referencia a varios procesos que corren en el sistema, y le permiten obtener información acerca de que programas y procesos están en ejecución.
/lib: contiene las imagines de las librerías compartidas. Estos ficheros contienen código que compartirían muchos programas.
/home: contiene los directorios "home" de los usuarios. Por ejemplo, /home/juan es el directorio del usuario "juan".

Ejercicios prácticos  

Posted by Danny in

Veamos algunos ejercicios prácticos sobre disquetes y CDROM.

1. Averigüe el formato de disquetes que puede usar en el sistema Linux y consiga un disquete con tal formato.

2. Ponga el disquete en la unidad, montela y copie algún archivo (por ejemplo una gráfica).

3. Desmonte la unidad y saque el disquete.

4. Opcional. Existe otra forma de emplear disquetes que no requiere montarlos ni desmotarlos: con las herramientas mtools. Consulte la documentación de estas herramientas con el comando info mtools desde un intérprete de comandos y úselas.

Soluciones.-

1. Averigüe el formato de disquetes que puede usar en el sistema Linux que tiene disponible y consiga un disquete con tal formato.

Puede preguntar al administrador o eventualmente revisar /etc/fstab. Revise el tipo de disquete (puede ser auto, ext2 o vfat junto al dispositivo del disquete (normalmente /dev/fd0).

2. Ponga el disquete en la unidad, montela y copie algún archivo (por ejemplo una gráfica).

mount /floppy

cp /usr/share/pixmaps/uno.jpg /floppy

3. Desmonte la unidad y saque el disquete.

Aviso: no olvide desmontar la unidad, antes de sacar un disquete o de lo contrario puede perder información.

umount /floppy

4. Opcional. Existe otra forma de emplear disquetes que no requiere montarlos ni desmotarlos: con las herramientas mtools. Consulte la documentación de estas herramientas con el comando info mtools desde un intérprete de comandos y úselas.

Para copiar el archivo ~/carta.txt a la primera unidad de disquetel mcopy ~/carta.txt a:. Para eliminar doc.txt se usa mdel a:doc.txt, para crear un directorio mmd a:midir; y para formatear el disquete: mformat a:

Disquetes y CDRom  

Posted by Danny in

Para transferir información de un computador a otro; o para tener copias de respaldo de alguna información que tenga en su espacio personal, puede emplear disquetes. En los sistemas Unix, antes de poder usar un disquete, es necesario "montar" el sistema de archivos del disquete en el árbol de directorios. Para realizar esta operación puede, bien usar el icono de disquete que encuentra en su escritorio y el botón derecho del ratón o, desde un intérprete de comandos teclear:

mount /floppy

Se trata de un comando que puede emplear para montar un disquete (eventualmente en lugar de esto puede emplear un icono en su escritorio).

De forma análoga, antes de sacar un disquete debe desmontar la unidad; esto también lo podrá hacer con el icono del disquete y el botón derecho del ratón o, desde un intérprete de comandos con el comando:

umount /floppy

Una vez montado un disquete, puede leer o escribir información en el mismo a través del directorio /floppy. Si se fija, cuando desmonta el disquete no se ve información en ese directorio.

Linux puede leer y escribir disquetes formateados para otros sistemas operativos, así que, puede usar disquetes que emplea, por ejemplo, en Windows. Si desea formatear un disquete con un formato que pueda emplear en Windows o DOS emplee el comando mformat desde un intérprete de comandos.

Avisos.-

-Al formatear un disquete se pierde la información que antes hubiera.

-El comando para formatear un disquete se puede emplear tanto en Linux como en Windows.

-Si la distribución de Linux que está usando es Debian, para poder emplear la unidad de disquete, el administrador debe otorgarle permiso; agregándolo al grupo floppy. Sin tal permiso, las instrucciones presentadas en esta guía no le serán de utilidad.

-Si su computador cuenta con la unidad de CDROM y su login, tiene permiso para usarlo, siempre y cuando pertenezca a los grupos disk y cdrom. También puede montar CDROMs con datos y escuchar CDs con música (claro puede escucharlos mientras tenga tarjeta de sonido configurada, parlantes o audífonos y su login esté en el grupo audio). Para montar un CD con datos emplee el comando mount /cdrom y consulte la información en el directorio /cdrom. Si desea escuchar la música de un CD busque un programa apropiado entre los menús de Gnome.

Lecturas recomendadas.- Como complemento a esta lectura puede consultar de la "Guía de usuario de GNOME" la sección "Montando y desmontando dispositivos": http://www.croftj.net/~barreiro/spanish/gnome-es/gnome-users-guide/new-mount.html.

BlogESfera Directorio de Blogs Hispanos - Agrega tu Blog