Autoriser un utilisateur non administrateur à utiliser une smartcard
Suite à l'acquisition récente d'une smart card OpenGPG et d'un lecteur usb omnikey cardman 6121, j'ai rencontré un souci :
Je n'arrivais pas à utiliser cette carte autrement qu'en root.
Différentes recherches sur internet m’amenaient plus ou moins directement sur cette page, mais dans mon cas, ça ne marchait pas et il a fallu modifier légèrement la configuration. Aussi je met les détails ici, en espérant que ça puisse éviter à certains de perdre du temps :
La première étape est de récupérer les informations idVendor et idProduct liés au lecteur avec la commande lsusb -v
Dans mon cas :
idVendor 0x076b OmniKey AG
idProduct 0x6623
Ensuite créer un fichier /etc/udev/gnupg-ccid.rules dans lequel on mettra la ligne suivante :
ACTION=="add", ATTRS{idVendor}=="076b", ATTRS{idProduct}=="6623", GROUP="scard", RUN+="/etc/udev/scripts/gnupg-ccid"
idVendor et idProduct seront bien sur à adapter si vous avez un lecteur différent.
La seconde étape est de créer un fichier /etc/udev/scripts/gnupg-ccid contenant :
#!/bin/bash
if [ "${ACTION}" = "add" ] && [ -f "${DEVICE}" ] then * chmod o-rwx "${DEVICE}"* * chgrp "${GROUP}" "${DEVICE}"* * chmod g+rw "${DEVICE}"* fi
Mettez les droits qui vont bien :
# chmod +x /etc/udev/scripts/gnupg-ccid
Créer un lien symbolique pour qu'udev prenne la configuration en compte :
# ln -s /etc/udev/gnupg-ccid.rules /etc/udev/rules.d/gnupg-ccid.rules
Créer le groupe scard :
# addgroup scard
Ajouter au groupe scard l'utilisateur auquel on veut donner les droits :
# addgroup nomutilisateur scard
Dire à udev de prendre en compte la nouvelle configuration :
# udevadm control --reload-rules
C'est fini ! Plus besoin d'être root pour utiliser la carte.