[Bug 3976] sshd 9.8+ does not record utmp/wtmp/lastlog for interactive sessions on DISABLE_FD_PASSING platforms (regression)
bugzilla-daemon at mindrot.org
bugzilla-daemon at mindrot.org
Mon Oct 12 01:29:50 AEDT 2026
https://bugzilla.mindrot.org/show_bug.cgi?id=3976
--- Comment #2 from Cary Lewis <cary.lewis at gmail.com> ---
With 10.6 out, I think this bug and the new advisory have the same root
cause. On DISABLE_FD_PASSING platforms the session process keeps root
so it can open its own pty. Because of that it never asks the monitor
for one, and the monitor is the only place logins get recorded.
SCO OpenServer 5 can pass fds after all, just not over a socket.
SCM_RIGHTS and I_SENDFD on a socketpair both fail, but
I_SENDFD/I_RECVFD work over a STREAMS pipe made from /dev/spx. I now
have a proof-of-concept patch against 10.3p1 that uses this, and
configure no longer sets
DISABLE_FD_PASSING for SCO. With it, the monitor allocates the pty and
records the login as usual, and the session process drops to the user.
who, w, last and logout records all work, without the session.c
workaround.
SCO needed one extra change: its getlogin() only matches a utmp entry
whose ut_pid is the login shell's pid. So the patch has the monitor
record the login once the shell has been forked, using the shell's pid.
I am writing to openssh-unix-dev asking whether this approach would be
acceptable. If it is, I'll port it to 10.6 and attach it here.
--
You are receiving this mail because:
You are watching the assignee of the bug.
More information about the openssh-bugs
mailing list