leftso 1108 0 2019-04-21 10:48:18

文章位置:左搜> 软件硬件> 正文

一、问题简述

大家都知道,白群晖上有 RESET 按钮,如果忘记密码,只要按住四秒钟直到哔声响将会重设管理者密码,我们很多人装的是黑群晖,根本没有reset键,如果你也没有设置找回邮箱,那忘记密码怎么办?这里我分享一种解决办法,说说原理:修改/etc/shadow文件,此文件也是linux系统上保存账户密码文件,群晖底层也是linux内核,验证账户密码也是用此文件的。 如果你忘记密码,只需要修改此文件即可。这种方式通杀所以黑群晖,不分版本。

二、操作流程

关机把硬盘取出来,挂载到其它电脑上,用磁盘管理软件,比如diskgenius(点此前往下载)挂载群晖硬盘分区,找到根目录下的/etc/shadow文件
 

打开此文件,一行一个账户记录,每一行又被英文冒号:分隔成多个字段,找到admin管理的账户 ,第一个字段是账户名,第二个字段就是账户密码,其它字段你先不用管,感兴趣的可以百度了解一下结构。此密码是加密后存储的,所以看到的都是乱码,只需要修改这个字段即可。
修改方式也很简单,只需要找一个知道密码的账户,比如xiaohong ,把它的第二个密码字段复制一下,然后覆盖你的admin管理员密码字段即可。最后把这个修改后的shadow文件放回去。接上硬盘,此时你开机输入xiaohong这个账户密码就可以登陆管理员账户了,注意是账户的密码,别搞错了!

每行的结构是这样的,我标红的字段就是要覆盖的,其它部分都不需要修改。
 

admin:$6$Wo0kPkgm$OAp0Wl2AsaE4n1y7qxB5Jns70Yk91AadfgvzElsR5addfGmoGCC8DUXkKzK7vyiV8wXNeaWNm861:15832:0:99999:7:::

那问题来了,这个加密后密码字段去哪里找?,你可以让你朋友帮你忙,做一个密码出来。或者你在虚拟机里做一个出来也可以,就是创建一个账户 ,然后设置好密码,测试可以正常使用登陆,然后把这个群晖系统里的/etc/shadow文件复制出来,找到密码字段,一般密码使用sha512哈希函数加密的,并且加盐了,就是系统会随机生成一个段字符添加进去然后再生成哈希密文。以目前计算能力是破不了的。

我这里已经做好一个加密好的密码 ,直接复制回去覆盖。成功登陆后再修改成你要的密码即可。
 

$6$n/atIskPWx$BTDud6vnw5pKQLcm4vHd3BEOBlh5ovSw3Iv9pMhW6BFWvCH5DNIIQFsqwfj1Oxi4WeexYfmHFPHHxyZ9XWImz1

此密码是 123456789

三、总结

使用此方法不仅可以修改amdin管理员账户 ,root账户也是可以修改的,应该说任何一个正常可登陆的账户密码你都可以修改的,既然root密码你都能修改了,而root登陆之后就没有什么限制了,其它账户改不改也无所谓了,因为你可以随时修改它们。
缺点:你要买把硬盘拆下来挂载到其它电脑上,有点麻烦,不是你想做就做的!
优点:可以无视系统任何规则和限制。毕竟你是物理上修改硬盘文件的,所有系统规则限制对你都是无效。甚至就算用户不存在了,我都可以建一个用户出来,当然建一个用户还要修改另个一文件,这里就不再展开了。