Gitolite: gestión de permisos en Git

gitEs muy posible que queramos tener un control de usuarios y permisos en nuestro repositorio git centralizado, si por ejemplo, tenemos a varios equipos de varios desarrolladores trabajando cada uno con un repositorio diferente. Afortunadamente, existen varias soluciones a este problema pero yo me he quedado con gitolite, por su facilidad de gestión y sus posibilidades.

NOTA: En este post se irá cambiando del servidor (miServer) a mi PC local (miPC). Se irá comentando a lo largo del post a qué entorno se hace referencia, pero si te pierdes, fíjate en el inicio de cada comando ejecutado (ej: [root@miServer ~] vs [adri@miPC])

Instalación

Añadimos el repositorio EPEL para nuestro servidor con el repositorio central, un CentOS 6:

[root@miServer ~]# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@miServer ~]# rpm -Uvh epel-release-6-8.noarch.rpm

Instalamos git y a posteriori gitolite, que en mi caso, me ha instalado y/o actualizado bastantes paquetes, la mayoría relacionados con perl:

[root@miServer ~]# yum install git gitolite3.noarch

A continuación, crearemos un usuario de sistema, para gitolite, al que en el ejemplo hemos llamado «git», y que será el usuario de sistema con el que interactuarán los usuarios con el repo:

[root@miServer ~]# useradd --system --shell /bin/bash --home /home/git git

Continuar leyendo «Gitolite: gestión de permisos en Git»

Usuarios y permisos MySQL

MysqlYa he escrito algunos posts donde se ha hablado un poco de la administración de usuarios y permisos en MySQL como éste o éste otro. Sin embargo, voy a resumir en un breve post la administración de usuarios y permisos de MySQL.
Podemos ver los usuarios que tenemos en el mysql con el siguiente comando:

mysql> select * from mysql.user;

Esto nos mostrará todos los usuarios definidos en mysql, separando además los usuarios por host (si tenemos un usuario user@localhost y el mismo usuario para acceder desde cualquier host user@’%’, aparecerán dos líneas para este usuario.

Para conocer los permisos que tiene un determinado usuario, se podrá usar:

mysql> show grants for user@’host’

Por ejemplo: mysql> show grants for user@’%’

Continuar leyendo «Usuarios y permisos MySQL»

Magento Connect: permisos

Magento tiene una utilidad llamada «Magento Connect» que nos permite instalar extensiones de forma automática. Ahora bien, esta utilidad tiene el inconveniente de que requiere cambiar todos los permisos de nuestra estructura de directorios de nuestra instalación Magento, a «todos los permisos», es decir, +777 (permisos totales, también de escritura, para el grupo «todos»).

Esto es un problema de seguridad, puesto que se está dando acceso tanto de lectura, como de escritura y ejecución de todos los archivos y carpetas de nuestro e-commerce a cualquier persona.

Para remediarlo, he encontrado esta entrada que explica de forma muy clara cómo proceder cuando se usa Magento Connect.

Básicamente, lo que propone es lo siguiente:

  1. Queremos instalar una extensión mediante Magento Connect
  2. Para ello, cambiamos todos los permisos de nuestra estructura de ficheros a 777 (puedes usar tu cliente FTP favorito, como FileZilla). Esto suele durar un buen rato si lo haces así.
  3. Una vez cambiado, instalamos la aplicación con Magento Connect
  4. Finalmente, y ya acabada la instalación, reseteamos los permisos, ya sea de forma manual, o mediante la aplicación Magento Cleanup Tool. Con esta última aplicación, haríamos lo siguiente:
    • Descomprimir la aplicación en la raíz de nuestro e-commerce (por ejemplo, justo en el directorio «magento» si nuestro e-commerce está ahí).
    • Navegar a http://yourdomain.com/magento/magento-cleanup.php (si como antes, nuestro e-commerce se encuentra dentro del directorio magento), para restablecer los permisos iniciales.