PAMSC が稼働中に sudo コマンドがハングする
search cancel

PAMSC が稼働中に sudo コマンドがハングする

book

Article ID: 421891

calendar_today

Updated On:

Products

CA Privileged Access Manager - Server Control (PAMSC)

Issue/Introduction

Privileged Access Manager Server Control ( 以下、PAMSC) が稼働する環境で、いくつかの sudo コマンドが終了しない事象が発生した。
類似のコマンドのうち、1%程度が失敗しており、他のものは成功していた。
親プロセスが終了しており、現在はプロセス ID 1 でハングしている状況となっている。

[root@server: /root] ps -ef | grep -i sudo
root       37222       1  0 Jun27 ?        00:00:00 sudo -i -u username ls -rt /xxxxx/outbound_in
root      211021       1  0 Jun25 ?        00:00:00 sudo -i -uusername ls -rt /xxxxx/outbound_in
root      449106       1  0 Jun24 ?        00:00:00 sudo -i -u username ls -rt /xxxxx/inbound
root      835540       1  0 Jul01 ?        00:00:00 sudo -i -u username ls -rt /xxxxx/inbound
root     1044492       1  0 Jun25 ?        00:00:00 sudo -i -u username ls -rt /xxxxx/outbound_in
root     1048884       1  0 Jun25 ?        00:00:00 sudo -p ___SNC_PWD_PROMPT___869b0 ls -l /opt/server/tomcat/webapps/ROOT//WEB-INF/web.xml
root     1357524 1518524  0 04:00 ?        00:00:00 sudo -i -u username chmod 664 /xxxxx/*

レッドハット社がメモリのスナップショットから調査した結果、以下のように報告があった。

-----

crash> foreach sudo vm | awk '/opt/ { print($5) }' | sort | uniq -c

     48 /opt/CA/AccessControl/lib/64/libacdki.so
     96 /opt/quest/lib64/nss/libnss_vas4.so.2
     96 /opt/quest/lib64/security/pam_vas3.so

futexはロックの構造体のアドレスを表示するだけになるため、それ自体は直接的に問題の原因を特定することは困難です。
また、こちらのアドレスはメモリ上にあるため、解析用に提供されたスナップショットには含まれていません。
これはメモリ上だけで存在し、ディスク上に存在しないためと認識しています。

主な原因は Vintela (VAS) PAM にあると考えられますが、PAMSCのライブラリも混在していることから、 PAMSC側での調査も推奨とさせていただきます。

Environment

Privileged Access Manager Server Control: Linux版全てのバージョン

Cause

"sudo -i" コマンドにおける根本的原因については不明のままですが、PAMSC サービスが問題との関連性から回避するためにやり取りを停止する方法を推奨とさせていただきます。

Resolution

原因は特定されていませんが、調査の結果、本プロセスはPAMSC の PAM が関与する必要がないことが判明しました。
このため、弊社からは今後の問題を回避するために以下の seos.ini のトークンを設定することを推奨とさせていただきます。

; このトークンを使用して、pam_seos によってバイパスされるサービス
; (アプリケーション) を決定します。
; 例: ftp
; デフォルト値: ftp,vsftpd
; bypass_services = service1[,service2,..]
bypass_services = ftp,vsftpd

以下のように変更します。

bypass_services = ftp,vsftpd,sudo-i 

Additional Information

なお、本KBは以下の英文 KB を翻訳し補足しました。

Article ID: 408462: sudo command hangs while seos is loaded