netstat (/ proc / net): por que o usuário está associado com o socket root? como obter o id do usuário do processo 'remoto'?

0

ubuntu 16.04

Eu tenho dois aplicativos de nó, app-1 e app-2, com nomes de usuários correspondentes aos nomes de seus aplicativos, ouvindo localmente (nas portas 8001 e 8002, respectivamente) na mesma instância. Quando o app-1 faz uma requisição para o app-2, eu posso encontrar o remoteHost do socket manipulando o request do app-2. Então, quando tento procurar esse remoteHost via netstat e recuperar algumas informações de usuário / processo, descubro que o usuário associado ao soquete é uid: 0 ou root . Minha expectativa é que o usuário associado a essa conexão seja app-1 , já que esse é o aplicativo em que a solicitação está sendo gerada. Então, a parte 1 da minha pergunta é: por que o usuário é root e não app-1 ?

Parte 2: meu objetivo é obter o ID do usuário do processo remoto com base somente nas informações em remoteHost (por exemplo, 127.0.0.1:53900). Parece-me que o sistema operacional deve saber exatamente qual processo / user-id está usando essa combinação de host / porta. Portanto, assumindo que netstat não funcionará, pelas razões mencionadas no parágrafo anterior, que outras chamadas de sistema ou utilitários eu poderia analisar para obter essas informações?

    
por user1797466 21.03.2017 / 04:46

1 resposta

0

Embaraçosamente, acho que o problema na parte 1 é que eu estava apenas examinando a conexão depois que ela já havia sido fechada em um lado (o estado era time-wait ). Como teste, alterei o tipo de conexão para manter-se ativo e agora as informações do usuário aparecem como esperado.

A resposta para a parte 2 será ler os mesmos arquivos que netstat (/ proc / net / *) e procurar pelo remoteHost .

    
por 21.03.2017 / 07:39