问题标签 [nstask]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 运行 shell 脚本时出现 NoClassDefFoundError
这是错误:
这是 server.sh 文件:
这是 NSTask 代码:
每当我通过 NSTask 运行此脚本并检查错误管道时,就会出现该错误并且仅打印回显。
有任何想法吗?
objective-c - 如何使用 NSTask 授予权限-objective-c
我基本上需要做一个“sudo”,但是,我需要给我的 NSTask 代码这种权限。这可能吗?
谢谢,以利亚
cocoa - 使用 rm 从 Cocoa 应用程序获取管理员权限以删除文件
我正在制作一个删除日志文件的小应用程序。我正在使用一个运行 rm 和 srm(安全 rm)的 NSTask 实例来删除文件。
我希望能够删除以下文件:
- /图书馆/日志
- 〜/图书馆/日志
问题是用户帐户无权访问系统库文件夹中的某些文件,例如 Adobe 日志子文件夹等。例如,只有“系统”用户(组?)对 Adobe 日志文件夹及其内容具有 r/w 权限,而当前用户甚至在该文件夹的“获取信息”窗口中显示的权限中没有条目.
我希望能够做什么:
- 获得管理员权限。
- 将密码存储在钥匙串中,这样应用程序就不必每次都唠叨用户(存储密码是个坏主意吗?有可能吗?)
- 无论文件权限是什么,都可以删除文件。
我使用 NSTask 是因为它提供任务完成通知、从任务本身获取文本输出等。我需要使用其他东西吗?如果是这样,我如何在以管理员权限运行 rm 和 srm 时复制 NSTask 的完成通知和输出文件句柄?
我正在寻找最安全的方式来处理这种情况。即我不希望我的应用程序成为特权升级攻击的门户。
我查看了授权服务编程指南,但不确定哪种情况适合。起初我认为这AuthorizationExecuteWithPrivileges
是一个好主意,但在阅读了有关该主题的更多内容后,出于安全原因,似乎不建议使用此方法。
一个详细的答案将非常受欢迎。我相信你们中的一些人已经不得不做类似的事情并且有一些代码和知识可以分享。
提前致谢!
更新:
我现在可以弹出身份验证对话框并获得权限,如下所示:
从外观上看,“Factored Application”方法似乎最合适。问题是,对我来说,rm 已经看起来像是一个外部帮助工具。我不确定我是否得到了文档中建议的 setuid 替代方法。我可以在 rm 上设置 setuid 位并使用我已经实现的 NSTask 方法运行它吗?这意味着我不需要创建自己的辅助工具。有人可以详细说明这个问题吗?
我还查看了 BetterAuthorizationSample,它被建议作为 setuid 位方法的更安全和最新的替代方案,但发现它对于诸如简单行为之类的非常复杂。有什么提示吗?
提前感谢您的帮助!
objective-c - 带有 bash 脚本问题的 NSTask
例如,我有这个简单的 bash 脚本:
还有这个可可包装:
这是不正确的。问题是testFolder中文件夹名称中的空格。我试图这样设置testFolder
:
NSString *testFolder = [NSString stringWithString:@"/Users/test/Desktop/test\\ 1"]
但这也是输出相同的错误:
cd.sh: line 9: cd: /Users/test/Desktop/test: No such file or directory
没有空格的路径(例如:)@"/Users/test/Desktop/test1"
也可以。
cocoa - 使用 NSTask 启动 SH 文件
这是我的代码:
但是,而不是这个,我需要它来启动一个 SH 文件:/applications/brain/server.sh
我很困惑....
有人可以帮我写代码吗?
谢谢,以利亚
cocoa - 使用 NSTask 和 rsync 捕获所需的凭据
法国开发者的拳头帖子!我正在尝试使用 rsync 和 Objective-c 创建一个简单的同步。所以我像这样使用 NSTask :
在终端中,该命令工作正常,但我要求输入密码。而在 NSTask 我没有这个要求。
所以我的问题是,有一种方法可以捕获所需的凭据,或者是否可以将密码设置为参数或其他内容。
提前谢谢。
BiB1
cocoa - 如何以根用户身份使用 NSTask?
在我正在制作的应用程序中,我需要使用 NSTask 以 root 身份运行以下命令(如果他们真的想要,用户将被提示三次,并且他们将被要求卸载他们的驱动器):
问题是简单地使用 Substitute User Do ( sudo
) 不起作用,因为用户需要输入密码到不可用的标准输入。我宁愿向用户显示您在单击 Preferences.app 中的锁时看到的相同窗口,如下所示(希望使用更短的密码):
(来源:quickpwn.com)
谁能帮我这个?谢谢。
objective-c - 读取 NSTask 的 ASCII 进度条
在一个小应用程序中,我正在运行一个终端命令 drutil erase。我正在使用一个NSTask
. 当您在终端中执行此命令时,它会显示一个不断更新的 ASCII 进度条。但是,我无法在我的输出管道或错误管道中使用我的NSTask
. 有谁知道如何获得 drutil 进程的百分比?
objective-c - NSTask 没有子进程的停靠图标
我正在尝试在 Mac 上创建一个简单的启动器应用程序。
我可以LSUIElement = 1
在父应用程序上进行设置,但是从应用程序启动的子进程在启动时会出现在 Dock 中。
有没有办法可以防止应用程序的图标出现在 Dock 中?这是我目前正在尝试使用的代码。
谢谢!