X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;f=debian%2Fpostinst;h=97d8ac55c859af1ec2e00ad3d31cd20823efd96c;hb=refs%2Fheads%2Fsqueeze;hp=021ff8fd483646c07f6f49b7e438f06740c9a2b2;hpb=70b5b97e6187aa26c5ed224266d0ccaafbbdf0bf;p=bacula-cn.git diff --git a/debian/postinst b/debian/postinst index 021ff8f..97d8ac5 100644 --- a/debian/postinst +++ b/debian/postinst @@ -91,7 +91,7 @@ EOF generate_bconsole_config() { BCONSOLE_CONFIG=/etc/bacula/bconsole.conf - if [ -s $BCONSOLE_CONFIG ] && grep -q 'sysbackup-dir' $BCONSOLE_CONFIG; then + if [ -s $BCONSOLE_CONFIG ] && grep -q 'Console {' $BCONSOLE_CONFIG; then echo $BCONSOLE_CONFIG already exists, skipping. else umask 077 @@ -111,7 +111,7 @@ Director { Name = sysbackup-dir DIRport = 9101 address = sysbackup.carnet.hr - Password = "$PASS_BCONSOLE" + Password = "__INVALID__" # not used # you need these TLS entries so the bconsole and Director can communicate TLS Enable = yes @@ -120,6 +120,11 @@ Director { TLS Certificate = "/etc/bacula/bacula-fd.pem" TLS Key = "/etc/bacula/bacula-fd.pem" } + +Console { + Name = $HOST-acl + Password = "$PASS_BCONSOLE" +} EOF fi } @@ -164,11 +169,15 @@ restart_bacula() { fi } +random_string() { + head -n 20 /dev/urandom | openssl dgst -sha1 +} + send_mail() { REQUEST_FILE=/etc/bacula/bacula-fd.txt GPG_HOME=/var/lib/bacula-cn/gpg - BOUNDARY=$( head -20 /dev/urandom | openssl dgst -sha1 ) + BOUNDARY=$( random_string ) GPG="gpg --homedir $GPG_HOME --batch --encrypt --armour --recipient rt@tt.carnet.hr --always-trust" if [ -z "$CONFIG_CHANGED" ]; then @@ -176,9 +185,10 @@ send_mail() { return fi - umask 077 + umask 022 chmod 0700 $GPG_HOME echo Generating request in $REQUEST_FILE + rm -f $REQUEST_FILE # Header cat > $REQUEST_FILE <> $REQUEST_FILE + df -h | $GPG >> $REQUEST_FILE + +# attachment: database sizes +if [ -d /var/lib/mysql -o -d /var/lib/postgresql ]; then + cat >> $REQUEST_FILE </dev/null \ + | $GPG >> $REQUEST_FILE +fi # attachment: client config cat >> $REQUEST_FILE <> $REQUEST_FILE </dev/null`" ]; then + echo Mailing request from $REQUEST_FILE + if sendmail -t -oi -f "$EMAIL" < $REQUEST_FILE; then + requestsent=1 + fi + fi + + if [ -z "$requestsent" ]; then + db_input high bacula-cn/mail-failed || true + db_go || true + fi } load_config() { @@ -279,11 +314,11 @@ load_config() { db_get bacula-cn/contact CONTACT=$RET + EMAIL=${CONTACT#*<} + EMAIL=${EMAIL%>*} - db_stop - - PASS_FD=$( head -20 /dev/urandom | openssl dgst -sha1 ) - PASS_BCONSOLE=$( head -20 /dev/urandom | openssl dgst -sha1 ) + PASS_FD=$( random_string ) + PASS_BCONSOLE=$( random_string ) DATE=$( date '+%Y-%m-%d' ) @@ -301,6 +336,8 @@ case "$1" in restart_bacula send_mail + + db_stop ;; abort-upgrade|abort-remove|abort-deconfigure)