Se eu tiver um sistema operacional com vários usuários logados via ssh, existe alguma maneira de descobrir qual máquina física está associada a cada /dev/pts/N (onde N é um número inteiro)? Tudo que eu sei é o
quem
e
ps -aux
comandos que mostrarão qual usuário ou processo está associado aos arquivos do dispositivo, mas posso obter mais informações sobre a máquina física de onde vem o usuário/processo? Talvez um IP?
Um pseudo-terminal não está associado a uma "máquina física". Está associado a um processo em execução (por exemplo, sessão ssh, ou uma janela de terminal gui, uma janela em screen/tmux, etc). Você pode usar
ps
para descobrir quais processos estão usando um determinadopts
dispositivo e, potencialmente, retroceder a partir daí.Para o que você está tentando fazer, o comando
ss
(ounetstat
) pode ser mais útil. Por exemplo, posso encontrar os endereços remotos associados às conexões ssh ativas executando algo como:SSH (e mosh) realmente preenche os arquivos
utmp
/ que, por exemplo , lêem com algumas informações úteis, incluindo o endereço IP remoto.wtmp
who
last
Embora você possa querer grep pelo nome tty correto:
Alternativamente, você pode perseguir a lista de arquivos abertos para encontrar o processo SSH que contém um fd no tty e, em seguida, o soquete de rede correspondente.