Amazon Web Services 資料一覧
Amazon Linux 1のOSを再起動すると/etc/pam.d/sshdが更新される理由
2022/07/27更新
対応バージョン: Amazon Linux 1
$ 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においてはこの挙動は起こらない。