Em a documentação oficial do módulo os
:
os.getlogin():
Return the name of the user logged in on the controlling terminal of the process
Como o usuário raja
está logado no tty onde o processo python
está sendo executado, você está obtendo corretamente a saída raja
.
Para obter o que você deseja, você pode usar o módulo subprocess
para executar comandos nativos do Linux em python
:
$ who
foobar :0 2015-11-01 18:04 (:0)
foobar pts/1 2015-11-01 18:04 (:0)
foobar pts/9 2015-11-01 18:04 (:0)
>>> python2
>>> import subprocess
>>> print subprocess.check_output("who")
foobar :0 2015-11-01 18:04 (:0)
foobar pts/1 2015-11-01 18:04 (:0)
foobar pts/9 2015-11-01 18:04 (:0)
Ou verifique a função get_users()
de psutil
package.