diff --git a/base/univention-lib/shell/base.sh b/base/univention-lib/shell/base.sh index ad82fa5555..717af63902 100644 --- a/base/univention-lib/shell/base.sh +++ b/base/univention-lib/shell/base.sh @@ -235,12 +235,19 @@ create_machine_password () { if [ -z "$length" ]; then length=20 + elif [ $length -lt 4 ]; then + length=4 fi if [ -z "$compl" ]; then - compl="scn" + quater=$(($length/4)) + part1="$(pwgen -1 -s -A --no-numerals $quater)" + part2="$(pwgen -1 -s -A -n $quater)" + part3="$(pwgen -1 -s -c --no-numerals $quater)" + part4="$(pwgen -1 -s -c -n $quater)" + echo -e "${part1}\n${part2}\n${part3}\n${part4}" | shuf | tr -d '\n' + else + pwgen -1 -${compl} ${length} | tr -d '\n' fi - - pwgen -1 -${compl} ${length} | tr -d '\n' } #