Вопрос или проблема
Я хочу написать скрипт, который будет автоматически создавать пользователей и случайным образом генерировать пароли. Скрипт, который я написал, приведён ниже.
Я всё ещё учусь, поэтому не знаю многого. Думаю, я нашёл то, что искал, но не уверен. Нашёл решение.
Может кто-нибудь помочь мне с этим?
#!/bin/bash
file="/home/dfs/user"
while IFS= read line
do
echo "$time"
done < "$file"
useradd Daniel
passwd daniel
С помощью следующего скрипта вы можете сгенерировать случайный пароль из словаря:
#!/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 случайные слова из словаря.
Если вы хотите использовать это, вам нужно изменить следующие данные:
- название файла словаря: dictionary.txt в примере
- число слов в словаре: 60453 в примере
Затем вы можете использовать это в новом скрипте для создания пользователей и назначения им сгенерированного пароля. Вот пример:
#!/bin/bash
PwdGen="./generate_random_password.sh"
# определяем разделитель CSV
IFS=";"
while read username FullName
do
useradd -m -c "$FullName" $username
# Генерация случайного пароля
Pwd=$($PwdGen)
# назначаем пароль
usermod --password $(echo "$Pwd" | openssl passwd -1 -stdin) $username
done < users_in.csv
Этот скрипт использует первый скрипт (generate_random_password.sh
) для генерации случайных паролей, создаёт пользователей, читая их из входного файла users_in.csv
и назначает им сгенерированный пароль.
Ответ или решение
Чтобы автоматически создавать пользователей с случайно сгенерированными паролями, вы можете воспользоваться следующими скриптами на Bash. В этом ответе я постараюсь изложить все шаги, чтобы у вас получилось без лишних затруднений.
1. Сценарий генерации случайного пароля
Прежде всего, создадим скрипт, который будет генерировать случайные пароли, используя словарь. Этот словарь будет представлять собой файл, содержащий много слов, откуда будут выбраны случайные слова для формирования пароля.
Скрипт generate_random_password.sh
:
#!/bin/bash
generate_random() {
RANDOM_NUMBER=$(/usr/bin/perl -e 'print int(rand(60453));')
}
generate_random
randomWord1=$(head -n $RANDOM_NUMBER ./dictionary.txt | tail -n 1)
generate_random
randomWord2=$(head -n $RANDOM_NUMBER ./dictionary.txt | tail -n 1)
generate_random
randomWord3=$(head -n $RANDOM_NUMBER ./dictionary.txt | tail -n 1)
echo "$randomWord1 $randomWord2 $randomWord3"
Объяснение:
- Функция
generate_random
использует Perl для генерации случайного числа. - Затем с помощью
head
иtail
выбираются три случайных слова из файлаdictionary.txt
. - Скрипт выводит три слова, которые можно объединить в пароль.
2. Сценарий для создания пользователей
Теперь создадим основной скрипт, который будет считывать пользователей из CSV-файла и добавлять их в систему с помощью сгенерированного пароля.
Скрипт create_users.sh
:
#!/bin/bash
PwdGen="./generate_random_password.sh"
# Определяем разделитель CSV
IFS=";"
# Читаем данные из файла users_in.csv
while read username FullName
do
# Создаем пользователя
useradd -m -c "$FullName" $username
# Генерируем случайный пароль
Pwd=$($PwdGen)
# Устанавливаем пароль пользователю
usermod --password $(echo "$Pwd" | openssl passwd -1 -stdin) $username
done < users_in.csv
Объяснение:
- Определяем переменную
PwdGen
, указывающую на файл со скриптом генерации пароля. - Читаем файл
users_in.csv
, где каждая строка представляет собой имя пользователя и полное имя, разделенные символом;
. - Для каждого пользователя выполняем команду
useradd
, затем вызываем скрипт для генерации пароля. - Устанавливаем полученный пароль для созданного пользователя с помощью команды
usermod
.
3. Подготовка CSV-файла
Убедитесь, что у вас есть файл users_in.csv
в следующем формате:
username1;Полное Имя 1
username2;Полное Имя 2
...
4. Подготовка словаря
Создайте текстовый файл dictionary.txt
, в который добавьте как можно больше слов. Используйте его для генерации паролей.
5. Запуск скрипта
Проверьте, что оба скрипта имеют права на выполнение:
chmod +x generate_random_password.sh create_users.sh
Теперь вы можете запустить скрипт create_users.sh
, и он автоматически создаст пользователей с случайно сгенерированными паролями.
./create_users.sh
Заключение
Используя вышеизложенные шаги, вы сможете автоматизировать процесс создания пользователей и назначения случайных паролей. Настраивайте скрипты под свои нужды: изменяйте словарь, формат входных данных и другие параметры. Удачи в вашем обучении и развитии в сфере ИТ!