ID do usuário no módulo do kernel [closed]

1

Estou tentando interceptar a chamada do sistema clone para poder imprimir o ID do usuário e o ID do processo antes que a chamada real do sistema seja executada. Estou usando get_user_id()->uid para acessar o ID do usuário no módulo do kernel, mas ele retorna o ID do usuário em kuid_t type, que não posso converter para int . Existe alguma outra maneira de fazer isso?

Eu li sobre o uso de getuid() (de unistd.h ) em outros fóruns mas, curiosamente, o compilador reconhece o primeiro uso desta função como uma declaração implícita .

    
por Kamyar 16.03.2014 / 16:39

1 resposta

3

Essa estrutura é definida em include/linux/uidgid.h . A única coisa que ele contém é um val membro do tipo uid_t , que é o que o userspace getuid retorna (um unsigned int no Linux, siga os cabeçalhos navegando por Referência Cruzada do Linux por exemplo).

Acesse-o diretamente da variável kuid_t ou use __kuid_val desse mesmo cabeçalho.

    
por 16.03.2014 / 16:59