lunes, 26 de septiembre de 2011

Detector de presencia por bluetooth

Esto, más que nada es una vacilada.... pero bueno, tal vez le saquéis provecho.

La idea original es de Javier Perez y el script está algo modificado pero todo el mérito es suyo.
http://javierperez.eu/bloqueo-y-desbloqueo-de-pantalla-por-detector-de-presencia-en-ubuntu-con-bluetooth-aimtooth/
Se trata de bloquear la pantalla (o cualquier cosa que se nos ocurra) cuando nos alejamos del ordenador de manera automática, y volver a desbloquearla cuando nos acercamos sin tocar absolutamente nada.

Necesitamos que nuestro ordenador disponga de bluetooth y de un terminal movil también con bluetooth.

Para ello nos ayudamos de un script que lo que hace es crear continuamente un vínculo con nuestro terminal móvil y comprobar la calidad de la señal, si esta baja de un mínimo, significa que nos estamos alejando, con lo que la pantalla se bloquea, y si nos acercamos, la calidad sube y por tanto la pantalla se desbloquea.

El script es el siguiente:

------------ Copia el texto --------------
#!/bin/bash

export INTERFACE="6H:A8:84:4B:54:F6"

while true; do

hcitool cc ${INTERFACE}

sleep 1

Signal="`hcitool lq ${INTERFACE}`"

echo $Signal

if [ "${Signal##*: }" -lt 240 ]; then
    echo "Baja señal"
    sudo -u scorpyo gnome-screensaver-command --lock

else

    if [ "${Signal##*: }" -gt 240 ]; then
        echo "Conectado"
        sudo -u scorpyo gnome-screensaver-command --deactivate

    else
   
        echo "Desconectado"
        sudo -u scorpyo gnome-screensaver-command --lock
fi
fi

hcitool dc ${INTERFACE}
done
-----------------FIN DE TEXTO---------------

Copiad el texto a un archivo de texto.
Sustituir lo que está en negrita por vuestros datos, scorpyo es mi usuario, vosotros poned el vuestro.

El primer parámetro... el de los numeros y letras separados por ":"  es el identificador de vuestro terminal movil, si queréis saber cual es el vuestro abrid una terminal y teclear:

scorpyo@pc:~$ hcitool scan
Scanning ...
    6H:A8:84:4B:54:F6    Scorpyo
    H6:G5:D2:4S:B1:43    Maria

Como veis, yo puse el número que identifica a mi terminal.

Guardáis el archivo, le dais permisos de ejecución de una de estas dos formas:

-Botón derecho sobre el archivo, Propiedades, luego pincháis en la pestaña "permisos" y por último marcáis la casilla de "permitir ejecutar el archivo como un programa"

O también desde una terminal con el comando:

-scorpyo@pc:~$ sudo chmod +x /ruta/del/archivo

Para ejecutar el archivo debemos hacerlo con poderes de administrador.
Abrimos una terminal y ponemos:

scorpyo@pc:~$ sudo ./ruta/del/archivo

Bien, ahora solo tendréis que comprobar como os va si os alejáis del ordenador y os acercáis..... y modificar si es necesario los valores de calidad del enlace... por si son demasiado exigentes para vuestro movil o demasiado tolerante...

Podéis darle otras utilidades así que dadle vueltas al coco y si se os ocurre modificaciones comentadlas y compartidlas.


---------------------------------------------------

 He trabajado en una modificación del script que lo hace más elegante, mas facil de usar y menos trabajoso, ya que el original te puede bloquear la pantalla por un error tuyo o del bluetooth.

Mejoras:

-No es necesario cambiar nada en el script si se usa Gnome, ya que está preparado para añadir a las variables del programa los datos necesarios para no tener que hacer cambios en él script.

-Integración con el escritorio Gnome mediante Zenity.

-Se instalan paquetes necesarios para poder mandar mensajes al usuario en panatalla (pc)

-Hace un escaneo de los dispositivos y te presenta una lista, así es más fácil elegir el teléfono.

-Se notifica al usuario de los datos y acontecimientos mediantes mensajes con botones

-Se crea un perfil del teléfono para mejor seguimiento.

-Se avisa al usuario del móvil al que está vinculado el programa.

-Controla la presencia del móvil antes de empezar, si este no existe se aborta el arranque del programa.

-Se han introducido mejoras para evitar bloquear la pantalla por un "pico" de baja intensidad.

-No es necesario ejecutarlo desde una ventana de terminal.

-Relanzando el script se activa o desactiva el seguimiento del terminal móvil.

-Crea un acceso directo al escritorio si se desea.

El Script es el siguiente, está claro que no será el mejor, pero cumple con su cometido.
------------------------------------------------------
Bluedetecth-gnome-Scorpyo Megaupload
------------------------------------------------------
Si os sirve espero que comentéis... así sabré que no me puse a trabajar en el para nada.

Un saludo.

jueves, 8 de septiembre de 2011

Lanzar una aplicación al inicio en un determinado escritorio

A mucha gente, le gusta, por ejemplo lanzar determinada aplicación para que se inicie al arrancar el sistema y hacer login, hasta ahí perfecto.
Pero el problema es que la mayoría de las veces, ese programa no nos interesa que esté abierto en el escritorio principal de trabajo, si no que queremos que se lance hacia otro escritorio.....

Eso, ha fecha de hoy no he encontrado a nadie que lo haya conseguido directamente, si mediante el programa devilspie, que a mi parecer requiere bastantes conocimientos y para lo que queremos creo yo que es más sencillo esto que he inventado, algo rudimentario pero con un efecto muy chulo y elegante, a la vez que efectivo.

Esta entrada, he de admitir que me ha dado mucha guerra poder llevarla a cabo... tras decenas de pruebas y errores lo he conseguido tras una noche entera delante de la pantalla y sin dormir he creado un sript facil de usar, además, quedará un efecto muy muy elegante para lo que queremos hacer.

Bien, aquí hay una diferencia en el método.
Si usas compiz o si no lo usas, ya que el comando cambia.

Instalando aplicaciones necesarias
scorpyo@pc:~$ sudo apt-get install wmctrl

-Si usas compiz:

Debes instalar el centro de control de compiz para activar un par de efectos que son necesarios para el correcto funcionamiento.

scorpyo@pc:~$ sudo apt-get install compizconfig-settings-manager

Ahora abriremos dicha aplicación en Sistema > Preferencias > Administrador de opciones de compiz config

En el apartado "Escritorio" activamos "Cubo de escritorio" y "Girar cubo" lo configuramos si queremos para que esté a nuestro gusto, o lo dejamos como está por defecto.


Creando el script
Ahora, nos queda crear el scrip que hará todo el trabajo por nosotros que posteriormente haremos que se inicie en nuestra sesión.

Este script hace lo siguiente:

-Creará un bucle y no saldrá de este hasta conseguir su objetivo.

-Comprobará si compiz ya está activo, si no lo está, seguirá el bucle.

-En cuanto esté compiz activo, el script ejecutará los comandos necesarios para girar el cubo a la cara 2 (vosotros lo podéis cambiar) esperar un par de segundos mientras se posiciona y termina la transisión, lanza el programa que queremos y vuelve inmediatamente hacia el escritorio 1.

Ok.

Abriremos una terminal para trabajar.
Creamos una carpeta en nuestro directorio personal para guardar nuestro scrip

scorpyo@pc:~$ mkdir ~ /mis-aplicaciones

Creamos el script que girará el cubo y ejecutará el programa.

scorpyo@pc:~$ gedit ~/mis-aplicaciones/script-windows (vosotros poned el nombre que queráis, yo lanzaré una máquina de virtualbox con windows)

Ahora copiamos todo esto:

 -----------------Copia el texto------------------

#!/bin/bash

#    Este es un script que girará su escritorio y lanzará una o varias aplicaciones.
#    Copyright (C) <2011> <Miguel Ponce Torres>
#
#    Este programa es software libre: usted puede redistribuirlo y / o modificar
#    bajo los términos de la GNU General Public License publicada por
#    la Free Software Foundation, bien de la versión 3 de la Licencia, o
#    (A su elección) cualquier versión posterior.
#
#    Este programa se distribuye con la esperanza de que sea útil,
#    pero SIN NINGUNA GARANTÍA, incluso sin la garantía implícita de
#    COMERCIALIZACIÓN o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la
#    Licencia Pública General GNU para más detalles.
#
#    Debería haber recibido una copia de la Licencia Pública General GNU
#    junto con este programa. Si no, vea <http://www.gnu.org/licenses/>.
#
#    Si quiere contactar con <Miguel Ponce Torres> puede hacerlo en: miguelponcetorres@gmail.com
#
# Este script usa el comando wmctrl con las variantes siguientes:
# wmctr -o <valor>      Para compiz
# wmctrl -s <valor>     Para metacity
#
#
# Bucle a la espera de corroborar que copiz está en ejecución.
NOZOMBY=0
while n=0
do

    #Se comprueba si el gestor de ventanas está corriendo
    ps -A | grep compiz
 
    #Si está corriendo el valor de $? es 0
    if [ $? = "0" ]
    then

        # Espera un segundo y gira el cubo
        #hacia la derecha una vez
        sleep 1
        wmctrl -o 1366,0

        # Le damos 2 segundos antes de seguir para que se
        # posisione el cubo
        sleep 2

        # Comando o comandos separados por ; que ejegutará el script
        vboxmanage startvm Windows
  
        # Volvemos al escritorio 1
        wmctrl -o 0,0
        break
    else

        sleep 1
        let NOZOMBY=NOZOMBY+1
        echo "Aún no está listo el gestor de ventanas.... $NOZOMBY intentos"
        if [ $NOZOMBY = "10" ]
        then
            exit

        fi
    fi

done

---------------------Fin-------------------
Lo que está en verde, es el gestor de ventanas que estés usando, en mi caso uso compiz así que es el que espera a que se ejecute, si no lo hace en cierto tiempo, el escrit se terminaría para no quedar zombi.

Lo que está en rojo es el comando o lista de comandos separados por retornos de carro o ";" que se ejecutan con el script.

Lo que está en morado es el ancho de la resolución de vuestro escritorio si usas compiz, si usas metacity es el número de escritorio si no estáis seguros de la posisión en la que está el escritorio al que queréis mandar la aplicación, os movéis a dicho escritorio, y abrid una terminal para poner:

scorpyo@pc:~$ wmctrl -d
0  * DG: 5464x768  VP: 1366,0  WA: 0,0 1366x731  Área de trabajo 1

El valor VP es el que te interesa en mi caso es:
0,0 en el escritorio 0
1366,0 en el escritorio 1
2732,0 en el escritorio 2
4098,0 en el escritorio 3

Nota, fijaros que el valor de la resolución simplemente se va sumando...
Siempre con el decimal.

Nota: El área de trabajo no cambia, ya que compiz trabaja de otra forma pero no importa.

Para hacer una prueba en directo ahora mismo si tienes compiz, en la terminal pon:

scorpyo@pc:~$ wmctrl -o resolución-escritorio-2;sleep 2;wmctrl -o 0,0

Eso hará que el escritorio gire al lado que hayas puesto y tras dos segundos volverá al escritorio 1

Bien, si tuviésemos metacity en lugar de compiz, el valor morado es simplemente el número del escritorio al que queremos movernos pero el comando cambia:

scorpyo@pc:~$ wmctrl -s 1
o
scorpyo@pc:~$ wmctrl -s 2
o

scorpyo@pc:~$ wmctrl -s 3

Etc....


Para hacer una prueba en directo ahora mismo si tienes metacity, en la terminal pon:

scorpyo@pc:~$ wmctrl -s número-de-escritorio;sleep 2;wmctrl -s 0

El número de escritorios empieza por 0
0 ----> Escritorio1
1 ----> Escritorio2
2 ----> Escritorio3
3 ----> Escritorio4


Cuando tengamos el script terminado, lo gardamos y cerramos gedit.
Ahora le damos permisos de ejecución así:


scorpyo@pc:~$ chmod +x ~/mis-aplicaciones/script-windows (cambia script-windows por el nombre de tu script)
 
Conseguir que se inicie en tu sesión
En la terminal nos moveremos a la carpeta /home/tu-usuario/.config/autostart y crearemos un lanzador para nuestra aplicación

scorpyo@pc:~$ gedit ~/.config/autostart/script-windows.desktop 

Pegamos lo siguiente:

[Desktop Entry]
Type=Application
Name=Nombre de la aplicaicón
Comment=Arranca máquina virtual y la manda al escritorio 2 (descriptción)
Icon=
Exec=/home/scorpyo/mis-aplicaciones/script-windows



Tu solo haz de cambiar lo que está en gris claro para que cuadre con tus datos y con tu script.

Guardamos y reiniciamos para ver como funciona.

Así queda mi ejemplo


Espero que os haya servido.


miércoles, 7 de septiembre de 2011

Accede a tu pc desde internet de forma segura con SSH

En este tutorial, voy a explicar como instalar openssh-server para poder conectarnos a nuestro pc desde una LAN o desde internet.

También lo configuraremos de manera que sea más seguro y añadiremos extras de seguridad.


Instalación y configuración de ssh

Para empezar, vamos  a instalar openssh-server

Abrimos una terminal y :

scorpyo@pc:~$ sudo apt-get install openssh-server

Como el programa una vez instalado, se ejecuta, pues lo vamos a parar... para que no esté andando.

scorpyo@pc:~$ sudo service ssh stop

Ahora, vamos a modificar los parámetros de ssh para que sea más seguro.

El archivo que configura ssh está en /etc/ssh/sshd_config, así que en la misma terminal ponemos:

scorpyo@pc:~$ sudo nano /etc/ssh/sshd_config

*Yo he usado nano, pero podeis usar gedit si preferís así:

scorpyo@pc:~$ gksu gedit /etc/ssh/sshd_config

Bien, ahora las opciones que tenemos que cambiar o añadir si no están son estas:

-Cambiar el puerto:
Por defecto, ssh usa el puerto 22, pero a nosotros no nos interesa eso, ya que es algo que cualquiera sabe, nos interesa poner otro puerto, ejemplo.... 4428, entonces tenemos que cambiar el parametro Port.
Quedaría así:
Port 4428

-Cambiar o añadir osuarios permitidos:
Por defecto, si tienes solo un usuario no hace falta, pero si tienes varios usuarios en tu pc, y quieres decidir quien pueden entrar por ssh a su cuenta desde el exterior, puedes ponerlo en el siguiente apartado, será entonces cuando solo se puedan conectar los usuarios que pongas ahí:

AllowUsers scorpyo

-Disminuir el tiempo de cortesía para logearse:
Por defecto suele venir en 120... pero eso es demasiado tiempo, si te sabes la contraseña, por muy larga que sea no tardas más de 8 segundos en colocarla, así que quien tarde más de 30 segundos es que no la sabe... lo pondremos en 30 segundos y mucho es.

LoginGraceTime
30

-No permitir login de root
Es importante, que nadie pueda acceder como root al sistema, y si queremos hacer tareas administrativas siempre podremos usar sudo.

PermitRootLogin no

-Maximos intentos de loguin erroneos hasta cerrar sesión:
Por si alguien está intentando averiguar la contraseña, esto le incordiará bastante, ya que lo que hacemos es cerrar la conexión tras un limites de intentos, en el ejemplo he puesto 2.

MaxAuthTries 2

(esto no evita que vuelca a conectar y reintentar otras claves)

Bueno, con esto ya tenemos lista nuestra configuración de ssh.
Guardamos y cerramos Gedit.
Si estamos editando con nano apretamos Ctrl+o para guardar, le damos enter para confirmar y salimos con Ctrl+x


Otras medidas de seguridad

Ahora, vamos a tomar otras medidas de seguridad.

Hay que tener en cuenta algo primordial, aquí estamos usando la clave del usuario para iniciar sesión por ssh, es decir, si tu clave de usuario es "pepe", vamos por muy mal camino, es una clave super facil.

Así que unos consejos:

-No usar claves que puedan encontrarse en un diccionario, tales como... silla, calabaza, hermano, perro.... ni nombres propios... ni fechas de nacimiento.

-Usad siempre palabras inventadas como PerricopterO14?Alf
Anda, ¡que averigüen eso!... jajaja

Así, que si creéis que buestra contraseña no es segura, cambiadla.

Lo mejor es crear un par de claves RSA o RDA de manera que no haya claves viajando por la conexión, aunque sea SSH se corren riesgos...
Más adelante crearé un tutorial para crear una pareja de claves RSA y dejar de usar el login tradicional y pondré un enlace aquí.


Sigamos...

Todos sabemos que mediante fuerza bruta se pueden sacar claves aunque sean difíciles como la de arriba... puede llevar horas, semanas o meses, pero eso, al que está atacando le da igual.

Pues nosotros vamos a ponérselo más difícil aún... vamos a Banear (impedir conexión) a todos los que hagan cierta cantidad de intentos de acceso con claves erróneas.

Para eso necesitamos instalar fail2ban, así que en la misma terminal ponemos:

scorpyo@pc:~$ sudo apt-get install fail2ban

Ahora lo vamos a configurar para que sea un poco más duro en su trabajo... Va a pegar guantazos y todo... jajaja

Igual que antes vamos a editar con nano o gedit el archivo /etc/fail2ban/jail.conf así que....

scorpyo@pc:~$ sudo nano /etc/fail2ban/jail.conf

Tenemos que ir hasta el apartado [ssh] y veremos los situientes parámetros:

[ssh]

enabled = true
port   = ssh
filter  = sshd
logpath  = /var/log/auth.log
maxretry = 6


Pues bien, hay que hacer cambios... nos aseguraremos de que el valor de enabled está en true ya que si etá en false significa que no controlará las conexiones ssh.

port (puerto a controlar)
El puerto está establecido como el que usa por defecto ssh, que es el 22 pero nosotros lo cambiamos para más seguridad, así que hay que especificarlo, el nuestro era el 4428

port = 4428

maxretry (intentos de conexión antes de banear)
Aquí pondremos el numero de veces que una determinada IP puede intentar hacer login de forma errónea...
Si supera ese límite el programa fail2ban impedirá la conexión de esa ip durante un tiempo establecido por defecto en 10 minutos.

maxretry = 4


Quedaría algo así:

[ssh]

enabled = true
port    = 4428
filter  = sshd
logpath  = /var/log/auth.log
maxretry = 4

Ok, ya tenemos configurado la mayor parte, pero como soy muy malo, a mi, 10 minutos de baneo me parecen muy pocos... ya que como tiene 4 intentos por cada 10 minutos, significa que tiene 20 intentos por hora y 480 por día.. me parece una burrada... así, que vamos a complicarlo..

Buscamos el apartado Defaults que está casi arriba y buscamos la opción bantime.

Esta opción es el tiempo de baneo en segundos... así que en vez de 600 que són 10 minutos, le pondremos algo más, yo le pongo 1680 segundos que son 28 minutos.

bantime 1680

Esto, reduce considerablemente el uso de ataques a nuestro pc.

Ya, creo que hemos terminado con la seguridad, ahora, guardamos todo.
Apretamos Ctrl+o para guardar, le damos enter para confirmar y salimos con Ctrl+x

Bien, ahora relanzamos el programa fail2ban para que tome las nuevas opciones

scorpyo@pc:~$ sudo service fail2ban restart

Y también lanzamos de nuevo ssh que lo paramos anteriormente

scorpyo@pc:~$ sudo service ssh start


Cortafuegos y routers

Ahora tenemos que configurar nuestro cortafuegos para que permita las conexiones entrantes al puerto 4428 que es el que hemos puesto.

Si estámos tras un router tendrá también su propio cortafuegos, así que tendremos que añadir este puerto y redirigirlos hacia nuestro pc... para eso no voy a hacer un tutorial, pero has de tener una ip fija o asegurarte de que el router siempre asigna el puerto 2248 a tu pc mediante mac o como sea.
Hay muchos tutoriales en internet.


Probando nuestra conexión desde el exterior o desde LAN

Pues listo, ya podemos conectarnos desde otro pc al nuestro de la siguiente forma:

Por ejemplo, mi ip (la del exterior, es decir, con la que salimos a internet) es la 83.168.154.124 y mi usuario en la máquina en la que quiero conectarme es scorpyo, pues haré lo siguiente:

scorpyo@pc:~$ ssh -p 4428 scorpyo@83.168.154.124

-p es para especificar el puerto, ya que nosotros lo hemos cambiado, si no lo ponemos  el comando ssh usaría por defecto el 22 y no podríamos conectarnos.

La IP es facil averiguarla si queréis acceder desde la misma red local, por ejemplo tipeando en una terminal:

scorpyo@pc:~$ nm-tool | grep Address
  HW Address:        70:F1:A1:16:BE:3E
    Address:         192.168.0.106
  HW Address:        70:5A:B6:80:72:EA
Ahí la tenéis... la 192.168.0.106 (siempre tengo la misma dentro de la red local)

Si queréis acceder desde internet podéis averiguar vuestra ip de muchas maneras, hay páginas en internet que os la dicen, también sale en el router... etc.

Como la mayoría de las ip's que nos asignan los proveedores de internet, son ips dinámicas, (esto significa que no siempre es la misma) pues eso añade el problema de que tenemos que estar constantemente averiguando la ip del pc, y si estamos fuera de casa, pues es un problemón.

Para eso, os podeis hacer una cuenta en http://dyn.com/dns/ o en http://www.no-ip.com/
Añadís los datos al router (no todos los routers soportan esta opción) y de esta manera, podríais tener un dominio tipo mimakina-remota.dyndns.org o mimakina-remota.no-ip.com y esta siempre os redirigiría hacia la ip actual que tengas.

Así yo me conectaría por ejemplo de esta manera:


scorpyo@pc:~$ ssh -p 4428 scorpyo@la-pcera.dyndns.org

Listo, ahora mismo eso es todo, y es lo mínimo que debéis de hacer para tener un servicio ssh mínimamente seguro.


Lo mejor es no tener activo ssh cuando no se necesite o cerrar el puerto en el cortafuegos.

Una forma de incrementar notablemente la seguridad es creando una pareja de claves RSA:
Tutorial y explicación sobre parejas de claves RSA

domingo, 4 de septiembre de 2011

Conocer lo mínimo sobre Ubuntu

Esta entrada la hago porque mucha gente como yo, al principio no sabe nada de Ubuntu ni el mundo que lo rodea, no sabíamos como iban las cosas, como se organizan y como "funciona" el sistema operativo.

Aquí intentaré explicar a groso modo varios aspectos para que conozcamos más este sistema operativo y como está organizado.

Nombre de ubuntu y versiones
El origen de el nombre de Ubuntu viene de la ideología sudafricana Ubuntu («Igualdad/Lealtad hacia otros.»).
El número de las versiones está determinado por el día de lanzamiento oficial de cada versión. 
La versión está compuesta por año y mes AA/MM
La versión actual liberada es la 11.04 (Abril de 2011) y como es una distribución que se lanza cada 6 meses pues es fácil saber que la siguiente será la 11.10.
El nombre que acompaña a Ubuntu en cada lanzamiento de versión es siempre un animal y un adjetivo.
La 11.10 se llamará Oneiric Ocelot que traducido significa Ocelote onírico
Ocelote es una especie de leopardo y onírico es de los sueños o relativo a ellos... así que lo podríamos traducir como "El leopardo de ensueño"

El corazón que lo mueve.....
El corazón de Ubuntu es su núcleo Linux, que es el que controla todo el sistema.

Linux es un núcleo de sistema operativo libre, es decir, es modificable, gratuito.
Al ser libre, cuenta con miles de programadores trabajando en él todos los días, y siempre hay actualizaciones de este, nunca se queda desfasado mientras haya alguien trabajando para implementar hardware en Linux y no suele haber agujeros de seguridad por más de un par de horas ya que estos son encontrados rápidamente y subsanados.

Linux fue concebido por el entonces estudiante de ciencias de la computación finlandés, Linus Torvalds, en 1991 el cual sigue trabajando en el y dando visto bueno a todos los cambios que se hacen en el núcleo.

Interfaz gráfica
Antes de nada, hay que aclarar que el núcleo de Linux es totalmente operativo pero carece de una interfaz gráfica sencilla.
Esto se soluciona instalando una interfaz gráfica que se ejecuta quedando en primer plano mientras el Linux sigue trabajando, pero esta vez todo lo hacemos mediante botones y ventanas... mas agradable para muchos.

La interfaz gráfica es llamada X y esta necesita de un entorno de escritorio para poder interactuar con el usuario.

Hay diferentes tipos de entornos de escritorios, unos diseñados con pocos efectos para máquinas lentas otros con muchos efectos y atajos de teclado para más comodidad y otros que destacan por su diseño, iconos y demás.
Los más comunes son:
GNOME
 Usada por defecto en las versiones de Ubuntu hasta la versión 11.04, en la que se ha optado por UNITY

KDE
Usada para la distribución alternativa de Ubuntu, Kubuntu.
Muy elegante pero con mayor consumo de recursos.

LXDE
Usada para la distribución alternativa de Ubuntu, Lubuntu.
Especialmente para máquinas lentas.

UNITY
Usada para la distribuciones actuales de ubuntu 11.04 y 11.10

XFCE
Usada para la distribución alternativa de Ubuntu Xubuntu.

Otros entornos:

MEZZO
AMBIENT
ETOILÉ
GCOEX
SUGAR
ROX DESKTOP

Como está organizado sus sistema de ficheros
Antes de nada, hay que saber que Ubuntu es una distribución libre de sistema operativo basado en Debian, que es otra distribución. Ambas tienen núcleo Linux.

En todos los sistemas Linux todo, absolutamente todo está organizado por ficheros, de modo que si por ejemplo quieres saber algo sobre la CPU, ten claro que hay un fichero en el que se ha escrito información de la CPU que puedes consultar en cualquier momento y así con cualquier cosa.

El sistema de ficheros de Ubuntu es el siquiente:


Este esquema ha sido creado por http://www.linuxconfig.org y traducido por Franco Ferrari

Lo mejor es que siempre tengáis a mano esta imagen hasta que os familiaricéis con la jerarquía en Linux.

Medios de soporte como HDD CD-ROM DVD o PenDrives

En Linux, como he dicho arriba todo está organizado y mostrado en directorios, y los medios de almacenamiento de datos tales como Discos Duros o DVD no están excluidos.

Cuando un disco duro está presente en un sistema linux, este es "montado" en una carpeta para así, hacerlo pertenecer al sistema de archivos y poder acceder a sus datos, cuando este ya no va a ser accedido, se desmonta y de esta manera dejaría de aparecer en el sistema de ficheros.

Todo esto se hace con el comando mount, aunque hoy día, el sistema lo hace automáticamente cuando estamos usando la interfez gráfica.
Pero no debemos olvidar de que todo se puede manejar desde una interfaz de solo texto.

La terminal o consola
La terminal o consola es una interfaz de texto que nos comunica con el sistema mediante su lengua natural... pero para no comerme mucho el tarro os pondré lo que sale en la wikipedia.. jajaja

GNOME terminal, también llamado gnome-terminal, es un emulador de terminal para XFree86 escrito por Havoc Pennington y otros. Es parte del proyecto de escritorio libre GNOME. GNOME terminal permite a los usuarios ejecutar comandos usando una interfaz dentro de un entorno de ventanas.
GNOME Terminal similar al emulador de terminal xterm y proporciona gran cantidad de características similares. Algunas de las más importantes incluyen texto coloreado y gestión de eventos del ratón. Estos eventos se utilizan frecuentemente para aplicaciones que proporcionan una interfaz con ncurses para utilizar los menús o botones que normalmente el usuario debería seleccionar mediante el teclado. GNOME Terminal emula la mayoría de las secuencias de escape soportadas por xterm.[1] Entre las características gráficas que soportan se encuentran las siguientes:
  • Transparencias reales
  • Múltiples pestañas
  • Scroll infinito.
Gran parte de la funcionalidad de GNOME Terminal viene dada por VTE widget.
Usuarios, grupos y permisos
 Todo usuario en linux tiene su propia clave su propio escritorio y documentos, su propia carpeta personal y su configuración completamente separada de la de otros usuarios.
Cada usuario pertenece a un grupo de usuarios, en Ubuntu al crear el primer usuario este pertenece al grupo ADMIN y no existe un usuario ROOT.

El usuario que diferencia a todos es root.
La cuenta root es la cuenta de administrador, este puede hacer lo que quiera en el sistema, salir y entrar por cualquier directorio, parar o ejecutar programas sin que estos rechisten (aunque la integridad del sistema esté en juego)

Al no haber un usuario root en ubuntu, por defecto se le otorgan poderes de administrador al primer usuario creado y a cualquier usuario declarado en el archivo sudoers.
Para usar estos poderes se usa el comando sudo o gksu (para lanzar aplicaciones que necesiten ser lanzados a la interfaz de Gnome con su propia ventana).

Aún usando el comando sudo, os encontrareis de que hay cosas que no podéis hacer, esto es porque el comando sudo no os da todos los poderes necesarios en el archivo sudoers y necesitáis ser realmente root para poder llevar a cabo dichas cositas.....

Por supuesto, cada archivo creado por un usuario, queda marcado con la propiedad de este, es decir, si yo, usuario scorpyo y pertenciente al grupo admin creo un archivo, este archivo mantendrá los valores de mi usuario y grupo.

Si además, modifico los permisos del archivo, puedo conseguir incluso que nadie pueda hacer nada con el desde otra cuenta excepto root.

Es más, si root, plantase un archivo en nuestro escritorio con permisos restringidos y usando inmutabilidad del archivo mediante chattr, no podríamos verlo, moverlo y mucho menos borrarlo sin poderes de administrador e incluso con sudo, tendríamos antes que desactivar la inmutabilidad del archivo.

Para saber más sobre permisos mira este enlace:
Permisos con chmod

Para saber más sobre inmutabilidad de un archivo mira este enlace:
inmutabilizar
 


Bueno, creo que esto es lo básico que debes de saber sobre Ubuntu.

Un saludo.

sábado, 3 de septiembre de 2011

Manuales de comandos y programas en español con la orden "man"

Para muchos que usan por primera vez un comando o para aquellos que quieren ver diferentes usos de este, es muy común acudir a la orden man

Escribir "man" delante del comando hace que se muestre en pantalla el manual que acompaña a dicho comando o programa... pero normalmente, el manual viene en inglés. Muchos nos defendemos bastante bien, pero a otros les cuesta mucho.

La solución es descargar los manuales en español y así man, buscará los manuales en español y no en inglés.

Así que abrimos una terminal y ponemos:
Actualizamos el sistema...

scorpyo@pc:~$ sudo apt-get update&& sudo apt-get upgrade -y

... y ahora instalamos los paquetes necesarios...

scorpyo@pc:~$ sudo apt-get install manpages-es manpages-es-extra

Listo, ya tenéis los manuales en español siempre y cuando haya traducciones al español del comando, si no es así, man acudirá al manual en inglés.

Un saludo a todos.