Amazon Web Services 資料一覧
Amazon Linux 1のOSを再起動すると/etc/pam.d/sshdが更新される理由
2022/07/27更新
対応バージョン: Amazon Linux 1
Amazon Linux 1のOSを再起動すると特にsshd関連の設定変更をしたわけでもないのに/etc/pam.d/sshdが更新される。$ uname -r 4.14.285-147.501.amzn1.x86_64
これはsshdの起動スクリプト(/etc/rc3.d/S55sshd)に以下のような処理が書かれているためである。
80行目でhandle_pam_broken_kernel()を呼び出し、同関数の中で「すでに/etc/pam.d/sshdが存在していたらsed -i にて/etc/pam.d/sshd自身を更新する」
: 49 handle_pam_broken_kernel() 50 { 51 if [ -f /etc/pam.d/sshd ] ; then 52 if [[ "$(uname -r)" =~ 3\.10\.34-3[78]\.137\.amzn1 ]] ; then 53 # problematic kernel, disable pam_loginuid.so 54 sed -r -i -e 's/^(session.*pam_loginuid.*$)/##sshd_autodisabled##\1/' /etc/pam.d/sshd 55 else 56 # should be a valid kernel, undo auto-disablement 57 sed -r -i -e 's/^##sshd_autodisabled##//' /etc/pam.d/sshd 58 fi 59 fi 60 } : 72 start() 73 { 74 [ -x $SSHD ] || exit 5 75 [ -f /etc/ssh/sshd_config ] || exit 6 76 # Create keys if necessary 77 /usr/sbin/sshd-keygen 78 79 # workaround a broken kernel build 80 handle_pam_broken_kernel 81 82 echo -n $"Starting $prog: " 83 $SSHD $OPTIONS && success || failure 84 RETVAL=$? 85 [ $RETVAL -eq 0 ] && touch $lockfile 86 echo 87 return $RETVAL 88 } :
なおAmazon Linux 2においてはこの挙動は起こらない。