Windowsにおなじみのsudoコマンドを導入する
はじめに
UNIX系のOSでは管理者権限で実行する際にsudo
コマンドを使用します。ログアウトせずに一時的に管理者権限に切り替えてコマンドを実行できることもあり、Linuxの環境構築などで多用されます。
そんな便利なsudo
ですが、Windowsを使う際にも使えたらなと思ったことはないでしょうか。
Windowsには、コマンドプロンプトやPowershellを起動する際「管理者として実行する」という選択肢が存在し、管理者権限でコマンドを叩くことが可能です。ですが、すべてのコマンドを管理者権限で実行する状態になるため、Linuxと比較したときに権限周りの柔軟性で欠ける部分があります。
そこでScoopというWindows向けパッケージマネージャーを使用し、 sudoコマンドをインストール、使用できるようになるまでを紹介します。
Scoop とは
結論から述べると、Windows向けのパッケージマネージャーになります。
有名なものとしてRed Hat系OSでいう、yumやRPM、Debian系OSだとapt、macOSでのHomebrewにあたります。
どの環境においてもパッケージマネージャーは欠かすことのできないものになっています。UNIX系OS(LinuxやmacOS)では一般的に使われるツールですが、Windowsだとインストーラーが一般的でパッケージ管理マネージャーの概念があまり浸透していないように感じます。
そこでWindowsでもパッケージ管理を行えるツールとして有名なものにChocolatey、先述したScoopがあります。
どちらのツールを使ってもsudoコマンドを始めとする様々なコマンドのインストールが可能です。しかし、Chocolateyのインストールには管理者権限が必要なため、インストールのしやすさだとScoopが抜き出ています。ただし、インストールできるパッケージの数ではChocolateyのほうが圧倒的に多いので、用途や環境によって使い分けるのが理想かなと感じます。
それではScoopをWindowsへインストールしていきます。
Scoop のインストール
インストールはとても簡単で、PowerShellを起動して以下のスクリプトを実行するだけで導入できます。
> iwr -useb get.scoop.sh | iex
うまく実行できないときは以下のコマンドでユーザーポリシーを緩めることでインストールできます。
> Set-ExecutionPolicy RemoteSigned -scope CurrentUser
Scoopコマンドが実行できることを確認できればインストールは完了です。
> scoop
Usage: scoop <command> [<args>]
...
sudoコマンドのインストール
先程インストールしたScoopを使用してsudoコマンドをインストールしていきます。
# Scoop経由でsudoコマンドをインストールする
> scoop install sudo
Installing 'sudo' (0.2020.01.26) [64bit]
sudo.ps1 (2.2 KB) [======/ ~ ======] 100%
Checking hash of sudo.ps1 ... ok.
Linking ~\scoop\apps\sudo\current => ~\scoop\apps\sudo\0.2020.01.26
Creating shim for 'sudo'.
'sudo' (0.2020.01.26) was installed successfully!
installed successfully!
となればsudoコマンドのインストール成功です。
実行してみる
インストール直後に自動でパスが通っているため、コマンドプロンプトやPowerShellからおなじみのsudoコマンドを実行できます。
# 確認
> sudo
usage: sudo <cmd...>
例として、編集に管理者権限が必要なhostsを管理者権限でメモ帳を使って開いてみます。
# notepad(メモ帳)でhostsを指定
> sudo notepad C:\Windows\System32\drivers\etc\hosts
管理者に昇格するためのUAC(ユーザーアカウント制御)が表示されます。
続行すると管理者権限でhostsをメモ帳で開くことができます。
このようにsudoコマンドをインストールすることでUNIX系OSと同じ感覚で一時的に管理者に昇格してコマンド・アプリの実行ができるようになります。
おわりに
Scoopを使ってWindowsでsudo
を使えるようにする方法について紹介しました。Windowsでも一時的に管理者権限で操作したい処理があるときに手軽に管理者権限に切り替えて実行できるのは便利です。また紹介したScoopというパッケージマネージャーを使うことで様々なコマンドをWindowsにも導入できます。Scoopを活用することで開発環境の構築、コマンドラインを使ったWindowsの操作が楽になるため、使えるものはどんどん活用していきたいところです。
最後まで読んでいただきありがとうございました。
Discussion