Melhor abordagem
Procure um módulo PAM que atenda às suas necessidades. Essa é a melhor maneira de fazer o que você está tentando fazer!
Se você não encontrar algo nos repositórios, tente criar scripts. Combinando udev, criptografia, xdotool
, espaço não utilizado no início de uma unidade USB e testes para ver se você está na tela de bloqueio, você pode fazer isso acontecer.
Instruções gerais:
- Crie uma senha segura para sua conta
- Criptografar (eu uso gpg e criptografia simétrica) essa senha com um arquivo-chave que você armazenará algum lugar seguro em seu computador
- Use um editor hexadecimal para encontrar espaço não utilizado em seu pendrive antes da primeira partição que seja pelo menos tão grande quanto sua senha criptografada.
- Escreva a senha criptografada para o espaço não utilizado em seu pendrive antes da primeira partição (
dd
é útil aqui). Tenha muito cuidado se você escrever para o espaço que é usado para o gerenciamento do sistema de arquivos, você pode "lixeira" seus dados! - Se você não está confiante em sua capacidade de realizar as duas últimas etapas sem perda de dados, basta salvar o arquivo criptografado no seu USB como qualquer outro arquivo
- Instale o programa de linha de comando,
xdotool
- Escreva uma regra do udev para chamar um script na inserção de um dispositivo específico
- Escreva um script (que será chamado pelo udev na regra que você acabou de escrever)
- verifica o estado da tela de bloqueio
- se bloqueado, retira a senha criptografada do USB (use
dd
para isso) - descriptografar a senha com a chave no computador
- use
xdotool
para enviar a senha para o campo de entrada de senha seguido por um toque de tecla de retorno para acessar / desbloquear o sistema.
- Escreva uma regra do udev para observar a remoção do seu pendrive. Quando for removido, envie o comando para bloquear a tela
Ao criptografar a senha antes de copiá-la para o pendrive, você garante que, se perder o pendrive, sua senha não está em texto simples. Se alguém obter a chave de descriptografia da sua senha fora do seu sistema, ela será inútil sem a senha criptografada armazenada no seu USB.
Confira uma resposta que escrevi para uma pergunta diferente onde forneço instruções mais detalhadas. Esse post provavelmente poderia se beneficiar de alguma atualização, e se eu tiver tempo para fazer isso no futuro próximo, eu vou.
Isso pode ser facilmente ajustado para verificar os USBs inseridos em uma lista mestre gerenciada centralmente em um servidor. É claro que o armazenamento de senhas talvez precise ser gerenciado de maneira um pouco diferente.