要更改密码,我可以运行以下命令
echo "user:$npasswd" | chpasswd.
...但执行此操作后,它要求我输入当前密码。
有没有办法自动提供当前密码?
答案1
作为用户:
$ echo "rinzwind:2" | chpasswd
Changing password for rinzwind.
chpasswd: (user rinzwind) pam_chauthtok() failed, error:
Authentication token manipulation error
chpasswd: (line 1, user rinzwind) password not changed
以 root 身份:
root@schijfwereld:~# echo "rinzwind:1" | /usr/sbin/chpasswd
root@schijfwereld:~#
您需要以“root”身份执行此操作。当然,任何其他方法都会要求输入当前密码。如果您可以更改密码,这将是一个安全问题
如您所见,当您以“root”身份执行此操作时,它也会接受短密码。默认情况下,不允许在正常提示中将“1”设置为密码。
你可以做
$ echo -e "1\naaaabbbb\naaaabbbb" | passwd rinzwind
其中 1 是旧密码,aaaabbbb 是新密码。passwd 的流程是:旧密码,输入,新密码,输入,新密码。请注意,密码在进程列表中是可见的(即使只是短暂的一刻)。