このページの本文へ

前へ 1 2 次へ

Windows Info 第420回

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

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

文● 塩田紳二 編集● ASCII

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

sudoの使い方

 使い方は簡単で、sudoに続けて管理者権限で実行したいコマンドを指定すればよい。sudoのオプションを以下の表に示す。

sudo

 たとえば、netstat.exeでは、「-b」オプションの実行には管理者権限が必要になる。このような場合

sudo netstat -b

とすることで、一般ユーザーで起動したコンソール(Windows Terminal)内から、管理者権限が必要なコマンドを実行できる。

sudo

netstat -bコマンドを管理者権限で実行するには「sudo netstat -b」とすればよい。sudo helpでオンラインヘルプを表示できる

 書式としては、

sudo.exe [サブコマンド] [sudoオプション] [実行コマンドとオプション]

となる。

 ただし、実行前にUACの通知で実行許可を与える必要がある。sudoに限らずUACの通知では「Alt+y」で「はい」を選択でき、マウスクリックは不要だ。その後、設定に応じてコマンドが実行される。

 なお、sudoコマンドを起動するユーザーのユーザー種別が「管理者」の場合には、UACの通知で「はい」を選択すればいいが、「一般ユーザー」の場合、管理者のユーザー名とパスワードを入力する必要がある。もっとも、sudoは、開発者など比較的高度な作業をするユーザーを想定しており、管理者権限を持たない一般ユーザーに指定されているようなユーザー向けではないので、これでいいのであろう。

 管理者権限で実行しているコンソールからは、以下の書式でsudoコマンドの設定を変更できる(詳細は、sudo.exe --help参照)。「<指定>」には、以下の表の項目を指定する。

sudo

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年、いやちょっと長すぎるだろう。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

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

ピックアップ

ASCII.jp RSS2.0 配信中

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