«Userdir» es un módulo que incorpora Apache, el cual podemos activar para que cada usuario registrado en nuestro sistema pueda gestionar su propia Página Web.
En esta entrada del Blog vamos a aprender coo activarlo y como gestionar la página web con diferentes usuarios.
Creación de Usuarios
Para comenzar, vamos a crear los usuarios que queramos en nuestro sistema, es decir, crearemos los usuarios del Director, Jefe de Estudios y Secretario de nuestro instituto, para ello ejecutaremos el comando:
adduser [usuario]
En mi caso crearé los tres usuarios mencionados anteriormente:
1.- Usuario Director:
root@eddy:/home/eddy# adduser director
2.- Usuario Jefe de Estudios:
root@eddy:/home/eddy# adduser jefestudios
3.- Usuario Secretario:
root@eddy:/home/eddy# adduser secretario
Activación del Módulo
Una vez que tenemos creados todos los usuarios necesario, vamos a pasar a la activación del módulo «userdir», el cual activaremos ejecutando un solo comando.
Todos los módulos disponibles se encuentran en la ruta «/etc/apache2/mods-available», como podemos observar, el módulo que nosotros buscamos se encuentra aquí con el nombre de «userdir.conf».
Para activarlo deberemos hacer un enlace simbólico de este archivo hacia el directorio «/etc/apache2/mods-enabled», para ello ejecutamos el comando:
root@eddy:/home/eddy# a2enmod userdir
Nos pedirá que reiniciemos el servicio de apache dos, esto lo realizaremos con:
root@eddy:/home/eddy# service apache2 restart
Cuando lo reiniciemos, comprobaremos que el enlace simbólico se ha creado en «/etc/apache2/mods-enabled»:
root@eddy:/home/eddy# ls /etc/apache2/mods-enabled/ | grep userdir userdir.conf userdir.conf.save userdir.load
Configuración del Módulo
Una vez que lo hemos activado y comprobado que esto es cierto, vamos a pasar a configurarlo para poder acceder desde los clientes, para ello modificaremos el fichero «/etc/apache2/mods-enabled/userdir.conf».
El fichero, inicialmente, tendría este aspecto:
<IfModule mod_userdir.c> UserDir public_html UserDir disabled root <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec <Limit GET POST OPTIONS> Require all granted </Limit> <LimitExcept GET POST OPTIONS> Require all denied </LimitExcept> </Directory> </IfModule>
Pero para poder configurarlo, editaremos las líneas 6, 7, 9 y añadiremos dos líneas a partir de la 9. Después de la modificación deberá quedar así:
<IfModule mod_userdir.c> UserDir public_html UserDir disabled root <Directory /home/*/public_html> AllowOverride All Options MultiViews Indexes SymLinksIfOwnerMatch <Limit GET POST OPTIONS> Require all granted Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> #Require all denied Order deny,allow Deny from all </LimitExcept> </Directory> </IfModule>
Una vez que hemos guardado los cambios, reiniciamos el servicio de apache2 con:
root@eddy:/home/eddy# service apache2 restart
Por úlitmo deberemos crear las carpetas «public_html» en cada uno de los «home» de los usuarios y le asignamos los permisos «755»:
Para Director:
root@eddy:/home# mkdir director/public_html root@eddy:/home# ls director/ public_html root@eddy:/home# chmod -R 775 director/public_html/ root@eddy:/home# chown director:director director/public_html/
Para Jefe de Estudios:
root@eddy:/home# mkdir jefestudios/public_html root@eddy:/home# ls jefestudios/ public_html root@eddy:/home# chmod -R 775 jefestudios/public_html/ root@eddy:/home# chown jefestudios/public_html
Para Secretario:
root@eddy:/home# mkdir secretario/public_html root@eddy:/home# ls secretario/ public_html root@eddy:/home# chmod -R 775 secretario/public_html/ root@eddy:/home# chown secretario secretario/public_html
Vamos a crear un archivo llamado «index.html» sencillo en el interior de «public_html» para hacer la prueba de que esto funciona con cada usuario.
Director:
Secretario:
Jefe de Estudios: