SOの皆さん、こんにちは。
HostName (scutil --set HostName) など、処理するためにアクセス許可の昇格が必要な特定のシステム設定を変更するシェル スクリプトを作成しています。スクリプトはPlatypusによって生成されたアプリ内で実行されます。
スクリプトが scutil (たとえば) を呼び出すとすぐに、もちろん、Security Server から認証を求めるメッセージが表示されます。
securityの man ページを見ると、私が興味を持っている 2 つのフラグがあります。
security authorize
security execute-with-privileges
また、マニュアルページから例を取得します:
security -q authorize -uew my-right | security -q authorize -i my-right
"シェル スクリプトに権限を追加する方法として、権限を承認し、それを別のコマンドに渡します。 "
しかし、私はこれから欲しいものを手に入れていません.それを正しく使用する方法を理解していないだけだと思います. 誰か追加の洞察を持っていますか? 検索して見つけたものは、私を賢くしません。次のいずれかについてお役に立てれば幸いです。
- スクリプト全体を昇格して実行するために、資格情報の入力を 1 回要求するスクリプトを取得します。
- 資格情報の入力を 1 回要求し、昇格が必要なスクリプト内の個々のコマンドに資格情報を送信できるようにします。
Platypus フラグRun with Administrator Privilegesを使用してスクリプトを実行すると、$EUID が 0 (ゼロ) ではないスクリプトが実行されます。
私は、スクリプトが何らかの形で昇格されているが、ルートとして実行されていないことを意味すると思います。この昇格が機能している場合、 scutil --set HostName xを呼び出すのに十分ではないようです。そのコマンドはまだ資格情報を要求するためです。
さらに明確にする必要がある場合は、大声で叫んでください。
前もって感謝します。
宜しくお願いします、テッド