python取消根目录
我使用以下命令创建目录:python取消根目录,python,directory,chroot,Python,Directory,Chroot,我使用以下命令创建目录: os.chroot("/mydir") 如何在chrooting之前返回到上一个目录? 也许可以取消根目录的锁定 解决方案: 多亏了菲哈格。我找到了解决办法。简单的例子: import os os.mkdir('/tmp/new_dir') dir1 = os.open('.', os.O_RDONLY) dir2 = os.open('/tmp/new_dir', os.O_RDONLY) os.getcwd() # we are i
os.chroot("/mydir")
如何在chrooting之前返回到上一个目录?
也许可以取消根目录的锁定
解决方案:
多亏了菲哈格。我找到了解决办法。简单的例子:
import os
os.mkdir('/tmp/new_dir')
dir1 = os.open('.', os.O_RDONLY)
dir2 = os.open('/tmp/new_dir', os.O_RDONLY)
os.getcwd() # we are in 'tmp'
os.chroot('/tmp/new_dir') # chrooting 'new_dir' directory
os.fchdir(dir2)
os.getcwd() # we are in chrooted directory, but path is '/'. It's OK.
os.fchdir(dir1)
os.getcwd() # we came back to not chrooted 'tmp' directory
os.close(dir1)
os.close(dir2)
如果您尚未更改当前的工作目录,只需调用
os.chroot('../..') # Add '../' as needed
当然,这需要CAP\u SYS\u CHROOT
功能(通常只提供给root)
如果您已经更改了工作目录,则可以更改,但更难的是:
os.mkdir('tmp')
os.chroot('tmp')
os.chdir('../../') # Add '../' as needed
os.chroot('.')
如果chroot
更改了当前的工作目录,您可以通过打开目录并使用返回来绕过此问题
当然,如果您打算在正常程序过程中退出chroot(即,不是演示或安全漏洞攻击),您应该重新考虑您的程序。首先,你真的需要逃离chroot吗?为什么你不能事先把需要的信息复制到里面
也可以考虑使用第二个过程,该过程位于色度之外,并回答着色的请求。