python获取当前登录用户名_如何在python程序中获取linux用户名

在Linux上运行的Python程序中,为获取当前登录用户的用户名,可以使用os.getlogin()或getpass.getuser()函数。然而,当程序以root权限运行时,这些函数可能会返回'root'。要解决这个问题,可以考虑在多用户登录的情况下获取正确用户名的策略,例如,检查登录用户列表并选择非root用户。讨论中提出了检查登录用户列表并假设只有一个非root用户作为登录用户的方法,但这可能存在风险。
摘要由CSDN通过智能技术生成

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

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

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

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

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

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

@苏美特,我说我在用这个,但这并不能满足我的要求。

您想要什么样的返回值?

@雪叶,你试过所有的答案了吗?

@msurrow用户名,而不是"根"。

@snowleaf您是否检查过您实际上没有在测试脚本的会话中以根用户身份登录?(这可能是一个经典的脑残):(或者运行python作为根)

@我不太明白你的意思!此程序需要根权限才能运行。但是有没有其他方法让用户进入软件?

@snowleaf not that I know.linux允许多个用户同时登录,所以如果您有一个"getloggedinuser"函数,那么如果多个用户登录该返回什么?一个选项是返回运行脚本的用户,这就是您测试的方法所做的&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值