0

我正在尝试从我们的网络发布程序中消除 FTP,并在我们的服务器上安装了 Mercurial。一段时间以来,我一直在向服务器上的各种用户帐户推送实时存储库,但我也想将单个服务器用户帐户锁定到 chrooted 环境。

问题是,当我使用 chroot 锁定帐户时,该帐户不再有权访问 hg 二进制文件并且无法执行更新。

通过参考这篇文章,我已经将 hg 二进制文件和各种 python 文件复制到了 chroot 中的目录:https ://www.mercurial-scm.org/wiki/OpenBsdWebDirSetup

但这并不是 CentOS 特有的,而且有些布局有些不同。我可以通过在用户的 .profile 中添加一行来修复 python 错误,如以下答案所示:Python executable not find libpython shared library

现在至少我得到了 hg 的回复,但那个回复是这样的:

Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
'import site' failed; use -v for traceback
Traceback (most recent call last):
  File "/bin/hg", line 10, in <module>
    import os
ImportError: No module named os

如果库位于错误的位置,我可以在 .profile 中放入任何内容来更正它还是必须移动文件?

当我将帐户切换为 chrooted 状态时,我在 /lib 和 /lib64 中获得的所有文件都是由 Plesk 创建的,但我检查了上述教程中的所有文件都存在并且与我的 ldd 输出相匹配。

4

1 回答 1

0

这是从 yum http://geek.co.il/2010/03/14/how-to-build-a-chroot-jail-environment-for-centos构建 chroot 的教程。安装你需要的一切,包括使用 yum 将新的 python 安装到 chroot 中,移动 chroot,然后使用 easy_install/pip/distribute 来拉入额外的 python 模块。它比试图猜测哪些文件应该复制到哪里要容易得多。

在使用之前制作 chroot 的副本(例如 zip 或 tar),以便您始终拥有一个干净的副本,您可以在以后解压缩并使用它。

于 2013-05-10T15:50:02.777 回答