jueves, marzo 15, 2007

Configuracion de Red

Introducción
Configurar los parámetros de red en una estación de trabajo GNU/Linux o un servidor no es realmente complicado. Solamente requerirá de algunos conocimientos básicos sobre redes y cualquier editor de texto simple.

Procedimientos
Detección y configuración del sustento físico (hardware).
La detección del sustento físico (hardware) es realizada o bien por el programa de instalación, o bien a través de kudzu, un servicio que inicia con el sistema y que se encarga de detectar y configurar los dispositivos de sustento físico (hardware) instalados. En términos generales, no hace falta configurar parámetro alguno mientras los dispositivos de red sean compatibles y exista un controlador para la versión del núcleo (kernel) ejecutado.

Si acaso no fuese detectado el dispositivo de red debido a la ausencia de kudzu, es posible configurar todo manualmente. La marca de la tarjeta de red es lo que menos interesa, lo que es importante es que se determine con exactitud que circuito integrado auxiliar (chipset) utiliza la tarjeta de red. Esto puede determinarse examinando físicamente la tarjeta de red o bien examinando a detalle la salida en pantalla que se obtiene al ejecutar el siguiente mandato:

lspci | grep Ethernet

Lo anterior devuelve una salida similar a la siguiente (en el caso de una tarjeta 3Com 905 C)

Ethernet controller: 3Com Corporation 3c905C-TX [Fast Etherlink] (rev 120).

Debe modificarse con un editor de textos el fichero /etc/modules.conf (núcleos de la serie 2.4) o /etc/modprobe.conf (núcleos de la serie 2.6). Debe verificarse que el módulo correspondiente a la tarjeta de red realmente este especificado de forma correcta. Ejemplo:

alias eth0 3c59x

Si se realizó alguna edición de este fichero, deberá de ejecutarse el siguiente mandato, a fin de actualizar dependencias:

depmod -a

Si utiliza un núcleo de la serie 2.4.x o 2.6, la lista de módulos existentes en el sistema que se pueden utilizar para distintos circuitos integrados auxiliares (chipset) de distintos modelos de tarjetas de red se puede obtener listando el contenido del directorio /lib/modules/[versión del núcleo]/kernel/drivers/net/. Ejemplo:

ls /lib/modules/2.6.9-42.0.2.EL/kernel/drivers/net/

Asignación de parámetros de red.
Nombre del anfitrión (HOSTNAME).
Debe modificarse con un editor de textos el fichero /etc/hosts, y debe verificarse que este diferenciado el eco o retorno del sistema del nombre del sistema, el cual deberá estar asociado a una de las direcciones IP, específicamente la que esté asociado a dicho nombre en el servidor del sistema de nombres de dominio (DNS) si se cuenta con uno en la red local. Ejemplo:

127.0.0.1 localhost.localdomain localhost
192.168.1.50 nombre.dominio nombre

Se debe establecer un nombre para el sistema. Este deberá ser un FQDN (acrónimo de Fully Qualified Domain Name o Nombre de Dominio Plenamente Calificado) resuelto por un servidor de nombres de domino (DNS) o bien. En el caso de sistemas sin conexión a red o sistemas caseros, sea resuelto localmente en el fichero /etc/hosts. De tal modo, el nombre del anfitrión (hostname) del sistema se definirá dentro del fichero /etc/sysconfig/network del siguiente modo:

NETWORKING=yes
HOSTNAME=nombre.dominio

Dirección IP, máscara de subred y puerta de enlace.
Debe modificarse con cualquier editor de textos, y verificar que sus parámetros de red sean los correctos, el fichero localizado en la ruta /etc/sysconfig/network-scripts/ifcfg-eth0. Ejemplo:

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.50
NETMASK=255.255.255.0
GATEWAY=192.168.1.254

Los parámetros anteriores son proporcionados por el administrador de la red local en donde se localice la máquina que está siendo configurada, o bien definidos de acuerdo a una planificación previamente establecida. El administrador de la red deberá proporcionar una dirección IP disponible (IPADDR) y una máscara de la subred (NETMASK).

Servidores de nombres.
Debe modificarse con un editor de textos /etc/resolv.conf, donde se establecerán los servidores del sistema de resolución de nombres de dominio (DNS). Ejemplo:

nameserver 192.168.1.254
nameserver 192.168.1.1

Agregar encaminamientos (rutas) adicionales.
Si se requiere establecer encaminamientos adicionales para obtener conectividad con otras redes, se pueden generar ficheros para cada interfaz que sea necesario, en donde se establecen los valores para puerta de enlace, red a la que se quiere acceder y la máscara de subred correspondiente. Los ficheros se deben generar dentro del directorio /etc/sysconfig/network-scripts/ como route-[interfaz] y deben llevar el siguiente formato:

GATEWAY0=xxx.xxx.xxx.xxx
ADDRESS0=xxx.xxx.xxx.xxx
NETMASK0=xxx.xxx.xxx.xxx

Por citar un ejemplo, imaginemos que nos encontramos dentro de la red 192.168.1.0 y se requiere establecer conectividad con las redes 192.168.2.0 y 192.168.3.0, con máscaras 255.255.255.0, a través de las puertas de enlace o enrutadores o encaminadores con dirección IP 192.168.2.1 y 192.168.3.1, correspondientemente para cada red citada, a través de la primera interfaz Ethernet del sistema (eth0). La configuración de /etc/sysconfig/network-scripts/route-eth0 sería la siguiente:

GATEWAY0=192.168.2.1
ADDRESS0=192.168.2.0
NETMASK0=255.255.255.0
GATEWAY1=192.168.3.1
ADDRESS1=192.168.3.0
NETMASK1=255.255.255.0

Función de Reenvío de paquetes para IP versión 4.
Si se tiene planeado implementar un NAT o DNAT, se debe habilitar el reenvío de paquetes para IP versión 4. Esto se realiza en el fichero /etc/sysctl.conf cambiando net.ipv4.ip_forward = 0 por net.ipv4.ip_forward = 1:

net.ipv4.ip_forward = 1

Comprobaciones.
Después de hacer configurado todos los parámetros de red deseados, solo deberá de ser reiniciado el servicio de red, ejecutando lo siguiente:

service network restart

Basta solamente comprobar si hay realmente conectividad. Puede ejecutarse el mandato ping hacia cualquier dirección de la red local para tal fin.

ping 192.168.1.254

Las interfaces y la información de las mismas se puede examinar utilizando:

ifconfig

Los encaminamientos se pueden comprobar utilizando:

route -n

Para comprobar si hay resolución de nombres, se puede realizar una consulta hacia los servidores DNS definidos para el sistema, utilizando:

host algún.dominio

Alta de direcciones IP virtuales
El alta de direcciones IP es verdaderamente simple. Basta definir solamente la dirección IP, máscara de subred y el nombre del dispositivo. El fichero se genera igualmente con el nombre del dispositivo con el prefijo ifcfg-. Ejemplo del contenido del fichero /etc/sysconfig/network-scripts/ifcfg-eth0:0 que corresponde al primer dispositivo virtual del primer dispositivo ethernet:

DEVICE=eth0:0
IPADDR=192.168.2.254
NETMASK=255.255.255.0

La comprobación, al ejecutar el mandatoifconfig, deberá regresar algo como lo siguiente

eth0 Link encap:Ethernet HWaddr 00:01:02:03:04:05
inet addr:192.168.1.254 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:264830 errors:0 dropped:0 overruns:0 frame:0
TX packets:255396 errors:0 dropped:0 overruns:0 carrier:0
collisions:348 txqueuelen:1000
RX bytes:42375618 (40.4 MiB) TX bytes:20306080 (19.3 MiB)
Interrupt:11 Base address:0xd000

eth0:0 Link encap:Ethernet HWaddr 00:01:02:03:04:05
inet addr:192.168.2.254 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:11 Base address:0xd000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2590 errors:0 dropped:0 overruns:0 frame:0
TX packets:2590 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3327899 (3.1 MiB) TX bytes:3327899 (3.1 MiB)

La función Zeroconf.
De modo predeterminado, y a fin de permitir la comunicación entre dos diferentes sistemas a través de un cable RJ45 cruzado (crossover), el sistema tiene habilitado Zeroconf, también conocido como Zero Configuration Networking o Automatic Private IP Addressing (APIPA). Es un conjunto de técnicas que automáticamente crean una dirección IP utilizable sin necesidad de configuración de servidores especiales. Permite a usuarios sin conocimientos de redes conectar computadoras, impresoras en red y otros artículos entre si.

Sin Zeroconf los usuarios sin conocimientos tendrían que configurar servidores especiales como DHCP y DNS para poder establecer conectividad entre dos equipos.

Estando habilitado Zeroconf se mostrará un registro en la tabla de encaminamientos para la red 169.254.0.0 al utilizar el mandato route -n, devolviendo una salida similar a la siguiente:

192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

Si se desea desactivar Zeroconf, solo bastará añadir en el fichero /etc/sysconfig/network el parámetro NOZEROCONF con el valor yes:

NETWORKING=yes
HOSTNAME=nombre.dominio
NOZEROCONF=yes

Al terminar, solo hay que reiniciar el servicio de red para que surtan efecto los cambios y comprobar de nuevo con el mandato route -n que la ruta para Zeroconf ha desaparecido:

192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

Una vez hecho lo anterior, existen dos servicios en el sistema en CentOS, White Box y Red Hat™ Enterprise Linux 4, que se pueden desactivar puesto que sirven para establecer la comunicación a través de Zeroconf, estos son mDNSResponder y nifd. Desactivar estos dos servicios ahorrará tiempo en el arranque y se consumirán algunos pocos menos recursos de sistema.

chkconfig nifd off
chkconfig mDNSResponder off
service nifd stop
service mDNSResponder stop

Muchas aplicaciones y componentes para el modo gráfico dependen de Zeroconf para su correcto funcionamiento. Por tanto, no es conveniente desactivar este soporte si se va a hacer uso de el modo gráfico.

Para más detalles acerca de Zeroconf, puede consultarla información disponible en:

http://www.zeroconf.org/
http://en.wikipedia.org/wiki/Zeroconf
Desactivando el soporte para IPv6.
IPv6 o Protocolo de Internet versión 6 (Internet Protocol Version 6) es un estándar del Nivel de Red de TCP/IP orientado hacia datos utilizada por dispositivos electrónicos para transmitir datos a través de una Interred (Internetworking) creado por Steve Deering y Craig Mudge mientras trabajaban para el Centro de Investigaciones de Palo Alto de Xerox, o Xerox Palo Alto Research Center (Xerox PARC).

Sucediendo a IPv4, es la segunda versión de Protocolo de Internet en ser formalmente adoptada para uso general. IPv6 tiene como objetivo solucionar el problema concerniente al limite de direcciones IP que se pueden asignar a través de IPv4, las cuales tendrán mucha demanda en un futuro no muy lejano cuando se incrementen el número de teléfonos móviles y otros dispositivos de comunicación que ofrezcan acceso hacia Internet.

IPv4 solo incluye soporte para 4,294 mil millones (4,294 x 109) de direcciones IP, lo cual es adecuado para asignar una dirección IP a cada persona del planeta. IPv6 incluye soporte para 340 undecillones (340 x 1038) de direcciones IP. Se espera que IPv4 siga siendo útil hasta alrededor del año 2025, lo cual dará tiempo a corregir errores y problemas en IPv6.

Mientras no se implemente de modo formal IPv6, el sistema cargará un controlador que hará que algunas aplicaciones manifiesten un acceso lento hacia Internet o problemas de conectividad. Si no se va a utilizar IPv6 lo mejor es desactivar éste del sistema. Edite el fichero /etc/modprobe.conf y añada lo siguiente:

alias ipv6 off
alias net-pf-10 off

Al terminar utilice:

depmod -a

Reinicie el sistema a fin de que surtan efecto los cambios.

reboot

Ejercicios.
Encaminamientos estáticos.
Este ejercicio considera lo siguiente:

Se tiene dos equipos de computo con GNU/Linux instalado en ambos.
pc1.dominio tiene una dirección IP 192.168.0.101 con máscara de subred 255.255.255.0 en el dispositivo eth0. Una dirección IP 10.0.0.101 con máscara de subred 255.0.0.0 en el dispositivo eth1.
pc2.dominio tiene una dirección IP 192.168.0.102 (o cualquiera otra en el mismo segmento) con máscara de subred 255.255.255.0 en el dispositivo eth0. No tiene otros dispositivos de red activos.
Visualice desde pc2.dominio los registros de la tabla de encaminamiento.

route -n

Obtendrá una salida similar a la siguiente:

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0

Intente ejecutar ping hacia la dirección recién añadida en pc1.dominio.

ping -c 3 10.0.0.101

El resultado esperado es que ping devuelva que hay 100% de pérdida de paquetes.

PING 10.0.0.101 (10.0.0.101) 56(84) bytes of data.

--- 10.0.0.101 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 1999ms

Proceda a añadir el encaminamiento que corresponde especificando la red, mascará de subred y puerta de enlace necesarios para llegar hacia 10.0.0.101.

route add \
-net 10.0.0.0 \
netmask 255.0.0.0 \
gw 192.168.0.101 \
eth0

Visualice de nuevo los registros de la tabla de encaminamiento.

route -n

Obtendrá una salida similar a la siguiente:

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 192.168.0.1 255.0.0.0 UG 0 0 0 eth0

Intente ejecutar ping hacia la dirección recién añadida en pc1.dominio.

ping -c 3 10.0.0.101

El resultado esperado es que ping responda al ping, obteniéndose una salida similar a la siguiente:

PING 10.0.0.101 (10.0.0.101) 56(84) bytes of data.
64 bytes from 10.0.0.101: icmp_seq=0 ttl=64 time=0.453 ms
64 bytes from 10.0.0.101: icmp_seq=1 ttl=64 time=0.368 ms
64 bytes from 10.0.0.101: icmp_seq=2 ttl=64 time=0.347 ms

--- 10.0.0.101 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.347/0.389/0.453/0.048 ms, pipe 2

Reinicie el servicio de red, visualice de nuevo los registros de la tabla de encaminamiento y compruebe que ya no hay respuesta al hacer ping hacia 10.0.0.101 porque el registro en la tabla de encaminamiento fue eliminado al reiniciar el servicio de red.

service network restart
route -n
ping -c 3 10.0.0.101

Para hacer permanente el registro en la tabla de encaminamiento utilice un editor de texto el fichero /etc/sysconfig/network-scripts/route-eth0 y ponga el siguiente contenido:

ADDRESS0=10.0.0.0
NETMASK0=255.0.0.0
GATEWAY0=192.168.0.101

Al terminar reinicie el servicio de red.

service network restart

Visualice nuevamente los registros de la tabla de encaminamiento.

route -n

Lo anterior debe devolver una salida similar a la siguiente:

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 192.168.0.1 255.0.0.0 UG 0 0 0 eth0

Intente ejecutar ping hacia la dirección recién añadida en pc1.dominio.

ping -c 3 10.0.0.101

Reinicie el servicio de red, visualice de nuevo los registros de la tabla de encaminamiento y compruebe de nuevo que hay respuesta al hacer ping hacia 10.0.0.101.

service network restart
route -n
ping -c3 10.0.0.101

Direcciones IP virtuales.
Este ejercicio considera lo siguiente:

Se tiene dos (o más) equipos de computo con GNU/Linux instalado en éstos.
pc1.dominio tiene una dirección IP 192.168.0.101 con máscara de subred 255.255.255.0 en el dispositivo eth0. No tiene otros dispositivos de red activos.
pc2.dominio tiene una dirección IP 192.168.0.102 con máscara de subred 255.255.255.0 en el dispositivo eth0. No tiene otros dispositivos de red activos.
Visualice las interfaces de red activas en el sistema.

ifconfig

Lo anterior debe devolver una salida similar a la siguiente, donde se mostrará que solo están activas la interfaz eth0 y la correspondiente al retorno del sistema (loopback):

eth0 Link encap:Ethernet HWaddr 00:01:02:03:04:05
inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:24784 errors:0 dropped:0 overruns:0 frame:0
TX packets:23366 errors:0 dropped:0 overruns:0 carrier:0
collisions:112 txqueuelen:1000
RX bytes:15323317 (14.6 MiB) TX bytes:5794288 (5.5 MiB)
Interrupt:11 Base address:0xd000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1337 errors:0 dropped:0 overruns:0 frame:0
TX packets:1337 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:125102 (122.1 KiB) TX bytes:125102 (122.1 KiB)

Utilice ping para comprobar si acaso hay alguna respuesta desde la interfaz virtual eth0:0.

ping -c3 192.168.1.101

Lo anterior debe devolver una salida similar a la siguiente:

PING 192.168.1.101 (192.168.1.101) 56(84) bytes of data.

--- 192.168.1.101 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 1999ms

Configure a través de ifconfig los parámetros de la interfaz virtual eth0:0. Si la sintaxis fue correcta, el sistema no deberá devolver mensaje alguno.

ifconfig eth0:0 192.168.1.101 netmask 255.255.255.0

Utilice ping para comprobar que haya respuesta desde la interfaz virtual eth0:0.

ping -c3 192.168.1.101

Lo anterior debe devolver una salida similar a la siguiente:

PING 192.168.1.101 (192.168.1.101) 56(84) bytes of data.
64 bytes from 192.168.1.101: icmp_seq=0 ttl=64 time=0.453 ms
64 bytes from 192.168.1.101: icmp_seq=1 ttl=64 time=0.368 ms
64 bytes from 192.168.1.101: icmp_seq=2 ttl=64 time=0.347 ms

--- 192.168.1.101 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.347/0.389/0.453/0.048 ms, pipe 2

Visualice las interfaces de red activas en el sistema.

ifconfig

Lo anterior debe devolver una salida similar a la siguiente, donde se mostrará que está activa la interfaz eth0:0 junto con la interfaz eth0 y la correspondiente al retorno del sistema (loopback):

eth0 Link encap:Ethernet HWaddr 00:01:02:03:04:05
inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:24784 errors:0 dropped:0 overruns:0 frame:0
TX packets:23366 errors:0 dropped:0 overruns:0 carrier:0
collisions:112 txqueuelen:1000
RX bytes:15323317 (14.6 MiB) TX bytes:5794288 (5.5 MiB)
Interrupt:11 Base address:0xd000

eth0:0 Link encap:Ethernet HWaddr 00:01:02:03:04:05
inet addr:192.168.1.101 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:11 Base address:0xd000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1337 errors:0 dropped:0 overruns:0 frame:0
TX packets:1337 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:125102 (122.1 KiB) TX bytes:125102 (122.1 KiB)

Reinicie el servicio de red.

service network restart

Utilice ping para comprobar si aún hay respuesta desde la interfaz virtual eth0:0.

ping -c3 192.168.1.101

Lo anterior debe devolver una salida similar a la siguiente:

PING 192.168.1.101 (192.168.1.101) 56(84) bytes of data.

--- 192.168.1.101 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 1999ms

Visualice las interfaces de red activas en el sistema.

ifconfig

Lo anterior debe devolver una salida similar a la siguiente, donde se mostrará que ya no está activa la interfaz eth0:0, y solo se muestran activas la interfaz eth0 y la correspondiente al retorno del sistema (loopback):

eth0 Link encap:Ethernet HWaddr 00:01:02:03:04:05
inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:24784 errors:0 dropped:0 overruns:0 frame:0
TX packets:23366 errors:0 dropped:0 overruns:0 carrier:0
collisions:112 txqueuelen:1000
RX bytes:15323317 (14.6 MiB) TX bytes:5794288 (5.5 MiB)
Interrupt:11 Base address:0xd000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1337 errors:0 dropped:0 overruns:0 frame:0
TX packets:1337 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:125102 (122.1 KiB) TX bytes:125102 (122.1 KiB)

Para hacer permanente la interfaz de red virtual en eth0:0 utilice un editor de texto el fichero /etc/sysconfig/network-scripts/ifcfg-eth0:0 y ponga el siguiente contenido (¡Respete mayúsculas y minúsculas!):

DEVICE=eth0:0
IPADDR=192.168.1.101
NETMASK=255.255.255.0

Reinicie el servicio de red.

service network restart

Visualice las interfaces de red activas en el sistema.

ifconfig

Lo anterior debe devolver una salida similar a la siguiente, donde nuevamente se mostrará que está activa la interfaz eth0:0 junto con la interfaz eth0 y la correspondiente al retorno del sistema (loopback):

eth0 Link encap:Ethernet HWaddr 00:01:02:03:04:05
inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:24784 errors:0 dropped:0 overruns:0 frame:0
TX packets:23366 errors:0 dropped:0 overruns:0 carrier:0
collisions:112 txqueuelen:1000
RX bytes:15323317 (14.6 MiB) TX bytes:5794288 (5.5 MiB)
Interrupt:11 Base address:0xd000

eth0:0 Link encap:Ethernet HWaddr 00:01:02:03:04:05
inet addr:192.168.1.101 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:11 Base address:0xd000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1337 errors:0 dropped:0 overruns:0 frame:0
TX packets:1337 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:125102 (122.1 KiB) TX bytes:125102 (122.1 KiB)

Utilice ping para comprobar que haya respuesta desde la interfaz virtual eth0:0.

ping -c3 192.168.1.101

Lo anterior debe devolver una salida similar a la siguiente:

PING 192.168.1.101 (192.168.1.101) 56(84) bytes of data.
64 bytes from 192.168.1.101: icmp_seq=0 ttl=64 time=0.453 ms
64 bytes from 192.168.1.101: icmp_seq=1 ttl=64 time=0.368 ms
64 bytes from 192.168.1.101: icmp_seq=2 ttl=64 time=0.347 ms

--- 192.168.1.101 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.347/0.389/0.453/0.048 ms, pipe 2

La interfaz eth0:0 estará activa la siguiente vez que inicie el sistema operativo con la dirección IP y máscara de subred asignados.

Comandos basicos en Linux

Introducción.
Por favor siga los procedimientos al pie de la letra.

Procedimientos.
Ingrese al sistema como usuario (fulano).

Una vez que ha ingresado al sistema, realice lo siguiente:

pwd

Lo anterior le mostrará la ruta actual donde se localiza (/home/fulano).

Realice lo siguiente:

cd /usr/local
pwd

Lo anterior lo cambiará al directorio /usr/local y le mostrará la ruta actual.

Realice lo siguiente:

cd
pwd

Lo anterior lo regresará a /home/fulano/ mostrará que ahora se localiza en el directorio /home/fulano/.

Realice lo siguiente:

ls /usr/local

Lo anterior mostrará el contenido del directorio /usr/local y además mostrará que no es necesario cambiarse a un directorio en particular para ver su contenido.

Realice lo siguiente:

ls
ls -a

Lo anterior primeramente mostrará que aparentemente no hay contenido en el directorio /home/fulano; después se mostrará lo siguiente y que en realidad si hay contenido; los ficheros y directorios de convierten a ocultos al renombrarles y ponerles un punto al inicio.

.bash_logout .bash_profile .bashrc

Realice lo siguiente:

ls -la

Lo anterior deberá de mostrar todo el contenido de /home/fulano y mostrará además los atributos y permisos:

drwxr-xr-x 2 fulano fulano 4096 ago 13 00:16 .
drwxr-xr-x 26 root root 8192 ago 29 11:09 ..
-rw-r--r-- 1 fulano fulano 24 dic 11 2003 .bash_logout
-rw-r--r-- 1 fulano fulano 191 dic 11 2003 .bash_profile
-rw-r--r-- 1 fulano fulano 124 dic 11 2003 .bashrc

Realice lo siguiente:

ls --help

Lo anterior le mostrará la ayuda rápida del ls. Pulse simultáneamente en su teclado los botones y y luego pulse simultáneamente en su teclado los botones y ; ésto hará que se desplace la pantalla permitiendo leer toda la información.

Pulse el botón y realice lo siguiente:

man ls

Lo anterior le mostrará el manual en español. Pulse las teclas de y para avanzar en el manual. Pulse la tecla / y a continuación ingrese inmediatamente la palabra «directorio» y luego pulse la tecla :

:/directorio

Lo anterior le mostrará que se ha realizado una búsqueda y resaltado de la palabra «directorio» en el manual de ls. Para salir del manual de ls, pulse la tecla q.

Realice lo siguiente para crear un nuevo directorio:

mkdir ejemplos1

Realice lo siguiente para intentar generar un subdirectorio denominado «uno» dentro del directorio «ejemplos2» (el cual no existe ú;n).

mkdir ejemplos2/uno/

Lo anterior deberá devolver un mensaje de error como el siguiente:

mkdir: no se puede crear el directorio «ejemplos2/uno»: No existe el fichero o el directorio

A fin de poder crear el subdirectorio «uno» dentro del directorio «ejemplos2», es necesario crear primero «ejemplos2». Sin embargo puede indicarle a mkdir que genere toda la ruta añadiendo la opción -p (path):

mkdir -p ejemplos2/uno
ls
ls ejemplos2

Lo anterior creo el directorio «ejemplos2» junto con el subdirectorio «uno» en su interior y mostró que fue creado «ejemplos2» y posteriormente el contenido de «ejemplos2» para verificar que también fue creado «uno».

Ahora copiaremos algunos ficheros para experimentar un poco dentro de esta carpeta utilizando el mandato cp:

cp /etc/fstab /home/fulano/ejemplos1/

Luego vuelva a utilizar el mandato cp de este modo:

cp /etc/passwd /home/fulano/ejemplos1/

Con los dos anteriores procedimientos habrá copiado dos distintos ficheros (/etc/fstab y /etc/passwd) dentro del directorio ejemplos1. Proceda entonces a jugar con estos. Utilice de nuevo el mandato mkdir y genere una carpeta denominada adicional dentro del directorio de ejemplos1.

mkdir /home/fulano/ejemplos1/adicional

Ahora acceda hacia el directorio de ejemplos1 para continuar. Realice lo siguiente:

cd /home/fulano/ejemplos1/

Y ahora proceda a ver el contenido de esta carpeta. Utilice el siguiente mandato:

ls

Observará en la pantalla algo como esto:

[fulano@localhost ejemplos1]$
adicional fstab passwd
[fulano@localhost ejemplos1]$

Ahora está visualizando los ficheros fstab y passwd y el directorio adicional

Mueva uno de estos ficheros dentro del directorio adicional utilizando el mandato mv:

mv fstab adicional

Para ver el resultado, primero vea que ocurrió en el directorio ejemplos1 utilizando de nuevo el mandato ls:

ls

Verá una salida en pantalla similar a la siguiente:

[fulano@localhost ejemplos1]$
adicional passwd
[fulano@localhost ejemplos1]$

Acceda hacia el directorio adicional con el mandato cd

cd adicional

Se observará una salida similar a la siguiente:

[fulano@localhost adicional]$
fstab
[fulano@localhost adicional]$


Regrese hacia el directorio ejemplos1 que se encuentra en el nivel superior utilizando el mandato cd:

cd ../

Ahora proceda a eliminar el fichero passwd que se encuentra en el directorio ejemplos1

rm passwd

Haga lo mismo con fstab, el cual se localiza dentro del directorio adicional:

rm adicional/fstab

Elimine el directorio adicional:

rmdir adicional

Bucles.
A continuación aprenderá a utilizar funciones más avanzadas. En el siguiente caso usted creará respaldos de un conjunto de ficheros de imágenes, asignando a cada uno un nombre distinto al que tenían en su directorio de origen. Primero creará un nuevo directorio:

mkdir ~/respaldos

Realice los siguientes mandatos:

cd /usr/share/pixmaps/
for f in *.png
do
cp $f ~/respaldos/copia-$f
done
cd

Lo anterior realizará la copia en serie de los ficheros dentro de /usr/share/pixmaps/ dentro de ~/respaldos/ anteponiendo en el nombre de las copias la palabra «copia». Mire el contenido del ~/respaldos/ del siguiente modo:

ls ~/respaldos/

En el siguiente caso usted definirá dos variables ($hombre y $mujer) cuyos datos serán obtenidos a partir de un fichero de texto simple (parejas.txt) y obtendrá una salida por cada juego de variables.

cd
echo "Juan Josefina" >> parejas.txt
echo "Pedro Julieta" >> parejas.txt
echo "Pablo Miriam" >> parejas.txt
echo "Jorge Antonia" >> parejas.txt
echo "Ernesto Carmen" >> parejas.txt
while read hombre mujer
do
echo "$hombre es pareja de $mujer"
echo "----------------------------------------"
done < parejas.txt

Aliases.
Realice lo siguiente:

touch algo-nuevo.txt
touch otro-nuevo.txt
cp algo-nuevo.txt otro-nuevo.txt

En lo anterior se crearon con el mandato touch los ficheros algo-nuevo.txt y otro-nuevo.txt y se realizó una copia de algo-nuevo.txt sobreescribiendo otro-nuevo.txt. Note que se sobreescribió a otro-nuevo.txt sin preguntar.

Ejecute ahora lo siguiente:

alias cp="cp -i"
cp algo-nuevo.txt otro-nuevo.txt

En lo anterior se creo un alias denominado cp que corresponde en realidad al mandato cp con la opción -i, la cual corresponde a preguntar si se sobreescriben ficheros regulares destino existentes. Cuando se ejecuta de nuevo el mandato cp, éste lo directamente hace con la opción -i.

Para deshacer el alias sobre el mandato cp, solo basta ejecutar:

unalias cp

Realice lo siguiente para crear un nuevo mandato como alias:

alias mi-mandato="ls -l |less"

Lo anterior crea un alias denominado mi-mandato, el cual corresponderá a ejecutar el mandato ls con la opción -l y además ejecutará como subrutina al mandato less. ejecute mi-mandato del siguiente modo y estudie la salida.

mi-mandato /etc

Lo anterior debe haber mostrado el contenido del directorio /etc utilizando less para poder desplazar cómodamente la pantalla. Para salir de less solo pulse la tecla q.

Los aliases creados perduran hasta que es cerrada la sesión del usuario. Para que cualquier alias sea permanente para un usuario en particular, hay que especificar estos al final del fichero ~/.bash_profile, o bien como root en algún fichero *.sh dentro del directorio /etc/profile.d/ para que sea utilizado por todos los usuarios del sistema. Ejecute el mandato alias para ver la lista de aliases predefinidos en el sistema.

alias

Apagado y reinicio de sistema.
Finalmente, y para concluir la breve lección de mandatos, es importante saber que aunque no se vea nada en pantalla, en Linux®ñempeñan varios procesos en el trasfondo. Estos servicios deben ser finalizados apropiadamente. No es como en MS-DOS, en donde se podía apagar el sistema en cualquier momento. Hay que cerrar el sistema apropiadamente. Para tal fin se utilizan poweroff y reboot.

Para cerrar y apagar el sistema, debe utilizar el siguiente mandato:

poweroff

Para cerrar y reiniciar el sistema, debe utilizarse el siguiente mandato:

reboot

Resumen de mandatos básicos.
Puede y debe obtener mas detalles acerca de estos y otros muchos más mandatos utilizando la opción --help con cualquier casi cualquier mandato. Pude consultar el manual detallado de casi cualquier mandato conocido tecleando man precediendo del mandato a consultar:

man [nombre del mandato]

Para salir de las páginas del manual de mandatos solo teclee q.

Tabla 1. Resumen de mandatos básicos. Si se necesita acceder hacia una carpeta en especial, utilice: cd [ruta exacta o relativa]
Si se necesita crear una nueva carpeta, utilice: mkdir [nombre del directorio]
Si se desea copiar un fichero, utilice: cp [origen] [destino]
Si se desea mover una fichero, utilice: mv [ruta del fichero a mover] [directorio en donde se desea mover]
Si se desea eliminar un fichero, utilice: rm [nombre del fichero o ruta exacta hacia el fichero]
Si se desea eliminar una carpeta, utilice: rmdir [nombre del fichero o ruta exacta hacia el directorio]
Si se desea apagar o reiniciar el sistema, utilice: poweroff y reboot (pueden ser utilizados como usuario)
shutdown [-h -r] [now 1,2,3,4,5,6...] (solo como root

Establecer valores por defecto a usuarios

Procedimientos.
Como root, edite /etc/default/useradd. Encontrará el siguiente contenido:

# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel

Puede cambiar lo valores que considere convenientes, como por ejemplo el intérprete de mandatos a utilizar para las nuevas cuentas que sean creadas en adelante. De modo predefinido el sistema asigna /bin/bash (BASH o Bourne Again Shell) como intérprete de mandatos, sin embargo lo cierto es que si el sistema se utilizará como servidor, lo más conveniente es que se asigne de modo predefinido /sbin/nologin el cual muestra un mensaje respecto a que la cuenta no está disponible y da salida, utilizándose regularmente como intérprete de mandatos de reemplazo para cuentas que han sido deshabilitadas o bien que no tiene porque acceder con intérprete de mandatos al sistema. Cambie SHELL=/bin/bash por SHELL=/sbin/nologin.

# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/sbin/nologin
SKEL=/etc/skel

En adelante todo nuevo usuario que sea dado de alta en el sistema con el mandato useradd sin parámetro alguno, de modo predefinido no podrá acceder al sistema a través de shell, es decir acceso en terminal local o remotamente. Los usuarios con estas características podrán, sin embargo, utilizar cuentas de correo o Samba sin problema alguno.

De modo predefinido las cuentas de usuario del sistema utilizarán como molde al directorio /etc/skel para crear el directorio de inicio de todos los usuarios del sistema. Regularmente, y como mínimo, /etc/skel incluye lo siguiente:

.bash_logout .bash_profile .bashrc .gtkrc

Si, por ejemplo, se desea que cada cuenta de usuario incluya un subdirectorio para carpetas de correo y suscripción a éstas a través del servicio de IMAP, se debe realizar el siguiente procedimiento:

mkdir /etc/skel/mail/touch /etc/skel/mail/Borradorestouch /etc/skel/mail/Enviadostouch /etc/skel/mail/Papelera

Y finalmente generar con el editor de texto el fichero /etc/skel/.mailboxlist que sirve para guardar las suscripciones de carpetas de correo que serán utilizadas por el servicio de IMAP, utilizando el siguiente contenido:

mail/Borradoresmail/Enviadosmail/Papelera

Adicionalmente puede contribuir a transparentar la migración de escritorios de GNOME 1.x, 2.0 y 2.2 hacia versiones posteriores predefiniendo se genere el directorio ~/Desktop/ con un enlace simbólico apuntando hacia éste y el cual se denominará ~/.gnome-desktop/

cd /etc/skel/mkdir Desktopln -s Desktop .gnome-desktop

Crear usuarios en linux

Introducción.
GNU/Linux® es un sistema operativo con muchas características y una de estas es el estar diseñado para ser utilizado por múltiples usuarios. Aún cuando se tenga una PC con un único usuario, es importante recordar que no es conveniente realizar el trabajo diario desde la cuenta de root, misma que solo debe utilizarse para la administración del sistema.

Una cuenta de usuario contiene las restricciones necesarias para impedir que se ejecuten mandatos que puedan dañar el sistema -programas troyanos como el Bliss-, se alteren accidentalmente la configuración del sistema, los servicios que trabajan en el trasfondo, los permisos y ubicación de los archivos y directorios de sistema, etc.

Procedimientos.
Generalmente el paso que procede a una instalación de GNU/Linux® es la creación de cuantas de usuario. Existen distintos métodos, todos son sencillos y permiten crear una cuenta con su propio directorio de trabajo y los archivos necesarios.

Actualmente se existen recursos como el programa instalador de Red Hat™ Linux® y programas que funcionan desde un entorno gráfico, como es Linuxconf y Webmin, y recursos que funcionan en modo de texto o desde una ventana terminal, como son los mandatos tradicionales, useradd y passwd, y algunos otros programas, como YaST y la versión correspondiente de Linuxconf o Webmin.

Creando una cuenta en el modo de texto: useradd y passwd
Este procedimiento puede realizarse de forma segura tanto fuera de X Window® como desde una ventana terminal en el entorno gráfico del que se disponga. Fue el método comúnmente utilizado antes de la aparición de programas como YaST y Linuxconf. Sin embargo aún resulta útil para la administración de servidores, cuando no se tiene instalado X Window®, no se tienen instalados YaST o Linuxconf -o las versiones de estos que se han instalado no trabajan correctamente-, o bien se tienen limitaciones o problemas para utilizar un entorno gráfico.

Lo primero: la orden useradd.
El primer paso para crear una nueva cuenta consiste en utilizar el mandato useradd del siguiente modo:

useradd nombre_del_usuario


Ejemplo:

useradd fulano

Lo segundo: la orden passwd.
Después de crear la nueva cuenta con useradd o que sigue a continuación es especificar una contraseña para el usuario. Determine una que le resulte fácil de recordar, que mezcle números, mayúsculas y minúsculas y que, preferentemente, no contenga palabras que se encontrarían fácilmente en el diccionario. Existen otras recomendaciones más, por lo que es conveniente leer, antes de continuar, los comentarios finales acerca de la seguridad incluidos en este mismo artículo.

Aunque el sistema siempre tratará de prevenirlo cuando se escoja una mala contraseña, el sistema no le impedirá que lo haga. Especificar una nueva contraseña para un usuario, o bien cambiar la existente, se puede realizar utilizando el mandato passwd del siguiente modo:

passwd nombre_del_usuario

Ejemplo:

passwd fulano

El sistema solicitará entonces que proceda a teclear la nueva contraseña para el usuario y que repita ésta para confirmar. No verá el echo, por seguridad, el sistema no mostrará los caracteres tecleados, por lo que debe hacerlo con cuidado. Si se considera que tal vez se cometieron errores de tecleado, puede presionarse las veces que sean necesarias la tecla o . De cualquier forma el sistema le informará si coincide o no lo tecleado. Si todo salió bien recibirá como respuesta del sistema code 0. Si en cambio recibe code 1, significa que deberá repetir el procedimiento, ya que ocurrió un error.

Este procedimiento también puede utilizarse para cambiar una contraseña existente.

Opciones avanzadas.
En muchos casos pueden no ser necesarios, pero si se esta administrando un servidor o estación de trabajo, o bien se es un usuario un poco más experimentado, y se quiere crear una cuenta con mayores o menores restricciones, atributos y/o permisos, pueden utilizarse las siguientes opciones de useradd:

-c comment
Se utiliza para especificar el archivo de comentario de campo para la nueva cuenta.
-d home dir
Se utiliza para establecer el directorio de trabajo del usuario. Es conveniente, a fin de tener un sistema bien organizado, que este se localice dentro del directorio /home.
-e expire date
Se utiliza para establecerla fecha de expiración de una cuenta de usuario. Esta debe ingresarse en el siguiente formato: AAAA-MM-DD.
-g initial group
Se utiliza para establecer el grupo inicial al que pertenecerá el usuario. De forma predeterminada se establece como único grupo 1. Nota: el grupo asignado debe de existir.
-G group,[...]
Se utiliza para establecer grupos adicionales a los que pertenecerá el usuario. Estos deben separarse utilizando una coma y sin espacios. Esto es muy conveniente cuando se desea que el usuario tenga acceso a determinados recursos del sistema, como acceso a la unidad de disquetes, administración de cuentas PPP y POP. Nota: los grupos asignado deben de existir.
-m
Se utiliza para especificar que el directorio de trabajo del usuario debe ser creado si acaso este no existiese, y se copiaran dentro de este los archivos especificados en /etc/skel.
-s shell
Se utiliza para establecer el Shell que podrá utilizar el usuario. De forma predeterminada, en Red Hat™ Linux® y Fedora™ Core, se establece bash como Shell predefinido.
-u uid
Se utiliza para establecer el UID, es decir, la ID del usuario. Este debe ser único. De forma predeterminada se establece como UID el número mínimo mayor a 99 y mayor que el de otro usuario existente. Cuando se crea una cuenta de usuario por primera vez, como ocurre en Red Hat™ Linux® y Fedora™ Core generalmente se asignará 500 como UID del usuario. Los UID entre 0 y 99 son reservados para las cuentas de los servicios del sistema.
Ejemplo:

useradd -u 500 -d /home/fulano -G floppy,pppusers,popusers fulano

Lo anterior creará una cuenta de usuario llamada fulano, que se encuentra incluido en los grupos floppy, pppusers y popusers, que tendrá un UID=500, utilizará Bash como intérprete de mandatos y tendrá un directorio de trabajo en /home/fulano.

Existen más opciones y comentarios adicionales para el mandato useradd, estas se encuentran especificadas en los manuales -Man pages-. Para acceder a esta información, utilice el mandato man useradd desde una ventana terminal.

Eliminar una cuenta de usuario.
En ocasiones un administrador necesitará eliminar una o más cuentas de usuario. Este es un procedimiento principalmente utilizado en servidores y estaciones de trabajo a los cuales acceden múltiples usuarios. Para tal fin nos valdremos del mandato userdel. La sintaxis básica de userdel es la siguiente:

userdel nombre_del_usuario

Ejemplo:

userdel fulano

Si se desea eliminar también todos los archivos y sub-directorios contenidos dentro del directorio de trabajo del usuario a eliminar, se debe agregar la opción -r:

userdel -r nombre_del_usuario

Ejemplo:

userdel -r fulano

Manejo de Grupos.
Alta de grupos.
groupadd grupo-que-sea

Alta de grupos de sistema.
Un grupo de sistema es aquel que tiene un número de identidad de grupo (GID) por debajo del 500. Regularmente se asigna automáticamente el número de identidad de grupo más bajo disponible.

groupadd -r grupo-que-sea

Baja de grupos
groupdel grupo-que-sea

Asignación de usuario existentes a grupos existentes.
gpasswd -a usuario-que-sea grupo-que-sea

Comentarios finales acerca de la seguridad.
Cuando, en la mayoría de los casos, un hacker o cracker consigue infiltrarse en un sistema GNU/Linux® o Unix® no es porque estos tengan un hueco de seguridad, sino porque el intruso pudo "hackear" alguna de las contraseñas de las cuentas existentes. Si usted específico durante el proceso de instalación de Linux® una mala contraseña de root, algo muy común entre usuarios novicios, es altamente recomendado cambiarla.

Evite especificar contraseñas fáciles de adivinar. Con esto nos referimos particularmente a utilizar contraseñas que utilicen palabras incluidas en cualquier diccionario de cualquier idioma, datos relacionados con el usuario o empresa como son registro federal de causantes (R.F.C.), fechas de nacimiento, números telefónicos, seguro social, números de cuentas de académicos o alumnos y nombres de mascotas, la palabra Linux®, nombres de personajes de ciencia ficción, etc.

Evite escribir las contraseñas sobre medios físicos, prefiera siempre limitarse a memorizar éstas.

Si necesita almacenar contraseñas en un archivo, hágalo utilizando ciframiento.

Si se le dificulta memorizar contraseñas complejas, utilice entonces contraseñas fáciles de recordar, pero cámbielas periódicamente.

Jamás proporcione una contraseña a personas o instituciones que se la soliciten. Evite proporcionarla en especial a personas que se identifiquen como miembros de algún servicio de soporte o ventas. Este último caso lo menciona con énfasis la página de manual del mandato passwd.

Consideraremos como una buena contraseña aquella se compone de una combinación de números y letras mayúsculas y minúsculas y que contiene al menos 8 caracteres. También es posible utilizar pares de palabras con puntuación insertada y frases o secuencias de palabras, o bien acrónimos de estas.

Observar estas recomendaciones, principalmente en sistemas con acceso a redes locales y/o públicas, como Internet, hará que el sistema sea más seguro.

chattr

Introducción.
Acerca del mandato chattr.
El mandato chattr se utiliza para cambiar los atributos de los sistemas de ficheros ext2 y ext3. Desde cierto punto de vista, es análogo al mandato chmod, pero con diferente sintaxis y opciones. Utilizado adecuadamente, dificulta las acciones en el sistema de ficheros por parte de un intruso que haya logrado suficientes privilegios en un sistema.

En la mayoría de los casos, cuando un intruso consigue suficientes privilegios en un sistema, lo primero que hará será eliminar los registros de sus actividades modificando estructuras de los ficheros de bitácoras del sistema y otros componentes. Utilizar el mandato chattr ciertamente no es obstáculo para un usuario experto, pero, afortunadamente, la gran mayoría de los intrusos potenciales no suelen ser expertos en GNU/Linux o Unix, dependiendo enormemente de diversos programas o guiones (los denominados rootkits y zappers) para eliminar aquello que permita descubrir sus actividades.

Utilizar el mandato chattr, incluido en el paquete e2fsprogs, que se instala de forma predeterminada en todas las distribuciones de GNU/Linux por tratarse de un componente esencial, hace más difícil borrar o alterar bitácoras, ficheros de configuración y componentes del sistema. Theodore Ts'o es el desarrollador y quien se encarga de mantener e2fsprogs, mismo que se distribuye bajo los términos de la licencia GNU/GPL, e incluye otras herramientas como e2fsck, e2label, fsck.ext2, fsck.ext3, mkfs.ext2, mkfs.ext3, tune2fs y dumpe2fs, entre otras.

URL: http://e2fsprogs.sourceforge.net/

Opciones.
-R Cambia recursivamente los atributos de directorios y sus contenidos. Los enlaces simbólicos que se encuentren, son ignorado
-V Salida de charttr más descriptiva, mostrando además la versión del programa.
-v Ver el número de versión del programa.

Operadores.
+ Hace que se añadan los atributos especificados a los atributos existentes de un fichero.
- Hace que se eliminen los atributos especificados de los atributos existentes de un fichero
= Hace que solamente haya los atributos especificados.

Atributos.
A Establece que la fecha del último acceso (atime) no se modifica.
a Establece que el fichero solo se puede abrir en modo de adjuntar para escritura.
c Establece que el fichero es comprimido automáticamente en el disco por el núcleo del sistema operativo. Al realizar lectura de este fichero, se descomprimen los datos. La escritura de dicho fichero comprime los datos antes de almacenarlos en el disco.
D Cuando se trata de un directorio, establece que los datos se escriben de forma sincrónica en el disco. Es decir, los datos se escriben inmediatamente en lugar de esperar la operación correspondiente del sistema operativo. Es equivalente a la opción dirsync del mandato mount, pero aplicada a un subconjunto de ficheros.
d Establece que el fichero no sea candidato para respaldo al utilizar la herramienta dump.
i Establece que el fichero será inmutable. Es decir, no puede ser eliminado, ni renombrado, no se pueden apuntar enlaces simbólicos, ni escribir datos en el fichero.
j En los sistemas de ficheros ext3, cuando se montan con las opciones data=ordered o data=writeback, se establece que el fichero será escrito en el registro por diario (Journal). Si el sistema de ficheros se monta con la opción data=journal (opción predeterminada), todo el sistema de ficheros se escribe en el registro por diario y por lo tanto el atributo no tiene efecto.
s Cuando un fichero tiene este atributo, los bloques utilizados en el disco duro son escritos con ceros, de modo que los datos no se puedan recuperar por medio alguno. Es la forma más segura de eliminar datos.
S Cuando el fichero tiene este atributo, sus cambios son escritos de forma sincrónica en el disco duro. Es decir, los datos se escriben inmediatamente en lugar de esperar la operación correspondiente del sistema operativo. Es equivalente a la opción sync del mandato mount.
u Cuando un fichero con este atributo es eliminado, sus contenidos son guardados permitiendo recuperar el fichero con herramientas para tal fin.

Utilización.
chattr [-RV] +-=[AacDdijsSu] [-v versión] ficheros

Ejemplos.
el siguiente mandato agrega el atributo inmutable al fichero algo.txt..

chattr +i algo.txt

El siguiente mandato elimina el atributo inmutable al fichero algo.txt.

chattr -i algo.txt

El siguiente mandato agrega el modo de solo adjuntar para escritura al fichero algo.txt.

chattr +a algo.txt

El siguiente mandato elimina el modo de solo adjuntar para escritura al fichero algo.txt.

chattr -a algo.txt

El siguiente mandato establece que el fichero algo.txt solo tendrá los atributos a, A, s y S.

chattr =aAsS algo.txt

El siguiente mandato lista los atributos del fichero algo.txt.

lsattr algo.txt

Mandato chown

Mandato chown.
El mandato chown se utiliza para cambiar el propietario al que pertenece un fichero o directorio. Puede especificarse tanto el nombre de un usuario, así como un número de identidad de usuario (UID). Opcionalmente, utilizando un signo de dos puntos (:), o bien un punto (.), permite especificar también un nombre de grupo.

Opciones.
-R Cambia recursivamente el propietario (y, opcionalmente, el grupo al que pertenecen los directorios, junto con todos sus contenidos.
-v (o --verbose) Salida de chown más descriptiva.
--version Ver el número de versión del programa.
--dereference Actúa sobre enlaces simbólicos en lugar de hacerlo sobre el destino.
-h (o --no-dereference) En el caso de enlaces simbólicos, cambia el propietario del destino en lugar del propio enlace.
--reference Cambia el el propietario de un fichero, tomando como referencia el propietario de otro.

Utilización.
chown [opciones] usuario[:grupo] fichero(s) o directorio(s)

Mandato chgrp.
El mandato chgrp se utiliza para cambiar el grupo al que pertenece un fichero o directorio. Puede especificarse tanto el nombre de un grupo, así como un número de identidad de grupo (GID).

Opciones.
-R Cambia recursivamente el grupo al que pertenecen los directorios, junto con todos sus contenidos.
-v (o --verbose) Salida de chgrp más descriptiva.
--version Ver el número de versión del programa.
--dereference Actúa sobre enlaces simbólicos en lugar de hacerlo sobre el destino.
-h (o --no-dereference) En el caso de enlaces simbólicos, cambia el grupo del destino en lugar del propio enlace.
--reference Cambia el grupo de un fichero, tomando como referencia el propietario de otro.

Utilización.
chgrp [opciones] fichero(s) o directorio(s)

Ejemplos.
El siguiente mandato realiza el cambio de propietario a fulano, sobre el fichero algo.txt.

chown fulano algo.txt

El siguiente mandato realiza el cambio de propietario a fulano y el grupo desarrollo, sobre el fichero algo.txt.

chown fulano:desarrollo algo.txt

El siguiente mandato realiza el cambio de propietario a fulano y el grupo mail, del subdirectorio Mail, junto con todo su contenido.

chown -R fulano:mail Mail

El siguiente mandato realiza el cambio de grupo a desarrollo, sobre el fichero algo.txt.

chgrp desarrollo algo.txt

martes, marzo 06, 2007

martes, enero 16, 2007

Mas de Canadá

Caminando en Canadá

miércoles, diciembre 06, 2006

Origen del café

La primera infusión elaborada a partir de granos tostados y molidos -seguramente muy parecida a la bebida actual- se supone que data del siglo XV. Antes de ello en diferentes regiones la gente fue desarrollando formas variadas para aprovechar esta planta. Un ejemplo eran una pequeñas tortas elaboradas con granos crudos molidos que se mezclaban con manteca; en este caso la grasa hacía que fuese un alimento altamente energético. También se sabe que en algún momento se elaboraba un licor, fermentando la pulpa que recubre las semillas.
Algunos datos sueltos
- Actualmente se cultiva a todo lo largo de la franja tropical que rodea al planeta. Es una semilla que ha colonizado el mundo entero.- Luego del petróleo, constituye el segundo lugar en productos legales de exportación.- La cafeína es la sustancia psicoactiva de mayor consumo legal.- Los cultivadores de café, paradójicamente, son los trabajadores que viven en los lugares más hermosos y exuberantes de la tierra, pero también pertenecen al grupo de los más pobres.- Los cafetos demandan mucha mano de obra para el cuidado, cosecha y beneficio del producto: de su cultivo depende el ingreso de más de 20 millones de personas.- En las grandes ciudades, una tasa de café se paga con el equivalente al salario de un día de quien trabaja en su cultivo.- El café significa pobreza para quien trabaja en el campo y riqueza para quienes, sin tocarlo siquiera, comercian con él o lo hacen cotizar en la bolsa de valores.- A causa de su apreciado cultivo, el café ha sido causante del deterioro ecológico de millones de hectáreas de selvas.- Este pequeño grano ha sido capaz de determinar en algunos países su forma de vida, su economía, su sistema político y sus cambios sociales.- Es tan democrático su consumo, que igual es bebido por mandatarios de Estado como por campesinos y obreros.
Información sobre la historia del café, sus formas de cultivo, los tipos, la cultura desarrollada a su alrededor, etcétera, puede ser encontrada en el libro:
Pendergrast, Mark: El café; historia de la semilla que cambió el mundo. Barcelona, Javier Vergara editor, 2002.

lunes, septiembre 25, 2006

VPN EN XP

Servidor VPN
Vamos al Panel de control, y abrimos la carpeta de "Conexiones de red" y en el menú Archivo seleccionamos "Nueva conexión".





Ahora estamos en el "Asistente para conexión nueva". Pulsamos en el botón "Siguiente" para continuar.





Entre las opciones disponibles seleccionamos "Configurar una conexión avanzada", y pulsamos en "Siguiente".



Ahora seleccionamos "Aceptar conexiones entrantes" y pulsamos "Siguiente" para continuar.





En la pantalla "Dispositivos de conexiones entrantes" no seleccionamos ninguno, pues no queremos que se conecten a este equipo haciendo una llamada o usando el puerto paralelo. Pulsamos en "Siguiente".



En la pantalla "Conexión de red privada virtual (VPN) entrante" debemos seleccionar "Permitir conexiones virtuales privadas". Pulsamos en "Siguiente".





En la pantalla "Permisos de usuarios" seleccionamos los usuarios que podrán conectarse a nuestro equipo usando la VPN. Desde esta misma pantalla podremos crear nuevos usuarios. Pulsamos en "Siguiente".




Ahora debemos seleccionar los protocolos que habilitaremos en la VPN. Como queremos compartir ficheros e impresoras marcaremos "Protocolo Internet (TCP/IP)", "Compartir impresoras y archivos para redes Microsoft". Podremos agregar los protocolos que queramos usando el botón Instalar. Seleccionamos el protocolo "Protocolo Internet (TCP/IP)" y pulsamos en el botón Propiedades para proceder a configurarlo.



Ahora podemos configurar las propiedades del protocolo TCP/IP. Si queremos que los clientes que se conectan a nosotros puedan acceder a la red local en la que tenemos nuestro servidor deberemos activar la primera casilla. Además podemos dejar que el servidor asigne las IPs de los clientes o establecer un intervalo de IPs, o incluso permitir que los clientes especifiquen su IP.



Guardamos la configuración de TCP/IP y pulsamos en el botón siguiente del asistente y ya habremos terminado. En este momento tendremos una nueva conexión en la carpeta de Conexiones de red. Seleccionando la nueva conexión podremos ver el estado de ésta, los clientes conectados, cambiar las opciones de configuración, etc.


Ahora ya tenemos configurado el servidor VPN y ya está listo para aceptar clientes VPN.
A continuación configuraremos una conexión VPN para que se conecte al servidor.

Cliente VPN
Abrimos la carpeta de "Conexiones de red" y en el menú Archivo seleccionamos "Nueva conexión". En el asistente para conexión nueva seleccionamos "Conectarse a la red de mi lugar de trabajo", y pulsamos siguiente.





Seleccionamos "Conexión de red privada virtual", y pulsamos siguiente.




En la siguiente ventana, marcaremos la opción "no usar conexion inicial" a menos que queramos que con la vpn se utilice otra de nuestras conexiones a internet, si indicamos que al activar esta conexión se active antes otra conexión, por ejemplo una conexión telefónica, se conectará primero a Internet y luego se establecerá la VPN. Si disponemos de cable o ADSL no es necesario activar ninguna de estas conexiones. Tampoco lo es si estamos conectados a Internet cuando activamos la conexión VPN o no queremos que ésta marque ninguna conexión. Por último indicamos la dirección IP del servidor VPN, esta es la dirección IP pública, es decir, la que tiene en Internet en el momento de establecer la conexión entre los clientes y el servidor.





Al finalizar el asistente ya tendremos la conexión lista para activarse. Ahora debemos indicar el usuario y las password que hemos activado en el servidor y ya podremos conectarnos con el servidor.
Si el servidor VPN se conecta a Internet usando un modem o Cable la IP puede cambiar (IPs dinámicas) por lo que será necesario indicarle la IP que tiene en cada momento.






Ya tenemos la conexión VPN lista para funcionar.
Si trabajamos con conexiones lentas (móden o similar) la VPN también irá lenta. Es recomendable disponer de conexiones de banda ancha para sacarle todo el rendimiento a este tipo de conexiones.

Para realizar las comunicaciones usando la VPN deberemos usar las IPs de la VPN. Es decir, además de la IP de Internet que tiene el servidor y los clientes se han generado otras IPs internas de la VPN, pues esas deberemos usar para comunicarnos con los equipos de la VPN, estas se obtendrán como las habituales, pero en el icono de la nueva conexión que aparece en la barra de notificación (junto al reloj).

En conexiones lentas, el Explorador de Windows no será capaz de mostrar los otros equipos de la red, o le llevará mucho tiempo, en ese caso, podremos acceder a ellos escribiendo en la barra de direcciones del Explorardor de Windows "\\ip_en_la_VPN" o "\\nombre_maquina" de la máquina a la que queremos acceder, por ejemplo, si la IP (en la VPN) de la otra máquina es 169.254.3.117 pondremos \\169.254.3.117 en la barra de direcciones del Explorador de Windows y de esta forma ya tendremos acceso a los ficheros e impresoras de la máquina indicada.
Para usar otros recursos, como servidores de base de datos, etc. simplemente usamos la IP en la VPN de la máquina destino.

Además, si los equipos no tienen realizada la configuración de red adecuadamente, o tienen mal asignados los permisos puede ocurrir que no se pueda acceder a recursos. Esto no es un problema de la VPN sino de cómo se tienen establecidos los permisos en cada ordenador, al igual que pasa en una red local.

Por último, y como recomendación final, es aconsejable mantener el equipo actualizado e instalar los parches y services packs que va publicando Microsoft. Al tratarse de un servicio de red es muy vulnerable a ser atacado y si no está convenientemente actualizado podemos ser víctimas de ataques, o nuestros datos quizás no viajen lo suficientemente seguros como esperábamos.

Fotos


martes, julio 18, 2006

Apache

Archivos de configuracion para httpd (apache)

SINOPSIS:
Apache es el servidor Web para que se hospeden las paginas web en el, y asi puedan visualizarse desde cualquier parte de la nube de internet.

Requerimientos:
-Enlace dedicado a internet. infinitum (ADSL), IDE, CABLE, etc.
-Tener una ip fija o bien un rango de direcciones ips fijas
-Un dominio en Internet pagado www.nic.com, www.nic.com.mx
-httpd-2.0-40-21.3

El archivo de configuraion se encuentra alojado en /etc/httpd/conf/httpd.conf
al editar este archivo se puede configurar:
-El puerto que escucha el demonio httpd
-La cuenta de correo del webmaster
-En document root "/var/www/html" es el directorio donde se accesa a la pagina hospedada
-Control de acceso las paginas
-Permite visualizar los logs del sistema /var/log/httpd
-Permite hacer dominios virutales de la siguiente forma:

copiar en el servidor el archivo index.html

/var/www/html/nombre_pagina

depues editar el archivo /etc/httpd/conf/httpd.conf

y agregar en virtual host

www.nombre_pag.com>
ServerName www.nombre_pag.com
ServerAlias www.nombre_pag.com www.nombre_pag.com
ServerAdmin webmaster@dominio.com
DocumentRoot /var/www/html/nombre_pagina
Trnasferlog logs/nombre_pagina_access.log
ErrorLog log/nombre_pagina_error.log

Por ultimo verifica que este activo el demonio de httpd /etc/init.d/httpd status

sábado, junio 10, 2006

My Photo art






Lyrics R.E.M

Everybody Hurts Lyrics

When the day is long and the night, the night is yours alone,
When you're sure you've had enough of this life, well hang on
Don't let yourself go, 'cause everybody cries and everybody hurts sometimes

Sometimes everything is wrong. Now it's time to sing along
When your day is night alone, (hold on, hold on)
If you feel like letting go, (hold on)
When you think you've had too much of this life, well hang on

'Cause everybody hurts. Take comfort in your friends
Everybody hurts. Don't throw your hand. Oh, no. Don't throw your hand
If you feel like you're alone, no, no, no, you are not alone

If you're on your own in this life, the days and nights are long,
When you think you've had too much of this life to hang on

Well, everybody hurts sometimes,
Everybody cries. And everybody hurts sometimes
And everybody hurts sometimes. So, hold on, hold on
Hold on, hold on, hold on, hold on, hold on, hold on
Everybody hurts. You are not alone



Bad Day Lyrics

Followed me home the other day.
I paid it nevermind. Go Away.
Shits so thick you could stir it with a stick-free Teflon whitewashed presidency.
We're sick of being jerked around.
Wear that on your sleeve.

Broadcast me a joyful noise unto the times, lord,
Count your blessings.
We're sick of being jerked around.
We all fall down.

Have you ever seen the televised St. vitus subcommittee prize
Investigation dance? Those ants in pants glances.
Well,look behind the eyes.
It's a hallowed hollow anesthetized
"save my own ass, screw these guys"
smoke and mirror lock down.

Broadcast me a joyful noise unto the times, lord,
Count your blessings.
The Papers wouldn't lie!
I sigh, Not one more.

It's been a bad day.
Please don't take a picture.
It's been a bad day.
Please.

We're dug in deep the price is steep.
The auctioneer is such a creep.

The lights went out, the oil ran dry
We blamed it on the other guy
Sure, all men are created equal.
Heres the church, heres the steeple
Please stay tuned-we cut to sequel
ashes, ashes, we all fall down.

Broadcast me a joyful noise unto the times, lord,
Count your blessings.
Ignore the lower fear
Ugh, this means war.

It's been a bad day.
Please don't take a picture.
It's been a bad day.
Please.

Broadcast me a joyful noise unto the times, lord,
Count your blessings.
We're sick of being jerked around.
We all fall down.

It's been a bad day...




Losing My Religion Lyrics

Oh, life is bigger
It's bigger than you
And you are not me
The lengths that I will go to
The distance in your eyes
Oh no, I've said too much
I set it up

(chorus)
That's me in the corner
That's me in the spotlight, I'm
Losing my religion
Trying to keep up with you
And I don't know if I can do it
Oh no, I've said too much
I haven't said enough
I thought that I heard you laughing
I thought that I heard you sing
I think I thought I saw you try

Every whisper
Of every waking hour I'm
Choosing my confessions
Trying to keep an eye on you
Like a hurt lost and blinded fool, fool
Oh no, I've said too much
I set it up
Consider this
Consider this
The hint of the century
Consider this
The slip that brought me
To my knees failed
What if all these fantasies
Come flailing around
Now I've said too much
I thought that I heard you laughing
I thought that I heard you sing
I think I thought I saw you try

But that was just a dream
That was just a dream

(repeat chorus)

But that was just a dream
Try, cry, why try?
That was just a dream
Just a dream, just a dream
Dream



Man On The Moon Lyrics

Mott the Hoople and the Game of Life. Yeah, yeah, yeah, yeah
Andy Kaufman in the wrestling match. Yeah, yeah, yeah, yeah
Monopoly, twenty one, checkers, and chess. Yeah, yeah, yeah, yeah
Mister Fred Blassie in a breakfast mess. Yeah, yeah, yeah, yeah
Let's play Twister, let's play Risk. Yeah, yeah, yeah, yeah
See you in heaven if you make the list. Yeah, yeah, yeah, yeah

Hey Andy, did you hear about this one? Tell me, are you locked in the punch?
Hey Andy, are you goofing on Elvis? Hey baby, are we losing touch?
If you believed they put a man on the moon, man on the moon
If you believe there's nothing up my sleeve, then nothing is cool

Moses went walking with the staff of wood. Yeah, yeah, yeah, yeah
Newton got beaned by the apple good. Yeah, yeah, yeah, yeah
Egypt was troubled by the horrible asp. Yeah, yeah, yeah, yeah
Mister Charles Darwin had the gall to ask. Yeah, yeah, yeah, yeah

Hey Andy, did you hear about this one? Tell me, are you locked in the punch?
Hey Andy, are you goofing on Elvis? Hey baby, are you having fun?
If you believed they put a man on the moon, man on the moon
If you believe there's nothing up my sleeve, then nothing is cool

Here's a little agit for the never-believer. Yeah, yeah, yeah, yeah
Here's a little ghost for the offering. Yeah, yeah, yeah, yeah
Here's a truck stop instead of Saint Peter's. Yeah, yeah, yeah, yeah
Mister Andy Kaufman's gone wrestling (wrestling bears). Yeah, yeah, yeah, yeah

Hey Andy, did you hear about this one? Tell me, are you locked in the punch?
Hey Andy, are you goofing on Elvis? Hey baby, are we losing touch?
If you believed they put a man on the moon, man on the moon
If you believe there's nothing up my sleeve, then nothing is cool

If you believed they put a man on the moon, man on the moon
If you believe there's nothing up my sleeve, then nothing is cool
If you believed they put a man on the moon, man on the moon
If you believe there's nothing up my sleeve, then nothing is cool
If you believed they put a man on the moon, man on the moon
If you believe there's nothing up my sleeve, then nothing is cool

The hottest songs from R.E.M.



Its The End Of The World As We Know It (And I Feel Fine) Lyrics


Eye of a hurricane, listen to yourself churn - world
Serves its own needs, dont misserve your own needs. Feed
It off an aux speak, grunt, no, strength,turn, ladder
Start to clatter with fear fight down height. Wire
In a fire, representing seven games, in a government
For hire and a combat site. Left of west and coming in
A hurry with the furies breathing down your neck. Team
By team reporters baffled, trumped, tethered cropped
Look at that low playing! Fine, then. Uh oh,
Overflow, population, common food, but it'll do. Save
Yourself, serve yourself. World serves its own needs,
Listen to your heart bleed dummy with the rapture and
The revered and the right, right. You vitriolic,
Patriotic, slam, fight, bright light, feeling pretty
Psyched

It's the end of the world as we know it
It's the end of the world as we know it
It's the end of the world as we know it and I feel fine

Six o'clock - TV hour. Don't get caught in foreign
Towers. Slash and burn, return, listen to yourself
Churn. Locking in, uniforming,and book burning, blood
Letting. Every motive escalate. Automotive incinerate
Light a candle, light a motive. Step down, step down
Watch your heel crush, crushed, uh-oh, this means no
Fear cavalier. Renegade steer clear! A tournament,
a Tournament, a tournament of lies. Offer me solutions,
Offer me alternatives and I decline

(chorus)
It's the end of the world as we know it (it's time I had some time alone)
It's the end of the world as we know it (it's time I had some time alone)
It's the end of the world as we know it and I feel fine (it's time I had some
time alone)

I feel fine

(repeat chorus)

The other night I dreamt of knives, continental
Drift divide. Mountains sit in a line, Leonard
Bernstein. Leonid Brezhnev, Lenny Bruce and Lester
Bangs. Birthday party, cheesecake, jelly bean, boom! You
Symbiotic, patriotic, slam book neck, right? Right

(repeat chorus)

It's the end of the world as we know it
It's the end of the world as we know it
It's the end of the world as we know it and I feel fine (it's time I had some
time alone)

(repeat chorus 2x)

Fine
It's the end of the world as we know it (it's time I had some time alone)

The hottest songs from R.E.M.


Daysleeper Lyrics

Receiving department, 3 a.m.
Staff cuts have socked up the overage
Directives are posted
No callbacks, complaints
Everywhere is calm

Hong Kong is present
Taipei awakes
All talk of circadian rhythm

I see today with a newsprint fray
My night is colored headache grey
Daysleeper, daysleeper, daysleeper

The bull and the bear are marking
Their territories
They're leading the blind with
Their international glories

I'm the screen, the blinding light
I'm the screen, I work at night

I see today with a newsprint fray
My night is colored headache grey
Don't wake me with so much
Daysleeper

They cried the other night
I can't even say why
Fluorescent flat caffeine lights
Its furious balancing

I'm the screen, the blinding light
I'm the screen, I work at night

I see today with a newsprint fray
My night is colored headache grey
Don't wake me with so much
Don't wake me with so much. The
Ocean machine is set to 9
I'll squeeze into heaven and valentine
My bed is pulling me,
Gravity
Daysleeper, daysleeper
Daysleeper, daysleeper, daysleeper




Imitation Of Life Lyrics
Charades, pop skill
Water hyacinth, named by a poet
Imitation of life.
Like a koi in a frozen pond.
Like a goldfish in a bowl.
I don't want to hear you cry.

Thats sugarcane that tasted good.
Thats cinnamon, thats Hollywood.
C'mon, c'mon no one can see you try.

You want the greatest thing
The greatest thing since bread came sliced.
You've got it all, you've got it sized.
Like a Friday fashion show teenager
Freezing in the corner
Trying to look like you don't try.

Thats sugarcane that tasted good.
Thats cinnamon, thats Hollywood.
C'mon, c'mon no one can see you try.

No one can see you cry.

That sugar cane that tasted good.
That freezing rain, that's what you could.
C'mon, c'mon on no one can see you cry.

This sugarcane
This lemonade
This hurricane, I'm not afraid.
C'mon, c'mon no one can see you cry.

This lightning storm
This tidal wave
This avalanche, I'm not afraid.
C'mon, c'mon no one can see me cry.

That sugar cane that tasted good.
That's who you are, that's what you could.
C'mon, c'mon on no one can see you cry.

That sugar cane that tasted good.
That's who you are, that's what you could.
C'mon, c'mon on no one can see you cry.


The One I Love Lyrics



(chorus 1)
This one goes out to the one I love
This one goes out to the one I've left behind
A simple prop to occupy my time
This one goes out to the one I love

(chorus 2)
Fire (she's comin' down on her own, now)
Fire (she's comin' down on her own, now)

(repeat chorus 1)

(repeat chorus 2)

This one goes out to the one I love
This one goes out to the one I've left behind
Another prop has occupied my time
This one goes out to the one I love

(repeat chorus 2 2x)



Nightswimming Lyrics

Nightswimming deserves a quiet night
The photograph on the dashboard, taken years ago,
Turned around backwards so the windshield shows
Every streetlight reveals the picture in reverse
Still, it's so much clearer
I forgot my shirt at the water's edge
The moon is low tonight

Nightswimming deserves a quiet night
I'm not sure all these people understand
It's not like years ago,
The fear of getting caught,
Of recklessness and water
They cannot see me naked
These things, they go away,
Replaced by everyday

Nightswimming, remembering that night
September's coming soon
I'm pining for the moon
And what if there were two
Side by side in orbit
Around the fairest sun?
That bright, tight forever drum
Could not describe nightswimming

You, I thought I knew you
You, I cannot judge
You, I thought you knew me,
This one laughing quietly underneath my breath
Nightswimming

The photograph reflects,
Every streetlight a reminder
Nightswimming deserves a quiet night, deserves a quiet night



At My Most Beautiful Lyrics

(chorus)
I've found a way to make you
I've found a way
A way to make you smile

I read bad poetry
Into your machine
I save your messages
Just to hear your voice
You always listen carefully
To awkward rhymes
You always say your name,
Like I wouldn't know it's you,
At your most beautiful

(repeat chorus)

At my most beautiful
I count your eyelashes, secretly
With every one, whisper I love you
I let you sleep
I know you're closed eye watching me,
Listening
I thought I saw a smile

(repeat chorus)


You Are The Everything Lyrics

Sometimes I feel like I can't even sing (say, say, the light)
I'm very scared for this world
I'm very scared for me (say, say, the light)
Eviscerate your memory
Here's a scene
You're in the back seat laying down (say, say, the light)
The windows wrap around
To sound of the travel and the engine (say, say, the light)
All you hear is time stand still in travel
And feel such peace and absolute
The stillness still that doesn't end
But slowly drifts into sleep
The stars are the greatest thing you've ever seen
And they're there for you
For you alone you are the everything

I think about this world a lot and I cry (say, say, the light)
And I've seen the films and the eyes
But I'm in this kitchen (say, say, the light)
Everything is beautiful
And she is so beautiful (say, say, the light)
She is so young and old
I look at her and I see the beauty (say, say, the light)
Of the light of music
The voices talking somewhere in the house
Late spring and you're drifting off to sleep
With your teeth in your mouth
You are here with me
You are here with me
You have been here and you are everything

Sometimes I feel like I can't even sing (say, say, the light)
I'm very scared for this world
I'm very scared for me (say, say, the light)
Eviscerate your memory
Here's a scene
You're in the back seat laying down (say, say, the light)
The windows wrap around
To sound of the travel and the engine (say, say, the light)
All you hear is time stand still in travel
And feel such peace and absolute
The stillness still that doesn't end
But slowly drifts into sleep
The greatest thing you've ever seen
And they're there for you
For you alone you are the everything
For you alone you are the everything

The hottest songs from R.E.M.

One Lyrics

Is it getting better
Or do you feel the same
Will it make it easier on you now
You got someone to blame
You say...

One love
One life
When it's one need
In the night
One love
We get to share it
Leaves you baby if you
Don't care for it

Did I disappoint you
Or leave a bad taste in your mouth
You act like you never had love
And you want me to go without
Well it's...

Too late
Tonight
To drag the past out into the light
We're one, but we're not the same
We get to
Carry each other
Carry each other
One...

Have you come here for forgiveness
Have you come to raise the dead
Have you come here to play Jesus
To the lepers in your head

Did I ask too much
More than a lot
You gave me nothing
Now it's all I got
We're one
But we're not the same
Well we
Hurt each other
Then we do it again
You say
Love is a temple
Love a higher law
Love is a temple
Love the higher law
You ask me to enter
But then you make me crawl
And I can't be holding on
To what you got
When all you got is hurt

One love
One blood
One life
You got to do what you should
One life
With each other
Sisters
Brothers
One life
But we're not the same
We get to
Carry each other
Carry each other

The hottest songs from R.E.M.

Star Me Kitten Lyrics

Keys cut, three for the price of one
Nothing's free but guaranteed for a lifetime's use
I've changed the locks
And you can't have one
You, you know the other two

The brakes have worn so thin that you could hear,
I hear them screeching through the door from our driveway
Hey love, look into your glovebox heart
What is there for me inside? This love is tired
I've changed the locks. Have I misplaced you?
Have we lost our minds?
Will this never end?
It could depend on your take

You, me, we used to be on fire
If keys are all that stand between,
Can I throw in the ring?
No gasoline
Just fuck me kitten
You are wild and I'm in your possesion
Nothing's free so, fuck me kitten

I'm in your possesion
So, fuck me kitten

The hottest songs from R.E.M.


Dragging The Line Lyrics


Makin' a livin' the old hard way
Takin' and givin' by day by day
I dig snow and rain and the bright sunshine
Draggin' The Line

My dog Sam eats purple flowers
Ain't got much, but what we got's ours
We dig snow and rain and the bright sunshine
Draggin' The Line
(Draggin' The Line)
Draggin' The Line
(Draggin' The Line)

I feel fine, I'm talkin' 'bout peace of mind
I'm gonna take my time, I'm gettin' the good sign
Draggin' The Line
(Draggin' The Line)
Draggin' The Line
(Draggin' The Line)

Lovin' the free and feelin spirit of
hugging a tree
when you get near it.
Diggin' snow and rain and the bright sunshine
Draggin' The Line
(Draggin' The Line)
Draggin' The Line
(Draggin' The Line)

The hottest songs from R.E.M.


The Lifting Lyrics

Grounded 5 a.m.
The nightlite is comforting.
But gravity is holding you.

Once settled into sleep
You have watched on repeat,
The story of your life
Across the ceiling;
And in review,

You've said the air was singing
It's calling you you don't believe
These things you've never seen.

"Good morning, how are you?
The weather's fine, the sky is blue-
It's perfect for our seminar..."

"Now close your eyes,
And start to breathe.
Allow the noise to recede...
...Allow yourself to drift and fly away.
But you just stay.

You've said the air was singing
It's calling you you don't believe
These things you've never seen, never dreamed.

Did you hear these voices calling

Locked into a conference room,
"We're only what our minds assume..."
And rationale is leaving you.

This conceit these systems of belief,
Your counselor agrees,
"You've always mark these boundaries now you're free..."
And with relief.

You've said the air was singing
It's calling you you don't believe
These things you've never seen, never heard, never dreamed.

You said the air was singing
It's calling you you don't believe
These things you've never seen.

Never [x19]

Once you had a dream
Of oceans, and sunken cities
Memories of things you've never known

martes, abril 04, 2006

Comandos Unix


Índice:

Comandos Comunes..............................................2

Comandos propios de unix.....................................3

Agrupamiento de mandatos....................................4

Caracteres especiales..............................................6

Ayuda.....................................................................6

Variables de entorno...............................................6

Archivos especiales................................................7

Pidiendo disculpas a los puristas, esta lista está estructurada de la siguiente forma:

A la izquierda figuran los comandos DOS, y a la derecha su equivalente Unix.

A continuación hay otra lista con los comandos sin equivalente DOS.

Comandos comunes:

DOS

Unix

cd

cd( nota: “cd..” no sirve. Usar “cd ..”(Con espacio).

md

mkdir

rd

rmdir

del

rm

deltree

rm -R

dir

ls (dir funciona como ls -l -color)

copy, xcopy

cp

move, rename

mv

COMMAND.COM

bash, tcsh, zsh, etc. (En Unix hay varios shells)

win

startx

help

man

cls

clear

pkzip/pkunzip

gunzip

doskey

Automático en Linux.

Comando /?

Comando --help. Si no, mirar el manual.

type

cat

edit

pico, vi, emacs, etc. (El pico es el más fácil de usar)

time, date

date (Imprime la fecha y hora). date --set la define.

cmp

cmp,diff(Imprime las diferencias entre dos archivos)

echo Cadena de caracteres

echo “Cadena de caracteres” (Entrecomillado)

ping

ping

tracert

traceroute

set

set

Comandos propios de Unix:

chmod : Cambia los permisos de acceso a un fichero. Los permisos se especifican mediante tres números. El primero simboliza los permisos del propietario del archivo, el segundo los permisos del grupo al que pertenece el archivo, y los tres últimos son los permisos para todo el mundo. Si pasamos cada uno de estos números a binario, ocuparán tres bits. Los permisos se estructuran en tres tipos: Lectura(r), Escritura(w), y ejecución(x). Por ejemplo:

chmod 764 archivo.txt (Nota: 7=111, 6=110, 4=100)

Permisos 764: en binario los tres números son (111 110 100). Esto es, da permisos rwx(111) rw-(110) r- -(100); Es decir, todos los permisos para el propietario(rwx), lectura-escritura para todos los usuarios

pertenecientes al grupo dueño del archivo(rw-) y sólo de lectura para el resto del mundo(r- -).

chown : Cambia el usuario propietario de un archivo. Sólo root puede

ejecutar este comando.

chgrp : Cambia el grupo efectivo de un archivo.

su: Cambia a modo administrador desde cualquier usuario. Por supuesto, pide el password.

ps: Muestra una lista de los procesos en curso, con su PID.

kill : Mata el proceso especificado por PID. Si falla, kill -9 lo mata incondicionalmente.

reboot: Reinicia el sistema.

halt: Apaga el ordenador(Si la BIOS lo soporta). Equivale a Inicio-Apagar sistema-Apagar el equipo.

lsmod: Muestra los módulos cargados en memoria.

rmmod: Descarga de memoria un módulo, pero sólo si no está siendo usado.

insmod : Carga en memoria un módulo.

gzip: Para instalar un archivo comprimido (Archivo.tar.gz, muy usado en internet) se usa:

gzip -cd Archivo.tar.gz | tar xvf - (Con guión al final)

mount /dev/ : Monta una unidad de red en el sistema de archivos. Nótese que las unidades de disco, CD, etc. locales las trata como unidades de red, ubicadas en /dev/hd?. Su uso es igual a NET USE en Windows NT. Sólo root puede ejecutar este comando, a no ser que se especifique lo

contrario en el archivo /etc/fstab.

umount : Desmonta una unidad.

YaST: ( ¡Respetar mayúsculas/Minúsculas!) Es el programa de configuración de SuSE. Puede invocarse en cualquier momento desde el prompt, pero sólo como superusuario(root). Es algo así como el panel de control de W95. Permite instalar/Desinstalar archivos de la distribución, paquetes RPM, configurar

hardware, opciones de red, etc…(Ver documento adjunto).

whereis : Devuelve la ubicación del archivo especificado, si existe.

find : Busca el archivo especificado. Necesita opciones alternativas, como el directorio donde

se debe buscar, etc… Es complicado, pero muy potente.

grep : Busca la cadena de caracteres especificada en un texto. Cuando la encuantra imprime solamente las líneas en las que aparece la cadena. Por ejemplo: set | grep “WINDOWMANAGER” devolverá algo como:

WINDOWMANAGER=/opt/kde/bin/startkde

cat “comandos Unix.doc” | grep “caca” devolvería esta misma línea.

sort: Ordena un texto( lista de archivos, etc.)

more: Da control sobre el scroll de pantalla al intentar leer textos largos.

less: Es una función más completa que more.

make: Compila un módulo con sus librerías automáticamente. Requiere un archivo: Makefile.

pwd: Devuelve el directorio actual.

head: Imprime las primeras líneas de un archivo.

ln: Hace un link simbólico ó físico a un fichero. Ej.: ln -s /MisDocumentos/documento.txt texto

haría un enlace simbólico con nombre “texto“ al archivo documento.txt.

lpr: Comando de impresión en linux.

wc: No es el retrete, no... Cuenta las palabras de un archivo.

who: Imprime una línea por cada usuario que se encuentre en el sistema.

mail: Para enviar/recibir correo a/de otros usuarios de la red, o dentro de nuestro ordenador.

Agrupamiento de mandatos:

Los shell de Unix, como el COMMAND.COM de MS-DOS permiten una serie de conexiones lógicas de unos mandatos con otros, de manera que se modifica la entrada/salida estándard de los comandos, para comunicarlos entre sí:

1.- Redirección de salida(>): Redirige la salida de un comando a un fichero.

Si hacemos: dir > fichero.txt

Se creará un archivo “fichero.txt”. Si miramos su contenido (cat fichero.txt) veremos que contiene exactamente lo que veríamos al ejecutar el comando dir.

2.- Redirección de entrada(<): Redirige la entrada estándard de un comando desde un fichero.

Si hacemos: grep “/root” < fichero.txt

De existir una línea que contenga esa cadena en el archivo antes creado, fichero.txt se imprimirá en pantalla la línea completa. Si no, no devolverá nada.

3.- Ejecución secuencial(;): Ejecuta secuencialmente una lista de comandos.

Ejemplo: mv archivo1 aux ; mv archivo2 archivo1; mv aux archivo1

4.- Redirección de salida estándard de error(>&).

Si utilizamos un comando y salen varias pantallas describiendo el error(Cosa poco usual), o si por ejemplo dejamos trabajando nuestro terminal ejecutando varias órdenes y queremos al volver mirar si todo ha sido correcto, hacemos:

comando >& fichero.txt

5.- Ejecución asíncrona(&): Ejecuta en paralelo el/los comandos introducidos.

Ejemplo: make programa_enorme.c & make programa_enorme2.c &

Compilará los dos programas “a la vez”, y además nos dejará el shell libre para poder seguir ejecutando mandatos.

6.- OR lógico( || ): Se ejecutan de forma secuencial los mandatos introducidos hasta que uno de ellos devuelva un valor 0(verdadero).

Ejemplo: test -d archivo || lpr archivo

Sólo imprime el archivo si no es un directorio.

7.- AND lógico (&&): Se ejecutan de forma secuencial los mandatos introducidos hasta que uno de ellos devuelva un valor distinto de 0(falso).

Ejemplo: test -f archivo && lpr archivo

Imprime el fichero sólo si se trata de un fichero ordinario.

8.- Tuberías(pipes)( | ): Se ejecutan los comandos de forma secuencial, pero redirigiéndose la salida de cada uno al siguiente comando.

Ejemplo1: dir | sort | less

Imprime la lista de los ficheros del directorio actual de trabajo ordenados alfabéticamente y línea a línea.

Ejemplo2: head -100 carta | grep “Juan” | sort | lpr

Imprime en orden alfabético las líneas que, estando entre las 100 primeras del archivo “carta” contengan la cadena de caracteres “Juan”.

Además el shell es una herramienta de programación muy versátil y completa. Proporciona una serie de mandatos compuestos que permiten escribir programas estructurados de forma condicional o incluso bucles. Entre estos mandatos están el if, case, until, while, for, etc. Además de la posibilidad de definir funciones de forma similar a la sintaxis de C, y variables. Esto permite hacer unos programas llamados Shell Scripts, que equivalen a los archivos .BAT de MS-DOS, pero con una sintaxis de programación mucho más completa.

Caracteres especiales:

La sintaxis de los shell de Linux permite definir los nombres de archivos con todo tipo de caracteres, pero hay una serie de caracteres especiales como el espacio, o símbolos como ( ; | > < ), etc. que no se pueden especificar así como así en un nombre de archivo. Para proteger estos caracteres se usan los caracteres (\), (“) y (`).Un ejemplo:

Si queremos borrar un archivo que se llama mio;tuyo nombre;>raro debemos poner:

rm mio\;tuyo\ nombre\;\>raro

o bién (mas cómodo):

rm “mio;tuyo nombre;>raro”

El carácter tilde(~) se usa en el shell de Linux para especificar el directorio HOME de cada usuario en vez de, por ejemplo: /home/Informática/Explotación/Manuelva/

Además para cambiar a nuestro directorio HOME basta con ejecutar “cd” sin argumentos.

Ayuda:

La ayuda en Linux viene en forma de manuales de cada comando. Su uso es el siguiente:

man

Son manuales algo antiguos, y tienen el inconveniente de estar en inglés, pero son muy útiles. Además prestan ayuda también a los múltiples archivos de configuración del sistema.

Variables de entorno:

En unix las variables de entorno son mas importantes que en MS-DOS. La principal razón es la variable “PATH”, que como todos sabemos contiene los directorios donde el shell debe buscar para encontrar cualquier comando xterno al shell. Esto es igual que en MS-DOS, pero en Linux toda la demás información que aparece con el comando set es usada continuamente por los diferentes programas.

Entre la información que aparece por allí, tenemos el shell(COMMAND.COM) que se usa por defecto, el nombre de usuario, el pid de nuestro propio shell, la configuración del servidor de ventanas, y un largo etcétera que será más o menos largo según los programas que usemos.

Para exportar nuevas variables primero se definen. Por ejemplo, si queremos que nuestro gestor de ventanas sea el KDE por defecto, simplemente haremos:

WINDOWMANAGER=/opt/kde/bin/startkde

Si ahora escribimos set en la línea de comandos, vemos que lo que hemos hecho no ha afectado a la variable de entorno WINDOWMANAGER. Para que el cambio tenga efecto, hay que exportarla al sistema; Esto se hace:

export WINDOWMANAGER

Si queremos que cualquiera de estas variables exista cada vez que entremos con nuestro usuario, habrá que añadirla al archivo .profile en nuestro directorio home.

Archivos importantes:

En Linux, como en MS-DOS o cualquier sistema operativo, existen una serie de archivos con información para mantener el sistema. Archivos como el AUTOEXEC.BAT o el CONFIG.SYS, el IO.SYS, etc. contienen la forma de configurar el arranque de nuestro ordenador, o hasta de algún programa, como el WIN.INI, etc...

A continuación se hace un breve resumen de estos archivos en Linux:

En cada directorio personal: /home/Usuario/

.xinitrc: Archivo de inicio del entorno de ventanas. Es propio de cada usuario.

.profile: Es el equivalente al AUTOEXEC.BAT de MS-DOS, pero con la particularidad de que en Linux este archivo es diferente para cada usuario. Se trata de un shell script, y hay que crearlo a mano, pues no se crea por defecto.

.bash_history: Es un archivo de seguridad en el que se graba cada comando que ejecuta un usuario durante varias sesiones seguidas.

En el directorio de configuración: /etc/

profile: Es el equivalente al AUTOEXEC.BAT; se ejecuta al arrancar.

fstab: Archivo que contiene el montaje de los dispositivos, los puntos de montaje, opciones de automontaje en el arranque, permisos, etc.

lilo.conf: Archivo de configuración del cargador del sistema operativo lilo(Linux loader), encargado del arranque de Linux y los demás s.s.o.o.

resolv.conf: Archivo de configuración de la resolución de nombres de red.

hosts: Archivo de configuración de redes(Ver documento adjunto).

En otros directorios:

/var/adm/backup: Cada vez que se hacen cambios en el sistema, se nos da la posibilidad de guardar una copia de seguridad de todos los archivos susceptibles de variar. Aquí se guardan dichos cambios en formato tar.gz

/opt/: Aquí se guardan los programas considerados opcionales, como son el navegador Netscape, o el entorno de ventanas KDE.

/vmlinuz: Es el núcleo del sistema operativo. Puede llamarse de otra forma.

/mnt/: Aquí se suelen montar las particiones o dispositivos que tenga el sistema.

/usr/doc/Howto: Múltiples ayudas catalogadas por temas.

/usr/doc/packages: Conjunto de README, y documentos varios para cada paquete instalado, en formato texto, postscript, html, etc.

En el directorio /proc:

Si miramos el contenido de cualquiera de estos archivos( cat ), obtendremos información útil sobre nuestro sistema:

devices: Información sobre los dispositivos que el sistema reconoce.

ioports: Info. sobre las direcciones de entrada/salida de los dispositivos.

interrupts: Info. sobre las interrupciones usadas por el sistema.

dma: Info. sobre los canales de acceso directo a memoria del sistema.

En el directorio de los dispositivos: ( /dev)

hda: Disco primario maestro.

hdb: Disco primario esclavo.

hdc: Disco secundario maestro.

hdd: Disco secundario esclavo.

fd0: Disquetera.

mouse: Contiene un enlace al puerto del ratón(tty0, psaux, etc)

modem: Enlace al puerto del módem(tty0, tty1, etc)

lpd: Impresora.

fb0: Frame buffer device. Es un dispositivo que controla la tarjeta gráfica a bajo nivel, sin necesidad de entorno gráfico.