このページの本文へ

前へ 1 2 次へ

Windows Info 第420回

Windowsプレビュー版に搭載されたsudoを試す

2024年02月25日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

 Windows Insider ProgramのDevチャンネル(およびCanaryチャンネル)でプレビュー中のWindows 11 Ver.24H2には、sudo.exeコマンドが搭載されている。簡単に言えば、sudo.exeとは管理者権限でコマンドを実行するためのものだ。今回は、このsudo.exeを試した。

そもそもsudoとはなんぞや?

 sudoは、Linuxに搭載されているコマンドで、他のユーザーID、グループIDを使って指定されたコマンドを実行するためのものだ。特にオプションを指定せず、sudoのあとに実行したいコマンドを続けると、root(Linux/Unixの管理者)としてコマンドを実行する。このとき、rootのパスワードを入力する必要があるが、sudoがパスワードを一時的に記憶して、しばらくの間はパスワードの再入力は必要がなくなる。

 Linuxでは、多くの管理・設定コマンドに管理者権限が必要になる。もともと、Unixには、su(Super Userの略)コマンドがあり、一時的にroot(管理者ユーザー)になって作業をしていた。このコマンドは、Version 1 Unix(1971年)から存在するコマンドである。しかし、suコマンドでは、ミスをしたときにroot権限であるため、大きな事故になりかねない。そこで、指定した単独のコマンドだけをroot権限で実行するsudoが、1980年代に4.1 BSD UNIX上で、ニューヨーク州立大学バッファロー校において最初に開発された。

 今回、Windowsに搭載されたsudoは、コンセプトとしては同じだが、UnixやLinux上のsudoとは異なり、ほかのユーザーでコマンドを実行するものではない。というのも、Windowsにはユーザーアカウント制御(User Account Control。UAC)という機能があり、管理者ユーザーであったとしても、コマンドの実行は通常ユーザーと同じ権限でしか実行できないからだ。

 管理者権限を使ってコマンドを実行するには「昇格」する必要がある。アプリケーションのインストールなどで、ユーザーに許可を求めるメッセージボックスが表示される。これがUACの「昇格」の確認のための「通知」(UAC通知)である。このとき画面が反転し、UACの通知だけが表示されるのは、悪意のあるプログラムがマウスやキーボードを制御してメッセージボックスを操作することを避けるためだ。

 UAC通知に関しては「コントロールパネル」→「ユーザーアカウント」→「ユーザーアカウント制御の変更」で設定が可能だが、基本的には変更しないほうがよい。

 「昇格」は、GUIアプリケーションなどがAPIを使って要求することができる(もちろんユーザーによる許可が必要)ほか、スタートメニューなどで一部のコマンドが持つ右クリックメニューの「管理者として起動」を使う。コマンドラインの場合、コンソール自体を管理者として起動し、その中で作業する。これは前述のsuとほぼ同じ状態である。

 Windowsに搭載されたsudo.exeは、昇格によって指定されたコマンドを実行するものだ。このため、ユーザーは実行ユーザーのままになる。

 なおWindowsには、sudoとよく似たrunasというコマンドがある。これは、ユーザーを切り替えてコマンドを実行するものだが、Windows VistaでUACが導入されて以来、管理者ユーザーを指定しても、コマンドの実行は一般ユーザー権限となってしまうため、管理者権限が必要なコマンドの実行ができなかった。

実際にsudo.exeを使う

 sudo.exeを使うには、Windows Insider ProgramのCanary、Devチャンネルで配布されている「ビルド26052」(https://blogs.windows.com/windows-insider/2024/02/08/announcing-windows-11-insider-preview-build-26052-canary-and-dev-channels/、2024年2月8日配布開始)以降が必要である。

 原稿執筆時点のDev/Canaryチャンネルの最新版は、「ビルド26058」(https://blogs.windows.com/windows-insider/2024/02/14/announcing-windows-11-insider-preview-build-26058-canary-and-dev-channels/)である。このビルドには、sudo ver.0.1.5が搭載されていた。

 まず、「設定」→「システム」→「開発者向け」→「sudoの有効化」でsudoコマンドを有効にする。

sudo

「設定」→「システム」→「開発者向け」→「sudoの有効化」でコマンドを有効化し、実行方法を選択する

 このときに「sudoによるアプリケーションの実行方法を構成する」で、sudoで実行するコマンドの実行方法を指定できる。Linuxのように使うには「インライン」を選ぶ。そのほかに「入力が無効な場合」「新しいウィンドウで表示」の2つが選択でき、この順でセキュリティが高くなる。

 「入力が無効な場合」とは、実行されるコマンドに対して標準入力(stdin)を閉じた状態(入力を禁止した状態)で起動される。英語では「With Input disabled」なので日本語訳がおかしく、意味としては「入力を禁止」である。この設定は起動後にユーザー入力を受け付けるようなコマンドの利用には向いていない。プログラムを停止するための「Ctrl+C」などは標準入力を通らないために有効である。

 デフォルト値の「新しいウィンドウで表示」がセキュリティ的には最も高く、起動するコマンドは、別ウィンドウとなる。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン