hoge diary - January 28, 2005

[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 の度にパスワードを入れなければならないなんて,耐えられません.

コメント

a-ichikawa (posted on: Thu Jan 05 02:59:42 JST 2006)

Google でページを発見したので拝見させていただきました。
ご指摘のように標準ではSYSTEM権限で走りますが,サービスの「ログオン」の設定項目で,「ローカルシステムアカウント」から「アカウント」でAdministratorとそのパスワードを入力しておけば,Administratorとしてうまく動くと思います。

pakuchan (posted on: Sat Jan 14 18:06:28 JST 2006)

ご意見ありがとうございます.
確かにそれが最良の解決策かも知れません.

名前(何でも可):

テキスト(http:// を含む内容は投稿できません):

トラックバック

トラックバック URI: https://www.pakunet.jp/hoge/trackback/2005012801

トラックバックはありません.


Valid XHTML 1.1! Valid CSS!
© 2004-2009 ぱくちゃん.
Last modified: Thu Nov 01 01:16:22 JST 2007