本帖子属于以下条目()
[macos权限]允许 App 控制 Mac 上的其他 App
clq
浏览(299) -
2024-01-29 21:42:04 发表
编辑
关键字:
[2024-01-30 11:57:49 最后更新]
[macos权限]允许 App 控制 Mac 上的其他 App https://support.apple.com/zh-cn/guide/mac-help/mchl07817563/12.0/mac/12.0 -------------------------------------------------------- 允许 App 控制 Mac 上的其他 App 部分 App 可以控制 Mac 上的其他 App 并且在不需要您打开第二个 App 的情况下使用第二个 App 的功能。 在 Mac 上,选取苹果菜单 >“系统偏好设置”,点按“安全性与隐私” ,然后点按“隐私”。 选择“自动化”。 选择 App 旁边的复选框以允许其访问和控制其他 App。 取消选择此复选框以关闭该 App 的访问权限。 如果您允许第三方 App 或网站控制其他 App,它们所收集的任何信息将受其条款和隐私政策的约束。建议您了解他们的隐私政策。 如果您是系统管理员并想要了解关于部署安全性设置的信息,请参阅《Apple 平台部署》。 另请参阅 在 Mac 上更改“隐私”偏好设置 Apple 支持文章:报告安全性或隐私漏洞 -------------------------------------------------------- https://support.apple.com/zh-cn/guide/mac-help/mchlp1038/14.0/mac/14.0 -------------------------------------------------------- 如果需要权限才能打开 Mac 上的项目 如果你没有打开文件或文件夹的权限,你也许能够更改权限设置。 在 Mac 上,选择项目,然后选取“文件”>“显示简介”,或按下 Command-I。 点按“共享与权限”旁边的箭头 来展开下面的部分。 点按你的用户名称旁边的弹出式菜单,以查看权限设置。 如果你未以管理员身份登录,你可能需要点按锁图标 以进行解锁,然后输入管理员名称和密码(或者使用触控 ID 或 Apple Watch)。 将权限更改为“读与写”或“只读”。 如果你不能更改权限,请联系 Mac 的管理员,或文件或文件夹的所有者。 另请参阅 在 Mac 上更改文件、文件夹或磁盘的权限 如果无权使用 Mac 磁盘上的文件
clq
2024-01-30 11:57:49 发表
编辑
MacOS App代码申请管理员权限 原文: https://jacobpan3g.github.io/cn/2018/02/07/gain-root-permission-for-mac-app/,有问题欢迎在原文评论区一起讨论交流,我会及时回复。 在MacOS App开发中,有一些操作需要管理员权限,需要弹出认证对话框让用户输入账号和密码,这个过程就是MacOS App提权的过程,主要有下面几种方式: 1. AuthorizationExecuteWithPrivileges() 使用这个接口最有代表的库是STPrivilegedTask,这是一个封装得很好得App提权库,接口与NSTask十分像,使用起来十分方便。 可惜得是AuthorizationExecuteWithPrivileges()接口在MacOS 10.7开始deprecated,据说在10.12的版本该接口就关闭了。 因此,若要兼容10.12以后的MacOS版本,就不得不放弃使用STPrivilegedTask库了。 2. 使用ServiceManagement.framework注册LaunchdDaemon 这是Apple官方目前推荐的提权方式,官方有一个SMJobBless的Demo,是用来有点复杂,具体请见另一篇文档"SMJobBless官方Demo笔记" 该方法有一个几个小缺点: 弹出认证对话框的提示内容是"需要Install Helper",而且每次打开都是这样的提示,对于小白用户来说,会不会误导用户App老是在安装什么东西? LaunchdDaemon及其配置文件是需要安装到/Library下的,当用户把App卸载后会不会存在"残留问题"? 3. 使用AppleScript do shell script "..." with administrator privileges 省略号部分填入shell脚本,任何可执行文件都需要写全路径,如/bin/ls。 以上是AppleScript脚本,通过这种方式提权有以下有点: 比上述"注册LaunchdDaemon"方法实现起来简单很多 同时也不用担心卸载残留的问题,因为全部东西都在.app里 AppleScript脚本在objective-c中有两种执行方式: 通过NSTask执行"/usr/bin/osascript -e "do shell ..."" 通过NSAppleScript执行 方法1有两个缺点: do shell script会在所有shell执行完成后再把所有stdout返回,因此当启动的是Daemon进程,就算使用NSTask的fileHandle Notification,也无法把stdout分次读取出来。 这种方法的认证窗口提示信息是"osascript wants to make changes.",对于小白用户来说会不会有一种这样的感觉"我明明安装的是XXX.app,怎么来了一个osascript让我输入账号密码?会不会是恶意程序?" 而使用NSAppleScript方法时,认证窗口的提示信息是"APP_NAME wants to make changes.",感觉这样的提示更加友好。但也有一些缺点: NSAppleScript执行Daemon进程的话会直到Daemon退出才退出,即会一直占用线程。 解法:建议在子线程使用NSAppleScript,以免UI无法响应 也存在stdout只能等待Daemon退出才全部打印的问题 Jacob Pan ( jacobpan3g.github.io/cn ) https://www.cnblogs.com/jacobpan/p/8515737.html
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.