RHEL6 ELSでsudoパッケージがアップデートできない!?
sudoの脆弱性によりローカルユーザがrootに権限昇格する可能性がある、という注意喚起がありました(CVE-2021-3156)。
Red Hat Enterprise Linuxでは脆弱性を修正したsudoパッケージが公開されているので、アップデートするだけで解決です。
しかし、RHEL7、RHEL8はdnfコマンドでsudoパッケージをアップデートできましたが、RHEL6だけは「yum update sudo」コマンドを実行してもsudoのアップデートパッケージが表示されません。
RHEL6は2020年11月30日でメンテナンスサポート2が終了し、現在は延長ライフサイクルサポート(Extended Life-cycle Support(ELS))期間中です。そして使用しているRHEL6はELSサブスクリプションをアタッチ済み。
Red Hat社サポートの「RHSA-2021:0227 – Security Advisory」によると、RHEL6 ELS向けに「sudo-1.8.6p3-29.el6_10.4」を提供しているとありますが、yumコマンドを実行してもこのバージョンがアップデート対象に出てきませんでした。
RHEL6 ELSリポジトリをyumで参照する必要があった
原因は単にyumリポジトリ設定でExtended Life-cycle Support(ELS)のリポジトリがデフォルトで無効になっていたことでした。
メインストリームのリポジトリとは別だったのですね。
subscription-managerコマンドにより延長ライフサイクルサポートアドオン(ELS)サブスクリプションをアタッチすることにより「/etc/yum.repos.d/redhat.repo」ファイルにELSリポジトリ「rhel-6-server-els-rpms」のセクションが追加されるようです。
僕の場合はredhat.repoの一番最後にこのセクションが追加されていました。
[rhel-6-server-els-rpm]
metadata_expire = 86400
【中略】
enabled = 0
sslcacert = /etc/rhsm/ca/redhat-uep.pem
gpgcheck = 1
「enabled = 0」、これではyumコマンドを実行しただけではELSリポジトリを参照しません。
原因が分かれば後は簡単です。
方法(1) enablerepoオプションを使う
yumコマンド実行時にenablerepoオプションでELSリポジトリ「rhel-6-server-els-rpms」を明示的に有効にします。
以下はsudoパッケージをアップデートするためのコマンド例です。
yum update sudo --enablerepo rhel-6-server-els-rpms
方法(2) デフォルトでELSリポジトリを有効化する
yumコマンドでデフォルトでELSリポジトリ「rhel-6-server-els-rpms」を有効にするよう「/etc/yum.repos.d/redhat.repo」ファイルを編集します。
ファイルの「rhel-6-server-els-rpm」セクションの「enabled = 0」を「enabled = 1」に書き換えるだけです。
後は単にyumコマンドを実行するだけ。
以下はsudoパッケージをアップデートするためのコマンドです。
yum update sudo
おわりに
必要があってRHEL6のELSを利用しているので、デフォルトでELSリポジトリを有効化して欲しいですね。
まぁ、いつまでもRHEL6を使っている方が悪いのかもしれませんが。
コメント