Я пытаюсь генерировать случайные и безопасные пароли к своим различным конфигурационным файлам и настройкам на лету, когда я запускаю свой скрипт автоматизированного развертывания. Я хочу, чтобы они были сгенерированы, показаны пользователю, используемому в качестве части развертывания и затем отбросил.
Это - то, с чем я шел:
# FUNCTION TO GENERATE A RANDOM STRING
function randpass() {
[ "$2" == "0" ] && CHAR="[:alnum:]" || CHAR="[:graph:]"
cat /dev/urandom | tr -cd "$CHAR" | head -c ${1:-32}
echo
}
$NOW = $(date +"%m-%d-%Y") || echo ="Time = $now"
$APPKEY = randpass(20) || echo "Secret key = $APPKEY"
read -p "Copied down?" -n1 -s
Я плохо знаком с оболочкой и администрированием Linux, таким образом, любая справка ценится.
James
1) Да, используйте что-то вроде pwgen, которое позволяет настраивать пароли (например, какие наборы символов включать, длину, общее количество сгенерированных паролей и т. Д.).
2) YMMV
3), поскольку вы их не экспортируете, №
Я использую такой подход:
PASSWORD=$(strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 12 | tr -d '\n'; echo)
С моей точки зрения сгенерированные пароли достаточно безопасны, но я не специалист по криптографии.
Переменные сохраняются только в контексте сценария до тех пор, пока вы не используете «источник» для его выполнения. Если вы это сделаете, вы можете использовать «unset PASSWORD», чтобы удалить содержимое переменной.
* pwgen, конечно, подходит, но вы можете столкнуться с ситуацией, когда вы просто не можете установить / использовать его, я делал это довольно часто.