Procházet zdrojové kódy

Remove keys in a safer way

Bob Mottram před 9 roky
rodič
revize
7ca018673b
1 změnil soubory, kde provedl 43 přidání a 33 odebrání
  1. 43
    33
      src/freedombone-rmuser

+ 43
- 33
src/freedombone-rmuser Zobrazit soubor

38
 COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
38
 COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
39
 
39
 
40
 if [ ! $MY_USERNAME ]; then
40
 if [ ! $MY_USERNAME ]; then
41
-    echo $'Please specify a username to remove'
42
-    exit 1
41
+	echo $'Please specify a username to remove'
42
+	exit 1
43
 fi
43
 fi
44
 
44
 
45
 if [[ $MY_USERNAME == 'git' || $MY_USERNAME == 'mirrors' ]]; then
45
 if [[ $MY_USERNAME == 'git' || $MY_USERNAME == 'mirrors' ]]; then
46
-    echo $'Cannot remove reserved users'
47
-    exit 2
46
+	echo $'Cannot remove reserved users'
47
+	exit 2
48
 fi
48
 fi
49
 
49
 
50
 if [ ! -d /home/$MY_USERNAME ]; then
50
 if [ ! -d /home/$MY_USERNAME ]; then
51
-    echo $"Home directory does not exist for $MY_USERNAME"
52
-    exit 3
51
+	echo $"Home directory does not exist for $MY_USERNAME"
52
+	exit 3
53
 fi
53
 fi
54
 
54
 
55
 if [ ! -f $COMPLETION_FILE ]; then
55
 if [ ! -f $COMPLETION_FILE ]; then
56
-    echo $"$COMPLETION_FILE not found"
57
-    exit 4
56
+	echo $"$COMPLETION_FILE not found"
57
+	exit 4
58
 fi
58
 fi
59
 
59
 
60
 if ! grep -q "Admin user" $COMPLETION_FILE; then
60
 if ! grep -q "Admin user" $COMPLETION_FILE; then
61
-    echo $"No admin user specified in $COMPLETION_FILE"
62
-    exit 5
61
+	echo $"No admin user specified in $COMPLETION_FILE"
62
+	exit 5
63
 fi
63
 fi
64
 
64
 
65
 ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
65
 ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
66
 if [ ! $ADMIN_USERNAME ]; then
66
 if [ ! $ADMIN_USERNAME ]; then
67
-    echo $"No admin username specified in $COMPLETION_FILE"
68
-    exit 6
67
+	echo $"No admin username specified in $COMPLETION_FILE"
68
+	exit 6
69
 fi
69
 fi
70
 
70
 
71
 if [[ $MY_USERNAME == $ADMIN_USERNAME ]]; then
71
 if [[ $MY_USERNAME == $ADMIN_USERNAME ]]; then
72
-    echo $"The administrator user cannot be removed"
73
-    exit 7
72
+	echo $"The administrator user cannot be removed"
73
+	exit 7
74
 fi
74
 fi
75
 
75
 
76
 echo $'>>> REMOVE USER <<<'
76
 echo $'>>> REMOVE USER <<<'
77
 read -p $"Do you really wish to remove the user '$MY_USERNAME' (y/n) ?" yn
77
 read -p $"Do you really wish to remove the user '$MY_USERNAME' (y/n) ?" yn
78
 if [[ $yn != 'y' && $yn != 'Y' && $yn != 'yes' && $yn != 'Yes' && $yn != 'YES' ]]; then
78
 if [[ $yn != 'y' && $yn != 'Y' && $yn != 'yes' && $yn != 'Yes' && $yn != 'YES' ]]; then
79
-    echo $"User $MY_USERNAME was not removed"
80
-    exit 8
79
+	echo $"User $MY_USERNAME was not removed"
80
+	exit 8
81
 fi
81
 fi
82
 
82
 
83
 if grep -q "install_xmpp" $COMPLETION_FILE; then
83
 if grep -q "install_xmpp" $COMPLETION_FILE; then
84
-    ${PROJECT_NAME}-rmxmpp -e "$MY_USERNAME@$HOSTNAME"
84
+	${PROJECT_NAME}-rmxmpp -e "$MY_USERNAME@$HOSTNAME"
85
 fi
85
 fi
86
 
86
 
87
 if grep -q "Blog domain" $COMPLETION_FILE; then
87
 if grep -q "Blog domain" $COMPLETION_FILE; then
88
-    FULLBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Blog domain" | awk -F ':' '{print $2}')
89
-    if [ -f /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini ]; then
90
-        rm /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
91
-    fi
88
+	FULLBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Blog domain" | awk -F ':' '{print $2}')
89
+	if [ -f /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini ]; then
90
+		rm /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
91
+	fi
92
 fi
92
 fi
93
 
93
 
94
 if grep -q "install_sip" $COMPLETION_FILE; then
94
 if grep -q "install_sip" $COMPLETION_FILE; then
95
-    ${PROJECT_NAME}-rmsipuser $MY_USERNAME
95
+	${PROJECT_NAME}-rmsipuser $MY_USERNAME
96
 fi
96
 fi
97
 
97
 
98
 if grep -q "GNU Social domain" $COMPLETION_FILE; then
98
 if grep -q "GNU Social domain" $COMPLETION_FILE; then
99
-    MICROBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "GNU Social domain" | awk -F ':' '{print $2}')
100
-    if [ -d /var/www/$MICROBLOG_DOMAIN_NAME ]; then
101
-        cd /var/www/$MICROBLOG_DOMAIN_NAME/htdocs
102
-        php scripts/deleteprofile.php -n $MY_USERNAME -y
103
-        echo $'Removed GNU Social user'
104
-    fi
99
+	MICROBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "GNU Social domain" | awk -F ':' '{print $2}')
100
+	if [ -d /var/www/$MICROBLOG_DOMAIN_NAME ]; then
101
+		cd /var/www/$MICROBLOG_DOMAIN_NAME/htdocs
102
+		php scripts/deleteprofile.php -n $MY_USERNAME -y
103
+		echo $'Removed GNU Social user'
104
+	fi
105
 fi
105
 fi
106
 
106
 
107
 if [ -f /etc/nginx/.htpasswd ]; then
107
 if [ -f /etc/nginx/.htpasswd ]; then
108
-    if grep "${MY_USERNAME}:" /etc/nginx/.htpasswd; then
109
-        htpasswd -D /etc/nginx/.htpasswd $MY_USERNAME
110
-    fi
108
+	if grep "${MY_USERNAME}:" /etc/nginx/.htpasswd; then
109
+		htpasswd -D /etc/nginx/.htpasswd $MY_USERNAME
110
+	fi
111
 fi
111
 fi
112
 
112
 
113
 # remove user from SIP TURN/STUN
113
 # remove user from SIP TURN/STUN
114
 if [ -d /etc/turnserver ]; then
114
 if [ -d /etc/turnserver ]; then
115
-    sed -i "/${MY_USERNAME}:/d" /etc/turnserver/turnusers.txt
115
+	sed -i "/${MY_USERNAME}:/d" /etc/turnserver/turnusers.txt
116
+fi
117
+
118
+# remove gpg keys
119
+if [ -d /home/$MY_USERNAME/.gnupg ]; then
120
+	shred -u /home/$MY_USERNAME/.gnupg/*
121
+fi
122
+
123
+# remove ssh keys
124
+if [ -d /home/$MY_USERNAME/.ssh ]; then
125
+	shred -u /home/$MY_USERNAME/.ssh/*
116
 fi
126
 fi
117
 
127
 
118
 userdel -r $MY_USERNAME
128
 userdel -r $MY_USERNAME
119
 
129
 
120
 if [ -d /home/$MY_USERNAME ]; then
130
 if [ -d /home/$MY_USERNAME ]; then
121
-    rm -rf /home/$MY_USERNAME
131
+	rm -rf /home/$MY_USERNAME
122
 fi
132
 fi
123
 
133
 
124
 echo $"User $MY_USERNAME was removed"
134
 echo $"User $MY_USERNAME was removed"