我想编写一个脚本文件,可以自动创建用户并随机生成密码。我编写的脚本如下。
我仍在学习,所以了解的不多。我想我已经找到了我所寻找的东西,但我对此不太确定。找到解决方案。
有人可以帮我吗?
#!/bin/bash
file="/home/dfs/user"
while IFS= read line
do
echo "$time"
done < "$file"
useradd Daniel
passwd daniel
答案1
使用以下脚本,您可以从字典中生成随机密码:
#!/bin/bash
generate_random() {
RANDOM_NUMBER=$(/usr/bin/perl -e 'print int(rand(60453));')
}
generate_random
randomWord1=$(head -$RANDOM_NUMBER ./dictionary.txt | tail -1)
generate_random
randomWord2=$(head -$RANDOM_NUMBER ./dictionary.txt | tail -1)
generate_random
randomWord3=$(head -$RANDOM_NUMBER ./dictionary.txt | tail -1)
echo "$randomWord1 $randomWord2 $randomWord3"
在这种情况下,创建一个由字典中的 3 个随机单词连接而成的密码。
如果要使用它,你必须更改以下数据:
- 词典文件的名称:示例中为 dictonary.txt
- 字典中的单词数量:示例中为 60453
然后,您可以在新脚本中使用它来创建用户并为他们分配生成的密码。这是一个示例:
#!/bin/bash
PwdGen="./generate_random_password.sh"
# define CSV separator
IFS=";"
while read username FullName
do
useradd -m -c "$FullName" $username
# Generate random password
Pwd=$($PwdGen)
# assign the password
usermod --password $(echo "$Pwd" | openssl passwd -1 -stdin) $username
done < users_in.csv
该脚本使用第一个脚本(generate_random_password.sh
)生成随机密码,创建用户并从输入中读取密码file users_in.csv
并为他们分配生成的密码。