如何在 Linux 上自定义 telnet 登录提示

如何在 Linux 上自定义 telnet 登录提示

当我login在 Debian 上运行命令时,我得到:

hostname login: _

在 RHEL5、Solaris 或 HP-UX 上我得到:

login: _

我需要能够在 Linux 机器上自定义login:并提示它。我可以重新编译该包,但有没有更好(更简单)的方法来做到这一点?password:

我正在寻找一些 PAM 配置选项,但没有找到任何东西。

我知道可以用pam_set_item()函数使用PAM_USER_PROMPT常量,但是有没有办法在/etc/pam.d/*配置文件中进行这样的定制?

先感谢您。

更新:

我需要这个来自定义 telnet 用户名和密码提示。但是,telnetd正在使用该提示,这就是我在这个问题中/bin/login要求自定义的原因。login

答案1

您可以尝试将系统区域设置更改为包含所需标签的自定义区域设置。

答案2

如果你正在使用mingetty,那么你可以--nohostname/etc/inittab

1:2345:respawn:/sbin/mingetty --nohostname tty1
1:2345:respawn:/sbin/mingetty --nohostname tty2



--nohostname
          Do not print the hostname before the login prompt.

答案3

如果您在 /etc/inittab 中使用 mgetty,则可以附加 -p 标志来更改登录提示

man mgetty


   -p <login prompt>
          Use the given string to prompt users for their login names. Various tokens are allowed in this string. These tokens are: @ for the system name, \n, \g, \f,  for  new-
          line, bell, and form feed, respectively.  \v and \r will expand to the OS version and release.  \P, \l and \L will expand to the tty name ("ttyS0").  \Y will give the
          Caller ID, \I the "CONNECT foobar" string returned by the modem, and \S or \b will output the port speed.  \N and \U give the number of users currently logged in.  \C
          will  be  changed  into  the result of ctime(), and \D or \d and \t or \T will output the date and time, respectively. Finally, \<digit> will use digit as octal/deci-
          mal/hexadecimal representation of the character to follow.

          The default prompt is specified at compile time.

答案4

根据telnetd手册页,使用默认选项时它会要求输入凭据,而不是login

它还有这个选项:

   -h     Disables  the printing of host-specific information before login
          has been completed.

据推测您正在调用telnetd该选项 - 如果您删除它,它是否会给您所需的行为?

相关内容