Por que minha sessão do winscp não está aparecendo no Linux?

3

Quando alguém abre as sessões usando o Winscp, sua sessão não é exibida no Linux quando executo os comandos who ou last . Eu pensei que ele apareceria porque está usando ssh para se conectar. Mas ainda não há registros. Pode ser um problema de segurança.

Quero dizer, se um usuário fizer login e excluir algum arquivo e não houver registro dele. Como vamos encontrá-lo?

    
por OmiPenguin 25.09.2014 / 15:18

1 resposta

3

who e last mostram apenas se você está logado. Quando você está usando scp , tecnicamente não está logado, já que seu shell no lado remoto não foi gerado como tal.

Para rastrear essas coisas, você precisaria utilizar a contabilidade de processo, um pacote chamado psacct pode lhe fornecer o nível de registro, se é isso que você está procurando. Além disso, o registro via SSH pode ser aumentado para mostrar alguns desses detalhes, se é isso que você deseja.

Os comandos who e last não são destinados a esse propósito.

last & quem

Essa terminologia sempre confunde as pessoas, já que elas associam uma conexão com o login, mas são dois estados muito diferentes. Quando você acessa um servidor web, você está consumindo os recursos de um sistema remoto sem estar logado. Isso é essencialmente o que você está fazendo quando está executando um scp .

trechos do último & who man pages

último

last, lastb - show a listing of last logged in users

quem

who - show who is logged on

Exemplo

Aqui eu fiz o login em um servidor usando SFTP, mas who e last são alheios.

$ ps auxf | less
...
root      3376  0.0  0.0   7212  1040 ?        Ss   Sep10   0:00 /usr/sbin/sshd
root     29066  0.0  0.0  10108  3004 ?        Ss   09:44   0:00  \_ sshd: sam [priv] 
sam      29071  0.0  0.0  10240  1836 ?        S    09:44   0:00  |   \_ sshd: sam@notty  
sam      29072  0.1  0.0   6708  1740 ?        Ss   09:44   0:00  |       \_ /usr/libexec/openssh/sftp-server
root     29202  0.1  0.0  10084  3052 ?        Ss   09:44   0:00  \_ sshd: root@pts/0 
root     29204  0.6  0.0   6268  3052 pts/0    Ss   09:44   0:00      \_ -bash
root     29255  0.0  0.0   4624  1108 pts/0    R+   09:45   0:00          \_ ps auxf
root     29256  0.0  0.0   4288   760 pts/0    S+   09:45   0:00          \_ less

Como eu não tenho shell que foi executado como um shell de login, tecnicamente não estou logado. Quando eu ssh para o sistema como root, como mostrado acima, eu tenho um shell, bash . / p>

A saída de who -a confirma:

$ who -a
                        2014-09-10 05:15               398 id=si    term=0 exit=0
           system boot  2014-09-10 05:15
           run-level 5  2014-09-10 05:15                   last=S
                        2014-09-10 05:16              2307 id=l5    term=0 exit=0
LOGIN      tty1         2014-09-10 05:16              3785 id=1
LOGIN      tty2         2014-09-10 05:16              3786 id=2
LOGIN      tty3         2014-09-10 05:16              3787 id=3
LOGIN      tty4         2014-09-10 05:16              3788 id=4
LOGIN      tty5         2014-09-10 05:16              3792 id=5
                        2014-09-10 05:16              3794 id=6
                        2014-09-10 05:16              3799 id=x
root     + pts/0        2014-09-25 09:51   .         29300 (mulder.mydom.net)
           pts/1        2014-09-24 16:36             20324 id=ts/1  term=0 exit=0
           pts/1        2014-09-12 02:40             27603 id=/1    term=0 exit=0
           pts/2        2014-09-12 03:21             27820 id=ts/2  term=0 exit=0

Observe que não há referência ao usuário, sam, com a conexão SFTP. Se você quiser determinar se um shell interativo ou não dar uma olhada neste U & L Q & A título: Como verificar se um shell é login / interactive / batch .

    
por 25.09.2014 / 15:30

Tags