miércoles, 12 de diciembre de 2007

Top 10 de juegos 3D gratis para Linux

Fuente: BeLinuxMyFriend

Me he encontrado con un Top 10 en juegos 3D gratuitos (espero traducir bien la palabra Free...) para GNU/Linux.

America’s Army

America's Army es un First Person Shooter (FPS) multiplayer creado por el ejército de Estados Unidos con fines de reclutamiento y de distribución completamente gratuita en la Web. Este juego se diferencía de muchos otros por su alto grado de realismo, dificultad y su orientación al juego en equipo
__________


No se puede mostrar la imagen “http://farm3.static.flickr.com/2401/2098908143_bc1e25e43c_o.jpg” porque contiene errores.
Tremulous es un videojuego de acción en primera persona (FPS) , con ambientación futurista. Es software libre y totalmente gratuito.
Los jugadores pueden elegir a partir de 2 razas, aliens o seres humanos. Los jugadores en ambos equipos pueden construir en el juego en curso las estructuras. Estas estructuras proporcionan muchas funciones.

__________


Tux Racer es un juego de carreras, tipo Mario kart, en el que te pones en la piel de un pingüino para deslizarte por la nieve ladera abajo. Uno de esos juegos divertidos y entretenidos, además de adictivo.

__________

Nexuiz es un juego de acción en primera persona creado por Alientrap Software. Es un juego libre y de código abierto. Es distribuido bajo licencia GLP. La versión 1.0 fue lanzada el 31 de mayo del 2005. La actual versión, 2.3, fue lanzada el 31 de mayo del 2007.

__________


Alien Arena es FPS completamente libre iniciado en el año 2004 por COR Entertainment, compuesto de un ambiente de ciencia ficción y una jugabilidad como Quake. A este juego se puede jugar en modo un jugador añadiendo bots, pero para disfrutar con mayor plenitud de él es aconsejable jugar en el modo multijugador de manera online.

_________


TrueCombat: Elite (TC:E o TC:Elite) es una modificación para el juego de acción en primera persona libre Wolfenstein: Enemy Territory de Team Terminator y Groove Six Studios, iniciado a finales del 2004. Es una ramificación de una modificación de Quake 3 llamada TrueCombat, la cual es similar en varios aspectos y mantiene el mismo concepto de juego básico.

__________


TORCS (The Open Racing Car Simulator) es un simulador de carreras 3D, de código abierto, que usa la tecnología OpenGL. Se disponen versiones de este juego en Linux, FreeBSD, MacOSX y Windows platforms. Elije entre uno de los 50 coches disponibles, 20 circuitos y 50 oponentes por carrera. Dispone de modo multijugador en el que pueden particiar 4 jugadores.

__________


Frets on Fire es un clon de Guitar Hero, de modo que el jugador emula el acto de tocar una canción con una guitarra. Las notas aparecen en la pantalla sincronizadas con la canción, y son tocadas manteniendo presionadas las teclas correctas (frets) y marcándolas pulsando Enter (pick button) en el momento preciso. El punteo en las notas correctas incrementa el coeficiente por el que se multiplican los puntos ganados al tocar (x2, x3 y hasta x4), pero una sola nota incorrecta hace que este coeficiente vuelva a x1. Si bien no hay ningún objetivo establecido para las canciones, la puntuación obtenida puede ser comparada con la del resto de jugadores en la web oficial.

__________


Scorched 3D es un juego totalmente libre basado en turnos, donde tendrás que usar tu artillería, y pericia, para eliminar a los otros jugadores. Recuerda en muchos aspectos a todo un clásico como Worms, pero con la ventaja, o desventaja, de poder usar las vistas 3D a tu conveniencia ;)

__________


ManiaDrive es un clon de Trackmania, siendo pues un juego de coches arcade con circuitos acrobáticos en los que demostrar tu habilidad al volante de un coche.


La gran mayoría de las descripciones las he sacado de la Wikipedia. Si puedes aportar algo más de alguno de estos juegos, que en su mayoría desconocía, deja un comentario y lo añadiré gustosamente a la definición.

Ya no tendrás excusa para aburrirte en las fiestas que se avecinan ;)

Enlace: Top 10 free Linux 3D games

Conectar a través de ssh sin password con expect

Fuente: LinuTeca

El comando expect surgió para controlar de forma automática aplicaciones interactivas que requerían una o varias entradas por parte del usuario por teclado y hacían lentas las ejecuciones o pruebas. El caso que expongo a continuación es el de la conexión a través de ssh que al introducir el comando, nos pide el password, y a no ser que hayamos hecho un intercambio de claves públicas, es bastante molesto introducirlo en cada conexión. Para no perder el tiempo, qué mejor que un script con el comando expect.

Expect básicamente consiste en ponerse a la escucha de los comandos que salen por pantalla y cuando captura uno que sigue un patrón establecido por el usuario ejecuta un comando o manda un mensaje al programa. En nuestro caso expect estará a la espera de que aparezca en pantalla el patrón “assword: ” (sin la p, porque en unos sistemas es en mayúsculas y en otros en minúsculas), y cuando eso ocurra mandaremos el mensaje al programa con nuestro password más un ’salto de línea’.

Con esto ya estremos dentro del sistema y podremos ejecutar los comandos que queramos.

Como última anotación antes de poner el ejemplo, solo decir, que para que funcione este comando hay que instalar el paquete expect en algunas distribuciones como Ubuntu:

sudo apt-get install expect

Aquí os dejo un script ejemplo de conexión por ssh y ejecución de comandos:

#!/usr/bin/expect -fset timeout 30
#ejemplo de como pasar parametros al ejecutarlo
set server [lindex $argv 0]
set user [lindex $argv 1]
set pass [lindex $argv 2]
send_user "Conectando con $server\n"
spawn ssh $user@$server
#Conectamos en estos casos:
# login con las claves RSA (sin user/pass)
# login con user/pass
# login con user/pass (con la verificacion de las claves RSA)
expect {
"> " { }
"$ " { }
"assword: " {
send "$pass\n"
expect {
"> " { }
"$ " { }
}
}
"(yes/no)? " {
send "yes\n"
expect {
"> " { }
"$ " { }
}
}
default {
send_user "Falló el login\n"
exit
}
}
#ejemplo de ejecucion del comando ls
send "ls\n"
sleep 3
expect {
"> " {}
default {}
}
#Salir
send "exit\n"
expect {
"> " {}
default {}
}
send_user "Finalizado\n"

A primera vista puede parecer complicado el cógido pero realmente es muy simple, usamos el comando spawn para poner a la escucha un programa, el comando expect para hacer un acción cuando el programa escribe en pantalla, y el comando send para devolver la cadena deseada.

Para más información sobre el comando expect en la sección de manuales encontraréis los necesario.

Utilizar umask para establecer los permisos predeterminados

Fuente: Linuteca

Cuando un usuario del sistema crea un fichero o directorio, éste tiene los permisos predeterminados del sistema, en el caso de Ubuntu los permisos predeterminados son 755. Esto se sabe escribiendo en la consola el comando ‘umask’ que al devolvernos 0022 si se lo restamos a 777 nos da 755. Sabiendo esto podemos ver que si un usuario crea un fichero o directorio cualquier otro usuario podrá leerlo o ejecutarlo, por lo tanto, esto es un fallo de seguiridad si este no es nuestro propósito.

Para solucionar el problema lo único que tenemos que hacer es, si queremos que el ‘grupo’ y los ‘otros’ no tengan ningun permiso sobre nuestros ficheros, tendrán que tener los permisos 700. Para conseguir esto restamos 777 - 700 y nos queda 077 que será el el parámetro que tendremos que pasarle al comando umask.
Ejemplo con permisos predeterminados:

ekhtor@macbook:~/pruebas$ umask

0022

ekhtor@macbook:~/pruebas$ ls -l

total 4

drwxr-xr-x 2 ekhtor ekhtor 4096 2007-12-06 19:32 pruebadir

-rw-r–r– 1 ekhtor ekhtor 0 2007-12-06 19:49 pruebafich

Podemos ver que al tener el valor de umask a 0022, si lo restamos a 777 los permisos de los ficheros son 755. Ahora si queremos que los permisos sean 700 hacemos la operacion 777 - 700 y el nuevo valor que le pasaremos a umask para cambiarlo será 077 como vimos antes.

Ejemplo:

ekhtor@macbook:~/pruebas$ umask 077

ekhtor@macbook:~/pruebas$ umask

0077

ekhtor@macbook:~/pruebas$ mkdir pruebadir

ekhtor@macbook:~/pruebas$ touch pruebafich

ekhtor@macbook:~/pruebas$ ls -l

total 4

drwx—— 2 ekhtor ekhtor 4096 2007-12-06 19:58 pruebadir

-rw——- 1 ekhtor ekhtor 0 2007-12-06 19:58 pruebafich

En la primera línea establecemos el nuevo valor de umask, en la siguiente comprobamos que lo hemos hecho correctamente, y luego, nos fijamos que al crear un directorio y un fichero tienen los nuevos permisos con los que los demás usuarios no podrán trabajar con ellos.

Si queremos cambiar el valor umask de todos los usuarios del sistema hay que editar el fichero /etc/profile como administrador(root) cambiar el valor de umask y guardar los cambios.