jueves, marzo 29, 2007
Cánon o la presunta culpabilidad
Cazadores de zombies
Otro dato que me ha llamado la atención: con la salida del SP2 de Microsoft, el número de zombies bajó de 10000~15000 a 5000 nuevos zombies diarios. Impresionante, ¿verdad?
Aquí encontraréis gráficas, datos y documentación al respecto:
http://www.shadowserver.org
viernes, marzo 23, 2007
Dilbert
miércoles, marzo 07, 2007
Código ofuscado
# Creamos el fichero temporal $ficheroDestino.
# Si ya existia, lo borramos para asegurarnos de que todo el contenido es nuevo.
if [ -f $rutaDestino ];
then
rm $rutaDestino
else
echo "" | tee $rutaDestino
fi
Y yo me pregunto:
1) ¿por qué si no existe lo creamos y porqué si existe lo borramos? ¿No sería más coherente, si lo borras, crearlo después?
Versión 1.1:
if [ -f $rutaDestino ];
then
rm $rutaDestino
fi
echo "" | tee $rutaDestino
2) ¿dónde ha visto "echo "" | tee $rutaDestino"? ¿Por qué la gente es tan enrevesada? ¿echo != echo ""? ¿| + tee != >?
Versión 1.2:
if [ -f $rutaDestino ];
then
rm $rutaDestino
fi
touch $rutaDestino
3) ¿Se puede ser más enrevesado aún? Probemos (se aceptan propuestas en los comentarios):
# Comprobamos si no existe el fichero y si existe dev null y escribimos fin de linea (con comillas-comillas ¿?¿?¿?)
( [ ! -f $rutaDestino ] && [ -c /dev/null ] && echo "" | tee $rutaDestino > /dev/null 2>&1 ) || ( [ -f $rutaDestino ] && [ -c /dev/null ] && rm $rutaDestino && echo "" | tee $rutaDestino > /dev/null 2>&1 )
4) ¿Los agujeros negros existen? ¿existe /dev/null?
Versión 2.0:
# Si existe el fichero lo vaciamos
# Si no existe el fichero, lo creamos vacio para asegurarnos que el contenido es nuevo
cat /dev/null > $rutaDestino
Redios... y estos tios desarrollan software.
sábado, febrero 10, 2007
Navegar y explorar no es lo mismo
"Además, incluye un explorador de Internet, un diccionario mandarín-inglés y una aplicación de calendario para la gestión de citas."
¿Qué coños es un explorador de Internet? Mal vamos cuando empezamos así.
Además, explorar y navegar no es lo mismo. ¿Acaso puedes navegar la cultura indígena o la jungla? Puedes navegar por Internet pero no explorarlo.
¿Por qué lo utilizan como si fuesen sinónimos? Claro que no son los únicos inútiles dejados llevar por la mierda que usan.
sábado, diciembre 30, 2006
RIP for free
Hay una revista que murió, que me gustaba, ante todo, la orientación práctica que tenía. Había algunas cosas que, literalmente, apestaban (como un curso de Visual Basic) pero había otras cosas realmente interesantes. Tras su muerte han sacado los PDF (no escaneado, sino el original) para descarga pública gratuita. Os dejo el script para bajaros las revistas:
for i in `seq 1 30` ; do
wget http://trucosdebian.info/HXC/hxc${i}.pdf
done
Aviso: la nº 6 está incompleta
[1]De la wikipedia: Una persona que alardean de pirata informático, crackers o hackers y solo intenta utilizar programas de fácil manejo realizados por auténticos hackers, sin obtener los resultados que pretendía; incluso llegando a perjudicarse a el mismo.
La chica nueva
Pues eso acabó en trabajar las tardes de lunes a viernes, y los fines de semana y festivos turnarnos las guardias entre todos. Bueno, ahora somos 3 pero tenían que buscar a mi compañero. Yo dije que si iba a ser su responsable quería seleccionarlo yo. Al final las prisas han hecho estragos. Sólo puede entrevistarla una vez ya seleccionada para conocer su nivel. Vamos a obviar su CV, que no lo hubiese cojido pues lo más destacado es que impartió un curso de GNU/Linux ¡¡¡con Mandrake!!!
Éstas fueron mis preguntas:
XiR- ¿Has configurado Apache 2?
Nueva- Sí
X-¿con hosts virtuales?
N-No
X-¿Bases de datos?
N-Oracle
X-¿Has tocado Postgres?
N-No
X-¿Debian?
N-Me la he instalado en casa pero no me funciona
"¿que no te funciona? ¿qué significa no me funciona?"-pensé. Supongo que no podía evitar poner caras.
X-¿Cisco?
N-No
X-¿Postfix?
N-No
Bueno, parece que voy a tener trabajo... sigo con las preguntas:
X-¿Tienes ordenador en casa?
N-Sí
X-¿Cuantos?
Me miró extrañada como pensando: ¿alguien puede tener más de uno?
N-Uno
X-¿Con qué sistema operativo?
N-Está particionado con Windows y Debian (la que no me funciona) y en un vmware tengo una Mandrake
X-¿Tienes PDA?
N-No, pero sí la quiero
X-¿La reflashearías con otro sistema operativo?
N-No
X-¿Tienes consola: Xbox, PS1, PS2?
N-No
X-¿Sabrías cómo se "hackea" alguna de ellas?
N-No.
X-¿Sabes quién Larry Wall?
N-No, ¿quién?
X-Quién desarrollo Perl. ¿Y Alan Cox?
N-No
X-¿Richard Stallman?
N-No
X-¿la Free Software Foundation?
N-No
X-Bien, no tengo más preguntas. Gracias por venir.
N-No te preocupes. Aprendo rápido.
Lo que me preocupaba, realmente, no es que aprenda rápido o lento ya que parecía tener muy buena actitud al respecto. Lo que realmente me preocupaba es que ¡¡¡no le gusta la informática!!!
La empresa y tú
Utilicé Infojobs principalmente, porque ya tenía el CV introducido de hacía unos años. Cuando me dí de alta en otros portales de búsqueda de trabajo y ¡¡¡ví lo pesado que es rellenar todos esos campos!!! Así que me dejé llevar por lo fácil. Aún así estuve de entrevistas durante 15 días con una media de 1,10 entrevistas al día.
El caso es que quería salir de Madrid e irme a vivir a la playa, al sur. Buscando mi tipo de trabajo en Málaga me dí cuenta que por cada uno que encontraba y en el que requerían mucha menos experiencia que la mía (a demás de un sueldo bastante inferior), encontraba 20 para mí (en principio) en Madrid.
Al final seguí en mi compañía aunque en otro cliente y descarté otra empresa que, aunque su proyecto me gustaba mucho, el salario ofrecido era menor. "Si en mi empresa estoy bien y quieres que me vaya contigo, no me dés lo que ya tengo sino que motivame de alguna manera a cambiar", pensé. Así que, si me cambiaba y no era a Málaga, tendrían que "pagarme" una buena razón. Además, parece que no sepan lo de "más vale malo conocido..." (aunque en mi caso no era malo).
Descarté la oferta pero siempre dejando claro que la pega era económica y que lo demás me había gustado. Y así, a los 15 días de haber empezado el nuevo proyecto, me volvieron a llamar contándome que habían reestructurado el servicio para poder pagar lo que pedía.
Así que tras intentar dejar zanjado todos los "miniproyectos" que había empezado, salí de allí con varios amigos hechos y el buen recuerdo de la compañía. De hecho me quedé la tarjeta de acceso al edificio como recuerdo (con permiso suyo) que desactivarán. XD
He descubierto que tratar con profesionales es un placer. Cuando les dices que te ofrecen más en otro sitio y lo entienden como una regla del mercado (que ellos mismos han creado) y no como una ofensa personal... realmente debería ser siempre así, aunque no lo es.
Me duele dejar la compañía porque estaba contento de estar en ella pero trabajamos para vivir (no vivimos para trabajar, Sergio) y necesitamos motivaciones y dinero para alcanzar nuestros sueños (nuestras motivaciones privadas).
Todo esto viene a cuento de un email que he recibido de Miguel en el que me decía que este post en Josep on technology le había recordado a mí.
El día que encuentre una oferta del tipo: "buscamos a ingeniero informático que sepa de Linux, redes y Futurama" me va a faltar tiempo para enviar el CV.
martes, diciembre 19, 2006
Criptionando
Create or replace procedure Buenos_dias
Declare
Saludo:=’Hola Ivan’;
Begin
Dbms_output.put_line(‘lo de copiarlo sólo los domingos ¿es por algo?’);
Exception
when no_data_found
Dbms_output.put_line(‘el remitente pasa de mi cara y no responde’);
when others
Dbms_output.put_line(‘SORRY NEN, yo que sabía’);
End;
Así que, ante su pregunta, tuve que responderle:
6f50 7172 6575 4c20 7561 6172 7020 6569
736e 2061 7571 2065 6e75 2061 6c61 6420
6169 7620 2061 2061 6573 2072 756d 6863
206f 7563 6e61 6f64 7320 2065 6168 6167
6520 7473 206f 6f63 206e 616c 2073 6564
616d 2073 4242 4444 0a2e
Y, el muy "colgado" volvió al ataque:
JUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Pero ya me lo sabía ….
...y es que algunos no tienen solución
domingo, diciembre 03, 2006
Seguro, pero con cabeza
Pero una vez superada la pega, me sigue dando vueltas por la cabeza que segurizan los servicios, pero NO utilizan iptables. Me parece un gran error, ya que configurar TODOS los servicios correctamente supone muchísima concentración y casi más conocimiento ya que cada servicio es un mundo. Además hay servicios que abren puertos para comunicarse consigo mismo y que no se pueden cerrar pues el programa deja de funcionar. Con iptables no existe ese problema porque tu decides cuáles son las máquinas de origen y destino entre otra muchísimas cosas.
Como diría el anuncio: "Empty your mind. Be formless, shapeless. Like iptables. You put iptables into a bottle and it takes care of the bottle hole. You put in a teapot, it becomes the teapot handle. Iptables lets packets flow, or it can crash 'em. Be iptables, my friend!"
domingo, noviembre 26, 2006
Bitacorea o cuenta
Me gustaría haber podido contar antes cuánto me reí cuando pensaba que en mi anterior trabajo, aunque no estaban realmente cualificados, al menos podrían mantener lo que había: el día a día.
Recibí uno de los últimos días allí un mail de mi ahora ex-jefe diciendo a sus chicos: "Hay que revisar todos los días los logwatch".
Pensé: "creía que el único que los ojeaba era yo. Me alegra ver que han aprendido algo". Plantar una semillita de conociemiento siempre te hacer sentir orgulloso. Seguía el mail: "Hay que asegurarse que llegan 53. Si hay menos, es que alguna máquina tiene problemas. No hace falta leerlos, aunque eso sería la ostia".
Para eso ponte un cron que te envíe un correo diciendo como cuando iban nuestros padres al colegio: "Presente para servirle a Ud. a Dios y a España" y no pierdas horas y horas de proceso en sacar unas estadísticas que ni siquiera piensas mirar.
Por cierto, el orgullo me desapareció de un garrulazo*.
*Acción realizada por un garrulo.
lunes, octubre 30, 2006
Resurrección
Da igual si haces oidos sordos al pequeño demonio (daemon) que te recuerda que "sólo te quedan un par de semanas" y luchas agarrando al angelito y atándotelo a la oreja para que te repita constantemente que "debes ser profesional". Cualquier fallo será mal visto.
En cualquier caso sé que lo estoy haciendo tan bien (o tan mal) como antes, pero ahora como ven que se acerca el día en que no puedan pedirme que les solucione X o Y...
Así que estamos de entrevista en entrevista a ver quién me encandila para seguir viviendo en Madrid (puajjjjj). ¡¡¡Maldito$ din€ro$!!!
miércoles, septiembre 27, 2006
Un BOFH aburrido
-Melting hard drives
-BNC (brain not connected)
-no "any" key on keyboard
-NOTICE: alloc: /dev/null: filesystem full
-We already sent around a notice about that.
-had to use hammer to free stuck disk drive heads.
-techtonic stress
-Interference between the keyboard and the chair.
-Suspicious pointer corrupted virtual machine
-pseudo-user on a pseudo-terminal
-Feature not yet implemented
-Maintenance window broken
-Recursive traversal of loopback mount points
-Internet shut down due to maintenance
Y es que toparte con gente que no sabe todo lo que debería te da cierta ventaja a la hora de inventarte excusas. ¿Necesitas un BOFH-excusador? No tienes más que instalar los paquetes fortunes y fortunes-bofh-excuses.
Esto me recuerda a una vez que se había colgado un PC. El típo estaba dado la vuelta hablando por el móvil y yo reinicié a "botonazo" el PC. Arrancó perfectamente. Cuando me preguntó qué le ocurría le dije que "es que había un conflicto con los punteros a IPs, pero que ya lo he arreglado. Quizás vuelva a pasar".
viernes, septiembre 08, 2006
Mayusculeador/Minusculeador
Admite 2 tipos de parámetros:
-por defecto pasa de mayúsuclas a minúsculas; para pasar de minúsculas a mayúsculas: -r
-el directorio sobre el que actuar (directorio actual si no se indica nada).
#!/bin/bash
###################################
#
# Copyleft Ivan Eguiguren
# September the 8th, 2006
#
###################################
[ -d "$1" ] && cd $1
[ -d "$2" ] && cd $2
[ "$1" == "-r" ] && MAY=1
[ "$2" == "-r" ] && MAY=1
ls > /tmp/listado1
if [ $MAY ] ; then
tr 'a-z' 'A-Z' < /tmp/listado1 > /tmp/listado2
else
tr 'A-Z' 'a-z' < /tmp/listado1 > /tmp/listado2
fi
join -i -a1 -a2 -o 1.1 2.1 /tmp/listado1 /tmp/listado2 > /tmp/listado3
sed -e 's/^/mv /' /tmp/listado3 > /tmp/listado4
chmod 755 /tmp/listado4
/tmp/listado4
sleep 4
rm /tmp/listado[1-4]
viernes, julio 21, 2006
Sin palabras
From: "Usuario lelo"
To: "Avisos aplicaciones Java"
Asunto: Avería en la impresora de Color del Vicesecretario general técnico.
Ruego toméis nota para llamar al departamento técnico por avería en la impresora de color del Vicesecretario General Técnico despacho nº 123. Muchas gracias
Mensaje directo, escueto y a ¿una dirección aleatoria? Pero ¿cómo se puede ser tan memo?
jueves, junio 15, 2006
Casualidades
Ruiz wrote:
>> Nos comentan una incidencia que se produce en la Aplicación de Consulta
>> de Centros Universitarios (http://tproperez/centrosweb/). Al parecer no
>> se puede acceder desde la calle aunque el acceso desde Vitruvio o desde
>> el CCU no da ningún problema.
Hola:
Pues no sabes qué alegría me das, porque si pudiesen acceder con esa URL
estaría algo mal configurado. Aquí tienes la URL correcta:
Si es que se inventan las cosas y encima ¡¡¡quieren que les funcione!!!
viernes, abril 07, 2006
Integración de SPF en Spamassassin
Spamassassin es un filtro de correo escrito en Perl para identificar spam utilizando multitud de tests heurísticos en las cabeceras de un correo y en el cuerpo del mensaje. Es software libre.
Cómo funciona Spamassassin.
Cuando nuestro servidor de correo recibe un mensaje, se lo envía al demonio de Spamassassin, quien procede a ejecutar una serie de tests sobre él. Cada uno de ellos añade o quita unas pocas milésimas de puntuación a dicho correo. Si la puntuación que asigna un test es positiva, es que tiene cierto parecido con el spam; por contra, si esa puntuación es negativa, es que tiene parecido con correo válido. Así, una vez pasados todos los tests se suman todas las puntuaciones para hallar la puntuación total de dicho correo. Si esa puntuación está por encima de un margen, el mensaje podrá ser marcado como spam, si pasa por encima de un segundo límite, será directamente descartado.
Tanto las puntuaciones como los límites más arriba citados pueden ser configurados y modificados a nuestro antojo.
Cómo funciona SPF
SPF nos permite comprobar mediante una consulta DNS si un servidor está autorizado para enviar correo de un dominio determinado. Para ello el administrador del DNS del dominio remitente debe haber configurado la/s entrada/s correspondiente/s en el servidor DNS de ese dominio. Igualmente el receptor debe haber configurado el servidor que recibe el correo para hacer la consulta DNS. SPF no evita el Spam, sólo asegura que un correo viene de donde dice venir.
Porqué integrar SPF dentro de Spamassassin
Una buena razón es que en lugar de recibir un correo y aceptarlo o directamente descartarlo por su razón SPF, le asignemos una puntuación más y lo tratemos como un test más dentro de SPF.
Cómo integrar SPF dentro de Spamassassin
A partir de la versión 3.0 de Spamassassin es bastante sencillo, ya que viene integrado dentro de Spamassassin. Aún así, habrá que activarlo e instalar el módulo Perl que nos dará la funcionalidad SPF. Para ello instalamos el módulo Perl Mail::SPF::Query. Procedemos a activar el SPF en el Spamassassin, para ello descomentamos en el fichero
/etc/mail/spamassassin/init.pre (path válido para RedHat) la línea:
loadplugin Mail::SpamAssassin::Plugin::SPF
Ahora reiniciando el Spamassassin tendríamos ya el SPF incrustado en el Spamassassin. Sólo nos queda ajustarlo a nuestro gusto. Para ello modificamos las puntuaciones de los tests SPF en
/etc/mail/spamassassin/local.cf añadiendo una línea del tipo:
score SPF_FAIL 5
Reiniciamos de nuevo Spamassassin para que coja los cambios y ya lo tenemos activado.
viernes, marzo 24, 2006
Adivina adivinanza
>
> Hola, podeis actualizar las páginas que tenemos en el ftp de producción.
>
> Son las siguientes paginas:
> -Grundtvig2D2b.jsp
> -Grundtvig2D2bm.jsp
> -ariona.jsp
>
> Muchas gracias
> Un saludo
Impresionante. Yo entendí tanto como vosotros:
Hola.
No están sueltas en el ftp de preproducción. Decídme si están en alguna
carpeta en cual. Tampoco sé a qué servidor de producción (y aplicación) hay que subirlo. Por favor, seguid el procedimiento establecido.
Procedimiento que detallamos en una web para deleite de los programadores y tranquilidad nuestra y que no haya listos que manden este tipo de correos. Continúo:
Concluyendo, si lo de arriba es una pregunta a pesar de no tener
interrogantes (vienen de serie en los teclados), la respuesta sería "No".
Final:
Hola,
Las páginas están en el servidor de preproduccionweb.intranet.local, dentro de la carpeta "aplices", para ello hemos utilizado el usuario despliegue. ¿Puedes subir dichas páginas a aplices.moc.com para actualizarlas?
Un saludo
¡¡¡Qué paciencia!!! Pero da sus frutos...
lunes, marzo 13, 2006
Pringao-not HOWTO
Lista de precios de servicios (sujetos a modificación, ganas y momento)
Matar algo.................................................................................2€
Crear algo..................................................................................3€
Paquete completo de creación de algo.................................10€
Consultas de “Solo un momentito, de 5 minutos, etc.”........3€
Consultas de “me puedes mirar esto” ...................................5€
Consultas de “me podrías mirar ” ..........................................5€
Consultas de “bueno, ya que estoy aquí” ..............................5€
Consultas de “chicas me podéis mirar esto” .........................3€
Se añadirán suplementos específicos de 2€ a aquellas coletillas como:
"Pues yo no he hecho nada"
"Pues ayer estaba igual"
"Habéis cambiado la versión"
"Pues me da un error de BD"
Todos estos precios en monetario también pueden ser cambiados por emolumentos en especias.
Las más apreciadas en este grupo son:
Cajas de: bombones, pastas y cualquier dulce
Tampoco hacemos asco a cualquier tipo de producto de nuestro país que tenga que ver con el cerdo ibérico de pata negra, tanto sea jamón, lomo embuchado o chorizo.
Los quesos nos gustan todos.
En cuestión de bebidas rogamos que antes nos pregunten porque según que día y hora nuestros cuerpos necesitan diferentes tipos de caldos.
Firmado: El grupo de SBA.
P.D.
Se ruega no regateen ni nos pidan cambio, quedarán mucho mejor si directamente introducen los precios redondeados al alza en nuestra hucha(el servicio se prestará antes y mucho mejor además de la consiguiente sonrisa con la que serán obsequiados nuestros clientes).
Se hacen ofertas a grupos y por temporada.
Amén.
miércoles, marzo 08, 2006
Organización de archivos
#!/bin/bash
#Variables
# Dias que conservamos los ficheros
DAZE=15
# Longitud del fichero
LONG=30
DIR=/logs/
FILE=fichero
SERV=/etc/init.d/servicio
FICH=${DIR}$FILE
#Comprobamos si FICHERO ocupa mas de LONG MB
if [ `du -cms $FICH | tail -1 | cut -f1` -ge $LONG ] ; then
#Paramos el servicio SERV
$SERV stop
#Esperamos 2 minutos (pura precaucion para que el servidor pare)
sleep 120;
# Movemos el fichero
mv $FICH ${FICH}$(date +%d%m%y)
cat /dev/null > $FICH
$SERV start
#Eliminamos los ficheros más antiguos de DAZE dias
rm -f $(find $DIR -ctime +$DAZE)
fi
I+D
He tenido "LA IDEA". Utilizar una alfombra de esas de baile para maneja el ordenador, para leer el correo, para organizar las fotos...
Ups...creo que debe estar hasta patentada... no he dicho nada, no he dicho nada.
http://research.microsoft.com/vibe/projects/stepUI.aspx
martes, febrero 21, 2006
Instalar crontab dentro de un chroot
Desde la raiz del chroot-jail ponemos como root:
# mkdir tmp
# chmod 4777 tmp
# mkdir -p var/spool/cron/
# touch var/spool/cron/nombreusuario
# chgrp nombreusuario var/spool/cron/nombreusuario
# touch etc/cron.deny
# ln -s /var/chroot/nombreusuario/var/spool/cron/nombreusuario /var/spool/nombreusuario
El usuario tendrá que crear un fichero, por ejemplo cron-usuario, y pasárselo de parámetro al comando crontab:
$ crontab cron-usuario
Así, con crontab -l podrá comprobar como esos trabajos quedan listos para que los ejecute cron a la hora prevista.
jueves, febrero 16, 2006
Configuración de una máquina para chroot de usuarios
Creamos una shell:
[root@potito ~]# cd /bin
[root@potito bin]# vi chrootbash
#!/bin/bash
/usr/bin/sudo /usr/sbin/chroot /var/chroot/$USER /bin/bash
Y le damos permisos de ejecución:
[root@potito bin]# chmod +x /bin/chrootbash
Nos aseguramos de que existe el directorio donde vamos a crear los “homes” de los usuarios:
[root@potito bin]# ls -ld /var/chroot
ls: /var/chroot: No existe el fichero o el directorio
Así que lo creamos:
[root@potito bin]# mkdir /var/chroot/
Creamos los usuarios con:
[root@potito bin]# useradd -s /bin/chrootbash -d /var/chroot/usuario usuario
y le asignamos un password:
[root@potito bin]# passwd usuario
Changing password for user usuario.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
Creamos el árbol de directorios que va a ver:
[root@potito bin]# cd /var/chroot/usuario
[root@potito usuario]# mkdir bin etc dev home lib usr usr/bin
[root@potito usuario]# cd ..
[root@potito chroot]# chown -R usuario:usuario usuario
Y copiamos la línea del fichero passwd del usuario:
[root@potito chroot]# grep usuario /etc/passwd > usuario/etc/passwd
[root@potito chroot]# grep usuario /etc/group > /etc/group
Instalamos los programas a los que queremos que tenga acceso en la cuenta de usuario y las librerías que utilicen:
[root@potito chroot]# cp /bin/bash /var/chroot/usuario/bin/
[root@potito chroot]# ldd /bin/bash
libtermcap.so.2 => /lib/libtermcap.so.2 (0x00689000)
libdl.so.2 => /lib/libdl.so.2 (0x005f8000)
libc.so.6 => /lib/tls/libc.so.6 (0x004cd000)
/lib/ld-linux.so.2 (0x004b4000)
[root@potito chroot]# mkdir usuario/lib/tls
[root@potito chroot]# cp /lib/libtermcap.so.2 /lib/libdl.so.2 /lib/ld-linux.so.2 usuario/lib/
[root@potito chroot]# cp /lib/tls/libc.so.6 usuario/lib/tls/libc.so.6
[root@potito chroot]# cd usuario
[root@potito usuario]# cp /lib/libnsl.so.1 /lib/libnss_nisplus.so.2 /lib/libnss_nis.so.2 /var/chroot/usuario/lib/
[root@potito usuario]# mkdir lib/security
[root@potito usuario]# cp /lib/security/pam_rootok.so /lib/security/pam_warn.so /lib/security/pam_unix.so lib/security/
[root@potito usuario]# mkdir usr/lib
[root@potito usuario]# cp /usr/lib/libcrack.so.2 usr/lib/
[root@potito usuario]# mkdir etc/pam.d
[root@potito usuario]# cp /etc/pam.d/su /etc/pam.d/other etc/pam.d/
[root@potito usuario]# cp /bin/ls /bin/cp /bin/rm /bin/mkdir /bin/rmdir bin/
[root@potito usuario]# ldd /bin/ls /bin/cp /bin/rm /bin/mkdir /bin/rmdir | grep -v ':' | cut -f1 -d'(' | grep -v '=>' | sort | uniq > /tmp/libs
[root@potito usuario]# ldd /bin/ls /bin/cp /bin/rm /bin/mkdir /bin/rmdir | grep -v ':' | cut -f1 -d'(' | grep '=>' | cut -f2 -d'>' | sort | uniq >> /tmp/libs
[root@potito usuario]# for i in `cat /tmp/libs`; do cp $i .$i ; done
Copiamos 'su' y sus librerías:
[root@potito usuario]# cp /bin/su bin/
[root@potito bin]# ldd /bin/su | grep -v ':' | cut -f1 -d'(' | grep '=>' | cut -f2 -d'>' | sort | uniq > /tmp/libs
[root@potito bin]# ldd /bin/su | grep -v ':' | cut -f1 -d'(' | grep -v '=>' | cut -f2 -d'>' | sort | uniq >> /tmp/libs
[root@potito usuario]# for i in `cat /tmp/libs`; do cp -f $i .$i ; done
Editamos sudoers y le autorizamos a hacer sudo poniendo al final del fichero:
[root@potito usuario]# visudo
#chroot
usuario ALL = /usr/sbin/chroot
miércoles, febrero 01, 2006
Re: Utilizando código
#!/bin/bash
#Publicado bajo licencia GPL
#XiR_ @2006
#Declaramos las variables
export LC_ALL=es_ES
export JAVA_HOME=/usr/local/java
export JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=ISO-8859-15 -Duser.language=es -Xms1024m -Xmx2048m"
export ID-TOMCAT=500
#Funcion que intenta parar el tomcat por las buenas y si no lo mata (kill)
#Solo se puede ejecutar por el usuario tomcat (id=500)
matar() {
if [ `/usr/bin/id -u` == $ID-TOMCAT ] ; then
/usr/local/tomcat/bin/shutdown.sh > /dev/null 2>1&
sleep 5
NUM_PROCESOS=`ps -fe | grep tomcat | grep "/usr/local/java/bin/java " | wc -l`
if [ $NUM_PROCESOS -eq 0 ] ; then
echo "Parado correctamente"
else
kill `ps -fe | grep tomcat | grep "/usr/local/java/bin/java " | grep -v grep | cut -c 7-14` > /dev/null 2> /dev/null
sleep 10
kill -9 `ps -fe | grep tomcat | grep "/usr/local/java/bin/java " | grep -v grep | cut -c 7-14` > /dev/null 2> /dev/null
echo "Parado bruscamente"
fi
else
echo "Error: este programa debe ser ejecutado siendo el usuario tomcat."
fi
}
#Funcion que comprueba si se esta ejecutando y si no, lo arranca
#Solo se puede ejecutar por el usuario tomcat (id=500)
arrancar() {
if [ `/usr/bin/id -u` == $ID-TOMCAT ] ; then
ps -fe | grep tomcat | grep "/usr/local/java/bin/java" | grep -v grep > /dev/null 2>&1
if [ $? == "1" ] ; then
/usr/local/tomcat/bin/startup.sh > /dev/null 2>1&
if [ $0 ] ; then echo "Arranque correcto" ; fi
else
echo "Ya esta arrancado. Detengalo antes de intentar arrancarlo."
fi
else
echo "Error: este programa debe ser ejecutado siendo el usuario tomcat."
fi
}
#Funcion que comprueba si se esta ejecutando el tomcat, y de estarlo devuelve su PID
estado() {
sleep 3
ps -fe | grep tomcat | grep "/usr/local/java/bin/java" | grep -v grep > /dev/null 2>&1
if [ $? == 0 ] ; then
PID=`ps -fe | grep tomcat | grep "/usr/local/java/bin/java" | grep -v grep | cut -c 7-14`
echo "Ejecutandose con pid $PID"
else
echo "No ejecutandose"
fi
}
case "$1" in
start)
arrancar
estado
;;
stop)
matar
estado
;;
restart)
estado
matar
sleep 5
arrancar
estado
;;
status)
estado
;;
*)
echo "$0 {start|stop|restart|status}"
;;
esac
jueves, enero 26, 2006
Des FACHA tez
Antecedentes:
Tenemos un filtro de contenidos en el proxy. Si crees que hay alguna dirección bloqueada que no debía estarlo puedes notificárselo a la empresa para que lo modifique para la siguiente actualización.
También tenemos 2 proxies: uno con el filtro para el que el navegador coge la configuración por defecto y otro proxy sin filtro que podrías configurarte a mano.
El caso:
Ayer recibimos este correo de uno de "los cabecillas" de soporte de usuarios:
Buenos días:
A Julio Apellido administrador del edificio de San Perro Grande le ha salido como bloqueada la dirección que está en el mensaje que adjunto. Está indignado porque dice que otros compañeros no tienen ese problema.
Le podeis dar una solución o una aclaración al tema.
Bueno, habrá que ver al administrador este qué le ocurre. Leo el adjunto:
De: urlcheck@empresa.com
Enviado el: lun 23/01/2006 11:28
Para: Apellidos, Julio
Asunto: CORRECTAMENTE CLASIFICADA
Estimado Cliente:
Le comunicamos que la página de Internet que ha solicitado revisar, http://www.microsoft.com/games/default.aspx, no puede ser desbloqueada ya que pertenece a una categoría restringida y está correctamente clasificada en nuestras listas.
Le rogamos consulte a la persona que haya contratado el producto su perfil de filtrado o las Listas Personales.
Le saluda atentamente,
Centro de Atención al Cliente
Es acojonante el morro que le echan algunos. Que lea el periódico o algo así, que no voy a perder tiempo en permitirle el acceso a esos sitios... o en su defecto que trabaje
Mensaje de relax al administrador: ponte un salvapantallas que sea el ying-yang o un paisaje relajante. Cuanta hasta 100,34 de 0,02 en 0,02. Una vez que te hayas aburrido de contar y te hayas relajado contesta a estas gilipolleces o, mejor, bórralo directamente esperando que no sea tan estúpido como para volver a molestarte por segunda vez.
Si vuelve a molestar lo leeréis aquí.
miércoles, enero 11, 2006
Tipos de usuario
1. El Explícito
Esta misma mañana me ha llamado un programador para decirme: "sobre lo que os mandamos ayer, bueno, pues la ruta que nos disteis nos da un error".
Hombre, a lo mejor puedes llegar a saber qué significa si al menos sabes quién es y hubieses hablado con él ayer. Y encima yo, que para retener menos datos, cada vez que mandan un correo o llaman les digo que pongan la máquina y la aplicación a la que se refieren...esté dió en el clavo con todo.
2. El Manipulador Loco
Me hace gracia cuando los programadores me mandan correos en los que se inventan las rutas a los directorios o llaman a librerías que no existen en los servidores y que en ningún sitio pone que existan (ni las rutas ni las librerías) y encima te llaman para decir que la aplicación no funciona.
La verdad es que es mejor así, porque si llegan a funcionar me retiro.
3. El Kamikaze
Recuerdo este verano que vino un programador nuevo, que se inventaba cómo estaban instaladas las máquinas, que (siendo los servidores GNU/Linux) probaba las aplicaciones en su máquina (M$ Windows) y luego me intentaba convencer de que el que no tenía ni idea era yo. Que en el servidor tenía que funcionar porque estaba instalado y configurado así, así, y asá. Este es kamikaze pero por no saber con quién trataba.
4. El Místico
Me recuerda a un programador que me decía que la aplicación unas veces generaba los pdf, y otras veces no... será la posición de la luna...¡no te jode!
5. El Gurú
Pues precisamente no era gurú, cuando llegué al PC de una usuaria porque le había dado un pantallazo azul el winipimer y me había copiado ¡¡¡el volcado de memoria en un post-it!!!. Eso sí, me dijo: "por si te sirve".
6. El Gafe
¿cuántas veces habremos oido lo de "No lo entiendo, te aseguro que hasta que has venido no funcionaba"? Siempre me he quedado con las ganas de contestar: "es que no tienes ni puta idea de cómo hacerlo... ¿o te crees que yo le asusto y funciona bien?"
7. El Temerario
Un jefe de un departamento, que teníamos que instalar una máquina sólo para su aplicación, me dice: "Yo lo haré contigo, que tengo experiencia con Tomcat y [...]", un pesao sabelotodo. Continua:"podemos poner 2 Tomcat en cluster". Mi pensamiento fué: "¡genial! Algo nuevo a aprender". Empecé a preguntarle si funcionaban bien, si eran fiables, si costaba mucho instalarlos y configurarlos, etc. Su respuesta me abrumó: "no sé, no he instalado nunca un tomcat, pero los he administrado bastante". Si, vamos: instalar, arrancar, parar y borrar aplicaciones que eso se hace por web. Será #!$@
8. El Director de Orquesta
En esta clasificación entra el tipo que comenté en otro post que me contaba todo lo que hacía para administrar la base de datos de la biblioteca. Con los errores es igual...empieza por cómo arrancó el ordenador, si tardó medio segundo más de lo habitual, etc.
9. La Princesa
¿Para qué hablar de los envidiosos? No pongo en esto ninguna historia, porque si pongo una pongo todas, y tardaría demasiado en cargar el blog.
10. El Sospechoso
El típico "ayer funcionaba, y hoy no y no se ha tocado nada". A lo que siempre respondo lo mismo: "bueno, pues si ha sido ello solo no haré nada, que se arreglará solo igual". Ahí ya sí que empiezan: "no, échale un vistazo porque a lo mejor han actualizado no se qué o..."
Orden de trabajo del administrador: intenta tener siempre un terminal abierto a mano en el escritorio... y juega a juegos de nombres raros que puedas minimizar cuando alguien se acerque y no sepán qué es. Así parecerá que estás trabajando.
viernes, diciembre 30, 2005
Hablando de más
Realmente me parece algo poco práctico. Como muestra:
Date: Fri, 30 Dec 2005 12:20:34 +0100
From: "ivan"
User-Agent: Debian Thunderbird 1.0.7 (X11/20051017)
To: =?ISO-8859-1?Q?Jes=FAs_Angel?=
CC: Internet
Subject: Re: copias de seguridad de aplicación
Jesús wrote:
> Hola,
> me han pedido que os pregunte si se están haciendo copias de seguridad
> de los ficheros que se guardan en disco duro de aplicacion, es decir, la
> estructura de ficheros que se guardan en /backup/xxxxxx.
>
>
> Un Saludo.Jesus
Si
Primera ley de la efectividad del sysadmin: no pierdas tiempo en explicarle a un usuario como funciona tu mundo. Ellos pueden vivir sin saberlo, pero tu paciencia se puede ver gravemente dañada.
lunes, diciembre 19, 2005
Merlin
Hola,
estamos teniendo problemas con la aplicación Petris (en producción) a la hora de enviar correos. ¿Podeis comprobar si funciona correctamente el servidor de correo (petris utiliza localhost como servidor)?
Saludos,
Respuesta:
Hola:
Funciona correctamente. ¿Qué significa "tenemos problemas"? ¿Que no conecta, que devuelve un mensaje con el error, que no enruta bien hacia Internet, que no enruta bien hacia la intranet?...
Lo siento, hoy me he dejado las artes adivinatorias en casa.
Un saludo.
Consejo al administrador despistado (todos tenemos días malos): No te excedas mostrando tu lado humano. No lo sabes todo cuando no te interesa; cuando te interesa lo sabes TODO.
martes, diciembre 13, 2005
Enseñando al usuario
From: "ivan.eguiguren"
User-Agent: Debian Thunderbird 1.0.7 (X11/20051017)
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: "XXXXXXXXXXXXXXXXXXXX"
Subject: Re:
http://xxxxxxxxxxxxxxxx.es:8080/infraestructuras/jsp/index.jsp
apunta al jboss...lo que está caido es el tomcat que es donde está transfic.
http://www.netiqueta.org/netiqueta_correo.shtml
Punto número 15
Usuario wrote:
> Da error interno del servidor en esta dirección:
> http://xxxxxxxxxxxxxxxxx.es/transfic/index.html
> Pero carga en la página que nos distes:
> http://xxxxxxxxxxxxxxxxx.es:8080/infraestructuras/jsp/index.jsp
> > ¿Como se explica?
La próxima vez borraré el correo y cuando aparezca aquí le diré que correos sin asunto son habituales entre el spam, y que lo habrá eliminado el filtro...qué coños, le diré la verdad: que lo he borrado sin leerlo porque no tenía asunto.
Truco del administrador cívico: enseña a tus usuarios que no tienen ni idea y lo hacen mal. La mayoría del esfuerzo será inútil, pero a lo mejor hay algun usuario que lo aproveche.
Para entendernos.
He ido poniéndolos según entiendo yo que van bajando de categoría. Hay lo que la gente llama intrusismo, muchísimo intrusismo. Pero ahora mismo eso no me preocupa... me preocupa la gente que intenta acercarse a este mundo sin tener ni puta idea pero con ganas de hacerse llamar informático. Me refiero específicamente a el/la tip@ que dijo que "This filesystem will be automatically checked every 39 mounts or 180 days, whichever comes first. significa lo mismo que Este sistema de ficheros se revisará automáticamente cada 39 meses o 180 dias, lo que suceda primero.
Muy señor/a mio/a:
1) Usted no tiene ni puta idea de inglés o traduce para pasar su tiempo libre ya que mount (montar) no es lo mismo que month (mes). *
2) Usted no tiene sentido común: comparar 39 meses con 180 días y decir que "lo que ocurra antes" es estúpido cuando menos.
Si haces algo, hazlo bien. La mayoría de los Administradores estamos acostumbrados a los mensajes en inglés. De hecho cuando los leemos en castellano intentamos traducirlos al inglés para saber qué coños quiere decir ese mensaje. A veces la imaginación del traductor va más allá de la nuestra.
Me parece bien intentar traducir para el que no sabe inglés, pero a nivel usuario o desarrollador. Manejar el inglés técnico leido es un requisito indispensable para un administrador. Por favor, dedicad más tiempo en traducir aplicaciones y dejad las partes internas, comandos, kernels, llamadas al sistema... como están porque lo único que conseguís es complicar las cosas y trabajar en balde ya que solemos dejar el idioma por defecto al instalar un sistema, no el defecto de idioma ese al que traducís.
Muchas gracias.
* Dediquese a hacer integrales o a ver televisión basura.
Truco del administrador sensato: siempre lee la documentación y libros técnicos en inglés. Siempre deja el sistema operativo en su idioma por defecto (en_US) y te evitarás muchos quebraderos de cabeza.
lunes, noviembre 14, 2005
Programador.. ¿más cerca del informático o del usuario?
Vamos a ver, muchacho. Las cosas deben estar claras desde el principio:
1.- Tú haces aplicaciones. Luego que funcionen o (más probablemente) no es otra cosa.
2.- Yo monto las máquinas que ejecutan tus aplicaciones (y sé cómo está montada).
Si además he caido tan bajo como para hacerte una web donde te explica qué versiones de los programas/librerias/demonios hay en el servidor, sobre qué plataformas, el procedimiento para subir aplicaciones nuevas así como para actualizar las que ya hay, ¿por qué no las lees?
Si encima te monto un servidor de desarrollo para pruebas de aplicaciones, y otro de preproducción para pruebas de carga con las mismas versiones y SO que en producción, porqué me haces cosas como:
-mandar una aplicación para poner en producción que sólo has probado en tu ordenador. Así solo consigues como respuesta un enlace a la página de normas porque no te la has leido;
-mandar una aplicación que intenta conectar con un servidor de bases de datos que sólo existe en la Intranet y no hay acceso desde la DMZ. Eso indica que no te has leido el documento web y como respuesta sólo consigues un enlace a la página de normas porque no te la has leido;
-mandar 3 actualizaciones seguidas para subir a producción. Eso es que no la has probado en desarrollo ni preproducción y consigues como respuesta un enlace a la página de normas porque no te la has leido así como un email con copia a tu jefe y al mío diciendo todo lo que me haces perder el tiempo por no leer la página que te he mandado ya 2 veces (o más);
-mandar las aplicaciones a producción con nivel de log DEBUG. Así sólo consigues que la quite y no te avise, como bien dice la página de normas que sigues sin haberte leido. ¡¡¡Y encima tiene la desfachatez de preguntar por qué!!!
-Preguntar si tu aplicación puede guardar los temporales en /tmp y, encima argumentalo con que para limpiar los temporales es más fácil. Este lo recuerdo con cariño. Fué algo así como:
1er correo: ¿Mi aplicación puede guardar los temporales en /tmp?
Respuesta: No. +enlace a la página de normas.
2o. correo: Si las aplicaciones guardan los temporales en /tmp es más fácil borrarlos cuando haga falta.
Buen punto. Siempre hay que estar preparado para estas cosas.
Respuesta: Es mejor que cada aplicación guarde los temporales en un directorio dentro del directorio de la propia aplicación. Así si la aplicación empieza a poner en peligro la estabilidad del servidor puedo borrar la aplicación y los temporales con un sólo comando sin tener que andar buscando todos los ficheros de esa aplicación.
Casi me pilla ;-)
También recuerdo con cariño a otro "avispilla" que manda la aplicación y después me dice "ahora hay que configurarla". Y se mosqueó porque me eché a reir.
El: Es que desconozco qué parametros poner como la ruta absoluta hasta el tomcat
Yo: No la necesitas. Pon rutas relativas y si cambio de sitio el tomcat no sufrirá tu aplicación.
El: También necesito saber en qué puerto está el tomcat para hacer la solicitud de unos jpg's.
Yo: Los que necesites mételos en un directorio dentro del de tu aplicación, y así sabes dónde están.
El: Y hay otros parámetros que sólo tu conoces. La ruta al fichero de configuración es XXXX (no la recuerdo ni viene al caso).
Yo: vale. Lo apunto.
Accedí al fichero, ví lo que necesitaba y le mandé un correo del tipo:
Hola:
Como hemos hablado por teléfono, los datos que sólo yo conozco para que funcione tu aplicación son:
XXX
YYY
...
Ahora ya puedes ponerlos en tu fichero de configuración y mandarme el fichero porque mi trabajo no es tocar las aplicaciones.
AMEN
Primera ley de convivencia con el desarrollador:
Haz una página web accesible por tus usuarios con los procedimientos para hacer las cosas. Cuantos más requisitos menos lata te darán. A quien no los cumpla (que serán muchos) no tienes que explicarles nada. ¡¡Pon un enlace!! Y sobre todo, deja claro para quién no cumpla las normas que su aplicación puede ser retirada del servidor sin previo aviso. Así, si avisas, encima eres "bueno".
viernes, noviembre 11, 2005
¡¡¡Usuario!!!
Debe ser duro estar en el mismo saco el que se lo curra para aprender y ser autosuficiente y el usuario que no sólo no tiene ni puta idea sino que encima quiere tener razón. Es indiferente que se lo curre o no, aunque sea injusto que estén en el mismo saco. El que se lo curra porque "sabe algo" y a la más mínima intenta demostrarlo. Debe ser algo así como cuando viene un extranjero y aprovechamos para demostrarle lo bien que hablamos inglés:" Du yu eshpik inglis, tronk?" Que te mira el guiri con cara de: ¡¡su puta madre qué cojones habrá querido decir!!
Y el que no se lo curra y no tiene ni puta idea de qué está hablando, te cuenta toda su vida para que sepas qué quiere. Estos tipos suelen explicarte cómo funciona toda su aplicación a nivel usuario (que a tí ese rollo no te vale ni para ir al water) para que le sustituyas un archivo porque le han mandado una actualización.
¡¡¡Señores!!!¡¡¡Basta ya!!! No me vengas a contarme cómo cojones administras tu base de datos de libros porque no me importa. No me expliques si tienes súbditos que meten referencias de libros para darme envidia porque yo no tengo un esclavo que me coja el teléfono para aguantarte. Eres un usuario y tu trabajo es transmitirme tus problemas y tus necesidades y punto. Si necesitas hablar vete a un psicólogo.
Y si en vez de por teléfono me dices las cosas por email, mejor todavía. Así mientras estás escribiendo no me estás entreteniendo y, además, puedo enviar tu email al spamassassin para las siguiente solicitudes que realices.
Hace tiempo que me dió la idea Calvin de hacer este blog por las cosas que les contaba de mi trabajo (gracias, tio). Hoy es el dia adecuado. Esta mañana ha sido horrible, vamos, todo lo horrible que es una mañana en la que tienes mucho trabajo en un trabajo que te gusta y yéndote a casa a tu hora con todo solucionado. Aún así os paso a contar la situacion por orden cronológico, lo que no quiere decir que haya acabado una cosa antes de empezar con el siguiente marrón:
1.- Me manda un correo el desarrollador de una aplicación. Este hombre no trabaja en el ministerio, por ello tiene un "responsable" dentro del ministerio. He hecho la actualización sin problemas.
2.- Me llaman de la red interministerial (que es la red que une todos los ministerios de este pais) diciéndome que recibían de nuestro servidor correos que iba dirigidos a Internet. Esto me ha supuesto estar más de una hora analizando logs, sendmail.cf y haciendo pruebas con sendmail -bv.
3.- Me llaman del consejo superior de deportes, que si mandan correos hacia otro ministerio les cambia mi servidor el dominio, y en lugar de quiensea@loquesea.ministerio.es se lo devuelve como quiensea@loquesea.miexdominio.es. Esto me ha llevado su buen rato también junto al punto 2.
4.- Mi jefe se ha cojido 2 dias libres (el miércoles fué fiesta y hoy es viernes) y, como yo estaba montando otros 3 servidores, él acababa una migración de un servidor de cooperación internacional. Pues hoy me llama el coordinador de ese área y me dice que ni ven la web desde Internet, ni pueden subir ficheros por FTP ni desde Internet ni desde la Intranet ¿? Esto no me ha llevado tanto porqué estaba con las neuronas calentitas gracias a los puntos 2 y 3. Configurar la IP de la nueva máquina en el Firewall y añadir /bin/false a /etc/shells. Lo segundo fué culpa mía, pero lo primero no (muy mal, jefe).
Pues mientras estoy con el punto 4 (sin haber acabado 2 y 3) me llama el responsable de la aplicación del punto 1. La conversación ha sido algo como (en negrita soy yo y entre parentesis lo que he pensado):
-hola. Que mira [...2 minutos después...] te ha mandado un correo porque [...]mayúsculas y minúsculas[...]...
-Sí, ya lo actualicé esta mañana
-¿Pero a qué hora?
-Pues cuando he podido (vamos, cuando he llegado)
-Pues es que deberias actualizar la aplicación cuando veas un correo porque es urgente
-Mira: actualizo las aplicaciones cuando tengo tiempo para actualizarlas; veo los correos cuando tengo tiempo para verlos y no cuando llegan; ya te he actualizado la aplicación y no me has mandado los ficheros correctos, la próxima vez compruébalo antes; hago las cosas por orden de importancia y no por orden de urgencia porque para todos lo vuestro es lo más urgente; y no tengo tiempo de hablar contigo ahora porque no lo tengo ni para leer el correo que me dice que actualice tu aplicación. En cuanto pueda, lo hago. Hasta luego.
Lo mejor en estas ocasiones es mantener la serenidad. Mostrar con la voz que tienes prisa pero nunca gritarles por muchas gilipolleces que digan...que las dirán.
Solucioné todo y actualicé su aplicación...en el fondo no soy tan malo.
Política de colas del administrador:
Organizo las cosas por orden de importancia y no por orden de urgencia, porque si hago lo más urgente (para vosotros), lo realmente importante se quedaría sin hacer.