問題タブ [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.

0 投票する
2 に答える
3381 参照

java - シェルスクリプト実行時の NoClassDefFoundError

エラーは次のとおりです。

これは server.sh ファイルです。

NSTask コードは次のとおりです。

NSTask を介してこのスクリプトを実行し、エラー パイプを確認すると、そのエラーが発生し、エコーのみが出力されます。

何か案は?

0 投票する
3 に答える
7475 参照

objective-c - NSTaskを使用して許可を与える方法-objective-c

基本的に「sudo」を実行する必要がありますが、NSTaskコードにそのような許可を与える必要があります。これは可能ですか?

ありがとう、エリヤ

0 投票する
1 に答える
255 参照

objective-c - 実行中のタスクにデータを送信するAMShellWrapper

現在、 AMShellWrapperを、ユーザー入力のあるSHファイルを実行する独自のアプリケーションに変換しています。したがって、実行中のタスクにデータを送信する必要があります。

何か案は?

エリヤ

0 投票する
2 に答える
11073 参照

cocoa - Cocoa アプリから rm を使用してファイルを削除する管理者権限を取得する

ログファイルを削除する小さなアプリを作成しています。rm および srm (セキュア rm) を実行してファイルを削除する NSTask インスタンスを使用しています。

次のファイルを削除できるようにしたい:

  • /ライブラリ/ログ
  • 〜/ライブラリ/ログ

問題は、Adobe ログ サブフォルダーなど、システム ライブラリ フォルダー内の一部のファイルにアクセスする権限がユーザー アカウントにないことです。たとえば、「システム」ユーザー (グループ?) のみが Adob​​e ログフォルダーとその内容に対する読み取り/書き込みアクセス許可を持ち、現在のユーザーはフォルダーの [情報を見る] ウィンドウに表示されるアクセス許可にエントリさえ持っていません。 .

私が正確にできるようにしたいこと:

  1. 管理者権限を取得します。
  2. キーチェーンにパスワードを保存して、アプリが毎回ユーザーをしつこく言わなくて済むようにします (パスワードの保存は悪い考えですか? 可能ですか?)
  3. ファイルのアクセス許可が何であれ、ファイルを削除します。

NSTask を使用しているのは、タスクの完了に関する通知、タスク自体からのテキスト出力の取得などを提供するためです。何か他のものを使用する必要がありますか? もしそうなら、管理者権限で rm と srm を実行しているときに、NSTask の完了通知と出力ファイル ハンドルを複製するにはどうすればよいですか?

状況を処理するための最も安全な方法を探しています。つまり、自分のアプリケーションが権限昇格攻撃の入り口になってほしくありません。

Authorization Services Programming Guide を見ましたが、どのケースが適切かわかりません。最初AuthorizationExecuteWithPrivilegesは良いアイデアだと思いましたが、この件について詳しく読んだ後、この方法はセキュリティ上の理由からお勧めできません。

詳細な回答は大歓迎です。すでに似たようなことをしなければならず、共有するコードと知識を持っている人もいると思います。

前もって感謝します!

アップデート:

次のように、認証ダイアログをポップアップさせて権限を取得できるようになりました。

見た目からして、「Factored Application」の方法が最も適しているように見えます。問題は、私にとって、rm はすでに外部ヘルパー ツールのように見えるということです。ドキュメントで提案されている setuid の代替案が得られるかどうかはわかりません。rm に setuid ビットを設定し、既に実装した NSTask メソッドを使用して実行できますか? これは、独自のヘルパー ツールを作成する必要がないことを意味します。誰かがこの主題について詳しく説明できますか?

また、setuid bit メソッドのより安全で最近の代替案として提案されている BetterAuthorizationSample も調べましたが、単純な動作のために非常に複雑であることがわかりました。ヒントはありますか?

助けてくれてありがとう!

0 投票する
1 に答える
1015 参照

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") も機能します。

0 投票する
2 に答える
696 参照

cocoa - NSTask で SH ファイルを開始する

これが私のコードです:

しかし、これの代わりに、SH ファイルを開始する必要があります: /applications/brain/server.sh

よくわかりません....

誰かが私のコードを手伝ってくれますか?

ありがとう、エリヤ

0 投票する
3 に答える
1175 参照

cocoa - NSTask と rsync で必要な資格情報を取得する

フランスの開発者のための最初の投稿! rsync と Objective-C を使用して簡単な同期を作成しようとしています。だから私はそのようにNSTaskを使用しました:

ターミナルではコマンドは正常に機能しますが、パスワードを要求しています。NSTask では、この要求はありません。

だから私の質問は、必要な資格情報を取得する方法があるか、またはパスワードをパラメーターなどとして設定することは可能かということです。

事前に感謝します。

BiB1

0 投票する
5 に答える
11870 参照

cocoa - NSTaskをrootとして使用するにはどうすればよいですか?

私が作成しているアプリケーションでは、NSTaskを使用してrootとして次のコマンドを実行する必要があります(ユーザーは本当に必要な場合はトライスを求められ、ドライブをアンマウントするように求められます)。

sudo問題は、ユーザーが使用できないstdinにパスワードを入力する必要があるため、Substitute User Do()を使用するだけでは機能しないことです。Preferences.appでロックをクリックしたときに表示されるのと同じウィンドウを、次のようにユーザーに表示したいと思います(できれば短いパスワードを使用して)。

スクリーンショット
(出典:quickpwn.com


誰かがこれを手伝ってくれますか?ありがとう。

0 投票する
1 に答える
558 参照

objective-c - NSTask の ASCII プログレス バーを読み取る

小さなアプリで、端末コマンド drutil erase を実行しています。を使用していNSTaskます。ターミナルでこのコマンドを実行すると、継続的に更新される ASCII プログレス バーが表示されます。ただし、出力パイプまたはエラーパイプで my を使用してこの情報を読み取ることができませんNSTask。drutil のプロセスのパーセンテージを取得する方法を知っている人はいますか?

0 投票する
0 に答える
597 参照

objective-c - 子プロセスのドック アイコンがない NSTask

Mac で簡単なランチャー アプリケーションを作成しようとしています。

親アプリで設定できるLSUIElement = 1のですが、アプリから起動した子プロセスを起動するとDockに表示されます。

アプリケーションのアイコンがドックに表示されないようにする方法はありますか? これは私が現在使用しようとしているコードです。

ありがとう!