最近打算重新玩bitshares,当年玩这个也写过一堆脚本,于是想着把这些脚本来过来快速复习一下,毕竟当年也下过一些功夫呢。

(图源 :pixabay)
然而好不容易想起这些脚本在哪个机器上,但是登录时却被提示密码不对,核对N次用户名并测试了N组密码之后,我确定,我确实忘记了这个账户的密码。
进入目录
不过这其实难不住我,反正我只是要拿到这组脚本,那么只要能把脚本拷贝出来就可以了。于是我在具有sudo权限的用户下使用如下命令登录了此账户,并进入对应目录中:
sudo su bitshares
cd
哈哈哈,账户对我已经不设防了,然后scp把脚本们copy到我当前的工作机器上,搞定收工。
修改普通用户密码
虽然用这样的方法拿到了脚本,但是难道就不能修改一下密码,方便我以后登录吗?
于是我在当前上述操作的基础上(已经登录到对应用户),执行如下指令:
passwd
我想我都已经登录到这个用户上了,就直接提示我设置新密码呗,然而结果让我失望:
Reveal spoiler

如图所示,依然要验证当前密码,而我有忘记了当前密码,所以无法设置成功。
这让我很是愤怒,明明我有root权限,还改不了密码了?真不信邪了。于是我回到具有sudo权限的用户下,使用如下指令:
sudo passwd bitshares
一如我所预料的样子,直接提示输入新密码,密码设置成功:
Reveal spoiler

然后测试使用对应用户名和密码登录一下,一切正常。所以,有root权限的情况下,搞定普通用户密码是超级easy的一件事情。
修改/etc/shadow
在搞定这事之后,我再想别人都是如何操作的呢?结果百度了一下发现都是使用修改/etc/shadow的方式。
大致操作步骤如下:
- 登录root用户
- 打开
/etc/shadow文件 - 清空对应用户的密码段并保存
passwd 用户名设置对应用户的密码
可是明明直接用步骤1、4就可以直接重置用户密码啊,那么2、3的意义是什么呢?
我想了想,可能是不同系统的实现方式不一样,有的系统在存在原密码的情况下必须校验原密码吧。只有把原密码清空才会略过对应步骤。
所以如果直接直接使用sudo passwd bitshares的方式不好用,那么就先清空/etc/shadow中对应内容吧。
以上操作仅限于忘记普通用户的密码,如果你忘记了root用户的密码或者没法获取root权限,那么上述操作并不适用。
忘记root密码也是可以解决的,不过限于篇幅就不在赘述了,另外我觉得我应该不会犯类似的错误,哈哈哈哈哈。