nó de dispositivo Linux acessível a apenas determinados grupos de processos
-
06-07-2019 - |
Pergunta
Eu tenho um módulo de driver de dispositivo que faz um register_chardev (). Na função de motorista open () Eu gostaria de ser capaz de determinar o PID ou PGID do processo que está a tentar abrir o nó do dispositivo. Isso é possível? Alguém tem alguma idéia de por onde começar?
Eu estou assumindo que este deve tanto proteger o meu nó de dispositivo para permitir apenas minhas aplicações para usá-lo, desde que você não pode migrar um processo para um novo grupo de processo a menos que estejam na mesma sessão.
Solução
O kernel não é o lugar certo para fazer este tipo de decisão política - o lugar correto para definir as permissões sobre quem pode abrir o nó de dispositivo é definindo a propriedade habitual e permissões no arquivo nó de dispositivo no sistema de arquivos.
Se você realmente tem o seu conjunto coração nele, current->pid
é o PID, current->tgid
é o ID do grupo de linha e current->group_leader->pid
é o PGID.