我试图在Ubuntu11中制作以下脚本。
我是这方面的新手…脚本应该接收参数。
我的目的是,作为一个测试,创建两个用户,移动一系列文件,并在默认情况下分配一个密码,这将是相同的登录名,并在登录后强制更改它。
我希望对其进行加密,但我不知道如何将加密的密码传递给命令,例如传递给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行是注释,而不是创建加密密钥的尝试

最佳答案

将加密密码传递给useradd的最佳选择。
可以使用chpasswd命令获取加密密码。

echo ":plaintextpassword" | chpasswd -S

:是必需的,因为它在chpasswd的输入中将balnk用户与新密码分隔开。
然后,输出中可以存储在脚本中并传递给useradd:
pwd='encryptedpasswd'
useradd -m -p "${pwd}" "${user}"

10-08 14:20