我想检索linux内核(内核空间)中当前进程的sessionid。我看到task_struct
有一个字段sessionid
,但它只在宏CONFIG_AUDITSYSCALL
为ON时定义。所以我试图用这个宏打开内核,但仍然没有得到结果。此外,我尝试从CONFIG_AUDITSYSCALL
audit_get_sessionid(current)
函数获得其值,但得到-1或垃圾值(与用户空间中的getsid(0)
方法不同)。在linux内核(内核空间)中检索会话Id
我很震惊。任何建议都会有很大的帮助。
非常感谢Kuba的及时回复。我尝试使用你提到的,但我得到了不同的结果,用于用户空间中的getsid(0)和内核空间中的task_session(current)。 的值是:15422(具有GETSID(0)) :3473445976(与task_session(电流)) – CraCod
我刚计算出来: pid_vnr(task_session(电流)); 会返回我们当前会话的ID。 感谢Kuba ... – CraCod
@sebe它令我惊讶,你正在编写内核代码,并没有注意到示例代码中的'sid'是一个*指针*。 –