Linux 和大多数其他形式的 Unix 的长期用户(特别是那些曾经使用基于古老的 SysV init 的启动框架的用户)支持一个特殊的文件/etc/问题在本地控制台和串行终端上显示登录:迅速的。
我需要为我的 OpenBSD 便携式跳转主机做类似的事情。我把这些系统带到活动现场,远程维护一些配线柜(它们采用 NUC 外形,不比一包香烟大多少)。但我希望快速、轻松且无需身份验证即可访问 MAC 和 IP(DHCP)地址(仅em0)。
然而,OpenBSD 不支持/etc/问题...所以我不得不用rc.本地和一个gettytab.模板.(作为答案发布在下面)。
问题:有没有更好的方法来做到这一点?
答案1
我创建了一个/etc/gettytab模板如下:
# The default gettytab entry, used to set defaults for all other
# entries, and in cases where getty is called with no table name
#
default:\
:np:im=\r\n%s/%m\r\n{MACADDR}\r\n(%h@{IPADDR}) (%t)\r\n\r\n:sp#1200:
...相关更改是插入字符串\r\n{MACADDR}\r\n和@{IP地址}在该条目中。“im:”是该表的“问题消息”字段吗?
从那里我在我的/etc/rc.local:
## Include IP and MAC address of em0 in login screen message:
mv ./gettytab ./gettytab.old
ifconfig em0 | egrep "(lladdr|inet) " \
| sed 's/:/-/g' \
| { read x macaddr x; read x ip x;
sed -e "s/{IPADDR}/$ip/;s/{MACADDR}/$macaddr/" ./gettytab.template
} > ./gettytab
## : in MAC address translated to - for compatibility with gettytab syntax
(我想我可以尝试一种优化,只有当这两个变量中的任何一个发生变化时才更改文件;但是这些系统通常会在重新启动时移动……所以节省的并不多)。