问题标签 [chroot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2493 浏览

linux - chroot 进入其他 Arch 的环境

遵循从零开始的 Linux一书,我设法在 ARM 上为 ARM 构建了一个工具链。直到本书的第 6 章,在 ARM 板本身上,我可以毫无问题地继续下去。我的问题是我是否可以使用准备好的环境在我的 x86_64 Fedora 16 笔记本电脑上继续构建第 6 章中的软件?我认为虽然我已经设置了所有二进制文件,但我可以将它们复制到笔记本电脑,在里面 chroot 并感觉自己在 ARM 板上,但是使用书中的命令没有结果:

二进制文件在那里,但它不属于这个系统:

二进制文件是按照本书编译的: # readelf -l /tools/bin/env | grep interpreter [Requesting program interpreter: /tools/lib/ld-linux.so.3]

所以我想知道是否有一种方法,比如为 CC LD READELF 使用适当的环境变量,在 x86_64 主机上使用这些工具继续为 ARM 构建。

谢谢你。

0 投票
1 回答
640 浏览

c - 如何在 chroot 监狱中执行 linux 命令

我需要编写一个被监禁的命令执行器,它需要执行 linux 命令,我尝试将 /bin 复制到我的新根目录,但 system()(例如 system("ls"))仍然不起作用。我已经阅读了有关复制库的信息,但是还有其他方法可以执行不涉及复制内容的 linux 命令吗?

此外(也许更重要),有一种方法可以让非 root 的被监禁进程执行 linux 命令?

谢谢,任何帮助表示赞赏

0 投票
1 回答
242 浏览

bash - Bash 脚本;给程序标准输入命令

我对 bash 脚本非常陌生。我有以下脚本:

我实际上希望最后 2 个命令在 chroot 环境中运行,但我不知道如何给它,我搜索但找不到。我还希望 chroot 在执行命令后退出,但它目前挂起。我能做些什么来防止这种情况发生?

编辑:对于未来的访客:

0 投票
2 回答
6863 浏览

python - Python:使用 chroot 和 chjail 保护不受信任的脚本/子进程?

我正在编写一个基于 Python 的 Web 服务器,它应该能够执行“插件”,以便轻松扩展功能。

为此,我考虑了在其中拥有多个文件夹(每个插件一个)和多个 shell/python 脚本的方法,这些脚本以可能发生的不同事件的预定义名称命名。

一个例子是on_pdf_uploaded.py当一个 PDF 上传到服务器时执行一个文件。为此,我将使用 Python 的子流程工具。

为了方便和安全,这将允许我使用 Unix 环境变量来提供更多信息并设置进程的工作目录 (cwd),以便它可以访问正确的文件而无需找到它们的位置。

由于插件代码来自不受信任的来源,我想让它尽可能安全。我的想法是在子进程中执行代码,但将其放入具有不同用户的 chroot 监狱,这样它就无法访问服务器上的任何其他资源。

不幸的是,我对此一无所知,而且我不想依靠不受信任的脚本将自己关进监狱。

此外,我也不能将主/调用进程放入 chroot 监狱,因为插件代码可能在服务器响应其他请求时同时在多个进程中执行。

那么问题来了:如何在 chroot 监狱中以最低权限执行子进程/脚本,以保护服务器的其余部分不被错误的、不受信任的代码损坏?

谢谢!

0 投票
2 回答
2481 浏览

python - 在 chroot 中运行时出现 Python 错误

我尝试在 chroot 中运行一些 Python 程序,但出现以下错误

我使用 ldd 来查找 python 运行时所依赖的库,并将其复制到监狱内部。你能帮我解决这个问题吗?

谢谢

0 投票
1 回答
2622 浏览

node.js - Node.js 和 chrooting 当前进程

我只需要从 chroot 下的 node.js 脚本运行一部分代码。我已经设置了 chroot 并且正在使用 daemon.chroot。chrooting 效果很好,但我需要能够取消root 进程并在其他地方重新chroot。我现在明白了(在以前的语言中,我会分叉该进程,并让子进程在 chroot 中运行)Node.js chroot 整个运行过程,因此后续尝试 chroot 不同环境会使 Node 抱怨 chroot 不存在,并且它不存在于前一个 chroot 中。

使用 Node 实现 chroot 然后“取消root”一部分代码或进程的这种能力的最佳方法是什么?

0 投票
2 回答
1905 浏览

ubuntu - php-fpm 在 ubuntu 上正常运行需要哪些系统文件在被监禁的环境中?

我在 ubuntu 12.04 上使用 php5-fpm,并为使用 nginx 托管的每个域都有单独的池和 chroot 位置。但是,我知道有些系统文件需要直接在监狱里,但是我需要哪些呢?

我知道 dns 解析目前不起作用,我读过一些文章说我需要将一些系统核心文件复制到目录中,但他们从未真正详细说明我实际需要复制到哪些文件那里。

我知道 dns、时区有一些东西(php 似乎对于任何时间/日期相关的函数都会出错)。

我只是想知道一般 chroot 的使用。是否值得使用它,或者为每个域设置一个单独的分区会更安全,或者甚至为每个域设置一个单独的虚拟机(这会花费更多资源)?

0 投票
1 回答
614 浏览

c++ - clock_gettime 在使用 CLOCK_PROCESS_CPUTIME_ID 的 chrooted Debian 蚀刻中失败

我已经在 Ubuntu 12.04(64 位)下设置了一个 chrooted Debian Etch(32 位),并且似乎 clock_gettime() 与 CLOCK_MONOTONIC 一起工作,但在 CLOCK_PROCESS_CPUTIME_ID 和 CLOCK_THREAD_CPUTIME_ID 上都失败了。errno 设置为 EINVAL,根据手册页,这意味着“此系统不支持指定的 clk_id”。

所有三个时钟在 chrooted Debian 之外和 64 位 chrooted Debian etch 中都可以正常工作。

有人可以向我解释为什么会这样以及如何解决吗?

非常感激。

0 投票
1 回答
796 浏览

android - vsftpd 在 android 上的 chrooted ubuntu 环境中

我在我的 Android GalaxyTab 和 myTouch 4G 手机上运行 chrooted ubuntu 12 发行版。我正在运行 LAMP 堆栈,一切都非常顺利,但我无法让这个简单的 vsftpd 在任一设备上工作。

我在 /etc/vsftpd.conf 中更改的唯一两行:

从客户端我可以使用我的用户/密码进行 ftp 和登录,但它不允许我使用“ls”或“get”或“put”,这些命令中的任何一个都将导致以下错误:

但是,我可以执行“mkdir”和“rmdir”,但除此之外它不允许我操作任何文件。关于为什么的任何想法?

谢谢您的帮助!

0 投票
1 回答
378 浏览

git - git log 命令在 chroot 中不打印任何内容

我使用脚本 make_chroot_jail.sh 制作了 chroot 监狱,然后通过复制 /usr/bin/git*、这些二进制文件需要的所有库和 /usr/share/git-core 添加了 git,现在我可以初始化、克隆提交、推送等在监狱里,但是当我输入 git log 时它什么也没打印(有人可以帮我或说在哪里寻找吗?