原创 根文件系统中添加telnetd服务

2010-3-23 10:59 2206 4 4 分类: MCU/ 嵌入式

 


作者:曹忠明,华清远见嵌入式学院讲师。


使用busybox制作的一个基本根文件系统如何添加telnetd服务呢?


下面把本人的添加过程列出来供大家分享,如有不同意见请不吝赐教!


1、 添加telnet的支持(busybox中配置)


Networking Utilities --->
                

  • telnet
                    
  • Pass TERM type to remote host
                    
  • Pass USER type to remote host
                    
  • telnetd
                    
  • Support standalone telnetd (not inetd only)


    2、 添加mdev的支持(busybox中配置)


            Linux System Utilities --->
                    

  • mdev


    3、 添加login(busybox中配置)


    Login/Password Management Utilities --->
            

  • login


    4、 修改etc/init.d/rcS添加mdev内容


    #!/bin/sh


    mount -a
            mkdir /dev/pts
            mount -t devpts devpts /dev/pts
            echo /sbin/mdev>/proc/sys/kernel/hotplug
            mdev -s
            /bin/hostname -F /etc/hostname


    5、 创建etc/hostnam,并添加主机名


    farsight


    6、 在etc下创建文件passwd,group,shadow,创建目录/home


    7、 修改etc/fstab为


    #device mount-point type options dump fsck order
            proc /proc proc defaults 0 0
            tmpfs /tmp tmpfs defaults 0 0
            sysfs /sys sysfs defaults 0 0
            tmpfs /dev tmpfs defaults 0 0


    8、 内核中添加相应的支持


    UNIX98_PTYS=y
            DEVPTS_FS=y


    9、 使用adduser添加用户


    #adduser linux


    10、 添加命令行提示符格式,修改/etc/profile添加如下内容


    PS1='[\u@\h \W]\# '
            HOSTNAME=`/bin/hostname`
            export USER LOGNAME PS1


    11、 启动telnet服务,在/etc/profile下添加如下内容


    telnetd


    这个时候我们就可以同过telnet client登陆我们的板子了。上面这些步骤有些不是必须的,大家可以根据需求选择。


    12、 参考文献


    A daemon for the TELNET protocol, allowing you to log onto the host running the daemon. Please keep in mind that the TELNET protocol sends passwords in plain text. If you can't afford the space for an SSH daemon and you trust your network, you may say 'y' here. As a more secure alternative, you should seriously consider installing the very small Dropbear SSH daemon instead:


    http://matt.ucc.asn.au/dropbear/dropbear.html
            Note that for busybox telnetd to work you need several things:
            First of all, your kernel needs:
            UNIX98_PTYS=y
            DEVPTS_FS=y
            Next, you need a /dev/pts directory on your root filesystem:
            $ ls -ld /dev/pts
            drwxr-xr-x 2 root root 0 Sep 23 13:21 /dev/pts/
            Next you need the pseudo terminal master multiplexer /dev/ptmx:
            $ ls -la /dev/ptmx
            crw-rw-rw- 1 root tty 5, 2 Sep 23 13:55 /dev/ptmx
            Any /dev/ttyp[0-9]* files you may have can be removed.
            Next, you need to mount the devpts filesystem on /dev/pts using:
            mount -t devpts devpts /dev/pts
            You need to be sure that Busybox has LOGIN and FEATURE_SUID enabled. And finally, you should make certain that Busybox has been installed setuid root:
            chown root.root /bin/busybox
            chmod 4755 /bin/busybox with all that done, telnetd _should_ work....

  • 文章评论0条评论)

    登录后参与讨论
    我要评论
    0
    4
    关闭 站长推荐上一条 /2 下一条