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

时间:2016-06-10 09:34:34

标签: python linux access

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

我需要为文件管理器等不同部分获取登录用户的linux用户名。需要限制用户的访问权限。

可以找到该软件的来源here,例如在file manager的第73行中,可以定义访问权限。但是我通过“os.path.expanduser”或“pwd.getpwuid(os.getuid())等函数获取用户名.pw_name”现在,无论登录用户如何,它都只返回“root”。

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

P.S:这不是重复的。我知道有像我这样的问题,但这不是我想要的。它们之间略有不同。

1 个答案:

答案 0 :(得分:5)

os.getlogin()能成为你想要的吗? (https://docs.python.org/3/library/os.html#os.getlogin

>>> import os
>>> os.getlogin()
'msurrow'
>>> 

或者也许是getpass.getuser() (https://docs.python.org/3.1/library/getpass.html

>>> import getpass
>>> getpass.getuser()
'msurrow'
>>> 

登录用户的身份与python进程运行的“谁”之间存在差异。杰夫在his answer here

中解释了更多