Red Hat Linux 6でELS提供パッケージをアップデートする

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を使っている方が悪いのかもしれませんが。

コメント