<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Lo hice y lo entendí &#187; UNIX</title>
	<atom:link href="http://www.vicente-navarro.com/blog/category/unix/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vicente-navarro.com/blog</link>
	<description>El blog de Vicente Navarro</description>
	<lastBuildDate>Mon, 05 Jul 2010 07:41:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Evitando problemas con la &#8220;host key&#8221; en sesiones no interactivas de OpenSSH</title>
		<link>http://www.vicente-navarro.com/blog/2010/06/29/evitando-problemas-con-la-host-key-en-sesiones-no-interactivas-de-openssh/</link>
		<comments>http://www.vicente-navarro.com/blog/2010/06/29/evitando-problemas-con-la-host-key-en-sesiones-no-interactivas-de-openssh/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 13:35:56 +0000</pubDate>
		<dc:creator>Super Coco</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Redes]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[Cygwin]]></category>
		<category><![CDATA[OpenSSH]]></category>

		<guid isPermaLink="false">http://www.vicente-navarro.com/blog/?p=976</guid>
		<description><![CDATA[Cuando usamos el comando ssh de OpenSSH (típicamente desde sistemas UNIX o desde Cygwin) para conectarnos a una máquina remota por primera vez, normalmente (con la configuración por defecto más usual) recibimos un mensaje como el siguiente para advertirnos de que es la primera vez que nos conectamos a dicha máquina y que si aceptamos [...]]]></description>
			<content:encoded><![CDATA[<p>Cuando usamos el comando <code><a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ssh&#038;sektion=1">ssh</a></code> de <a href="http://www.openssh.com/">OpenSSH</a> (típicamente desde sistemas UNIX o desde <a href="http://www.cygwin.com/">Cygwin</a>) para conectarnos a una máquina remota por primera vez, normalmente (con la configuración por defecto más usual) recibimos un mensaje como el siguiente para advertirnos de que es la primera vez que nos conectamos a dicha máquina y que si aceptamos la clave del host remoto:</p>
<blockquote><pre>$ ssh usuario.dominio@sistema
The authenticity of host 'sistema (10.22.31.45)' can't be established.
RSA key fingerprint is 7d:2f:1e:69:21:e9:06:f3:d9:fd:36:0a:9e:6c:47:10.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'sistema.dominio,10.22.31.45' (RSA) to the list of known hosts.
[usuario@sistema ~]$</pre>
</blockquote>
<p><strong>Actualización 5/7/2010:</strong> Como en el ejemplo anterior, en todos los ejemplos que siguen veremos que el comando <code>ssh</code> no nos pregunta la contraseña porque hemos configurado <a href="/blog/2008/01/13/autentificacion-trasparente-por-clave-publicaprivada-con-openssh/">Autentificación trasparente por clave pública/privada con OpenSSH</a>.</p>
<p>Dicha clave se almacena en el fichero <code>$HOME/.ssh/know_hosts</code>:</p>
<blockquote><pre>$ tail -1 known_hosts
sistema.dominio,10.22.31.45 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAng/LUBaJa0qATdMMkmB3ufytR/BauKbCyz+Dvg0NMPUE2EF6zy5o3zSVMRlrgUmKakA3DoUez5oOaaSlR4d5ZZjOfsBmnn5dp7M0QtY681HYny1QQFUpRxNbARP3X8+2jlnWjOEBOmk+N8pRJCURUwkjSMs81ThAiZoIv8sVYYbNzKDpL8RaDTqEN0Xn+1dHJdeLrt+Hsl6GzX8f+SoWwkNVmt8Nc8T7vzrG93Xku6XXdOh5SKeTDXv+0shJUziPQApEwR0gcc+7L0hBEAw4GU1ctGnC22aVDkyqTKlbORq2YoufDErq+wv8lwgZKYd5AbOuvuwX7w9c8P+P+jKw==</pre>
</blockquote>
<p><strong>Actualización 5/7/2010:</strong> Que aparezca el nombre de los hosts en claro en el fichero <code>known_hosts</code> es un problema de seguridad, ya que permite a un atacante que haya conseguido acceder a nuestro sistema conocer fácilmente otras máquinas que pueden ser objeto de ataque. Para evitar el problema, desde OpenSSH 4.0, es posible ofuscar el nombre de la máquina en el <code>known_hosts</code> con un hash. Sólo es necesario usar la opción &#8220;<code>HashKnownHosts yes</code>&#8221; en <code>/etc/ssh_config</code> o en <code>$HOME/.ssh/config</code> y ejecutar &#8220;<code>ssh-keygen -H</code>&#8221; para ofuscar el nombre de los hosts en nuestro <code>known_hosts</code> actual: <a href="http://itso.iu.edu/Hashing_the_OpenSSH_known__hosts_File">Hashing the OpenSSH known_hosts File</a>. Algunas distribuciones de Linux ya están implementando esto por defecto.</p>
<p>Si la máquina remota es víctima de algún tipo de ataque, si se ha reinstalado, si se ha sustituido por otra máquina con la misma IP o si, por cualquier motivo, la máquina remota no manda la clave de host que corresponde con la que tenemos almacenada, la próxima vez que intentemos conectarnos a ella, obtendremos un error como el siguiente:</p>
<blockquote><pre>$ ssh usuario@sistema.dominio
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
77:8b:3f:5c:95:18:30:2b:83:fe:21:73:d2:16:85:64.
Please contact your system administrator.
Add correct host key in /home/usuario/.ssh/known_hosts to get rid of this message.
Offending key in /home/usuario/.ssh/known_hosts:2
RSA host key for sistema.dominio has changed and you have requested strict checking.
Host key verification failed.</pre>
</blockquote>
<p>Y no podremos volver a conectarnos a menos que eliminemos la entrada vieja del <code>known_hosts</code> y volvamos a intentarlo. En dicho caso, volverá a pedirnos que aceptemos la nueva clave remota del host remoto, como al principio.</p>
<p><strong>Si tenemos algún proceso no interactivo que se base en SSH, el que nos pregunte si aceptamos la clave del host remoto es un problema importante.</strong> En dichos casos, podemos evitar que nos lo pregunte y hacer que el <code>ssh</code> local la acepte siempre automáticamente poniendo el siguiente parámetro en el <code>/etc/ssh_config</code> (para todos los usuarios) o en el <code>$HOME/.ssh/config</code> (sólo para el usuario actual):</p>
<blockquote><pre>StrictHostKeyChecking no</pre>
</blockquote>
<p>Tras ponerlo comprobaremos que, efectivamente, la clave del host remoto se añade automáticamente al <code>known_hosts</code> la primera vez que accedemos a un nodo sin preguntar:</p>
<blockquote><pre>$ ssh usuario@sistema.dominio
Warning: Permanently added 'sistema.dominio,10.22.31.45' (RSA) to the list of known hosts.
[usuario@sistema ~]$</pre>
</blockquote>
<p>Pero esto puede no ser suficiente. Hay veces en las que la clave del host remoto siempre o muy a menudo cambia. Por ejemplo, puede ocurrir cuando hacemos un &#8220;<code>ssh localhost</code>&#8221; tras crear algún tipo de túnel que cada vez acabe en una máquina diferente (<a href="/blog/2009/05/24/creando-tuneles-tcpip-port-forwarding-con-ssh-los-8-escenarios-posibles-usando-openssh/">Creando túneles TCP/IP (port forwarding) con SSH: Los 8 escenarios posibles usando OpenSSH</a>) o cuando trabajamos con multitud de máquinas físicas o virtuales (con éstas pasa especialmente a menudo) en las que reutilizamos frecuentemente la IP de unas máquinas en otras, etc. </p>
<p>Que la clave del host cambie frecuentemente es una simple molestia en sesiones interactivas (que nos obliga a buscar y a eliminar la entrada correspondiente del <code>known_hosts</code>), pero un auténtico problema cuando queremos usar <code>ssh</code> de forma no interactiva. En dichos casos, podemos solucionarlo usando el &#8220;<code>StrictHostKeyChecking no</code>&#8221;  como antes, pero además, añadiendo ahora &#8220;<code>UserKnownHostsFile /dev/null</code>&#8221; en el <code>$HOME/.ssh/config</code> (no parece conveniente usarlo en el <code>/etc/ssh_config</code> y que aplique a todos los usuarios) para indicarle al comando <code>ssh</code> que en lugar de usar <code>$HOME/.ssh/known_hosts</code> para almacenar las claves de hosts, queremos usar <code>/dev/null</code>:</p>
<blockquote><pre>StrictHostKeyChecking no
UserKnownHostsFile /dev/null</pre>
</blockquote>
<p>Así conseguimos que, como las claves en realidad no se guardan, siempre que nos conectemos a una máquina se acepte automáticamente su clave de host, haya cambiado o no haya cambiado:</p>
<blockquote><pre>$ ssh usuario@sistema.dominio
Warning: Permanently added 'sistema.dominio,10.22.31.45' (RSA) to the list of known hosts.
[usuario@sistema ~]$ exit

$ ssh usuario@sistema.dominio
Warning: Permanently added 'sistema.dominio,10.22.31.45' (RSA) to the list of known hosts.
[usuario@sistema ~]$</pre>
</blockquote>
<p>Sobra decir que estas opciones suponen la eliminación de una medida de seguridad base del sistema SSH, con lo que se está más expuesto a posibles ataques.</p>
<p>:wq</p>
<hr />
<p><small><a href="http://www.vicente-navarro.com/blog">Lo hice y lo entendí</a> © Vicente Navarro 2010 con una licencia <a href="http://www.vicente-navarro.com/blog/licencia-de-uso/">CC BY-SA</a> |
<a href="http://www.vicente-navarro.com/blog/2010/06/29/evitando-problemas-con-la-host-key-en-sesiones-no-interactivas-de-openssh/#comments">9 comentarios</a>
<br/>
Etiquetas: <a href="http://www.vicente-navarro.com/blog/tag/cygwin/" rel="tag">Cygwin</a>, <a href="http://www.vicente-navarro.com/blog/tag/gnulinux/" rel="tag">GNU/Linux</a>, <a href="http://www.vicente-navarro.com/blog/tag/openssh/" rel="tag">OpenSSH</a>, <a href="http://www.vicente-navarro.com/blog/tag/unix/" rel="tag">UNIX</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vicente-navarro.com/blog/2010/06/29/evitando-problemas-con-la-host-key-en-sesiones-no-interactivas-de-openssh/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Samba/CIFS: Enlaces simbólicos y Unix CIFS Extensions</title>
		<link>http://www.vicente-navarro.com/blog/2009/08/22/sambacifs-enlaces-simbolicos-y-unix-cifs-extensions/</link>
		<comments>http://www.vicente-navarro.com/blog/2009/08/22/sambacifs-enlaces-simbolicos-y-unix-cifs-extensions/#comments</comments>
		<pubDate>Sat, 22 Aug 2009 12:30:46 +0000</pubDate>
		<dc:creator>Super Coco</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Samba]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.vicente-navarro.com/blog/?p=937</guid>
		<description><![CDATA[Tengo por aquí un sistema Linux en el que exporto el directorio $HOME de los usuarios por red a través de Samba/CIFS. Para conseguir tal cosa, apenas es necesario descomentar unas líneas de la configuración por defecto de Samba en Debian y Ubuntu (/etc/samba/smb.conf) y releer la configuración (sudo /etc/init.d/samba reload): # Un-comment the following [...]]]></description>
			<content:encoded><![CDATA[<p>Tengo por aquí un sistema Linux en el que exporto el directorio <code>$HOME</code> de los usuarios por red a través de <a href="http://en.wikipedia.org/wiki/Samba_(software)">Samba</a>/<a href="http://en.wikipedia.org/wiki/CIFS">CIFS</a>.</p>
<p>Para conseguir tal cosa, apenas es necesario descomentar unas líneas de la configuración por defecto de Samba en Debian y Ubuntu (<code>/etc/samba/smb.conf</code>) y releer la configuración (<code>sudo /etc/init.d/samba reload</code>):</p>
<blockquote><pre># Un-comment the following (and tweak the other settings below to suit)
# to enable the default home directory shares.  This will share each
# user's home directory as \\server\username
[homes]
   comment = Home Directories
   browseable = no</pre>
</blockquote>
<p>Normalmente un usuario tiene en su <code>$HOME</code> todos los ficheros que pueda necesitar, pero en los PC a menudo tenemos otros sistemas de ficheros (unidades externas, particiones grandes que se comparten entre sistemas operativos, etc.)  en los que los usuarios guardan otros ficheros. Por ejemplo, yo tengo unas particiones adicionales que suelo montar en <code>/mnt/e</code> y en <code>/mnt/i</code> con los permisos adecuados para que los usuarios puedan escribir en ellas. En el <code>$HOME</code> de los usuario tengo unos enlaces simbólicos a estos sistemas de ficheros:</p>
<blockquote><pre>vicente@servidorcifs ~ $ pwd
/home/vicente

vicente@servidorcifs ~ $ ll e i
lrwxrwxrwx 1 vicente vicente 7 2008-04-30 20:51 e -> /mnt/e/
lrwxrwxrwx 1 vicente vicente 7 2008-07-17 15:11 i -> /mnt/i/</pre>
</blockquote>
<p>Pues bien, ¿qué diríais que pasa cuando monto <code>//servidorcifs/vicente/</code> desde otro sistema e intento acceder a <code>//servidorcifs/vicente/e/</code> o a <code>//servidorcifs/vicente/i/</code>?</p>
<p>Pues que si intento acceder desde Windows, los enlaces <code>e</code>, <code>i</code> aparecerán como un directorio más al que puedo acceder y en donde encuentro los ficheros de <code>/mnt/e/</code>, <code>/mnt/i/</code> que hay en la máquina. Este es el comportamiento deseado en este caso.</p>
<p>Sin embargo, si intento acceder desde otro Linux (con una versión reciente de Samba), tras montar el sistema de ficheros remoto:</p>
<blockquote><pre>vicente@clientecifs ~ $ sudo mount -t cifs -o username=vicente //servidorcifs/vicente /mnt/smb/</pre>
</blockquote>
<p>lo que ocurrirá es que en la máquina donde hemos montado el sistema de ficheros CIFS, los enlaces simbólicos <code>e</code>, <code>i</code> se verán como lo que son, enlaces simbólicos, y apuntarán a los directorios <code>/mnt/e/</code>, <code>/mnt/i/</code> del cliente de CIFS, no del servidor de CIFS, con lo cual no tendremos acceso a los ficheros del usuario:</p>
<blockquote><pre>vicente@clientecifs ~ $ ll /mnt/smb/e /mnt/smb/i
lrwxrwxrwx 1 vicente vicente 7 2008-04-30 20:51 /mnt/smb/e -> /mnt/e/
lrwxrwxrwx 1 vicente vicente 7 2008-07-17 15:11 /mnt/smb/i -> /mnt/i/

vicente@clientecifs ~ $ cd /mnt/smb/e
-bash: cd: /mnt/smb/e: No such file or directory</pre>
</blockquote>
<p>(...)<br/><br/>Leer el resto de <a href="http://www.vicente-navarro.com/blog/2009/08/22/sambacifs-enlaces-simbolicos-y-unix-cifs-extensions/">Samba/CIFS: Enlaces simbólicos y Unix CIFS Extensions</a> (1,033 palabras)</p>
<hr />
<p><small><a href="http://www.vicente-navarro.com/blog">Lo hice y lo entendí</a> © Vicente Navarro 2009 con una licencia <a href="http://www.vicente-navarro.com/blog/licencia-de-uso/">CC BY-SA</a> |
<a href="http://www.vicente-navarro.com/blog/2009/08/22/sambacifs-enlaces-simbolicos-y-unix-cifs-extensions/#comments">7 comentarios</a>
<br/>
Etiquetas: <a href="http://www.vicente-navarro.com/blog/tag/gnulinux/" rel="tag">GNU/Linux</a>, <a href="http://www.vicente-navarro.com/blog/tag/kernel/" rel="tag">Kernel</a>, <a href="http://www.vicente-navarro.com/blog/tag/samba/" rel="tag">Samba</a>, <a href="http://www.vicente-navarro.com/blog/tag/unix/" rel="tag">UNIX</a>, <a href="http://www.vicente-navarro.com/blog/tag/windows/" rel="tag">Windows</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vicente-navarro.com/blog/2009/08/22/sambacifs-enlaces-simbolicos-y-unix-cifs-extensions/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Reenvío dinámico de puertos / montar un servidor SOCKS con SSH</title>
		<link>http://www.vicente-navarro.com/blog/2009/06/13/reenvio-dinamico-de-puertos-montar-un-servidor-socks-con-ssh/</link>
		<comments>http://www.vicente-navarro.com/blog/2009/06/13/reenvio-dinamico-de-puertos-montar-un-servidor-socks-con-ssh/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 10:25:04 +0000</pubDate>
		<dc:creator>Super Coco</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Redes]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[OpenSSH]]></category>
		<category><![CDATA[SOCKS]]></category>
		<category><![CDATA[Thunderbird]]></category>
		<category><![CDATA[wget]]></category>

		<guid isPermaLink="false">http://www.vicente-navarro.com/blog/?p=925</guid>
		<description><![CDATA[En la entrada anterior, Creando túneles TCP/IP (port forwarding) con SSH: Los 8 escenarios posibles usando OpenSSH, vimos todas las posibilidades que tenemos a nuestra disposición para el reenvío de puertos (port forwarding)&#8230; pero para el reenvío de puertos estático. Es decir, allí sólo vimos casos en los que queríamos acceder únicamente a un puerto [...]]]></description>
			<content:encoded><![CDATA[<p>En la entrada anterior, <a href="/blog/2009/05/24/creando-tuneles-tcpip-port-forwarding-con-ssh-los-8-escenarios-posibles-usando-openssh/">Creando túneles TCP/IP (port forwarding) con SSH: Los 8 escenarios posibles usando OpenSSH</a>, vimos todas las posibilidades que tenemos a nuestra disposición para el reenvío de puertos (<em>port forwarding</em>)&#8230; pero para el reenvío de puertos estático. Es decir, allí sólo vimos casos en los que queríamos acceder únicamente a un puerto de otro sistema encauzándolo por dentro de la conexión SSH.</p>
<p>Sin embargo, en aquella entrada nos dejamos en el tintero el reenvío dinámico de puertos y varios lectores lo echaron de menos, de modo que esta entrada tratará de complementar a aquélla (muchas gracias a todos por la sugerencia).</p>
<p>Cuando hablamos de hacer <em>dynamic port forwarding</em> con SSH, de lo que estamos hablando exactamente es de convertir el SSH en un servidor <a href="http://en.wikipedia.org/wiki/SOCKS">SOCKS</a>. ¿Y qué es un servidor SOCKS?</p>
<p>¿Sabes para qué sirve un <a href="http://en.wikipedia.org/wiki/Proxy_server">proxy web</a>? Probablemente sí, muchas empresas usan uno. Se trata de un sistema directamente conectado a Internet que permite que los clientes de una <a href="http://en.wikipedia.org/wiki/Intranet">intranet</a> sin acceso a Internet puedan navegar por la web si configuran sus navegadores para que hagan sus peticiones a través del proxy (<a href="http://en.wikipedia.org/wiki/Proxy_server#Transparent_and_non-transparent_proxy_server">aunque también hay proxies transparentes</a>). Un proxy web, además de permitir la salida a Internet, también cacheará las páginas, imágenes, etc. ya descargadas por algún cliente para no tener que descargarlas para otro cliente. Además, permite filtrar los contenidos y monitorizar la actividad de los usuarios. Sin embargo, su función básica es la de reenviar tráfico HTTP y HTTPS.</p>
<p>Un servidor SOCKS le daría un servicio similar a la intranet de una empresa que el que proporciona un servidor proxy pero no está limitado a HTTP/HTTPS, sino que permite reenviar cualquier trafico TCP/IP (con SOCKS 5 también UDP).</p>
<p>Por ejemplo, imaginemos que queremos usar nuestro correo usando POP3 o ICMP y SMTP con Thunderbird desde una intranet sin acceso directo a Internet. Si sólo tenemos un proxy web disponible, la único sencillo que nos quedaría sería usar algún webmail (aunque si es un webmail también podríamos usar la <a href="http://webmail.mozdev.org/">extensión Webmail de Thunderbird</a>). También podríamos aprovecharnos del proxy montándonos un <a href="http://en.wikipedia.org/wiki/HTTP_tunnel_(software)">túnel por HTTP</a>. Pero lo más sencillo sería que la red tuviera un servidor SOCKS disponible que nos permitiera usar POP3, ICMP y SMTP a través de él sin ningún inconveniente.</p>
<p>(...)<br/><br/>Leer el resto de <a href="http://www.vicente-navarro.com/blog/2009/06/13/reenvio-dinamico-de-puertos-montar-un-servidor-socks-con-ssh/">Reenvío dinámico de puertos / montar un servidor SOCKS con SSH</a> (974 palabras)</p>
<hr />
<p><small><a href="http://www.vicente-navarro.com/blog">Lo hice y lo entendí</a> © Vicente Navarro 2009 con una licencia <a href="http://www.vicente-navarro.com/blog/licencia-de-uso/">CC BY-SA</a> |
<a href="http://www.vicente-navarro.com/blog/2009/06/13/reenvio-dinamico-de-puertos-montar-un-servidor-socks-con-ssh/#comments">5 comentarios</a>
<br/>
Etiquetas: <a href="http://www.vicente-navarro.com/blog/tag/gnulinux/" rel="tag">GNU/Linux</a>, <a href="http://www.vicente-navarro.com/blog/tag/openssh/" rel="tag">OpenSSH</a>, <a href="http://www.vicente-navarro.com/blog/tag/redes/" rel="tag">Redes</a>, <a href="http://www.vicente-navarro.com/blog/tag/socks/" rel="tag">SOCKS</a>, <a href="http://www.vicente-navarro.com/blog/tag/thunderbird/" rel="tag">Thunderbird</a>, <a href="http://www.vicente-navarro.com/blog/tag/unix/" rel="tag">UNIX</a>, <a href="http://www.vicente-navarro.com/blog/tag/wget/" rel="tag">wget</a>, <a href="http://www.vicente-navarro.com/blog/tag/windows/" rel="tag">Windows</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vicente-navarro.com/blog/2009/06/13/reenvio-dinamico-de-puertos-montar-un-servidor-socks-con-ssh/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Creando túneles TCP/IP (port forwarding) con SSH: Los 8 escenarios posibles usando OpenSSH</title>
		<link>http://www.vicente-navarro.com/blog/2009/05/24/creando-tuneles-tcpip-port-forwarding-con-ssh-los-8-escenarios-posibles-usando-openssh/</link>
		<comments>http://www.vicente-navarro.com/blog/2009/05/24/creando-tuneles-tcpip-port-forwarding-con-ssh-los-8-escenarios-posibles-usando-openssh/#comments</comments>
		<pubDate>Sun, 24 May 2009 08:39:19 +0000</pubDate>
		<dc:creator>Super Coco</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Redes]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[OpenSSH]]></category>
		<category><![CDATA[VNC]]></category>

		<guid isPermaLink="false">http://www.vicente-navarro.com/blog/?p=914</guid>
		<description><![CDATA[La función típica del protocolo de red Secure Shell (SSH) es acceder en modo terminal a un sistema remoto y ejecutar allí comandos de forma segura gracias a que los datos van cifrados. Pero además, a través de esa conexión de datos segura, es posible crear túneles (reenviar puertos / port forwarding) entre los extremos [...]]]></description>
			<content:encoded><![CDATA[<p>La función típica del protocolo de red <a href="http://en.wikipedia.org/wiki/Secure_Shell">Secure Shell (SSH)</a> es acceder en modo terminal a un sistema remoto y ejecutar allí comandos de forma segura gracias a que los datos van cifrados. Pero además, a través de esa conexión de datos segura, es posible crear túneles (reenviar puertos / <em>port forwarding</em>) entre los extremos conectados de forma que las conexiones TCP/IP se encauzan a través de la conexión SSH con lo que podemos conseguir saltarnos cualquier firewall o bloqueo de puertos siempre que tengamos la posibilidad de conectar con SSH.</p>
<p>Como este tema está muy tratado por toda la red:</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Tunneling_protocol#SSH_tunneling">Wikipedia: SSH Tunneling</a></li>
<li><a href="http://www.oreillynet.com/pub/a/wireless/2001/02/23/wep.html">O&#8217;Reilly: Using SSH Tunneling</a></li>
<li><a href="http://www.ssh.com/support/documentation/online/ssh/winhelp/32/Tunneling_Explained.html">ssh.com: Tunneling Explained</a></li>
<li><a href="http://www.ssh.com/support/documentation/online/ssh/adminguide/32/Port_Forwarding.html">ssh.com: Port Forwarding</a></li>
<li><a href="http://www.securityfocus.com/infocus/1816">SecurityFocus: SSH Port Forwarding</a></li>
<li><a href="http://magazine.redhat.com/2007/11/06/ssh-port-forwarding/">Red Hat Magazine: SSH Port Forwarding</a></li>
</ul>
<p>en esta entrada no entraremos en los detalles del reenvío de puertos, sino que pretende ser una chuleta, una referencia rápida (<em>cheat sheet</em>) de cómo reenviar puertos TCP con <a href="http://www.openssh.com/">OpenSSH</a> en los 8 diferentes escenarios que se pueden dar. Otros clientes de SSH como <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</a> también permiten el reenvío de puertos, pero la configuración se hará con un interfaz gráfico. Nosotros nos centraremos en OpenSSH.</p>
<p>En los siguientes ejemplos y situaciones supondremos que tenemos una red externa y una red interna y entre ambas redes, la única conexión posible es una conexión SSH entre el nodo de la red external <em>externo1</em> y el nodo de la red interna <em>interno1</em>. El nodo <em>externo2</em> está en la red externa y tiene conectividad total con <em>externo1</em>. El nodo <em>interno2</em> está en la red interna y tiene conectividad total con <em>interno1</em>.</p>
<p><img src="http://www.vicente-navarro.com/blog/wp/img/2009/05/ssh_tunnel_sin_tunel.png" alt="Túneles SSH: Sin túnel" title="Túneles SSH: Sin túnel" width="550" height="180" class="aligncenter size-full wp-image-916" /></p>
<p>(...)<br/><br/>Leer el resto de <a href="http://www.vicente-navarro.com/blog/2009/05/24/creando-tuneles-tcpip-port-forwarding-con-ssh-los-8-escenarios-posibles-usando-openssh/">Creando túneles TCP/IP (port forwarding) con SSH: Los 8 escenarios posibles usando OpenSSH</a> (1,089 palabras)</p>
<hr />
<p><small><a href="http://www.vicente-navarro.com/blog">Lo hice y lo entendí</a> © Vicente Navarro 2009 con una licencia <a href="http://www.vicente-navarro.com/blog/licencia-de-uso/">CC BY-SA</a> |
<a href="http://www.vicente-navarro.com/blog/2009/05/24/creando-tuneles-tcpip-port-forwarding-con-ssh-los-8-escenarios-posibles-usando-openssh/#comments">18 comentarios</a>
<br/>
Etiquetas: <a href="http://www.vicente-navarro.com/blog/tag/gnulinux/" rel="tag">GNU/Linux</a>, <a href="http://www.vicente-navarro.com/blog/tag/openssh/" rel="tag">OpenSSH</a>, <a href="http://www.vicente-navarro.com/blog/tag/redes/" rel="tag">Redes</a>, <a href="http://www.vicente-navarro.com/blog/tag/unix/" rel="tag">UNIX</a>, <a href="http://www.vicente-navarro.com/blog/tag/vnc/" rel="tag">VNC</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vicente-navarro.com/blog/2009/05/24/creando-tuneles-tcpip-port-forwarding-con-ssh-los-8-escenarios-posibles-usando-openssh/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Emuladores de terminal. GNU screen: El multiplexador de sesiones de terminal.</title>
		<link>http://www.vicente-navarro.com/blog/2008/11/17/gnu-screen-el-multiplexador-de-sesiones-de-terminal/</link>
		<comments>http://www.vicente-navarro.com/blog/2008/11/17/gnu-screen-el-multiplexador-de-sesiones-de-terminal/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 21:09:04 +0000</pubDate>
		<dc:creator>Super Coco</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[GNU screen]]></category>
		<category><![CDATA[PuTTY]]></category>
		<category><![CDATA[termcap]]></category>
		<category><![CDATA[terminal]]></category>
		<category><![CDATA[terminfo]]></category>

		<guid isPermaLink="false">http://www.vicente-navarro.com/blog/?p=831</guid>
		<description><![CDATA[A finales de los 70, los monstruosos ordenadores de la época comenzaron a usar terminales serie para la consola y la entrada salida estándar (teclado y pantalla). Antes de ellos, los ordenadores interactuaban con el usuario usando teletipos (teletype: TTY, ¿te suenan de algo estas siglas?). Los terminales pioneros, tal y como los conocemos ahora, [...]]]></description>
			<content:encoded><![CDATA[<p>A finales de los 70, los monstruosos ordenadores de la época comenzaron a usar <a href="http://en.wikipedia.org/wiki/Computer_terminal">terminales serie</a> para la consola y la entrada salida estándar (teclado y pantalla). Antes de ellos, los ordenadores interactuaban con el usuario usando <a href="http://en.wikipedia.org/wiki/Teleprinter">teletipos</a> (teletype: TTY, ¿te suenan de algo estas siglas?). Los terminales pioneros, tal y como los conocemos ahora, fueron el <a href="http://en.wikipedia.org/wiki/VT52">DEC VT52</a> y el <a href="http://en.wikipedia.org/wiki/VT100">DEC VT100</a>, por allá por 1978. Éste era su aspecto:</p>
<p><img src="http://www.vicente-navarro.com/blog/wp/img/2008/11/vt100.jpg" alt="" title="DEC VT100" width="300" height="261" class="aligncenter size-full wp-image-834" /></p>
<div class="centrado"><small><a href="http://research.microsoft.com/~gbell/Digital/timeline/photos/vt100.jpg">(Fuente de la imagen)</a></small></div>
<p>Otros fabricantes desarrollaron otros tipos de terminales, con el mismo concepto, pero incompatibles con otros sistemas, como este HP 700/96, que aún se sigue usando en algunos <a href="http://es.wikipedia.org/wiki/Centro_de_proceso_de_datos">CPD</a> hoy en día:</p>
<p><img src="http://www.vicente-navarro.com/blog/wp/img/2008/11/terminal_hp_700_96.jpg" alt="" title="Terminal HP 700/96" width="500" height="253" class="aligncenter size-full wp-image-832" /></p>
<div class="centrado"><small><a href="https://www.sr-j.com/shop_manager/shop/select_item.php3?ctg_code=002">(Fuente de la imagen)</a></small></div>
<p>Los ordenadores personales, como el PC y los Apple o los Commodore, Spectrum, Amstrad CPC, etc. siguieron otro camino para mostrar la información al usuario, ya que, o bien usaban un sistema de vídeo propietario para mostrar texto y gráficos (p.e. <a href="http://en.wikipedia.org/wiki/Monochrome_Display_Adapter">MDA</a> o <a href="http://en.wikipedia.org/wiki/Video_Graphics_Array">VGA</a>), o bien se conectaban directamente al televisor.</p>
<p>Los grandes servidores UNIX (basados en AIX, HP-UX, Solaris, etc.) o similares (por ejemplo, basados en <a href="http://en.wikipedia.org/wiki/OpenVMS">OpenVMS</a>, o <a href="http://en.wikipedia.org/wiki/Z/OS">z/OS</a>) han llegado a nuestros días permitiendo la conexión de un terminal serie para usar la <a href="http://en.wikipedia.org/wiki/System_console">consola</a>, pero cada día es más infrecuente su uso, ya que han sido sustituidos por consolas LAN (accedemos por Telnet o por SSH a una dirección IP diferente a la propia del sistema) o por consolas Web (una página web donde nos aparece la consola), que, por supuesto, nos permiten interactuar con la máquina incluso durante el arranque y la parada.</p>
<p>Hoy en día los terminales serie están bastante en desuso. Sin embargo, los <a href="http://en.wikipedia.org/wiki/Terminal_emulator">emuladores de terminal</a> están en pleno apogeo, bien sean para conectarnos por Telnet, por SSH, o, por supuesto, por el puerto serie/módem (ya lo vimos en <a href="/blog/2007/12/06/configurar-linux-para-permitir-el-acceso-remoto-por-modem-a-la-consola-y-por-rasppp/">Configurar Linux para permitir el acceso remoto por módem a la consola y por RAS/PPP</a>). Por cierto, ¿qué tipo de terminal emulan la mayoría de emuladores de terminal como mínimo? Pues, por supuesto, el famoso VT100. Pero como otros fabricantes hicieron otros terminales con sus propios protocolos, secuencias de escape y capacidades, hay <a href="http://en.wikipedia.org/wiki/Terminal_emulator#Examples_of_terminal_emulators">múltiples tipos de emuladores de terminal</a>. Las emulaciones de terminal <code>ansi</code> y <code>vt100</code> (y tal vez <code>xterm</code>) son las más usadas.</p>
<p>(...)<br/><br/>Leer el resto de <a href="http://www.vicente-navarro.com/blog/2008/11/17/gnu-screen-el-multiplexador-de-sesiones-de-terminal/">Emuladores de terminal. GNU screen: El multiplexador de sesiones de terminal.</a> (1,373 palabras)</p>
<hr />
<p><small><a href="http://www.vicente-navarro.com/blog">Lo hice y lo entendí</a> © Vicente Navarro 2008 con una licencia <a href="http://www.vicente-navarro.com/blog/licencia-de-uso/">CC BY-SA</a> |
<a href="http://www.vicente-navarro.com/blog/2008/11/17/gnu-screen-el-multiplexador-de-sesiones-de-terminal/#comments">21 comentarios</a>
<br/>
Etiquetas: <a href="http://www.vicente-navarro.com/blog/tag/gnu-screen/" rel="tag">GNU screen</a>, <a href="http://www.vicente-navarro.com/blog/tag/gnulinux/" rel="tag">GNU/Linux</a>, <a href="http://www.vicente-navarro.com/blog/tag/putty/" rel="tag">PuTTY</a>, <a href="http://www.vicente-navarro.com/blog/tag/termcap/" rel="tag">termcap</a>, <a href="http://www.vicente-navarro.com/blog/tag/terminal/" rel="tag">terminal</a>, <a href="http://www.vicente-navarro.com/blog/tag/terminfo/" rel="tag">terminfo</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vicente-navarro.com/blog/2008/11/17/gnu-screen-el-multiplexador-de-sesiones-de-terminal/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Memoria swap en un fichero. ¿Cuánta memoria swap necesitamos?</title>
		<link>http://www.vicente-navarro.com/blog/2008/11/08/memoria-swap-en-un-fichero-%c2%bfcuanta-memoria-swap-necesitamos/</link>
		<comments>http://www.vicente-navarro.com/blog/2008/11/08/memoria-swap-en-un-fichero-%c2%bfcuanta-memoria-swap-necesitamos/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 11:39:18 +0000</pubDate>
		<dc:creator>Super Coco</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[dd]]></category>
		<category><![CDATA[HP-UX]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[memoria RAM]]></category>
		<category><![CDATA[rendimiento]]></category>
		<category><![CDATA[swap]]></category>
		<category><![CDATA[sysstat]]></category>

		<guid isPermaLink="false">http://www.vicente-navarro.com/blog/?p=817</guid>
		<description><![CDATA[Hace tiempo que lo venía haciendo en algunos sistemas Linux, pero últimamente, cada vez me he vuelto más estricto con esto: ¡Se acabaron las particiones de memoria de virtual o de swap en sistemas domésticos! Si lo pensamos detenidamente, tener una partición de swap, es tener una cantidad de espacio ahí abandonada y que en [...]]]></description>
			<content:encoded><![CDATA[<p>Hace tiempo que lo venía haciendo en algunos sistemas Linux, pero últimamente, cada vez me he vuelto más estricto con esto: ¡Se acabaron las particiones de <a href="http://en.wikipedia.org/wiki/Paging">memoria de virtual o de swap</a> en sistemas domésticos!</p>
<p>Si lo pensamos detenidamente, tener una partición de swap, es tener una cantidad de espacio ahí abandonada y que en rarísimas ocasiones veremos usar. Y si el kernel llega a usarla, hemos de prepararnos, en la mayoría de los casos, a experimentar un sistema extraordinariamente pesado, con lo que si es una situación habitual, más nos vale comprar una ampliación de la memoria. De nuevo, recalcar que me refiero a sistemas domésticos. En un servidor, la memoria swap nos puede ayudar a absorber un pico puntual de trabajo que sólo se da en ocasiones aisladas y que no podemos dejar de atender.</p>
<p>Para nuestro sistema doméstico, resulta mucho más conveniente un fichero de swap, igual que hacen todos los Windows basados en NT con el <code><a href="http://support.microsoft.com/kb/99768">pagefile.sys</a></code>. Las ventajas son muchas:</p>
<ul>
<li>Lo podemos poner en la partición/sistema de ficheros que queramos</li>
<li>Podemos borrarlo para liberar espacio si éste nos hace falta</li>
<li>Podemos crear uno nuevo en cualquier momento</li>
<li>No supone tener un espacio en disco bloqueado inservible para otros propósitos</li>
<li>Posiblemente su rendimiento sea algo peor que el de una partición dedicada de swap, pero si la memoria swap llega a tener que usarse intensivamente, el rendimiento será ya nefasto, ¿qué más da que sea un poco peor?</li>
</ul>
<p>Y, además, lo último, lo de que el rendimiento es peor parece que ni siquiera es cierto. En la <a href="http://en.wikipedia.org/wiki/Linux_Kernel_Mailing_List">LKML</a> leemos que usando kernels 2.6 el rendimiento de un fichero de swap no es peor que el de una partición de swap (<a href="http://lkml.org/lkml/2006/5/29/3">Jesper Juhl: a swap file is just as fast as a swap partition</a>):</p>
<blockquote><p>With a 2.4.x kernel swap files were slower than swap partitions, but with the 2.6 kernel a swap file is just as fast as a swap partition.</p></blockquote>
<p>(...)<br/><br/>Leer el resto de <a href="http://www.vicente-navarro.com/blog/2008/11/08/memoria-swap-en-un-fichero-%c2%bfcuanta-memoria-swap-necesitamos/">Memoria swap en un fichero. ¿Cuánta memoria swap necesitamos?</a> (2,097 palabras)</p>
<hr />
<p><small><a href="http://www.vicente-navarro.com/blog">Lo hice y lo entendí</a> © Vicente Navarro 2008 con una licencia <a href="http://www.vicente-navarro.com/blog/licencia-de-uso/">CC BY-SA</a> |
<a href="http://www.vicente-navarro.com/blog/2008/11/08/memoria-swap-en-un-fichero-%c2%bfcuanta-memoria-swap-necesitamos/#comments">15 comentarios</a>
<br/>
Etiquetas: <a href="http://www.vicente-navarro.com/blog/tag/dd/" rel="tag">dd</a>, <a href="http://www.vicente-navarro.com/blog/tag/gnulinux/" rel="tag">GNU/Linux</a>, <a href="http://www.vicente-navarro.com/blog/tag/hp-ux/" rel="tag">HP-UX</a>, <a href="http://www.vicente-navarro.com/blog/tag/kernel/" rel="tag">Kernel</a>, <a href="http://www.vicente-navarro.com/blog/tag/memoria-ram/" rel="tag">memoria RAM</a>, <a href="http://www.vicente-navarro.com/blog/tag/rendimiento/" rel="tag">rendimiento</a>, <a href="http://www.vicente-navarro.com/blog/tag/swap/" rel="tag">swap</a>, <a href="http://www.vicente-navarro.com/blog/tag/sysstat/" rel="tag">sysstat</a>, <a href="http://www.vicente-navarro.com/blog/tag/unix/" rel="tag">UNIX</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vicente-navarro.com/blog/2008/11/08/memoria-swap-en-un-fichero-%c2%bfcuanta-memoria-swap-necesitamos/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Redirigir la salida de un comando a un read con una tubería (pipe)</title>
		<link>http://www.vicente-navarro.com/blog/2008/10/13/redirigir-la-salida-de-un-comando-a-un-read-con-una-tuberia-pipe/</link>
		<comments>http://www.vicente-navarro.com/blog/2008/10/13/redirigir-la-salida-de-un-comando-a-un-read-con-una-tuberia-pipe/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 18:46:44 +0000</pubDate>
		<dc:creator>Super Coco</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://www.vicente-navarro.com/blog/?p=810</guid>
		<description><![CDATA[El mundo de las diferentes shells de UNIX es inmenso. Los pobres mortales con tiempo finito sólo podemos aspirar a ir aprendiendo detalles de aquí y detalles de allá conforme nos van haciendo falta. No hay más que ver que la última revisión del Advanced Bash-Scripting Guide son 802 páginas que, además, necesitan ser leídas [...]]]></description>
			<content:encoded><![CDATA[<p>El mundo de las diferentes <a href="http://en.wikipedia.org/wiki/Unix_shell">shells de UNIX</a> es inmenso. Los pobres mortales con tiempo finito sólo podemos aspirar a ir aprendiendo detalles de aquí y detalles de allá conforme nos van haciendo falta. No hay más que ver que la última revisión del <a href="http://tldp.org/LDP/abs/html/">Advanced Bash-Scripting Guide</a> son 802 páginas que, además, necesitan ser leídas muy detenidamente. Y eso si hablamos sólo de <code>bash</code>, porque cada una de las diferentes shells tiene sus mil y una peculiaridades.</p>
<p>La última vez que he sido consciente de mi enorme desconocimiento ha sido esta semana, cuando fruto de un comportamiento que me parecía ilógico me enredé con manuales y documentación de diferentes shells. ¿Habrá mucha gente capaz de dominar casi todos los aspectos de la shell?</p>
<p>Vayamos al grano&#8230; El problema que tuve fue que un script muy sencillo que en <code>ksh</code> funcionaba sin problemas, en <code>bash</code> no hacía lo que esperaba. El problema estaba en una línea como esta:</p>
<blockquote><pre>comando | read a b c</pre>
</blockquote>
<p>(...)<br/><br/>Leer el resto de <a href="http://www.vicente-navarro.com/blog/2008/10/13/redirigir-la-salida-de-un-comando-a-un-read-con-una-tuberia-pipe/">Redirigir la salida de un comando a un read con una tubería (pipe)</a> (1,288 palabras)</p>
<hr />
<p><small><a href="http://www.vicente-navarro.com/blog">Lo hice y lo entendí</a> © Vicente Navarro 2008 con una licencia <a href="http://www.vicente-navarro.com/blog/licencia-de-uso/">CC BY-SA</a> |
<a href="http://www.vicente-navarro.com/blog/2008/10/13/redirigir-la-salida-de-un-comando-a-un-read-con-una-tuberia-pipe/#comments">4 comentarios</a>
<br/>
Etiquetas: <a href="http://www.vicente-navarro.com/blog/tag/gnulinux/" rel="tag">GNU/Linux</a>, <a href="http://www.vicente-navarro.com/blog/tag/shell/" rel="tag">shell</a>, <a href="http://www.vicente-navarro.com/blog/tag/unix/" rel="tag">UNIX</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vicente-navarro.com/blog/2008/10/13/redirigir-la-salida-de-un-comando-a-un-read-con-una-tuberia-pipe/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Backups con rsync</title>
		<link>http://www.vicente-navarro.com/blog/2008/01/13/backups-con-rsync/</link>
		<comments>http://www.vicente-navarro.com/blog/2008/01/13/backups-con-rsync/#comments</comments>
		<pubDate>Sun, 13 Jan 2008 21:53:26 +0000</pubDate>
		<dc:creator>Super Coco</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[Cygwin]]></category>
		<category><![CDATA[OpenSSH]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.vicente-navarro.com/blog/2008/01/13/backups-con-rsync/</guid>
		<description><![CDATA[En ¿Piensas en si un día te roban el portátil? mencioné que me gusta hacer los backups con rsync. Me gusta usarlo para backups tanto locales (copiar ficheros de un directorio a otro del mismo sistema) como remotos (copiar ficheros de un sistema a otro), y tanto en en Linux como en Windows usando Cygwin [...]]]></description>
			<content:encoded><![CDATA[<p>En <a href="/blog/2007/12/26/piensas-en-si-un-dia-te-roban-el-portatil/">¿Piensas en si un día te roban el portátil?</a> mencioné que me gusta hacer los backups con <a href="http://samba.anu.edu.au/rsync/">rsync</a>. Me gusta usarlo para backups tanto locales (copiar ficheros de un directorio a otro del mismo sistema) como remotos (copiar ficheros de un sistema a otro), y tanto en en Linux como en Windows usando <a href="http://www.vicente-navarro.com/blog/tag/cygwin/">Cygwin</a> sin ningún problema de interoperabilidad para hacer backups remotos usando uno u otro como destino de las copias de seguridad.</p>
<p><code>rsync</code> es una herramienta para <strong>sincronizar los ficheros y directorios</strong> que tenemos almacenados en un sitio en otro diferente <strong>minimizando la transferencia de datos</strong> (<a href="http://en.wikipedia.org/wiki/Rsync">Wikipedia: rsync</a>). En realidad, <code>rsync</code> son dos cosas: <a href="http://en.wikipedia.org/wiki/Rsync#Algorithm">un algoritmo</a> de <em>delta compression</em> para sincronizar dos ficheros similares y una utilidad que usa dicho algoritmo junto con otras técnicas para hacer <a href="http://en.wikipedia.org/wiki/Mirror_%28computing%29">mirroring</a> de ficheros y directorios en otro sitio transfiriendo la mínima cantidad de datos posible.</p>
<p>(...)<br/><br/>Leer el resto de <a href="http://www.vicente-navarro.com/blog/2008/01/13/backups-con-rsync/">Backups con rsync</a> (3,566 palabras)</p>
<hr />
<p><small><a href="http://www.vicente-navarro.com/blog">Lo hice y lo entendí</a> © Vicente Navarro 2008 con una licencia <a href="http://www.vicente-navarro.com/blog/licencia-de-uso/">CC BY-SA</a> |
<a href="http://www.vicente-navarro.com/blog/2008/01/13/backups-con-rsync/#comments">82 comentarios</a>
<br/>
Etiquetas: <a href="http://www.vicente-navarro.com/blog/tag/backup/" rel="tag">backup</a>, <a href="http://www.vicente-navarro.com/blog/tag/cygwin/" rel="tag">Cygwin</a>, <a href="http://www.vicente-navarro.com/blog/tag/gnulinux/" rel="tag">GNU/Linux</a>, <a href="http://www.vicente-navarro.com/blog/tag/openssh/" rel="tag">OpenSSH</a>, <a href="http://www.vicente-navarro.com/blog/tag/rsync/" rel="tag">rsync</a>, <a href="http://www.vicente-navarro.com/blog/tag/windows/" rel="tag">Windows</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vicente-navarro.com/blog/2008/01/13/backups-con-rsync/feed/</wfw:commentRss>
		<slash:comments>82</slash:comments>
		</item>
		<item>
		<title>Autentificación trasparente por clave pública/privada con OpenSSH</title>
		<link>http://www.vicente-navarro.com/blog/2008/01/13/autentificacion-trasparente-por-clave-publicaprivada-con-openssh/</link>
		<comments>http://www.vicente-navarro.com/blog/2008/01/13/autentificacion-trasparente-por-clave-publicaprivada-con-openssh/#comments</comments>
		<pubDate>Sun, 13 Jan 2008 21:50:25 +0000</pubDate>
		<dc:creator>Super Coco</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[OpenSSH]]></category>
		<category><![CDATA[PuTTY]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://www.vicente-navarro.com/blog/2008/01/13/autentificacion-trasparente-por-clave-publicaprivada-con-openssh/</guid>
		<description><![CDATA[El protocolo SSH está preparado para que podamos autentificarnos de forma transparente (sin introducir una contraseña manualmente). Para ello, lo que hacemos es generar una pareja de claves pública/privada (podemos tener varias, una por protocolo) en el cliente de SSH y a continuación, al servidor de SSH le especificamos una serie de claves públicas de [...]]]></description>
			<content:encoded><![CDATA[<p>El protocolo <a href="http://en.wikipedia.org/wiki/SSH">SSH</a> está preparado para que podamos autentificarnos de forma transparente (sin introducir una contraseña manualmente). Para ello, lo que hacemos es generar una pareja de claves pública/privada (podemos tener varias, una por protocolo) en el cliente de SSH y a continuación, al servidor de SSH le especificamos una serie de claves públicas de clientes que, si acceden con la clave privada asociada, pueden entrar sin especificar una contraseña.</p>
<p>Cómo hacer esto en concreto varía entre implementaciones de cliente y servidor de SSH, pero si estamos usando <a href="http://openssh.org/">OpenSSH</a>, que es lo estándar tanto en Linux y *BSD, como en Cygwin, sólo hay que seguir unos sencillos pasos que vamos a ver a continuación.</p>
<p>(...)<br/><br/>Leer el resto de <a href="http://www.vicente-navarro.com/blog/2008/01/13/autentificacion-trasparente-por-clave-publicaprivada-con-openssh/">Autentificación trasparente por clave pública/privada con OpenSSH</a> (534 palabras)</p>
<hr />
<p><small><a href="http://www.vicente-navarro.com/blog">Lo hice y lo entendí</a> © Vicente Navarro 2008 con una licencia <a href="http://www.vicente-navarro.com/blog/licencia-de-uso/">CC BY-SA</a> |
<a href="http://www.vicente-navarro.com/blog/2008/01/13/autentificacion-trasparente-por-clave-publicaprivada-con-openssh/#comments">11 comentarios</a>
<br/>
Etiquetas: <a href="http://www.vicente-navarro.com/blog/tag/debian/" rel="tag">Debian</a>, <a href="http://www.vicente-navarro.com/blog/tag/gnulinux/" rel="tag">GNU/Linux</a>, <a href="http://www.vicente-navarro.com/blog/tag/openssh/" rel="tag">OpenSSH</a>, <a href="http://www.vicente-navarro.com/blog/tag/putty/" rel="tag">PuTTY</a>, <a href="http://www.vicente-navarro.com/blog/tag/ssh/" rel="tag">SSH</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vicente-navarro.com/blog/2008/01/13/autentificacion-trasparente-por-clave-publicaprivada-con-openssh/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Configurar el syslogd para que acepte mensajes de sistemas remotos</title>
		<link>http://www.vicente-navarro.com/blog/2007/12/08/configurar-el-syslogd-para-que-acepte-mensajes-de-sistemas-remotos/</link>
		<comments>http://www.vicente-navarro.com/blog/2007/12/08/configurar-el-syslogd-para-que-acepte-mensajes-de-sistemas-remotos/#comments</comments>
		<pubDate>Sat, 08 Dec 2007 18:06:53 +0000</pubDate>
		<dc:creator>Super Coco</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Redes]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[syslog]]></category>
		<category><![CDATA[Zyxel 660HW]]></category>

		<guid isPermaLink="false">http://www.vicente-navarro.com/blog/2007/12/08/configurar-el-syslogd-para-que-acepte-mensajes-de-sistemas-remotos/</guid>
		<description><![CDATA[Ya he comendao alguna vez que el router que uso para conectar a Internet es un Zyxel 660HW-61. Este router permite enviar sus mensajes al syslog de una máquina UNIX remota: El puerto de red asignado al syslog es el 514/UDP: # grep syslog /etc/services syslog 514/udp Sin embargo, el proceso syslogd de Debian no [...]]]></description>
			<content:encoded><![CDATA[<p>Ya he comendao alguna vez que el router que uso para conectar a Internet es un Zyxel 660HW-61. Este router permite enviar sus mensajes al syslog de una máquina UNIX remota:</p>
<p><img src='http://www.vicente-navarro.com/blog/wp/img/2007/12/zyxel_syslog.png' alt='Zyxel syslog' /></p>
<p>El puerto de red asignado al syslog es el 514/UDP:</p>
<blockquote><pre># grep syslog /etc/services
syslog          514/udp</pre>
</blockquote>
<p>Sin embargo, el proceso <code>syslogd</code> de Debian no se conecta a ese puerto porque no escucha mensajes de la red por defecto. Si queremos que lo haga, tenemos que editar el fichero <code>/etc/default/syslogd</code>, que en la configuración estándar no contiene ninguna opción:</p>
<blockquote><pre># For remote UDP logging use SYSLOGD="-r"
#
SYSLOGD=""</pre>
</blockquote>
<p>Si queremos que escuche de la red, hemos de especificar la opción <code>-r</code>:</p>
<blockquote><pre># For remote UDP logging use SYSLOGD="-r"
#
SYSLOGD="-r"</pre>
</blockquote>
<p>que sirve precisamente para esto:</p>
<blockquote><pre>       -r     This option will enable the facility to receive message from the
              network using an internet domain socket with the syslog  service
              (see  services(5)).   The default is to not receive any messages
              from the network.</pre>
</blockquote>
<p>y reiniciar el proceso con &#8220;<code>/etc/init.d/sysklogd restart</code>&#8220;. Tras esto, podremos comprobar que el demonio funciona con la opción deseada</p>
<blockquote><pre># ps -ef | grep syslog
root      4547     1  0 17:35 ?        00:00:00 /sbin/syslogd -r</pre>
</blockquote>
<p>y que el proceso está escuchando en el puerto 514/UDP:</p>
<blockquote><pre># netstat -a | grep syslog
udp        0      0 *:syslog                *:*</pre>
</blockquote>
<p>Puesto que los mensajes del Zyxel van a llegar por la <em>facility</em> <code>local2</code>, podemos querer establecer un fichero de log específico para él en el <code>/etc/syslog.conf</code> (para que se relea después de modificarlo, haremos un &#8220;<code>/etc/init.d/sysklogd reload</code>&#8220;):</p>
<blockquote><pre>local2.* /var/log/zyxel.log</pre>
</blockquote>
<p>Si quisiéramos que fuera un sistema Linux (por ejemplo, una Debian) el que mandara ciertos mensajes a un syslog remoto, podríamos hacerlo simplemente poniendo en el <code>syslog.conf</code> una línea como:</p>
<blockquote><pre>local3.* @sistemaremoto.dominio</pre>
</blockquote>
<p>Tras releer la configuración, con una sencilla prueba con el comando <code>logger</code>:</p>
<blockquote><pre>logger -p local3.info "Mensaje de prueba"</pre>
</blockquote>
<p>veremos que, efectivamente, el mensaje aparece en el sistema remoto en varios logs configurados para recibir mensajes de la prioridad formada por la pareja <em>facility</em>/<em>level</em> que hemos especificado:</p>
<blockquote><pre># grep "Mensaje de prueba" /var/log/*
/var/log/messages:Dec  8 18:18:15 ordenador logger: Mensaje de prueba
/var/log/syslog:Dec  8 18:18:15 ordenador logger: Mensaje de prueba</pre>
</blockquote>
<p>Recordemos que las <em>facilities</em> son:</p>
<ul>
<li>auth, security <sup>1</sup></li>
<li>authpriv</li>
<li>cron</li>
<li>daemon</li>
<li>ftp</li>
<li>kern</li>
<li>lpr</li>
<li>mail</li>
<li>mark (sólo para uso interno)</li>
<li>news</li>
<li>sys-log</li>
<li>user</li>
<li>uucp</li>
<li>local0 &rarr; local7</li>
</ul>
<p>y los <em>levels</em>:</p>
<ul>
<li>debug</li>
<li>info</li>
<li>notice</li>
<li>warning, warn <sup>1</sup></li>
<li>error, err <sup>1</sup></li>
<li>crit</li>
<li>alert</li>
<li>emerg, panic <sup>1</sup></li>
</ul>
<p><small>1. En los casos en que aparecen dos etiquetas juntas, la segunda es equivalente a la primera y está obsoleta.</small></p>
<p>Si tomamos una traza de red vemos que el protocolo (<em>BSD syslog Protocol</em>) es extraordinariamente sencillo (<a href="http://www.ietf.org/rfc/rfc3164.txt">RFC 3164</a>):</p>
<p><img src='http://www.vicente-navarro.com/blog/wp/img/2007/12/wireshark_syslog_trace.png' alt='wireshark syslog trace' /></p>
<p>Podemos ver que la prioridad es un byte que contiene la <em>facility</em> (5bits) y el <em>level</em> (3bits).</p>
<p>Con un simple <code>netcat</code> también podemos mandar mensajes a un <code>syslogd</code> remoto que esté escuchando la red, aunque no pongamos la cabecera con la prioridad y la fecha del evento:</p>
<blockquote><pre># echo "Nuevo mensaje de prueba con el netcat" | netcat -q 0 -u 192.168.1.20 514</pre>
</blockquote>
<p>y en el <code>/var/log/syslog</code> remoto encontramos el mensaje:</p>
<blockquote><pre>Dec  8 18:39:15 ordenador Nuevo mensaje de prueba con el netcat</pre>
</blockquote>
<p>:wq</p>
<hr />
<p><small><a href="http://www.vicente-navarro.com/blog">Lo hice y lo entendí</a> © Vicente Navarro 2007 con una licencia <a href="http://www.vicente-navarro.com/blog/licencia-de-uso/">CC BY-SA</a> |
<a href="http://www.vicente-navarro.com/blog/2007/12/08/configurar-el-syslogd-para-que-acepte-mensajes-de-sistemas-remotos/#comments">9 comentarios</a>
<br/>
Etiquetas: <a href="http://www.vicente-navarro.com/blog/tag/debian/" rel="tag">Debian</a>, <a href="http://www.vicente-navarro.com/blog/tag/gnulinux/" rel="tag">GNU/Linux</a>, <a href="http://www.vicente-navarro.com/blog/tag/syslog/" rel="tag">syslog</a>, <a href="http://www.vicente-navarro.com/blog/tag/unix/" rel="tag">UNIX</a>, <a href="http://www.vicente-navarro.com/blog/tag/zyxel-660hw/" rel="tag">Zyxel 660HW</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vicente-navarro.com/blog/2007/12/08/configurar-el-syslogd-para-que-acepte-mensajes-de-sistemas-remotos/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Configurar Linux para permitir el acceso remoto por módem a la consola y por RAS/PPP</title>
		<link>http://www.vicente-navarro.com/blog/2007/12/06/configurar-linux-para-permitir-el-acceso-remoto-por-modem-a-la-consola-y-por-rasppp/</link>
		<comments>http://www.vicente-navarro.com/blog/2007/12/06/configurar-linux-para-permitir-el-acceso-remoto-por-modem-a-la-consola-y-por-rasppp/#comments</comments>
		<pubDate>Thu, 06 Dec 2007 13:15:23 +0000</pubDate>
		<dc:creator>Super Coco</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[consola]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[GRUB]]></category>
		<category><![CDATA[minicom]]></category>
		<category><![CDATA[modem]]></category>
		<category><![CDATA[PPP]]></category>
		<category><![CDATA[RAS]]></category>
		<category><![CDATA[terminal]]></category>

		<guid isPermaLink="false">http://www.vicente-navarro.com/blog/2007/12/06/configurar-linux-para-permitir-el-acceso-remoto-por-modem-a-la-consola-y-por-rasppp/</guid>
		<description><![CDATA[En los PCs, la entrada estándar siempre ha sido el teclado, y la salida estándar, el monitor a través de la tarjeta de vídeo. Sin embargo, en los grandes sistemas UNIX, la entrada/salida estándar ha sido tradicionalmente a través de un terminal o un módem serie. Incluso en workstations UNIX enfocadas a CAD con monitor [...]]]></description>
			<content:encoded><![CDATA[<p>En los PCs, la entrada estándar siempre ha sido el teclado, y la salida estándar, el monitor a través de la tarjeta de vídeo. Sin embargo, en los grandes sistemas UNIX, la entrada/salida estándar ha sido tradicionalmente a través de un <a href="http://en.wikipedia.org/wiki/Computer_terminal">terminal</a> o un módem serie. Incluso en workstations UNIX enfocadas a CAD con monitor y teclado, siempre ha existido la posibilidad de gestionar la máquina desde el arranque por el puerto serie. En ocasiones, los fabricantes han redirigido esa conexión serie a un servidor de telnet para tener una &#8220;LAN Console&#8221; y en otras, a un servidor web, para tener una &#8220;Web Console&#8221;, pero en definitiva, los que hacen es facilitarnos el acceso a lo que sigue siendo internamente una consola serie estándar.</p>
<p>Los PCs no están bien preparados para tener como única posibilidad de entrada/salida un terminal serie. Al menos no durante el arranque y para configurar la BIOS. Una vez que el sistema operativo o el GRUB toma el control ya sí que podemos usar el puerto serie para gestionar el ordenador. Pero es precisamente en circunstancias muy dramáticas cuando nos puede interesar especialmente controlar el arranque remotamente. Por eso hay fabricantes de servidores x86 cuyos sistemas permiten redirigir la salida de la BIOS a un puerto serie, como por ejemplo la <a href="http://docs.hp.com/en/372432-001/372432-001.pdf">HP BIOS Serial Console</a>. Para ampliar información sobre servidores con esta posibilidad, podemos leer sobre <a href="http://en.wikipedia.org/wiki/IPMI">IPMI</a> y sobre <a href="http://en.wikipedia.org/wiki/Lights_out_management">Out-of-band management o Lights-out management</a>. <a href="http://www.compaq.co.jp/products/software/oe/Linux/mainstream/support/doc/general/hw_setup/mgmt.html">En la web en japonés sobre la tarjeta Lights-Out 100 de HP podemos ver capturas de una BIOS por el puerto serie</a>.</p>
<p>En cualquier caso, en PCs normales no tenemos esta posibilidad. El primer momento en el que podemos comenzar a redirigir la salida estándar es en el GRUB. El segundo momento es al arrancar el kernel de Linux. El tercero es cuando el sistema operativo ya está totalmente arriba.</p>
<p>Veamos cómo acceder a la consola por el puerto serie una vez que el sistema está arriba y luego veremos qué dificultades presentan los otros casos.</p>
<p>(...)<br/><br/>Leer el resto de <a href="http://www.vicente-navarro.com/blog/2007/12/06/configurar-linux-para-permitir-el-acceso-remoto-por-modem-a-la-consola-y-por-rasppp/">Configurar Linux para permitir el acceso remoto por módem a la consola y por RAS/PPP</a> (2,559 palabras)</p>
<hr />
<p><small><a href="http://www.vicente-navarro.com/blog">Lo hice y lo entendí</a> © Vicente Navarro 2007 con una licencia <a href="http://www.vicente-navarro.com/blog/licencia-de-uso/">CC BY-SA</a> |
<a href="http://www.vicente-navarro.com/blog/2007/12/06/configurar-linux-para-permitir-el-acceso-remoto-por-modem-a-la-consola-y-por-rasppp/#comments">18 comentarios</a>
<br/>
Etiquetas: <a href="http://www.vicente-navarro.com/blog/tag/consola/" rel="tag">consola</a>, <a href="http://www.vicente-navarro.com/blog/tag/debian/" rel="tag">Debian</a>, <a href="http://www.vicente-navarro.com/blog/tag/gnulinux/" rel="tag">GNU/Linux</a>, <a href="http://www.vicente-navarro.com/blog/tag/grub/" rel="tag">GRUB</a>, <a href="http://www.vicente-navarro.com/blog/tag/minicom/" rel="tag">minicom</a>, <a href="http://www.vicente-navarro.com/blog/tag/modem/" rel="tag">modem</a>, <a href="http://www.vicente-navarro.com/blog/tag/ppp/" rel="tag">PPP</a>, <a href="http://www.vicente-navarro.com/blog/tag/ras/" rel="tag">RAS</a>, <a href="http://www.vicente-navarro.com/blog/tag/terminal/" rel="tag">terminal</a>, <a href="http://www.vicente-navarro.com/blog/tag/unix/" rel="tag">UNIX</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vicente-navarro.com/blog/2007/12/06/configurar-linux-para-permitir-el-acceso-remoto-por-modem-a-la-consola-y-por-rasppp/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Terminales para Cygwin. Notas sobre Terminfo y Termcap.</title>
		<link>http://www.vicente-navarro.com/blog/2007/07/28/terminales-para-cygwin-notas-sobre-terminfo-y-termcap/</link>
		<comments>http://www.vicente-navarro.com/blog/2007/07/28/terminales-para-cygwin-notas-sobre-terminfo-y-termcap/#comments</comments>
		<pubDate>Sat, 28 Jul 2007 14:34:46 +0000</pubDate>
		<dc:creator>Super Coco</dc:creator>
				<category><![CDATA[UNIX]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Cygwin]]></category>
		<category><![CDATA[PuTTY]]></category>
		<category><![CDATA[termcap]]></category>
		<category><![CDATA[terminal]]></category>
		<category><![CDATA[terminfo]]></category>
		<category><![CDATA[X Window System]]></category>

		<guid isPermaLink="false">http://www.vicente-navarro.com/blog/index.php/2007/07/28/terminales-para-cygwin-notas-sobre-terminfo-y-termcap/</guid>
		<description><![CDATA[Llevamos varias entradas ya hablando del Cywin. En la de Instalar un Cygwin portable en una memoria USB comentaba que el Cygwin se usa normalment en una ventana de CMD de Windows. El tipo de terminal que usa Cygwin cuando funciona dentro de un CMD es cygwin: vnavarro@DARKSTAR ~ $echo $TERM cygwin Cada tipo de [...]]]></description>
			<content:encoded><![CDATA[<p>Llevamos varias entradas ya hablando del Cywin. En la de <a href="/blog/2007/07/06/instalar-un-cygwin-portable-en-una-memoria-usb/">Instalar un Cygwin portable en una memoria USB</a> comentaba que el Cygwin se usa normalment en una ventana de <a href="http://en.wikipedia.org/wiki/Windows_command_line">CMD de Windows</a>. El tipo de <a href="http://en.wikipedia.org/wiki/Computer_terminal">terminal</a> que usa Cygwin cuando funciona dentro de un CMD es <code>cygwin</code>:</p>
<blockquote><pre>vnavarro@DARKSTAR ~
$echo $TERM
cygwin</pre>
</blockquote>
<p>Cada tipo de terminal supone una forma diferente de hacer <em>scrolling</em>, de mover las líneas por la pantalla, los retornos de carro y de línea, de borrar el carácter anterior, de limpiar la pantalla, de conocer el número de líneas y columnas, de cómo usar colores y si se pueden usar, etc. Para la mayoría de aplicaciones de línea de comandos típicas de UNIX (por ejemplo, <code>ls, awk, sed, grep, cat, mv, cp</code>), todas estas especificaciones son indiferentes: Ellas toman la información que necesitan de sus argumentos de la línea de comandos o de la entrada estándar y sacan los resultados a través de la salida estándar y del código de error. Pueden incluso funcionar sin un terminal. Sin embargo, hay muchas otras aplicaciones que tienen que conocer muy bien cómo mover y posicionar texto por el terminal, como por ejemplo el <a href="http://www.vim.org/">vim</a>, el <a href="http://www.ibiblio.org/mc/">mc</a>, o el <a href="http://linux.die.net/man/1/top">top</a>.</p>
<p>Para que las aplicaciones que lo necesiten puedan interactuar con los múltiples tipos diferentes de terminales, las aplicaciones pueden usar, bien la librería <a href="http://en.wikipedia.org/wiki/Termcap">Termcap</a>, bien la librería <a href="http://en.wikipedia.org/wiki/Ncurses">ncurses</a> junto con la base de datos de terminales <a href="http://en.wikipedia.org/wiki/Terminfo">Terminfo</a>.</p>
<p>El Terminfo almacena la información de todos los tipos de terminal en <code>/usr/share/terminfo</code>. Dentro de ese directorio, por ejemplo el fichero <code>c/cygwin</code> almacena la información sobre el tipo de terminal que por defecto usa el Cygwin en el CMD de Windows, y el fichero <code>v/vt100</code> almacena el tipo de terminal más común y más emulado.</p>
<p>El Termcap también tiene su (mucho más pequeña) base de datos de terminales centralizada en un fichero único, el <code>/etc/termcap</code>. Podemos usar herramientas como el <code>infocmp -C</code> o el <code>captoinfo</code> (herramientas incluidas en el ncurses) para pasar la configuración para un tipo de terminal de un formato al otro.</p>
<p>(...)<br/><br/>Leer el resto de <a href="http://www.vicente-navarro.com/blog/2007/07/28/terminales-para-cygwin-notas-sobre-terminfo-y-termcap/">Terminales para Cygwin. Notas sobre Terminfo y Termcap.</a> (985 palabras)</p>
<hr />
<p><small><a href="http://www.vicente-navarro.com/blog">Lo hice y lo entendí</a> © Vicente Navarro 2007 con una licencia <a href="http://www.vicente-navarro.com/blog/licencia-de-uso/">CC BY-SA</a> |
<a href="http://www.vicente-navarro.com/blog/2007/07/28/terminales-para-cygwin-notas-sobre-terminfo-y-termcap/#comments">2 comentarios</a>
<br/>
Etiquetas: <a href="http://www.vicente-navarro.com/blog/tag/cygwin/" rel="tag">Cygwin</a>, <a href="http://www.vicente-navarro.com/blog/tag/putty/" rel="tag">PuTTY</a>, <a href="http://www.vicente-navarro.com/blog/tag/termcap/" rel="tag">termcap</a>, <a href="http://www.vicente-navarro.com/blog/tag/terminal/" rel="tag">terminal</a>, <a href="http://www.vicente-navarro.com/blog/tag/terminfo/" rel="tag">terminfo</a>, <a href="http://www.vicente-navarro.com/blog/tag/x-window-system/" rel="tag">X Window System</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vicente-navarro.com/blog/2007/07/28/terminales-para-cygwin-notas-sobre-terminfo-y-termcap/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Servicios en Cygwin (syslogd, sshd, telnetd, ftpd, nfsd, etc.)</title>
		<link>http://www.vicente-navarro.com/blog/2007/07/20/servicios-en-cygwin-syslogd-sshd-telnetd-ftpd-nfsd-etc/</link>
		<comments>http://www.vicente-navarro.com/blog/2007/07/20/servicios-en-cygwin-syslogd-sshd-telnetd-ftpd-nfsd-etc/#comments</comments>
		<pubDate>Fri, 20 Jul 2007 15:57:27 +0000</pubDate>
		<dc:creator>Super Coco</dc:creator>
				<category><![CDATA[UNIX]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Cygwin]]></category>
		<category><![CDATA[OpenSSH]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://www.vicente-navarro.com/blog/index.php/2007/07/20/servicios-en-cygwin-syslogd-sshd-telnetd-ftpd-nfsd-etc/</guid>
		<description><![CDATA[En entradas anteriores hemos tratado diversos temas sobre la utilización del Cygwin, centrándonos mucho en la consola del Cygwin y en su portabilidad. Pero una de las cosas más importantes de los sistemas UNIX son sus servidores/servicios/demonios que trabajan en segundo plano sin aparecer para nada en la consola. Los más típicos son los de [...]]]></description>
			<content:encoded><![CDATA[<p>En entradas anteriores hemos tratado diversos temas sobre la utilización del Cygwin, centrándonos mucho en la consola del Cygwin y en su portabilidad. Pero una de las cosas más importantes de los sistemas UNIX son sus servidores/servicios/demonios que trabajan en segundo plano sin aparecer para nada en la consola. Los más típicos son los de red, aunque hay muchos otros. En Cygwin también podemos usarlos, y opcionalmente podemos usar la infraestructura de Windows para convertirlos en <a href="http://en.wikipedia.org/wiki/Windows_Service">servicios de Windows</a>, de forma que podamos controlarlos usando el panel de Servicios, algo muy conveniente.</p>
<p>Para poder usar servicios de red, es muy importante tener en cuenta que la configuración por defecto del Firewall de Windows no nos permitirá su uso, de modo que en todo momento tenemos que tener en cuenta la necesidad de configurar correctamente este Firewall o cualquier otro Firewall Personal que podamos tener instalado.</p>
<p>También es muy importante, si queremos crear servicios de Windows, haber hecho la instalación para todos los usuarios, no sólo para el actual:</p>
<div class="imgbq"><img src='http://www.vicente-navarro.com/blog/wp/img/2007/07/cygwin_all_users.png' alt='Cygwin - Instalación para todos los usuarios' /></div>
<p>Además, los usuarios de Windows 2003 tendrán que tener alguna precaución adicional, ya que como dice el manual de Cygwin en la importante sección <a href="http://www.cygwin.com/cygwin-ug-net/ntsec.html">NT security and usage of ntsec</a>:</p>
<blockquote><p>On NT and Windows 2000 the SYSTEM user has these privileges and can run services such as sshd. However, on Windows 2003 SYSTEM lacks the <strong>Create a token object right</strong>, so it is necessary to create a special user with all the necessary rights, as well as Logon as a service, to run such services. For security reasons this user should be denied the rights to logon interactively or over the network.</p></blockquote>
<p>En esta entrada vamos a tratar los siguientes servicios:</p>
<ul>
<li><a href="/blog/2007/07/20/servicios-en-cygwin-syslogd-sshd-telnetd-ftpd-nfsd-etc/#inetd">inetd</a></li>
<li><a href="/blog/2007/07/20/servicios-en-cygwin-syslogd-sshd-telnetd-ftpd-nfsd-etc/#xinetd">xinetd</a></li>
<li><a href="/blog/2007/07/20/servicios-en-cygwin-syslogd-sshd-telnetd-ftpd-nfsd-etc/#syslogd">syslogd</a></li>
<li><a href="/blog/2007/07/20/servicios-en-cygwin-syslogd-sshd-telnetd-ftpd-nfsd-etc/#sshd">sshd</a></li>
<li><a href="/blog/2007/07/20/servicios-en-cygwin-syslogd-sshd-telnetd-ftpd-nfsd-etc/#nfsd">nfsd, mountd, portmap</a></li>
<li><a href="/blog/2007/07/20/servicios-en-cygwin-syslogd-sshd-telnetd-ftpd-nfsd-etc/#cygserver">cygserver</a></li>
<li><a href="/blog/2007/07/20/servicios-en-cygwin-syslogd-sshd-telnetd-ftpd-nfsd-etc/#eliminar">Eliminar todos los servicios</a></li>
<li><a href="/blog/2007/07/20/servicios-en-cygwin-syslogd-sshd-telnetd-ftpd-nfsd-etc/#nova">Y si algo no funciona&#8230;</a></li>
</ul>
<p>(...)<br/><br/>Leer el resto de <a href="http://www.vicente-navarro.com/blog/2007/07/20/servicios-en-cygwin-syslogd-sshd-telnetd-ftpd-nfsd-etc/">Servicios en Cygwin (syslogd, sshd, telnetd, ftpd, nfsd, etc.)</a> (2,656 palabras)</p>
<hr />
<p><small><a href="http://www.vicente-navarro.com/blog">Lo hice y lo entendí</a> © Vicente Navarro 2007 con una licencia <a href="http://www.vicente-navarro.com/blog/licencia-de-uso/">CC BY-SA</a> |
<a href="http://www.vicente-navarro.com/blog/2007/07/20/servicios-en-cygwin-syslogd-sshd-telnetd-ftpd-nfsd-etc/#comments">Sin comentarios</a>
<br/>
Etiquetas: <a href="http://www.vicente-navarro.com/blog/tag/cygwin/" rel="tag">Cygwin</a>, <a href="http://www.vicente-navarro.com/blog/tag/openssh/" rel="tag">OpenSSH</a>, <a href="http://www.vicente-navarro.com/blog/tag/ssh/" rel="tag">SSH</a>, <a href="http://www.vicente-navarro.com/blog/tag/windows/" rel="tag">Windows</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vicente-navarro.com/blog/2007/07/20/servicios-en-cygwin-syslogd-sshd-telnetd-ftpd-nfsd-etc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trabajando con Cygwin</title>
		<link>http://www.vicente-navarro.com/blog/2007/07/18/trabajando-con-cygwin/</link>
		<comments>http://www.vicente-navarro.com/blog/2007/07/18/trabajando-con-cygwin/#comments</comments>
		<pubDate>Wed, 18 Jul 2007 17:09:46 +0000</pubDate>
		<dc:creator>Super Coco</dc:creator>
				<category><![CDATA[UNIX]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Cygwin]]></category>

		<guid isPermaLink="false">http://www.vicente-navarro.com/blog/index.php/2007/07/18/trabajando-con-cygwin/</guid>
		<description><![CDATA[Cualquiera que se sienta confortable trabajando con una shell de Linux podrá comenzar a trabajar desde el primer momento con Cygwin sin absolutamente ninguna dificultad. Sin embargo, el Cygwin tiene algunas peculiaridades debidas a su naturaleza Windowsera que conviene que conozcamos para poder sacar el máximo rendimiento de este excelente proyecto. Vamos a verlas: Formas [...]]]></description>
			<content:encoded><![CDATA[<p>Cualquiera que se sienta confortable trabajando con una shell de Linux podrá comenzar a trabajar desde el primer momento con Cygwin sin absolutamente ninguna dificultad.</p>
<p>Sin embargo, el Cygwin tiene algunas peculiaridades debidas a su naturaleza <em>Windowsera</em> que conviene que conozcamos para poder sacar el máximo rendimiento de este excelente proyecto. Vamos a verlas:</p>
<ul>
<li><a href="/blog/2007/07/18/trabajando-con-cygwin/#paths">Formas de escribir los paths en Cygwin</a></li>
<li><a href="/blog/2007/07/18/trabajando-con-cygwin/#paquetes">El sistema de paquetes</a></li>
<li><a href="/blog/2007/07/18/trabajando-con-cygwin/#longarg">La longitud de los argumentos en la línea de comandos</a></li>
<li><a href="/blog/2007/07/18/trabajando-con-cygwin/#dev">Los ficheros de dispositivo <code>/dev</code></a></li>
<li><a href="/blog/2007/07/18/trabajando-con-cygwin/#exe">La extensión <code>.exe</code></a></li>
<li><a href="/blog/2007/07/18/trabajando-con-cygwin/#proc">El directorio <code>/proc</code></a></li>
<li><a href="/blog/2007/07/18/trabajando-con-cygwin/#utilidades">Las utilidades</a></li>
<li><a href="/blog/2007/07/18/trabajando-con-cygwin/#ln">Enlaces simbólicos</a></li>
<li><a href="/blog/2007/07/18/trabajando-con-cygwin/#crlf">¿LF o CR/LF?</a></li>
<li><a href="/blog/2007/07/18/trabajando-con-cygwin/#referencias">Referencias imprescindibles</a></li>
</ul>
<p>(...)<br/><br/>Leer el resto de <a href="http://www.vicente-navarro.com/blog/2007/07/18/trabajando-con-cygwin/">Trabajando con Cygwin</a> (2,148 palabras)</p>
<hr />
<p><small><a href="http://www.vicente-navarro.com/blog">Lo hice y lo entendí</a> © Vicente Navarro 2007 con una licencia <a href="http://www.vicente-navarro.com/blog/licencia-de-uso/">CC BY-SA</a> |
<a href="http://www.vicente-navarro.com/blog/2007/07/18/trabajando-con-cygwin/#comments">74 comentarios</a>
<br/>
Etiquetas: <a href="http://www.vicente-navarro.com/blog/tag/cygwin/" rel="tag">Cygwin</a>, <a href="http://www.vicente-navarro.com/blog/tag/windows/" rel="tag">Windows</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vicente-navarro.com/blog/2007/07/18/trabajando-con-cygwin/feed/</wfw:commentRss>
		<slash:comments>74</slash:comments>
		</item>
		<item>
		<title>Instalar un Cygwin portable en una memoria USB</title>
		<link>http://www.vicente-navarro.com/blog/2007/07/06/instalar-un-cygwin-portable-en-una-memoria-usb/</link>
		<comments>http://www.vicente-navarro.com/blog/2007/07/06/instalar-un-cygwin-portable-en-una-memoria-usb/#comments</comments>
		<pubDate>Thu, 05 Jul 2007 22:14:21 +0000</pubDate>
		<dc:creator>Super Coco</dc:creator>
				<category><![CDATA[PC]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[aplicaciones portables]]></category>
		<category><![CDATA[Cygwin]]></category>
		<category><![CDATA[memorias USB]]></category>

		<guid isPermaLink="false">http://www.vicente-navarro.com/blog/index.php/2007/07/06/instalar-un-cygwin-portable-en-una-memoria-usb/</guid>
		<description><![CDATA[Para aquellos que no lo conozcan, el Cygwin es un oasis en el desierto del Windows, un destello de luz entre sus tinieblas&#8230; Poético, ¿verdad? Bueno, ahora en serio, el Cygwin son dos cosas: Una librería dll (cygwin1.dll) que proporciona una capa de emulación de POSIX a las aplicaciones que hagan uso de ella. Una [...]]]></description>
			<content:encoded><![CDATA[<p>Para aquellos que no lo conozcan, el <a href="http://www.cygwin.com/">Cygwin</a> es un oasis en el desierto del Windows, un destello de luz entre sus tinieblas&#8230; Poético, ¿verdad? Bueno, ahora en serio, el Cygwin son dos cosas:</p>
<ul>
<li>Una librería <a href="http://en.wikipedia.org/wiki/Dynamic-link_library">dll</a> (cygwin1.dll) que proporciona una capa de emulación de <a href="http://en.wikipedia.org/wiki/POSIX">POSIX</a> a las aplicaciones que hagan uso de ella.</li>
<li>Una muy importante colección de herramientas migradas de Linux fácilmente usando la librería anterior.</li>
</ul>
<div class="centrado"><img src='http://www.vicente-navarro.com/blog/wp/img/2007/07/cygwin-logo.png' alt='Logo de Cygwin' /></div>
<p>Con Cygwin tenemos en un entorno unificado la mayoría de las aplicaciones de consola de Linux y, además, como lleva también una implementación del X.org (<a href="http://en.wikipedia.org/wiki/Cygwin/X">Cygwin/X</a>), también muchas aplicaciones gráficas. Hay incluso <a href="http://cygnome.sourceforge.net/">GNOME sobre Cygwin (CyGNOME)</a> y <a href="http://kde-cygwin.sourceforge.net/">KDE sobre cygwin</a>.</p>
<p>Para dar una idea de lo que lleva cygwin, podemos citar algunos de los programas que lleva la distribución estándar: gcc, bash, sed, awk, bzip2, wget, apache, ssh, sshd, perl, vim, emacs, latex, pine, netcat, rsync, rpm, dpkg, mc, cpio, curl, gv, fvwm, twm, xfig, xterm&#8230; <a href="http://www.cygwin.com/packages/">Cygwin Package List</a>.</p>
<p>(...)<br/><br/>Leer el resto de <a href="http://www.vicente-navarro.com/blog/2007/07/06/instalar-un-cygwin-portable-en-una-memoria-usb/">Instalar un Cygwin portable en una memoria USB</a> (2,162 palabras)</p>
<hr />
<p><small><a href="http://www.vicente-navarro.com/blog">Lo hice y lo entendí</a> © Vicente Navarro 2007 con una licencia <a href="http://www.vicente-navarro.com/blog/licencia-de-uso/">CC BY-SA</a> |
<a href="http://www.vicente-navarro.com/blog/2007/07/06/instalar-un-cygwin-portable-en-una-memoria-usb/#comments">9 comentarios</a>
<br/>
Etiquetas: <a href="http://www.vicente-navarro.com/blog/tag/aplicaciones-portables/" rel="tag">aplicaciones portables</a>, <a href="http://www.vicente-navarro.com/blog/tag/cygwin/" rel="tag">Cygwin</a>, <a href="http://www.vicente-navarro.com/blog/tag/memorias-usb/" rel="tag">memorias USB</a>, <a href="http://www.vicente-navarro.com/blog/tag/windows/" rel="tag">Windows</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vicente-navarro.com/blog/2007/07/06/instalar-un-cygwin-portable-en-una-memoria-usb/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Sobre la señal SIGHUP: nohup, disown, trap</title>
		<link>http://www.vicente-navarro.com/blog/2007/04/19/sobre-la-senal-sighup-nohup-disown-trap/</link>
		<comments>http://www.vicente-navarro.com/blog/2007/04/19/sobre-la-senal-sighup-nohup-disown-trap/#comments</comments>
		<pubDate>Thu, 19 Apr 2007 18:23:39 +0000</pubDate>
		<dc:creator>Super Coco</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[disown]]></category>
		<category><![CDATA[nohup]]></category>
		<category><![CDATA[patch]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[SIGHUP]]></category>
		<category><![CDATA[trap]]></category>

		<guid isPermaLink="false">http://www.vicente-navarro.com/blog/index.php/2007/04/19/sobre-la-senal-sighup-nohup-disown-trap/</guid>
		<description><![CDATA[El nohup es un comando de los históricos de UNIX. Cuando en un terminal físico (terminal serie), virtual (xterm, konsole, putty, telnet, ssh, etc.), o en la consola cerramos la sesión (cerrando la ventana si estamos en un entorno gráfico, con el comando exit, o pulsando Control+D en la shell), el proceso que gestiona dicho [...]]]></description>
			<content:encoded><![CDATA[<p>El <a href="http://www.die.net/doc/linux/man/man1/nohup.1.html">nohup</a> es un comando de los históricos de <a href="http://en.wikipedia.org/wiki/Unix">UNIX</a>. Cuando en un terminal físico (terminal serie), virtual (xterm, konsole, <a href="http://www.putty.nl/">putty</a>, telnet, ssh, etc.), o en la consola cerramos la sesión (cerrando la ventana si estamos en un entorno gráfico, con el comando <em>exit</em>, o pulsando Control+D en la shell), el proceso que gestiona dicho terminal (<a href="http://www.die.net/doc/linux/man/man8/agetty.8.html">getty</a>, <a href="http://www.die.net/doc/linux/man/man8/mgetty.8.html">mgetty</a>, <a href="http://www.hmug.org/man/8/sshd.php">sshd</a>, <a href="http://www.die.net/doc/linux/man/man8/telnetd.8.html">telnetd</a>, etc.) manda una <a href="http://en.wikipedia.org/wiki/Signal_(computing)">señal</a> <a href="http://en.wikipedia.org/wiki/SIGHUP">SIGHUP</a> a los procesos que cuelgan bajo ellos, normalmente, la shell, y en Linux, típicamente <a href="http://www.gnu.org/software/bash/">bash</a>. Tal y como podemos leer en la <a href="http://www.die.net/doc/linux/man/man1/bash.1.html">página de man de bash</a>, la shell, a su vez, manda dicha señal a todos los procesos que cuelgan bajo ella y, de hecho, incluso los despierta si están parados:</p>
<blockquote><p>The shell exits by default upon receipt of a <strong>SIGHUP</strong>.  Before exiting, an interactive shell<br />
resends  the  <strong>SIGHUP </strong> to  all  jobs, running or stopped.  Stopped jobs are sent <strong>SIGCONT</strong> to<br />
ensure that they receive the <strong>SIGHUP</strong>.  To prevent the shell from sending the  signal  to  a<br />
particular  job,  it  should  be  removed from the jobs table with the <strong>disown</strong> builtin (see<br />
SHELL BUILTIN COMMANDS below) or marked to not receive <strong>SIGHUP</strong> using disown -h.</p></blockquote>
<p>Ante la señal <strong>SIGHUP</strong> normalmente todos los procesos reaccionan simplemente saliendo, lo cual es un problema si queremos que nuestro programa siga ejecutándose en el sistema una vez que hayamos dejado la shell. Para evitar que esto ocurra, tradicionalmente se ha usado el comando <strong>nohup</strong>. Adicionalmente, el bash, <a href="http://www.faqs.org/faqs/unix-faq/shell/bash/">desde la versión 2.0</a>, también tiene el comando interno <em>disown</em> como podemos leer en el párrafo anterior.</p>
<p>(...)<br/><br/>Leer el resto de <a href="http://www.vicente-navarro.com/blog/2007/04/19/sobre-la-senal-sighup-nohup-disown-trap/">Sobre la señal SIGHUP: nohup, disown, trap</a> (1,183 palabras)</p>
<hr />
<p><small><a href="http://www.vicente-navarro.com/blog">Lo hice y lo entendí</a> © Vicente Navarro 2007 con una licencia <a href="http://www.vicente-navarro.com/blog/licencia-de-uso/">CC BY-SA</a> |
<a href="http://www.vicente-navarro.com/blog/2007/04/19/sobre-la-senal-sighup-nohup-disown-trap/#comments">15 comentarios</a>
<br/>
Etiquetas: <a href="http://www.vicente-navarro.com/blog/tag/bash/" rel="tag">bash</a>, <a href="http://www.vicente-navarro.com/blog/tag/c/" rel="tag">C</a>, <a href="http://www.vicente-navarro.com/blog/tag/debian/" rel="tag">Debian</a>, <a href="http://www.vicente-navarro.com/blog/tag/disown/" rel="tag">disown</a>, <a href="http://www.vicente-navarro.com/blog/tag/gnulinux/" rel="tag">GNU/Linux</a>, <a href="http://www.vicente-navarro.com/blog/tag/nohup/" rel="tag">nohup</a>, <a href="http://www.vicente-navarro.com/blog/tag/patch/" rel="tag">patch</a>, <a href="http://www.vicente-navarro.com/blog/tag/shell/" rel="tag">shell</a>, <a href="http://www.vicente-navarro.com/blog/tag/sighup/" rel="tag">SIGHUP</a>, <a href="http://www.vicente-navarro.com/blog/tag/trap/" rel="tag">trap</a>, <a href="http://www.vicente-navarro.com/blog/tag/unix/" rel="tag">UNIX</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vicente-navarro.com/blog/2007/04/19/sobre-la-senal-sighup-nohup-disown-trap/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Expresiones Regulares en la shell. Ejemplos de uso con grep, awk y sed.</title>
		<link>http://www.vicente-navarro.com/blog/2007/04/13/expresiones-regulares-en-la-shell-ejemplos-de-uso-con-grep-awk-y-sed/</link>
		<comments>http://www.vicente-navarro.com/blog/2007/04/13/expresiones-regulares-en-la-shell-ejemplos-de-uso-con-grep-awk-y-sed/#comments</comments>
		<pubDate>Fri, 13 Apr 2007 16:00:05 +0000</pubDate>
		<dc:creator>Super Coco</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[aMule]]></category>
		<category><![CDATA[awk]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[ed2k]]></category>
		<category><![CDATA[expresiones regulares]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[sed]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://www.vicente-navarro.com/blog/index.php/2007/04/13/expresiones-regulares-en-la-shell-ejemplos-de-uso-con-grep-awk-y-sed/</guid>
		<description><![CDATA[Estaba intentando hacer un CGI muy sencillo usando bash (como lo que quería hacer era algo muy específico de bash, no he querido usar ni Perl, ni PHP). La única dificultad que he encontrado ha sido obtener las distintas variables que el método GET pasa al CGI a través de la variable $QUERY_STRING, que normalmente [...]]]></description>
			<content:encoded><![CDATA[<p>Estaba intentando hacer un <a href="http://hoohoo.ncsa.uiuc.edu/cgi/">CGI</a> muy sencillo usando <a href="http://www.gnu.org/software/bash/">bash</a> (como lo que quería hacer era algo muy específico de <em>bash</em>, no he querido usar ni <a href="http://es.wikipedia.org/wiki/Perl">Perl</a>, ni <a href="http://es.wikipedia.org/wiki/PHP">PHP</a>). La única dificultad que he encontrado ha sido obtener las distintas variables que <a href="http://hoohoo.ncsa.uiuc.edu/cgi/forms.html">el método GET pasa al CGI a través de la variable $QUERY_STRING</a>, que normalmente tiene este aspecto:</p>
<blockquote><pre>QUERY_STRING='parametro1=valor1&#038;parametro2=valor2&#038;parametro3=valor3'</pre>
</blockquote>
<p>Estaba yo ya comenzando a darle vueltas a una <a href="http://es.wikipedia.org/wiki/Expresi%C3%B3n_regular">Expresión Regular</a> para interpretar dicha salida cuando he decidido buscar en Google para ver si alguien tenía una solución más completa que la que yo ya tenía a medias. He llegado al artículo <a href="http://www.ffnn.nl/pages/articles/linux/cgi-scripting-tips-for-bash-or-sh.php">CGI Scripting Tips for Bash or SH</a> que propone lo siguiente para extraer del QUERY_STRING la variable que nos interese:</p>
<blockquote><pre>PARAMETROX=`echo "$QUERY_STRING" | grep -oE "(^|[?&#038;])parametrox=[^&#038;]+" | sed "s/%20/ /g" | cut -f 2 -d "="`</pre>
</blockquote>
<p>Y es que con <a href="http://www.gnu.org/software/bash/">bash</a> y sus compañeros <a href="http://www.gnu.org/software/sed/">sed</a>, <a href="http://www.gnu.org/software/gawk/gawk.html">awk</a>, <a href="http://www.gnu.org/software/textutils/textutils.html">cat</a>, <a href="http://www.gnu.org/software/grep/">grep</a>, etc. aún se puede hacer casi de todo, incluso <a href="http://nanoblogger.sourceforge.net/">un weblog</a> o un <a href="http://userpages.umbc.edu/~mabzug1/bash-httpd.html">servidor web</a>. Como las <em>Expresiones Regulares</em> son tan excepcionalmente útiles como complicadas a la hora de usarlas, me he decidido a comentar algunos ejemplos, comenzando por el que me ha llevado a este artículo.</p>
<p>(...)<br/><br/>Leer el resto de <a href="http://www.vicente-navarro.com/blog/2007/04/13/expresiones-regulares-en-la-shell-ejemplos-de-uso-con-grep-awk-y-sed/">Expresiones Regulares en la shell. Ejemplos de uso con grep, awk y sed.</a> (1,917 palabras)</p>
<hr />
<p><small><a href="http://www.vicente-navarro.com/blog">Lo hice y lo entendí</a> © Vicente Navarro 2007 con una licencia <a href="http://www.vicente-navarro.com/blog/licencia-de-uso/">CC BY-SA</a> |
<a href="http://www.vicente-navarro.com/blog/2007/04/13/expresiones-regulares-en-la-shell-ejemplos-de-uso-con-grep-awk-y-sed/#comments">9 comentarios</a>
<br/>
Etiquetas: <a href="http://www.vicente-navarro.com/blog/tag/amule/" rel="tag">aMule</a>, <a href="http://www.vicente-navarro.com/blog/tag/awk/" rel="tag">awk</a>, <a href="http://www.vicente-navarro.com/blog/tag/debian/" rel="tag">Debian</a>, <a href="http://www.vicente-navarro.com/blog/tag/ed2k/" rel="tag">ed2k</a>, <a href="http://www.vicente-navarro.com/blog/tag/expresiones-regulares/" rel="tag">expresiones regulares</a>, <a href="http://www.vicente-navarro.com/blog/tag/gnulinux/" rel="tag">GNU/Linux</a>, <a href="http://www.vicente-navarro.com/blog/tag/grep/" rel="tag">grep</a>, <a href="http://www.vicente-navarro.com/blog/tag/sed/" rel="tag">sed</a>, <a href="http://www.vicente-navarro.com/blog/tag/shell/" rel="tag">shell</a>, <a href="http://www.vicente-navarro.com/blog/tag/unix/" rel="tag">UNIX</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vicente-navarro.com/blog/2007/04/13/expresiones-regulares-en-la-shell-ejemplos-de-uso-con-grep-awk-y-sed/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>El Sticky Bit y el SGID en directorios</title>
		<link>http://www.vicente-navarro.com/blog/2007/04/05/el-sticky-bit-y-el-sgid-en-directorios/</link>
		<comments>http://www.vicente-navarro.com/blog/2007/04/05/el-sticky-bit-y-el-sgid-en-directorios/#comments</comments>
		<pubDate>Wed, 04 Apr 2007 23:02:41 +0000</pubDate>
		<dc:creator>Super Coco</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[filesystems]]></category>
		<category><![CDATA[Sticky Bit]]></category>

		<guid isPermaLink="false">http://www.vicente-navarro.com/blog/index.php/2007/04/04/el-sticky-bit-y-el-sgid-en-directorios/</guid>
		<description><![CDATA[Todos los ficheros y directorios en un sistema UNIX tienen asociado un número compuesto de cuatro cifras en octal. Los tres dígitos menos significativos (least significant digit) especifican los permisos que tienen los usuarios sobre ese fichero (lectura (r), escritura (w) y ejecución (x) para el usuario, los usuarios pertenecientes al grupo o para otros): [...]]]></description>
			<content:encoded><![CDATA[<p>Todos los ficheros y directorios en un sistema <a href="http://en.wikipedia.org/wiki/Unix">UNIX</a> tienen asociado un número compuesto de cuatro cifras en octal. Los tres dígitos menos significativos (<a href="http://en.wikipedia.org/wiki/Least_significant_bit">least significant digit</a>)  especifican los permisos que tienen los usuarios sobre ese fichero (lectura (r), escritura (w) y ejecución (x)  para el usuario, los usuarios pertenecientes al grupo o para otros):</p>
<blockquote><pre>sst rwx rwx rwx
421 421 421 421
S   U   G   O

S=SUID, SGID y Sticky Bit
U=Usuario
G=Grupo
O=Otros
</pre>
</blockquote>
<p>Esto forma parte de los conocimientos básicos y mínimos de cualquier usuario de UNIX y podemos leer sobre ello en <a href="http://es.tldp.org/Manuales-LuCAS/doc-unixsec/unixsec-html/node55.html">Permisos de ficheros</a> del manual <a href="http://es.tldp.org/Manuales-LuCAS/doc-unixsec/unixsec-html/unixsec.html">Seguridad en UNIX y Redes</a>. También es muy conocida la existencia <a href="http://es.tldp.org/Manuales-LuCAS/doc-unixsec/unixsec-html/node56.html">de los bits SUID y SGID</a>, formados por los dos bits más significativos del octal más significativo. Aplicados sobre un fichero ejecutable, permiten que el programa se ejecute como si lo hiciera el usuario propietario (SUID) o el grupo propietario(SGID) del fichero.</p>
<p>Pero el propósito de esta entrada es resaltar la curiosidad, bastante menos conocida, de aplicar el bit menos significativo de la cifra octal más significativa (el que en el esquema anterior he marcado con una <strong>t</strong>), el <a href="http://en.wikipedia.org/wiki/Sticky_bit">Sticky Bit</a>, a un directorio (aplicado a un fichero no se usa para nada en la gran mayoría de los UNIX modernos). En el <em>man</em> del <em>chmod</em> leemos:</p>
<p>(...)<br/><br/>Leer el resto de <a href="http://www.vicente-navarro.com/blog/2007/04/05/el-sticky-bit-y-el-sgid-en-directorios/">El Sticky Bit y el SGID en directorios</a> (377 palabras)</p>
<hr />
<p><small><a href="http://www.vicente-navarro.com/blog">Lo hice y lo entendí</a> © Vicente Navarro 2007 con una licencia <a href="http://www.vicente-navarro.com/blog/licencia-de-uso/">CC BY-SA</a> |
<a href="http://www.vicente-navarro.com/blog/2007/04/05/el-sticky-bit-y-el-sgid-en-directorios/#comments">11 comentarios</a>
<br/>
Etiquetas: <a href="http://www.vicente-navarro.com/blog/tag/debian/" rel="tag">Debian</a>, <a href="http://www.vicente-navarro.com/blog/tag/filesystems/" rel="tag">filesystems</a>, <a href="http://www.vicente-navarro.com/blog/tag/gnulinux/" rel="tag">GNU/Linux</a>, <a href="http://www.vicente-navarro.com/blog/tag/sticky-bit/" rel="tag">Sticky Bit</a>, <a href="http://www.vicente-navarro.com/blog/tag/unix/" rel="tag">UNIX</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vicente-navarro.com/blog/2007/04/05/el-sticky-bit-y-el-sgid-en-directorios/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>
