我在linux上使用名为ajenti的程序。它是一个管理linux服务器的程序,它是用python编写的。
我需要为文件管理器等不同部分获取登录用户的linux用户名。需要限制用户的访问权限。
可以找到该软件的来源here,例如在file manager的第73行中,可以定义访问权限。但是我通过“os.path.expanduser”或“pwd.getpwuid(os.getuid())等函数获取用户名.pw_name”现在,无论登录用户如何,它都只返回“root”。
我想要每个用户名,我该怎么办?
P.S:这不是重复的。我知道有像我这样的问题,但这不是我想要的。它们之间略有不同。
答案 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
中解释了更多