免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1517 | 回复: 0
打印 上一主题 下一主题

telnet 密码问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-09 16:18 |只看该作者 |倒序浏览

       
       
       
       
       
       
       
       
转贴:    进入busybox源代码目录,选择telnet,telnetd.后
确保在ramdisk的sbin目录下存在inetd和in.telnetd或telned。在ramdisk中的mnt/etc目录中,确保存在文件fstab,service,inetd.conf,passwd文件
确保fstab文件中存在none            /dev/pts        devpts mode=0622       0 0这一行
确保services文件中存在telnet          23/tcp 这一行
确保inetd.conf中存在telnet stream tcp     nowait root    /sbin/in.telnetd        in.telnetd
确保passwd文件中存在root::0:0:root:/:/bin/sh,表示没有密码的root帐号
在kernal的代码中,通过makemenuconfig,在Character devices中选中Unix98 PTY support在File systems中选中/dev/pts file system for Unix98 PTYs退出后make zImage即可
在ramdisk的启动文件mnt/etc/init.d/rcS中,在mount –a的后面下一行加入inetd,使系统启动的时候就加载telnetd服新建inetd.conf文件,内容如下:
#
telnetstream tcp nowait root    /usr/sbin/telnetd
运行inetd inetd.conf
在网上google了一天,最终可以确定要使用telnetd,内核必须配置以下项:
dev/pts file system for Unix98 PTYs
Unix98 PTY support
(256) Maximum number of Unix98 PTYs in use (0-2048)
可我使用的2.6.14.1的内核,make menuconfig根本找不到这些配置项!那么内核是否支持这些选项呢?cat /proc/filesystems发现已支持devpts文件系统,那么uinx98 pty呢?
查看内核的Kconfig和Makefile文件,发现只要CONFIG_UNIX98_PTYS=y就会编译支持devpts文件系统和unix98的功能。而选择了嵌入式CPU内核会默认CONFIG_UNIX98_PTYS=y。所以我的内核已经支持telnet。
fstab文件中也加载了devpts文件系统:
devpts          /dev/pts        devpts defaults    00
inittab文件中也指明了telnet的动作:
tty0::askfirst:-/bin/sh
为什么还不行呢?
困惑!后来仔细想想,应该是设备文件节点的问题。我在开发板上移植2.6内核和驱动时一直没有使用devfs。因为devfs虽然方便,但同时也阻止了对设备文件节点的了解,且2.6内核已放弃了devfs。
那么使用telnet应该创建那些文件节点呢?devpts会在/dev/pts下自动创建节点,还有什么呢?google了一会没有答案。后来忽然想起Kconfig文件中好象些说明,再去看一看,原来是这样:
         A pseudo terminal (PTY) is a software device consisting of two
halves: a master and a slave. The slave device behaves identical to
a physical terminal; the master device is used by a process to
read data from and write data to the slave, thereby emulating a
terminal. Typical programs for the master side are telnet servers
and xterms.
Linux has traditionally used the BSD-like names /dev/ptyxx for
masters and /dev/ttyxx for slaves of pseudo terminals. This scheme
has a number of problems. The GNU C library glibc 2.1 and later,
however, supports the Unix98 naming standard: in order to acquire a
pseudo terminal, a process opens /dev/ptmx; the number of the pseudo
terminal is then made available to the process and the pseudo
terminal slave can be accessed as /dev/pts/. What was
traditionally /dev/ttyp2 will then be /dev/pts/2, for example.
是因为缺少ptmx设备文件!查看Documentation/devices.txt文件,好了。
mknod -m 666 ptmx c 5 2
再试试,OK可以telnet开发板了!
我是直接使用的busybox的telnetd,busybox支持用inetd管理telnetd,有兴趣的朋友可以试
.进入busybox源代码目录,选择telnet,telnetd.然后make;make install并制作ramdisk
2.确保在ramdisk的sbin目录下存在inetd和telnetd
3.在ramdisk中的mnt/etc目录中,确保存在文件fstab,service,inetd.conf,passwd文件
4.确保fstab文件中存在     none            /dev/pts        devpts  mode=0622       0 0 这一行
5.确保services文件中存在  telnet          23/tcp  这一行
6.确保inetd.conf中存在    telnet  stream  tcp     nowait  root    /sbin/telnetd      telnetd
7.确保passwd文件中存在    root::0:0:root:/:/bin/sh  ,表示没有密码的root帐号
8.在kernal的代码中,通过make menuconfig,
在Character devices中选中 Unix98 PTY support
退出后make zImage
9.在BusyBox源码中,通过make menuconfig,选中dev/pts file system for Unix98 PTYs
退出后make;make install
10.在ramdisk的启动文件mnt/etc/init.d/rcS中,在mount –a的后面下一行加入  inetd或者telnet /bin/ash,使系统启动的时候就加载telnetd服务

               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/70379/showart_1959925.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP