0

システム環境設定で使用される prefpane があります (認証ロック付き)。に書き込むための設定を取得する必要があります/Library/Preferences。ただし、設定を同期しようとするkCFPreferencesAnyUserkCFPreferencesCurrentHost、ロックが解除されていても失敗します。/Library/Preferencesヘルパー アプリケーションを作成せずに設定を書き込む方法はありますか? 余計なことなので避けたいです。

「すべてのユーザー」設定を変更するには、ルート権限 (または Mac OS X v10.6 より前の管理者権限) が必要であることに注意してください。「Authorization Services Programming Guide」を参照してください。

Authorization Services プログラミング ガイドを読みましたが、設定については言及されていませんでした。

4

1 に答える 1

1

CFPreferences は、プロセスの euid を使用して、「現在のユーザー」が何を意味するかを判断します。euid を 0 に設定することもできますが、目的に特化した小さなヘルパーではなく、プログラム全体が脆弱性を含んでいる場合、プログラム全体が特権昇格攻撃の可能性があることを意味するため、これは実際にはお勧めできません。それはユーザーにとって悪いことであり、ひいてはあなたにとっても悪いことです。

また、XPC と seteuid() は常に適切に機能するとは限らず、CFPreferences は XPC を使用します。euid 0 から非 0 への切り替えは機能するはずですが、他の方向が機能することは期待できません。

于 2013-01-21T07:20:53.880 に答える