【问题标题】:Python run a script as root and /home folderPython 将脚本作为根目录和 /home 文件夹运行
【发布时间】:2014-06-04 21:12:54
【问题描述】:

我有一个 /home 文件夹作为 root 的问题。这是我的脚本:

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'])

脚本启动了,但是脚本里面的操作不在root下

【问题讨论】:

  • 为什么是 gksudo 而不是 sudo? gksudo 用于图形应用程序。这就是你想要的吗??
  • 是的,它是一个图形应用程序,我在 usr/share/application 中做了一个桌面图标

标签: python unix root


【解决方案1】:

sudo为进程设置多个环境变量;请参阅man sudo 获取列表。在这种情况下,您可以使用SUDO_USER

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

【讨论】:

  • 谢谢,这很好用。我用它来查找用户。之后,我添加“/home/”
  • 不要忘记'~':os.path.expanduser('~'+os.environ["SUDO_USER"])
猜你喜欢
  • 1970-01-01
  • 2019-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-23
  • 1970-01-01
  • 2018-02-24
  • 2021-12-05
相关资源
最近更新 更多