我正在尝试在终端中运行一个进程,但我不相信应用程序那么多 那么有一种方法可以使用所选目录的读取权限来运行该应用程序吗?
我正在使用Mac OS ...
先谢谢...
答案 0 :(得分:2)
正如knittl所说,你可以使用chroot
制作jail
。
对于更复杂的事情,MAC具有MAC,(意味着OS X具有强制访问控制),允许指定哪些进程可以执行哪些操作以及哪些不可执行。这是通过sandbox
机制实现的,这是非常强大和细粒度的。
您需要设置沙箱,所以:
但遗憾的是,这些并不是很有帮助;(
基本上,您需要为沙箱设置配置文件。示例配置文件位于/ usr / share / sandbox /*.
中你能做的最好的事情,google for“os x sandbox”。
正如我上面所说 - 这里没有好的文档,可能是因为它目前尚未进入最后阶段。 :(你可以试验它(特别是在调试模式下)。无论如何,这些链接应该有所帮助:
你的情况很简单(恕我直言),因此足以为你的程序启用exec-process,启用读取和拒绝写入正则表达式“/ *”(无处不在)。也许,拒绝网络。
我不是沙盒专家,所以你必须进行实验 - 但尝试开始使用以下内容:
(version 1)
(debug deny)
(allow default)
(allow process*)
(deny network*)
(allow file-read-data file-read-metadata (regex "^/.*"))
(deny file-write* (regex "^/.*"))
(import "bsd.sb")
所以,允许执行程序,拒绝联网,允许读取和拒绝写入......先测试!