jueves, 31 de enero de 2013

Montar unidad de red desde línea de comandos

Entrada rápida.

Desde línea de comandos, y como root o usando sudo, ponemos lo siguiente:

#mount -t smbfs -o workgroup=GRUPOTRABAJO,guest,sec=none,rw //SERVIDOR/UNIDADCOMPARTIDA /PTOMONTAJE/

Donde:
GRUPOTRABAJO=Identificación del grupo de trabajo en red. Sustituir por el que sea.
SERVIDOR=Servidor que contiene el recurso compartido. Si no tenemos un servidor DNS que nos de su ip, poner la dirección ip en vez del nombre.
UNIDADCOMPARTIDA=Nombre de la unidad compartida dentro del servidor. Sustituir por el que sea.
PTOMONTAJE=Punto donde queremos montar la unidad de red. Sustituir por lo que sea. Recomiendo un sitio bien localizado dentro de una carpeta del usuario que vaya a hacer uso de ella.

Para desmontar:

#umount /PTOMONTAJE/

Podemos crear dos lanzadores para realizar el montaje y desmontaje teniendo en cuenta que hemos de estar logados como root. Para ello ver el post anterior.

Bueno, espero sea de utilidad al alguien!

=:)

Nota: La instrucción de montaje es para conectar a unidades de red que no pidan usiario ni clave. Si lo hacer, bueno, investigad un poco... mas adelante haré un minipost sobre ello, o ampliaré este.


Lanzador de aplicación ejecutada como root

Hola otra vez!!

Os dejo una entrada que para mí es curiosa, pues más de una vez me ha surgido la duda/necesidad de resolver este problemilla, pero que siempre he dejado por falta de tiempo/ganas. El caso es que hoy me he puesto y bueno, es más fácil de lo que parecía.

La idea es que creemos el lanzador de un programa usando el truco comentado en este mismo blog, de forma que cuando usemos dicho lanzador el sistema nos pida la clave de root y tras introducirla ejecute dicho programa como si lo hiciera el propio root.

Lo único que hay que hacer es lanzar la orden entre comillas simples y precedida del comando: su-to-root -X -c 


De forma que el comando usado en el ejemplo de creación de lanzador pasa de ser:

/usr/bin/octave
a ser:
su-to-root -X -c '/usr/bin/octave'

Obviamente esto puede ejecutarse igual desde una línea de comandos, además desde dentro de un lanzador, pero para ello sería más comodo usar simplemente sudo.

La opción -X significa que vamos a lanzar un programa con entorno gráfico de forma que nos pida la clave de root desde una ventana modal gráfica. Si no podemos esa opción considerará que estamos en entorno de línea de comandos,y será como usar sudo.

La opción -c indica que el comando que queremos ejecutar lo ponemos en forma de cadena, de ahí lo de las comillas simples. Esto es muy útil cuando dicho comando es complejo y tiene opciones, pues de no ponerse así el programa su-to-root daría error al creer dichas opciones van dirigidas a él.

Bueno, espero os sea de utilidad!!

=:)


Instalar y configurar sudo

Hola!

En cuatro sencillos pasos, todos ejecutados como usuario root:

1-Instalar paquetes:
#aptitude install -y sudo libgksu2-0

2-crear grupo sudo:
#groupadd sudo

3-Verificar que existe en el fichero: /etc/sudoers 
la línea: %sudo ALL=(ALL) ALL
si no existe la añadimos.

4-Añadimos nuestro usuario a al grupo sudo:
#usermod -a -G sudo $USUARIO
donde sustituiremos $USUARIO por el nombre del usuario que sea.

5-Añadimos una nueva regla al fichero: /etc/polkit-1/localauthority.conf.d/51-debian-sudo.conf
para ello le añadimos lo siguiente:
[Configuration]
AdminIdentities=unix-group:sudo
Esto sirve para que al ejecutar sudo pida la clave del usuario que la ejecuta, no la de root. Para hacer esto usaremos nuestro editor favorito, es mi caso:
#vi /etc/polkit-1/localauthority.conf.d/51-debian-sudo.conf

Con esto, el usuario que hayamos configurado, podrá ejecutar cualquier comando como superusuario anteponiendo la palabra sudo a la orden que sea en la línea de comandos. Antes de ejecutar la orden pedirá una clave, que será la personal de dicho usuario, no la de root.

Espero os sea de utilidad!!

=:)

lunes, 14 de enero de 2013

El suicido de Aaron Swartz

Copio y pego, espero que no le importe al autor. Pinchad en el título para ir al original.

A Aaron Swartz, gracias.

El suicido de Aaron Swartz

Nico Varonas .

El suicidio de Aaron Swartz nos dejó paspados, mirando las letras sobre la pantalla y tratando de comprender lo que habíamos perdido y su porqué. Un chico prodigio que desde su adolescencia ayudó a que internet y la comunicación libre en ella se desarrollara más rápido y que en su juventud se ocupó de que nadie nos la arrebatara. Co-fundador de Reddit, co-arquitecto de Creative Commons, vocero de la campaña anti ley SOPA y mucho más, la pérdida de Aaron a sus 26 años parece una injusticia. Desde aquí, nuestro homenaje para él y su encomiable lucha para que tú tengas una mejor y libre internet.

Poco se sabía de Aaron Swartz hasta que hace la noticia de su muerte salió a los medios de comunicación. La mayoría de las personas ignoran la existencia de Reddit y el nombre de quienes hicieron dar vuelta la ley SOPA tampoco les suena, si es que la ley en cuestión les es conocida. La ignorancia y el desinterés son moneda corriente cuando hay tanto para ocuparse en otros ámbitos de la vida cotidiana, y como los pequeños héroes no sobrevuelan las ciudades con vestimentas fluorescentes, la gente no los toma en cuenta ni siquiera cuando estos las salvan, día a día, de ser más sujetadas por el poder. Aaron Swartz era uno de esos personajes de los cuales se sabe menos de lo que se debería y recientemente ha pasado a engrosar la triste lista de los buenos que mueren jóvenes. Hace unos días, deprimido, enfermo y desbordado por su situación ante la ley, Swartz nos privó de sus futuras genialidades, quitándose la vida en su departamento de Brooklyn.

La noticia de su muerte generó escalofríos y un pesar absoluto, tanto en sus familiares como en toda la comunidad informática. Y es que no murió cualquiera, sino que se fue el responsable de que el protocolo RSS evolucionara escribiendo las especificaciones de la versión 1.0, con lo que pasaría a formar parte de la elite de informáticos que pertenecen a la W3C, el consorcio dirigido por el creador de internet, Tims Berners-Lee y que se encarga de establecer los estándares, recomendaciones y certificaciones en la red. Aaron tenía 14 años en ese momento.

Todo lo que vendría después lo convertiría en historia, participando de la creación de la primera estructura de Creative Commons y Open Library, fundando Infogami que luego se fundió con Reddit, de quien se convirtió en uno de los dueños y principales difusores. Especialmente orientado a la libertad de internet, el respeto por la privacidad y el hacktivismo, Aaron Swartz inició el camino que lo llevaría a la noticia que hoy damos al fundar Demand Progress, la tal vez más activa organización en contra de la ley SOPA. Su discurso sobre cómo se paró la ley SOPA no tiene desperdicio y te recomendamos que veas el video (en inglés por ahora).
Hacktivista como pocos, Aaron fue acusado de descargar 4 millones de artículos académicos de JSTOR

El comienzo del fin fue hace poco más de una semana, cuando Aaron Swartz fue arrestado luego de ser acusado de fraude informático y una larga lista más de cargos por descargar ilegalmente 4 millones de artículos del sitio JSTOR, especializado en documentos académicos. La razón por la cual Swartz descargaba los artículos ilegalmente era que la página cobraba su descarga, pero el verdadero rechazo estaba en quién se beneficiaba del dinero por descarga, ya que JSTOR no compensaba a los autores, sino a los editores. Swartz no estaba contento con esta situación, que limitaba el acceso a conocimiento importante producido por los colegios y universidades de su país. La persecución venía dándose desde Julio de 2011, cuando la fiscalía de los Estados Unidos lo acusó. Hasta el día de su muerte, la pelea legal se seguía dando, pero Aaron se enfrentaba a una exagerada pena de 35 años de prisión y a una multa de 1 millón de dólares. 35 años por descargar documentos de la web cuando los principales impulsores de la crisis económica global siguen libres. El viernes pasado, Swartz no lo soportó más.
Anonymous se manifestó ante la injusticia de su muerte hackeando al MIT.

La repercusión de su fallecimiento fue masiva, y todos los implicados en su vida y situación legal salieron a contar su parte y a dar su despedida y homenajes. La familia acusó a la fiscalía indicando que el suicidio de este genio fue producto de un sistema de justicia penal plagado de intimidación y persecución extralimitada. El MIT, involucrado en la vida de Swartz en muchos aspectos, también habló a través de la pluma de su presidente, Rafael Reif, quien aseguró que investigará el papel que tuvo el MIT en esta tragedia. Sus fanáticos lo llorarán y tomarán ciertas acciones, como la que realizó Anonymous hackeando al MIT esta tarde. Pero la mejor forma de “vengar” su muerte es darle significado a la vida, luchando por lo que este héroe informático siempre abogó: la libertad en internet y la globalización del acceso a contenido importante para protegerla.

jueves, 3 de enero de 2013

Código en scripts de GnuPlot

Buenos días a todos/as!

A ver, un par de notas que pueden resultar de utilidad cuando queremos usar un mismo script de GnuPlot con distintos ficheros fuente, de forma que obtengamos distintas figuras que provienen de distintos datos y sin embargo son iguales en formato. Añadimos a esto el ahorro de tiempo y la buena imagen que la homogeneidad dá.

A ver, este es nuestro script de trabajo:

#variables iniciales a configurar
fichero='./3c_10.out'
figura='figuras_3d_3c_10_00.png'
titulo="Curva de potencial del sistema H_2(0,0)+H2(0,0)\nGeometria 3 cuerpos"
min=1  #Mostrar o no el valor del minimo
tipo=3   #Tipo: 1=V0, 2=V5, 3=V10

margen=0.8
base=0.7
colorr="black"


#variables iniciales a configurar. Se usarán unas y otras en funcion de una variable previa.
if(tipo==1) xmin=1.5; ymin=0.0; zmin=-4.34379036;
if(tipo==2) xmin=1.4; ymin=0.3; zmin=-4.52947145;
if(tipo==3) xmin=1.7; ymin=0.0; zmin=-4.71167736;


#ajustes de grafica
set style line 1 lt 1 lw 2 linecolor rgb colorr
set style arrow 1 head filled size screen 0.025,30,45 ls 1

set term png size 640,640
set output "a.png"
set xlabel "X"
set ylabel "Y"
#set title titulo
set xrange[:]
set yrange[0:]
set zrange[:2.0]
set xtics -2.5,1,2.5
set ztics -7,2,2
set hidden3d
set cntrparam levels incr -7.5,0.5,2.0
set contour base
unset key
set view 70,110
set ticslevel base


#generacion de figura en fichero temporal para que las variables del gnuplot se actualicen
splot fichero u 7:8:9 w l
set output figura

#ajustes dependientes de variable inicial
if(min==1) set arrow 1 from 0,GPVAL_Y_MAX*margen,2.0 to xmin,ymin,zmin as 1;
if(min==1) base2=GPVAL_Z_MIN-(GPVAL_Z_MAX-GPVAL_Z_MIN)*base;
if(min==1) base3=ymin+GPVAL_Y_MAX/5;
if(min==1) set arrow 2 from xmin,base3,base2*0.8 to xmin,ymin,base2 as 1 front;
if(min==1) set label 1 sprintf("%5.3f,%5.3f,%5.3f",xmin,ymin,zmin) at 0,GPVAL_Y_MAX*margen,2.45 center textcolor rgb colorr


#generacion de grafica final
splot fichero u 7:8:9 w l

set term X11

Como siempre, esto se guarda dentro de un fichero (figuras_3d_3c.plt, por ejemplo), al que llamaremos desde línea de comando de la siguiente forma:

#gnuplot figuras_3d_3c.plt

Antes de ello hemos de configurar las partes comentadas como variables iniciales a donfigurar. En ellas indicaremos el nombre del fichero de entrada, el de la figua de salida, y en este caso valores relacionados con los datos con los que estoy trabajando. Lo importate de ello es que en función de estos valores el comportamiento del script será diferente. Fijaros como las variables iniciadas manualmente luego son llamadas en distintos puntos de script.

Otra cosa interesante de este script es la generación de una figura temporal y el uso de una serie de variables internas del GnuPlot, com són: GPVAL_Z_MIN y demás. A ver, la cosa es que se realiza una representación previa de la figura para que estas variables internas tomen valor (vienen a ser los límites de la figura en sus distintas dimensiones), para luego configurar nuevos elementos de la gráfica en función de dichas variables de forma automáticas. Entoces representamos de nuevo pero esta vez generando la figura buena. Esto nos evita gran cantidad de ajustes manuales que además suelen ser dificiles de hacer de forma homogénea en el caso de muchas figuras.

Más a destacar: el uso de la instrucción sprintf a través de la cual podremos crear una variable string formateada a partir de variables numéricas, que podremos usar como label.  

Los dato para esta figura nos los puedo subir ahora, a ver si me acuerdo de hacerlo más tarde.

El resultado finales el siguente:

Podemos encontrar además otras cosas interesantes, como son las flechas, labels y distintas propiedades de las superficies 3d. Destaco entre ellas la propiedad ticslabel, que separará el plano XY inferiot del resto de l figura, permitiéndonos ver su proyección correctamente. En función de su seperación se configurará automáticamnte la ubicación de la flecha inferior de forma que los señale correctamente sin necesidad de ajustes manuales.

Última nota: Para que la curba en 3d salga como un grid o regilla es preciso que los haya el mismo número de datos en cada línea de cada dimensión es decir, ha de haber siempre n datos Y para cada dato X, si no es así tan solo podremos representar lineas o puntos. Otro punto necesario para que obtengamos dicho grid es que tras cada cambio de vabiable X, dejemos una linea en blanco. Un posible fichero de ejemplo de 3x3 dimensiones, que se representaría correctamente sería el siguiente:

1  1  5.0
1  2  5.1
1  3  2.4

2  1  0.4
2  2  5.1
2  3  0.1

3  1  6.3
3  2  3.1
3  3  2.3

Vamos que tenís que mirar bien el script.

Espero que os sea de utilidad.

=:)




miércoles, 2 de enero de 2013

Subir versión del Kernel desde repositorios

Hola!

Resulta que he adquirido un bonito usb-wifi de lo más de pequeño, un Ralink 5370, que casualmente no es detectado correctamente por mi debian ultrastandar con kernel 2.6.
Tras compliar los driver que bajé de internet y los que venían en con el propio chisme, me encontré con que no acababan de funcionar bien pues la conexión se perdía.

Al final pensé que era momeno se subir de versión el kernel. Aquí estube baranando varias opciones, incluida la de compilar desde cero un kernel a medida y la de bajar un kernel precompilado estándar desde los repositorios de Ubunto.

El caso es que para la primera opción me faltó tiempo, y la segunda no solucionó mis problemas. Así que ni os molestéis.

Tras ello pensé en usar repositorios de la versión Test de Debian, y con ello conseguí mi objetivo sobradamente, además de comenzar a usar un kernel que hoy por hoy está mucho más avanzado que el anterior.

Para ello hay que
  1. Añadir a nuestros repositorios el repositorio Backport, cosa que se describe con de talle en la siguiente página.
  2. Entrar en Synaptic.
  3. Actualizar la lista de paquetes: Pulsar botón Rerescar o buscr dicha opción e menú.
  4. Buscar paquetes con el nombre 'image-linux'.
  5. Mirar con mucho cuidado y marcar los paquetes asociados al kernel que se corresponda con nuestra arquitectura hardware.
  6. Instalar paquetes.
  7. Desactivar el repositorio Backport, cosas que se hace fácilmente desde el propio Synaptic.
  8. Reiniciar usando el nuevo kernel.
  9. Recomiendo estar una semana o así probando y su todo ha ido bien, repetir los pasos 2 a 4 y marcar para desinstalación los paquetes asociados al antiguo kernel y eliminar. Este paso no es necesario, aunque a mi me gusta tener las cosas limpitas.
Pués eso es todo.
A ver, si tengo tiempo editaré la entrada para poner una lista básica de los paquetes a seleccionar e instalar en los pasos 5 y 6, y pongo alguna imagen que aclare algunos puntos algo oscuros. Hasta entonces.... a practicar la curiosidad y el buen hábito de pensar!.

=:)

Cosas del zoom del mplayer

Pues resulta que si al maximizar o poner a pantalla completa el mplayer la imagen no crece, se queda igual y centradita se puede arreglar.

Hay que editar el fichero: /etc/mplayer/mplayer.conf

Buscar la variable zoom y darle el valor "yes", obviamente sin comillas.

Esto arreglará el problema.

Ojo, cuando esto pasa y se arregla al maximizar el consumo de cpu se dispara.

Bueno, pronto volveré con muuuuchas cosas nuevas.

Tiempo al tiempo.
=:)