问题标签 [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 投票
1 回答
2180 浏览

linux - 如何为 Linux 创建交叉编译 sysroot?

--host=x86_64-apple-darwin10我正在尝试使用and构建一个 GCC 交叉编译器--target=ppc64-linux

我的目标需要一个 sysroot。我可以使用的是一个 .iso,它旨在引导和设置该目标。上面有一大堆 rpm。

我想知道 Linux 大师的咒语,它将成功地将正确的 rpm 解压到 OS X 上的一个空目录中,并使其成为 sysroot。

0 投票
3 回答
3079 浏览

c - 如何在 C 编程中使用 chroot 函数?

我知道在linux中使用命令“chroot”需要一些文件或目录,例如usrbin等等。但是当我chroot()在 C 中使用该函数时,我需要这些文件吗?

这是我的代码,其中“hw.out”是一个二进制文件,只打印“Hello, world”。我编译它并以root身份运行它,但它无法打印“Hello,world”。我还应该做什么?谢谢!

0 投票
1 回答
3815 浏览

ssh - 在 chrooted SSH 上连接成功后,用户会立即断开连接

我按照本教程在 SSH 中使用 Chroot 配置了一个监狱。

在 StackOverflow 上发现了另一个处理相同问题的问题,但是答案对我也不起作用。

auth.log文件包含以下内容:

我的sshd_config文件包含以下内容:

我的/home/thenewone目录由root:rootchrooted 系统拥有并包含(所有文件,但/home/thenewone/home/thenewone由 拥有root:root

我不明白为什么连接成功然后关闭。

0 投票
0 回答
822 浏览

ubuntu - 如何调试 ld.so 正在搜索的位置

这是chroot 如何影响动态链接?

我的进程使用 chroot 来监禁自己。但是,我很难让随后加载的库(例如导入 python 扩展模块)正确地动态链接到现在被监禁的进程。部分困难在于对 ld.so 的情况没有太多了解。我不确定它在哪里搜索,也不确定 RPATH 和 LD_LIBRARY_PATH 之类的东西是相对于 chroot 监狱内部还是外部。

有没有办法在“详细”模式下运行 ld.so,它记录正​​在搜索的路径以及在哪里找到请求的库?

0 投票
3 回答
10247 浏览

ruby - 如何退出chroot

我可以用 chrootDir.chroot

但是我怎样才能从 chroot 返回呢?

0 投票
1 回答
1536 浏览

python - Python。取消根目录

我使用以下命令对目录进行了 chroot:

如何在chrooting之前返回到上一个目录?也许可以取消根目录?

解决方案:

感谢菲哈格。我找到了解决方案。简单的例子:

更多信息

0 投票
0 回答
1281 浏览

apache - 用 php5-fpm 解决 chroot 问题

我正在使用 Apache(由于客户的原因,无法切换到 nginx 或 lighttpd),和其他许多人一样,我对以下变量有问题:

由于 chroot,apache 的 mod_fastcgi 传递给 php5-fpm 的变量被搞砸了,因此与正确的不匹配。
让我给你看一个例子:

代替:

所以,这似乎很容易做到,因为我只需要从这些变量中删除“/home/vhosts/hXXXX”。

我曾想过在 php.ini 中使用 auto_prepend_file 指令并添加如下内容:

这将允许设置正确的变量,但是我有两个问题:

  • 我无法添加任何文件,因为 php 根本不起作用(“没有输入文件。”),因为它在错误的目录中查找脚本
  • 在虚拟主机中设置别名似乎不起作用,因为 chroot 环境发生在 /home/vhosts/hXXXX 上,并且各种域 docroot 位于 /home/vhosts/hXXXX/home/domains/domain.tld/;即使使用别名,Apache 仍然会给出错误的路径。

我见过很多人用 nginx 处理它,解决问题(允许编辑 SCRIPT_FILENAME 和 DOCUMENT_ROOT,Apache 不允许),以及其他人解决问题,在 chroot 中符号链接适当的目录树解决问题. 最后一个解决方案真的很糟糕。

另一种方法是使用这个补丁,但即使尝试它,似乎也出了点问题:尝试用apxs2 -cia mod_fastcgi.c编译它,抛出一个关于undefined symbol: fcgi_config_new_static_server的错误,我不知道如何解决这个问题(编译静态?如何用 apxs2 来做?)

关于它的最佳解决方案似乎是手动修补 PHP,但我不确定这是否是最干净的事情......!

0 投票
0 回答
741 浏览

c - chroot和chdir后,对应的execv失败,返回EACCESS给父进程

我正在尝试用 C 沙箱化一个实用程序。我按照以下步骤操作:

  1. file,directory, sharpoint在文件夹下为该实用程序创建沙箱资源/sandbox/myutil
  2. 来自“c”代码,称为chdir("/sandbox/myutil"), chroot("/")
  3. 确保实用程序可执行文件在 下可用/sandbox/myutil/bin/util.bin,并且所有依赖文件在 下可用/sandbox/myutil
  4. 调用实用bin/util.bin程序execve("/bin/util.bin",arg, env);

然而,/bin/util.bin没有按预期执行,进程接收到信号 18 并返回代码 13“EACCESS”。

但是,如果我使用从 shell 执行的命令而不是从 c 代码调用 , 则它可以正常工作chroot()chdir()execve()chroot /sandbox/myutil /bin/util.bin

我正在使用内核 2.6.17。

0 投票
1 回答
1641 浏览

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

我在 chroot 监狱中执行 shell 命令时遇到问题。这是一个例子:

问题是exec:根据errno,错误是“没有这样的文件或目录”。如果我使用 exec("/bin/ls", ...)

我认为“ls”不能使用他需要的共享库,因为 chroot jail。

有什么建议可以解决这个问题吗?

0 投票
2 回答
248 浏览

solaris - 如何在 illumos/solaris 上检测 chroot?

正在运行的 C 程序如何检测它是否在 illumos/solaris 上的“chroot”中运行?

有一个 Debian 实用程序 [1] 在 linux、freebsd、hurd 上使用了一些技巧。

如何在 illumos/solaris 上做到这一点?

[1] http://anonscm.debian.org/gitweb/?p=users/clint/debianutils.git;a=blob;f=ischroot.c;h=bed67f9f655d26906e3d65fd290698dce5402a89;hb=HEAD