今天一朋友問不知道root 密碼怎麼修改。他這個系統是海思平臺的嵌入式Linux系統。然後嘗試了修改並進入系統。
嵌入式Linux中的root 密碼忘記了或者想破解別人系統的密碼登陸進去。
如果能進入系統,則可以直接修改root 密碼, 直接用passwd root 修改一個新的密碼或者刪除密碼 passwd root -d。
如果系統啓動後要用root 和密碼登錄,而你有不知道密碼,那就執行如下操作進行:
1. 首先進入uboot 中 , 用 print 查看 環境變量
hisilicon # print
arch=arm
baudrate=115200
board=hi3516dv300
board_name=hi3516dv300
bootargs=mem=128M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 rw mtdparts=hi_sfc:1M(boot),4M(kernel),11M(rootfs)
bootcmd=sf probe 0;sf read 0x81000000 0x100000 0x400000;bootm 0x81000000
bootdelay=2
cpu=armv7
ethact=eth0
soc=hi3516dv300
stderr=serial
stdin=serial
stdout=serial
vendor=hisilicon
verify=n
Environment size: 416/262140 bytes
2. 將 init=/bin/sh 環境變量設置中,讓系統默認進入shell
1)
setenv bootargs "mem=128M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 rw mtdparts=hi_sfc:1M(boot),4M(kernel),11M(rootfs) init=/bin/sh"
入手命令,改成你係統中的環境變量
2) 保存環境變量設置 執行如下命令:
saveenv
3)重啓
reset
3. 成功進入shell
4. 進入到/etc 下面
查看 passwd 文件,發現裏面的root密碼MD5 加密密碼,不知道這個密碼是root:x:0:0:root:/home/root:/bin/sh多少。
1)直接 執行passwd root -d看能否刪除密碼,我這裏會報 passwd: unknown uid 0。
2)直接修改/etc/passwd 文件吧,要是目錄下沒有這個文件,就創建一個。
/etc/passwd 內容改成 root:x:0:0:root:/home/root:/bin/sh
vi /etc/passwd
保存退出
3) 這時我們可以重新用命令執行: passwd root 給root 設置新密碼,根據你自己設定
設置好後,reboot 重啓 (不行就拔電源)重新進入到u-boot 裏面。
5. 恢復環境變量設置, 也就是去掉 init=/bin/sh
1)
setenv bootargs "mem=128M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 rw mtdparts=hi_sfc:1M(boot),4M(kernel),11M(rootfs)"
輸入命令,改成你係統中的環境變量
2) 保存環境變量設置 執行如下命令:
saveenv
3)重啓
reset