diff --git a/src/freedombone-controlpanel b/src/freedombone-controlpanel index f4cf7504..7753fbf5 100755 --- a/src/freedombone-controlpanel +++ b/src/freedombone-controlpanel @@ -1780,8 +1780,8 @@ function show_firewall { echo $"Firewall Settings" echo '' while read -r line; do - firewall_name=$(awk "$line" -F '=' '{print $1}') - firewall_port=$(awk "$line" -F '=' '{print $2}') + firewall_name=$(echo "$line" | awk -F '=' '{print $1}') + firewall_port=$(echo "$line" | awk -F '=' '{print $2}') echo -n -e "$(pad_string "${firewall_name}")" echo "${firewall_port}" done < "$FIREWALL_CONFIG" @@ -1881,29 +1881,25 @@ function email_smtp_proxy { function menu_backup_restore { while true do - data=$(mktemp 2>/dev/null) - dialog --backtitle $"Freedombone Control Panel" \ - --title $"Backup and Restore" \ - --radiolist $"Choose an operation:" 19 70 12 \ - 1 $"Backup data to USB drive" off \ - 2 $"Restore GPG key from USB keydrive" off \ - 3 $"Restore data from USB drive" off \ - 4 $"Reinstall mariadb" off \ - 5 $"Configure remote backups" off \ - 6 $"Restore from remote backup" off \ - 7 $"Backup GPG key to USB (master keydrive)" off \ - 8 $"Backup GPG key to USB (fragment keydrive)" off \ - 9 $"Format a USB drive (LUKS encrypted)" off \ - 10 $"Remove backups from a USB drive" off \ - 11 $"Back to main menu" on 2> "$data" - sel=$? - case $sel in - 1) rm -f "$data" - break;; - 255) rm -f "$data" - break;; - esac - case $(cat "$data") in + W=(1 $"Backup data to USB drive" + 2 $"Restore GPG key from USB keydrive" + 3 $"Restore data from USB drive" + 4 $"Reinstall mariadb" + 5 $"Configure remote backups" + 6 $"Restore from remote backup" + 7 $"Backup GPG key to USB (master keydrive)" + 8 $"Backup GPG key to USB (fragment keydrive)" + 9 $"Format a USB drive (LUKS encrypted)" + 10 $"Remove backups from a USB drive") + + # shellcheck disable=SC2068 + selection=$(dialog --backtitle $"Freedombone Administrator Control Panel" --title $"Backup and Restore" --menu $"Choose an operation, or ESC for main menu:" 19 70 12 "${W[@]}" 3>&2 2>&1 1>&3) + + if [ ! "$selection" ]; then + break + fi + + case $selection in 1) backup_data;; 2) restore_gpg_key;; 3) restore_data;; @@ -1914,36 +1910,29 @@ function menu_backup_restore { 8) create_keydrive_fragment;; 9) format_drive;; 10) remove_backups;; - 11) rm -f "$data" - break;; esac - rm -f "$data" done } function menu_email { while true do - data=$(mktemp 2>/dev/null) - dialog --backtitle $"Freedombone Control Panel" \ - --title $"Email Menu" \ - --radiolist $"Choose an operation:" 15 70 8 \ - 1 $"Add a user to a mailing list" off \ - 2 $"Remove a user from a mailing list" off \ - 3 $"Add an email rule" off \ - 4 $"Block/Unblock an email address" off \ - 5 $"Block/Unblock email with subject text" off \ - 6 $"Outgoing Email Proxy" off \ - 7 $"Extra email domains" off \ - 8 $"Back to main menu" on 2> "$data" - sel=$? - case $sel in - 1) rm -f "$data" - break;; - 255) rm -f "$data" - break;; - esac - case $(cat "$data") in + W=(1 $"Add a user to a mailing list" + 2 $"Remove a user from a mailing list" + 3 $"Add an email rule" + 4 $"Block/Unblock an email address" + 5 $"Block/Unblock email with subject text" + 6 $"Outgoing Email Proxy" + 7 $"Extra email domains") + + # shellcheck disable=SC2068 + selection=$(dialog --backtitle $"Freedombone Administrator Control Panel" --title $"Email Menu" --menu $"Choose an operation, or ESC for main menu:" 15 70 8 "${W[@]}" 3>&2 2>&1 1>&3) + + if [ ! "$selection" ]; then + break + fi + + case $selection in 1) add_to_mailing_list;; 2) remove_user_from_mailing_list;; 3) email_rule;; @@ -1951,10 +1940,7 @@ function menu_email { 5) block_unblock_subject;; 6) email_smtp_proxy;; 7) email_extra_domains;; - 8) rm -f "$data" - break;; esac - rm -f "$data" done } @@ -2073,66 +2059,52 @@ function domain_blocking_show { function domain_blocking { while true do - data=$(mktemp 2>/dev/null) - dialog --backtitle $"Freedombone Control Panel" \ - --title $"Domain or User Blocking" \ - --radiolist $"Choose an operation:" 14 60 6 \ - 1 $"Block a domain or user" off \ - 2 $"Unblock a domain or user" off \ - 3 $"Block an IP address" off \ - 4 $"Unblock an IP address" off \ - 5 $"Show blocked domains and users" off \ - 6 $"Back to main menu" on 2> "$data" - sel=$? - case $sel in - 1) rm -f "$data" - break;; - 255) rm -f "$data" - break;; - esac - case $(cat "$data") in + W=(1 $"Block a domain or user" + 2 $"Unblock a domain or user" + 3 $"Block an IP address" + 4 $"Unblock an IP address" + 5 $"Show blocked domains and users") + + # shellcheck disable=SC2068 + selection=$(dialog --backtitle $"Freedombone Administrator Control Panel" --title $"Domain or User Blocking" --menu $"Choose an operation, or ESC for main menu:" 13 70 6 "${W[@]}" 3>&2 2>&1 1>&3) + + if [ ! "$selection" ]; then + break + fi + + case $selection in 1) domain_blocking_add;; 2) domain_blocking_remove;; 3) ip_blocking_add;; 4) ip_blocking_remove;; 5) domain_blocking_show;; - 6) rm -f "$data" - break;; esac - rm -f "$data" done } function menu_users { while true do - data=$(mktemp 2>/dev/null) - dialog --backtitle $"Freedombone Control Panel" \ - --title $"Manage Users" \ - --radiolist $"Choose an operation:" 13 70 6 \ - 1 $"Add a user" off \ - 2 $"Delete a user" off \ - 3 $"Change user password" off \ - 4 $"Change user ssh public key" off \ - 5 $"Reset password tries" off \ - 6 $"Back to main menu" on 2> "$data" - sel=$? - case $sel in - 1) rm -f "$data" - break;; - 255) rm -f "$data" - break;; - esac - case $(cat "$data") in + W=(1 $"Add a user" + 2 $"Delete a user" + 3 $"Change user password" + 4 $"Change user ssh public key" + 5 $"Reset password tries") + + # shellcheck disable=SC2068 + selection=$(dialog --backtitle $"Freedombone Administrator Control Panel" --title $"Manage Users" --menu $"Choose an operation, or ESC for main menu:" 13 70 6 "${W[@]}" 3>&2 2>&1 1>&3) + + if [ ! "$selection" ]; then + break + fi + + case $selection in 1) add_user;; 2) delete_user;; 3) change_password;; 4) change_ssh_public_key;; 5) reset_password_tries;; - 6) rm -f "$data" - break;; esac - rm -f "$data" done } @@ -2202,31 +2174,24 @@ function menu_wifi { fi fi - data=$(mktemp 2>/dev/null) - dialog --backtitle $"Freedombone Control Panel" \ - --title $"Wifi Menu" \ - --radiolist $"${status_str}\\n\\nChoose an operation:" 14 70 6 \ - 1 $"Enable or disable Wifi" off \ - 2 $"Configure wifi networks" off \ - 3 $"Manually edit wifi networks file" off \ - 4 $"Hotspot settings" off \ - 5 $"Exit" on 2> "$data" - sel=$? - case $sel in - 1) rm -f "$data" - break;; - 255) rm -f "$data" - break;; - esac - case $(cat "$data") in + W=(1 $"Enable or disable Wifi" + 2 $"Configure wifi networks" + 3 $"Manually edit wifi networks file" + 4 $"Hotspot settings") + + # shellcheck disable=SC2068 + selection=$(dialog --backtitle $"Freedombone Administrator Control Panel" --title $"Wifi Menu" --menu $"${status_str}\\n\\nChoose an operation, or ESC for main menu:" 14 70 6 "${W[@]}" 3>&2 2>&1 1>&3) + + if [ ! "$selection" ]; then + break + fi + + case $selection in 1) wifi_enable;; 2) wifi_settings;; 3) wifi_edit_networks;; 4) hotspot_settings;; - 5) rm -f "$data" - break;; esac - rm -f "$data" done } @@ -2275,41 +2240,38 @@ function menu_app_settings { function menu_top_level { while true do - data=$(mktemp 2>/dev/null) - dialog --backtitle $"Freedombone Control Panel" \ - --title $"Control Panel" \ - --radiolist $"Choose an operation:" 30 70 22 \ - 1 $"About this system" off \ - 2 $"Passwords" off \ - 3 $"Backup and Restore" off \ - 4 $"Show Firewall" off \ - 5 $"Verify Tripwire Code" off \ - 6 $"Reset Tripwire" off \ - 7 $"App Settings" off \ - 8 $"Add/Remove Apps" off \ - 9 $"Logging on/off" off \ - 10 $"Ping enable/disable" off \ - 11 $"Manage Users" off \ - 12 $"Email Menu" off \ - 13 $"Domain or User Blocking" off \ - 14 $"Security Settings" off \ - 15 $"Change the name of this system" off \ - 16 $"Set a static local IP address" off \ - 17 $"Wifi menu" off \ - 18 $"Add Clacks" off \ - 19 $"Check for updates" off \ - 20 $"Power off the system" off \ - 21 $"Restart the system" off \ - 22 $"Exit" on 2> "$data" - sel=$? - case $sel in - 1) rm -f "$data" - exit 1;; - 255) rm -f "$data" - exit 1;; - esac + W=(1 $"About this system" + 2 $"Passwords" + 3 $"Backup and Restore" + 4 $"Show Firewall" + 5 $"Verify Tripwire Code" + 6 $"Reset Tripwire" + 7 $"App Settings" + 8 $"Add/Remove Apps" + 9 $"Logging on/off" + 10 $"Ping enable/disable" + 11 $"Manage Users" + 12 $"Email Menu" + 13 $"Domain or User Blocking" + 14 $"Security Settings" + 15 $"Change the name of this system" + 16 $"Set a static local IP address" + 17 $"Wifi menu" + 18 $"Add Clacks" + 19 $"Check for updates" + 20 $"Power off the system" + 21 $"Restart the system") + + # shellcheck disable=SC2068 + selection=$(dialog --backtitle $"Freedombone Administrator Control Panel" --title $"Administrator Control Panel" --menu $"Choose an operation, or ESC to exit:" 28 60 28 "${W[@]}" 3>&2 2>&1 1>&3) + + if [ ! "$selection" ]; then + break + fi + please_wait - case $(cat "$data") in + + case $selection in 1) show_about;; 2) view_or_change_passwords;; 3) menu_backup_restore;; @@ -2335,10 +2297,7 @@ function menu_top_level { 19) check_for_updates;; 20) shut_down_system;; 21) restart_system;; - 22) rm -f "$data" - break;; esac - rm -f "$data" done } diff --git a/src/freedombone-controlpanel-user b/src/freedombone-controlpanel-user index 7c280d26..a10696f4 100755 --- a/src/freedombone-controlpanel-user +++ b/src/freedombone-controlpanel-user @@ -283,34 +283,25 @@ function gpg_set_trust { fpr=$(gpg --with-colons --fingerprint "$TRUST_ADDRESS" | grep fpr | head -n 1 | awk -F ':' '{print $10}') if [ ${#fpr} -gt 2 ]; then - data=$(mktemp 2>/dev/null) - dialog --backtitle $"Freedombone User Control Panel" \ - --title $"Trust a PGP/GPG key or website domain" \ - --radiolist $"Set the trust level for $TRUST_ADDRESS:" 18 70 10 \ - 1 $"I don't know or won't say" off \ - 2 $"I do NOT trust" off \ - 3 $"I trust marginally" on \ - 4 $"I trust fully" off \ - 5 $"I trust ultimately" off 2> "$data" - sel=$? - case $sel in - 1) rm -f "$data" - return;; - 255) rm -f "$data" - return;; - esac - TRUST_LEVEL=$(cat "$data") - if [ "${TRUST_LEVEL}" -ge 1 ] ; then - if [ "${TRUST_LEVEL}" -le 5 ] ; then - if echo -e "trust\\n${TRUST_LEVEL}\\ny\\nsave\\n" | gpg --command-fd 0 --edit-key "$fpr"; then - gpg --update-trustdb - dialog --title $"Trust a PGP/GPG key or website domain" \ - --backtitle $"Freedombone User Control Panel" \ - --msgbox $"$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}" 6 50 - fi - fi + W=(1 $"I don't know or won't say" + 2 $"I do NOT trust" + 3 $"I trust marginally" + 4 $"I trust fully" + 5 $"I trust ultimately") + + # shellcheck disable=SC2068 + TRUST_LEVEL=$(dialog --backtitle $"Freedombone User Control Panel" --title $"Trust a PGP/GPG key or website domain" --menu $"Set the trust level for $TRUST_ADDRESS:" 18 70 10 "${W[@]}" 3>&2 2>&1 1>&3) + + if [ ! "$TRUST_LEVEL" ]; then + return; + fi + + if echo -e "trust\\n${TRUST_LEVEL}\\ny\\nsave\\n" | gpg --command-fd 0 --edit-key "$fpr"; then + gpg --update-trustdb + dialog --title $"Trust a PGP/GPG key or website domain" \ + --backtitle $"Freedombone User Control Panel" \ + --msgbox $"$TRUST_ADDRESS was set to trust level ${TRUST_LEVEL}" 6 50 fi - rm -f "$data" fi } @@ -732,29 +723,25 @@ function gpg_key_trust { function menu_encryption_keys { while true do - data=$(mktemp 2>/dev/null) - dialog --backtitle $"Freedombone User Control Panel" \ - --title $"My Encryption Keys" \ - --radiolist $"Choose an operation:" 19 70 11 \ - 1 $"Show your PGP/GPG key" off \ - 2 $"Show your full PGP/GPG key, including private key" off \ - 3 $"Publish your PGP/GPG key so that others can find it" off \ - 4 $"Add someone's PGP/GPG key" off \ - 5 $"Remove someone's PGP/GPG key" off \ - 6 $"Sign a PGP/GPG key or website domain" off \ - 7 $"Refresh your PGP/GPG keys" off \ - 8 $"Add an ssh key for logging in" off \ - 9 $"Remove an ssh key for logging in" off \ - 10 $"Set the trust level for a PGP/GPG key" off \ - 11 $"Back to main menu" on 2> "$data" - sel=$? - case $sel in - 1) rm -f "$data" - break;; - 255) rm -f "$data" - break;; - esac - case $(cat "$data") in + W=(1 $"Show your PGP/GPG key" + 2 $"Show your full PGP/GPG key, including private key" + 3 $"Publish your PGP/GPG key so that others can find it" + 4 $"Add someone's PGP/GPG key" + 5 $"Remove someone's PGP/GPG key" + 6 $"Sign a PGP/GPG key or website domain" + 7 $"Refresh your PGP/GPG keys" + 8 $"Add an ssh key for logging in" + 9 $"Remove an ssh key for logging in" + 10 $"Set the trust level for a PGP/GPG key") + + # shellcheck disable=SC2068 + selection=$(dialog --backtitle $"Freedombone User Control Panel" --title $"My Encryption Keys" --menu $"Choose an operation, or ESC for main menu:" 19 70 11 "${W[@]}" 3>&2 2>&1 1>&3) + + if [ ! "$selection" ]; then + break + fi + + case $selection in 1) show_gpg_key;; 2) show_full_gpg_key;; 3) publish_gpg_key;; @@ -765,45 +752,35 @@ function menu_encryption_keys { 8) add_ssh_key;; 9) remove_ssh_key;; 10) gpg_key_trust;; - 11) rm -f "$data" - break;; esac - rm -f "$data" done } function menu_email { while true do - data=$(mktemp 2>/dev/null) - dialog --backtitle $"Freedombone User Control Panel" \ - --title $"Change Email Filtering Rules" \ - --radiolist $"Choose an operation:" 14 70 7 \ - 1 $"Add yourself to a mailing list" off \ - 2 $"Remove yourself from a mailing list" off \ - 3 $"Add an email rule for an address" off \ - 4 $"Add an email rule for a subject" off \ - 5 $"Block or unblock an email address" off \ - 6 $"Block or unblock email with subject text" off \ - 7 $"Back to main menu" on 2> "$data" - sel=$? - case $sel in - 1) rm -f "$data" - break;; - 255) rm -f "$data" - break;; - esac - case $(cat "$data") in + W=(1 $"Add yourself to a mailing list" + 2 $"Remove yourself from a mailing list" + 3 $"Add an email rule for an address" + 4 $"Add an email rule for a subject" + 5 $"Block or unblock an email address" + 6 $"Block or unblock email with subject text") + + # shellcheck disable=SC2068 + selection=$(dialog --backtitle $"Freedombone User Control Panel" --title $"Change Email Filtering Rules" --menu $"Choose an operation, or ESC for main menu:" 14 70 7 "${W[@]}" 3>&2 2>&1 1>&3) + + if [ ! "$selection" ]; then + break + fi + + case $selection in 1) add_to_mailing_list;; 2) remove_user_from_mailing_list;; 3) email_rule_address;; 4) email_rule_subject;; 5) block_unblock_email;; 6) block_unblock_subject;; - 7) rm -f "$data" - break;; esac - rm -f "$data" done } @@ -899,28 +876,24 @@ function show_your_email_address { function menu_top_level { while true do - data=$(mktemp 2>/dev/null) - dialog --backtitle $"Freedombone User Control Panel" \ - --title $"User Control Panel" \ - --radiolist $"Choose an operation:" 20 60 13 \ - 1 $"Use Email" off \ - 2 $"Show your Email Address" off \ - 3 $"Change Email Filtering/Blocking Rules" off \ - 4 $"Run an App" off \ - 5 $"Browse the Web" off \ - 6 $"My Encryption Keys" off \ - 7 $"Set an outgoing email proxy" off \ - 8 $"Administrator controls" off \ - 9 $"Exit to the command line" off \ - 10 $"Log out" on 2> "$data" - sel=$? - case $sel in - 1) rm -f "$data" - exit 1;; - 255) rm -f "$data" - exit 1;; - esac - case $(cat "$data") in + W=(1 $"Use Email" + 2 $"Show your Email Address" + 3 $"Change Email Filtering/Blocking Rules" + 4 $"Run an App" + 5 $"Browse the Web" + 6 $"My Encryption Keys" + 7 $"Set an outgoing email proxy" + 8 $"Administrator controls" + 9 $"Exit to the command line") + + # shellcheck disable=SC2068 + selection=$(dialog --backtitle $"Freedombone User Control Panel" --title $"User Control Panel" --menu $"Choose an operation, or ESC to log out:" 20 60 13 "${W[@]}" 3>&2 2>&1 1>&3) + if [ ! "$selection" ]; then + kill -HUP "$(pgrep -s 0 -o)" + break + fi + + case $selection in 1) mutt;; 2) show_your_email_address;; 3) menu_email;; @@ -929,11 +902,8 @@ function menu_top_level { 6) menu_encryption_keys;; 7) smtp_proxy;; 8) menu_admin;; - 9) rm -f "$data" - break;; - 10) kill -HUP "$(pgrep -s 0 -o)";; + 9) break;; esac - rm -f "$data" done } diff --git a/src/freedombone-sec b/src/freedombone-sec index 144f82c5..15ac0373 100755 --- a/src/freedombone-sec +++ b/src/freedombone-sec @@ -924,86 +924,66 @@ function remove_tor_bridge_relay { } function menu_tor_bridges { - data=$(mktemp 2>/dev/null) - dialog --backtitle $"Freedombone Control Panel" \ - --title $"Tor Bridges" \ - --radiolist $"Choose an operation:" 14 50 6 \ - 1 $"Show bridges" off \ - 2 $"Add a bridge" off \ - 3 $"Remove a bridge" off \ - 4 $"Make this system into a bridge" off \ - 5 $"Stop being a bridge" off \ - 6 $"Go Back/Exit" on 2> "$data" - sel=$? - case $sel in - 1) rm -f "$data" - exit 1;; - 255) rm -f "$data" - exit 1;; - esac + W=(1 $"Show bridges" + 2 $"Add a bridge" + 3 $"Remove a bridge" + 4 $"Make this system into a bridge" + 5 $"Stop being a bridge") - case $(cat "$data") in + # shellcheck disable=SC2068 + selection=$(dialog --backtitle $"Freedombone Administrator Control Panel" --title $"Security Settings" --menu $"Choose an operation, or ESC to go back:" 14 50 6 "${W[@]}" 3>&2 2>&1 1>&3) + + if [ ! "$selection" ]; then + exit 0 + fi + + case $selection in 1) show_tor_bridges - rm -f "$data" exit 0 ;; 2) add_tor_bridge - rm -f "$data" exit 0 ;; 3) remove_tor_bridge - rm -f "$data" exit 0 ;; 4) add_tor_bridge_relay - rm -f "$data" exit 0 ;; 5) remove_tor_bridge_relay - rm -f "$data" - exit 0 - ;; - 6) - rm -f "$data" exit 0 ;; esac - rm -f "$data" } function menu_security_settings { - data=$(mktemp 2>/dev/null) - dialog --backtitle $"Freedombone Control Panel" \ - --title $"Security Settings" \ - --radiolist $"Choose an operation:" 23 76 23 \ - 1 $"Run STIG tests" off \ - 2 $"Fix STIG test failures" off \ - 3 $"Show ssh host public key" off \ - 4 $"Tor bridges" off \ - 5 $"Password storage" off \ - 6 $"Export passwords" off \ - 7 $"Regenerate ssh host keys" off \ - 8 $"Regenerate Diffie-Hellman keys" off \ - 9 $"Update cipersuite" off \ - 10 $"Create a new Let's Encrypt certificate" off \ - 11 $"Renew Let's Encrypt certificate" off \ - 12 $"Delete a Let's Encrypt certificate" off \ - 13 $"Enable GPG based authentication (monkeysphere)" off \ - 14 $"Register a website with monkeysphere" off \ - 15 $"Allow ssh login with passwords" off \ - 16 $"Go Back/Exit" on 2> "$data" - sel=$? - case $sel in - 1) rm -f "$data" - exit 1;; - 255) rm -f "$data" - exit 1;; - esac + W=(1 $"Run STIG tests" + 2 $"Fix STIG test failures" + 3 $"Show ssh host public key" + 4 $"Tor bridges" + 5 $"Password storage" + 6 $"Export passwords" + 7 $"Regenerate ssh host keys" + 8 $"Regenerate Diffie-Hellman keys" + 9 $"Update cipersuite" + 10 $"Create a new Let's Encrypt certificate" + 11 $"Renew Let's Encrypt certificate" + 12 $"Delete a Let's Encrypt certificate" + 13 $"Enable GPG based authentication (monkeysphere)" + 14 $"Register a website with monkeysphere" + 15 $"Allow ssh login with passwords") + + # shellcheck disable=SC2068 + selection=$(dialog --backtitle $"Freedombone Administrator Control Panel" --title $"Security Settings" --menu $"Choose an operation, or ESC to exit:" 23 76 23 "${W[@]}" 3>&2 2>&1 1>&3) + + if [ ! "$selection" ]; then + exit 0 + fi clear @@ -1019,13 +999,12 @@ function menu_security_settings { import_settings export_settings - case $(cat "$data") in + case $selection in 1) clear echo $'Running STIG tests...' echo '' ${PROJECT_NAME}-tests --stig showall - rm -f "$data" exit 0 ;; 2) @@ -1034,28 +1013,23 @@ function menu_security_settings { echo '' ${PROJECT_NAME}-tests --stig fix echo $'Fixes applied. You will need to run the STIG tests again to be sure that they were all fixed.' - rm -f "$data" exit 0 ;; 3) dialog --title $"SSH host public keys" \ - --msgbox "\n$(get_ssh_server_key)" 12 60 - rm -f "$data" + --msgbox "\\n$(get_ssh_server_key)" 12 60 exit 0 ;; 4) menu_tor_bridges - rm -f "$data" exit 0 ;; 5) store_passwords - rm -f "$data" exit 0 ;; 6) export_passwords - rm -f "$data" exit 0 ;; 7) @@ -1086,15 +1060,9 @@ function menu_security_settings { 15) allow_ssh_passwords change_ssh_settings - rm -f "$data" - exit 0 - ;; - 16) - rm -f "$data" exit 0 ;; esac - rm -f "$data" change_website_settings change_imap_settings