什么是正确的方式来chroot的Perl脚本?

我创build/opt/chroot ,在其中创buildbin lib和其他目录,将库,bash和perl二进制文件复制到适当的位置。 另外我把脚本放到/opt/chroot/bin/

现在我可以这样运行脚本:

 #chroot / opt / chroot script.pl

有两件事我是关心的:

  1. 脚本获得根权。
  2. 在chrooted环境里面有一个perl解释器。

我怎样才能避免这些安全漏洞?

Linux 上的 Chroot 不是为了安全,如果你有root权限,或者在chroot中挂载abilites,很容易出问题。

你显然应该使用su或类似的方法来删除root,只要脚本没有权限修改解释器文件就不会有问题。

要做到这一点,你需要在su的副本中添加更多的代码,并且需要PAM的核心位。

像jailkit的东西可能是一个更简单的方法来pipe理这个:

http://olivier.sessink.nl/jailkit/index.html

你为什么不在你的perl脚本里面chroot? 那样你就不需要在你的chroot监狱里面所有额外的东西了。

只需在脚本的某处添加chroot() http://perldoc.perl.org/functions/chroot.html ,然后添加chdir(“/”)。

之后,放弃你的特权,你被设置。