也不知道是什么时候写的关于TELNET的问题

2009-05-13 01:37:19来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

TELNET的远程登录中,对root用户是不允许的.要打开此开关.必须查看telnetd源代码.
在telnetd的源代码中,远程登录是直接调用login.所以必须对login.c源程序进行更改.
不过后来才知道,在etc下有可以设置的.汗啊!到是真不会玩BSD系统
TELNET的远程登录中,对root用户是不允许的.要打开此开关.必须查看telnetd源代码.
在telnetd的源代码中,远程登录是直接调用login.所以必须对login.c源程序进行更改.
在函数main中取得用户名到变量username中.
if (strncmp(instance + 1, "root", 4) == 0)
rootlogin = 1;
比较用户名是否为root
如果为root,rootlogin=1
随后进行登录安全检查.
if (pwd && rootlogin && !rootterm(tty))
goto failed;
如果pwd(即口令)为真(有口令且口令正确),并且是用root用户登录.而且函数rootterm(tty)
返回为0时.转到登录失败.
即我们再此要使rootterm(tty)返回为真.才能使我们远程登录成功.
当然可以简单的去掉rootterm(tty)函数.就可以达到该目的.但我们也可以去深究此问题
下去.
先来看看rootterm(tty)函数原形.
return ((t = getttynam(ttyn)) && t->ty_status & TTY_SECURE);
其实就是返回是否该tty是否远程安全.第一取得该ttyn的环境放到结构ttyent即t中.如果
为真并且该ttyn的安全属性中有安全终端属性,即为本地登录时,返回真.
我们如果远程登录的话.t->ty_status的属性中肯定没有包含TTY_SECURE.
getttynam函数位于文件libc/gen/getttyent.c中.


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/2681/showart_52228.html

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:再加个FREEBSD的MUTEX

下一篇:通用地址冗余协议---OPENBSD CARP