0
  1. 将进程放入chroot监狱后,它可以访问libc.so监狱外的库。为什么或如何?

  2. 如果我们有一个指向监狱外文件的软链接,我们可以访问主文件吗?

  3. 我们可以chroot在多线程应用程序中使用吗?或者如果我们从一个线程改变根目录,整个进程的根目录会改变?

  4. 我已阅读该chroot功能不提供真正的安全环境,Linux 上是否有任何替代解决方案?

4

1 回答 1

1
  1. 只要它在调用之前打开它chroot,它仍然是打开的,就像它自己的二进制文件一样。但是,chroot这是特权操作,因此调用它的进程可能会更改身份并执行真正的进程,libc.so除非它在 ​​chroot 中可用,否则将无法访问。
  2. 软链接在进程的命名空间中解析,因此它不会解析到chroot.
  3. 我不确定(并且会怀疑它没有)。通常没关系,因为作为特权操作,它是在一个非多线程的简单包装器中完成的,但仅在 chroot 后启动多线程应用程序,关闭所有文件句柄,将当前目录更改为 chroot 并删除特权.
  4. Chroot 不安全。Root 可以轻松逃脱(例如,通过重新安装设备)。有提供安全进程隔离的Linux-VserverlxcOpenVZ 。LXC 使用cgroups Linux 功能(从内核 2.6.29 开始),其他两个似乎需要修补内核。如果您只需要监禁一个应用程序,您也可以自己设置 cgroup。
于 2011-05-03T09:28:33.427 回答