tips:只做note,详细的知识点不表,doc比我说的更好;
解决办法
1.挂载系统分区镜像到Linux系统,前提支持ext3
2.sudo losetup -f -P emmc.bin 映射文件系统
3.sudo fdisk -l 检查loop设备,出现/dev/loop0p1-p4分区的即是emmc.bin的分区
4.当前目录mkdir guazai
5. sudo mount /dev/loop0p1 guazai #注意/dev/loop0p1 为具体要挂在的分区,分区的大小信息通过步骤3可以得到
6.下来cd guazai目录就是整个系统镜像的文件了,注意这里要用自己系统的root权限来修改读取/etc/shadow文件
7.shadow文件字段格式为:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
ATTENTION:我们只修改加密口令
加密口令字段的格式为:
$ID$SALT$ENCRYPTED
对应的字段解释含义为:
Hash Type ID Hash Length
MD5 $1 22 characters
SHA-256 $5 43 characters
SHA-512 $6 86 characters
例如:
$6$HMpFTkgb$WqzuqMqYbjWsXFrOtvZPo.1gIkH6HiXJGr4QPv.k26jE.3mE...... (为了说明减少了长度)
这个密码就是SHA-512生成的,分割字符为$符号;
8.修改及生成加密口令:
在linux下终端运行这条命令:
python2 -c "import random,string,crypt;randomsalt = ''.join(random.sample(string.ascii_letters,8));print crypt.crypt('123456', '$6$%s$' % randomsalt)"
注意:123456 是密码;默认生成的是SHA-512密码;
生成的密码类似于:
$6$HMpFTkgb$WqzuqMqYbjWsXFrOtvZPo.1gIkH6HiXJGr4QPv.k26jE.3mE...... (为了说明减少了长度)
9.将生成好的密码$6开头的密码复制覆盖到需要修改的加密口令.然后:wq保存;密码即修改完成->下来同步镜像并卸载
10.首先退出guazai目录;回到guazai父目录执行 sudo umount /dev/loop0p1 #对应的/dev/loop0p1为挂在的目录,不确定可执行mount命令来确认
11.卸载完成后检查挂在成功 执行mount 无 对应的/dev/loop0p1即为成功;
12.最后卸载镜像 sudo losetup -D
13.检查是否卸载成功 sudo fdisk -l 检查没有loop设备即为成功修改,然后即可写入。
注意事项
1.检查是否修改成功?
A:一样先losetup先映射文件系统,然后mount loop设备,进入目录打印对应文件,结束一定要卸载否则文件会丢失;