From 3bb1002538b1fe174041a73e6c4864c4a4788027 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Mon, 5 Feb 2018 15:42:43 +0000 Subject: [PATCH] Enable gpg-agent for users --- src/freedombone-adduser | 5 +++++ src/freedombone-controlpanel-user | 2 +- src/freedombone-utils-gpg | 27 +++++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/freedombone-adduser b/src/freedombone-adduser index 9284420c..b7a7ca95 100755 --- a/src/freedombone-adduser +++ b/src/freedombone-adduser @@ -156,6 +156,7 @@ if [ ! -f $MY_GPG_PUBLIC_KEY ]; then userdel -r $ADD_USERNAME exit 7 fi + gpg_agent_setup $ADD_USERNAME # add a monkeysphere subkey @@ -246,7 +247,11 @@ if [ -d /home/$ADD_USERNAME/.gnupg/crls.d ]; then fi ${PROJECT_NAME}-pass -u $ADD_USERNAME -a login -p "$NEW_USER_PASSWORD" + +gpg_agent_enable $ADD_USERNAME + clear + echo $"New user $ADD_USERNAME was created" echo $"Their login password is $NEW_USER_PASSWORD" echo '' diff --git a/src/freedombone-controlpanel-user b/src/freedombone-controlpanel-user index 6585a7de..6940a81d 100755 --- a/src/freedombone-controlpanel-user +++ b/src/freedombone-controlpanel-user @@ -923,7 +923,7 @@ function menu_top_level { } sign_keys -gpg_agent_setup $USER +gpg_agent_enable $USER menu_top_level clear . ~/.bashrc diff --git a/src/freedombone-utils-gpg b/src/freedombone-utils-gpg index 4d413f26..42e985e4 100755 --- a/src/freedombone-utils-gpg +++ b/src/freedombone-utils-gpg @@ -268,6 +268,33 @@ function gpg_agent_setup { fi } +function gpg_agent_enable { + gpg_username=$1 + + if [[ $gpg_username == 'root' ]]; then + return + else + if grep -q 'GPG_TTY' /home/$gpg_username/.bashrc; then + sed -i '/GPG_TTY/d' /home/$gpg_username/.bashrc + chown $gpg_username:$gpg_username /home/$gpg_username/.bashrc + fi + if grep -q 'use-agent' /home/$gpg_username/.gnupg/gpg.conf; then + sed -i '/use-agent/d' /home/$gpg_username/.gnupg/gpg.conf + fi + if grep -q 'pinentry-mode loopback' /home/$gpg_username/.gnupg/gpg.conf; then + sed -i '/pinentry-mode loopback/d' /home/$gpg_username/.gnupg/gpg.conf + fi + if [ -f /home/$gpg_username/.gnupg/gpg-agent.conf ]; then + rm /home/$gpg_username/.gnupg/gpg-agent.conf + fi + if [[ "$gpg_username" != "$USER" ]]; then + su -c "echo RELOADAGENT | gpg-connect-agent" - $gpg_username + else + echo RELOADAGENT | gpg-connect-agent + fi + fi +} + function gpg_pubkey_from_email { key_owner_username=$1 key_email_address=$2