首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中调用chroot

在PHP中调用chroot
EN

Stack Overflow用户
提问于 2011-06-27 03:23:31
回答 3查看 1.7K关注 0票数 1

出于安全原因,一些应用程序被隔离在chroot环境中。我需要通过PHP脚本调用此应用程序。大概是这样的:

代码语言:javascript
复制
exec('chroot /path/to/chroot command')

我需要成为使用chrootroot。在PHP手册中有一个chroot(),但是这个函数也需要root权限。

那么,如何在chroot中使用PHP ed命令呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-27 03:27:49

chroot只能由特权用户调用。否则,普通用户可能会欺骗passwdsudo等setuid应用程序访问意外位置的文件。

因此,如果您的php应用程序不是以根用户身份运行的,那么您可以做的一件事就是设置一个setuid包装器脚本并从php调用它。它应该在调用chroot之后立即删除权限,因为根用户可以trivially break out of chroots

或者,您可以配置sudo以允许php用户执行chroot /path/to/chroot command并将sudo附加到php中的exec调用。

票数 2
EN

Stack Overflow用户

发布于 2013-01-15 06:13:01

您可以使用Linux功能。请参阅man capabilities上的CAP_SYS_CHROOT功能。

警告!通过使用sudo,在chrooting之后您就是root用户了!

票数 2
EN

Stack Overflow用户

发布于 2011-06-27 03:30:24

这里的技巧是使用sudo和sudoers文件,请参阅sudo manpage

基本上,您要做的就是让您的PHP用户访问chroot命令的sudo实用程序,您的代码将如下所示:

代码语言:javascript
复制
exec('sudo chroot /path/to/chroot command')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6486163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档