sudoの使い方
使い方は簡単で、sudoに続けて管理者権限で実行したいコマンドを指定すればよい。sudoのオプションを以下の表に示す。
たとえば、netstat.exeでは、「-b」オプションの実行には管理者権限が必要になる。このような場合
sudo netstat -b
とすることで、一般ユーザーで起動したコンソール(Windows Terminal)内から、管理者権限が必要なコマンドを実行できる。
書式としては、
sudo.exe [サブコマンド] [sudoオプション] [実行コマンドとオプション]
となる。
ただし、実行前にUACの通知で実行許可を与える必要がある。sudoに限らずUACの通知では「Alt+y」で「はい」を選択でき、マウスクリックは不要だ。その後、設定に応じてコマンドが実行される。
なお、sudoコマンドを起動するユーザーのユーザー種別が「管理者」の場合には、UACの通知で「はい」を選択すればいいが、「一般ユーザー」の場合、管理者のユーザー名とパスワードを入力する必要がある。もっとも、sudoは、開発者など比較的高度な作業をするユーザーを想定しており、管理者権限を持たない一般ユーザーに指定されているようなユーザー向けではないので、これでいいのであろう。
管理者権限で実行しているコンソールからは、以下の書式でsudoコマンドの設定を変更できる(詳細は、sudo.exe --help参照)。「<指定>」には、以下の表の項目を指定する。
sudo.exe config --enable <指定>
sudoが有効なら、コンソールでもsudo自身を使って
sudo sudo config --enable normal
のように設定値を変更できる。
設定としては、コマンドの実行方法を指定するだけなので、特に問題はないはずだ。インラインを指定すれば、Linuxとほぼ同じ使い方ができる。この場合なら、オプションで一時的に別ウィンドウで表示なども指定が可能。
いろいろと試してみたが、入力禁止(設定としては「入力が無効な場合」)では、完全に入力を禁止できていなかった。たとえば、
sudo sudo config --enable disableInput
sudo cmd.exe /c copy con sudotest.txt
this is test.
^Z
type sudotest.txt
とすると、コマンドに対して入力が可能で、キーボードからファイルに入力ができしまう。3行目はコマンドに対するユーザー入力なので何でも構わない。4行目の「^Z」は、Ctrlキーを押しながらZキーを押すことを意味する(入力終了の意味)。上記のコマンドでは、カレントディレクトリにファイルを書き込むので、もし試すときにはカレントディレクトリには充分注意してほしい。
Windows Command Lineブログにある解説「Introducing Sudo for Windows!」(https://devblogs.microsoft.com/commandline/introducing-sudo-for-windows/)では、stdinをクローズしてコマンドを起動するとしているが、conデバイスまでは禁止していないようだ。Windowsの標準コマンドであれば問題はないが、当面はインターネットから入手したプログラムなどには利用しない方がよさそうだ。
UACが組み込まれたのは2007年のWindows Vistaで、このときからrunasコマンドは使い物にならなくなった。コンソールを管理者権限で起動するのは、suコマンドで管理者になって実行しているのと同じ。管理者権限で間違ったコマンドを起動してしまう可能性もあった。sudoの登場までに17年、いやちょっと長すぎるだろう。
この連載の記事
-
第459回
PC
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた -
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る - この連載の一覧へ