Tem mais informações sobre solução de problemas para esse problema. Eu instalei o Ubuntu 10.04.3 LTS em outro sistema e configurei as configurações do smartcard OpenPGP. Ele está funcionando corretamente para minha conta de usuário não raiz. Naturalmente eu queria verificar as permissões no dispositivo usb.
Em minha conta normal, eu executei pela primeira vez um gpg --card-edit
para amarrar o dispositivo de leitura de cartão usb, depois executei sudo lsof -c gpg | grep usb
para encontrar o arquivo do dispositivo. Isso rendeu anotando então eu corri sudo gpg --card-edit
e recebi uma mensagem de erro!
seth@swk:~$ sudo gpg --card-edit
[sudo] password for seth:
gpg: WARNING: unsafe ownership on configuration file '/home/seth/.gnupg/gpg.conf'
gpg: detected reader 'SCM SCR 3310 00 00'
gpg: pcsc_connect failed: sharing violation (0x8010000b)
gpg: apdu_send_simple(0) failed: locking failed
Please insert the card and hit return or enter 'c' to cancel: c
gpg: selecting openpgp failed: general error
gpg: OpenPGP card not available: general error
Outra coisa estava amarrando o leitor de cartão usb. Vamos descobrir o que:
sudo lsof | grep usb
Isso gerou a pepita que eu estava procurando.
pcscd 2362 root 5u CHR 189,4 0t0 2194 /dev/bus/usb/001/005
Portanto, aparentemente, o serviço pcscd pega o dispositivo leitor de cartão em nome do usuário não-root e retransmite solicitações de leitura / gravação gpg para o cartão em uma configuração OpenPGP configurada corretamente.
Vamos dar uma olhada nas permissões do arquivo do dispositivo.
seth@swk:~$ ls -l /dev/bus/usb/001/005
crw-rw-r-- 1 root root 189, 4 2011-10-18 11:49 /dev/bus/usb/001/005
OK, agora acho que estou chegando perto. No sistema 11.10, lembro que o grupo foi definido como pcscd e não root. Parece que o problema pode estar no pacote pcscd. Vou tentar configurar um sistema 11.10 com as mesmas permissões e reportar de volta.
UPDATE: Então eu defino as permissões de usuário e grupo no dispositivo usb de uma nova instalação do Ocelot 11.10 para root e root. O comando gpg --card-status
ainda falha como usuário não raiz. Eu estou supondo que este é um bug no pacote pcscd por enquanto.