与python的Fakechroot

时间:2014-12-18 05:12:20

标签: python chroot

我有一些我希望在chroot中运行的python代码。代码在没有chroot的情况下工作,我不想在chroot中添加任何特殊的外壳来运行它。我可以调用os.chroot(),但我不想仅仅因为这一点功能而以root身份运行我的整个程序(我认为没有办法将chroot称为非root用户)。我也可以将sudo chroot作为子进程调用然后与它进行通信,但是我无法在我的python代码中调用普通函数;我必须让他们与chroot子流程进行通信。

例如,以下是我正在尝试运行的一些代码:

import os
import subprocess

def foo():
    subprocess.call(['pacman', '-Qe']) # Knowledge of pacman shouldn't be necessary

os.chroot('chroot/root')
foo()

此代码需要root。我已经查看了fakerootfakechroot包以实现此目的,但我仍然认为我必须创建一个新的子流程并与之通信,这需要我更改{{1}处理该子进程。我是否可以获得foo的功能但具有fakechroot的功能,即正在运行的python程序 chroot而不是仅仅与它进行通信?

我正在使用Arch Linux和Python 2.7。

0 个答案:

没有答案