Primeiro, who não se importa com os shell de login, ou qualquer coisa assim. Apenas copia utmp entradas. Você pode ter uma entrada para terminais que não sejam de login; para sessões gráficas; para conexões FTP (com um nome tty "line" completamente confeccionado); para qualquer coisa.
Segundo, as entradas utmp são criadas manualmente - você só recebe uma entrada se o programa que processa suas chamadas de login pututline(…) . Por exemplo, o sshd sempre faz isso, os emuladores de terminal frequentemente fazem isso (mas nem sempre), e su nunca faz isso.
(Lembre-se que su não aloca um novo pty, então ele não pode adicionar uma entrada de utmp - caso contrário você acabaria com várias entradas para o mesmo tty, o que pode confundir alguns programas). / p>