PDF de programación - Hackers & Developers #9

Imágen de pdf Hackers & Developers #9

Hackers & Developers #9gráfica de visualizaciones

Publicado el 1 de Septiembre del 2017
737 visualizaciones desde el 1 de Septiembre del 2017
1,4 MB
62 paginas
Creado hace 6a (28/07/2013)
AÑO ----------- 0
NÚMERO -------- 9
FECHA: 2013-07-29

#9

“ESCORPIÓN”

HD Hackers &
+

DEVELOPERS

Magazine digital de distribución
mensual sobre Software Libre, Hacking y Programación
para profesionales del sector de Tecnologías de la Información

Staff

Eugenia Bahit
María José Montes Díaz
Milagros Infante Montero
Indira Burga
Sergio Infante Montero
Mario Iván Ruvalcaba

Arquitecta GLAMP & Agile Coach

Técnica en Informática de Gestión

Est. Ingeniería de Sistemas

Ingeniera de Sistemas

Ingeniero de Software

Profesional Técnico en Informática

Hackers & Developers Magazine se distribuye bajo una licencia Creative Commons Atribución
NoComercial CompartirIgual 3.0 Unported . Eres libre de copiar, distribuir y compartir este material.
FREE AS IN FREEDOM!

HD

Hackers &
DEVELOPERS
+

#9

Hackers & Developers Magazine, es
una iniciativa sin fines de lucro
destinada al fomento y difusión de
las tecnologías libres presentes o
futuras, bajo una clara óptica
docente y altruista, que resulte de
interés técnico y/o científico a
profesionales
de
sector
Tecnologías de
Información.
Hackers & Developers Magazine se
sostiene económicamente con el
apoyo de
comunidad, no
recibiendo subvención alguna de
ninguna empresa, organización u
organismo
Gobierno.
Necesitamos de tu apoyo para
poder mantener este proyecto.

del
la

la

de

Ayúdanos a continuar
con este proyecto
Puedes
hacer un donativo ahora,
de 10, 15, 25, 50, 100 o 150 USD
para ayudar a que Hackers &
Developers Magazine pueda seguir
publicándose de forma gratuita,
todos los meses. Puedes donar con
PayPal o Tarjeta de Crédito a través
del siguiente enlace:
www.hdmagazine.org/donar

“Hacker es alguien que disfruta
jugando con la inteligencia”

Richard Stallman
Free Software, Free Society
(Pág. 97), GNU Press 2010-2012

En esta edición:
Recupera la contraseña de root en GNU/Linux.......................................4
Conexiones SSH y SFTP desde Python con paramiko..............................7
Piwik: Una plataforma de análisis web alternativa..............................12
Página Man ¿cómo crearlas?................................................................24
Monitorización del Sistema con Conky.................................................33
Creando capturas de pantalla para tus manuales con Shutter.............39
Trabajando con GIT II...........................................................................45
KILL & KILLALL: Asesinato en Primer Grado.........................................51
El poderoso virtualenvwrapper............................................................55

Y LAS SECCIONES DE SIEMPRE:
ASCII Art...................................................................... Pág. 61
Este mes: Scorpion
Zona U!........................................................................ Pág. 62
La comunidad de nuestros lectores y lectoras

Créditos

Hackers & Developers Magazine es posible gracias al compromiso de:

Responsable de Proyecto

Eugenia Bahit

Responsables de Comunicación

Indira Burga (Atención al Lector) - Milagros Infante (Difusión)

Staff

Eugenia Bahit

Arquitecta GLAMP & Agile Coach

www.eugeniabahit.com

Indira Burga

Ingeniera de Sistemas
about.me/indirabm

Milagros Infante Montero

Estudiante de Ingeniería en Sistemas

www.milale.net

María José Montes Díaz

Técnica en Informática de Gestión

archninfa.blogspot.com.es

Sergio Infante Montero
Ingeniero de Software

neosergio.net

Colabora en esta edición:

Fabio Durán Verdugo

Hackers & Developers Magazine agradece a los portales que nos ayudan con la difusión del proyecto:

Difusión

www.debianhackers.net

www.desarrolloweb.com

www.desdelinux.net

E-mail de Contacto:
contacto@hdmagazine.org

Web Oficial: www.hdmagazine.org

Cuenta Twitter Oficial: @HackDevMagazine

Hackers & Developers Magazine – Año 0, Número 9 4

Recupera la contraseña
de root en GNU/Linux

I

N
M
D
A
S
Y
S

Aquí os dejo un pequeño truco que nos permitirá
restablecer la contraseña de root.

Escrito por: María José Montes Díaz (Archera & Programadora)

Estudiante de Grado Ingeniería en Tecnología de la información. Técnico
en informática de gestión. Monitora FPO. Docente de programación
Python y Scratch para niños de 6-12 años. Activista del software libre y
cultura libre.

Webs:
Blog: http://blog.archninfa.org/

Redes sociales:
Twitter: @MMontesDiaz

U

tilizamos muchas contraseñas y, por temas de seguridad, no usamos la misma
para todo, pero ¿qué ocurre si olvido la contraseña de root? Pues veamos un
método para restablecerla.

Lo primero que debemos hacer es decirle a nuestro gestor de arranque que, en lugar de
arrancar un modo normal, inicie sólo un terminal con Bash. Para ello, en el inicio del
sistema, tenemos la posibilidad de editar las entradas del gestor de arranque. Veamos
cómo se haría para Lilo y Grub:

LILO

Presionamos [Tab], y añadimos a la entrada init=/bin/bash

Linux
boot:Linux init=/bin/bash

GRUB

Podemos editar la entrada seleccionada pulsando e. Buscamos la entrada linux.
Podemos ver un ejemplo en la imagen:

©2013 HDMagazine.org – Creative Commons Atribución NoComercial CompartirIgual 3.0 Unported

Pág. 5

Una vez localizada la entrada, al final de línea, en este caso detrás de quiet, añadimos:

init=/bin/bash

Una vez editada la entrada, pulsamos F10 para continuar.

Nuestro sistema arrancará en un terminal con Bash, como usuario root y con el sistema
de archivos montado como sólo lectura. Lo siguiente, cambiar el modo a
lectura/escritura:

mount -o remount -rw

Y ya podemos restablecer la contraseña ejecutando:

passwd root

Sólo nos queda reiniciar el sistema:

/sbin/shutdown now -arn

©2013 HDMagazine.org – Creative Commons Atribución NoComercial CompartirIgual 3.0 Unported

Pág. 6

Hackers & Developers Magazine – Año 0, Número 9 7

Scripting para SysAdmins:

Conexiones SSH y
SFTP desde Python
con paramiko

G
N
I
T
P
I
R
C
S
N
O
H
T
Y
P



Crear conexiones SSH con Python, es tan simple como
escribir unas pocas líneas de código gracias al módulo
paramiko1 y con él, comenzamos la nueva serie de
artículos «Scripting para SysAadmins», especialmente
diseñada para Administradores de Sistemas que
deseen incursionar en la programación.

Escrito por: Eugenia Bahit (GLAMP Hacker & eXtreme Programmer)

Eugenia es Arquitecta de Software, docente e instructora de
tecnologías GLAMP (GNU/Linux, Apache, MySQL, Python y PHP) y Agile
coach (UTN) especializada en Scrum y eXtreme Programming. Miembro
de la Free Software Foundation, The Linux Foundation y Debian
Hackers. Creadora de python-printr, Europio Engine y colaboradora de
Vim.

Webs:
Cursos de programación: www.cursosdeprogramacionadistancia.com
Web personal: www.eugeniabahit.com

Redes sociales:
Twitter / Identi.ca: @eugeniabahit

C

ombinar el poder de SSH con el de Python es un sueño muy fácil de cumplir: solo
basta con recurrir al módulo paramiko para que con unas pocas líneas de código,
podamos crear scripts que nos permitan crear conexiones SSH y ejecutar

comandos de forma remota.

import paramiko

paramiko permite que el usuario se valide tanto por contraseña como por par de llaves,

1

https://pypi.python.org/pypi/paramiko



por lo cual es ideal para autenticar usuarios más allá de las políticas del servidor.

Conexión con autenticación por contraseña
El siguiente, es un ejemplo de conexión estándar autenticada por contraseña:

import paramiko

# Inicia un cliente SSH
ssh_client = paramiko.SSHClient()

# Establecer política por defecto para localizar la llave del host localmente
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# Conectarse
ssh_client.connect('123.456.78.90', 22, 'user', 'secretpassword')

# Ejecutar un comando de forma remota capturando entrada, salida y error estándar
entrada, salida, error = ssh_client.exec_command('ls -la')

# Mostrar la salida estándar en pantalla
print salida.read()

# Cerrar la conexión
ssh_client.close()

Como se puede observar, utilizar paramiko es sumamente simple y no tiene demasiada
ciencia. El único “truco” a tener en cuenta, es establecer la política por defecto para la
localización de la llave del host en el ordenador del cliente. De lo contrario, si no se
encontrara la llave del host (host key, usualmente localizada en el archivo
~/.ssh/know_hosts), Python nos arrojaría la siguiente excepción de paramiko:

raise SSHException('Unknown server %s' % hostname)
paramiko.SSHException: Unknown server 123.456.78.90

Un consejo: para evitar dejar la contraseña almacenada en texto plano (lo cual es de sumo riesgo y sin
sentido), éste se le puede solicitar al usuario mediante getpass.

from getpass import getpass
import paramiko

clave = getpass('Clave: ')

HOST = '123.456.78.90'
PUERTO = 372
USUARIO = 'juanperez'

©2013 HDMagazine.org – Creative Commons Atribución NoComercial CompartirIgual 3.0 Unported

Pág. 8

datos = dict(hostname=HOST, port=PUERTO, username=USUARIO, password=CLAVE)

ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(**datos)
entrada, salida, error = ssh_client.exec_command('ls -la')
print salida.read()
ssh_client.close()

Conexión autenticada por par de llaves
Para conectarse evitando la utilización de una contraseña, se pudo haber creado
previamente, una llave pública que el usuario debió enviar al servidor, para que el
servidor la pueda contrarrestar contra la llave privada del usuario. En este caso, solo
podrá bastar con no enviar la contraseña para autenticar al usuario:

import paramiko

HOST = '123.456.78.90'
PUERTO = 372
USUARIO = 'juanperez'
datos = dict(hostname=HOST, port=PUERTO
  • Links de descarga
http://lwp-l.com/pdf6685

Comentarios de: Hackers & Developers #9 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad