我试图在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行是注释,而不是尝试创建加密密钥
答案 0 :(得分:1)
最好将加密密码传递给useradd。
您可以使用chpasswd命令获取加密密码。
echo ":plaintextpassword" | chpasswd -S
:必须将balnk用户与chpasswd输入中的新密码分开。
然后在输出中的所有内容都可以存储在脚本中并传递给useradd:
pwd='encryptedpasswd'
useradd -m -p "${pwd}" "${user}"