|
@@ -209,6 +209,9 @@ USB_MOUNT=/mnt/usb
|
209
|
209
|
# Name of a script used to create a backup of the system on usb drive
|
210
|
210
|
BACKUP_SCRIPT_NAME="backup"
|
211
|
211
|
|
|
212
|
+# Name of a script used to restore the system from usb drive
|
|
213
|
+RESTORE_SCRIPT_NAME="restore"
|
|
214
|
+
|
212
|
215
|
# name of a script used to backup to friends servers
|
213
|
216
|
BACKUP_TO_FRIENDS_SCRIPT_NAME="backup2friends"
|
214
|
217
|
|
|
@@ -219,9 +222,6 @@ RESTORE_FROM_FRIEND_SCRIPT_NAME="restorefromfriend"
|
219
|
222
|
# this will be automatically generated
|
220
|
223
|
BACKUP_TO_FRIENDS_PASSPHRASE=
|
221
|
224
|
|
222
|
|
-# Name of a script used to restore the system from usb drive
|
223
|
|
-RESTORE_SCRIPT_NAME="restore"
|
224
|
|
-
|
225
|
225
|
# memory limit for php in MB
|
226
|
226
|
MAX_PHP_MEMORY=32
|
227
|
227
|
|
|
@@ -232,6 +232,8 @@ MARIADB_PASSWORD=
|
232
|
232
|
XMPP_DIRECTORY="/var/lib/prosody"
|
233
|
233
|
|
234
|
234
|
# file containing a list of remote locations to backup to
|
|
235
|
+# Format: [username@friendsdomain//home/username] [ssh_password]
|
|
236
|
+# With the only space character being between the server and the password
|
235
|
237
|
FRIENDS_SERVERS_LIST="/home/$MY_USERNAME/backup.list"
|
236
|
238
|
|
237
|
239
|
#list of encryption protocols
|
|
@@ -2080,6 +2082,117 @@ function encrypt_outgoing_email {
|
2080
|
2082
|
echo 'encrypt_outgoing_email' >> $COMPLETION_FILE
|
2081
|
2083
|
}
|
2082
|
2084
|
|
|
2085
|
+function encrypt_all_email {
|
|
2086
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" ]]; then
|
|
2087
|
+ return
|
|
2088
|
+ fi
|
|
2089
|
+ if grep -Fxq "encrypt_all_email" $COMPLETION_FILE; then
|
|
2090
|
+ return
|
|
2091
|
+ fi
|
|
2092
|
+ if [[ $GPG_ENCRYPT_STORED_EMAIL != "yes" ]]; then
|
|
2093
|
+ return
|
|
2094
|
+ fi
|
|
2095
|
+ echo '#!/bin/bash' > /usr/bin/encmaildir
|
|
2096
|
+ echo '#' >> /usr/bin/encmaildir
|
|
2097
|
+ echo '# GPLv2' >> /usr/bin/encmaildir
|
|
2098
|
+ echo '# GPG Encrypt a Maildir using gpgit.pl, removing any S= or W= virtual flags.' >> /usr/bin/encmaildir
|
|
2099
|
+ echo '# Oct 03, 2014' >> /usr/bin/encmaildir
|
|
2100
|
+ echo '#' >> /usr/bin/encmaildir
|
|
2101
|
+ echo '# Change log:' >> /usr/bin/encmaildir
|
|
2102
|
+ echo '# Sep 03, 2011' >> /usr/bin/encmaildir
|
|
2103
|
+ echo '# - Temporary file is based on file_owner to avoid issues with permission differences.' >> /usr/bin/encmaildir
|
|
2104
|
+ echo '# - Temporary file is removed after run.' >> /usr/bin/encmaildir
|
|
2105
|
+ echo '# - Optional arguments passed to "find".' >> /usr/bin/encmaildir
|
|
2106
|
+ echo '# - Full paths to binaries.' >> /usr/bin/encmaildir
|
|
2107
|
+ echo '# - Removed unneccessary need of "cat", "grep", etc.' >> /usr/bin/encmaildir
|
|
2108
|
+ echo '# Sep 04, 2011' >> /usr/bin/encmaildir
|
|
2109
|
+ echo '# - Dont remove Dovecot index/uid unless messages have been GPG encrypted.' >> /usr/bin/encmaildir
|
|
2110
|
+ echo '# - Adjust file tests to not just use -e' >> /usr/bin/encmaildir
|
|
2111
|
+ echo '# - Quote all file operations' >> /usr/bin/encmaildir
|
|
2112
|
+ echo '# Sep 05, 2011' >> /usr/bin/encmaildir
|
|
2113
|
+ echo '# - Dont arbitrarily copy files, only overwrite the file in ~/Maildir if it differs after calling gpgencmail.pl' >> /usr/bin/encmaildir
|
|
2114
|
+ echo '# - Only rebuild the index if we have modified ~/Maildir' >> /usr/bin/encmaildir
|
|
2115
|
+ echo '# Oct 03, 2014' >> /usr/bin/encmaildir
|
|
2116
|
+ echo '# - Minor modifications for use with Freedombone' >> /usr/bin/encmaildir
|
|
2117
|
+ echo '' >> /usr/bin/encmaildir
|
|
2118
|
+ echo 'if [[ -z "$1" || -z "$2" || -z "$3" ]]; then' >> /usr/bin/encmaildir
|
|
2119
|
+ echo ' echo "Usage is ./encmaildir.sh {optional arguments passed to find for messages such as -mtime 0}"' >> /usr/bin/encmaildir
|
|
2120
|
+ echo ' exit 0' >> /usr/bin/encmaildir
|
|
2121
|
+ echo 'fi' >> /usr/bin/encmaildir
|
|
2122
|
+ echo '' >> /usr/bin/encmaildir
|
|
2123
|
+ echo 'MAIL_DIR=$1' >> /usr/bin/encmaildir
|
|
2124
|
+ echo 'EMAIL_ADDRESS=$2' >> /usr/bin/encmaildir
|
|
2125
|
+ echo 'USERNAME=$3' >> /usr/bin/encmaildir
|
|
2126
|
+ echo 'if [ ! -d "$MAIL_DIR" ]; then' >> /usr/bin/encmaildir
|
|
2127
|
+ echo " MAIL_DIR='/home/$MY_USERNAME/Maildir'" >> /usr/bin/encmaildir
|
|
2128
|
+ echo 'fi' >> /usr/bin/encmaildir
|
|
2129
|
+ echo '' >> /usr/bin/encmaildir
|
|
2130
|
+ echo 'if [ ! $EMAIL_ADDRESS ]; then' >> /usr/bin/encmaildir
|
|
2131
|
+ echo " EMAIL_ADDRESS='$MY_USERNAME@$DOMAIN_NAME'" >> /usr/bin/encmaildir
|
|
2132
|
+ echo 'fi' >> /usr/bin/encmaildir
|
|
2133
|
+ echo '' >> /usr/bin/encmaildir
|
|
2134
|
+ echo 'if [ ! $USERNAME ]; then' >> /usr/bin/encmaildir
|
|
2135
|
+ echo " USERNAME='$MY_USERNAME'" >> /usr/bin/encmaildir
|
|
2136
|
+ echo 'fi' >> /usr/bin/encmaildir
|
|
2137
|
+ echo '' >> /usr/bin/encmaildir
|
|
2138
|
+ echo '# Does this key exist?' >> /usr/bin/encmaildir
|
|
2139
|
+ echo 'gpg --list-keys "$EMAIL_ADDRESS" > /dev/null 2>&1' >> /usr/bin/encmaildir
|
|
2140
|
+ echo 'if [ $? -gt 0 ]; then' >> /usr/bin/encmaildir
|
|
2141
|
+ echo ' echo "A GPG key for $EMAIL_ADDRESS could not be found!"' >> /usr/bin/encmaildir
|
|
2142
|
+ echo ' exit 0' >> /usr/bin/encmaildir
|
|
2143
|
+ echo 'fi' >> /usr/bin/encmaildir
|
|
2144
|
+ echo '' >> /usr/bin/encmaildir
|
|
2145
|
+ echo '# Find all files in the Maildir specified.' >> /usr/bin/encmaildir
|
|
2146
|
+ echo 'echo "Calling find"' >> /usr/bin/encmaildir
|
|
2147
|
+ echo -n 'find "$MAIL_DIR" -type f -regex ' >> /usr/bin/encmaildir
|
|
2148
|
+ echo -n "'.*/\(cur\|new\)/.*' " >> /usr/bin/encmaildir
|
|
2149
|
+ echo '$4|while read line; do' >> /usr/bin/encmaildir
|
|
2150
|
+ echo ' gpgit.pl --encrypt-mode prefer-inline "$EMAIL_ADDRESS" "/tmp/msg_$USERNAME"' >> /usr/bin/encmaildir
|
|
2151
|
+ echo '' >> /usr/bin/encmaildir
|
|
2152
|
+ echo ' # Check to see if there are differences between the existing' >> /usr/bin/encmaildir
|
|
2153
|
+ echo ' # Maildir file and what was created by gpgit.pl' >> /usr/bin/encmaildir
|
|
2154
|
+ echo ' diff -qa "$line" "/tmp/msg_$USERNAME" > /dev/null 2>&1;' >> /usr/bin/encmaildir
|
|
2155
|
+ echo ' if [ $? -gt 0 ]; then' >> /usr/bin/encmaildir
|
|
2156
|
+ echo ' # Preserve timestamps, set ownership.' >> /usr/bin/encmaildir
|
|
2157
|
+ echo ' chown $USERNAME:$USERNAME "/tmp/msg_$USERNAME"' >> /usr/bin/encmaildir
|
|
2158
|
+ echo ' chmod 600 "/tmp/msg_$USERNAME"' >> /usr/bin/encmaildir
|
|
2159
|
+ echo ' touch "/tmp/msg_$USERNAME" --reference="$line"' >> /usr/bin/encmaildir
|
|
2160
|
+ echo '' >> /usr/bin/encmaildir
|
|
2161
|
+ echo ' # Unlink the original Maildir message' >> /usr/bin/encmaildir
|
|
2162
|
+ echo ' unlink "$line"' >> /usr/bin/encmaildir
|
|
2163
|
+ echo '' >> /usr/bin/encmaildir
|
|
2164
|
+ echo ' # Strip message sizes, retain experimental flags' >> /usr/bin/encmaildir
|
|
2165
|
+ echo ' # and status flags, and copy the file over.' >> /usr/bin/encmaildir
|
|
2166
|
+ echo ' STRIPSIZES=$(/bin/echo "$line"|/bin/sed -e "s/W=[[:digit:]]*//" -e "s/S=[[:digit:]]*//" -e "s/,,//" -e "s/,:2/:2/")' >> /usr/bin/encmaildir
|
|
2167
|
+ echo ' cp -av "/tmp/msg_$USERNAME" "$STRIPSIZES"' >> /usr/bin/encmaildir
|
|
2168
|
+ echo '' >> /usr/bin/encmaildir
|
|
2169
|
+ echo ' #Indexes must be rebuilt, weve modified Maildir.' >> /usr/bin/encmaildir
|
|
2170
|
+ echo ' touch "/tmp/rebuild_index_$USERNAME"' >> /usr/bin/encmaildir
|
|
2171
|
+ echo ' else' >> /usr/bin/encmaildir
|
|
2172
|
+ echo ' echo "Not copying, no differences between /tmp/msg_$USERNAME and $line"' >> /usr/bin/encmaildir
|
|
2173
|
+ echo ' fi' >> /usr/bin/encmaildir
|
|
2174
|
+ echo '' >> /usr/bin/encmaildir
|
|
2175
|
+ echo ' # Remove the temporary file' >> /usr/bin/encmaildir
|
|
2176
|
+ echo ' unlink "/tmp/msg_$USERNAME"' >> /usr/bin/encmaildir
|
|
2177
|
+ echo 'done' >> /usr/bin/encmaildir
|
|
2178
|
+ echo '' >> /usr/bin/encmaildir
|
|
2179
|
+ echo '#Remove Dovecot index and uids for regeneration.' >> /usr/bin/encmaildir
|
|
2180
|
+ echo 'if [ -f "/tmp/rebuild_index_$USERNAME" ]; then' >> /usr/bin/encmaildir
|
|
2181
|
+ echo ' echo "Removing Dovecot indexes and uids"' >> /usr/bin/encmaildir
|
|
2182
|
+ echo -n ' find "$MAIL_DIR" -type f -regex ' >> /usr/bin/encmaildir
|
|
2183
|
+ echo "'.*\(dovecot-\|dovecot\.\|\.uidvalidity\).*' -delete" >> /usr/bin/encmaildir
|
|
2184
|
+ echo '' >> /usr/bin/encmaildir
|
|
2185
|
+ echo ' # Remove the temporary file' >> /usr/bin/encmaildir
|
|
2186
|
+ echo ' unlink "/tmp/rebuild_index_$USERNAME"' >> /usr/bin/encmaildir
|
|
2187
|
+ echo 'else' >> /usr/bin/encmaildir
|
|
2188
|
+ echo ' echo "No messages found needing GPG encryption, not' >> /usr/bin/encmaildir
|
|
2189
|
+ echo ' echo "removing Dovecot indexes and UIDs."' >> /usr/bin/encmaildir
|
|
2190
|
+ echo 'fi' >> /usr/bin/encmaildir
|
|
2191
|
+ echo 'exit 0' >> /usr/bin/encmaildir
|
|
2192
|
+ chmod +x /usr/bin/encmaildir
|
|
2193
|
+ echo 'encrypt_all_email' >> $COMPLETION_FILE
|
|
2194
|
+}
|
|
2195
|
+
|
2083
|
2196
|
function email_client {
|
2084
|
2197
|
if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" ]]; then
|
2085
|
2198
|
return
|
|
@@ -4265,6 +4378,7 @@ folders_for_email_addresses
|
4265
|
4378
|
dynamic_dns_freedns
|
4266
|
4379
|
create_public_mailing_list
|
4267
|
4380
|
#create_private_mailing_list
|
|
4381
|
+encrypt_all_email
|
4268
|
4382
|
import_email
|
4269
|
4383
|
script_for_attaching_usb_drive
|
4270
|
4384
|
install_web_server
|