打 last 显示 IP 而不是 hostname,Why ?
2008-02-23 08:03:21来源:互联网 阅读 ()
则系统会以 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 等等
关键字来搜寻修改。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:为何要安装 identd ?
下一篇:如何查看 .iso 档?
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash