Utilisation de webdav en ligne de commande
Depuis quelques temps, j'ai comme projet de faire un serveur de publication. Ce dernier doit héberger des sources et autres RPM mais malheureusement, il n'est pas accessible en SSH et nous devrons passer par du WebDAV (en https).
Voici donc en quelques lignes comment le mettre en oeuvre sur un serveur apache sous RedHat Enterprise/Centos 6.
Créons maintenant notre répertoire et attribuons les droits à l'utilisateur apache (ou www-data dans le cas d'une debian) :
Maintenant que notre nouveau contexte fonctionne, nous allons essayer d'uploader un fichier à l'aide de curl. Pour se faire, il faut utiliser l'option -T suivi du fichier à uploader. Ci-dessous un exemple :
Voici donc en quelques lignes comment le mettre en oeuvre sur un serveur apache sous RedHat Enterprise/Centos 6.
Configuration du serveur apache
Premier point, nous allons créer un nouveau point webdav pour notre serveur. Pour se faire, rien de bien compliquer, il faut créer un fichier /etc/httpd/conf.d/test-webdav.conf avec le contenu suivant :Alias /test-webdav /var/www/webdavBien penser à alimenter notre fichier de mot de passe (/mon/fichier/htpasswd) à l'aide de l'outil htpasswd. Par la suite, nous utiliserons un utilisateur webdav_access avec xxx comme mot de passe.
<Directory "/var/www/webdav">
Dav On
Options Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Créons maintenant notre répertoire et attribuons les droits à l'utilisateur apache (ou www-data dans le cas d'une debian) :
mkdir /var/www/webdavUn arrêt relance de notre serveur apache et tout est prêt pour la suite. Pour s'assurer que nous n'avons rien oublier, nous pouvons essayer d'y accéder à l'aide de curl :
chown apache:apache /var/www/webdav
curl -u webdav_access:xxx http://localhost/test-webdav/
Voyons maintenant la suite du programme
Maintenant que notre nouveau contexte fonctionne, nous allons essayer d'uploader un fichier à l'aide de curl. Pour se faire, il faut utiliser l'option -T suivi du fichier à uploader. Ci-dessous un exemple :
curl -u webdav_access:xxx -T welcome.html \\Le serveur devrait vous renvoyer une réponse en HTML vous indiquant la réussite de l'opération sous la forme du message suivant :
http://localhost/test-webdav/
Resource /test-webdav/welcome.html has been created.C'est bien beau mais on voudrait également gérer des sous répertoires. Il faut dans ce cas utiliser l'option -X MKCOL. Ci-dessous un exemple :
curl -u webdav_access:xxx -X MKCOL \\Le message suivant devrait vous indiquer que ça s'est bien passé :
http://localhost/test-webdav/new_dir
Collection /test-webdav/new_dir has been created.Reste ensuite à rajouter un fichier dans ce répertoire :
curl -u webdav_access:xxx -T welcome.html \\
http://localhost/test-webdav/new_dir/
Utilisation en point de montage
Nous avons vu les possibilités de notre serveur. Sachez qu'il est également possible de monter un serveur webdav sur un serveur Linux. Ci-dessous un exemple de montage de notre point de partage :mount -t davfs http://localhost/test-webdav/ /mntRendons nous maintenant sur le point de montage /mnt et faisons quelques tests.
Please enter the username to authenticate with server
http://localhost/test-webdav/ or hit enter for none.
Username:webdav_access
Please enter the password to authenticate user with server
http://localhost/test-webdav/ or hit enter for none.
Password:xxx
- Lister le contenu du répertoire :
# cd /mnt/
# ls
lost+found new_dir test_webdav.txt un welcome.html
- Supprimer un répertoire :
rmdir new_dir
- Copier un fichier :
cp /etc/hosts /mnt/
Bref, vous l'aurez compris, tout ceci se comporte comme un FS normal.