[Windows] sudod
特定のアプリケーションを管理者権限で使用するための AdminExec というソフトウェアは既に存在しますが,これが有償だったのが,私が sudo を最初に作るきっかけなのです.
... というのはさておき,この AdminExec, マニュアルを見る限り,「Administrator のパスワード」を要求してきません.パスワードを使用しないというのは非常にいいことですが,これではアプリケーションの動作ユーザが AdminExec 経由と,Administrator でログオンした場合とで異なるため,起動したアプリケーションの設定が別々の場所に記録されてしまうことになります.
SYSTEM アカウントは,Default User のプロファイルを使用するようになっています.一方,Administrator で通常のログオンを行った場合,当然 Administrator のプロファイルが使用されます.
確かに,動作ユーザが違うのですから,それぞれ違うプロファイルを使うことがシステム的に問題というわけではありません.むしろその方がいいでしょう.
しかし私は,Administrator でログオンした場合も,サービスから起動した場合もアプリケーションが同じ設定で動くことを望んでいますし,Administrator の権限で十分動作するアプリケーションを,より強い権限の SYSTEM として動作させることにも抵抗があります.
sudod を作る際,SYSTEM ならどんなユーザにもパスワードなしで切り替えられるだろう,と思っていました.しかし,Windows はそんな UNIX 的な乱暴を許してくれませんでした.
他のユーザ云々,の時点で,LogonUser API を用いなければなりません.加えて,ここでパスワードを必要としないアプリケーション,を作るためには... どう頑張っても平文ないしは暗号化パスワードをプログラム内部に保持するしかありません.
ましてや本物の sudo のように,任意のユーザとして実行できるようにしようとすると... とんでもないことになるのが目に見えます.
あぁ! suid 作って下さい Microsoft 様.
セキュリティの面では今のままの方がいいんでしょうけど,RunAs の度にパスワードを入れなければならないなんて,耐えられません.
トラックバック
トラックバック URI: https://www.pakunet.jp/hoge/trackback/2005012801
トラックバックはありません.