如何授予Mac应用程序读取整个文件系统的权限


13

我从Mac应用商店购买了名为Xee的应用。它可以很好地打开文件,但是当我尝试从Xee应用程序中浏览文件夹时,它必须请求权限。(请参见下面的屏幕截图。)我第一次浏览每个文件夹时都必须这样做。

我认为这是应用商店施加的限制。是否有任何方法可以绕过此过程并授予应用程序(安装在我的计算机上)查看任何目录的权限,甚至可以执行任何所需的操作?

屏幕截图


1
这称为-安全性。而且,您很可能不希望应用程序具有对系统上任何文件夹的完全访问权限。
罗布

这仅发生在用户文件夹外部的文件/文件夹还是内部文件?
nohillside

@patrix它发生在我的用户文件夹中。
Brian Gordon

Answers:


3

有点棘手,但是您可以通过使用十六进制编辑器更改<key>com.apple.security.app-sandbox</key>值(设置为< true/>)来删除沙箱。

在macOS Sierra 10.12中将其设置为< false/>
在macOS El Capitain 10.11或更早版本中将其设置为< fals/>

对于Xee,您需要编辑以下二进制文件:

  • /Applications/Xee³.app/Contents/MacOS/Xee³
  • /Applications/Xee³.app/Contents/Loader/Xee3.ImageLoader

资料来源:https : //stackoverflow.com/questions/7018354/remove-sandboxing


谢谢!有用。chmod a+x如果您使用十六进制编辑器来创建新文件,请不要忘记这些文件。
Brian Gordon

另外,hexed.it太棒了。
Brian Gordon

1
这并不是前进的解决方案。随着时间的流逝,应用程序沙箱变得越来越必要,因此与之对抗比对付它更好
Ben Leggiero

考虑向Apple提供有关此限制以及它如何限制您的工作流程的反馈。客户的反馈将帮助塑造Mac App Store应用程序将来可以做什么和不能做什么。目前,通过Apple Mac App Store购买的应用程序数量有限。
Bob Fanger

19

该应用已沙箱化。这意味着已使用一组权利对应用程序进行了代码签名。这些权利由Mac OS X强制执行。Apple的沙盒开发人员文档提供了更多详细信息。

您可以使用以下Terminal.app命令查看Xee的沙盒权利:

codesign --display --entitlements - /Applications/Xee.app

Ole Begemann的文章“ 检查Code中的代码签名和沙箱状态”进一步说明了这一点。

辞职或剥夺权利

要删除权利,您需要重新编码没有权利的应用程序签名 -使用codesign-或从应用程序中完全剥离代码签名。

询问Xee的开发人员

不建议修改Mac应用程序。向Xee的开发人员寻求有关如何解决此问题的帮助;只有他们具备解决此问题的适当知识。

Xee的开发人员似乎确实知道此问题:

(请注意,App Store版本是沙盒,非App Store试用版和完整版没有沙盒。如果您更喜欢OS X沙盒的安全性,则应该获取App Store版本。但是,沙盒版本需要要求您进行某些操作的许可,如果您感到烦恼,则应获取非App Store版本。)

告诉苹果

考虑向Apple提供有关此限制以及它如何限制您的工作流程的反馈。客户的反馈将帮助塑造Mac App Store应用程序将来可以做什么和不能做什么。目前,通过Apple Mac App Store购买的应用程序数量有限。


2
关于沙盒的出色答案-做得很好,以可读的方式涵盖了一个复杂的主题。
bmike

-4

尝试将应用程序内容复制到硬盘驱动器,然后从那里打开。也许该应用正在保护自己的文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.