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
últimoquemlast, lastb - show a listing of last logged in users
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 .