2012-04-23 11 views
11

Macで動作しているsudoを呼び出す必要のあるluaスクリプトがあります。sudoを使ってGUIからパスワードを問い合わせる

私は、Mac OSは、自動的にパスワード要求ダイアログを持ち出すことを期待したいが、その代わりに、それはコマンドが256

を返すことで失敗した私は自分の目標を達成できることをとにかくありますか?

ティム

答えて

17

迅速かつ簡単な方法:(Security.frameworkで)承認サービスからAuthorizationExecuteWithPrivileges APIを使用します。この

/usr/bin/osascript -e 'do shell script "/path/to/myscript args 2>&1 etc" with administrator privileges' 

適切かつ構成方法のようにそれを実行します。

両方とも、管理者パスワードを要求する標準のMac OS X GUIが表示され、sudoと同じ方法でrootとしてコマンドを実行しますが、SUDO_USERという環境変数は設定されません。

すでにrootに昇格されているときに、ユーザアカウントの下で個々のコマンドを実行する必要がある場合は、それらの前に/usr/bin/sudo -u $USERを付けることができます。

+0

素晴らしい、ありがとう:) – tarmes

関連する問題