Como posso ver se os usuários estão conectados pelo sftp?

11

Eu corro um servidor de arquivos linux para o meu escritório e utilizamos o SFTP para que parceiros remotos façam login e baixem arquivos. Existe uma maneira de verificar se há alguma conexão ou logon ativo para que eu possa saber quando é seguro executar a manutenção na máquina?

Como a máquina está servindo quase constantemente arquivos grandes, a manutenção programada geralmente é interrompida devido a alguém fazer o upload

aVeRTRAC
fonte

Respostas:

11

Você também pode fazer:

ps -ef | grep '[s]shd' | grep -v ^root

que deve mostrar todas as sessões sshd (que são usadas para sftp). Percebo na minha máquina que minha linha de comando do processo sshd contém '$ USER @ notty', o que faz sentido, pois não estou logado com uma sessão de terminal. Você pode apertar o grep acima com:

ps -ef | grep '[s]shd:.*@notty' | grep -v ^root

BTW: os colchetes no grep não devem exibir o processo 'grep sshd' na lista de processos. [s] shd corresponde a sshd, mas não corresponde a si próprio. Ele salva um 'grep -v grep'

Rich Homolka
fonte
4
Acabei usando netstat -atn | grep ':22'para ver se havia tráfego aberto na porta 22. Também descobri que podia verificar os logs sshd, localizados em '/var/log/auth.log' no meu sistema, para ver se todos os usuários que abriram um a sessão foi encerrada.
aVeRTRAC 10/08/11
2

Você também pode tentar fuser -u ssh/tcp

Uli
fonte
1

Eu acho que você pode usar o programa de linha de comando whopara ver isso. Percebi alguns relatórios de que isso não funciona, mas ainda acho que pode funcionar (talvez seja uma configuração ssh).

O sftp é construído sobre o SSH . Representa o "SSH File Transfer Protocol". E quando você estiver conectado pelo ssh, 'who' o incluirá como usuário conectado com sua saída. Então, eu esperaria que isso funcionasse também com sessões sftp ativas.

Esta discussão de 2008 também sugere que você possa usar 'netstat' para isso. Também inclui uma sugestão para executar 'who' via 'watch' para que você possa ver as atualizações sem fazer nada.

James T Snell
fonte
1
quem não mostra os usuários conectados via ssh (eu apenas entrei no meu laptop e verifiquei).
aVeRTRAC
Isso é maluco, isso tem que ser uma configuração .. Como eu estou bem danado certeza de que ele tem feito por mim .. por anos e anos e anos ..
James T Snell
Alguma idéia de onde seria esse cenário? Eu tentei isso em um servidor público no meu trabalho e recuperei o que parece ser resultados realistas com vários usuários listados.
AVeRTRAC
1
quem mostra quem está atualmente executando um shell de logon. Dependendo do que o usuário está executando, ele pode ou não contar como um shell de logon. A metade do servidor do sftp não é, portanto, por que as sessões do sftp não aparecem em quem.
Perkins