|
@@ -128,6 +128,64 @@ function change_password {
|
128
|
128
|
any_key
|
129
|
129
|
}
|
130
|
130
|
|
|
131
|
+function change_ssh_public_key {
|
|
132
|
+ select_user
|
|
133
|
+ if [ ! $SELECTED_USERNAME ]; then
|
|
134
|
+ return
|
|
135
|
+ fi
|
|
136
|
+
|
|
137
|
+ if grep -Fxq "Admin user: $SELECTED_USERNAME" $COMPLETION_FILE; then
|
|
138
|
+ dialog --title "Change ssh public key" \
|
|
139
|
+ --backtitle "Freedombone Control Panel" \
|
|
140
|
+ --defaultno \
|
|
141
|
+ --yesno "\nThis is the administrator user.\n\nAre you sure you want to change the ssh public key for the administrator?" 10 60
|
|
142
|
+ sel=$?
|
|
143
|
+ case $sel in
|
|
144
|
+ 1) return;;
|
|
145
|
+ 255) return;;
|
|
146
|
+ esac
|
|
147
|
+ fi
|
|
148
|
+
|
|
149
|
+ data=$(tempfile 2>/dev/null)
|
|
150
|
+ trap "rm -f $data" 0 1 2 5 15
|
|
151
|
+ dialog --title "Change ssh public key for $SELECTED_USERNAME" \
|
|
152
|
+ --backtitle "Freedombone Control Panel" \
|
|
153
|
+ --inputbox "Paste the ssh public key below" 8 60 2>$data
|
|
154
|
+ sel=$?
|
|
155
|
+ case $sel in
|
|
156
|
+ 0)
|
|
157
|
+ SSH_PUBLIC_KEY=$(<$data)
|
|
158
|
+ if [ "$SSH_PUBLIC_KEY" ]; then
|
|
159
|
+ if [ ${#SSH_PUBLIC_KEY} -gt 5 ]; then
|
|
160
|
+ if [ -f "$SSH_PUBLIC_KEY" ]; then
|
|
161
|
+ if [ ! -d /home/$SELECTED_USERNAME/.ssh ]; then
|
|
162
|
+ mkdir /home/$SELECTED_USERNAME/.ssh
|
|
163
|
+ fi
|
|
164
|
+ cp $SSH_PUBLIC_KEY \
|
|
165
|
+ /home/$SELECTED_USERNAME/.ssh/authorized_keys
|
|
166
|
+ chown -R $SELECTED_USERNAME:$SELECTED_USERNAME \
|
|
167
|
+ /home/$SELECTED_USERNAME/.ssh
|
|
168
|
+ dialog --title "Change ssh public key" \
|
|
169
|
+ --msgbox "ssh public key was installed" 6 40
|
|
170
|
+ else
|
|
171
|
+ if [[ "$SSH_PUBLIC_KEY" == "ssh-"* ]]; then
|
|
172
|
+ if [ ! -d /home/$SELECTED_USERNAME/.ssh ]; then
|
|
173
|
+ mkdir /home/$SELECTED_USERNAME/.ssh
|
|
174
|
+ fi
|
|
175
|
+ echo "$SSH_PUBLIC_KEY" > \
|
|
176
|
+ /home/$SELECTED_USERNAME/.ssh/authorized_keys
|
|
177
|
+ chown -R $SELECTED_USERNAME:$SELECTED_USERNAME \
|
|
178
|
+ /home/$SELECTED_USERNAME/.ssh
|
|
179
|
+ dialog --title "Change ssh public key" \
|
|
180
|
+ --msgbox "ssh public key was installed" 6 40
|
|
181
|
+ fi
|
|
182
|
+ fi
|
|
183
|
+ fi
|
|
184
|
+ fi
|
|
185
|
+ ;;
|
|
186
|
+ esac
|
|
187
|
+}
|
|
188
|
+
|
131
|
189
|
function add_to_mailing_list {
|
132
|
190
|
select_user
|
133
|
191
|
if [ ! $SELECTED_USERNAME ]; then
|