busybox配置telnetd

1.首先检查kernel是否支持devpts文件系统。devpts是目前最常见的pseudo终端(PTYs)实现方式

cat /proc/filesystems.

下面是我在开发板上的执行结果:

/etc # cat /proc/filesystems 
nodev   sysfs
nodev   rootfs
nodev   bdev
nodev   proc
nodev   tmpfs
nodev   debugfs
nodev   sockfs
nodev   pipefs
nodev   anon_inodefs
nodev   rpc_pipefs
nodev   devpts
        ext3
        ext2
nodev   ramfs
        vfat
        msdos
nodev   nfs
nodev   nfs4
        yaffs
        yaffs2
nodev   mtd_inodefs
/etc # 

可见是有devpts的。

2.在busybox中配置telnetd和telnet还有login
3.在busybox中make和make install ,最后生成的文件会安装到_install中去。把_install中的目录和文件复制到rootfs对应的目录中去。
4.在rootfs/etc下创建文件 passwd,group,shadow.
passwd文件内容:

root:x:0:0:root:/bin/sh

group文件内容:

root:x::0:root

shadow文件内容:

root:$1$$oCL3EVgI1iAqOA8pwkzAg1:11851:0:99999:7:::

5.mkdir /dev/pts
6.在rootfs/etc/init.d/rcS中添加:

mount -t devpts devpts /dev/pts
mknod -m 666 /dev/ptmx c 5 2

7.修改rootfs/etc/fstab增加如下:

devpts /dev/pts devpts defaults 0 0

然后使用如下命令启动:
busybox telnetd -l /bin/login
需要注意是的
1.在busybox中设置了login功能;
2.在busybox中make之后有login生成了,并且已经把对应的login复制到了板子上。如果板子的/bin/login不存在,从远程telnet板子时就是提示板子断开连接,我就是因为这个问题折腾了好久才发现。

如果期望终端telnet上板子后的界面显示logo或是什么欢迎语,可以在/etc/issue.net这个文件中添加,没有这个文件就创建一个。

为什么是这个文件呢?

busybox$ grep "issue.net" * -n -r
Binary file busybox matches
Binary file busybox_unstripped matches
Binary file _install/bin/busybox matches
Binary file networking/lib.a matches
networking/telnetd.c:88:        G.issuefile = "/etc/issue.net"; \
Binary file networking/telnetd.o matches

你可能感兴趣的:(linux)