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

ubuntu - Ubuntu - ssh/ftp 用户的 chroot 虚拟系统

我有一个运行 Ubuntu 11.10 的网络服务器,我只存储了我的项目源代码的副本,但现在我正在考虑允许用户通过 SSH 访问系统。我想创建这样一个虚拟机,以保护我的资源免受该用户的侵害。

我正在考虑使用 virtualbox,但这不是最好的解决方案(因为需要大量的 ram),所以我想也许我可以使用 chroot 来做到这一点。

我能怎么做?假设我创建了一个名为“test1”(/home/test1)的系统用户,我该如何阻止他浏览其主目录之外的内容?我将允许 test1 通过 ssh 和 ftp (vsftpd) 访问。

谢谢你。

0 投票
1 回答
442 浏览

c - 我需要一些关于在 C 中实现 chroot 命令的技巧

我的任务是编写一个简单的 shell 以及这三个命令:“nl”、“head”、“chroot”(不带参数)。我已经写了 nl.c 和 head.c,但我不知道从哪里开始 chroot.c。我已经阅读了 chroot 的功能,搜索了一些文档,对于初学者来说,这很复杂。

关于这个问题有什么建议吗?

0 投票
1 回答
4529 浏览

ubuntu - 如何在 ubuntu 的 chroot 环境中运行 wine?

我正在尝试在 Ubuntu 的“伪”监狱中运行 wine。

到目前为止,我已经能够 debootstrap Ubuntu 安装并在其中运行 wine。

问题是包含了很多库。

有没有一种简单的方法来确定 wine 需要哪些库?

我试过 ldd /usr/bin/wine

但这并不能帮助我弄清楚实际需要哪些库。

编辑:我正在从 Xvnc (.vnc/xstartup) 运行葡萄酒:

其中 '/home/chroot' 是 debootstrapped 安装。

有没有更好的办法?

0 投票
3 回答
43701 浏览

linux - Bash:从 chroot 中执行命令并切换用户

我正在编写一个应该这样做的脚本......

我试过这种方法:

这试图执行用户切换和脚本作为 bash 的字符串命令......但是它的作用是在 “su -”之后“停止”并且不执行脚本。但是,一旦我离开“su -”环境,它确实会尝试运行 startup.sh,但它当然找不到它。

基本上我需要将“startup.sh”嵌套在“su -”环境中运行......

0 投票
2 回答
3609 浏览

linux - 是否可以让 chroot 监狱在监狱外共享目录(只读)?

我有多个 chroot 监狱,我希望他们共享一些目录,目前我必须将这些目录复制到我认为不优雅的监狱中。这些目录是只读的,例如“/usr/bin”。

0 投票
1 回答
279 浏览

python - Python (Twisted + ZSI) 中的 Web 服务调用在 chroot 监狱中不起作用

我有一个 Python 脚本,它使用带有 Twisted 的 ZSI 调用 Web 服务。在 Linux 上,我正在运行这个脚本,它运行良好。

现在,我希望这个脚本在我的文件系统某处的 chroot 监狱中运行。我在监狱中添加了 usr、lib 和 etc 目录。当我从监狱执行脚本时,Web 服务没有响应,Twisted 报告如下错误:

[失败实例:回溯(无帧失败):twisted.internet.error.ConnectionLost:与另一端的连接以非干净方式丢失。]

如果我 chroot 到文件系统的根目录 (/) 并且新的 jail 使用已经存在的 usr、lib 和 etc 目录,它可以正常工作。

我怀疑第一个 chroot 监狱的 bin/usr/etc 目录中缺少一个库或一个库不正确。你有什么线索可以帮助我吗?有人有解决这个问题的方法吗?

0 投票
1 回答
2250 浏览

unix - 如何在防删除的 chroot 监狱中创建对 /dev 的引用?

我需要为我的程序创建一个 chroot 监狱。该程序需要 /dev 的内容才能正确执行。我不想在 chroot 监狱中复制 /dev 的内容,因为我想避免在监狱中重复元素。

我找到了 2 个解决这个问题的方法,但没有一个能完全解决我的问题:

  • 挂载/dev:可以,但是如果系统管理员通过“rm -rf”删除chroot jail,他可以删除/dev。这是不好的...
  • /dev: 上的符号链接不起作用,因为指向监狱外部的符号链接不起作用。

您知道避免重复、删除时安全且有效的解决方案吗?

0 投票
3 回答
3513 浏览

python - openssl 在 chroot 中

当我尝试从 chroot 监狱中建立 ssl 连接时,出现以下错误:

我正在使用带有 pyopenssl 的 openssl 0.9.6 来建立 ssl 连接,并且我在 Linux (centos 5.5) 上使用了用于 python 2.4 的扭曲 python 库。

经过一些故障排除后,我发现 openssl 失败是因为它试图读取 /dev/random 文件,而它失败是因为 chroot 中没有 /dev/random。我已经确认,如果我在 chroot 中创建 /dev/random 文件,则连接成功。

  • 我曾考虑在我的 chroot 中安装包含 /dev/random 文件的 devfs 文件系统,但我的应用程序及其系统管理员有一个坏习惯,即在不先卸载所有内容的情况下删除 chroot 的根目录。
  • 我考虑过在执行 chroot 之前从 /dev/random 文件中读取,但我当前的设置是在我的二进制文件启动之前调用 chroot,并且更改 chroot 发生的位置将是应用程序中的一个太大的变化我不确定何时或如何完成。
  • 我曾想过在我的 chroot 监狱之外运行一个程序,它只是从 /dev/random 读取并写入一个名为 /jail/dev/random 的命名文件管道,可以从 chroot 监狱内部访问,但我不喜欢必须运行一个单独的进程只是为了访问随机源。此外,仅初始化 openssl 似乎过于复杂。

如果我无法从我的程序访问 /dev/random,那么初始化 openssl 的正确方法是什么?

0 投票
2 回答
91 浏览

security - 阻止我的程序访问文件系统

我有一个程序可能会受到影响,但最初需要 root 权限。目前,程序chroot进入预配置的目录,然后删除权限。

但是,我想阻止我的程序在删除 root 权限后完全访问文件系统,并且如果可能的话不需要任何配置。有没有比在 /tmp 中创建一个临时目录并 chroot 更好的方法?

0 投票
0 回答
1010 浏览

gcc - 使用 ldd 进行 chroot

我在 sdb 上创建了非常小的 chroot 环境并将其安装在/mnt/sdb. 我还创建了一个/mnt/sdb/bin/cc指向/usr/bin/gcc.

ldd /mnt/sdb/bin/cc回来

所以我通过运行复制了必要的库:

浏览这篇文章,我想既然linux-gate.so.1是内核的一部分,我不需要复制它。

但是,在我跑步chroot /mnt/sdb /bin/sh之后尝试cc我得到

为什么 ldd 不能告诉 cc 需要 libm.so.6?有没有一种简单的方法可以让 cc 在 chrooted 环境中工作而无需简单地复制所有库?我只是想暂时使用 cc 以便我可以用它构建 tcc,然后用 tcc 构建其他所有东西(我也尝试过简单地在外部构建 tcc 然后在 chroot 中使用它,但我担心这可能值得它自己的帖子)。

笔记:

我在 Virtualbox 中使用 Debian,目前在 chroot 环境中运行的唯一程序是单个(静态)busybox 二进制文件。