В этой статье мы рассмотрим три способа генерации паролей в терминале Linux: с использованием /dev/urandom, makepasswd и pwgen. Каждый из этих способов имеет свои преимущества и недостатки. Выбор конкретного способа зависит от ваших потребностей и предпочтений. Для генерации случайных и безопасных паролей рекомендуется использовать /dev/urandom или pwgen с опцией -s. makepasswd может быть полезен для генерации зашифрованных паролей, но следует учитывать, что он использует устаревший алгоритм MD5.
Используем /dev/urandom
При чтении устройство /dev/urandom возвращает бесконечный поток случайных байтов. Этот поток можно отфильтровать с помощью утилиты tr, чтобы оставить только нужные символы. Затем вывод передается команде xargs, которая по умолчанию выполняет команду echo и передает ей все, что было прочитано из стандартного ввода. А с помощью утилиты head можно указать необходимое количество символов в пароле.
То есть, сгенерировать пароль в Linux поможет следующая команда:
tr -dc A-Za-z0-9_ < /dev/urandom | head -c 10 | xargs
Пример вывода:
AurTdatFbw
Объяснение команды:
- tr -dc A-Za-z0-9_: Утилита tr удаляет (-d) все символы, кроме указанных (-c). В данном случае, остаются только буквы верхнего и нижнего регистра, цифры и символ подчеркивания.
- < /dev/urandom: Перенаправляет вывод устройства /dev/urandom на стандартный ввод команды tr.
- head -c 10: Утилита head выводит первые 10 байт (-c) из стандартного ввода.
- xargs: Утилита xargs преобразует стандартный ввод в аргументы для команды. По умолчанию выполняет команду echo.
Вы можете создать bash-функцию и записать её в ваш файл .bashrc для более удобного использования:
nano .bashrc
Добавьте в файл следующую функцию:
genpasswd() { local l=$1 [ "$l" == "" ] && l=16 tr -dc A-Za-z0-9_ < /dev/urandom | head -c ${l} | xargs }
Сохраните файл и примените изменения:
. .bashrc
Теперь вы можете генерировать пароли, используя команду genpasswd:
$ genpasswd 5
Пример вывода:
Hbe7a genpasswd 10
Пример вывода:
PDbt1tjBg0
Объяснение функции:
- genpasswd() { … }: Определяет bash-функцию с именем genpasswd.
- local l=$1: Присваивает локальной переменной l значение первого аргумента, переданного функции.
- [ «$l» == «» ] && l=16: Если первый аргумент не указан, присваивает переменной l значение 16 (длина пароля по умолчанию).
- tr -dc A-Za-z0-9_ < /dev/urandom | head -c ${l} | xargs: Генерирует пароль длиной l символов, используя описанную выше команду.
Используем makepasswd
Утилита makepasswd также может помочь сгенерировать пароль в Linux. Она также использует /dev/urandom, чтобы создавать случайные пароли. Вы можете установить её с помощью apt:
sudo apt install makepasswd
Просто выполните эту команду без параметров, чтобы получить случайный пароль:
makepasswd
Пример вывода:
5q6m4jMHJ
Вы можете указать количество символов в пароле с помощью опции —chars и можете создать несколько паролей с помощью опции —count:
makepasswd --chars 4 --count 3
Пример вывода:
1d65 R5Xe Lhes
Можно создать пароли и сразу вывести их зашифрованный хеш с помощью опции —crypt-md5:
makepasswd --chars 4 --count 3 --crypt-md5
Пример вывода:
DWBN $1$awZ5uNo/$r50RTWsihcMKEVQzoDyoZ1 xLN7 $1$h4ThtOu1$Bsmqhr/Tq/IIdGPtAVGda. A2R2 $1$bss49Rj7$y.9nAbyr749N.eYRUF155.
Объяснение опций:
- —chars: Указывает длину пароля.
- —count: Указывает количество паролей, которые нужно сгенерировать.
- —crypt-md5: Шифрует пароль с использованием алгоритма MD5. Важно: MD5 считается устаревшим и небезопасным. Рекомендуется использовать более современные алгоритмы, такие как SHA-256 или SHA-512. Однако, makepasswd не предоставляет возможности выбора алгоритма.
Используем pwgen
Утилита pwgen генерирует легко запоминаемые пароли, но также может генерировать случайные пароли. Устанавливается она также с помощью apt:
sudo apt install pwgen
Если выполнить её без опций, то вы увидите список из легко запоминаемых паролей:
pwgen
Пример вывода:
Xu6Phei7 Ree2ud9e ohphah8I iiZ8Efoo foG0moh3 aSho2neL Phero4Ud thiCh9ei uvaeChu0 eeCie5Um Wovie0do Eibuo3Ou Sai1Ovah po3OhT9j XeYei9ei eiQu2mai ....
Вы можете указать количество необходимых паролей с помощью опции -N и указать количество символов в пароле с помощью опции -n:
pwgen -N 3 -n 5
Пример вывода:
aeCo2 Le7oy uv6Oh
Существует также опция -s чтобы создавать более сложные пароли (их сложнее запомнить и подобрать):
pwgen -N 3 -n 5 -s
Пример вывода:
fY60V y6FIU 9XEt4
Объяснение опций:
- -N: Указывает количество паролей, которые нужно сгенерировать.
- -n: Указывает длину пароля.
- -s: Генерирует более сложные пароли (случайные символы).
Хотя в инструкции написано, что без опции -s пароль легче подобрать, на практике разница может быть незначительной. Рекомендуется всегда использовать опцию -s для генерации более безопасных паролей.