我正在尝试从我们的网络发布例程中消除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的输出匹配。
答案 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),这样你就可以得到一个干净的副本,你可以解压缩并稍后使用。