Telnet root login

Robert Watson rwatson at FreeBSD.org
Fri Mar 27 05:24:54 PDT 2009


On Thu, 26 Mar 2009, Barney Cordoba wrote:

> Ok, I have some critical info here. When I set up ttys with the proper pts/0 
> setting, I can login are root using
>
> login localhost
>
> however when telnet in from my iMAC, it doesn't work. It also doesn't give 
> me the "Trying SRA secure login" from the mac. So it seems its using a 
> different authentication when I telnet from the MAC.

Hi Barney (and now also Ed!),

This indeed appears to be the key.  getttyent(3) appears to properly return 
the /etc/ttys entry for pts devices, and the TTY_SECURE flag is properly 
returned.  However, pam_securetty isn't using a valid tty name string -- it 
turns out login, invoked by telnet in the non-SRA case, assumes it can run the 
following code to get back the tty name:

         /*
          * Get current TTY
          */
         ttyn = ttyname(STDIN_FILENO);
         if (ttyn == NULL || *ttyn == '\0') {
                 (void)snprintf(tname, sizeof(tname), "%s??", _PATH_TTY);
                 ttyn = tname;
         }
         if ((tty = strrchr(ttyn, '/')) != NULL)
                 ++tty;
         else
                 tty = ttyn;

The resulting string ("2" in my case) is passed on to PAM as the tty, and then 
pam_securetty looks that up without any success.

Ed, is this something you could take a look at?  It's not clear to me if the 
above logic just needs fixing, or if there are more subtle considerations.

Thanks,

Robert N M Watson
Computer Laboratory
University of Cambridge


More information about the freebsd-current mailing list