Parcourir la source

Enable gpg-agent for users

Bob Mottram il y a 7 ans
Parent
révision
3bb1002538
3 fichiers modifiés avec 33 ajouts et 1 suppressions
  1. 5
    0
      src/freedombone-adduser
  2. 1
    1
      src/freedombone-controlpanel-user
  3. 27
    0
      src/freedombone-utils-gpg

+ 5
- 0
src/freedombone-adduser Voir le fichier

156
     userdel -r $ADD_USERNAME
156
     userdel -r $ADD_USERNAME
157
     exit 7
157
     exit 7
158
 fi
158
 fi
159
+
159
 gpg_agent_setup $ADD_USERNAME
160
 gpg_agent_setup $ADD_USERNAME
160
 
161
 
161
 # add a monkeysphere subkey
162
 # add a monkeysphere subkey
246
 fi
247
 fi
247
 
248
 
248
 ${PROJECT_NAME}-pass -u $ADD_USERNAME -a login -p "$NEW_USER_PASSWORD"
249
 ${PROJECT_NAME}-pass -u $ADD_USERNAME -a login -p "$NEW_USER_PASSWORD"
250
+
251
+gpg_agent_enable $ADD_USERNAME
252
+
249
 clear
253
 clear
254
+
250
 echo $"New user $ADD_USERNAME was created"
255
 echo $"New user $ADD_USERNAME was created"
251
 echo $"Their login password is $NEW_USER_PASSWORD"
256
 echo $"Their login password is $NEW_USER_PASSWORD"
252
 echo ''
257
 echo ''

+ 1
- 1
src/freedombone-controlpanel-user Voir le fichier

923
 }
923
 }
924
 
924
 
925
 sign_keys
925
 sign_keys
926
-gpg_agent_setup $USER
926
+gpg_agent_enable $USER
927
 menu_top_level
927
 menu_top_level
928
 clear
928
 clear
929
 . ~/.bashrc
929
 . ~/.bashrc

+ 27
- 0
src/freedombone-utils-gpg Voir le fichier

268
     fi
268
     fi
269
 }
269
 }
270
 
270
 
271
+function gpg_agent_enable {
272
+    gpg_username=$1
273
+
274
+    if [[ $gpg_username == 'root' ]]; then
275
+        return
276
+    else
277
+        if grep -q 'GPG_TTY' /home/$gpg_username/.bashrc; then
278
+            sed -i '/GPG_TTY/d' /home/$gpg_username/.bashrc
279
+            chown $gpg_username:$gpg_username /home/$gpg_username/.bashrc
280
+        fi
281
+        if grep -q 'use-agent' /home/$gpg_username/.gnupg/gpg.conf; then
282
+           sed -i '/use-agent/d' /home/$gpg_username/.gnupg/gpg.conf
283
+        fi
284
+        if grep -q 'pinentry-mode loopback' /home/$gpg_username/.gnupg/gpg.conf; then
285
+            sed -i '/pinentry-mode loopback/d' /home/$gpg_username/.gnupg/gpg.conf
286
+        fi
287
+        if [ -f /home/$gpg_username/.gnupg/gpg-agent.conf ]; then
288
+            rm /home/$gpg_username/.gnupg/gpg-agent.conf
289
+        fi
290
+        if [[ "$gpg_username" != "$USER" ]]; then
291
+            su -c "echo RELOADAGENT | gpg-connect-agent" - $gpg_username
292
+        else
293
+            echo RELOADAGENT | gpg-connect-agent
294
+        fi
295
+    fi
296
+}
297
+
271
 function gpg_pubkey_from_email {
298
 function gpg_pubkey_from_email {
272
     key_owner_username=$1
299
     key_owner_username=$1
273
     key_email_address=$2
300
     key_email_address=$2