Linux, netstat: como exibir o dono de programas usando portas?

6

Estou ficando louco com o comando netstat .
No homem, podemos ler que, na saída do Active Internet Connections (TCP, UDP, raw), devemos ter:

User : The username or the user id (UID) of the owner of the socket.

Mas quando eu faço

netstat -natp

minha saída não mostra nenhum proprietário (ou UID)

Active Internet connections (servers and established)  
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name  
tcp        0      0 0.0.0.0:4713            0.0.0.0:*               LISTEN      2159/pulseaudio  
(...)

e não vejo nenhuma opção no homem para exibir o proprietário do PID.

Existe a opção --numeric-users , mas isso não muda nada.

Há algo que estou perdendo? Ou há algo errado com o netstat?
Existe outra maneira de obter essa informação?

Obrigado pela sua ajuda:)

    
por Matt C 21.02.2014 / 00:19

2 respostas

9

Use netstat -natpe .

Da página do manual:

-e, --extend
 Display additional information.  Use this option twice for maximum detail.

Tão claro quanto lama.

Que adicionará duas colunas, User e Inode ao display.

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       User       Inode      PID/Program name
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      100        13119      1901/mysqld
    
por 21.02.2014 / 00:43
4

Como alternativa, você pode usar lsof -i , que mostra o usuário.

COMMAND     PID    USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
httpd     32500  apache    4u  IPv6   14390      0t0  TCP *:http (LISTEN)
httpd     32501  apache    4u  IPv6   14390      0t0  TCP *:http (LISTEN)
httpd     32502  apache    4u  IPv6   14390      0t0  TCP *:http (LISTEN)
httpd     32503  apache    4u  IPv6   14390      0t0  TCP *:http (LISTEN)
    
por 21.02.2014 / 03:13