Bladeren bron

Enable gpg-agent for users

Bob Mottram 7 jaren geleden
bovenliggende
commit
3bb1002538
3 gewijzigde bestanden met toevoegingen van 33 en 1 verwijderingen
  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 Bestand weergeven

@@ -156,6 +156,7 @@ if [ ! -f $MY_GPG_PUBLIC_KEY ]; then
156 156
     userdel -r $ADD_USERNAME
157 157
     exit 7
158 158
 fi
159
+
159 160
 gpg_agent_setup $ADD_USERNAME
160 161
 
161 162
 # add a monkeysphere subkey
@@ -246,7 +247,11 @@ if [ -d /home/$ADD_USERNAME/.gnupg/crls.d ]; then
246 247
 fi
247 248
 
248 249
 ${PROJECT_NAME}-pass -u $ADD_USERNAME -a login -p "$NEW_USER_PASSWORD"
250
+
251
+gpg_agent_enable $ADD_USERNAME
252
+
249 253
 clear
254
+
250 255
 echo $"New user $ADD_USERNAME was created"
251 256
 echo $"Their login password is $NEW_USER_PASSWORD"
252 257
 echo ''

+ 1
- 1
src/freedombone-controlpanel-user Bestand weergeven

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

+ 27
- 0
src/freedombone-utils-gpg Bestand weergeven

@@ -268,6 +268,33 @@ function gpg_agent_setup {
268 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 298
 function gpg_pubkey_from_email {
272 299
     key_owner_username=$1
273 300
     key_email_address=$2