Mac OSX et les imprimantes

Bonjour,

Aujourd’hui encore nous allons nous promener dans l’antre magnifique de Mac OSX pour y regarder de plus près sur un problème commun aux Mac : Les imprimantes.

Dans la version simple, vous avez un Mac, vous êtes admin dessus, vous souhaitez installer une imprimante, rien de plus simple, en 3 cliques, c’est fini.
Mais, que ce passe t’il dans le monde professionnel quand l’utilisateur lambda ne dispose pas des droits administrateur ? Apple a pensé à tout rien.

Faisons un peu le point sur notre installation à nouveau :

  • Un serveur Mac OSX Lion avec gestion des droits dans LDAP
  • Des postes clients avec authentification sur le serveur (Snow leopard)
  • 2 imprimantes (1 USB, 1 réseau)

Une fois tout installé, ça fonctionne bien, sauf quand ça ne fonctionne pas en faite. Vous avez déjà probablement eu votre imprimante qui se met en pause (met en pause la job-list de l’imprimante) et, pour retirer la pause, vous devez entrer un login et un mot de passe administrateur.
Là, on commence à sourire, alors bon, réflexe de logique stupide : J’ai un compte Admin sur mon LDAP, il suffit que je mette mon login et mot de passe, et hop .

..

… Et ben non …

Il faut un compte admin LOCAL !!! Là, j’avoue, ça fait grave déchanter, bon je me dis : OK, c’est simple, doit y’avoir un paramètre pour autoriser les utilisateurs à mettre en pause ou résumer sans avoir les droits administrateur.

..

… Et ben non …

Encore une fois c’est une impasse … que faire alors ? Après quelques recherches on pourrait à l’aide de la commande dseditgroup, rajouter l’utilisateur dans le groupe lpadmin, pour qu’il ait les droits de mettre en pause ou résumer les imprimantes. Le problème étant que les comptes sont sur le serveur et les imprimantes sur les postes en direct. La solution que j’ai trouvée et testée est donc une solution certe, barbare, mais qui fonctionne très bien : L’édition du fichier de configuration de CUPS (OSX utilise CUPS pour gérer les imprimantes).

Attention, nous allons utiliser un éditeur de texte en ligne de commande pour cette manipulation, si vous ne connaissez pas, je vous invite a lire l’article suivant : Éditeur de texte dans le terminal
Pour ce faire, il vous faut :

  1. Ouvrir le terminal : Applications > Utilitaires > Terminal.app
  2. Escalader en root :
    • Si vous êtes en compte Administrateur sur LDAP ou la machine locale tapez : $>sudo -s
    • Si vous êtes avec un compte standard tapez : $>su [Nom_d’un_compte_admin] puis : $>sudo -s
  3. Éditez le fichier cupds.conf à l’aide de la commande : $>vi /etc/cups/cupsd.conf
  4. Allez à la ligne : <Policy Default>, c’est dans cette section que les paramètres sont gérés dans le cas d’imprimante local, aller savoir pourquoi ceci ne rentre pas dans la section autenticated ou kerberos ….
  5. Dans cette section, cherchez le bloc  :
    • <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After CUPS-Accept-Jobs CUPS-Reject-Jobs>
      AuthType Default
      Require user @AUTHKEY(system.print.operator) @admin @lpadmin
      Order deny,allow
      </Limit>
  6. Et modifiez le de la sorte :
    • <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After CUPS-Accept-Jobs CUPS-Reject-Jobs>
      #AuthType Default
      #Require user @AUTHKEY(system.print.operator) @admin @lpadmin
      #Order deny,allow
      Require valid-user
      Order allow,deny
      </Limit>
  7. Vous pouvez enregistrer le fichier et quittez, pour prendre en compte les paramètres fermez puis rouvrez la session ou utilisez les 2 lignes ci-dessous :
    • launchctl unload /System/Library/LaunchDaemons/org.cups.cupsd.plist
    • launchctl load /System/Library/LaunchDaemons/org.cups.cupsd.plist

Voilà, vous pouvez maintenant mettre en pause et résumer vos impressions sans avoir besoin du mot de passe administrateur.

Pour finir, qu’avons-nous fait ? Simples, nous avons supprimé la gestion des droits pour toutes les taches qui sont listés après le mot clé « Limit ».  La règle « Require valid-user » impose que l’utilisateur doit être authentifié pour y accéder, mais en même temps, la ligne suivante « Order allow,deny » signifie que par défaut on laisse passer tout le monde, et ceux qui ne passe pas on les refuse (personne ne tombe donc dans le deny).

J’espère que cet article vous aura plus, je reviendrais rapidement vers vous pour d’autres articles.

Cordialement,
Arck

 


4 thoughts on “Mac OSX et les imprimantes

    Très bien expliqué, excellent billet. Juste une petite remarque, vous auriez dû ajouter des imprime-écran pour chaque étape, pour savoir plus précisément où il faudrait modifier les requêtes dont vous parliez.

    Merci beaucoup pour cette astuce qui fonctionne.
    J’ai abandonné l’administration de mon propre ordinateur à un ami afin de pouvoir y mettre un contrôle, seul moyen d’avoir un ordinateur contrôlé. Cependant je voulais garder le contrôle de mon imprimante!!

    Petite remarque il m’a fallu chercher les commandes unix pour savoir comment quitter vi, ce serait pas d’ajouter à la fin de l’article un tout petit truc : :wq

Répondre à Cartouche canon Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *