Re[2]: LogonUser()のための特権について


[コメントツリー表示を見る] [発言時刻順表示を見る]

Posted by Tak on 2001/08/09 20:04:14

In Reply to: Re: LogonUser()のための特権について Posted by Uz on 2001/08/08 18:58:33


    > > 1.ユーザーアカウント及びパスワードの正当性
    > > 2.ユーザーアカウントがサービス起動権限をもっているか
    > > ※プログラムは管理者権限をもつユーザーが実行
    > このユーザーアカウントとパスワードって、
    > OSにログインするときのやつ?
    > そんなん、どの段階でどうやって値を取得して正当性を
    > チェックしようとするの?
    > 僕には1がとてつもなく危険なことをしようとしているように
    > 思えるのですが。パスワードを抜かれるちゅうことでしょう?
    > セキュリティ的に問題があるように思います。
    >
    > > 上記をLogonUser()を使用して行おうと考えています。
    > > そこでSE_TCB_NAME特権が必要になりますが、実行するユーザーが
    > > この特権を持っているとは限らないため、プログラム上から一時的
    > > に特権を与えられないかと調査しています。
    > > しかし、手がかりもなくいまだに方法がわかりません。
    > > どなたかご存知ないでしょうか?
    > 特権の付与って、OSのツールだけ許されてたような、気がする。
    > その特権の有効・無効はアプリで操作できるけど。
    > これをポンポンいろんなアプリでされると、NT系のOSを
    > 入れている意味が無いので、管理者はたまったもんじゃない。
    >
    > > もしくは上記をチェックする別の方法がありましたら、教えて
    > > いただけないでしょうか?
    > 仕様がとても危険に思えるので、これ以上はなんともいえません。
    > もう少し、何がしたいが為に1・2をしたいのかわかれば、
    > 何か、アドバイス出来るかもしれませんし、
    > 出来ないかもしれません。(^^;
    現在、サービスのインストーラを作成中です。
    サービスの起動アカウントを画面から入力してもらう仕様で、
    その入力値をチェックするのため、1,2を行いたいのです。

    1についてはNetUserChangePassword()を使うことで解決しました。
    2についてはいまだに模索中です。
    CreateService()の戻り値で権限チェックは行えるのですが、インストールするモジュールが所定位置へ転送される前のため、タイミング的に無理というわけです。
    何かよい方法をご存知ないでしょうか?


記事スレッド一覧