因此,我通过set脚本自动设置ocserv,并在一个单独的文件中创建了随机用户名和密码。因此,我们的目标是将这些文件读入映射文件。这就是我所拥有的:
usern=$(wc -l < /home/ubuntu/randomusern.txt)
mapfile password < '/home/ubuntu/randompassword.txt'
mapfile username < '/home/ubuntu/randomusern.txt'
for((i=1; i<$usern; i++))
do
allUser=$(echo ${username[@]})
allpass=$(echo ${password[@]}|ocpasswd -c "/etc/ocserv/ocpasswd" ${allUser})
done但是当我检查ocpasswd的时候。只有一个名为"{username@}“的用户有任何建议吗?谢谢!!
发布于 2022-06-22 14:05:01
您的脚本有几个问题:您的循环是无用的,因为它在每次迭代中都会执行相同的操作,您可以尝试一次添加所有用户,这显然不受支持.您可以尝试以下操作,但我怀疑它是否有效,因为ocpasswd获取密码的方式可能比从标准输入中读取它两次要复杂得多(没有测试,我没有ocpasswd):
local -i i n
mapfile password < /home/ubuntu/randompassword.txt
mapfile username < /home/ubuntu/randomusern.txt
if (( ${#password[@]} < ${#username[@]} )); then
n=${#password[@]}
else
n=${#username[@]}
fi
for (( i=0; i<n; i++ )); do
u="${username[i]}"
p=${password[i]}$'\n'${password[i]}
ocpasswd -c "/etc/ocserv/ocpasswd" "$u" <<< "$p"
donehttps://stackoverflow.com/questions/72716224
复制相似问题