如何自动添加用户并为用户分配随机密码?

如何自动添加用户并为用户分配随机密码?

我想编写一个脚本文件,可以自动创建用户并随机生成密码。我编写的脚本如下。

我仍在学习,所以了解的不多。我想我已经找到了我所寻找的东西,但我对此不太确定。找到解决方案

有人可以帮我吗?

#!/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并为他们分配生成的密码。

相关内容