Jam*_*lor 16 linux scripting password raspbian
在当前版本的 Raspian 中,我知道可以从命令行更改当前登录用户的密码,如下所示:
sudo passwd
Run Code Online (Sandbox Code Playgroud)
然后会提示用户输入新密码两次。这将产生如下输出:
Changing password for pi.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Run Code Online (Sandbox Code Playgroud)
我想知道是否有可能以编程方式更改密码,例如从 shell 脚本更改密码。
我正在尝试制作一个配置脚本以部署在我的 Raspberry Pi 上,我不想手动为它们输入新密码。
der*_*ert 27
您正在寻找chpasswd命令。你会做这样的事情:
echo 'pi:newpassword' | chpasswd # change user pi password to newpassword
Run Code Online (Sandbox Code Playgroud)
请注意,它需要以 root 身份运行,至少使用默认的 PAM 配置。但大概以 root 身份运行对于系统部署脚本来说不是问题。
此外,您可以通过向其提供多行输入来一次处理多个用户。
Tim*_*tin 12
另一种选择是yes在脚本中使用该命令。
yes newpassword | passwd youruser
Run Code Online (Sandbox Code Playgroud)
这将发送newpassword到passwd命令youruser。
应该提到的是,通过脚本设置/修改用户密码可能会带来安全风险,应尽可能避免。
编辑:
此答案需要 root 访问权限。很抱歉之前没有提到这一点。这是我在执行需要 root 访问权限的管理任务时使用的一种方法。