Como instalar WebDav en Ubuntu paso a paso

Webdav Ubuntu Vensign

En este paso a paso aprenderemos como instalar WebDav en Ubuntu.

WebDav (Web-based Distributed Authoring and Versioning por sus siglas en inglés) es un servicio que nos permite compartir, editar y manejar archivos por un grupo en un servidor remoto vía HTTP.

Entonces para que sirve realmente, la idea principal detrás de WebDav fue la de crear un conjunto de protocolos que sirvieran para manejar archivos a través de la Web de forma colaborativa por grupos de trabajos.

relojTiempo de instalación: 20 min aproximadamente



Contenido:

Escenario

Imaginen un grupo de trabajo que tiene que hacer una propuesta o un programa y que cada individuo de ese grupo de trabajo tiene que hacer un aporte sobre un documento que se va a entregar, en este caso WebDav permitiría a todos en el grupo modificar ese archivo como si lo tuvieran en su propia PC, todos los cambios que hicieran los integrantes del grupo se vería reflejado en el documento e inclusive se puede evitar que dos personas modifiquen el mismo archivo al mismo tiempo para evitar versiones disparejas o errores. Todo esto se hace a través de un servidor Web que es el que permite compartir los archivos.

[adrotate group="3" banner="9"]

Entonces vamos a ver como instalar este útil servicio paso a paso.

1. Instalar servidor Apache

WebDav trabaja sobre Apache por lo que es necesario instalarlo, para esto tenemos ya hemos hecho un tutorial muy útil que puedes seguir aquí:

Como instalar un Servidor LAMP en Ubuntu Paso a Paso

Para WebDav sólo necesitas Apache (Paso 2 del tutorial anterior) si vas a utilizar este servidor Web para otras cosas puedes instalar todo el servidor LAMP completo es tu decisión, una vez que termines puedes volver aquí para instalar WebDav.

Listo?, muy bien vamos a ponernos a trabajar.

2. Activar Módulos de WebDav

WebDav está disponible como un módulo de apache por lo que tenemos que hacer es simplemente activar los módulos ejecutando en el terminal:

sudo a2enmod dav_fs
sudo a2enmod dav
sudo a2enmod dav_lock

Estos módulos son los necesarios para activar y dar soporte a WebDav.

Para que tome efecto reiniciamos el servidor Apache

sudo /etc/init.d/apache2 restart


3. Crear un Host Virtual

Vamos a crear un Host Virtual donde funcionará el WebDav para esto creamos el directorio donde lo vamos a alojar ejecutando en el terminal:

sudo mkdir -p /var/www/webdav
sudo chown www-data /var/www/webdav

En el último comando le dimos propiedad de la carpeta al usuario por defecto de Apache que es www-data.

Creamos una nueva plantilla para el host virtual:

sudo nano /etc/apache2/sites-available/webdav

Nota: puede utilizar el editor de su preferencia como vim, gedit, kate, emacs, etc.

Dentro de este archivo copiamos las siguientes líneas:

<VirtualHost *:80>
 ServerAdmin webmaster@localhost

 DocumentRoot /var/www/webdav
 <Directory /var/www/webdav/>
 Options Indexes FollowSymLinks MultiViews
 AllowOverride
 Order allow,deny
 allow from all
 </Directory>
 <Location />
 DAV On
 AuthType Basic
 AuthName "webdav"
 AuthUserFile /var/www/.passwd.dav
 Require valid-user
 DavMinTimeout 600
 <LimitExcept GET PUT HEAD OPTIONS POST>
 Require valid-user
 </LimitExcept>
 </Location>

</VirtualHost>

Aquí estamos creando nuestro nuevo sitio virtual y diciendo que cualquier petición que venga por el puerto 80 (que es el que se usa por defecto para HTTP) lea el contenido que está en el directorio /var/www/webdav que creamos (para más en Host Virtuales puede visitar Como configurar un Host Virtual en Apache basado en Nombre). Además tenemos las siguientes directivas para la autenticación de WebDav:

  • La ubicación del archivo de autenticación /var/www/.passwd.dav (que crearemos a continuación)
  • Requerimos que el usuario sea válido Require valid-user
  • Tiempo mínimo que se bloqueará un archivo en este caso 600 segundos DavMinTimeout 600

Para más en las directivas del módulo WebDav puede visitar este sitio.

Por último activamos el Host Virtual y desactivamos el sitio por defecto de apache:

sudo a2ensite webdav
sudo a2dissite default

4. Crear el archivo de autenticación y agregar un usuario para WebDav

Vamos a crear el archivo de autenticación /var/www/.passwd.dav y el usuario que utilizaremos en este ejemplo es vensign (cambienlo por el nombre de usuario de su preferencia) ejecutamos:

sudo htpasswd -c /var/www/.passwd.dav vensign

La opción -c es para que cree el archivo, nos pedirá una contraseña para el usuario vensign.

Luego modificamos los permisos del archivo .passwd.dav para que sólo pueda ser modificado por root y por el grupo www-data (que es al que pertenece Apache). Ejecutamos:

sudo chown root:www-data /var/www/.passwd.dav
sudo chmod 640 /var/www/.passwd.dav

Por último reiniciamos el servidor Apache ejecutando:

sudo /etc/init.d/apache2 restart

5. Probar que WebDav funciona

Para esto vamos a instalar el cliente por consola para WebDav llamado cadaver ejecutamos

sudo apt-get install cadaver

Y luego ejecutamos la siguiente línea para conectarnos con WebDav

cadaver http://localhost

Debería aparecerles algo como lo siguiente:

$ cadaver http://localhost/
 Authentication required for webdav on server `localhost':
 Username: vensign
 Password:
 dav:/>

Nota: Si no les funciona con localhost prueben 127.0.0.1

Con esto hemos comprobado que sirve el servidor WebDav

Para salir del prompt de dav:/> escriban quit y luego presionen Enter o Entrar

Conectarse a WebDav desde Ubuntu

Para conectarse a WebDav desde un cliente Ubuntu vamos al menú de Lugares>Conectar con el Servidor…

Aparecerá una pantalla como la siguiente aquí escogemos WebDav(HTTP) y la dirección IP del servidor (en este ejemplo 192.168.1.30) deben cambiarla por la de su servidor WebDav:


Conectar al servidor WebDav Ubuntu

Conectar al servidor WebDav Ubuntu


Y luego solicitará el usuario y contraseña que colocamos anteriormente


webdav-ubuntu-usuario

Solicitud Usuario y Contraseña WebDav


Una vez ingresado el usuario y contraseña aparecerá la carpeta compartida del WebDav donde podrá agregar, modificar y manejar archivos. Recuerde cambiar vensign por el usuario que escogió más arriba.

Conectarse a WebDav desde MS Windows

En MS Windows vaya a Mis sitios de Red y seleccione Agregar un sitio de red


WebDav Agregar Sitio de Red

WebDav Agregar sitio de Red



Luego en el cuadro que aparece seleccionamos Siguiente y en el siguiente Cuadro seleccionamos la opción Elija otra ubicación de red y hacemos click en Siguiente


WebDav Elegir otra ubicacion de red

WebDav Elegir otra ubicacion de red


Escribimos la dirección IP de nuestro servidor, en este ejemplo http://192.168.1.30:80 (cambiala por la dirección de tu servidor) y hacemos click en Siguiente.


WebDav Direccion Servidor

WebDav Dirección Servidor


Nos pedirá el usuario y contraseña que elegimos más arriba durante la instalación, en este ejemplo vensign.


WebDav Usuario y Contraseña

WebDav Usuario y Contraseña


Por último nos pide un nombre para el servidor coloquen el que quieran.

En el último cuadro seleccionamos Finalizar y ya nos debería aparecer la carpeta en nuestro sitio de red


WebDav Directorio

WebDav Directorio


Agregar más usuarios en WebDav

Si quiere agregar otro usuario a WebDav debe ejecutar el siguiente comando en el servidor:

sudo htpasswd /var/www/.passwd.dav prueba

Donde prueba es el usuario lo puedes cambiar por el nombre que quieras y utilizar ese usuario para conectarte a WebDav.


Eso es todo con esto tendremos WebDav instalado y configurado y nuestros clientes conectados listos para compartir archivos via remota.

Espero que les sea de utilidad este tutorial cualquier duda o pregunta dejen su comentario y con gusto les responderé.

Saludos

Olivers

Nosotros en Vensign ofrecemos servicios de soporte, instalación y configuración de Linux y Software Libre para PyMES y corporaciones, puede ver nuestros servicios aquí o Contactarnos


Si quieres recibir más artículos y noticias de diseño y desarrollo Web, Negocios, Software Libre y Linux nos puedes seguir a través de nuestro RSS, Twitter o suscribirte a nuestro Boletín de Noticias

17 comments

  1. Gracias por la respuesta, pero me temo que no funciona, por lo menos en cadaver en ejecución en BASH de GNU. Por lo menos no directamente.

    Luego de múltiples experimento, lo conseguí usando:
    echo “open https://dirección_remota” | tee ~/.cadaverrc
    cadaver -t < /tmp/listado.txt
    ls
    quit
    EOF

    Obteniendo en /tmp/listado.txt lo requerido.

    Ojalá le sea útil a alguien más.

    Que estén bien…

    1. Gracias por responder, desde cualquier windows con net use * http://192.168.1.xx, me marca error de sistema 67, no se encuentra el nombre de red, con ubuntu desktop se conecta sin problemas y al tratar de conectar como unidad de red marca error de red.
      aunque con netdriver seconecta sin problema?desde cualquier windows.
      de antemano gracias.

    2. reconfigure el servidor: nuevamente me conecto sin problemas desde ubuntu y netdrive, sin embargo desde cualquier windows aun no se conecta; usando net use * http://192.168.1.xx, no me acepta la contrase-a me manda error 5 acceso denegado, y cuando trato de conectar como unidad de red, marca: no se encontro la ruta de red.
      hice experientos con iis7 y marca el mismo error mientras no se habilita la autenticacion de windows, algo tiene que ver.

  2. ¡Saludos!
    ¿Hay alguna forma de guardar localmente mediante script de bash el resultado de ejecutar ls en el servidor?
    Quiero implementar un script que compare el contenido de una carpeta local y una remota y suba a esta última solo lo que falte, y lo único que hago manual por el momento es obtener el listado de archivos de la remota…

    Gracias por adelantado

    delldor en gmail punto com

  3. Acabo de instalar el servidor LAMP y perfecto. Muchas Gracias. Tutorial perfecto.

    Ahora he instalado el servidor WebDav y al intentar probarlo, tanto con cadaver como con la interfaz gráfica me da un error 500 Internal Server Error.

    ThinkPad-X61s:/var/www/webdav$ cadaver 127.0.0.1
    Autenticación requerida para webdav en el servidor ‘127.0.0.1’:
    Nombre de usuario: haddock
    Contraseña:
    Could not open collection:
    500 Internal Server Error
    dav:/? quit

    El fichero de contraseñas está y los usuarios que he dado de alta y su contraseña encriptada también como podéis ver…

    ThinkPad-X61s:/var/www/webdav$ sudo cat /var/www/.passwd.dav
    haddock:$apr1$oX1piVTK$63auRVBYyHZJ.d/lxWnO5.
    davuser:$apr1$vnzBMURZ$LqKFpLZJGSthS5sNcbSuB/
    ThinkPad-X61s:/var/www/webdav$

    Podéis ayudarme, por favor? No me ha dado ningún error en la instalación de ningún producto. Gracias.

  4. Buenas, primero que todo muy bueno el tutorial, ahora me gustaria saber si me puede ayudar para hacer esto: que existan multiples usuarion, pero digamos que el usuario prueba1 solo pueda ver la carpeta prueba1, el usuario prueba2 la carpeta prueba2, asi sucesivamente, sin que los usuarios puedan ver las carpetas de los demas.

    Muchas gracias de antemano!!!

  5. Hola Irenka,

    Recuerda que WebDav es un sistema muy sencillo para compartir archivos, practicamente estás compartiendo un directorio a través de un servidor Web y por lo tanto no tienes tantas funcionalidades como un directorio normal.

    Si quieres tener más funcionalidades puedes probar Samba que permite compartir archivos con MS Windows de una forma más completa.

    http://www.vensign.com/blog/instalando-samba-en-ubuntu-debian-para-compartir-archivos-e-impresoras-en-redes-windows.html

    1. Muchas gracias por la respuesta; samba ha funcionado perfecto para la red local, muy buena guía.
      Una consulta más sobre webdav:
      ¿Se puede acceder a webdav en forma remota, es decir con clientes fuera de la red local a través de Internet?
      Muchas gracias desde ya

  6. Funcionando sin problemas. Desde otros Linux clientes se pueden abrir directamente los documentos en los programas deseados pero desde Windows no he podido. Con click der en el documento no aparece la opcion de abrir o abrir con en el menú.
    Un detalle: En cuanto a las imágenes, he notado que ni Linux ni Windows muestran vistas en miniatura, sólo como íconos. ¿Hay forma de que se vean como vista previa en miniatura?
    Gracias

  7. listo funciona la perfecto la instalación…ahora me gustaría compartir un doc como dijiste al principio pero cuando lo trato de abrir de una pc cliente lo que me abre es el navegador… lo que quiero es que se abra el archivo con su aplicación predeterminada