Archivos Mensuales: febrero 2011

Heredar grupo con setgid

Muchas veces nos interesa que todos los archivos nuevos en una carpeta hereden el grupo al que pertenece la carpeta. Son muchos los casos, los más comunes son que se tiene, por ejemplo, un servidor web, y se desea que todos los archivos que vas creando (p.e, instalando módulos de Drupal) estén accesibles para el usuario del web server, claro, sin tener que estar haciendo un chgrp recursivo a cada rato. Otra es si se tiene un volumen o carpeta compartida, cuando un usuario crea un archivo en dicha carpeta por defecto el archivo tiene el dueño y el grupo mapeados al usuario que creó el archivo, y no al grupo donde se encuentra, por ende no es visible a los demás usuarios que usan la carpeta.

Esto es muy fácil de solucionar, solo hay que activar el bit/flag setgid (similar al bit a r-w-x) a la carpeta (ojo, carpeta nada más, en archivos significa otra cosa) para que los nuevos archivos dentro de la misma hereden el grupo de la carpeta. Como vimos en un post anterior, podemos poner dicho bit de forma recursiva a todas las carpetas dentro de una carpeta:

find /ruta/al/directorio -type d -exec chmod g+s '{}' \;

Claro, para que eso tenga sentido lo mejor sería primero ponerle a todos los archivos el grupo que deseamos que hereden:

chgrp -R grupo /ruta/al/directorio

Saludos

Etiquetado , , ,

Crear base de datos y usuario en MySQL

En nombre del post era más largo, era así:

Crear base de datos y usuario con todos los permisos sobre esa y sólo sobre esa base de datos en MySQL.

Siempre paso haciendo ésto, pero por más que lo haga una y otra vez siempre se me olvida el SQL de los permisos, por eso lo pongo acá para estar acordándome.

Primero, iniciamos una sesión de shell:

mysql -u root -p

(En humano dice: Inicie MySQL como el usuario root y pregúnteme el password).

Luego creamos la base de datos (en éste caso llamada exampledb):

mysql> CREATE DATABASE exampledb;

Ahora creamos un usuario y le damos todos los permisos sobre esa base de datos (todo en un mismo paso; la creación del usuario no es explícita pero se lleva a cabo):

mysql> GRANT ALL PRIVILEGES ON exampledb.* TO 'usuario'@'localhost' IDENTIFIED BY 'clave';

Claro, cambiamos ‘exampledb’, ‘usuario’ y ‘clave’ por los valores reales. Podemos dejar las comillas simples, es recomendado.

Saludos!

Etiquetado

Instalar SuperCollider en Ubuntu

SuperCollider es un entorno y lenguaje de programación para síntesis de sonido en tiempo real y composición de algoritmos. Pueden conocer más de SuperCollider en la página de Wikipedia.

Cómo instalar SuperCollider en Ubuntu:

1. Agregar repositorio PPA:

shell> sudo add-apt-repository ppa:supercollider

2. Actualizar el índice de repositorios:

shell> sudo apt-get update

3. Instalar SuperCollider y el plugin para gedit:

shell> sudo apt-get install supercollider supercollider-gedit

4. Reiniciar la máquina o cerrar la sesión y volver a entrar (esto porque el usuario a sido agregado a otro grupo y los permisos han variado, para poder darle al usuario más control de prioridades y sobre la tarjeta de sonido).

5. Iniciar gedit y activar el modo SuperCollider:

Herramientas -> Modo SuperCollider

6. Iniciar el servidor SuperCollider:

SuperCollider -> Iniciar servidor

Ahora al escribir código pueden evaluarlo con el menú o con Ctrl+E