6 个性功能添加
6.1 终端登录用户验证功能添加
需要在etc目录下增加passwd、group和shadow(在编译busybox时如果不选择shadow功能将不需要这个文件)3个文件。
生成这3个文件的方法有:
Ø 手动生成,按照格式规范自己编写内容;
Ø 通过busybox提供的工具adderuser自动生成
6.1.1 手动方式
首先我们介绍一下如何手动添加。以增加root用户为例,增加passwd文件,其内容为:
#cat passwd
root:x:0:0:root:/root:/bin/sh
同时,此时要确定root目录已经存在。
passwd一共由7个字段组成,6个冒号将其隔开。它们的含义分别为:
1 用户名
2 是否有加密口令,x表示有,不填表示无,采用MD5、DES加密。
3 用户ID
4 组ID
5 注释字段
6 登录目录
7 所使用的shell程序
增加group文件,其内容为:
#cat group
root:x:0:
Group一共由4个字段组成,3个冒号将其隔开,它们的含义分别为:
1 组名
2 是否有加密口令,同passwd
3 组ID
4 指向各用户名指针的数组
由于busybox默认启动了shadow模式,因此需要增加shadow文件,其内容为:
#cat shadow
root:$1$3jZ93Mwq$oaeef6lWIuThavs8wD0Wh1:0:0:99999:7:::
shadow一共由9个字段组成,8个冒号将其隔开,它们的含义分别为:
1 用户名
2 加密后的口令,若为空,表示该用户不需要口令即可登陆,若为*号,表示该账号被禁用。 上面的表示的是123456加密后的口令。
3 从1970年1月1日至口令最近一次被修改的天数
4 口令在多少天内不能被用户修改
5 口令在多少天后必须被修改(0为没有修改过)
6 口令过期多少天后用户账号被禁止
7 口令在到期多少天内给用户发出警告
8 口令自1970年1月1日被禁止的天数
9 保留域
这里强调一下shadow文件的由来。/etc/passwd文件对系统的所有用户都 是可读的,这样的好处是每个用户都知道系统上有哪些用户,但缺点是其他用户的口令容易受到攻击,尤其是当口令较简单时。所以一些linux系统中使用到了 影子口令文件shadow,将用户的口令存储在另一个文件/etc/shadow中,该文件只有根用户root可读,大大提高了安全性。
不过,采用这种手动添加文件的方法有一个缺陷,就是如果要为用户设置登陆口令的话,shadow文件中必须填写加密后的口令,而这个加密算法我们又不知道,即使知道,要经过转换后再添加,比较麻烦。此时,不妨试一下第二种方法。
6.1.2 自动方式
自动生成是使用了busybox提供的adduser工具和passwd工具。
在文件系统正常运行起来后,使用adduser命令,使用方法为:
#adduser root
然后就会在etc目录下自动生成passwd 、group和shadow3个文件。但是运行该命令后会打印出如下消息:
passwd:unknown uid 0
这表示不能为该用户设置密码,此时你会发现要passwd命令也无法使用。
解决的办法是,打开passwd文件,其内容为:
root:x:1000:1000:Linux User…:/home/root:/bin/sh
将用户ID和组ID均更改为0
打开group文件,其内容为:
root:x:1000:
同样将组ID改为0
然后,passwd命令就可以正常使用了。这时为root用户设置口令:
#passwd root
根据提示输入密码。其中,root用户登陆后的目录可以手动进行更改。
6.2 telnetd功能添加
busybox默认已经添加了对telnetd和telnet功能的支持,只需要完成一些相关的设置工作就可以启动这2个功能了。
Ø 创建/dev/pts目录
Ø 在/etc/fstab中添加如下信息,挂载devpts文件系统
devpts /dev/pts devpts defaults 0 0
Ø 在/dev目录下增加ptmx设备文件:
#mknod ptmx c 5 2
Ø 在rcS文件中添加如下脚本,启动telnetd
if [ -x /usr/sbin/telnetd ] ;
then
telnetd&
fi
Ø 在/dev目录下增加null设备文件,否则上述脚本运行时会出错:提示找不到null文件。
#mknod null c 1 3
此时,telnetd功能开机就可以启动了。
阅读(552) | 评论(2) | 转发(0) |