w
usa /var/run/utmp
e o /proc
filesystem (no Linux), gravando quem está conectado no momento.
last
usa /var/log/wtmp
(e /var/log/btmp
), mostrando como foi feito o login. No entanto, nem todo programa atualizará esses arquivos adequadamente, em alguns sistemas esses arquivos podem nem existir.
Por exemplo, no meu sistema, w
vê minhas 5 sessões de login em uma única sessão de tela GNU:
$ w | tail -n +3 | wc -l 5 $ last | grep -c still\ logged 1
Ainda, last
registrou apenas uma sessão ativa . Ao configurar deflogin=off
na tela GNU, até w
perde o controle das sessões de login ativas e continua exibindo 5 sessões, mesmo que eu tenha aberto apenas outras 5 janelas na mesma sessão de tela.
IOW: use, e. ps
para descobrir quantos usuários estão "on-line", quantos shells estão abertos, etc. Ele fornecerá resultados mais precisos, pois não depende de arquivos de estado (obsoletos) como /var/log/utmp
.