diff --git a/auth-dialog/main.c b/auth-dialog/main.c index fe42875c154c..803f70801182 100644 --- a/auth-dialog/main.c +++ b/auth-dialog/main.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -217,6 +218,11 @@ static void print_secret (const char *secret_name, gchar *secret) printf("%s\n%s\n", secret_name, secret); g_free(secret); } +} + +static void print_last_secret (const char *secret_name, gchar *secret) +{ + print_secret(secret_name, secret); printf("\n\n"); fflush(stdout); } @@ -316,6 +322,17 @@ int main (int argc, char *argv[]) agent = getenv("SSH_AUTH_SOCK"); if (agent) { + int uid = getuid(); + struct passwd *pw = getpwuid(uid); + + if (!pw) + { + fprintf(stderr, "Unable to determine username for " + "authentication via ssh-agent\n"); + status = 1; + goto out; + } + if (external_ui_mode) { GKeyFile *keyfile; @@ -326,6 +343,7 @@ int main (int argc, char *argv[]) g_key_file_set_string (keyfile, UI_KEYFILE_GROUP, "Description", "SSH agent"); g_key_file_set_string (keyfile, UI_KEYFILE_GROUP, "Title", _("Authenticate VPN")); + keyfile_add_entry_info (keyfile, "agent-user", pw->pw_name, "SSH agent user", TRUE, FALSE); keyfile_add_entry_info (keyfile, "agent", agent, "SSH agent socket", TRUE, FALSE); keyfile_print_stdout (keyfile); @@ -333,7 +351,8 @@ int main (int argc, char *argv[]) } else { - print_secret("agent", g_strdup (agent)); + print_secret("agent-user", g_strdup (pw->pw_name)); + print_last_secret("agent", g_strdup (agent)); wait_for_quit (); } } @@ -366,7 +385,7 @@ int main (int argc, char *argv[]) } else if (!external_ui_mode) { - print_secret("password", pass); + print_last_secret("password", pass); wait_for_quit (); } } diff --git a/nm-strongswan-service.name.in b/nm-strongswan-service.name.in index 373262a41a46..6f6ae00f9d7c 100644 --- a/nm-strongswan-service.name.in +++ b/nm-strongswan-service.name.in @@ -2,6 +2,7 @@ name=strongswan service=org.freedesktop.NetworkManager.strongswan program=@CHARON@ +supports-safe-private-file-access=true [libnm] plugin=@NM_PLUGINDIR@/libnm-vpn-plugin-strongswan.so