Для регистрации выхода пользователя из системы используется поиск события аудита с типом USER_END. Данное событие генерится pam'ом при вызове функции pam_setcred(pamh, PAM_DELETE_CRED). В случае wdm'а эта функция выполняется не в том треде, что приводит к регистрации события под не выставленным sessionid, uid и pid, отличающимся от USER_LOGIN. ---- type=USER_LOGIN msg=audit(04/21/09 15:51:23.773:6806) : user pid=6975 uid=root auid=rider ses=18 msg='op=wdm id=rider exe=/usr/bin/wdm (hostname=?, addr=?, terminal=:0 res=success)' ---- type=USER_END msg=audit(04/21/09 15:51:47.296:6809) : user pid=6961 uid=root auid=unset ses=unset msg='op=PAM:session_close acct=rider exe=/usr/bin/wdm (hostname=?, addr=?, terminal=:0 res=success)' Для сравнения - корректная запись в логе. Как видно - pid, auid, ses у обоих записей совпадают.: ---- type=USER_LOGIN msg=audit(04/21/09 15:41:03.281:6798) : user pid=9699 uid=root auid=rider ses=17 msg='op=login id=rider exe=/bin/login (hostname=?, addr=?, terminal=/dev/tty3 res=success)' ---- type=USER_END msg=audit(04/21/09 15:41:03.888:6800) : user pid=9699 uid=root auid=rider ses=17 msg='op=PAM:session_close acct=rider exe=/bin/login (hostname=localhost, addr=127.0.0.1, terminal=/dev/tty3 res=success)
Этот кусок надо переписать чуть менее чем полностью. А по w/who иксовые сессии должны быть видны?
wdm-1.28-alt6 -> sisyphus: * Wed Apr 22 2009 Alexey I. Froloff <raorn@altlinux> 1.28-alt6 - Call pam_open_session() from the same process pam_close_session() will be called (closes: #19706) - pam_loginuid should be called before system-auth - Moved wdm's authfiles to /var/lib/wdm - Added logrotate script for wdm-error.log - Added update_wms method - Configuration and scripts updated: + GiveConsole/TakeConsole: also set "terminal" + Xservers, Xsetup_0: stolen from xinitrc/xdm + wdm-config: terminateServer for :0 set to "true", fixed paths and filenames