的chpasswd命令允许管理员通过管道向其输入用户名和密码组合来更改帐户密码。
这可以通过一个帐户一次完成,也可以通过将所有要修改的帐户放在一个文件中并将文件管道传递给命令来完成。
如何使用chpasswd
使用chpasswd命令需要根权限。你可以切换到root帐户并运行如下命令:
# echo nemo: imfish | chpasswd
更好的是,你可以使用sudo使用如下命令:
美元呼应鼬:istink !| sudo chpasswd
如上所示,用户名和密码将以明文形式显示在命令行上,但也可以添加到如下两个示例所示的文件中——一个以root身份运行,另一个使用sudo命令:
# cat np $ cat np nemo: imfish nemo: imfish lola:imadog lola:imadog skunk:臭鼬!鼬:istink !# cat np | chpasswd $ cat np | sudo chpasswd . txt
如果使用如上所示的文件,应该使用如下命令分解这将彻底擦除和覆盖文件,使它不能从磁盘恢复之后。显然,在系统中以未加密的形式保存密码从来都不是一个好主意。
如果你正在为一个新帐户设置密码,它可能一开始是不可用的/etc/shadow文件入口看起来像这样:
$ sudo grep skunk /etc/shadow skunk:!!: 18935:0:99999:7:::
在使用了chpasswd命令,该条目将更改为类似这样的东西,包括冗长的密码哈希:
$ sudo grep skunk /etc/shadow skunk:$6$qeZmt/yXbkk$PVwHoUY5X/qv9cDK6KNkDCADd87i4h3bHeyfLFNsvQYdmhzZL8rVRTKB9vLT872Dh21K0/KVBUccZ6Vkg34NK/:18935:0:99999:7:::
如果你使用回声将用户名和密码输送到chpasswd命令,命令可能会记录在您的命令历史中——这不是一个好主意。你可以通过禁用history命令捕获你的命令来避免这个问题:
$ set +o history
后运行chpasswd你不想记录的命令,你可以像这样反向选择,并返回到你正常的命令历史记录设置:
$ set -o history
如果您正在更改用户密码,则应将其视为临时密码,还应将帐户设置为过期,以便用户在下次登录时必须重新设置密码。如果您正在更改服务帐户的密码,则应确保不能从系统检索密码,如下所示。
$ sudo passwd -e skunk用户的过期密码。密码:成功
调整Linux上的历史可以帮助微调什么历史命令回忆说。