我有一个活跃的根帐户,但我不知道我的密码。
为了能够更改我的密码,甚至创建其他用户(使用该工具passwd
),我需要知道我的密码。这就产生了一个问题。但由于我是 root - 我是否可以替换/bin/
目录中的任意二进制文件?只需修改passwd
源代码,编译它,用新的替换原来的即可。真有这么简单吗?有什么注意事项吗?
我的测试系统是:FreeBSD 11.0
+Ubuntu 18.04
答案1
我见过的大多数 Linux 都已配置为passwd
不需要root
旧密码:
root@xxx ~# passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
即使passwd
确实要求,您也可以尝试chpasswd
, 或手动编辑/etc/passwd
和/etc/shadow
(密码哈希是第二个字段,两个冒号之间的长字符简介)只是您需要先计算哈希,openssl
只是一个执行此操作的工具:
$ echo foobar | openssl passwd -1 -stdin
$1$G/nr44th$wn16q7ITSvfrNq4amDfzn1
(您可能不应该真正使用MD5
基于 - 的$1$
哈希值,但这并不重要,因为至少在将哈希值重置为已知值之后,您可以用来passwd
更改它。)