【问题标题】:How do I configure chrooted account on CentOS 6 to use mercurial (python library issue)如何在 CentOS 6 上配置 chrooted 帐户以使用 mercurial(python 库问题)
【发布时间】:2013-05-10 14:42:55
【问题描述】:

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

问题是,当我使用 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 中放入任何内容来更正它还是必须移动文件?

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

【问题讨论】:

    标签: python mercurial centos chroot


    【解决方案1】:

    这是一个从 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),以便您始终拥有一个干净的副本,您可以在以后解压缩并使用它。

    【讨论】:

    • 谢谢,我会在周末仔细研究一下。但是现在我似乎已经通过将 lib64 目录从 root/usr/ 复制到 chroot/usr 并在 chroot/usr 中更改所有文件来解决我的问题,我没有意识到在根目录下还有另一个 lib64 目录等级。我不确定这是否解决了所有问题,因为我没有正确使用 mercurial,现在它在 chroot 帐户下工作。现在我需要记住我所做的并将其添加到 chroot 骨架中,这样我就不必再这样做了!
    • 遗憾的是,截至 2015 年 2 月,上面的 URL 似乎已损坏,但我在 zhaoqiang.blog.com/2011/11/15/… 找到了一个可能的副本
    猜你喜欢
    • 2013-06-21
    • 2014-03-12
    • 2019-12-12
    • 2012-07-18
    • 2013-04-16
    • 2015-09-24
    • 1970-01-01
    • 2012-05-31
    • 2019-06-09
    相关资源
    最近更新 更多