CA Privileged Identity Manager Unix版 コマンド行コンソールログイン(getty)に関する注意事項について

Document created by Manabu_Taniguchi Employee on Jul 17, 2015Last modified by konsh01 on Aug 27, 2015
Version 1Show Document
  • View in full screen mode

文書番号: JTEC002153

製品名: CA Privileged Identity Manager

バージョン: 全バージョン

OS: Unix


◆ 内容

CA Privileged Identity Manager(以下CA PIM)Unix版において、コマンド行コンソールログインに関する注意事項ついて解説します。

 

◆ 詳細内容

CA PIMを開始した後の最初のコマンド行コンソールログインに対して、ログインログが記録されないケースがあります。なお、2回目以降のコマンド行コンソールログインに対しては、正しくログインログが記録され、ログインユーザも正しく認識されます。

原因:
コマンド行コンソールログインがgettyで実装されている場合、上記事象が発生します。弊社で調査したところ、AIXおよびHPがこれに該当することが判明しています。
CA PIMがgettyによるコマンド行コンソールログインを正しく識別するには、CA PIM起動後にgettyを起動する必要があるためです。

確認方法:

1.コンソールログイン後に、以下のコマンドを実行して出力を比較する。
[事象発生時の場合]
Console Login: testuser
Password: xxxxxxxx
$ id
uid=104(testuser) gid=1(staff)
$ sewhoami
root
※下線で示したidとsewhoamiの出力結果が異なる場合、事象が発生したと判断できます。
2.監査ログにコンソールログインに対するLOGINログの記録がない。
# seaudit -a -sd today -st HH:MM -et HH:MM  HH:MM コンソールログインした時刻
出力結果にtestuserのLOGIN ログが記録されていない。

対処方法:
CA PIMを起動するスクリプトを作成し、seload後にgettyを強制終了させることで対処できます。

 

[サンプルスクリプト]

#!/bin/sh

#

/opt/CA/AccessControl/bin/seload

#

loop=1

while [ $loop -lt 10 ] ;

do

      SEOSD_STATUS=`ps -ef | grep bin/seosd | grep -v grep |  grep -c seosd `

      if [ $SEOSD_STATUS -eq 0 ] ; then

               if [ $loop -eq 9 ] ; then

                          echo "### getty not kiiled because seosd not started"

                          break

               fi

               sleep 10

      else

               GETTYPID=`ps -ef | grep sbin/getty | grep -v grep | awk '{print $2}'`

               if [ -n "$GETTYPID" ]; then

                          kill -9 $GETTYPID

               else

                          echo `date` "### getty not killed because process getty not existed"

               fi

               break

       fi

       loop=`expr $loop + 1`

done

 

(※1) OS側のinittabの設定でgettyにはrespawnが設定されており、gettyプロセスが終了するとinitにより新たなgettyプロセスが自動的に開始される仕組みになっています。

Attachments

    Outcomes