Help us understand the problem. What is going on with this article?

Amazon Linux(に限りませんがRPM系)のbashをSYSLOG_HISTORYに対応させる

More than 5 years have passed since last update.

背景

bashのSYSLOG_HISTORYを導入し、作業の記録をsyslogへ残しておきたいために実施します。
作業ミスなどを遡るなど、大いに有用です。

準備

環境の構築

コンパイルをするために必要なパッケージを導入します。(sudo)

sudo yum -y install rpm-build texinfo bison ncurses-devel autoconf gettext gcc make

ソースコードの入手

Amazon Linuxではget_reference_sourceでソースパッケージを取得します。CentOSなどでは yum downloader --source などかな。

get_reference_source -p bash

ソースコードの展開

作業用ユーザにてソースコードを展開します。特に指定をしていない場合、~ 以下に rpmbuild/ というディレクトリが作成されてソースコードが展開されます。

$ rpm -ivh /usr/src/srpm/debug/bash-4.1.2-15.24.amzn1.src.rpm
$ tree -d rpmbuild/
rpmbuild/
├── SOURCES
└── SPECS

パッチの適用

以下のパッチを適用します。makeの末尾に -DSYSLOG_HISTORY が追加されています。他の部分は変更の必要がありませんので、この部分のみの対応となります。

--- /home/ec2-user/rpmbuild/SPECS/bash.spec.old 2015-04-24 00:15:48.649314922 +0000
+++ /home/ec2-user/rpmbuild/SPECS/bash.spec 2015-04-24 00:16:43.845303142 +0000
@@ -165,7 +165,7 @@

 # For -fwrapv option see https://www.securecoding.cert.org/confluence/display/seccode/INT32-C.+Ensure+that+operations+on+signed+integers+do+not+result+in+overflow
 # Bash needs to be fixed.
-make "CFLAGS=$CFLAGS -fwrapv" "CPPFLAGS=-D_GNU_SOURCE -DRECYCLES_PIDS `getconf LFS_CFLAGS`"
+make "CFLAGS=$CFLAGS -fwrapv" "CPPFLAGS=-D_GNU_SOURCE -DRECYCLES_PIDS `getconf LFS_CFLAGS` -DSYSLOG_HISTORY"
 %check
 make check

構築

rpmbuildによる構築

LANG=C rpmbuild -ba ~/rpmbuild/SPECS/bash.spec

インスタンスサイズにもよりますが、しばらくするとパッケージが作成されます。

導入

作成されたパッケージを導入します。(sudo)

sudo rpm -Uvh rpmbuild/RPMS/x86_64/bash-*.rpm --force

おまけ

今後のyum updateでSYSLOG_HISTORYなしのbashで更新されないようにyum.confでbashの更新を除外対象にします。
もし脆弱性などで対処が必要な場合は自動ではできなくなるので手動で実施することになります。その際には改めてパッケージ作成から行うことで対応できます。

sudo -s
echo 'exclude=bash*' >> /etc/yum.conf
exit
cloudpack
Amazon Web Services (AWS) の導入設計、環境構築、運用・保守をサポートするマネジドホスティングサービス
https://cloudpack.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした