Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Can";rm-rf“;是否在docker容器上删除主机上的文件?_Python_Docker_File - Fatal编程技术网

Python Can";rm-rf“;是否在docker容器上删除主机上的文件?

Python Can";rm-rf“;是否在docker容器上删除主机上的文件?,python,docker,file,Python,Docker,File,我有一个docker映像,它由一个python脚本组成,该脚本包含一些任意源代码和eval() 假设代码是rm-rf。这会删除主机文件系统上的任何内容吗 我想答案是“不”,但我只是想在尝试之前确认一下 因此,一方面,Docker的文件系统隔离意味着默认情况下像rm-rf这样的命令只能破坏容器的文件系统 人们经常做的各种各样的事情削弱了这一点。您是否将主机的源代码绑定到容器中以简化开发?恶意代码可能会损坏您的开发树,或者偷偷地将提交内容滑入.git目录。绑定将Docker套接字安装到容器中,以便可

我有一个docker映像,它由一个python脚本组成,该脚本包含一些任意源代码和
eval()

假设代码是
rm-rf
。这会删除主机文件系统上的任何内容吗


我想答案是“不”,但我只是想在尝试之前确认一下

因此,一方面,Docker的文件系统隔离意味着默认情况下像
rm-rf
这样的命令只能破坏容器的文件系统

人们经常做的各种各样的事情削弱了这一点。您是否将主机的源代码绑定到容器中以简化开发?恶意代码可能会损坏您的开发树,或者偷偷地将提交内容滑入
.git
目录。绑定将Docker套接字安装到容器中,以便可以启动其他容器?利用这一点来建立整个主机的根目录是很简单的

这也是
eval()
可能实现的一小部分。Linux内核漏洞攻击经常发生,由于Docker容器共享主机内核,
eval()
ed code可以利用这一点。还有一些东西,比如加密货币矿工本身并不危险,但你仍然不想为其他人管理他们


就你狭隘的问题而言,Docker可以保护你免受恶意代码破坏主机文件系统,但是恶意代码仍然可以做很多其他事情,我不会尝试使用Docker容器作为真正不受信任代码的沙箱。

只有当你与主机操作系统共享你在其中运行的目录时?Mike我在Docker文件中有
WORKDIR/usr/src/app
,但我在文件系统中没有看到这一点。这取决于你是否有
s已定义。当然可以设置Docker来访问主机文件系统,但这需要经过深思熟虑。这是否意味着Docker是一个足够安全的执行环境,可以运行任意的、故意恶意的代码?绝对不是——但大多数时候,恶意代码需要做一些更复杂的事情来打破沙箱,然后才能开始与主机发生冲突;它不是关于编写软件,这是堆栈溢出的唯一作用域。安全有单独的站点;系统管理有单独的站点;通用UNIX工具和语义问题属于。堆栈溢出只针对编写代码过程中实际遇到的特定、狭义的问题……不过,回到问题的主题——需要记住的是,所有Docker容器都共享主机的内核。因此,内核中的特权升级或命名空间转义错误是公平的游戏;与适当的虚拟机不同,虚拟机有一个独立于主机的内核。(即便如此,在适当的虚拟机中,仿真堆栈仍不时存在漏洞——但通常来说,利用这些漏洞要比利用内核漏洞做更多的工作——已知的漏洞尚未修补)。