Chapter 47. Configuring session recording by using the CLI


Learn how to configure user terminal session recordings using the System Security Services Daemon (SSSD), and how to manage and play back these recordings using the tlog command-line utility.

47.1. Session recording overview and components

Session recording captures and saves a user’s terminal activity. This provides a detailed, unchangeable record of all commands, output, and error messages, which you can use for auditing, troubleshooting, and investigating a security incident.

SSSD enforces the recording policies you define, and the tlog utility handles the actual recording and playback.

Components of the session recording
  • tlog utility

    The tlog utility provides tools for recording and playing back terminal I/O. tlog-rec-session functions as an intermediary login shell and captures all data between the user’s terminal and shell. All tlog recordings are in JSON format. You can play back recorded sessions using tlog-play. Note that by default, terminal input recording is disabled for security reasons. For detailed configuration options, see the /etc/tlog/tlog-rec-session.conf file and the tlog-rec-session.conf(5) man page on your system.

  • SSSD

    SSSD provides a set of daemons that manage access to remote directories and authentication mechanisms. When you configure session recording, SSSD overlays the user’s default shell with the tlog-rec-session program.

Limitations of session recording
  • You can configure session recording for the root user, but the root user has the privileges to disable or bypass the recording process, which makes the session recording unreliable for auditing purposes.
  • Terminal sessions in a GNOME graphical session are not recorded. This is because all terminals within a graphical session share a single audit session ID, which prevents tlog from distinguishing between them and capturing recordings correctly.
  • A logging loop can occur when viewing the journal. When a recorded user views the system journal or /var/log/messages, it generates new logs, which are then recorded and displayed, causing a loop of flooded output.

    To prevent the logging loop, view the journal in real time and filter out the log entries which create the loop:

    journalctl -f | grep -v 'tlog-rec-session'
    Copy to Clipboard Toggle word wrap

    You can also configure tlog to limit the output. For details, see tlog-rec-session.conf man pages.

  • You must configure session recording on the target host for remote execution. For example, if you want to record a user’s session when they use ssh to connect to a remote system, configure the recording on the remote system they connect to.
  • All recordings are lost on reboot if systemd-journald service uses its default configuration to store the journal in-memory.

You can configure and enable session recording for specific users and groups from the command line.

When you configure session recording, you use SSSD to define which users or groups to record by setting the scope option to one of the following values:

  • none to record no sessions
  • some to record only specified users and groups
  • all to record all users

Prerequisites

  • Commands that start with the # command prompt require administrative privileges provided by sudo or root user access. For information on how to configure sudo access, see Enabling unprivileged users to run certain commands.
  • You are using SSSD for authentication.

Procedure

  1. Install the tlog package:

    # dnf install tlog
    Copy to Clipboard Toggle word wrap
  2. Open the sssd-session-recording.conf configuration file:

    # vi /etc/sssd/conf.d/sssd-session-recording.conf
    Copy to Clipboard Toggle word wrap
  3. Specify the scope of session recording and the users and groups to record. For example:

    [session_recording]
    scope = some
    users = <user_name_1>, <user_name_2>
    groups = <group_name>
    exclude_users = <user_name_to_exclude>
    exclude_groups = <group_name_to_exclude>
    Copy to Clipboard Toggle word wrap

    For more details, see the sssd-session-recording(5) man page on your system.

  4. To enable the SSSD profile, run the following command:

    # authselect select sssd with-tlog
    Copy to Clipboard Toggle word wrap
  5. Restart SSSD to load the configuration changes:

    # systemctl restart sssd
    Copy to Clipboard Toggle word wrap

47.3. Playing back session recordings

The system journal stores session recordings. By default, it saves them in-memory, so you lose recordings on reboot unless you configure persistent storage.

You can play back recordings directly from the system journal by using the tlog-play utility. Alternatively, you can install the cockpit-session-recording package to manage and play back recordings on the RHEL web console.

Prerequisites

  • Terminal sessions have been recorded.

Procedure

  1. Optional: List recorded sessions:

    $ journalctl COMM=tlog-rec-session
    Copy to Clipboard Toggle word wrap
  2. Play back a specific session:

    # tlog-play --reader=journal --journal-id=<recorded_session_id>
    Copy to Clipboard Toggle word wrap

    For more advanced options, such as changing playback speed or fast-forwarding, see the tlog-play man page on your system.

Back to top
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2025 Red Hat