如何在python中获取sudo用户名?

2024-09-22 18:20:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试运行我的脚本如下,并希望访问运行此脚本的sudo用户。在

:$sudo -u usergroup script.py

所以这里我期望“usergroup”作为输出。 我试过的是

  • getpass:这将给出实际用户,而不是sudo用户

一。在

^{pr2}$
  • 在操作系统.getenv在

一。在

In [4]: os.getenv("SUDO_USER")
Out[4]: 'akshay'

In [5]: os.getenv("USER")
Out[5]: 'akshay'

我正在使用下面的python版本。在

In [7]: sys.version
Out[7]: '2.7.11 (default, Apr 25 2016, 09:27:56) \n[GCC 5.2.1 20150902 (Red Hat 5.2.1-2)]'

In [8]: 

请帮忙。找不到任何现有的问题或解决方案。在


Tags: 用户inpy脚本ossudoscriptout
1条回答
网友
1楼 · 发布于 2024-09-22 18:20:19

您需要使用^{}来获得{a2}(euid,用于大多数访问检查)。在

>>> import os
>>> os.geteuid()
0

然后,将返回值传递给^{},以获取有关返回的uid的信息:

^{pr2}$

访问pwd.getpwuid()pw_name属性(或[0]),以获取有效用户的用户名。在

>>> pwd.getpwuid(os.geteuid()).pw_name
'root'
>>> pwd.getpwuid(os.geteuid())[0]
'root'

要获得有效的组信息,请使用^{}+^{}。在

>>> grp.getgrgid(os.getegid())
grp.struct_group(gr_name='root', gr_passwd='x', gr_gid=0, gr_mem=[])
>>> grp.getgrgid(os.getegid()).gr_name
'root'

相关问题 更多 >