首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >巨蟒。恒色目录

巨蟒。恒色目录
EN

Stack Overflow用户
提问于 2012-04-05 17:20:43
回答 1查看 1.6K关注 0票数 2

我使用以下命令显示目录:

代码语言:javascript
复制
os.chroot("/mydir")

如何返回到以前的目录前着色?也许这是可能的退色目录?

解决方案:

多亏了菲哈格。我找到了解决办法。简单的例子:

代码语言:javascript
复制
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)

更多信息

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-05 17:23:41

如果您没有更改当前的工作目录,只需调用

代码语言:javascript
复制
os.chroot('../..') # Add '../' as needed

当然,这需要CAP_SYS_CHROOT功能(通常只提供给root用户)。

如果您已经更改了工作目录,则可以使用仍逃,但更难的是:

代码语言:javascript
复制
os.mkdir('tmp')
os.chroot('tmp')
os.chdir('../../') # Add '../' as needed
os.chroot('.')

如果chroot更改了当前的工作目录,您可以打开该目录并使用fchdir返回。

当然,如果您打算在正常程序的过程中退出chroot (即不是演示或安全漏洞),那么您应该重新考虑您的程序。首先,你真的需要逃离色度吗?为什么你不能事先把需要的信息复制到里面呢?

另外,考虑使用保留在chroot之外的第二个进程,并回答被着色的进程的请求。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10033071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档