24 febrero 2006

Apagado Remoto de XP

Si nos conectamos a un equipo mediante una Conexión a Escritorio remoto y queremos apagar ese equipo, podemos crear un fichero denominado ApagadoRemoto.js que contenga el texto:

(new ActiveXObject("Shell.Application")).ShutdownWindows();

Haciendo doble click sobre él aparecerá el dialogo de apagado de windows.

Ver también: Programar apagado en XP

20 febrero 2006

Mostrar siempre el final de un textarea o div

Si estamos trabajando con HTML y tenemos un TEXTAREA o un DIV con más información de la que cabe en la zona visible, nos aparecerá un scrollbar (en el DIV debemos poner el estilo apropiado: style="overflow: auto"). Pero si queremos que el texto que aparezca por defecto sea el del final (por ejemplo un chat), podemos utilizar esta sencilla instrucción javascript:

<script language="javascript">
//Textarea:
form.textarea_name.scrollTop = form.textarea_name.scrollHeight;
//Div:
document.getElementById("div_id").scrollTop=document.getElementById("div_id").scrollHeight;
</script>

Una buena idea puede ser poner la instrucción en la etiqueta body para que se ejecute al terminar de cargar la página y asegurar así que siempre aparezca el final del texto del textarea:
<body onLoad="form.textarea_name.scrollTop = form.textarea_name.scrollHeight;">

En el caso de Java podemos hacer:
area.append(text+"\n"); // en el JTextArea
scroll.getVerticalScrollBar().setValue(scroll.getVerticalScrollBar().getMaximum());
// scroll es JScrollPane

Nota: Si no se queda el scroll abajo sino por el medio, se puede repetir la instrucción dos veces para asegurar que se actualiza correctamente.

18 febrero 2006

Contraseña para impresora compartida

Cuando se comparte una impresora en XP parece ser que por defecto no deja establecer una contraseña de acceso. Para poder proteger este recurso podemos hacer lo siguiente:

  1. Abrimos el explorador de archivos de windows (o abrimos cualquier carpeta) y vamos al menú Herramientas > Opciones de carpeta... > pestaña Ver
  2. Entre todas las opciones desmarcamos la casilla que corresponde a: Utilizar uso compartido simple de archivos
  3. Vamos a [Inicio > Impresoras y faxes] y con el botón derecho sobre la impresora a compartir elegimos Propiedades.
  4. Ahora nos aparece una nueva pestaña: Seguridad. Seleccionamos esa pestaña y en el nombre de grupo Todos desmarcamos Permitir.
  5. Luego podemos pulsar Agregar > Avanzadas > Buscar ahora y seleccionar un usuario (con contraseña) para permitirle el acceso.
  6. Si desde otro equipo quieren utilizar esa impresora deben agregar una nueva impresora en red (\\nombre_equipo\nombre_impresora) e introducir el nombre de usuario y la contraseña del usuario al que se le permitió el acceso.
Nota: Este procedemento también sirve para dar permisos específicos a determinadas carpetas, puesto que también va a aparecer la pestaña Seguridad.

25 enero 2006

Login automático en XP

¿Estás cansado de tener que decirle a tu XP que inicie la sesión con tu nombre de usuario cada vez que arranca el sistema?

Sigue estos pasos y te librarás de este proceso intermedio:

1. Ve a Inicio / Ejecutar y escribe: control userpasswords2
2. Selecciona el usuario que quieres que haga login automático y desmarca la casilla "Los usuarios deben escribir su nombre y contraseña para usar el equipo".
3. Pulsa Aceptar.
4. Te pedirá la clave del usuario, introdúcela si procede.
5. Pulsa Aceptar.

Al siguiente reinicio hará el login automáticamente sin consultar.

13 enero 2006

Escritorio remoto con router

Si tenemos una conexión ADSL mediante router y queremos utilizar el escritorio remoto para acceder a nuestro equipo desde otro, debemos marcar en [Inicio>Panel de Control>Sistema], pestaña remoto: 'Permitir que los usuarios se conecten de manera remota a este equipo' y luego en el router añadir una entrada NAT donde cualquier dirección externa a través del puerto TCP (UDP) 3389 se diriga a nuestra IP interna (generalmente 192.168.0.1) también al puerto 3389.

Instrucciones detalladas: http://www.elguille.info/sistema/escritorioremoto.htm

09 enero 2006

Encontrar comando en Linux

A veces sabemos el nombre de un comando que queremos ejecutar en Linux, pero no se encuentra en el PATH y desconocemos su ubicación. Para poder averiguar la ruta del ejecutable, el código fuente e incluso el fichero del manual asociado, podemos usar el comando whereis.

Ejemplo:
>whereis tar
tar: /bin/tar /usr/include/tar.h /usr/share/man/man1/tar.1.gz

02 enero 2006

Acceso a carpeta protegida en otro HD

Si ponemos un segundo disco duro que tiene una instalación de windows de la que queremos recuperar información, puede ocurrir que nos aparezca el mensaje 'Acceso denegado' al tratar de abrir alguna de las carpetas de los usuarios de la instalación que tenía dicho disco duro. Para evitar esto debemos cambiar el propietario de dicha carpeta.

  1. Habilitamos la opción que nos permite visualizar las propiedades avanzadas de seguridad en las carpetas: en [Inicio > Panel Control > Menú 'Herramientas' > Opciones de carpeta... > Pestaña Ver] desmarcamos la última opción que dice: 'Utilizar uso compartido simple de archivos'
  2. Ahora hay que selecionar la carpeta a la cual no tenemos acceso y con el botón derecho vamos a 'Propiedades', selecionamos la pestaña 'Seguridad', pulsamos en [Opciones avanzadas] y en la pestaña Propietario debemos seleccionar el nuevo usuario.
  3. Volvemos a la pestaña 'Seguridad' y agregamos el nuevo usuario o los usuarios que queremos autorizar para acceder a la carpeta. Para ello hacemos clic en [Avanzadas], luego en [Buscar ahora] y ahí seleccionamos los usuarios que queramos.

Foro relacionado: www.trucoswindows.net

25 diciembre 2005

Guardar configuración cuentas Outlook 2002/2003

Parece que en las nuevas versiones de Outlook no existe una opción para importar/exportar las cuentas de correo, con lo cual, cuando reinstalamos, debemos volver a crear las cuentas una a una.

Pero esa información se puede localizar en el registro [Inicio>Ejecutar...> regedit], concretamente:

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem

Dentro de esta rama se encuentra otra, Profiles y dentro de ella tantas como perfiles tengamos configurados.

El original que crea Outlook se llama Microsoft Outlook Internet Settings o simplemente Outlook, por tanto:
...\Windows Messaging Subsystem\Profiles\Microsoft Outlook Internet Settings
ó
...\Windows Messaging Subsystem\Profiles\Outlook

Dentro cuelgan varias subclaves numéricas, la que nos interesa es:
...\Profiles\Microsoft Outlook Internet Settings\9375CFF0413111d3B88A00104B2A6676
ó
...\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676

Una vez localizada dicha rama, nos posicionamos sobre ella, y en menú Archivo le damos a Exportar.

Para restaurar las cuentas tras una reinstalación debemos tener el mismo perfil (si lo dejamos todo por defecto no habrá que hacer nada) , ir a la misma clave desde la que exportamos, luego vamos a [Archivo>Importar...] y escogemos el archivo .reg que habíamos creado para cargar los valores en el registro.

Importante: Cuando se haga esto último se configurarán todas las cuentas pero deberemos introducir manualmente las contraseñas de cada cuenta. Es el único dato que no se exporta.

Enlace relacionado: http://www.infonegocio.com/luzylar/cuentasoutlook2003.htm

26 noviembre 2005

Eliminar el Windows Messenger

Si el Windows trae por defecto instalado el Windows Messenger y queremos deshacernos de él para que no nos interfiera con el MSN Messenger, lo primero es desinstalarlo desde [Panel de control > Agregar Quitar Programas > Componentes de Windows] y después desactivamos el servicio:

  1. [Inicio > Ejecutar...] y escribimos gpedit.msc
  2. Vamos a [Configuración del equipo > Plantillas administrativas > Componentes del Windows > Windows Messenger]
  3. Doble click en 'No permitir que se ejecute Windows Messenger' y seleccionamos: Habilitada
Otra opción (menos recomendable pero más rápida):
Vamos a [Inicio > Ejecutar...] y escribimos
RunDll32 advpack.dll,LaunchINFSection %windir%\INF\msmsgs.inf,BLC.Remove

24 noviembre 2005

Cambiar letra de las unidades de windows

Vamos a [Panel de Control > Herramientas administrativas > Administración de equipos > Administración de discos] y aparecen todas las unidades existentes. Hacemos click con el botón derecho sobre la unidad que queremos cambiar y seleccionamos Cambiar la letra y rutas de acceso de unidad...

Información adicional: http://support.microsoft.com/kb/307844/es

16 noviembre 2005

Creación de varias cuentas en linux

Este script bash podría servir. Recibe como entrada el grupo la cuenta y el número inicial y final de cuentas a crear.


#!/bin/bash

if [ $# -lt 4 ]; then
   echo "Crea las cuentas indicadas. El directorio por defecto es: /home/. Si no existe el grupo, se crea."
   echo "Usar: $0 [dir] "
   echo "Ejemplos: $0 alumnos mates 5 30"
   echo " $0 /home/labs alumnos mates 1 25"
   exit 1
fi

if [ $# -eq 4 ]; then
   dir="/home/$2"
   grupo=$1
   cuenta=$2
   ini=$3
   fin=$4
else
   dir=$1
   grupo=$2
   cuenta=$3
   ini=$4
   fin=$5
fi

for i in $(seq $ini $fin)
do
   echo "Creando cuenta $cuenta$i"
   useradd -d $dir$i -g $grupo -m -s /bin/bash $cuenta$i
done

14 noviembre 2005

XP y la consola de recuperación

Cuando todo parece perdido y el Windows XP no consigue arrancar por más que lo intentamos, existe una última opción antes de optar por la reinstalación: la consola de recuperación. Por defecto la consola no viene activada y es necesario el CD de instalación el Windows XP para activarla mediante alguno de estos dos procedimientos:

  • Después de introducir el CD vamos a [Inicio>Ejecutar...] y escribimos D:\I386\WINNT32.EXE /cmdcons (D: es la letra de la unidad del CD). Tras pulsar 'Enter' se procederá a al instalación de la consola de recuperación y a partir de ese momento nos aparecerá siempre en el menú de arranque (accesible mediante le tecla F8) .

  • Arrancamos desde el CD de instalación de Windows XP y en el primer menú pulsamos 'R' para proceder a la elección de la instalación a reparar mediante la consola de recuperación.
Dentro de la consola de recuperación se puede ejecutar el comando HELP para obtener ayuda de los comandos disponibles. Para solucionar problemas de arranque se pueden utilizar FIXMBR, FIXBOOT o BOOTCFG que con el parámetro /rebuild reconstruirá el archivo boot.ini encargado de la configuración de arranque. También se puede utilizar CHKDSK /P /R C: para verificar y reparar la estructura de directorios de una unidad de disco (C: en este caso, que es donde suele estar instalado el Windows).

Enlace con abundante información sobre la consola de recuperación: http://www.elhacker.net/consola_recuperacion_xp.htm

Enlace muy interesante de como reparar una instalación de windows: http://www.galeon.com/diagnosticos/

07 noviembre 2005

Apache: proteger página web con contraseña

Primero tenemos que añadir una entrada en el fichero de configuración del apache (httpd.conf) para el directorio que queremos proteger, por ejemplo:

<Directory "/home/usuario/public_html/directorio_a_proteger">
AllowOverride
All
</Directory>

Despues debemos crear un fichero .htaccess dentro de la carpeta a proteger indicando cual es el nombre de usuario y la contraseña (.htpasswd)

AuthName "Password requerido"
AuthType Basic
AuthUserFile /home/usuario/.htpasswd
Require valid-user

Finalmente en .htpasswd debemos escribir el usuario y la contraseña con el formato usario:passwd, donde passwd es la contraseña encriptada mediante el comando htpasswd.

Podemos generar este fichero escribiendo por ejemplo:

> htpasswd -b -c /home/usuario/.htpasswd usuario password

Nota1: si queremos encriptar con MD5 hay que añadir el parámetro -m; si queremos añadir varios usuarios, quitamos el parámetro -c
Nota2: el fichero .htpasswd tiene que tener permisos de lectura:
> chmod a+r .htpasswd

Enlaces relacionados:
http://bulma.net/body.phtml?nIdNoticia=656
http://www.apacheweek.com/features/userauth

03 noviembre 2005

CSS: orden de las 4 orientaciones

Al utilizar algunas etiquetas de estilos como border o padding, es posible especificar las propiedades para las 4 orientaciones, en ese caso el orden es: arriba, derecha, abajo e izquierda

Por ejemplo:

margin: 1px 2px 3px 4px

equivale a:

margin-top: 1px
margin-right: 2px
margin-bottom: 3px
margin-left: 4px
          padding: 1em 2em 3em 4em

equivale a:

padding-top: 1em
padding-right: 2em
padding-bottom: 3em
padding-left: 4em

28 octubre 2005

ASP: Validación de nº positivo

Dim regEx
Set regEx = New RegExp

regEx.Pattern = "^\d+$"
Validate = regEx.Test(num_comprobar)

Validate será true si num_comprobar es un nº positivo y false en caso contrario.

Para más información sobre esta y muchas otras validaciones del lado del servidor en ASP: http://www.15seconds.com/issue/010301.htm

27 octubre 2005

Ver sentencias SQL ejecutadas en MySQL

Para poder visualizar todas las sentencias SQL que se ejecutan en MySQL así como los detalles de quien las ejecutó, basta con añadir al fichero de configuración (/etc/my.cnf en Linux o my.ini en Windows) la opción: log=fichero

Por ejemplo:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log=/var/log/mysqld.log

Nota: el fichero de log tiene que tener permisos de escritura para los usuarios de los que se desean ver las sentencias SQL. Para dar permiso de lectura/escritura a todos en Linux: chmod a+rw fichero

Enlace relacionado: http://dev.mysql.com/doc/refman/5.0/en/query-log.html

17 octubre 2005

Puertos TCP y UDP importantes

  Puerto  Prot.  Descripción
7 TCP Protocolo Echo (Eco)
7 UDP Protocolo Echo (Eco)
8 TCP Protocolo ICMP (Ping)
8 UDP Protocolo ICMP (Ping)
20 TCP FTP File Transfer Protocol - datos
21 TCP FTP File Transfer Protocol - conrol
22 TCP SSH, scp, sftp
23 TCP Telnet comunicaciones de texto inseguras
25 TCP SMTP Simple Mail Transfer Protocol
53 TCP DNS Domain Name System (Sistema Nombres de Dominio)
53 UDP DNS Domain Name System (Sistema Nombres de Dominio)
67 UDP BOOTP BootStrap Protocol (Server), tb usado por DHCP
68 UDP BOOTP BootStrap Protocol (Server), tb usado por DHCP
69 UDP TFTP Trivial File Transfer Protocol
70 TCP Gopher
79 TCP Finger
80 TCP HTTP HyperText Transfer Protocol (WWW)
88 TCP Kerberos Agente de autenticación
110 TCP POP3 Post Office Protocol (E-mail)
113 TCP ident antiguo sistema de identificación
119 TCP NNTP usado en los grupos de noticias de usenet
123 TCP NTP Network Time Protocol (Sincronización horaria)
123 UDP NTP Network Time Protocol (Sincronización horaria)
139 TCP NetBIOS
143 TCP IMAP4 Internet Message Access Protocol (E-mail)
443 TCP HTTPS usado para la transferencia segura de páginas web
445 TCP Microsoft-DS (Active Directory, compartición en Windows)
445 UDP Microsoft-DS compartición de ficheros
514 UDP syslog usado para logs del sistema
591 TCP FileMaker 6.0 (alternativa para HTTP, ver puerto 80)
993 TCP IMAP4 sobre SSL (E-mail)
995 TCP POP3 sobre SSL (E-mail)
1080 TCP SOCKS Proxy
1337 TCP Suele usarse en máquinas comprometidas o infectadas
1352 TCP IBM Lotus Notes/Domino RCP
1433 TCP Microsoft-SQL-Server
1434 TCP Microsoft-SQL-Monitor
1434 UDP Microsoft-SQL-Monitor
1521 TCP Oracle listener por defecto
1863 TCP MSN Messenger
2082 TCP CPanel puerto por defecto
2086 TCP Web Host Manager puerto por defecto
3128 TCP HTTP usado por web caches y por defecto en Squid cache
3306 TCP MySQL sistema de gestión de bases de datos
3389 TCP Microsoft Terminal Server (RDP), Escritorio remoto
4662 TCP Emule (aplicación de compartición de ficheros)
5000 TCP Universal plug-and-play
5190 TCP AOL y AOL Instant Messenger
5222 TCP XMPP/Jabber conexión de cliente
5223 TCP XMPP/Jabber puerto por defecto para conexiones SSL
5269 TCP XMPP/Jabber conexión de servidor
5432 TCP PostgreSQL sistema de gestión de bases de datos
5800 TCP VNC protocolo de escritorio remoto (usado sobre HTTP)
5900 TCP VNC protocolo de escritorio remoto (conexión normal)
6000 TCP X11 usado para X-windows
6112 UDP Blizzard
6346 TCP Gnutella compartición de ficheros (Bearshare, Limewire...)
6667 TCP IRC Internet Relay Chat
6881 TCP BitTorrent puerto por defecto
6969 TCP BitTorrent puerto de tracker
8080 TCP HTTP. Tomcat lo usa como puerto por defecto.
8118 TCP privoxy
9898 TCP Gusano Dabber (troyano/virus)
31337 TCP Back Orifice herramienta de adminstración remota

Lista completa de IANA:
http://www.iana.org/assignments/port-numbers

Enlace interesante (escanear, bloquear puertos):
http://perux.iespana.es/perux/sports.html

15 octubre 2005

Acceso FTP desde el navegador

Si no tenemos un cliente FTP a mano, es posible acceder a una cuenta ftp sin más que poner en la barra de direcciones:

ftp://usuario@ftp.servidor.es (se preguntará la contraseña)

o directamente:

ftp://usuario:passwd@ftp.servidor.es

o de forma anónima (siempre que el servidor lo permita):

ftp://ftp.servidor.es

donde usuario es el nombre de usuario de la cuenta, passwd es la contraseña y ftp.servidor.es es el servidor FTP.

Nota 1: el Internet Explorer además de lectura permite escritura en el sitio ftp.
Nota 2: también es posible acceder de la misma forma a páginas de acceso restringido simplemente sustituyendo ftp:// por http://

11 octubre 2005

Crear nuevo servicio en Linux

Los servicios de Linux están en /etc/init.d o /etc/rc.d/init.d en forma de shell scripts. Para añadir uno (por ejemplo para tomcat) hay que generar un script con la estructura que tienen los scripts existentes (que admita los parámetros start y stop) y debe llevar comentado al principio lo siguiente:

# chkconfig: 345 80 20
# description: Tomcat is the Apache Servlet Engine
# processname: tomcat
# pidfile: /var/run/tomcat.pid

La primera línea indica al instalador que el servicio se va a ejecutar en los niveles 3, 4 y 5, y que la prioridad de inicio del servicio será 80 y la de finalización 20.
Las segunda línea muestra la descripción del servicio.
Las otras dos líneas son opcionales.

Para instalar el servicio una vez que ha sido correctamente creado el script (probar ejecutando 'tomcat start' y 'tomcat stop') se debe escribir: chkconfig --add tomcat

Ejemplo de script para tomcat:

#!/bin/sh
# This shell script starts and stops tomcat.
# chkconfig: 345 80 20
# description: Tomcat is the Apache Servlet Engine
# processname: tomcat
# pidfile: /var/run/tomcat.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
RETVAL=0
export JAVA_HOME=/usr/local/java
export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:/usr/local/bin:$JAVA_HOME/bin
# See how we were called.
case "$1" in
start)
# Start daemons.
echo -n "Starting tomcat: "
$CATALINA_HOME/bin/catalina.sh start
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/tomcat
echo
;;
stop)
# Stop daemons.
echo -n "Shutting down tomcat: "
$CATALINA_HOME/bin/catalina.sh stop
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/tomcat
echo
;;
restart)
$0 stop
$0 start
RETVAL=$?
;;
*)
echo "Usage: tomcat {start|stop|restart}"
exit 1
esac
exit $RETVAL

07 octubre 2005

Auto redireccionar o refrescar página web

Después de la etiqueta <HTML> poner:
<META http-equiv="refresh" content="5;URL=http://otra.url.es/pagina.html">
para redireccionar a otra página después de 5 segundos o
<META http-equiv="refresh" content="5">
para refrescar la misma página después de 5 segundos.