1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
#!/bin/bash -e
RANDOMDEVICE=/dev/urandom
allowed=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./
declare -a RVAL
second () {
echo $2
}
create-random-pw() {
if ! read -n 0 < $RANDOMDEVICE ; then
echo 1>&2 "Warning, no random device found, password might be insecure"
for i in ` seq 1 "$1" `; do
RVAL[i]=$RANDOM
done
else
for i in ` seq 1 "$1" `; do
RVAL[i]=$(second $(od -N 1 -t d $RANDOMDEVICE))
done
fi
PW=""
for i in ` seq 1 "$1" `; do
idx=$((${RVAL[i]} & 0x3F))
PW="${PW}${allowed:$idx:1}"
done
printf "%s" $PW
}
# this function comes from wwwconfig-common's apache.func script
getwwwoption() {
getwwwoption=""
if [ -f $2 ] ; then
if grep $1 $2 | grep -v "#" > /dev/null 2>&1 ; then
getwwwoption=$(sed -ne "/^[[:space:]]*$1[[:space:]]\+/ s|[[:space:]]*$1[[:space:]]\+\([^[:space:]]\+\)[[:space:]]*$|\1|pg;" < $2)
fi
fi
}
# Use debconf baby
. /usr/share/debconf/confmodule
db_version 2.0
db_title Flyspray
db_input "low" "flyspray/welcome" || true
db_go
db_input "high" "flyspray/purge_removes_data" || true
db_go
### Required options no matter what ###
db_input "high" "flyspray/webserver_type" || true
db_go
db_get "flyspray/webserver_type"
mywebtype="$RET"
if [ "$mywebtype" = "Apache" ]; then
getwwwoption User /etc/apache/httpd.conf
webuser=$(echo "$getwwwoption" | sed -e "q")
getwwwoption Group /etc/apache/httpd.conf
webgroup=$(echo "$getwwwoption" | sed -e "q")
elif [ "$mywebtype" = "Apache2" ]; then
getwwwoption User /etc/apache2/apache2.conf
webuser=$(echo "$getwwwoption" | sed -e "q")
getwwwoption Group /etc/apache2/apache2.conf
webgroup=$(echo "$getwwwoption" | sed -e "q")
fi
if [ -z "$webuser" ]; then
db_input "high" "flyspray/webuser" || true
db_go
else
db_set "flyspray/webuser" "$webuser"
fi
if [ -z "$webgroup" ]; then
db_input "high" "flyspray/webgroup" || true
db_go
else
db_set "flyspray/webgroup" "$webgroup"
fi
db_input "high" "flyspray/databasemgr_type" || true
db_go
db_get "flyspray/databasemgr_type"
dbtype="$RET"
if [ "$dbtype" != "Manual" ] ; then
db_input "high" "flyspray/databasemgr_server" || true
db_go
db_input "high" "flyspray/dbmyadmin" || true
db_go
db_input "critical" "flyspray/dbadmpass" || true
db_go
db_input "medium" "flyspray/database_name" || true
db_go
db_input "medium" "flyspray/database_user" || true
db_go
db_input "medium" "flyspray/database_pass" || true
db_go
db_get "flyspray/database_pass"
dbpass="$RET"
if [ -z "$dbpass" ] || [ "$dbpass" = "auto" ]; then
dbpass=$(create-random-pw 8)
elif [ "$dbpass" = "none" ]; then
dbpass=""
fi
db_set "flyspray/database_pass" "$dbpass"
fi
|