【问题标题】:Access virtualbox VMs as root以 root 身份访问 virtualbox 虚拟机
【发布时间】:2020-08-11 06:43:12
【问题描述】:

我以普通用户的身份创建了虚拟机。我可以通过 GUI 和 python 绑定(pyvbox)访问它们。我有一个 python 脚本,我需要以 root 身份运行才能访问其他资源。我无法通过 GUI 访问任何虚拟机,也无法以 root 身份访问 python 绑定。如何从我的脚本中访问它们?

每当我需要访问 vbox 时,是否应该从以 root 身份运行的脚本中删除权限?然后在我需要访问其他资源时返回 root 用户?你会怎么做?这是个好主意吗?

【问题讨论】:

    标签: python python-3.x virtualbox privileges


    【解决方案1】:

    我找到了一个解决方案,该解决方案需要您要监控 VM 的用户名:

    import os, pwd, virtualbox
    
    vbox_user="my_user"
    pw=pwd.getpwnam(vbox_user)
    root_uid=os.getuid()
    
    # change location of vbox settings file
    os.environ["XDG_CONFIG_HOME"]="/home/{}/.config".format(vbox_user)
    
    # change uid to user's
    # setting euid alone does not work
    os.setresuid(pw.pw_uid, pw.pw_uid, uid)
    
    # create your vbox 
    vbox=virtualbox.VirtualBox()
    
    # change back to initial uid
    os.setresuid(uid, uid, uid)
    
    

    您可以像使用 vbox_user 一样使用 vbox。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-23
      • 1970-01-01
      • 2016-07-03
      • 2016-09-14
      • 1970-01-01
      • 1970-01-01
      • 2012-05-03
      相关资源
      最近更新 更多