我丢失了一台旧服务器的 root 密码,我只能使用普通用户登录并通过 webmin 登录。通过 webmin 界面,我有一个执行命令的选项,我一直在尝试以下操作但失败了:
> echo -e "newPassword\nnewPassword" | passwd root"
bash: -c: line 0: unexpected EOF while looking for matching `"'
bash: -c: line 1: syntax error: unexpected end of file
> whoami
root
通过 webmin,我可以看到我已登录root
答案1
line 0: unexpected EOF while looking for matching `"'
这很有道理。只要命令行中有三个引号而没有任何反斜杠,你就是在自找麻烦。这些东西应该是成对出现的。
echo -e "newPassword\nnewPassword" | passwd root
这有点笨重。我认为它不能用。对我来说肯定不行。
这稍微好一点,但仍然很糟糕:
usermod -p $(echo "newPassword" | openssl passwd -1 -stdin) root
更新:今天了解到chpasswd
:
echo "root:password" | chpasswd
答案2
使用passwd
而不是passwd root
(或echo -e "newPassword\nnewPassword" | passwd root"
)。此外,您的命令"
末尾也有一个意外的“ ”。