如何在python程序中获取linux用户名

how to get linux username in a python program

本问题已经有最佳答案,请猛点这里访问。

我在Linux上使用一个名为Ajenti的程序。这是一个管理Linux服务器的程序,它是用python编写的。

我需要为不同的部分(如文件管理器)获取登录用户的Linux用户名。需要限制用户的访问。

该软件的源可以在这里找到,例如,在文件管理器的第73行中,可以定义访问权限。但是,我通过"os.path.expanduser"或"pwd.getpwuid(os.getuid()).pw_name"等函数获取用户名,现在它只返回"root",而不管登录的用户是谁。

我想要每个用户名,我该怎么做?

附言:这不是复制品。我知道有些问题和我的一样,但这不是我想要的。他们之间有点不同。


你要找的是os.getlogin()吗?(https://docs.python.org/3/library/os.html os.getlogin)

1
2
3
4
>>> import os
>>> os.getlogin()
'msurrow'
>>>

或者可能是getpass.getuser()。(https://docs.python.org/3.1/library/getpass.html)

1
2
3
4
>>> import getpass
>>> getpass.getuser()
'msurrow'
>>>

登录用户的身份和运行python进程的身份之间存在差异。杰夫在回答中解释得更多