好的,情况有点难以解释。 我有一个用户在SSH chroot监狱。 我复制了一些二进制文件和所有必需的库,它可以工作。 但是,当我尝试在python(或C中的系统)中使用os.system或subprocess.call时,它拒绝工作。 (绝对和相对路径)。
例如:
>> import os
>>使用os.system( '的/ usr / bin中/ LS')
32515#表示无法找到文件
>> os.listdir()#确保我在监狱里
['etc','usr','lib64','home','dev','lib','bin'] #jail根目录的预期输出
>> os.listdir( '的/ usr / bin中')
['id','cat','scp','less','ls','whoami','vim','nohup','python','bash']#清楚ls在这里< / p>
在python之外(并且在jail中)ls命令工作得很好。
如果有人对正在发生的事情有任何见解,我将不胜感激。
编辑:
评论中的好人注意到使用没有shell = True的子进程工作。我想解释一下为什么会起作用,也许是c / c ++的替代品。非常感谢你!