1. 概要
Windows 2000/XP 専用の sudo (もどき) です.runas の使用に際し,パスワードを毎回手動で入力するのが面倒になり,これを作成しました.
sudo というのは名ばかりで,パスワード認証を自動で行う点以外,Windows の runas と同じものだと考えてください.
本家 sudo とはまったく別物のプログラムです.セキュリティは全く考慮していません.
2. 必要なソフトウェア
2-1. 開発環境
- Microsoft 32-bit C/C++ Optimizing Compiler (cl.exe)(動作確認バージョン: 13.10.3052)
- Microsoft Incremental Linker (link.exe)(動作確認バージョン: 7.10.3052)
- GNU make (make.exe)(動作確認バージョン: 3.80)
2-2. 必要OS
CreateProcessWithLogonW
API を使用しています.Windows 2000/XP 以降のOSを使用してください.
4. インストール
そのままではコンパイルできません.以下の作業を行ってください.
- Makefile を適宜編集する.
- sudo.c の 10, 12 行目を使用するコンピュータに合わせて変更する.
- sudo.c の 13 行目の
#error
ディレクティブを削除する.
あとは make するだけです.
コンパイルした実行ファイルには,設定したユーザのアカウント名とパスワードが暗号化されないまま埋め込まれています.管理者以外からは読めないようにする等,実行ファイルの取り扱いに注意する必要があります.メモリ上に読み込まれた実行ファイルのイメージは,そのユーザの権限で読むことができるので,管理者以外に実行権限を与えることもお勧めしません.
5. 使用方法
実行ファイルをパスの通った場所に配置した上で,コマンドプロンプト(あるいはそれに類するもの)から以下の書式でコマンドを起動します.
書式: sudo 実行ファイル名 引数1 引数2 ...
コンパイル時に指定したユーザの権限で指定のプログラムが起動します.
5. TODO
- コンソールから,本プログラムを用いてコマンドラインで動作するアプリケーションを起動しようとすると,必ず別のコンソールが開き,その中で起動するので,可能なら同一のコンソールで起動するようにする.
- UNIX でいう setuid 機能と同等の機能を Windows 上に実現して,任意のユーザの権限で起動させたり,実行ファイルにパスワードを埋め込まないようにする等,より本家 sudo に近づける.