强制在当前目录中使用dylib(文件系统监狱)

时间:2018-06-14 15:38:46

标签: macos linker filesystems dylib chroot

我正在使用macOS上的FastCGI,长话短说,我的应用程序应该在chroot(2) /var/www cc -c -o fastcgi-minimal.o main.c cc -o fastcgi-minimal fastcgi-minimal.o -lkcgi -lz 内创建。

通常我们会使用静态链接来实现这一点,但在macOS上是file-system jail。然后我想,也许我们可以将所有文件复制到文件系统jail中,让我的应用程序就地加载它们。

以下是我构建应用程序的方式(动态链接版本):

sudo cp /usr/lib/libz.1.dylib .
sudo cp /usr/local/lib/libkcgi.a .
cc fastcgi-minimal.o -L. -lkcgi -lz -o fastcgi-minimal
sudo install -m 0555 fastcgi-minimal /var/www
sudo install -m 0555 libz.1.dylib /var/www
sudo install -m 0555 libkcgi.a /var/www
sudo kfcgi -d -U `whoami` -u `whoami` -- fastcgi-minimal

我尝试了以下

sudo kfcgi -d -p / -U `whoami` -u `whoami` -- /var/www/fastcgi-minimal

但这不起作用:

  

Jun 14 15:24:23 kfcgi [2411]:工人意外退出

另一方面,这很好用,表明错误是由文件系统监狱引起的,而不是其他问题:

/usr/lib

另外,将/usr/local/lib/var/www/usr/lib中的所有内容分别复制到/var/www/usr/local/libAnyAction是不是一个好主意?他们似乎......太棒了!

0 个答案:

没有答案