Python以root身份运行脚本并访问/home目录

1 投票
1 回答
598 浏览
提问于 2025-04-18 03:31

我在使用根用户时遇到了/home文件夹的问题。这里是我的脚本:

home = os.path.expanduser("~")
print home             # home is good: /home/guillaume

# gksudo
euid = os.geteuid()
if euid != 0:
    print "Running sudo.."
    args = ['gksudo', sys.executable] + sys.argv + [os.environ]
    os.execlpe('gksudo', *args)
print home            # home has changed: /root

在运行了gksudo之后,我该如何正确获取/home文件夹呢?谢谢!

补充:我试过了

subprocess.call(['gksudo', 'script.py'])

脚本是启动了,但脚本里面的操作并没有以根用户的身份执行。

1 个回答

3

sudo 是一个命令,它会为运行的程序设置一些环境变量。你可以通过输入 man sudo 来查看这些变量的详细列表。在这个情况下,你可以使用 SUDO_USER 这个变量:

# from under sudo
home = os.path.expanduser(os.environ["SUDO_USER"])

撰写回答