繁体   English   中英

Mac应用程序沙箱和forkpty()

[英]Mac app sandboxing and forkpty()

我希望对应用进行沙箱处理,以符合Mac App Store 3月1日的沙箱要求。 我的应用程序包含一个内置的终端仿真器,该仿真器使用forkpty()调用在伪tty环境中启动进程。 不幸的是,尽管fork()调用工作得很好,但此调用在沙箱下失败,并显示错误“不允许操作”。 大概forkpty()调用需要对/ dev /目录的读/写访问权限才能创建伪tty(根据手册页)。 我尝试添加具有对/的读/写访问权限的临时沙盒授权(com.apple.security.temporary-exception.files.absolute-path.read-write),现在我确实可以在文件系统,但是forkpty()调用仍然失败,并显示相同的错误。 有谁知道我如何让forkpty()在沙盒下工作?

我的应用程序是带有内置终端仿真器和文件浏览器的编程文本编辑器,因此从本质上讲,它需要访问整个文件系统。 除了forkpty()问题,这种临时权利似乎forkpty()我的需求。 但是,Apple是否会接受具有如此宽松的临时例外权利的应用程序?

在此先感谢大家。 我真的希望我可以启动并运行此沙箱,因此我将继续通过App Store分发我的应用程序。

在沙盒应用程序中不可能实现有用的终端模拟器-即使在为PTY设备添加了权利之后,shell最终仍与该应用程序位于同一沙盒中,从而阻止了它的大量工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM