Microsoftは、Sudo for Windowsが最新のWindows 11 Insider Preview Build 26052で利用可能になると発表 した。このツールは、ユーザーが昇格していないコンソール・セッションから直接昇格コマンドを実行する方法を変える。Sudo for Windowsは直感的で使い慣れたソリューションを提供し、新しい昇格コンソールを開く必要性をなくし、ユーザー体験を向上させる。
Sudo for WindowsはGitHubでオープンソース化されており、計画や追加機能は今後数ヶ月のうちに共有される予定だ。Sudo for Windowsにまだ実装されていない拡張機能を求めるユーザーには、MicrosoftはGerardo Grignoli氏のgsudo を有力な選択肢として提案している。このツールは多数の追加機能と設定オプションを提供している。
Windows Sudoを有効にするには、Windowsの「設定」>「開発者向け」ページで、「Sudoを有効にする」オプションを切り替える。
あるいは、昇格したコンソール・セッションからコマンドを使って有効にすることもできる。
sudo config --enable <configuration_option>
Sudo for Windowsは3つの設定オプションをサポートしており、それぞれが異なる目的を持つ。
-
新しいウインドウを使用する (forceNewWindow): コマンドを実行するために新しいコンソールウィンドウを開く
-
入力を閉じる (disableInput): 標準入力を閉じた状態で、現在のウィンドウで昇格プロセスを実行し、ユーザー入力を制限する
-
インライン (normal): 他のオペレーティングシステムのsudoと同様の動作をし、stdin、stdout、stderrを現在のウィンドウに接続する
シナリオの例は以下の通りである。
-
「新しいウィンドウを使用する」構成:
sudo netstat -ab
を実行すると、新しい昇格コンソールウィンドウが開き、その中でコマンドを実行する -
「入力を閉じる」構成:標準入力を閉じた状態で、現在のウィンドウで昇格プロセスを実行する
-
「インライン」構成:stdin、stdout、stderrを現在のウィンドウに接続する
プロセスを sudo
で昇格させるとき、ユーザーアカウント制御 (UAC) ダイアログがユーザーの確認を求める。確認されると、選択した設定に基づいてプロセスが昇格される。ユーザーはコンソールで sudo -h
を実行することで、sudo
コマンドのオプションパラメーターを調べることができる。
"新しいウィンドウを使用する"構成では、sudo.exeは新しい昇格コンソールウィンドウを起動し、現在のウィンドウのディレクトリと環境変数をミラーリングする。"入力を閉じる"と"インライン"構成では、sudo.exeは新しい昇格プロセスを開始する。元の昇格していない sudo.exe
は、昇格したプロセスとRPC接続を確立し、情報交換を容易にする。
潜在的なセキュリティリスクのため、「インライン」または「入力を閉じる」構成を使用する場合は注意が必要である。「入力を閉じる」構成は、昇格プロセスがユーザー入力を読み取らないようにすることで、リスクを軽減する。