Recreate request file with public permissions.
[bacula-cn.git] / debian / postinst
index 78a47ec..a192ddc 100644 (file)
@@ -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
 }
@@ -176,9 +181,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 <<EOF
@@ -231,7 +237,7 @@ Client {
   TLS Require = yes
   TLS CA Certificate File = "/etc/bacula/clients.d/$HOST-fd.pem"
   TLS Certificate = "/etc/bacula/bacula.pem"
-  TLS Key = "/etc/bacula/bacula.pem"
+  TLS Key = "/etc/bacula/bacula.key"
 }
 
 Job {
@@ -265,9 +271,18 @@ cat >> $REQUEST_FILE <<EOF
 --$BOUNDARY--
 EOF
 
-    # Send it
-    echo Mailing request from $REQUEST_FILE
-    sendmail -t -oi < $REQUEST_FILE
+    # Try to send it
+    if [ -x "`which sendmail 2>/dev/null`" ]; then
+        echo Mailing request from $REQUEST_FILE
+        if sendmail -t -oi < $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() {
@@ -280,8 +295,6 @@ load_config() {
     db_get bacula-cn/contact
     CONTACT=$RET
 
-    db_stop
-
     PASS_FD=$( head -20 /dev/urandom | openssl dgst -sha1 )
     PASS_BCONSOLE=$( head -20 /dev/urandom | openssl dgst -sha1 )
 
@@ -301,6 +314,8 @@ case "$1" in
 
         restart_bacula
         send_mail
+
+        db_stop
     ;;
 
     abort-upgrade|abort-remove|abort-deconfigure)