Como detectar inserção USB e registrar usuário atual

0

Eu preciso escrever um script que registre qual usuário inseriu o USB e envia informações para um servidor. Eu criei uma regra do udev que executa um script python quando detecta uma inserção USB. O script grava as informações do arquivo de log sobre o USB inserido e envia essas informações para um servidor. O problema é que parece que o script é executado como root, não como usuário atual, já que o comando id retorna uid = 0 (root). É possível obter o usuário atualmente logado de um script de execução do udev e, se não, existem alternativas que podem fazê-lo?

    
por Feisty Otter 24.05.2018 / 19:47

1 resposta

0

Funcionalmente, você não pode fazer isso de qualquer maneira sensata, porque:

  • Você pode ter vários usuários conectados ao mesmo tempo. Você pode registrar todos, mas isso ainda não é confiável por causa do segundo problema.
  • Os nomes de usuário não são traduzidos de forma confiável para quem está fisicamente presente no sistema.

Se você estiver realmente definido para fazer isso, registre a saída do comando who junto com as informações sobre USB. Isso lhe dará uma lista de quem tem logins ativos, em qual terminal, de onde e quando eles se conectaram. Isso funciona em torno do primeiro problema, mas não do segundo (e você não pode trabalhe em torno do segundo sem envolver algum hardware.

Se preferir, consulte usbguard , configure-o para exigir autorização para tudo e, em seguida, registre quem autorizou o dispositivo (o que deve ser a pessoa que ligou, mas não há como garantir isso.

    
por 24.05.2018 / 21:46