ARM linux下基于busybox的根文件系统如何保存用户密码

环境:
内核集成了基于busybox的initramfs。
交代:
每次上电后,通过serial和telnet进入系统时,都不需要密码验证,每次设置完用户密码后,重新上电又不见。
正文:
后来了解到跟用户、密码、分组相关的三个文件passwd、shadow和group;但是当前系统/etc/目录下的这三个文件是busybox工具生成的位于initramfs中的那3个文件,掉电后数据丢失,不具备保存能力,所以之前的修改一直丢失。然后就想重新修改编译后的busybox文件夹下的这三个文件,然后重新编译内核,后来一想,这样的话以后也还是没办法对用户进行增加、删除和修改的,所以果断放弃(为此还去倒腾了一波NFS,也没成功。。。),睡觉前突然想起来用下面这个方法,应该可以实现:
将根文件系统/etc目录下的passwd、shadow和group文件复制到用户文件系统下(设置好权限),修改passwd文件,在root用户配置中添加x选项(表名用户密码在shadow文件中),然后在用户上电脚本里删除根目录下/etc下的3个文件,然后通过ln创建用户目录下的3个文件的软链接到/etc目录下;这样,每次对用户、密码、分组的操作都可以保存下来,通过telnet登录时也会进行密码验证!(经测试,这个方法是可以正常使用的。)
脚本示例

猜你喜欢

转载自blog.csdn.net/yanlutian/article/details/82971410
今日推荐