No meu servidor Ubuntu, acho muito útil que netstat -tulpn
também mostre o nome de usuário conectado sshd
(aparentemente, essa impressão de nome de usuário é específica para sshd
) - infelizmente, essa impressão também é truncada:
$ sudo netstat -tulpn | grep 'PID\|user1'
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:12345 0.0.0.0:* LISTEN 1620557/sshd: user1
tcp6 0 0 :::12345 :::* LISTEN 1620557/sshd: user1
No exemplo acima, o nome de usuário completo é user1234
, mas devido ao truncamento, só consigo ler user1
.
Ainda mais infelizmente, descobri que esse truncamento está codificado no netcat
limite de largura da linha de saída do Netstat :
Infelizmente, a largura da coluna PID/Nome do programa no netstat é codificada com hardcode,
#define PROGNAME_WIDTH 20
então não há como obter a saída completa do netstat diretamente. Além disso, você acaba com 19 caracteres e um espaço no final.
A mesma resposta também recomenda:
No Linux de hoje, pode-se usar
sudo ss -natp
para obter as informações completas formatadas de forma um pouco diferente, mas com o nome completo:
... infelizmente, ss
não imprime o nome de usuário do usuário conectado sshd
como netstat
faz:
$ sudo ss -tulpn | grep user1
$
$ sudo ss -tulpn | grep 12345
tcp LISTEN 0 128 0.0.0.0:12345 0.0.0.0:* users:(("sshd",pid=1620557,fd=10))
tcp LISTEN 0 128 [::]:12345 [::]:* users:(("sshd",pid=1620557,fd=11))
Então, como posso obter uma saída idêntica ou semelhante à saída de netstat -tulpn
, mas que imprima os nomes de usuário completos conectados a sshd
?
Minha versão do netstat é:
$ netstat --version
net-tools 2.10-alpha
Fred Baumgarten, Alan Cox, Bernd Eckenfels, Phil Blundell, Tuan Hoang, Brian Micek and others
+NEW_ADDRT +RTF_IRTT +RTF_REJECT +FW_MASQUERADE +I18N +SELINUX
AF: (inet) +UNIX +INET +INET6 +IPX +AX25 +NETROM +X25 +ATALK +ECONET +ROSE -BLUETOOTH
HW: +ETHER +ARC +SLIP +PPP +TUNNEL -TR +AX25 +NETROM +X25 +FR +ROSE +ASH +SIT +FDDI +HIPPI +HDLC/LAPB +EUI64