OS X Mountain Lion以前のsudoは古く、つい最近も多くのLinuxではすでに修正されている(ただしRHELおよびRHEL互換のLinuxディストリビューションでは修正されていない)のに、古いバージョンが使われ続けていて良くないみたいな話をききました。
いくら待ってもこのぜい弱性をアップルが塞いでくれなさそう(OS X 10.9では修正済みだけど...)なので、本家からソースを引っぱってきて使うまでの流れを調べたので、早速やってみることにしました。
以下はビルドから利用するまでの手順です。「ユーザーの.bash_profileに書くと他のユーザーが使えないじゃないか」とか「\sudo〜を実行されると、システムのsudoが使われるから意味ないじゃないか」という声がありそうですが、ここでは細かい話は置いときます。
■材料
- sudoのソースファイル
- Xcode
- Command Line Tools
■手順
$ mkdir ~/build
(ビルド用ディレクトリを作成)
http://www.sudo.wsからダウンロードする(→ダウンロードフォルダにソースファイルが保存される)$ mv ~/Downloads/sudo-1.8.7.tar.gz ~/build
(ソースファイルをビルド用ディレクトリに移動)
$ cd ~/build
tar zvxf sudo-1.8.7.tar.gz
(ソースファイルを展開)
$ cd sudo-1.8.7$ sudo ./configure --prefix=/usr/local
(prefixでパッケージのインストール場所を指定してconfigureファイルを作成)
$ sudo make
(ビルド)
$ sudo make install
(インストール)$ ls /usr/local/bin/ | grep sudo
sudo
sudoedit
sudoreplay
(実行ファイルが保存されていることを確認)$ vi ~/.bash_profile
(aliasを記述してコマンドを上書きする)
alias sudo="/usr/local/bin/sudo"
alias sudoedit="/usr/local/bin/sudoedit"
alias sudoreplay="/usr/local/bin/sudoreplay"$ source ~/.bash_profile
(aliasを反映)$ sudo -V
(バージョンを確認)
Sudo version 1.8.7
Sudoers policy plugin version 1.8.7
Sudoers file grammar version 43
Sudoers I/O plugin version 1.8.7
■アンインストール
$ cd ~/build/sudo-1.8.7
$ sudo make uninstall
インストール後はsudo vi〜を実行するのをやめて、sudoedit 〜を使った方が良さそうですね。
■関連