3

sudo を使用してコマンドを実行する必要があり、ユーザーが資格情報を入力するためのダイアログ ウィンドウを表示したいと考えています。Applescript を使用してプロンプトをカスタマイズしようとする試みは非常に困難であり、組み込みの「管理者権限でシェル スクリプトを実行する」を使用してもウィンドウをカスタマイズできないため、ユーザーは要求がどこから来ているかを知ることができます。

確かに、ウィンドウを表示し、ユーザーに資格情報を入力させ、値を sudo に送り返してコマンドを実行させる方法はありますか? cocoasudoは有望に見えますが、プロンプト ウィンドウに "cocoasudo" と書かれており、これをアプリケーションの名前に置き換える必要があります。この種の機能を実装するための解決策を見つけた人はいますか?

4

3 に答える 3

5

カスタム ウィンドウの構築は、基本的な AppleScript の範囲を超えています。これが必要な場合は、プログラミング スキルを拡張する必要があります。ウィンドウなどを作成するために Apple が提供するツールを活用する方法を学ぶ必要があります。要するに、AppleScriptObjC または Objective-C/Cocoa API と、それらを Xcode で使用する方法を学ぶ必要があるということです。

そうは言っても、新しいことを学びたくない場合は、持っているツールを使用してください。このようなものが機能します。アイコン、ボタン、テキストなどをカスタマイズできます。パスワードを入力するときにユーザーを保護するために非表示の回答を設定することもできます。さらに学習しなくても Applescript でできることはたくさんあります...

display dialog "OSAScript will need an Admin User name and password in order to make your changes." & return & return & "Please enter an admin username." default answer "" with icon 2
set username to text returned of result

display dialog "OSAScript will need an Admin User name and password in order to make your changes." & return & return & "Please enter an admin password." default answer "" with icon 2 with hidden answer
set pssword to text returned of result

do shell script "osascript -e \"return 1\"" user name username password pssword with administrator privileges
于 2011-08-14T21:21:10.223 に答える
1

さらに、sudo で認証すると、次の 5 分間はパスワードを再度入力する必要がないことを考慮してください。これで問題が直接解決するわけではありませんが、ユーザーと対話する方法の選択肢が増えます。sudo に -n オプションを指定すると、パスワードの入力を求めるプロンプトが表示されなくなります (コマンドが実行されるか、sudo がエラーで終了します)。

-n を -A オプションと組み合わせて使用​​できます。これにより、sudo は、パスワードの収集と出力のみを行う別のプログラムを実行します。そうすれば、AppleScript を使って、やりたいことがうまくできるでしょうか?

于 2011-08-14T21:43:31.640 に答える