打 last 显示 IP 而不是 hostname,Why ?
从 FreeBSD-2.2/3.0 起,如果登入的 FQDN 长度 > 16 个字元 (UT_HOSTSIZE)
则系统会以 IP 纪录,因此你打 last 就会看到一堆 IP 而不是"不完整"的
hostname,有些系统如 bbs 也会受影响。当然,这个 feature 有些人不喜欢
,毕竟人还是看 FQDN 比较习惯,因此你可以自己拿掉这个 feature。
1. 修改 telnetd 的程式码
telnetd 的程式码放在 /usr/src/libexec/telnetd/ 或是 ftp://freebsd
.csie.nctu.edu.tw/pub/FreeBSD-current/src/libexec/telnetd/,
取回来後,你可以先修改 8bit 的支援,再来拿掉判断 UT_HOSTSIZE
的地方。修改 telnetd.c 把以下这段 (搜寻 hp->h_name)
>> } else if (hp &&
>> (strlen(hp->h_name) <= ((utmp_len < 0) ? -utmp_len : utmp_len))) {
host = hp->h_name;
} else {
host = inet_ntoa(who->sin_addr);
}
改成
>> } else if (hp) {
host = hp->h_name;
} else {
host = inet_ntoa(who->sin_addr);
}
2. 修改 login 的程式码
login 的程式码放在 /usr/src/usr.bin/login/ 或是 ftp://freebsd
.csie.nctu.edu.tw/pub/FreeBSD-current/src/usr.bin/login/,
取回来後,修改 login.c 把以下这段 (搜寻 UT_HOSTSIZE) 完全删除。
>> if (strlen(optarg) > UT_HOSTSIZE) {
>> struct hostent *hp = gethostbyname(optarg);
>>
>> if (hp != NULL) {
>> struct in_addr in;
>>
>> memmove(&in, hp->h_addr, sizeof(in));
>> optarg = strdup(inet_ntoa(in));
>> } else
>> optarg = "invalid hostname";
>> }
3. 其他的程式
还有其他的程式会做写入 utmp 或 wtmp 的动作,你必须自行修改,
你可以从 logwtmp(), UT_HOSTSIZE, hp->h_name, utmp, wtmp 等等
关键字来搜寻修改。
.
(http://www.fanqiang.com) 进入【UNIX论坛】 |
|
相关文章 |
|
白衫
|
|
智慧家居
智慧家居颠覆传统智能家居
智慧云谷让智能家居变成有智慧的
智慧云谷引领智慧家居新生活
科技改变生活 智慧云谷智慧家居系
智慧家居领航者,智慧云谷助你玩
智能家居如何赢得市场美誉度?
智慧云谷智慧家居:创业者有无限
WiFi智能家居你还在用?这样的智
互联网+助推智能家居产业
智慧云谷为您打造真正的智能家居
智能家居产业需要的不是单品,而
新家如何选择开关?智慧云谷iWis
智能传感器-世界首款“智”为你的
智慧云谷开关智能安防智能空气质
智能开关品牌,如何选择智能开关
秋季干燥,智慧家居温湿度传感器
传感器助力智慧家居 感知爱家
iWiscloud智能触摸开关缔造家居装
※室内空气污染的危害及 [sensor]
※超声波风速传感器在生 [sensor]
※这么冷清 [gabc111]
※手机APP操作有问题 [ssy11407]
※智慧云谷智慧家居将在 [cici]
※上传下载 [cici]
※下载智慧家居 [apple2008]
※秋季干燥,智慧家居温 [apple2008]
※智慧家居紧扣热点 安全 [apple2008]
※办公大楼如何智慧化管 [apple2008]
※智慧云谷工业自控的优 [apple2008]
※传感器助力智慧家居 感 [apple2008]
※智能开关品牌,如何选 [apple2008]
※智慧云谷开关智能安防 [apple2008]
※没有专业人员,如何安 [apple2008]
※烟台智慧云谷董事长任 [apple2008]
※互联网+助推智能家居产 [apple2008]
※WiFi智能家居你还在用 [apple2008]
※智慧云谷智慧家居:创 [apple2008]
※智能家居如何赢得市场 [apple2008]
|