#原文来源:Linux Study 用openssl生成加密的密码文件脚本
#!/bin/bash #Function:将用户输入的明文密码通过openssl工具转换为加密后的密码并保存为密码文件 #Author:zzjiwang #Version:1.0 #Date:2017-07-28 16:50 genpass() { local currentDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" local tmp=$(mktemp ${currentDir}/pass.XXXXXX) for((i=1;i<=2;i++)) do echo -n "Enter your password: " stty -echo read pass1 < /dev/tty stty echo echo echo -n "Retype your password: " stty -echo read pass2 < /dev/tty stty echo echo if [ "${pass1}" != "${pass2}" ];then echo "Sorry,passwords do not match." continue else break fi
done if [ "${pass1}" != "${pass2}" ];then echo "Failed to generate password file,the two password input is inconsistent,please check." [ ! -s ${tmp} ] && rm -f ${tmp} return 1 fi (umask 077 ;echo "${pass1}" | openssl passwd -1 -salt 34lfper0LEo -stdin > ${tmp}) if [ $? -eq 0 ];then echo "Generate password file successfuly: ${tmp}" return 0 else echo "Generate password file failed, please check." return 1 fi } genpass