当我使用 ssh 登录服务器上的 root 用户时,0
会创建一个条目,/var/run/user
因为pam_systemd
告诉我systemd-logind
要执行此操作。这是一个指示符,表明 uid 0 的用户会话已启动。
然后,当我运行时su jack
,我仍然只看到;0
中的条目。/var/run/user
本次会议没有任何条目。
但是,journalctl
显示 pam 会话已打开,并且/etc/pam.d/su
包括common-session
,其中添加了session optional pam_systemd.so
。所以我认为应该创建一个用户会话。
如何创建su
用户会话?
如果相关的话,我使用的是 Debian 11。
答案1
如果当前进程已经是现有会话的成员,则 PAM 模块不会创建会话。我找到了以下解决方法来从现有会话创建会话:
systemd-run --system --scope \
su -l
基本上,您su -l
在系统级范围内运行,这不是当前用户会话的一部分,因此 PAM 模块将为该su -l
进程创建一个会话。一旦进程被移动到会话,临时范围就为空并将被删除。
唯一的问题是您的当前用户必须拥有在系统级别创建范围的权限,并且您必须进行两次身份验证,一次是当前用户验证范围的创建,然后是您要为其创建会话的用户再次进行身份验证。