Thank you Mantas!
On Tue, Jan 10, 2023 at 10:58 PM Mantas Mikulėnas wrote:
>
> The sessions listed in loginctl are created and their IDs assigned by
> systemd-logind (when asked by pam_systemd).
>
> If /proc/*/loginuid and /proc/*/sessionid are available (set up by
> pam_loginuid), then logind directly takes the audit session ID as logind
> session ID.
>
> If those are not available (kernel audit support disabled), then logind
> itself allocates a logind session ID and adds the "c" prefix to prevent
> collisions with audit IDs.
>
> src/login/logind-dbus.c:870:if (asprintf(, "c%lu",
> ++m->session_counter) < 0)
>
> On Wed, Jan 11, 2023, 05:58 hai wu wrote:
>>
>> Where is the systemd sessionid like `c508` being generated? If kernel
>> auditd is disabled, then it seems systemd `loginctl list-sessions`
>> command would list user session ids all with `c` character prefix
>> instead.
>>
>> I could not find the source code where these session ids got
>> generated. Are these session ids generated from systemd source code or
>> from Linux kernel source code?
>>
>> systemd has this function `sd_pid_get_session` to get session id, it
>> seems that's parsing `/proc/self/cgroup`, instead of generating such
>> session ids..
>>
>> Regards,
>> Hai