Busybox shell脚本修改密码

/******************************************************************************
 *                        Busybox shell脚本修改密码
 * 说明:
 *     需要在在Busybox文件系统中修改密码,但是passwd命令需要交互才能修改密码,
 * 原来Busybox提供了chpasswd命令,在shell中直接用passwd也是可行的。
 *
 *                                         2017-3-9 深圳 南山平山村 曾剑锋
 *****************************************************************************/

一、参考文档:
    1. how to change password with shell script in busybox 1.4.2
        http://www.avrfreaks.net/forum/how-change-password-shell-script-busybox-142    
    2. How do you change a user password in a script with busybox and openssl?
        http://*.com/questions/2059069/how-do-you-change-a-user-password-in-a-script-with-busybox-and-openssl
    3. How to set a new password from bash?
        http://unix.stackexchange.com/questions/26738/how-to-set-a-new-password-from-bash

二、passwd帮助:
    [zengjf@root ~]#  passwd -h
    passwd: invalid option -- 'h'
    BusyBox v1.25.0 (2016-09-21 23:53:28 CST) multi-call binary.

    Usage: passwd [OPTIONS] [USER]

    Change USER's password (default: current user)

            -a ALG  Encryption method
            -d      Set password to ''
            -l      Lock (disable) account
            -u      Unlock (enable) account
    [zengjf@root ~]#  

三、解决办法:
    1. 方法1: compile your own busybox configuration with chpasswd command。
    2. 方法2: 
        1. 编写一个脚本如下:
            #!/bin/sh 
            passwd << EOF 
            <new password> 
            <new password> 
            EOF 
        2. 输出效果如下
            [zengjf@root ~]#  ./chpasswd 
            Changing password for root
            New password: 
            Bad password: too weak
            Retype password: 
            passwd: password for root changed by root
            [zengjf@root ~]#