| Server IP : 198.38.94.67 / Your IP : 216.73.217.142 Web Server : LiteSpeed System : Linux d6054.dxb1.stableserver.net 5.14.0-570.25.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 9 04:57:09 EDT 2025 x86_64 User : azfilmst ( 1070) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /usr/lib/python3.9/site-packages/sssd/ |
Upload File : |
from systemd import journal
from sssd.source_reader import Reader
_EXE_PREFIX = "/usr/libexec/sssd/"
_NSS_MATCH = _EXE_PREFIX + "sssd_nss"
_PAM_MATCH = _EXE_PREFIX + "sssd_pam"
_BE_MATCH = _EXE_PREFIX + "sssd_be"
class Journald(Reader):
"""
A class used to represent a Journald Reader
"""
def __init__(self):
super().__init__()
self.reader = journal.Reader()
self.reader.this_boot()
self.reader.seek_head()
def __iter__(self):
"""
Yields:
str: The next journal entry message, with timestamp if found
"""
self.reader.seek_head()
for entry in self.reader:
ts = entry['__REALTIME_TIMESTAMP']
msg = entry['MESSAGE']
if ts:
yield f'{ts}: {msg}'
else:
yield msg
def set_component(self, component, child):
"""
Switch the reader to interact with a certain SSSD component
NSS, PAM, BE
"""
self.reader.flush_matches()
if component == self.Component.NSS:
self.reader.add_match(_EXE=_NSS_MATCH)
elif component == self.Component.PAM:
self.reader.add_match(_EXE=_PAM_MATCH)
elif component == self.Component.BE:
self.reader.add_match(_EXE=_BE_MATCH)