UJP - 技術情報

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

     

他のユーザになるスイッチユーザ 〜su.exe〜


他のユーザになるスイッチユーザ

〜su.exe〜


0.改定履歴

  • 1998.08.14 初版

1.はじめに

 このドキュメントは,WindowsNTで,UNIXのsu(Switch User)コマンドと同じような役目をする事が出来るsu.exeについて説明する.

 UNIXのsuでは,他のユーザに変更するだけだが,このsu.exeの場合は「他のユーザに成り代わって,何かしらのプログラムを実行する」のが大筋の目的である.

 su.exeは,NT4.0リソースキットに付属している.

2.リファレンス

Usage: su <User> "[cmdline]" [domain] [[Winsta\]Desktop] [options]
  -cb do not create new console	(do not use with redirected passwords)
  -e disables environment preparation (Inherit parent environment)
  -l disables loading of the user Registry hive (use .Default)
  -v verbose output to STDOUT
  -w do not wait on child (Registry hive will remain loaded)

One of the following logon types may be specified.  Default is interactive.
  -b batch, target user needs SeBatchLogonRight
  -i interactive, target user needs SeInteractiveLogonRight
  -s service, target user needs SeServiceLogonRight
  -n network, target user needs SeNetworkLogonRight (WinNT 4.0 only)

Not specifying a cmdline invokes the default command processor (%comspec%)
Not specifying a domain causes account lookup in the following order:
  Well-known, built-in, local accounts, primary domain, trusted domains.
Specifying "." as the domain limits the LogonUser search to the local machine.
Not specifying Winsta\Desktop launches child on current Winsta\Desktop.
Winsta0\Default is the user default interactive Windowstation and desktop.

 su.exeには,コマンドラインではヘルプメッセージが付いていない. よって,リソースキットの中にあるsu.txtを参照する.

3.オプション説明

オプション 説明
-b  バッチプログラムを実行する.
-i  インタラクティブ,つまり,GUIツールを起動する.

-s
 サービスとして起動する.

 その他,色々ある.

4.実行サンプル

 su.exeをオプション無しで実行すると,次のような画面が表示される.

 User,Domain,Passwordを設定し,CommandLineに実行するプログラム名を入力する.

 ログオンタイプは,バッチか,インタラクティブか,サービスとしてかを指定する.

5.環境変数について

 予め,環境変数を設定しておくと,ユーザおよびパスワードなどを入力しなくて良い.

環境変数
SU_USERNAME
SU_PASSWORD
SU_DOMAIN
SU_COMMANDLINE
SU_DESKTOP

 パスワードが設定されているのはセキュリティ上まずいので,リダイレクトなどで入力する方法もある.

6.エラーについて

 実行すると,次のようなエラーメッセージが表示される.

suのエラー
d:\toNT>su
SeTcbPrivilege ""

Warning: Privileges listed above not held by the caller.
 This may affect the ability to complete this operation.
 Privileges can be granted to the caller via User Manager.
 Privileges will take affect the next time the caller logs on.

LogonUser error! (rc=1314)
 クライアントは要求された特権を保有していません。


d:\toNT>

 これは,このsuを実行しようとしているユーザに,権限が無いためで,それはユーザマネージャから設定できるとある.

7.ユーザマネージャでの特権の設定

 ユーザマネージャにて,特権,つまり権利を与えないと,su.exeは使い物にならない.

 権利は,su.exeで実行する形態によって,設定する必要がある.

  • ドメインユーザマネージャを起動する.
  • [原則]メニューの[ユーザの権利]を選択する.

  • [ユーザ権利の原則]画面が表示されるので,[高度なユーザ権利の表示]を設定する.

 ここに表示される権利の中で,起動する形態によって,その権利を設定する.

ユーザの権利の原則設定対応表
権利 実行形態
オペレーティングシステムの一部として機能 インタラクティブ
バッチジョブとしてログオン バッチ
サービスとしてログオン サービス

8.権利の設定について

 たとえば,次の図のように,Agent Kが,Agent Jとしてプログラムを起動したい場合には,Agent Kに,特権を設定する必要がある.



広告スペース
Google