------------------------------------------------------------------------------- RunAsNt - Administrator権限を要求するアプリがウザい方々に捧ぐ ------------------------------------------------------------------------------- 1. RunAsNt とは? RunAsNt とは、Windows NT/2000/XP等のNTカーネル系OSで動作するクライアント/サー バアプリケーションで、現在作業中のものとは別のユーザに成り代わってアプリケーシ ョンを実行するためのソフトウエアです。 Administrator(管理者)権限を必要とするゲームやWindows 95/98向けアプリケーショ ンを実行するには、いったんログオフしてからログインしなおし、そこからアプリケー ションを起動したり、ともすれば面倒なので通常ログインするために利用しているユー ザに対して最初からAdministrator権限を付与するなどの措置が一般的に浸透しています が、前者ではあまりに面倒くさいですし、後者ではユーザが利用する全てのアプリケー ションに対してAdministrator権限を許してしまうことになり、未知のセキュリティホー ル(セキュリティ上の不具合)に対して脆弱になってしまいます。 セキュリティ上のリスクを軽減するためには、どうしても必要なときにだけ権限を与 え、必要のない時には権限を無くしておくのが定石ですが、Windowsシステムでは2000 (バージョン5.0)になるまで同様の機能が存在しませんでした。 RunAsNtは、Windows NT 4.0およびそれ以前のシステムに同種の機能を提供するばかり か、リモートからのアプリケーション起動にも利用することができるようになっていま す。 関連スレッド@2ちゃんねる: administrator要求するアプリとかゲームがウザイ http://pc3.2ch.net/test/read.cgi/win/1024782123/l50 2. RunAsNt の利用/配布条件 RunAsNt は GNU General Public License (GPL) Version 2 に従って配布されていま す。プログラムのソースコード、コンパイル済みバイナリ、インストーラパッケージの いずれも、改変を行なわない限り再配布自由です。 詳しくは GPL原文 (http://www.gnu.org/licenses/gpl.txt) または日本語訳 (http://www.opensource.jp/gpl/gpl.ja.txt) をお読みください。 RunAsNt - Runs applications as another user. Copyright (C) 2002 B.U.G. Software Laboratory. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA (訳: RunAsNt - Runs applications as another user. Copyright (C) 2002 B.U.G. Software Laboratory. このプログラムはフリーソフトウェアです。あなたはこれを、フリーソフ トウェア財団によって発行された GNU 一般公衆利用許諾契約書(バージョ ン2か、希望によってはそれ以降のバージョンのうちどれか)の定める条件 の下で再頒布または改変することができます。 このプログラムは有用であることを願って頒布されますが、*全くの無保 証* です。商業可能性の保証や特定の目的への適合性は、言外に示された ものも含め全く存在しません。詳しくはGNU 一般公衆利用許諾契約書をご 覧ください。 あなたはこのプログラムと共に、GNU 一般公衆利用許諾契約書の複製物を 一部受け取ったはずです。もし受け取っていなければ、フリーソフトウェ ア財団まで請求してください(宛先は the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA)。 ) 3. RunAsNt の構成/動作環境 RunAsNt は以下の環境で実行可能です。 CPU : Intel 80386もしくはそれ以降のプロセッサ OS : Windows NT 3.51/4.0/2000/XP のいずれか。 Windows NT 3.51環境ではWindows Installerが使用できないため、アーカイブ形式によ る手動インストールが必要になります。あらかじめご了承ください。 4. インストール/アンインストール RunAsNt は2種類の形態により提供されています。それぞれ「インストーラパッケージ」 と「アーカイブ形式」と呼んでいます。 インストーラパッケージは、その名の通り Windows Installer を利用したインストール アプリケーション同梱の形態(.msi)で、Windows上で起動することで最低限必要な設定作 業をウイザード形式で半自動的に行なうことができるようになっているものです。この 作業を行なうには、別途 Microsoft Windows Installer が必要です。 対してアーカイブ形式は、必要なファイル群をlzh (LHA)圧縮により提供する形態で、イ ンストールにかかる作業を全て手動で行なう必要があります。 4.1. インストーラパッケージ インストーラパッケージによるインストールはとても簡単です。 RunAsNtSetup.msiをダウンロード後、エクスプローラ上からダブルクリックすればセッ トアップウイザードが起動できますので、指示に従ってインストールを行なってくださ い。 アンインストールはコントロールパネルの「アプリケーションの追加と削除」から行な います。一覧表示に RunAsNt がありますので、それを選択して削除(変更と削除)を押 してください。 4.2. アーカイブ形式 アーカイブ形式によるインストールは、以下の手順で行なってください。 (1) まずはアーカイブ(.lzh)から全てのファイルを適当なディレクトリ (c:\runasnt等) に解凍してください。 (2) 解凍したファイルのうち、runasnt.exe および runasntwin.exe をそれぞれ c:\winnt や c:\winnt\system32 のようなシステムディレクトリにコピーしてくだ さい。 (3) 次にRunAsNtサービスをインストールします。コマンドプロンプトを開き、一連のフ ァイルを解凍したディレクトリに移動し、以下を入力して [Enter] を押してくださ い。 C> runasntserver /install /autostart 処理が正しく終了すると "Successfully created service "RunAsNt Service"." と表示されますので、表示をご確認ください。 今すぐサービスを開始するには、「コントロールパネル」→「サービス」(または 「管理ツール」→「サービス」)から開始するか、コマンドプロンプトから以下を 入力します。 C> net start "runasnt_service" (4) Windows NT 4.0/2000/XP環境の場合はエクスプローラシェル拡張機能を登録できま す。同じくコマンドプロンプトから、以下を入力してください。 C> regsvr32 RunAsNtCom.dll "DllRegisterServer in RunAsNtCom.dll succeeded." とメッセージボックスが表示 されれば完了です。 以上でインストール作業は終了です。 アンインストールは上記のアンインストール作業を逆順で行ないます。具体的には以下 のように行なってください。 (1) まずはエクスプローラシェル拡張をアンインストールします。 コマンドプロンプトを開き、一連のファイルを解凍したディレクトリに移動し、以 下を入力して [Enter] を押してください。 C> regsvr32 /u RunAsNtCom.dll "DllUnregisterServer in RunAsNtCom.dll succeeded." とメッセージボックスが表 示されれば完了です。 (2) 次にRunAsNtサービスを停止し、サービスを削除します。 サービスが既に開始されている場合は、「コントロールパネル」→「サービス」 (または「管理ツール」→「サービス」)から停止するか、もしくはコマンドプロ ンプトから以下のように入力してください。 C> net start "runasnt_service" サービスを停止したのち、サービスを削除するにはコマンドプロンプトから以下の ように入力してください。 C> runasntserver /remove 処理が正しく終了すると "Successfully deleted service "RunAsNt Service"." と表示されますので、表示をご確認ください。 (3) あとはファイルを削除するだけです。解凍したディレクトリ内のファイル、および インストール手順(2)で c:\winnt や c:\winnt\system32 等にコピーしたものを削 除してください。 5. 簡単な利用方法 RunAsNtの利用方法は3種類あります。一つめはエクスプローラシェル拡張によるエクス プローラ内での右クリックメニューからの起動、二つ目は「ファイル名を指定して実 行」からの起動、最後はコマンドプロンプトからの起動です。 5.1. コンテキストメニューから利用する コンテキストメニューからの起動はとても単純で、単にアプリケーション(ま たはショートカット)の上で右クリックでコンテキストメニューを表示させる と、「別のユーザとして実行」が現われます。 あとはそのメニューを選択すると、コマンドラインとユーザ名・パスワードを 入力するダイアログが現われますので、それぞれ入力してOKを押すだけです。 5.2. 「ファイル名を指定して実行」から利用する ふつうにアプリケーションを起動させるだけなら、「名前」の欄に "c:\winnt\notepad.exe a.txt" のように実行ファイルをそのまま書きますが、別のユーザとして実行する際に は、実行ファイルおよびオプション指定の前に "runasntwin" と入れます。 例えば "runasntwin c:\winnt\notepad.exe a.txt" のようにします。 OKを押すと、5.1.のときと同様にコマンドラインとユーザ名・パスワードを入 力するダイアログが現われますので、それぞれ入力してOKを押してください。 5.3. コマンドプロンプトから利用する 3種類の利用法のうち、もっとも細かい指定ができる方法です。 コマンドプロンプトを開き、実行したいコマンドラインの前に "runasnt" を入 れ、コマンドラインまでの間に様々なオプション指定を追加します。 例えば、 "runasnt /user username /password password123 c:\winnt\notepad.exe" とすると、ユーザ名 "username" パスワード "password123" でユーザをログイ ンさせ、"c:\winnt\notepad.exe" を実行する、という指定になります。 6. より詳しい利用方法 RunAsNt をより詳しく使うための利用方法を説明しています。 6.1. RunAsNtServer.iniによるサーバ側のカスタマイズ RunAsNt のインストール作業を完了すると、インストール先に RunAsNtServer.ini というファイルがあるはずです。 ここには RunAsNt サービスの設定項目(ネットワーク設定、セキュリティ設 定)があり、それぞれを修正することでサービスを便利に使うことができるよ うになっています。 それぞれ設定項目には以下のものがあります。 PortNumber= RunAsNtサービスの処理を受け付けるTCPポートを指定します。 デフォルトでは 774 になっていますが、ネットワーク設計や他のアプリ ケーション動作の都合上変更する必要がある際には、ここを変更してくだ さい。 ただし、この値を変更した場合にはクライアント側ソフトウエア(RunAsNt) でポート指定を修正する必要があることに注意してください。 BindAddress= 接続を許可するIPネットワークアドレスを指定します。 具体的には以下のいずれか1つを指定することになります。 "127.0.0.1" (デフォルト) 同一コンピュータ内からのみ接続を許可する設定です。 他のコンピュータからRunAsNtを利用してアプリケーションを起動する ような機能が全て無効化されます。 他のコンピュータから接続しようとしてもTCP reset信号が返却される ので、RunAsNtサービスが動作していることさえも知られる危険があり ません。もっとも安全な設定です。 "0.0.0.0" TCP/IPプロトコルで通信可能な全てのネットワークに対して接続を許 可する設定です。他のコンピュータからRunAsNtを利用してアプリケー ションを起動したりすることができるようになります。 **警告** この設定に変更する際には、後述するアクセス許可設定を必ず漏れな く設定してください。ただ単にこの値を "0.0.0.0" にするだけでは、 全てのコンピュータに対して認証機能を全解放することに繋がり、セ キュリティ上極端に危険です。 特にインターネット接続を行なうコンピュータの場合は、設定ミスが コンピュータおよびコンピュータ内のデータその他に甚大な被害をも たらす危険性が高いので、あらかじめ注意すべきです。 "(各ネットワークインターフェイスのIPアドレス)" 指定したIPネットワークアドレスで参照されるネットワークインター フェイスに対してのみ接続を許可します。 例えばコンピュータに2つのネットワークインターフェイスが存在して いて、それぞれ 192.168.1.1 と 192.168.2.1 というアドレスが振ら れている場合、BindAddress=192.168.2.1とすると、192.168.2.1側の ネットワークからのみ接続を許し、反対側の192.168.1.1側のネット ワークからの接続は全て拒否される形になります。 ConnectionTimeout= 無通信タイムアウトをミリ秒単位で指定します。 これは、RunAsNtクライアントから送信されてくるべきデータが一定時 間何もなかったとき、クライアントがハングアップしたと見なして接 続を切るためのタイマー指定です。 DefaultPermission= デフォルトのアクセス許可を指定します。 0を指定するとデフォルトでアクセスを許可し、後述で示す PermissionException(s)はアクセスを拒否するアドレスの一覧を指定 するという設定になります。 逆に1を指定するとデフォルトでアクセスを拒否し、後述で示す PermissionException(s)はアクセスを許可するアドレスの一覧を指定 するという設定になります。 PermissionExceptions_Num DefaultPermissionの設定から除外されるアドレスの一覧数を指定しま す。例えば、PermissionExceptions_Num=5と指定すると、除外リスト は全部で5つ存在し、それぞれ PermissionException0_NetworkAddress= PermissionException0_NetMask= PermissionException1_NetworkAddress= PermissionException1_NetMask= PermissionException2_NetworkAddress= PermissionException2_NetMask= PermissionException3_NetworkAddress= PermissionException3_NetMask= PermissionException4_NetworkAddress= PermissionException4_NetMask= と5つ分の指定が必要になります。 PermissionException(n)_NetworkAddress= DefaultPermissionの設定から除外されるアドレスのネットワークアド レス部分を指定します。 PermissionException(n)_NetMask DefaultPermissionの設定から除外されるアドレスのネットマスク部分 を指定します。 例えば、 DefaultPermission=1 PermissionExceptions_Num=3 PermissionException0_NetworkAddress=10.0.0.0 PermissionException0_NetMask=255.255.255.0 PermissionException1_NetworkAddress=192.168.128.0 PermissionException1_NetMask=255.255.254.0 PermissionException2_NetworkAddress=172.16.0.0 PermissionException2_NetMask=255.255.0.0 と設定すると、「デフォルトではアクセスを拒否するが、 * 10.0.0.0〜10.0.0.255 * 192.168.128.0〜192.168.129.0 * 172.16.0.0〜172.16.255.255 からのアクセスのみ許可する」という意味になります。 なお、RunAsNtServer.iniの設定は、RunAsNtサービスの起動時にのみ読み込ま れます。従って、設定変更を行なった場合にはコントロールパネル→サービス (またはコントロールパネル→管理ツール→サービス)からRunAsNt Service をいったん停止し、再度開始する必要があります。もちろんOSごと再起動させ てもかまいません。 6.2. コマンドプロンプト版 RunAsNt のオプション設定 コマンドプロンプト版 RunAsNt には、このドキュメントに掲載されていない様 々なオプションがあります。 詳しくはコマンドプロンプトから RunAsNt とだけ入力すると表示されるヘルプ をご覧ください。 7. バグ報告/連絡先 作者はここらへんに現われるかもしれません。 RunAsNtのページ http://www.42ch.net/~runasnt/ administrator要求するアプリとかゲームがウザイ http://pc3.2ch.net/test/read.cgi/win/1024782123/l50 8. 更新履歴・注意事項 現在の RunAsNt バージョンでは、OS側のユーザプロファイルの不具合により、いったん RunAsNtを使って別のユーザとしてアプリケーションを実行してしまうと、その後にシャ ットダウンしようとするとプロファイルのアンロードに時間がかかってしまい、結果と してシャットダウンに時間がかかる現象が確認されています。 現状のバージョンにおいての制限事項としてご了解ください。 2003/01/01 * さまざまな機能を追加して出直し。