在某些情况下,我们需要在不输入当前密码的情况下更改Linux用户密码。以下介绍一些非交互更改Linux密码的 :
1. 使用passwd命令
passwd命令通常用于交互式更改密码。但是,如果我们以root用户身份运行passwd命令,后面跟要更改密码的用户名,则可以非交互式地更改密码。例如:
sudo passwd username
系统会提示我们输入新密码,但不提示输入当前密码。
2. 使用usermod命令
usermod命令也可以用于非交互更改密码。语法如下:
sudo usermod -p new_password username
其中new_password是要设置的新密码,username是要更改密码的用户名。
3. 使用chpasswd命令
chpasswd命令专门用于非交互批量更改密码。语法如下:
sudo chpasswd < filename
其中filename是一个包含用户名和新密码的文件。格式如下:
plaintext
username:new_password
每个用户名和新密码对占一行。
4. 使用pam_chauthtok模块
pam_chauthtok模块是一个PAM模块,它允许用户通过命令行更改密码,而不提示输入当前密码。要使用此模块,我们需要修改/etc/pam.d/passwd文件,并添加以下行:
plaintext
auth required pam_chauthtok.so use_first_pass
保存更改并重新启动pam服务:
sudo systemctl restart pam
现在,我们可以使用以下命令非交互式地更改密码:
echo new_password | chage -d -n -1 username