в сизифе запускается не consolehelperlом
а так...
pkexec --disable-internal-agent '/usr/bin/gparted'
Смотрю код...
polkit-0.113/src/programs/pkexec.c
if (polkit_authorization_result_get_is_authorized (result))
{
/* do nothing */
}
else if (polkit_authorization_result_get_is_challenge (result))
{
if (local_agent_handle == NULL && !opt_disable_internal_agent)
{
PolkitAgentListener *listener;
error = NULL;
/* this will fail if we can't find a controlling terminal */
listener = polkit_agent_text_listener_new (NULL, &error);
if (listener == NULL)
{
g_printerr ("Error creating textual authentication agent: %s\n", error->message);
g_error_free (error);
goto out;
}
local_agent_handle = polkit_agent_listener_register (listener,
POLKIT_AGENT_REGISTER_FLAGS_RUN_IN_THREAD,
subject,
NULL, /* object_path */
NULL, /* GCancellable */
&error);
g_object_unref (listener);
if (local_agent_handle == NULL)
{
g_printerr ("Error registering local authentication agent: %s\n", error->message);
g_error_free (error);
goto out;
}
g_object_unref (result);
result = NULL;
goto try_again;
}
else
{
g_printerr ("Error executing command as another user: No authentication agent found.\n");
goto out;
}
}
else
{
При нормальной работе видимо должно быть
/* do nothing */
Однако у нас
polkit_authorization_result_get_is_authorized (result) == false
а
polkit_authorization_result_get_is_challenge (result) == true
Далее попадаем на
if (local_agent_handle == NULL && !opt_disable_internal_agent)
Если запуск
pkexec --disable-internal-agent '/usr/bin/gparted'
и
pkexec '/usr/bin/gparted'
дает один результат, то
local_agent_handle != NULL
а если разный, то
local_agent_handle == NULL
:)))