vt102

OpenBSD

Publicado en sistema
3...

2 días para OpenBSD 4.5

1...

... ftp://rt.fm/pub/OpenBSD/


07:05 - 29.04.2009 - comentarios {0} - publicar comentario

shell -terminal

Publicado en consola
"Tras los años me he malacostumbrado a entrar al sistema por acto reflejo, sin pararme a recordar que fué lo primero que aprendí cuando vi por primera vez una tty.

Dícese que la memoria es la inteligencia de los burros, yo estoy muy por debajo, así que voy a intentar definir a mi amor [ la consola ]..."



Una shell es el entorno en el cual un usuario interactua con el sistema;
hay shells gráficas y shells en modo texto.

En cambio, un terminal es "la vía" por la que un usuario entra al sistema para acceder a una shell; existen 5 tipos distintos aunque el más común es VT100.

También existe la terminal virtual, que es lo que vulgarmente conocemos como terminal tty [ teletype ], que nos da acceso a la shell.

Existe también los /dev/pts/X [ comunmente relacionados a xterm, rxvt, gnome-console, konsole, etc ] y son asignados dinámicamente cada vez que se abre una pseudoterminal.

Tenemos también /dev/console que es la consola del sistema; /dev/ttysX que es la "serial terminal"; y también la consola física a la cual accedemos a través de "la puerta trasera", es decir, kvm conectado a nic [ network interface card].


[ que bien me han venido los logs de ##unix ]

17:09 - 22.04.2009 - comentarios {0} - publicar comentario

/dev/paranoic

Publicado en sistema



 A pesar de no ser muy conocedor de las medidas de seguridad con los años he aprendido que es menester modificar obligatoriamente algunas cosillas. En mi caso estas son varias de las cosas que hago:

1.iptables


#!/bin/sh
iptables -F INPUT
iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp ! --syn -j ACCEPT
iptables -A INPUT -p udp --source-port 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 4662 -m state --state NEW -j ACCEPT
#iptables -A INPUT --source XX.XX.XX.XX -p udp --source-port 53 -j ACCEPT
#iptables -A INPUT --source XX.XX.XX.XX -p udp --source-port 53 -j ACCEPT
#iptables -A INPUT -p udp --destination-port 68 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
iptables -A INPUT -p icmp --icmp-type source-quench -j ACCEPT
iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
iptables -A INPUT -p icmp --icmp-type parameter-problem -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -j DROP


2.tmp -a la RAM-

telinit 1

#limpio el /tmp actual

rm -r /tmp/.[a-zA-Z]*

#añado a /etc/fstab

none /tmp tmpfs defaults 0 0

#lo vuelvo a montar y miro si va bien

mount -a
df -hT

#opcionalmente se puede limitar la cantidad de ram a usar

none /tmp tmpfs rw,size=100000000 0 0


3.wheel [ para evitar el uso del comando su ]

#creamos el grupo wheel

groupadd -r wheel

#añadimos el usuario que deseemos que pueda usar su

usermod -G wheel usuario

#ponemos el comando su como setuid

chgrp wheel /bin/su
chmod 4750 /bin/su


4.Prevenir que alguien se aproveche de grub

Si arrancamos el ordenador y en el prompt de grub presionamos la tecla A
podemos añadir al final de la línea del kernel un espacio vacío seguido
de la letra S [ tanto en minúscula como en mayúscula ] y
aprovecharnos de entrar en modo single como root.
Para prevenir este fallo existe una solucion no muy compleja:

En /etc/inittab existe una línea que hace referencia a sysinit.
El caso es añadir debajo de ella una nueva línea, de modo que
quede tal como:

si::sysinit:/etc/init.d/rcS #línea que suele haber
ss:S:respawn:/sbin/sulogin #línea que he añadido

De este modo, si alguien con acceso físico a nuestro ordenador intenta
aprovecharse de la cojera de grub que mencioné antes, se encontrará
que el sistema le pedirá repetidamente la contraseña de root ANTES
de existir una consola usable.


4.Grub 2ª parte

Hay otra manera ya conocida de que alguien se aproveche de grub:

Añadir al kernel: init=/bin/bash
Montar proc: mount /proc
Remontarlo: mount -o remount,rw /
ETCÉTERA.....

hasta tener el sistema funcional con solo apenas 4 pasos más.

De nuevo vuelve a ser un problema de acceso "físico", aunque
también se puede solucionar fácilmente:


Lanzamos en una consola la orden: grub-md5-crypt y seguimos las instrucciones.

En el archivo de configuración de grub añadimos una línea después de la entrada
que hace referencia al timeout:

password --md5 du28fnm9fn3mn30f83h4or9393937

Esto no es todo, aun teniendo grub protegido, si alguien de tu sistema pudiera ver el hash de la contraseña,
podróa utilizar cualquier herramienta para descubrir cual es.
Para evitar eso podemos cambiar el permiso de ese fichero:

chmod 600 /boot/grub/menu.lst

Ahora si que estamos algo más protegidos.

5. FIN


01:09 - 17.04.2009 - comentarios {0} - publicar comentario

TU

Publicado en sistema

10:19 - 9.04.2009 - comentarios {0} - publicar comentario

/etc/rsyslog.conf

Publicado en consola
#Me gusta que los mensajes del sistema sean sólo mostrados en una tty9 "tonta"
daemon,mail.*;\
news.=crit;news.=err;news.=notice;\
*.=debug;*.=info;\
*.=notice;*.=warn /dev/tty9


Manías, nada más.

 

17:25 - 7.04.2009 - comentarios {0} - publicar comentario

syslog

Publicado en sistema
Quizá me he vuelto un paranoico pero tras leer sobre syslog y sus posibles vulnerabilidades he acabado creando una "política de logueadores" que vi por la red y me gustó.

Opción 1: Crear un grupo al que se le puedan añadir los usuarios de confianza para que puedan usar syslog:
  # groupadd loggers
# chgrp loggers /dev/log
# chmod o-rw,ug+rw /dev/log
# ls -l /dev/log
srw-rw---- 1 root loggers 0 Feb 20 15:56 /dev/log


Opción 2: Crear un grupo donde se añadan los usuarios que no
deseamos que accedan al uso de syslog:

# groupadd nolog
# chgrp nolog /dev/log
# chmod g-rw,o+rw /dev/log
# ls -l /dev/log
srw----rw- 1 root nolog 0 Feb 20 15:56 /dev/log

Yo opté por la opción 1.


 

08:45 - 6.04.2009 - comentarios {0} - publicar comentario

los comandos que más utilizo [ 01 ]

Publicado en sistema
[Post 01 serie comandos ] [ si no funciona instala zsh ]

Crear acceso directo en la consola:

No me gusta usar ln para ello ya que me llenaría ~ con toda una ristra de los directorios de los que creo acceso directo. Es por ello que tras leer la larga e interminable FAQ de zsh descubrí dos métodos distintos y mucho más cómodos.
Se pueden usar via comando o añadirlos a ~/zshrc para hacerlos "eternos"

Método 1:

hash -d nombre=/ruta/directorio

ejemplo: hash -d doc=/usr/share/doc

Método 2:

typeset -A favoritos=( doc /usr/share/doc )


 

10:43 - 28.03.2009 - comentarios {0} - publicar comentario

resaltado de colores en elvis

Publicado en consola
A pesar de ser el típico usuario aburrido que suele utilizar la consola en monocolor hay ocasiones en las que utilizo el resaltado de colores para trabajar. Uno de esos casos es cuando trabajo con el editor elvis, para ello se tiene que editar ~/.exrc o ~/.elvisrc, depende de como lo nombraras.


"sección colores de ~/.exrc
"
"
color normal light yellow
color idle green
color bottom green
color lnum gray
color showmode gray
color ruler gray
color selection boxed magenta
color hlsearch boxed white
color hlobject boxed white
color spell boxed white
color fold yellow
color header white

color comment gray
color string light blue
color char light blue
color regexp like string
color regsub like string
color number light white
color other light red
color keyword light magenta
color function cyan
color variable green
color prep light magenta
color prepquote light blue
color doc white
color docmarkup white
color docindent white
color kindt like keyword
color libt like keyword

color specialkey yellow
color nontext yellow
color extends yellow

color hexheading red
color hexoffset red
color hexcursor red


Y el resultado es :

Free Image Hosting at www.ImageShack.us

  

07:05 - 27.03.2009 - comentarios {0} - publicar comentario

iiin [test 1 ok ]

#!/bin/sh
#La idea es simple, usar cat para escribir en los canales de la red irc que este.
#Para terminar una conversacion basta con usar control+d para volver al menu y elegir #otro canal en el que hablar.
#
#

while true
do
echo
echo
echo "(1)evilwm, (2) linux_novatos, (3)ii, (4) consola, (5)vi, (6)zsh, (7)exit" ;read Choise


if [ $Choise = "1" ];
then
cat >> ~/irc/irc.irc-hispano.org/\#evilwm/in
fi

if [ $Choise = "2" ];
then
cat >> ~/irc/irc.irc-hispano.org/\#linux_novatos/in
fi


if [ $Choise = "3" ];
then
cat >> ~/irc/irc.oftc.net/\#ii/in
fi


if [ $Choise = "4" ];
then
cat >> ~/irc/irc.freenode.net/\#consola/in
fi


if [ $Choise = "5" ];
then
cat >> ~/irc/irc.freenode.net/\#vi/in
fi



if [ $Choise = "6" ];
then
cat >> ~/irc/irc.freenode.net/\#zsh/in
fi

if [ $Choise = "7" ];
then
exit 0
fi

done

  

14:23 - 22.03.2009 - comentarios {0} - publicar comentario

rock around the clock

Publicado en sistema
 
"One, two, three o'clock, four o'clock, rock,
Five, six, seven o'clock, eight o'clock, rock,
Nine, ten, eleven o'clock, twelve o'clock, rock,
We're gonna rock around the clock tonight. "





vt102@i:~$ wget ftp://ftp.cs.pdx.edu/pub/elvis/elvis-2.2_0.tar.gz
vt102@i:~$ tar xzf elvis-2.2_0.tar.gz
vt102@i:~$ cd elvis-2.2_0
vt102@i:~$ ./configure --with-x=no --verbose
vt102@i:~$ make


Para comprobar que todo ha ido bien podemos probar el script e2 que tenemos si tras ejecutar el make el resultado fué satisfactorio.

vt102@i:~$ ./e2 ~/archivo

Ok, funciona, por tanto me lo quedo... "vt102@i:~$ make install"

Hay sistemas como debian que malacostumbran a uno a usar elvis bajo el nombre de vi; A pesar de no ser mi caso podemos crear manualmente ese "eufemismo":

vt102@i:~$ln -sf /usr/bin/elvis /usr/bin/vi
vt102@i:~$ whereis vi
vi: /usr/bin/vi


Pero antes de seguir...

¿ Qué es elvis ?


Elvis es un clon de ex/vi, el editor estándar de UNIX. Por lo general en elvis se pueden utilizar prácticamente todos los comandos que hay en el vi original, tanto en modo comando como en modo ex. Elvis añade soporte para varios ficheros, multiples ventanas, una gran variedad de modos display [ explicado posteriormente ] e incluso ayuda online para leer su documentación.

Al igual que el vi original, en elvis se almacena el texto en un fichero temporal en contra de hacerlo via RAM.

En su versión 2.2 elvis puede ser ejecutado en varios sistemas operativos:

- UNIX: Incluso puede ser utilizado en modo GUI en las X-window, como añadido a la interfaz de texto.

- Microsoft Windows: También en modo texto o modo GUI.

- MS-DOS: Sin versión gráfica.

- OS/2: El port básico de OS/2 tan sólo trae soporte para el modo texto utilizando llamadas VIO.

Elvis se puede distribuir libremente bajo los términos de la Licencia Perl "Clarified Artistic", tanto sus fuentes como subinario.

Visión general


En elvis/ex/vi existen dos modos básicos de edición: command e input.
Por defecto en elvis se entra en modo command, en el cual cuando presionas una tecla se interpreta como parte de un comando visual;
por tanto, el texto que teclees no será introducido en el fichero, sino que será tratado como un comando o parte de él.
Para poder introducir texto elprimer paso es ejecutar un comando para indicarle al editor que vas a cambiar al modo input; eso se hace presionando la tecla "i".
El modo ex es un tanto diferente, el carácter ":" es mostrado en la parte inferior izquierda de la pantalla a modo de prompt.
Lo que se hace en esta modalidad es insertar un comando y lanzarlo presionando la tecla"enter".

Características especiales de elvis

En comparación con el tradicional ex/vi, elvis añade las siguientes funciones:

- Se puede editar más de un fichero a la vez. el comando :buffer muestra una lista con los ficheros abiertos,
y mediante :buffer nombre podemos movernos entre ellos.

- Tener varias ventanas abiertas a la vez. Con el comando :splitcrearemos una nueva ventana en la cual nos aparecerá el mismo buffer que la actual. Podemos tambien lanzar :split foo para editar un archivo diferente en una nueva ventana.

- Disponemos también de varios display [hex,html,man,tex,syntax,normal]. Con el comando :display se nos mostrará una lista con el modo actual predecido por "*"; para movernos entre ellos podemos hacerlo mediante :display "display"

- Ayuda online. Con el comando :help se nos mostrará el manual de ayuda en formato html con hiperenlaces para movernos más cómodamente entre sus páginas.

- También existe el comando :lpr, siendo muy útil ya que la impresión será definida según el display que estemos utilizando.

- Los alias son otra de sus grandes características; con el comando :alias puedes crear atajos al estilo csh-shell.

- Podemos leer y editar ficheros a través del protocolo ftp y leer a través de http.

Y un largo etcétera que llega a las 200 opciones, es por ello que recomiendo sin dudas la lectura de su documentación oficial, siendo ella mucho más extendida que la aquí mostrada.


Ya tenemos el editor perfectamente usable, pero como uno es maniático y gusta de configurar a su gusto todo lo que pueda, el siguiente paso que voy a dar es crear el correspondiente archivo de configuración para "alterar" las carácterísticas que trae por defecto:

MUY IMPORTANTE
- El fichero de configuración que vamos a crear NO admite ninguna línea en blanco ya que dejaría de funcionar al llegar a dicha línea.

- Los comentarios se identifican por ser ser una línea con " al principio.

- Se debe de especificar una sola opción por línea.

Una vez aclarado y entendido esto, editamos el fichero en cuestión:

vt102@i:~$ elvis ~/.exrc
"ejemplo de una configuración simple y funcional;
"como siempre consultar el manual para editar al gusto de cada uno

set sh=/usr/bin/zsh
set showmode ruler
set wm=3
set sm
set nobackup
set report=1
set directory=/tmp
set errorbells
set ic
color normal white or black


Ahora si, ha llegado el momento de usarlo, una pequeña referencia será menester para poder editar texto :

Modos

1.Modo edición : Funciona como cualquier editor, escribes el texto de modo normal.

2.Modo comando : No se escribe, se utilizan las teclas para realizar funciones "mágicas" y así interactuar con el texto.

Por defecto al iniciar elvis se entra en modo comando, para cambiar al modo edición tan solo basta pulsar una de las siguientes teclas: [ i, o, a ]. Para posteriormente volver al modo comando lo podemos hacer presionando la tecla [ESC].

Brevario de comandos básicos

ComandoSignificado
elvis archivioAbrir o crear el archivo
elvisAbrir un archivo nuevo para nombrarlo más tarde
elvis -r

archivo

Recuperar un archivo de una caída del sistema
view archivoAbrir archivo sólo para leer
hMoverse un carácter hacia la izquierda
jMoverse una línea hacia abajo
kMoverse una línea hacia arriba
lMoverse un carácter a la derecha
wMoverse una palabra a la derecha
WMoverse una palabra a la derecha (pasados los signos de puntuación)
bMoverse una palabra a la izquierda
BMoverse una palabra a la izquierda (pasados los signos de puntuación)
eMoverse al final de la palabra actual
ReturnMoverse una línea hacia abajo
Back SpaceMoverse un carácter a la izquierda
Space BarMoverse un carácter a la derecha
HMoverse a la parte de arriba de la pantalla
MMoverse al centro de la pantalla
LMoverse a la parte inferior de la pantalla
Ctrl-FPaginar una pantalla hacia adelante

Ctrl-DDesplazarse media pantalla hacia adelante
Ctrl-BPaginar una pantalla hacia atrás
Ctrl-UDesplazarse media pantalla hacia atrás
aInsertar caracteres a la derecha del cursor
AInsertar caracteres al final de la línea
iInsertar caracteres a la izquierda del cursor
IInsertar caracteres al principio de línea
oInsertar una línea por debajo el cursor
OInsertar una línea por encima del cursor
cwCambiar una palabra (o parte de una palabra) a la derecha del cursor
cCambiar una línea
CCambiar desde el cursor hasta el final de la línea
sSustituir cadena por carácter(es) desde el cursor hacia adelante
rReemplazar el carácter marcado por cursor por otro carácter
r ReturnPartir una línea
JUnir la línea actual con la línea inferior
xpTransponer el carácter del cursor con el carácter a la derecha
~Cambiar el tipo de letra (mayúscula o minúscula)
uDeshacer el comando anterior
UDeshacer todos los cambios en la línea actual
:uDeshacer el comando anterior sobre la línea última
xEliminar el carácter del cursor
XEliminar el carácter a la izquierda del cursor
dwEliminar la palabra (o la parte de la palabra a la derecha del cursor)
ddEliminar la línea que contiene al cursor
DEliminar la parte de la línea a la derecha del cursor
dGEliminar hasta el final de línea
d1GEliminar desde el principio del archivo hasta el cursor
:5,10 dEliminar las líneas de la 5 a la 10
yyTirar o copiar línea
YTirar o copiar línea
pPoner la línea tirada o eliminada por debajo de la línea actual
PPoner la línea tirada o eliminada por encima de la línea actual
:1,2 co 3Copiar las líneas de la 1 a la 2 y ponerlas después de la línea 3
:4,5 m 6Mover las líneas de la 4 a la 5 y ponerlas después de la línea 6
:set nuMostrar los números de las líneas
:set nonuEsconder los números de las líneas

Establecer la distinción entre mayúsculas y minúsculas

:set icEn la búsqueda se ignora la distinción entre mayúsculas
y minúsculas
:set noicEn la búsqueda se distingue entre mayúsculas y
minúsculas
GIr a la última línea del archivo
1GIr a la primera línea del archivo
21GIr a la línea 21
/stringBúsqueda de cadena de caracteres
?stringBúsqueda hacia atrás de cadena de caracteres
nEncontrar la siguiente aparición de string en la dirección de búsqueda
NEncontrar la aparición previa de la cadena de caracteres en la dirección de búsqueda
:g/search/s//replace/gBuscar y reemplazar
Ctrl-LLimpiar (actualizar) la pantalla

Insertar un archivo en otro archivo
:r nombre_de_archivoInsertar (leer) el archivo a continuación del cursor
:34 r

nombre_de_archivo

Insertar el archivo después de la línea 34
:wGuardar los cambios (escribir el contenido de la memoria intermedia)
:w nombre_de_archivoEscribir el contenido de la memoria intermedia a un archivo con nombre
:wqGuardar los cambios y salir de vi
ZZGuardar los cambios y salir de vi
:q!Salir sin guardar los cambios

Y por el momento dejo por finalizada la introducción a elvis y la muy breve introducción al modo command [ lista no tan corta de comandos ].

Mañana o pasado más.
  

16:30 - 11.03.2009 - comentarios {0} - publicar comentario

IPv6 [ debian ]

Publicado en sistema

Viendo lo veloz que avanza todo creo que ya me va tocando aprender como configurar IPv6 en mi ordenador, según tengo entendido en 2010/11 ya sólo se usará esto..... a que espero!

Para ello voy a usar una guía que encontré en la red en inglés, me limitaré a traducirla para así facilitar su entendimiento.




Lo primero de todo es darle soporte IPv6 al kernel activo, para ello podemos elegir o compilarlo como módulo o añadirlo al kernel directamente. Como lo más común es encontrar un kernel precompilado [ hablo de debian ] lo más seguro es que la opción del módulo sea la más normal.

vt102@i:~$ modprobe ipv6

Tras haber cargado el módulo correctamente veremos que con ifconfig lo nos aparece una línea tal como:

inet6 addr: ::1/128 Scope:Host

Ya lo tenemos! [ ¿ Simple eh ? ]
Lo siguiente es configurar una dirección estática y usaremos para ello el ampliamente configurable /etc/network/interfaces, añadiendo lo siguiente después de iface eth0 inet static :

iface eth0 inet6 static
            address         3ffe:1234:5678:fffd::1
            netmask         64

Tras ello tan sólo resta ejecutar ifconfig eth0 para tener en marcha nuestra tarjeta de red con una dirección IPv6.

Probablemente nos hará falta alguno de esos túneles ya que los proveedores que ofrecen nativamente IPv6 de momento son más bien pocos. Lo primero será ejecutar el comando apt-get install iproute ya que es una herramiento muchisimo más poderosa que ifconfig y con la cual podremos darle nombre a los túneles en vez de las fastidiosas interfaces de red [sit0, sit1, sit.... ] y quedando así el archivo mencionado:


auto ejemplo1
          iface ejemplo1 inet6 v4tunnel
            address         3ffe:abcd:ef::a
            netmask         64
            endpoint        192.168.2.5
            pre-up echo -n "Iniciando el túnel IPv6 hacia ejemplo1..."
            up ip tunnel change ejemplo1 local 192.168.2.254 ttl 128
            up     echo " done."
            down   echo -n "Deteniendo túnel IPv6 hacia ejemplo1..."
            post-down     echo " done."


Si en nuestro caso nos es necesaria una sóla conexión IPv6, podemos trabajar con el "route" por defecto. Lo definiremos también en /etc/network/interfaces, añadiendo una línea para ello en la definición de la interfaz de red.:


iface eth0 inet6 static
            address         3ffe:dead:beef::a
            netmask         64
            gateway         3ffe:dead:beef::9


Y como resultado final, obtendremos la siguiente salida cuando ejecutemos en la consola el comando ip -6 route


3ffe:dead:beef::/64 dev eth0  proto kernel  metric 256 mtu 1500 advmss 1440
          fe80::/10 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440
          ff00::/8 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440
          default via 3ffe:dead:beef::9 dev eth0  metric 1  mtu 1500 advmss 1440
          default dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440
          unreachable default dev lo  metric -1  error -101


Ahora nos toca configurar el demonio snmpd, y suponiendo que tengas la muestra del archivo de configuración en vez de haber ejecutado snmpconf lo primero será "comunicarle" a /etc/default/snmpd que escuche las coneciones IPv6. Esto lo haremos añadiendo la correspondiente línea:

SNMPDOPTS='-s -l /dev/null -P /var/run/snmpd.pid udp6:161'

Nota para kernel 2.6.X: se tiene que habilitar específicamente tanto IPv4 como IPv6, como lo hago a continuación:

SNMPDOPTS='-s -l /dev/null -P /var/run/snmpd.pid udp6:161 udp:161'

Ahora ya si, editamos /etc/snmp/snmpd.conf para añadir las correspondientes líneas que darán soporte a IPv6. Probablemente existe una manera mejor de hacerlo, pero he elegido eliminar la configuración IPv4 ya que aparentemente en linux no es posible  de tener configuraciones separadas, la de IPv6 sobreescribirá la otra.

Quizá cambie con el tiempo, por ahora, así queda:

             #       sec.name  source          community
              #com2sec paranoid  default         public
              com2sec readonly  default         public
              com2sec readwrite default         private

              com2sec6 readonly6  default         public
              com2sec6 readwrite6 default         private

              [...]

              group MyROGroup6 v2c        readonly6
              group MyRWGroup6 v2c        readwrite6

              [...]

              access MyROGroup6 ""      any       noauth    exact  all    none   none
              access MyRWGroup6 ""      any       noauth    exact  all    all    none


Y recuerda de establecer un nombre decente para la comunidad... si todo es correcto, ahora podrás consultar a tu demonio en IPv6


              vt102@i:~ $ snmpwalk -v 2c -c public udp6:::1 sysname
              SNMPv2-MIB::sysName.0 = STRING:vt102





Y eso es todo, tan sólo recordar que me he limitado a seguir los pasos de un archivo que me encontré por la red [ recuerdo que estaba en alguna de las tantas páginas de people.debian.org ], espero seguir leyendo dobre el tema para así posteriormente aportar algo más personal y con más nociones.
  

22:35 - 6.03.2009 - comentarios {0} - publicar comentario

zsh [ mini chuleta ]

Publicado en consola

Tras varios años como usuario de la zshell he decidido agrupar algunos de los "tips" que más frecuentemente utilizo, así, como el post anterior, puede servirme de referencia rápida si me pierdo.




Comandos

!$     [ muestra el último argumento que he usado y me permite re-usarlo ]

history     [ me muestra los últimos 16 comandos usados ]

!nº     [ lanza el comando nº X de mi history ]

^x^y     [ reemplaza la x por y del comando anterior ]

for i in **/*.jpg; convert $i $i:r.png     [ convertir de jpg a png ]

ls -ld **/*(/^F)     [ lista todos los directorios vacíos ]

print **/*(/^F) | xargs -n1 -t rmdir     [ borra los directorios vacíos ]

ls *(om[1])     [ lista los archivos más recientes ]

zmv '* *' '$f:gs/ /_'     [ lo prefiero al blanks-rename.sh ]

zmv '(*)' '${(L)1}'     [ de MAYÚSCULAS a minúsculas ]

zmv '(*)' '${(U)1}'     [ de minúsculas a MAYÚSCULAS ]


Alias

alias cdrom='mount /cdrom'
alias ucdrom='umount /cdrom'
alias cls='clear'
alias lynx="lynx -use_mouse -term=${TERM}"
alias cd2iso="dd if=/dev/cdrom of=cd.iso"
alias cd..='cd ..'
alias zorra='BitchX -b'
alias sexo='cd ; clear ; startx -- -nolisten tcp'
alias limpia=':>'  [ útil para limpiar los logs de aplicaciones en funcionamiento ]
alias imagen='mkisofs -v -r -T -J -V "1" -o '
alias del='rm -i'
alias delx='rm -fr'
alias no='clear ; logout'
alias ruido='for i in *.mp3; do mpg321 -w `basename $i .mp3`.wav $i; done'
alias fbfilm='mplayer -vo fbdev2 -x 1000 -y 600 -zoom -msglevel all=0 -framedrop -autosync 30 -ni -fs'
alias wav='cdda2wav -D /dev/cdrom -B'
alias audiocd='cdrecord -v -eject -pad -audio *.wav'
alias fotos='for i in *.jpg; do convert -resize 800x600 $i $i; done'
alias reboot='sudo /sbin/shutdown -r now '
alias halt='sudo /sbin/halt -p'
alias tiempo='lynx -dump http://meteo.infoterrassa.com/index.php/situacioactual.html | grep Temperatura | head -n 2 | tail -n 1'
alias su="su -"
alias rw-='chmod 600'
alias rwx='chmod 700'
alias r--='chmod 644'
alias r-x='chmod 755'
alias ..='cd ..'
alias ...='cd ../..'
alias incbackup='rsync -avvuz --exclude '.fabrik' /home/inc /zhd/backup'
alias etcbackup='sudo rsync -avvuz /etc /zhd/backup'
alias bootbackup='sudo rsync -avvuz /boot /zhd/backup'
alias varbackup='sudo rsync -avvuz /var /zhd/backup'

Funciones y demás añadidos

#autocompletar servidor de ftp a conectar con lftp

hosts=( debian.inode.at
        rt.fm
        debian.org
        ftp.de.kernel.org
)
zstyle ':completion:*:*:lftp:*' hosts $hosts


#desempaquetar/descomprimir archivos

simple-extract () {
    if [ -f $1 ]; then
        case $1 in
            *.tar.bz2)  bzip2 -d $1         ;;
            *.tar.gz)   tar -xvzf $1        ;;
            *.bz2)      bzip2 -d $1         ;;
            *.gz)       gunzip -d $1        ;;
            *.tar)      tar -xvf $1         ;;
            *.tgz)      gunzip -d $1        ;;
            *.zip)      unzip $1            ;;
            *.Z)        uncompress $1       ;;
            *)          echo "'$1' Error. Please go away" ;;
        esac
    else
        echo "'$1' is not a valid file"
    fi
}                


#captura de pantalla

function captura () { cd ~/src/screenshots && sleep 5; fbgrab `date "+%Y.%m.%d--%H:%M:%S"`.png }

function xcaptura () { cd ~/src/screenshots && sleep 5; xwd -root -out `date "+%Y.%m.%d--%H:%M:%S"`.wd}

  

17:26 - 6.03.2009 - comentarios {2} - publicar comentario

mini correo en la consola [ versión #03 ]

Publicado en sistema
mutt + fetchmail + procmail + gnupg + putmail

"No es más que un resumen veloz de como configurar el correo en la consola para tenerelo como referencia rápida si algún día pierdo mis configuraciones, como se puede apreciar en las siguientes líneas voy directo al grano en configurar las aplicaciones. Para profundizar más sobre el tema recomiendo leer la documentación de cada una de las herramientas aquí usadas"

El primer paso será crear un maildir donde alojar el correo:


vt102@i:~$ mkdir ~/mail
vt102@i:~$ su -c touch /var/spool/mail/vt102
vt102@i:~$ chmod -R 700 ~/mail/


Tras haber creado satisfactoriamente nuestro "cajón para el correo" ya podemos pasar al siguiente paso: configurar fetchmail. Para ello creamos su archivo de configuración y le damos los permisos adecuados:


vt102@i:~$ touch ~/.fetchmailrc
vt102@i:~$ chmod 600 ~/.fetchmailrc


Y como no, lo editamos para su correcto funcionamiento:


poll "tu.isp"                         #servidor de donde recoger el correo
    protocol pop3                   # protocolo deseado [ pop3 en este caso ]
    username "usuario"          # usuario
    password "passwd"          # contraseña         
    mimedecode                     #automatizar los mimecodes                  
    mda "/usr/bin/procmail -d %s"     # que MDA usar                  


Por defecto fetchmail envía el nombre de usuario y su correspondiente contraseña "desencriptadamente",  si deseas y sobretodo si tu servidor lo permite, puedes configurarlo para  encriptarlo via SSL.
Para ello añade a ~/.fetchmailrc la palabra ssl en la sección poll.

Dada por terminada la tarea de configurar fetchmail lo siguiente será hacer lo mismo con procmail:


vt102@i:~$ touch ~/.procmailrc
vt102@i:~$ chmod 600 ~/.procmailrc


Su archivo de configuración suele ser de lo más simple; para no ser menos, así de minimal lo dejaremos:


HOME=/home/vt102                          #nuestro home        
DEFAULT=/var/spool/mail/vt102     #donde guardar el correo por defecto
LOGFILE=$HOME/.procmaillog      #guardar un log


Para no "liarla" demasiado, llegados a este punto es muy recomendable comprobar si el resultado de lo hecho hatsa ahora es óptimo. Para ello, comprobaremos que fetchmail nos recoje el correo de nuestro servidor de correo, lo trae a nuestro ordenador y lo almacena en su correspondiente y correcto buzón local.


vt102@i:~$ fetchmail -v
fetchmail: 6.3.9-rc2 querying mail.hi-low.org (protocol POP3) at Thu 05 Mar 2009 04:28:22 PM CET: poll started
Trying to connect to 209.249.170.98/110...connected.
fetchmail: POP3< +OK EONPopper ready on pop29
fetchmail: POP3> CAPA
fetchmail: POP2< +OK POP3 EONPopper ready on pop29
fetchmail: Repoll immediately on vt102@hi-low.org@mail.globat.everyone.net
Trying to connect to 209.249.170.98/110...connected.
fetchmail: POP3< +OK EONPopper ready on pop26
fetchmail: POP3> USER vt102@hi-low.org
fetchmail: POP3< +OK
fetchmail: POP3> PASS *
fetchmail: POP3< +OK vt102@hi-low.org has 1 messages (546 octets)
fetchmail: POP3> STAT
fetchmail: POP3< +OK 1 546
fetchmail: POP3> LAST
fetchmail: POP3> UIDL
fetchmail: POP3< +OK
fetchmail: POP3< 1 0E12C66B00000003
fetchmail: POP3< .
1 message for vt102@hi-low.org at mail.hi-low.org (546 octets).
fetchmail: POP3> LIST 1
fetchmail: POP3< +OK 1 546
fetchmail: POP3> TOP 1 99999999
fetchmail: POP3< +OK
reading message vt102@hi-low.org@mail.globat.everyone.net:1 of 1 (546 octets)
#* flushed
fetchmail: POP3> DELE 1
fetchmail: POP3< +OK message deleted
fetchmail: POP3> QUIT
fetchmail: POP3< +OK goodbye
fetchmail: 6.3.9-rc2 querying mail.hi-low.org (protocol POP3) at Thu 05 Mar 2009 04:28:29 PM CET: poll completed
fetchmail: normal termination, status 0


Parece que funcionó correctamente, fetchmail se comunicó bien con mail.hi-low.org, bajó un mensaje que había alli y lo almacenó en mi buzón de correo local.
Lo siguiente y necesario será poner a funcionar el cliente de correo en sí para así leer el correspondiente mensaje y contestarlo si es menester. Para ello, reiteramos los pasos básicos anteriores:


vt102@i:~$ touch ~/.muttrc
vt102@i:~$ chmod 600 ~/.muttrc


Y como no, lo editamos:


set realname            = "vt102"
set from                = "vt102@hi-low.org"
set use_from            = yes
set envelope_from       = yes

set spoolfile           = /var/spool/mail/vt102   

    ignore *
    unignore from date subject to cc bcc
    unignore organization organisation x-mailer: x-newsreader: x-mailing-list:

    set editor              = "vim \\"+set textwidth=70\\""

    set mail_check          = 2

    set pager_index_lines   = 6
    set pager_format        = "%S [%C/%T] %n (%l) %s"

    set postponed           = ~/mail/postponed
    set mbox                = ~/mail/mbox
    set record              = ~/mail/sent-mail

    set status_format = "%v: %f (%s) [%M/%m] [N=%n,*=%t,post=%p,new=%b]"

    folder-hook .*          'set sort=threads'
    folder-hook .*          'set strict_threads'
    folder-hook .*          'set hdr_format="%Z %[!%y%m%d] %-17.17F (%3l) %s"'
    folder-hook sent-mail 'set hdr_format="%Z %{%b %d} %-15.15t (%4l) %s"'
    folder-hook sent-mail   'set sort=date-sent'

    set implicit_autoview


Las opciones a añadir a ~/.muttrc son interminables, sin dudas deberías de pasarte por la documentación de mutt y revisarlas.

Lo siguiente es "incrustar" el sistema de privacidad que aporta PGP;
Para ello el primer paso es crear la clave necesaria:


vt102@i:~$ gpg --gen-key
gpg (GnuPG) 1.4.9; Copyright (C) 2008 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

gpg: directory `/home/vt102/.gnupg' created
gpg: new configuration file `/home/vt102/.gnupg/gpg.conf' created
gpg: WARNING: options in `/home/vt102/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/home/vt102/.gnupg/secring.gpg' created
gpg: keyring `/home/vt102/.gnupg/pubring.gpg' created
Please select what kind of key you want:
   (1) DSA and Elgamal (default)
   (2) DSA (sign only)
   (5) RSA (sign only)
Your selection? 1
DSA keypair will have 1024 bits.
ELG-E keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
Requested keysize is 2048 bits
Please specify how long the key should be valid.
         0 = key does not expire
        = key expires in n days
      w = key expires in n weeks
      m = key expires in n months
      y = key expires in n years
Key is valid for? (0) 0
Key does not expire at all
Is this correct? (y/N) y

You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
    "Heinrich Heine (Der Dichter) "
You selected this USER-ID:
    "vt102 "

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o
You need a Passphrase to protect your secret key.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
+++++.++++++++++.++++++++++++++++++++..+++++++++++++++...
++++++++++++++++++++....+++++.+++++.+++++++++++++++.+++++
gpg: /home/vt102/.gnupg/trustdb.gpg: trustdb created
gpg: key A99E028B marked as ultimately trusted
public and secret key created and signed.
pub   1024D/A99E028B 2009-03-05
      Key fingerprint = 89A2 D318 9CF0 E251 EAD5  643A E220 77A8 A99E 028B
uid                  vt102
sub   2048g/184CB5D5 2009-03-05


Si todo ha funcionado, ya tenemos la clave correspondiente creada. Lo que ahora nos interesa es añadirla a mutt. Para ello editamos nuevamente ~/.muttrc y añadimos:



set pgp_decode_command="/usr/bin/gpg  \\
--charset utf-8   %?p?--passphrase-fd 0? --no-verbose \\
--quiet  --batch  --output - %f"

set pgp_verify_command="/usr/bin/gpg   \\
--no-verbose --quiet  --batch  --output - --verify %s %f"

set pgp_decrypt_command="/usr/bin/gpg  \\
--passphrase-fd 0 --no-verbose --quiet  --batch  --output - %f"

set pgp_sign_command="/usr/bin/gpg   \\
--no-verbose --batch --quiet   --output - \\
--passphrase-fd 0 --armor --detach-sign --textmode %?a?-u %a? %f"

set pgp_clearsign_command="/usr/bin/gpg \\
--charset utf-8 --no-verbose --batch --quiet \\
--output - --passphrase-fd 0 --armor --textmode --clearsign %?a?-u %a? %f"

set pgp_encrypt_only_command="pgpewrap /usr/bin/gpg \\
--charset utf-8    --batch  --quiet  --no-verbose \\
--output - --encrypt --textmode --armor --always-trust -- -r %r -- %f"

--charset utf-8 --passphrase-fd 0  --batch --quiet  --no-verbose \\
--textmode --output - --encrypt --sign %?a?-u %a? --armor \\
--always-trust -- -r %r -- %f"

set pgp_import_command="/usr/bin/gpg  --no-verbose --import -v %f"

set pgp_export_command="/usr/bin/gpg   --no-verbose --export --armor %r"

set pgp_verify_key_command="/usr/bin/gpg   --verbose --batch \\
--fingerprint --check-sigs %r"

set pgp_list_pubring_command="/usr/bin/gpg   --no-verbose --batch\\
--quiet   --with-colons --list-keys %r"

set pgp_list_secring_command="/usr/bin/gpg   --no-verbose --batch\\
--quiet   --with-colons --list-secret-keys %r"

set pgp_good_sign="`gettext -d gnupg -s 'Good signature from "' | tr -d '"'`"


Una vez añadido podemos ya usar mutt con ello; tras haber escrito un mensaje, la tecla "p" nos dara las opciones a elegir para el PGP, entre las cuales estarán firmar, encriptar o ambas a la vez. Tan sólo nos preguntará el passprhase si el mensaje es firmado.

Y nos queda configurar putmail para poder así enviar mensajes al exterior:


vt102@i:~$ mkdir ~/.putmail
vt102@i:~$ touch ~/.putmail/putmailrc
vt102@i:~$ touch ~/.putmail/vt102@hi-low.org


Y como no, editarlos adecuadamente:

~/.putmail/putmailrc


[config]
server = mail.hi-low.org
email = vt102@hi-low.org
username = vt102
password = blablablala


Y tambien ~/.putmail/vt102@hi-low.org


[config]
server = mail.hi-low.org
email = vt102@hi-low.org
username = vt102
password = blablablala


Si, son completamente iguales ambos ficheros de configuración, tan sólo varía el nombre.

Y eso es todo, en ningún momento [ tal y como bien indiqué al iniciar ] esto pretende ser una guía completa con la cual aprender, si no un muy básico esbozo para que pueda ser consultado ante cualquier pequeña duda que me pueda surgir si pierdo la memoria o mi disco duro.

  

16:02 - 5.03.2009 - comentarios {0} - publicar comentario

presentación

Publicado en consola
Animado por the tty he decidido iniciar una saga [ intentaré ser lo más activo posible ] donde incorporar entradas para tratar los usos y aplicaciones para la consola UNIX.
  

22:24 - 3.03.2009 - comentarios {0} - publicar comentario


.inicio
.rss
.amigos
.archivos










bloginom - blog gratis, opciones y plantillas exclusivas e personalizables :: nominom © 200