![如何在 Linux 上自定义 telnet 登录提示](https://linux22.com/image/563692/%E5%A6%82%E4%BD%95%E5%9C%A8%20Linux%20%E4%B8%8A%E8%87%AA%E5%AE%9A%E4%B9%89%20telnet%20%E7%99%BB%E5%BD%95%E6%8F%90%E7%A4%BA.png)
当我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
该选项 - 如果您删除它,它是否会给您所需的行为?