From 55a446e0b3f7229a79f4c62da30c745c431c6481 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sat, 1 Oct 2016 10:39:23 +0100 Subject: [PATCH] Username validation function --- src/freedombone-app-blog | 4 ++-- src/freedombone-app-emacs | 4 ++-- src/freedombone-app-irc | 2 +- src/freedombone-app-syncthing | 4 ++-- src/freedombone-app-tahoelafs | 2 +- src/freedombone-app-xmpp | 2 +- src/freedombone-archive-mail | 4 +++- src/freedombone-backup-local | 2 +- src/freedombone-backup-remote | 4 ++-- src/freedombone-base-email | 4 ++-- src/freedombone-controlpanel | 2 +- src/freedombone-restore-local | 22 +++++++++++----------- src/freedombone-restore-remote | 24 +++++++++++++----------- src/freedombone-sec | 6 ++++-- src/freedombone-syncthing | 12 +++++++----- src/freedombone-utils-backup | 2 +- src/freedombone-utils-validation | 9 +++++++++ 17 files changed, 63 insertions(+), 46 deletions(-) diff --git a/src/freedombone-app-blog b/src/freedombone-app-blog index be2606af..cfb3f935 100755 --- a/src/freedombone-app-blog +++ b/src/freedombone-app-blog @@ -244,7 +244,7 @@ function restore_local_blog { fi for d in /home/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $3}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ -d /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post ]; then mv /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/*.md /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post fi @@ -296,7 +296,7 @@ function restore_remote_blog { fi for d in /home/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $3}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ -d /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post ]; then mv /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/*.md /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post fi diff --git a/src/freedombone-app-emacs b/src/freedombone-app-emacs index f71c2780..36cef8ec 100755 --- a/src/freedombone-app-emacs +++ b/src/freedombone-app-emacs @@ -49,7 +49,7 @@ function upgrade_emacs { function backup_local_emacs { for d in /home/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $3}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ -d /home/$USERNAME/.emacs.d ]; then echo $"Backing up Emacs config for $USERNAME" if [ -f /home/$USERNAME/.emacs ]; then @@ -67,7 +67,7 @@ function restore_local_emacs { if [ -d $USB_MOUNT/backup/emacs ]; then for d in $USB_MOUNT/backup/emacs/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME fi diff --git a/src/freedombone-app-irc b/src/freedombone-app-irc index c746d9ea..378494cf 100755 --- a/src/freedombone-app-irc +++ b/src/freedombone-app-irc @@ -61,7 +61,7 @@ function irc_set_global_password { # replace the password for all users for d in /home/*/ ; do IRC_USERNAME=$(echo "$d" | awk -F '/' '{print $3}') - if [[ $IRC_USERNAME != "git" && $IRC_USERNAME != "mirrors" && $IRC_USERNAME != "sync" && $IRC_USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $IRC_USERNAME) == "1" ]]; then if [ -f /home/$IRC_USERNAME/.irssi/config ]; then sed -i "s|$EXISTING_IRC_PASSWORD|$NEW_IRC_PASSWORD|g" /home/$IRC_USERNAME/.irssi/config chown -R $IRC_USERNAME:$IRC_USERNAME /home/$IRC_USERNAME/.irssi diff --git a/src/freedombone-app-syncthing b/src/freedombone-app-syncthing index 19d7c446..f2e4193d 100755 --- a/src/freedombone-app-syncthing +++ b/src/freedombone-app-syncthing @@ -278,7 +278,7 @@ function restore_local_syncthing { if [ -d $USB_MOUNT/backup/syncthing ]; then for d in $USB_MOUNT/backup/syncthing/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME fi @@ -366,7 +366,7 @@ function restore_remote_syncthing { if [ -d $SERVER_DIRECTORY/backup/syncthing ]; then for d in $SERVER_DIRECTORY/backup/syncthing/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME fi diff --git a/src/freedombone-app-tahoelafs b/src/freedombone-app-tahoelafs index b39d9b83..53e1e0ed 100755 --- a/src/freedombone-app-tahoelafs +++ b/src/freedombone-app-tahoelafs @@ -50,7 +50,7 @@ function change_password_tahoelafs { function reconfigure_tahoelafs { for d in /home/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $3}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ -d /home/$USERNAME/.tahoe ]; then su -c "$TAHOE_COMMAND stop" - $USERNAME rm -rf /home/$USERNAME/.tahoe diff --git a/src/freedombone-app-xmpp b/src/freedombone-app-xmpp index 6e525132..8e3d3c58 100755 --- a/src/freedombone-app-xmpp +++ b/src/freedombone-app-xmpp @@ -246,7 +246,7 @@ function remove_xmpp { function xmpp_email_headers { for d in /home/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $3}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ -f /home/$USERNAME/.muttrc ]; then if ! grep -q "Jabber-ID" /home/$USERNAME/.muttrc; then echo "my_hdr Jabber-ID: ${USERNAME}@${HOSTNAME}" >> /home/$USERNAME/.muttrc diff --git a/src/freedombone-archive-mail b/src/freedombone-archive-mail index 5c8b5c78..de21c549 100755 --- a/src/freedombone-archive-mail +++ b/src/freedombone-archive-mail @@ -33,9 +33,11 @@ PROJECT_NAME='freedombone' export TEXTDOMAIN=${PROJECT_NAME}-archive-mail export TEXTDOMAINDIR="/usr/share/locale" +source /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-validation + for d in /home/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $3}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then # for every user who has a mail directory if [ -d /home/$USERNAME/Maildir ]; then MUTTRC=/home/$USERNAME/.muttrc diff --git a/src/freedombone-backup-local b/src/freedombone-backup-local index a14cfe3f..07d911bc 100755 --- a/src/freedombone-backup-local +++ b/src/freedombone-backup-local @@ -98,7 +98,7 @@ function backup_users { # Backup user files for d in /home/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $3}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then # Backup any gpg keys if [ -d /home/$USERNAME/.gnupg ]; then diff --git a/src/freedombone-backup-remote b/src/freedombone-backup-remote index 03dc5f7a..d2aae889 100755 --- a/src/freedombone-backup-remote +++ b/src/freedombone-backup-remote @@ -122,7 +122,7 @@ function backup_configuration { function backup_users { for d in /home/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $3}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then # personal settings if [ -d /home/$USERNAME/personal ]; then @@ -451,7 +451,7 @@ do # Social key management for d in /home/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $3}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then disperse_key_shares $USERNAME $REMOTE_DOMAIN $REMOTE_SSH_PORT "$REMOTE_PASSWORD" $REMOTE_SERVER fi done diff --git a/src/freedombone-base-email b/src/freedombone-base-email index f06a7b87..1fe7ea50 100755 --- a/src/freedombone-base-email +++ b/src/freedombone-base-email @@ -1050,7 +1050,7 @@ function spam_filtering { echo '#!/bin/bash' > /usr/bin/filterspam echo 'for d in /home/*/ ; do' >> /usr/bin/filterspam echo ' USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $3}'"'"')' >> /usr/bin/filterspam - echo ' if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then' >> /usr/bin/filterspam + echo ' if [[ $USERNAME != "git" && $USERNAME != "go" && $USERNAME != "gogs" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then' >> /usr/bin/filterspam echo ' MAILDIR=/home/$USERNAME/Maildir/.learn-spam' >> /usr/bin/filterspam echo ' if [ ! -d "$MAILDIR" ]; then' >> /usr/bin/filterspam echo ' exit' >> /usr/bin/filterspam @@ -1072,7 +1072,7 @@ function spam_filtering { echo '#!/bin/bash' > /usr/bin/filterham echo 'for d in /home/*/ ; do' >> /usr/bin/filterham echo ' USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $3}'"'"')' >> /usr/bin/filterham - echo ' if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then' >> /usr/bin/filterham + echo ' if [[ $USERNAME != "git" && $USERNAME != "go" && $USERNAME != "gogs" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then' >> /usr/bin/filterham echo ' MAILDIR=/home/$USERNAME/Maildir/.learn-ham' >> /usr/bin/filterham echo ' if [ ! -d "$MAILDIR" ]; then' >> /usr/bin/filterham echo ' exit' >> /usr/bin/filterham diff --git a/src/freedombone-controlpanel b/src/freedombone-controlpanel index 2d373a54..6d82f414 100755 --- a/src/freedombone-controlpanel +++ b/src/freedombone-controlpanel @@ -459,7 +459,7 @@ function show_users { echo '--------------------------------------------------------------------------' for d in /home/*/ ; do USRNAME=$(echo "$d" | awk -F '/' '{print $3}') - if [[ $USRNAME != "git" && $USRNAME != "mirrors" && $USRNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USRNAME) == "1" ]]; then echo -n -e "$(pad_string ${USRNAME})" # get the SIP extension SIPEXT= diff --git a/src/freedombone-restore-local b/src/freedombone-restore-local index b4417573..c2ae9c2e 100755 --- a/src/freedombone-restore-local +++ b/src/freedombone-restore-local @@ -238,7 +238,7 @@ function restore_mutt_settings { if [ -d $USB_MOUNT/backup/mutt ]; then for d in $USB_MOUNT/backup/mutt/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME fi @@ -272,7 +272,7 @@ function restore_gpg { if [ -d $USB_MOUNT/backup/gnupg ]; then for d in $USB_MOUNT/backup/gnupg/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME fi @@ -309,7 +309,7 @@ function restore_procmail { if [ -d $USB_MOUNT/backup/procmail ]; then for d in $USB_MOUNT/backup/procmail/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME fi @@ -338,7 +338,7 @@ function restore_spamassassin { if [ -d $USB_MOUNT/backup/spamassassin ]; then for d in $USB_MOUNT/backup/spamassassin/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ -d $USB_MOUNT/backup/spamassassin/$USERNAME ]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME @@ -399,7 +399,7 @@ function restore_user_ssh_keys { if [ -d $USB_MOUNT/backup/ssh ]; then for d in $USB_MOUNT/backup/ssh/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME fi @@ -428,7 +428,7 @@ function restore_user_config { if [ -d $USB_MOUNT/backup/config ]; then for d in $USB_MOUNT/backup/config/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME fi @@ -469,7 +469,7 @@ function restore_user_monkeysphere { if [ -d $USB_MOUNT/backup/monkeysphere ]; then for d in $USB_MOUNT/backup/monkeysphere/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME fi @@ -508,7 +508,7 @@ function restore_user_fin { if [ -d $USB_MOUNT/backup/fin ]; then for d in $USB_MOUNT/backup/fin/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME fi @@ -537,7 +537,7 @@ function restore_user_local { if [ -d $USB_MOUNT/backup/local ]; then for d in $USB_MOUNT/backup/local/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME fi @@ -610,7 +610,7 @@ function restore_personal_settings { if [ -d $USB_MOUNT/backup/personal ]; then for d in $USB_MOUNT/backup/personal/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ -d $USB_MOUNT/backup/personal/$USERNAME ]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME @@ -663,7 +663,7 @@ function restore_email { if [ -d $USB_MOUNT/backup/mail ]; then for d in $USB_MOUNT/backup/mail/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME fi diff --git a/src/freedombone-restore-remote b/src/freedombone-restore-remote index b5c234b5..ce540e62 100755 --- a/src/freedombone-restore-remote +++ b/src/freedombone-restore-remote @@ -36,6 +36,8 @@ BACKUP_EXTRA_DIRECTORIES=/root/backup-extra-dirs.csv export TEXTDOMAIN=${PROJECT_NAME}-restore-remote export TEXTDOMAINDIR="/usr/share/locale" +source /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-validation + SERVER_NAME=$1 # whether to restore everything or just a specific application @@ -225,7 +227,7 @@ function restore_mutt_settings { fi for d in $SERVER_DIRECTORY/backup/mutt/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ -d $SERVER_DIRECTORY/backup/mutt/$USERNAME ]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME @@ -257,7 +259,7 @@ function restore_gpg { fi for d in $SERVER_DIRECTORY/backup/gnupg/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ -d $SERVER_DIRECTORY/backup/gnupg/$USERNAME ]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME @@ -290,7 +292,7 @@ function restore_procmail { fi for d in $SERVER_DIRECTORY/backup/procmail/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ -d $SERVER_DIRECTORY/backup/procmail/$USERNAME ]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME @@ -317,7 +319,7 @@ function restore_spamassassin { fi for d in $SERVER_DIRECTORY/backup/spamassassin/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ -d $SERVER_DIRECTORY/backup/spamassassin/$USERNAME ]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME @@ -363,7 +365,7 @@ function restore_ssh_keys { fi for d in $SERVER_DIRECTORY/backup/ssh/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ -d $SERVER_DIRECTORY/backup/ssh/$USERNAME ]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME @@ -390,7 +392,7 @@ function restore_user_config { fi for d in $SERVER_DIRECTORY/backup/config/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ -d $SERVER_DIRECTORY/backup/config/$USERNAME ]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME @@ -429,7 +431,7 @@ function restore_user_monkeysphere { fi for d in $SERVER_DIRECTORY/backup/monkeysphere/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ -d $SERVER_DIRECTORY/backup/monkeysphere/$USERNAME ]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME @@ -466,7 +468,7 @@ function restore_user_fin { fi for d in $SERVER_DIRECTORY/backup/fin/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ -d $SERVER_DIRECTORY/backup/fin/$USERNAME ]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME @@ -493,7 +495,7 @@ function restore_user_local { fi for d in $SERVER_DIRECTORY/backup/local/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ -d $SERVER_DIRECTORY/backup/local/$USERNAME ]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME @@ -561,7 +563,7 @@ function restore_personal_settings { fi for d in $SERVER_DIRECTORY/backup/personal/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ -d $SERVER_DIRECTORY/backup/personal/$USERNAME ]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME @@ -608,7 +610,7 @@ function restore_email { fi for d in $SERVER_DIRECTORY/backup/mail/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $6}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ -d $SERVER_DIRECTORY/backup/mail/$USERNAME ]; then if [ ! -d /home/$USERNAME ]; then ${PROJECT_NAME}-adduser $USERNAME diff --git a/src/freedombone-sec b/src/freedombone-sec index a46bb89f..5b126d5d 100755 --- a/src/freedombone-sec +++ b/src/freedombone-sec @@ -36,6 +36,8 @@ export TEXTDOMAINDIR="/usr/share/locale" CONFIGURATION_FILE=/root/${PROJECT_NAME}.cfg COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt +source /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-validation + SSL_PROTOCOLS= SSL_CIPHERS= SSH_CIPHERS= @@ -336,7 +338,7 @@ function send_monkeysphere_server_keys_to_users { monkeysphere_server_keys=$(monkeysphere-host show-key | grep $"OpenPGP fingerprint" | awk -F ' ' '{print $3}') for d in /home/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $3}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ ! -d /home/$USERNAME/.monkeysphere ]; then mkdir /home/$USERNAME/.monkeysphere fi @@ -954,7 +956,7 @@ function export_settings { function refresh_gpg_keys { for d in /home/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $3}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then su -c 'gpg --refresh-keys' - $USERNAME fi done diff --git a/src/freedombone-syncthing b/src/freedombone-syncthing index bc91e3b4..777f1404 100755 --- a/src/freedombone-syncthing +++ b/src/freedombone-syncthing @@ -36,6 +36,8 @@ PROJECT_NAME='freedombone' export TEXTDOMAIN=$PROJECT_NAME-syncthing export TEXTDOMAINDIR="/usr/share/locale" +source /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-validation + # File which keeps track of what has already been installed COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt @@ -97,7 +99,7 @@ function create_syncthing_config { for d in /home/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $3}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then echo " " >> $SYNCTHING_CONFIG_FILE # include any specified device IDs for this user if [ -f /home/$USERNAME/$SYNCTHING_USER_IDS_FILE ]; then @@ -137,7 +139,7 @@ function create_syncthing_config { echo "" > $TEMP_IDS_FILE for d in /home/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $3}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ -f /home/$USERNAME/$SYNCTHING_USER_IDS_FILE ]; then while read -r line || [[ -n "$line" ]]; do line2="$(echo -e "${line}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')" @@ -177,7 +179,7 @@ function create_syncthing_config { echo "" > $TEMP_IDS_FILE for d in /home/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $3}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ -f /home/$USERNAME/$SYNCTHING_USER_IDS_FILE ]; then while read -r line || [[ -n "$line" ]]; do line2="$(echo -e "${line}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')" @@ -236,7 +238,7 @@ function create_syncthing_config { # This allows it to appear within the user control panel for d in /home/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $3}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then echo "$SYNCTHING_ID" > /home/$USERNAME/.syncthing-server-id chown $USERNAME:$USERNAME /home/$USERNAME/.syncthing-server-id fi @@ -257,7 +259,7 @@ function user_devices_changed { for d in /home/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $3}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then if [ -f /home/$USERNAME/$SYNCTHING_UPDATE_FILE ]; then CHANGED=1 fi diff --git a/src/freedombone-utils-backup b/src/freedombone-utils-backup index 9b1b4e67..a076c32d 100755 --- a/src/freedombone-utils-backup +++ b/src/freedombone-utils-backup @@ -275,7 +275,7 @@ function set_user_permissions { echo $"Setting permissions" for d in /home/*/ ; do USERNAME=$(echo "$d" | awk -F '/' '{print $3}') - if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" && $USERNAME != "tahoelafs" ]]; then + if [[ $(is_valid_user $USERNAME) == "1" ]]; then chown -R $USERNAME:$USERNAME /home/$USERNAME fi done diff --git a/src/freedombone-utils-validation b/src/freedombone-utils-validation index a3f30c6e..578ab08c 100755 --- a/src/freedombone-utils-validation +++ b/src/freedombone-utils-validation @@ -60,4 +60,13 @@ function validate_freedns_code { VALID_CODE='yes' } +function is_valid_user { + USRNAME="$1" + if [[ "$USRNAME" != "go" && "$USRNAME" != "gogs" && "$USRNAME" != "git" && "$USRNAME" != "mirrors" && "$USRNAME" != "sync" && "$USERNAME" != "tahoelafs" ]]; then + echo "1" + else + echo "0" + fi +} + # NOTE: deliberately no exit 0