WikiMiNET

La documentation technique et administrative

Outils pour utilisateurs

Outils du site


wiki:services:imprimante_cups_server

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
wiki:services:imprimante_cups_server [2017/04/29 15:20]
no_pseudo [Services proposés par cups-server]
wiki:services:imprimante_cups_server [2020/06/27 18:16] (Version actuelle)
Ligne 7: Ligne 7:
  
 <WRAP center round alert 60%> <WRAP center round alert 60%>
-Merci de n'imprimer en couleur que si cela est nécessaire+L'imprimante imprime par défaut en noir et blanc
-La commande pour imprimer en Grayscale:  +Pour imprimer en couleur 
-<code> lp -oColorModel=KGray filename </code>+<code> 
 +lp -o BRMonoColor=Auto filename.docx 
 +</code>
 </WRAP> </WRAP>
  
Ligne 40: Ligne 42:
 <code> [user@mon_pc]$ scp mon_fichier.pdf user@192.168.102.100:. </code> <code> [user@mon_pc]$ scp mon_fichier.pdf user@192.168.102.100:. </code>
  
-<code> [user@mon_pc]$ ssh utilisateur@192.168.102.100 </code>+<code> [user@mon_pc]$ ssh user@192.168.102.100 </code>
  
 <code> [user@cups-server]$ lp mon_fichier.pdf </code> <code> [user@cups-server]$ lp mon_fichier.pdf </code>
Ligne 54: Ligne 56:
 Pour récupérer le document: Pour récupérer le document:
  
-    * Go sur [[ftp://192.168.102.100:21]]+    * Sur nextcloud dans **/MiNET/Scanner**
  
-    * Le login: scanner_minet 
- 
-    * Le mdp: le fameux mot de passe qui permet de se connecter en SSH sur les switchs 
- 
-ou 
- 
-    * loggez-vous en SSH sur cups-server et récupérez votre document (situé dans /srv/scanner_minet) via SCP par exemple. 
  
 ===== Comment c'est fait ===== ===== Comment c'est fait =====
Ligne 72: Ligne 67:
  
 on installe les drivers Brother dispo sur [[http://support.brother.com/g/b/producttop.aspx?c=us_ot&lang=en&prod=mfc9340cdw_all]] on installe les drivers Brother dispo sur [[http://support.brother.com/g/b/producttop.aspx?c=us_ot&lang=en&prod=mfc9340cdw_all]]
 +
 +Sinon les drivers se trouvent sur le CD fourni avec l'imprimante. Un ISO de ce CD se trouve sur nextcloud dans MiNET/Firmware [[https://nextcloud.minet.net/index.php/apps/files/?dir=/MiNET/Firmware]].
  
 On s'assure que le service cups est bien démarré. On s'assure que le service cups est bien démarré.
Ligne 86: Ligne 83:
  
 On installe un serveur ftp: On installe un serveur ftp:
-<code> apt install pure-ftpd </code>+<code> apt install pure-ftpd xmlstarlet curl </code>
  
 +
 +<WRAP center round important 100%>
 +**Obsolète:**
 J'ai choisi pure-ftpd car sa configuration initiale fait tout ce dont on a besoin: pas de ftp anonyme, les home directories des utilisateurs standard sont disponible en ftp (avec authetification PAM), pas de ftp pour le compte root. J'ai choisi pure-ftpd car sa configuration initiale fait tout ce dont on a besoin: pas de ftp anonyme, les home directories des utilisateurs standard sont disponible en ftp (avec authetification PAM), pas de ftp pour le compte root.
  
 Il nous reste donc à créer un utilisateur et définir son home directory (qui va être l'endroit où seront stockés les fichiers scannés) Il nous reste donc à créer un utilisateur et définir son home directory (qui va être l'endroit où seront stockés les fichiers scannés)
 +
  
 <code> adduser --home /srv/scanner_ftp/ scanner_minet </code> <code> adduser --home /srv/scanner_ftp/ scanner_minet </code>
 +</WRAP>
 +
 +<WRAP center round info 100%>
 +pure-ftpd est maintenant configuré avec un utilisateur virtuel chrooté (il n'est plus possible de se logger avec PAM et de voir le contenu des dossiers autre que la racine du serveur ftp).
 +De plus un script transfère automatiquement les fichiers uploadés sur le ftp sur Nextcloud (dans /MiNET/Scanner)
 +</WRAP>
 +
 +
 +=== Configuration de pure-ftpd avec {next,own}cloud ===
 +
 +
 +Configuration de pure-ftpd:
 +<code>
 +# Creation de la DB pour les utilisateurs virtuels
 +echo '/etc/pure-ftpd/pureftpd.pdb' > /etc/pure-ftpd/conf/PureDB
 +cd /etc/pure-ftpd/auth
 +ln -s /etc/pure-ftpd/conf/PureDB 50pure
 +
 +# Desactivation du login UNIX et PAM
 +echo 'no' > /etc/pure-ftpd/auth/65unix
 +echo 'no' > /etc/pure-ftpd/auth/70pam
 +
 +# Creation de notre utilisateur virtuel
 +groupadd ftpgroup
 +useradd -g ftpgroup -d /dev/null -s /etc ftpuser
 +pure-pw useradd scanner_minet -u ftpuser -g ftpgroup -d /srv/scanner_ftp
 +pure-pw mkdb
 +
 +# On met a jour les UID et GID de l'utilisateur qui lancera le script appelé à la fin d'un upload
 +MYUID=$(id -u ftpuser); sed -i -e "s/UPLOADUID=.*/UPLOADUID=${MYUID}/g" /etc/default/pure-ftpd-common
 +MYGID=$(id -g ftpuser); sed -i -e "s/UPLOADGID=.*/UPLOADGID=${MYGID}/g" /etc/default/pure-ftpd-common
 +
 +# On active le lancement de script custom à la fin de l'upload
 +echo 'yes' > /etc/pure-ftpd/conf/CallUploadScript
 +
 +# On s'assure que tous les utilisateurs sont chrooté
 +echo 'yes' >  /etc/pure-ftpd/conf/ChrootEveryone
 +
 +# Pas d'utilisateur anonyme
 +echo 'yes' >  /etc/pure-ftpd/conf/NoAnonymous
 +
 +# On s'assure que pure-ftpd n'écoute que sur l'interface dans le 102 sur le port 21
 +echo '192.168.147.5,21' > /etc/pure-ftpd/conf/Bind
 +
 +</code>
 +
 +On crée le script qui va transférer les fichiers uploadé sur le ftp sur le {own,next}cloud (/opt/uploadhandler.sh)
 +<code>
 +#!/bin/bash
 +
 +# Lorsque pure-ftpd appelle un script il passe le chemin absolu du fichier uploadé en $1
 +
 +
 +PROXY="http://192.168.102.61:82"
 +OC_USER="scanner" ###### Utilisateur nextcloud faisant partie du groupe "MiNET"
 +OC_PASS="xxxxxxxxxxxxxxxxxx" ###### MDP de l'utilisateur scanner sur nextcloud
 +OC_WEBDAV_URL="https://nextcloud.minet.net/remote.php/webdav/"
 +OC_UPLOAD_DIR="MiNET/Scanner"
 +FILENAME=$(basename "$1")
 +
 +
 +# upload_exit_code vaut 0 si la commande n'a pas retournée d'erreur
 +# cependant ça ne veut pas dire que le fichier a bien été uploadé sur
 +# nextcloud
 +curl -s -x $PROXY -u $OC_USER:$OC_PASS -T "$1" $OC_WEBDAV_URL/$OC_UPLOAD_DIR/$FILENAME
 +upload_exit_code=$?
 +
 +
 +# Verifie que le fichier se trouve bien sur nextcloud
 +# si dans le XML renvoyé par la requête on trouve
 +# un élément "error" dans lequel on trouve un élément "exception"
 +# check_exit_code vaut  0 -> en d'autres termes ça sent pas bon 
 +curl -s -x $PROXY -u $OC_USER:$OC_PASS -XPROPFIND $OC_WEBDAV_URL/$OC_UPLOAD_DIR/$FILENAME | xmlstarlet select -t -v //d:error/s:exception
 +check_exit_code=$?
 +
 +
 +# On supprime le fichier de cups-server seulement si le fichier a
 +# bien été envoyé sur nextcloud
 +if [ $upload_exit_code -eq 0 ] && [ $check_exit_code -ne 0 ]; then
 +        rm -r "$1"
 +fi
 +
 +</code>
 +
 +Ensuite:
 +<code>
 +chmod +x /opt/uploadhandler.sh
 +</code>
 +
 +On s'assure que la conf globale de pure-ftpd est bonne (/etc/default/pure-ftpd-common):
 +<code>
 +STANDALONE_OR_INETD=standalone
 +
 +VIRTUALCHROOT=true
 +
 +UPLOADSCRIPT=/opt/uploadhandler.sh
 +
 +UPLOADUID=1008 #uid de l'utilisateur qu'on vient de créer
 +UPLOADGID=1008 #gid de l'utilisateur qu'on vient de créer
 +</code>
 +
 +On oublie pas de relancer le daemon.
  
 Ensuite aller sur l'interface WEB de l'imprimante: Ensuite aller sur l'interface WEB de l'imprimante:
-http://192.168.102.172/scan/scanprofile.html+http://192.168.147.5/scan/scanprofile.html
  
 Cliquez sur un profil et remplissez les champs: Cliquez sur un profil et remplissez les champs:
  
-Profile NameHost Address (l'address IP de cups-server)Username (le nom d'utilisateur que vous venez créer)Password (le mot de passe de cet utilisateur)Store Directory (le dossier dans lequel les documents seront stockés, mettre '.' pour stocker à la racine du ftp).+Profile Name 
 + 
 +Host Address (l'address IP de cups-server) 
 + 
 +Username (le nom d'utilisateur **virtuel** que vous venez créer) 
 + 
 +Password (le mot de passe de cet utilisateur) 
 +Store Directory (le dossier dans lequel les documents seront stockés, mettre '.' pour stocker à la racine du ftp).
  
 Les autres champs peuvent être laissés à leur valeur par défaut. Les autres champs peuvent être laissés à leur valeur par défaut.
Ligne 105: Ligne 215:
 Validez le formulaire et normalement le profile devrait apparaitre dans le menu 'Scan to FTP' de l'imprimante. Validez le formulaire et normalement le profile devrait apparaitre dans le menu 'Scan to FTP' de l'imprimante.
  
-<wrap hi>TODO:</wrap> 
-    * ajouter plus d'espace sur le CT cups-server 
-    * interfacer cups-server et owncloud pour déplacer directement les documents scannés sur owncloud 
  
 ==== Commandes utiles ==== ==== Commandes utiles ====
Ligne 122: Ligne 229:
 Spécifier un range de page à imprimer: Spécifier un range de page à imprimer:
 <code> lp -o page-ranges=1-4 filename </code> <code> lp -o page-ranges=1-4 filename </code>
 +
 +Empêcher les débordements
 +<code> lp -o fit-to-page filename </code>
 +
 +
wiki/services/imprimante_cups_server.1493472037.txt.gz · Dernière modification: 2020/06/27 18:15 (modification externe)