先取り!Windows 11 2024 Update(24H2)
第3回待望の「Sudo for Windows」が投入される「Windows 11 2024 Update」
2024年8月13日 14:20
今秋の正式リリースが予定されている「Windows 11 2024 Update」(バージョン 24H2)の新要素を紹介する本連載。第3回となる本稿では、「バージョン 24H2」の開発者向け機能のなかでもっとも注目されているであろう「Sudo for Windows」を紹介する。
Sudo for Windows
Windowsを利用していると、「ターミナル」(Windows Terminal)を立ち上げてから管理者権限にするのを忘れていたことに気付き、管理者権限で「ターミナル」を起動し直すといったことがよくある。[Ctrl]キーを押しながら新規タブを作成すると管理者権限の「ターミナル」ウィンドウが開くというワザを知っていれば、その面倒はいくらか緩和されるが、Linuxの「Sudo」のように、一時的に管理者ユーザーにスイッチできるコマンドがあれば便利なのにと感じることも多い。
そんなユーザー待望の「Sudo for Windows」が、とうとう「バージョン 24H2」より利用できるようになる。
「Sudo for Windows」は「UACで一時的に権限昇格する」という目的に絞って開発されており、厳密にはLinuxの「Sudo」とは異なる。ユーザーを指定して実行しするといったことはできないが(その場合は、従来からある「RunAs」コマンドを用いる)、その分シンプルで、たとえば管理者権限で「PowerToys」をインストールするコマンドは以下の通りになる。
sudo winget install powertoys -s winget
初回利用時はシステムで「Sudo」コマンドが有効ではないという旨のメッセージが表示されるが、案内に従って「設定」アプリの[システム]-[開発者向け]ページで「Sudo」コマンドを有効化すると、2回目からは「Sudo」コマンドが利用できるようになる。
なお、Windowsの「Sudo」コマンドには、以下の3つのモードがある。下へ行くほどセキュリティが低くなるが、Linuxでの使い勝手には近づいていく。
- 新しいウィンドウで表示(forceNewWindow、--new-window):管理者権限のウィンドウが新たに開かれる(既定)
- 入力が無効な場合(disableInput、--disable-input):コマンドを現在のターミナルでインライン(新規ウィンドウなしにその場で)実行するが、入力は受け付けない。オプション名は翻訳ミスと思われる
- インライン(normal、--inline):コマンドを現在のターミナルでインライン実行する
既定のモードは「新しいウィンドウで表示」だが、「設定」アプリや「sudo config」コマンドで変更が可能。セキュリティレベルの低いモードにしておけば、よりセキュリティレベルの高いモードを起動オプションで指定することもできる。
おすすめは既定の「新しいウィンドウで表示」のままにしておくことだが、「インライン」に変更してセキュリティを高めたいときだけ「sudo --new-window」を使ってもいいかもしれない。