Python以root身份运行脚本并访问/home目录
我在使用根用户时遇到了/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"])