Compartiendo directorios

Llega el momento en que tienes un montón de vídeos, música y demás documentos que te gustaría compartir entre usuarios. Y es que con la llegada de televisores inteligentes, media boxes y demás artilugios resulta muy conveniente instalarse una media server (Media Tomb por ejemplo, o alguno de aquí) en la pc de casa y compartirlo todo con los demás dispositivos.

El problema llega cuando se tienen varios usuarios en dicha pc, como pasa en mi caso, cada integrante de la familia tiene una cuenta en la pc (o mejor dicho, mini servidor) de casa, estas personas tienen su contenido en sus directorios personales y eventualmente los compartirán con el directorio en el cual escucha el media server.

Aquí llegan los problemas con los permisos. Digamos que nuestro servidor UPnP (media server) exportará el contenido de /data por lo cual necesitamos que todo lo que llegue a ese directorio tenga permisos de lectura (y escritura, por si hace falta modificar algún id tag o algo) para el grupo que usaremos.

Primero creamos el grupo a usar:


# groupadd media

Creamos nuestros directorios:


# mkdir -p /data/Music
# mkdir -p /data/Videos
# mkdir -p /data/Pictures
# mkdir -p /data/Documents

Una vez que tenemos nuestra estructura de directorios principal, podemos pasar a definir permisos globales:


# chgrp -R media /data
# chmod -R /data
# chmod -R g+s /data

Con esto le damos permiso de lectura y escritura al dueño de los directorios (root, pero bien podría ser el usuario que usa nuestro UPnP), a los miembros del grupo media y a nadie más.

Ahora agregamos nuestros usuarios al grupo, pero nos encontramos que al copiar o mover archivos o directorios a /data/ se agregan con el grupo media pero con los permisos por defecto (umask) lo cual es un problema ya que los demás usuarios nos serán capaz de modificar los mismos.

En principio puede que esto no sea un problema, pero eventualmente lo será, imagine el caso en que el usuario1 convierte un cd de su artista favorito a ogg y lo agrega a /data/Music/ pero sin incluir los respectivos id tags, si el usuario2 se da cuenta de esto, tendrá que pedirle al usuario1 que lo modifique en lugar de poder hacerlo él mismo.

Para lidiar con esto hay dos posibles soluciones, usar bindfs o listas de acceso (ACL).

BindFS

BindFS es un sistema de archivos basado en FUSE que permite montar un directorio sobre otro modificando varios permisos. En el caso que dispongamos de él, podemos usarlo:


# bindfs --create-for-group=media -gmedia --create-with-perms=u+rw,g+rw,o-rwx -pu+rw,g+rw,o-rwx /data /data

Esto nos asegura que todos lo que se cree nuevo tendrá como grupo media (create-for-group) que el grupo con el cual se montará será media (g), que los permisos se mantendrán de escritura y lectura para el dueño y grupo (create-with-perms y p)

Ahora sólo debemos agregarlo a nuestro /etc/fstab con la siguiente línea:


bindfs#/data    /data    fuse    perms=u+rw:g+rw:o-rwx,create-with-perms=u+rw:g+rw:o-rwx,group=media,create-for-group=media    0    0

Listas de acceso

Las listas de control de acceso o atributos (permisos) extendidos se incluyeron a partir del kernel 2.6, las mismas permiten un mayor control de los permisos de cada archivo.

Para poder ser usadas nuestra partición debe estar montada con la opción acl (la cual debería ser por defecto), es posible usar el comando mount para comprobar las particiones que tenemos habilitadas:

<code
$ mount | grep acl

El comando a usar para modificar dichos permisos es setfacl y en nuestro caso podríamos usarlo de la siguiente forma:


# setfacl -R -d -m u::rw,g::rw,g:media:rwx,o::- /data

¡Y ya está!

Publicado en Uncategorized | Deja un comentario

Llaves SSH y conexión sin contraseñas

Desde usuarios regulares hasta administradores de sistema casi siempre ocurre que debemos ingresar de forma remota a otro equipo, el protocolo/aplicación de-facto para dicha tarea es SSH, el cual nos permite ingresar con un usuario y contraseña a equipos remotos.

Muchas veces ingresamos con frecuencia a los mismos equipos o nos gustaría tener más seguridad que simplemente un usuario y contraseña. Para eso podemos usar llaves criptográficas, este artículo asume que usted está en el equipo ClienteA y cuenta con una cuenta en el ServidorB al cual desea ingresar.

Lo primero es crearnos un juego de llaves, se le denomina juego de llaves porque consta de una llave pública y una privada, como su nombre lo indica la pública se puede compartir y la privada no.

Para eso ingresamos (en caso que no estemos ya allí), a nuestro equipo, ClienteA y ejecutaremos:

[paco@ClienteA ~]$ ssh-keygen -t rsa

Seguimos las instrucciones y si no queremos ingresar una contraseña pues no lo hacemos, la dejamos en blanco y confirmamos dos veces, esto nos debería crear algo más o menos así:

[paco@ClienteA ~]$ ls .ssh/
id_rsa       id_rsa.pub     known_hosts

El fichero id_rsa contiene nuestra clave privada, el id_rsa.pub nuestra pública y el known_hosts no es importante.

Ahora tenemos que pasar nuestra llave pública al equipo remoto, como tenemos trastornos de personalidad, nuestro usuario allá se llama frank, por lo cual:

[paco@ClienteA ~]$ ssh frank@ServidorB mkdir -p .ssh

Con esto creamos el directorio (/home/frank/.ssh) en el ServidorB si ya existe pues no pasa nada.

Como último paso copiamos nuestra llave pública a la lista de llaves aceptadas en ServidorB para ello:

[paco@ClienteA ~]$ cat .ssh/id_rsa.pub | ssh frank@ServidorB 'cat >> .ssh/authorized_keys'

Luego de esto confirmamos que podemos ingresar sin contraseña (de no haber especificado ninguna) así:

[paco@ClienteA ~]$ ssh frank@ServidorB
[frank@ServidorB ~]$

¡Listo!

Publicado en Uncategorized | Deja un comentario

Llevando la contabilidad

Existen varias soluciones en Linux para llevar un control de, ya sea la contabilidad personal o la de algún negocio. Entre los más populares está GnuCash el cual he usado en el pasado pero nunca terminó de gustarme del todo.

Los que llevan algo de tiempo leyéndome sabrán que soy un usuario de Emacs y fanático de los archivos de texto.

La aplicación que cumple con esto se llama ledger es una aplicación de texto que lee, procesa y reporta transacciones en un archivo de texto. Lo bueno de ledger es que no modifica ni altera la data de ninguna forma, la data (y por data me refiero a transacciones) se mantienen en el archivo de texto plano que se proporcione.

El formato de dicho archivo es bastante simple:

2012/01/29 Slackware Store
    Gastos:Ropa              $ 15.00
    Deudas:Visa

2012/01/29 Pago a VISA
    Deudas:Visa              $ 15.00
    Bienes:Banco:Chequera

Aquí tenemos dos transacciones, la primera es una compra usando la tarjeta de crédito y la segunda es un pago/abono a la cuenta de dicha tarjeta. Como se puede apreciar, los nombres de las categorías y subcategorías los inventa uno, basta con que sean separados por ‘:’ por lo cual tenemos flexibilidad total.

Como es de esperar junto con la aplicación viene un modo para emacs ‘ledger-mode’ el cual facilita el ingreso de transacciones y al estar todo en un archivo de texto plano lo que importa es dicho archivo (que fuera del formato usado, poco tiene que ver con la aplicación en si), por lo cual el mismo puede ser modificado desde cualquier punto siempre que se cuente con una conexión ssh y un editor de texto.

La aplicación (ledger) será usada sólo al momento de analizar la data, ver los balances, revisar presupuesto, etc, etc.

Lo que yo hago es que tengo mi archivo en un repositorio con git lo cual me permite sincronizar los cambios desde distintas ubicaciones y para tenerlo todo en un lugar seguro en caso de catástrofe uso un repositorio git privado en bit bucket pero hay muchos más que ofrecen repositorios privados de forma gratuita.

Si está buscando una forma de llevar el control de sus finanzas, hacer presupuestos y demás, debe probar ledger.

Referencias:

Publicado en Uncategorized | 1 comentario

Encriptando sistemas de archivos

La seguridad es un tema que todo usuario debe tener presente, siempre que maneje información medianamente importante.

Existen varias soluciones para cifrar información en Linux, quizás la más común es cifrar toda una partición. El problema con esto es que en muchos casos o nos quedamos sin espacio o bien lo desperdiciamos y aunque existen soluciones para aumentar y/o disminuir el tamaño de las particiones de forma más dinámica como LVM la tarea puede llevar algo de riesgo.

eCryptFS

Una posible solución es usar eCryptfs, el cual es un sistema de archivos cifrado y el mismo está contenido en un directorio. Es decir, es un directorio que es “montado” como un dispositivo de almacenamiento, todo lo que se escriba o lea de él se cifrará de manera transparente. Una vez desmontado el mismo la información estará cifrada.

Para preparar un directorio de prueba:

$ mkdir secret
# mount -t ecryptfs secret/ secret/

Se deben recordar los parámetros usados para la próxima vez que se monte.

EncFS

EncFS es otra opción, la misma no requiere ser root ni hacer un suid del mount.

Para usarlo, una vez instalado, ejecutamos lo siguiente:

$ mkdir secret-raw
$ mkdir secret
$ cd secret
$ echo "probando con una línea de texto" > archivo.txt
$ cat archivo.txt
probando con una línea de texto
$ fusermount -u secret
$ cd secret-raw
$ ls
0QOUfazjVWTUASS1,IGYuJ3m
$ cat 0QOUfazjVWTUASS1,IGYuJ3m
�Q^�V-���+wI�$�kZz�㈎zQ '/�.y8��

Se creará un fichero en ~/secret-raw/.encfs6.xml con toda la información seleccionada al momento de crear el volumen, es importante mantener una copia del mismo (protegida).

Notas

Como nota extra es importante recordar que debemos (en la medida de lo posible) cifrar la partición swap. La razón es por la posibilidad que el sistema operativo escriba el contenido de memoria en dicha partición. El atacante podría revisar la información en la partición swap en busca de llaves o información del contenido cifrado.

Para cifrar la partición swap lo mejor es usar dm-crypt, como la data sólo es importante durante la sesión, no es necesario especificar una llave ya que puede ser escogida al azar al inicio.

Lo mejor es seguir la documentación de la distribución que se esté usando para cifrar la partición swap.

Publicado en Uncategorized | Deja un comentario

Twitteando desde Emacs

Emacs es un editor de texto de culto, en mi opinión, lo mejor que hay para programar, es todo un IDE, la cantidad de funciones que tiene y puedes agregar va de lo sublime a lo ridículo. Sigue leyendo

Publicado en Uncategorized | Deja un comentario

Nos mudamos a OFTC

Hemos tomado la dura y triste decisión de mudarnos a la red OFTC. Por más de 22 años hemos estado usando la red Undernet pero en los últimos meses se a echo más y más difícil poder accesar la red o mantenerse conectado debido a contantes netsplits y glitches en la red.

Y porque OFTC y no Freenode te preguntaras? Al principio evaluamos la red Freenode y a pesar que el canal ya estaba registrado, el dueño del canal ofreció darnos acceso pero no transferir el canal a pesar de que no ha sido usado por mucho tiempo. Tambien durante nuestro periodo de evaluación observamos unos “netsplits.”

Ya se porque no Freenode pero porque OFTC, esta red tan desconocida quisieras saber? OFTC significa: “Open and Free Technology Community” y se puede traducir como: “Comunidad de tecnología libre y abierta” y su filosofía se aplica a nuestro gol. Si quieres saber más sobre OFTC visita: http://www.oftc.net/

Otros proyectos importantes también comparten esta misma red como el canal oficial de Debian el cual es una de las distribuciones más importantes de Linux. Ven y visítanos ya sea utilizando el link a chat en el menú o usando tu cliente de IRC favorito y conectándote al Server irc.oftc.net

Publicado en Anuncios | Deja un comentario

Personalizando Windows

¿Windows? ¿no que esto es una página de linux? sí, pero la entrada de hoy es sobre software libre y el software libre abarca muchos sistemas operativos, incluso Windows.

Una de las ventajas clásicas de Linux en materia de escritorio es la gran cantidad de gestores de ventanas disponibles, desde los más minimalistas como es el caso de fluxbox, hasta los entornos 3D y con efectos como es el caso de compiz con KDE o Gnome. Sigue leyendo

Publicado en Uncategorized | Etiquetado , , , | Deja un comentario

Broadcom libera drivers

Broadcom hace hoy el anuncion oficial de la liberacion de sus drivers para dispositivos wireless concretamente.

Muchos de ustedes diran pero yo tengo mi tarjeta broadcom funcionando normal. Ya habia drivers; y si bien esto es cierto era por el arduo trabajo de la comunidad haciendo ingieneria inversa a los dispositivos y haciendo hack sucios en el codigo para que le sirvan a todo mundo pero esta noticia hara mucho mas facil el trabajo de los futuros dispositivos que lanze esta compañia y permitira el mejoramiento de los drivers actuales.

Una victoria mas para el free software!.

Fuente: OSnewsAnuncio oficial

Publicado en Noticias | Etiquetado , , , , | Deja un comentario

Marketing: Digicel, BlackBerry & Panamá

Hasta el 2008 en Panamá solo existía Cable & Wireless y Movistar (Telefónica) como operadores de telefonía móvil.  En este año se otorgaron dos concesiones más a Digicel y Claro.

En un país donde para ese año ya habían más teléfonos móviles que personas, la cosa no pintaba bien, por lo menos para mí no. Me costaba creer que una tercera (y más aun, una cuarta) empresa lograra hacerse con suficientes clientes como para sobrevivir.

Digicel parece haber logrado esto, siendo una empresa pequeña en comparación con las existentes arrancó con una campaña de marketing bastante agresiva, un bombardeo de publicidad digno de políticos. Sigue leyendo

Publicado en Uncategorized | Etiquetado , , | 3 comentarios

Bienvenido

Hola bienvenido a nuestro nuevo sitio en la Internet. Esta pagina servirá como punto centralizado para todo lo relacionado al canal #LinuxLatino en la red de IRC Undernet.

La decisión fue tomada de re-diseñar el sitio web para darle más dinamismo. De hoy en adelante este sitio web funcionara como lugar donde miembros del canal podrán expresar ideas, promover proyectos, crear artículos o comentar sobre noticias relacionadas con tecnología y el sistema operativo Linux.

Si quieres contribuir con este sitio web y promover proyectos, compartir ideas, crear artículos o dar tu opinión sobre algún tema, por favor usa tu cliente favorito de IRC y conéctate al canal #LinuxLatino en la red de Undernet. Una ves conectado al canal consulta con alguno de los operadores y pide tu usuario y contraseña para acceder a este sitio web.

Espero que este sitio web sea del agrado de todos y cumpla su cometido. Por favor comparte tu opinión e ideas con respecto a este sitio web. Muchas gracias por visitar.

r00t-Ed
3l h3f3

Publicado en Anuncios | 2 comentarios