问题描述
我想更改120个用户的密码。所以我写了sudo echo 'user:passwd' | chpasswd
但我有个讯息
chpasswd: (user) pam_chauthtok() failed, error:
Authentication token manipulation error
chpaswd (line 1, user) password not changed
并且我尝试了使用文本文件的另一种方式,但是我得到了相同的消息。
我不能解决这个问题。
最佳方案
更改密码的常用方法是使用passwd(1)命令。
如果要使用chpasswd(8)或usermod(8),则应仔细使用RTFM。
确保给定的密码与系统配置兼容。并且sudo
应该适用于chpasswd
命令,因此您可能需要
echo 'user:passwd' | sudo chpasswd
在您的情况下,sudo echo 'user:passwd' | chpasswd
,sudo
仅应用于echo
,这是不正确的。
次佳方案
恕我直言,出于安全考虑,最好不要将凭据保存在bash历史记录中。
我们可以将chpasswd
命令与文件一起使用,而不是通过命令行传递。选择您喜欢的文本编辑器来编辑文件。
vim passwd
然后输入user:password
,保存并使用:wq
退出
cat passwd | sudo chpasswd
然后,您应该删除文件:
rm passwd
这样,您就无需使用终端来传递您的凭据。