EOF和openssl passwd

时间:2018-02-05 18:16:49

标签: linux bash shell ubuntu

我试图在Ubuntu 11中制作以下脚本。 我是这方面的新手......脚本应该接收参数。 我打算作为测试创建两个用户,移动一系列文件,默认情况下分配密码,这将是相同的登录,并在您登录后强制更改它。 我希望它被加密,但我不知道如何将该加密密码传递给命令,例如传递给usermod -p,或者使用命令的输出分配变量。 由于我没有得到它,另一种选择是使用EOF为它分配passwd,这样它就不会以交互方式完成。所以我按照我指示的方式使用它,但我不知道它是如何完成的,没有设置我想要的密码。 有人可以帮帮我吗?非常感谢你

#!/bin/bash
usuario=`whoami`
if [ $usuario != "root" ]; then
   echo El script tiene que ejecutarse con usuario root
   exit 1
fi
if [ $# -lt 3 ]; then
   echo Número de parámetros insuficiente
   exit 2
fi
groupadd "$3"
useradd  -m -g "$3" $1
useradd  -m -G "$3" $2
echo " Usuarios y grupo creados "
cp /var/backups/*  /home/"$1"
echo " Copia de backups realizada "
mv /home/"$1"/*bak /home/"$2"
passwd -e $1 && passwd $2<<EOF
$1
$1
$2
$2
EOF

#clave1=`openssl passwd -crypt "$1"`
#clave2=`openssl passwd -crypt "$2"`
#usermod -p clave1 $1
#usermod -p clave2 $2
#openssl passwd -crypt "$2" | usermod -p "$2" $2

最后5行是注释,而不是尝试创建加密密钥

1 个答案:

答案 0 :(得分:1)

最好将加密密码传递给useradd。

您可以使用chpasswd命令获取加密密码。

echo ":plaintextpassword" | chpasswd -S

:必须将balnk用户与chpasswd输入中的新密码分开。

然后在输出中的所有内容都可以存储在脚本中并传递给useradd:

pwd='encryptedpasswd'
useradd -m -p "${pwd}" "${user}"