Add OSTREE_ADMIN_BUILTIN_FLAG_SUPERUSER
Indicates the command requires superuser privilege. Fails early with a more helpful message than would otherwise be returned by libostree. Currently all admin commands except 'status' require superuser.
This commit is contained in:
parent
e48ea0ba05
commit
aeab9df4fe
|
|
@ -44,7 +44,7 @@ ot_admin_builtin_cleanup (int argc, char **argv, GCancellable *cancellable, GErr
|
||||||
context = g_option_context_new ("Delete untagged deployments and repository objects");
|
context = g_option_context_new ("Delete untagged deployments and repository objects");
|
||||||
|
|
||||||
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
||||||
OSTREE_ADMIN_BUILTIN_FLAG_NONE,
|
OSTREE_ADMIN_BUILTIN_FLAG_SUPERUSER,
|
||||||
&sysroot, cancellable, error))
|
&sysroot, cancellable, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,7 @@ ot_admin_builtin_deploy (int argc, char **argv, GCancellable *cancellable, GErro
|
||||||
context = g_option_context_new ("REFSPEC - Checkout revision REFSPEC as the new default deployment");
|
context = g_option_context_new ("REFSPEC - Checkout revision REFSPEC as the new default deployment");
|
||||||
|
|
||||||
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
||||||
OSTREE_ADMIN_BUILTIN_FLAG_NONE,
|
OSTREE_ADMIN_BUILTIN_FLAG_SUPERUSER,
|
||||||
&sysroot, cancellable, error))
|
&sysroot, cancellable, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ ot_admin_builtin_diff (int argc, char **argv, GCancellable *cancellable, GError
|
||||||
g_option_context_add_main_entries (context, options, NULL);
|
g_option_context_add_main_entries (context, options, NULL);
|
||||||
|
|
||||||
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
||||||
OSTREE_ADMIN_BUILTIN_FLAG_NONE,
|
OSTREE_ADMIN_BUILTIN_FLAG_SUPERUSER,
|
||||||
&sysroot, cancellable, error))
|
&sysroot, cancellable, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ ot_admin_builtin_init_fs (int argc, char **argv, GCancellable *cancellable, GErr
|
||||||
context = g_option_context_new ("PATH - Initialize a root filesystem");
|
context = g_option_context_new ("PATH - Initialize a root filesystem");
|
||||||
|
|
||||||
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
||||||
OSTREE_ADMIN_BUILTIN_FLAG_NONE,
|
OSTREE_ADMIN_BUILTIN_FLAG_SUPERUSER,
|
||||||
&sysroot, cancellable, error))
|
&sysroot, cancellable, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -117,7 +117,7 @@ ot_admin_builtin_instutil (int argc, char **argv, GCancellable *cancellable, GEr
|
||||||
|
|
||||||
/* This will not return for some options (e.g. --version). */
|
/* This will not return for some options (e.g. --version). */
|
||||||
if (ostree_admin_option_context_parse (context, NULL, &argc, &argv,
|
if (ostree_admin_option_context_parse (context, NULL, &argc, &argv,
|
||||||
OSTREE_ADMIN_BUILTIN_FLAG_NONE,
|
OSTREE_ADMIN_BUILTIN_FLAG_SUPERUSER,
|
||||||
NULL, cancellable, error))
|
NULL, cancellable, error))
|
||||||
{
|
{
|
||||||
if (subcommand_name == NULL)
|
if (subcommand_name == NULL)
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ ot_admin_builtin_os_init (int argc, char **argv, GCancellable *cancellable, GErr
|
||||||
context = g_option_context_new ("OSNAME - Initialize empty state for given operating system");
|
context = g_option_context_new ("OSNAME - Initialize empty state for given operating system");
|
||||||
|
|
||||||
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
||||||
OSTREE_ADMIN_BUILTIN_FLAG_NONE,
|
OSTREE_ADMIN_BUILTIN_FLAG_SUPERUSER,
|
||||||
&sysroot, cancellable, error))
|
&sysroot, cancellable, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ ot_admin_builtin_set_origin (int argc, char **argv, GCancellable *cancellable, G
|
||||||
context = g_option_context_new ("REMOTENAME URL [BRANCH]");
|
context = g_option_context_new ("REMOTENAME URL [BRANCH]");
|
||||||
|
|
||||||
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
||||||
OSTREE_ADMIN_BUILTIN_FLAG_NONE,
|
OSTREE_ADMIN_BUILTIN_FLAG_SUPERUSER,
|
||||||
&sysroot, cancellable, error))
|
&sysroot, cancellable, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ ot_admin_builtin_switch (int argc, char **argv, GCancellable *cancellable, GErro
|
||||||
context = g_option_context_new ("REF - Construct new tree from current origin and deploy it, if it changed");
|
context = g_option_context_new ("REF - Construct new tree from current origin and deploy it, if it changed");
|
||||||
|
|
||||||
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
||||||
OSTREE_ADMIN_BUILTIN_FLAG_NONE,
|
OSTREE_ADMIN_BUILTIN_FLAG_SUPERUSER,
|
||||||
&sysroot, cancellable, error))
|
&sysroot, cancellable, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ ot_admin_builtin_undeploy (int argc, char **argv, GCancellable *cancellable, GEr
|
||||||
context = g_option_context_new ("INDEX - Delete deployment INDEX");
|
context = g_option_context_new ("INDEX - Delete deployment INDEX");
|
||||||
|
|
||||||
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
||||||
OSTREE_ADMIN_BUILTIN_FLAG_NONE,
|
OSTREE_ADMIN_BUILTIN_FLAG_SUPERUSER,
|
||||||
&sysroot, cancellable, error))
|
&sysroot, cancellable, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ ot_admin_builtin_upgrade (int argc, char **argv, GCancellable *cancellable, GErr
|
||||||
context = g_option_context_new ("Construct new tree from current origin and deploy it, if it changed");
|
context = g_option_context_new ("Construct new tree from current origin and deploy it, if it changed");
|
||||||
|
|
||||||
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
||||||
OSTREE_ADMIN_BUILTIN_FLAG_NONE,
|
OSTREE_ADMIN_BUILTIN_FLAG_SUPERUSER,
|
||||||
&sysroot, cancellable, error))
|
&sysroot, cancellable, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ ot_admin_instutil_builtin_grub2_generate (int argc, char **argv, GCancellable *c
|
||||||
context = g_option_context_new ("[BOOTVERSION] - generate GRUB2 configuration from given BLS entries");
|
context = g_option_context_new ("[BOOTVERSION] - generate GRUB2 configuration from given BLS entries");
|
||||||
|
|
||||||
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
||||||
OSTREE_ADMIN_BUILTIN_FLAG_NONE,
|
OSTREE_ADMIN_BUILTIN_FLAG_SUPERUSER,
|
||||||
&sysroot, cancellable, error))
|
&sysroot, cancellable, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -195,7 +195,7 @@ ot_admin_instutil_builtin_selinux_ensure_labeled (int argc, char **argv, GCancel
|
||||||
context = g_option_context_new ("[SUBPATH PREFIX] - relabel all or part of a deployment");
|
context = g_option_context_new ("[SUBPATH PREFIX] - relabel all or part of a deployment");
|
||||||
|
|
||||||
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
||||||
OSTREE_ADMIN_BUILTIN_FLAG_NONE,
|
OSTREE_ADMIN_BUILTIN_FLAG_SUPERUSER,
|
||||||
&sysroot, cancellable, error))
|
&sysroot, cancellable, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ ot_admin_instutil_builtin_set_kargs (int argc, char **argv, GCancellable *cancel
|
||||||
context = g_option_context_new ("ARGS - set new kernel command line arguments");
|
context = g_option_context_new ("ARGS - set new kernel command line arguments");
|
||||||
|
|
||||||
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
|
||||||
OSTREE_ADMIN_BUILTIN_FLAG_NONE,
|
OSTREE_ADMIN_BUILTIN_FLAG_SUPERUSER,
|
||||||
&sysroot, cancellable, error))
|
&sysroot, cancellable, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -325,6 +325,16 @@ ostree_admin_option_context_parse (GOptionContext *context,
|
||||||
if (!ostree_option_context_parse (context, main_entries, argc, argv, OSTREE_BUILTIN_FLAG_NO_REPO, NULL, cancellable, error))
|
if (!ostree_option_context_parse (context, main_entries, argc, argv, OSTREE_BUILTIN_FLAG_NO_REPO, NULL, cancellable, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
if (flags & OSTREE_ADMIN_BUILTIN_FLAG_SUPERUSER)
|
||||||
|
{
|
||||||
|
if (getuid () != 0)
|
||||||
|
{
|
||||||
|
g_set_error (error, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED,
|
||||||
|
"You must be root to perform this command");
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sysroot_path = g_file_new_for_path (opt_sysroot);
|
sysroot_path = g_file_new_for_path (opt_sysroot);
|
||||||
sysroot = ostree_sysroot_new (sysroot_path);
|
sysroot = ostree_sysroot_new (sysroot_path);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ typedef enum {
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
OSTREE_ADMIN_BUILTIN_FLAG_NONE = 0,
|
OSTREE_ADMIN_BUILTIN_FLAG_NONE = 0,
|
||||||
|
OSTREE_ADMIN_BUILTIN_FLAG_SUPERUSER = 1 << 0
|
||||||
} OstreeAdminBuiltinFlags;
|
} OstreeAdminBuiltinFlags;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue