如何在CentOS 6上配置chrooted帐户以使用mercurial(python库问题)

时间:2013-05-10 14:42:55

标签: python mercurial centos chroot

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

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

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

但这并不是特定于CentOS的,而且有些布局略有不同。我能够通过在用户的.profile中添加一行来修复python错误,如以下答案所示:Python executable not finding 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来纠正它还是我必须移动文件?

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

1 个答案:

答案 0 :(得分:0)

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

在使用chroot之前复制一下chroot(例如zip或tar),这样你就可以得到一个干净的副本,你可以解压缩并稍后使用。