はじめに
記事執筆のために脆弱なSudoを使用した環境を作ろうとしたが、環境構築に手間取ったので備忘録として残しておきます。
Sudoのダウングレードなんて、する機会はないかもしれないが…
現状と最終目標
現状はsudo 1.8.29がインストールされている状態です。
[root@localhost ~]# sudo --version
Sudo バージョン 1.8.29
最終目標はsudo 1.8.27をインストールすることです。
ダウングレード方法
特権ユーザーで操作します。
まず、リポジトリに目的のバージョンが無いことを確認します。
リポジトリに目標のバージョンがある場合は、そこからダウングレード出来ます。
今回は上位バージョンのみがリポジトリにありました。
# dnf list sudo
利用可能なパッケージ
sudo.x86_64 1.9.5p2-1.el8_9 baseos
指定バージョンのソースファイルをダウンロードします。
いくつかソースファイルを提供しているサイトがあるので各々で選択してください。
今回は下記サイトからダウンロードしました。
# wget https://www.sudo.ws/dist/sudo-1.8.27.tar.gz
ダウンロードした圧縮ファイルを解凍します。
# tar -zxvf sudo-1.8.27.tar.gz
現在インストールされているsudoを削除します。
# dnf remove sudo
場合によってはsudoパッケージは削除されないように保護されており、削除できないことがあります。
エラー:
問題: 操作は結果的に以下の保護されたパッケージを削除します: sudo
(インストール不可のパッケージをスキップするには、'--skip-broken' を追加してみてください または、'--nobest' を追加して、最適候補のパッケージのみを使用しないでください)
その際は、/etc/dnf/protected.d/sudo.confファイル削除後、再度dnf removeを実行してください。
# rm -f /etc/dnf/protected.d/sudo.conf
# dnf remove sudo
先ほど解凍したsudoのディレクトリに移動します。
cd sudo-1.8.27
コンパイルしてインストールします。
# ./configure
# make
# make install
最後にSudoのバージョンが目的の物か確認します。
[root@localhost sudo-1.8.27]# sudo -V
Sudo バージョン 1.8.27
ダウングレードに成功しました。
参考サイト