diff options
author | Matt Turner <mattst88@gmail.com> | 2022-05-03 12:54:37 +0000 |
---|---|---|
committer | Jan Rybar <jrybar@redhat.com> | 2022-05-03 12:54:37 +0000 |
commit | 7d4b52c4d71c46049d87a0775de695ea914f3f1b (patch) | |
tree | 34af5cb05106459e6691564e6d32d7cfba4cf222 | |
parent | 22ff3e52c314ea5450d9075dec44e81f923a8588 (diff) | |
download | polkit-7d4b52c4d71c46049d87a0775de695ea914f3f1b.tar.gz |
pkexec: Allow --version and --help even if not setuid root
-rw-r--r-- | src/programs/pkexec.c | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/src/programs/pkexec.c b/src/programs/pkexec.c index a67a1f7..e5f4c2e 100644 --- a/src/programs/pkexec.c +++ b/src/programs/pkexec.c @@ -514,27 +514,6 @@ main (int argc, char *argv[]) /* Disable remote file access from GIO. */ setenv ("GIO_USE_VFS", "local", 1); - /* check for correct invocation */ - if (geteuid () != 0) - { - g_printerr ("pkexec must be setuid root\n"); - goto out; - } - - original_user_name = g_strdup (g_get_user_name ()); - if (original_user_name == NULL) - { - g_printerr ("Error getting user name.\n"); - goto out; - } - - if ((original_cwd = g_get_current_dir ()) == NULL) - { - g_printerr ("Error getting cwd: %s\n", - g_strerror (errno)); - goto out; - } - /* First process options and find the command-line to invoke. Avoid using fancy library routines * that depend on environtment variables since we haven't cleared the environment just yet. */ @@ -595,6 +574,27 @@ main (int argc, char *argv[]) goto out; } + /* check for correct invocation */ + if (geteuid () != 0) + { + g_printerr ("pkexec must be setuid root\n"); + goto out; + } + + original_user_name = g_strdup (g_get_user_name ()); + if (original_user_name == NULL) + { + g_printerr ("Error getting user name.\n"); + goto out; + } + + if ((original_cwd = g_get_current_dir ()) == NULL) + { + g_printerr ("Error getting cwd: %s\n", + g_strerror (errno)); + goto out; + } + if (opt_user == NULL) opt_user = g_strdup ("root"); |