LINUX.ORG.RU

История изменений

Исправление kirk_johnson, (текущая версия) :

Их программный продукт работает правильно:

спрашивает у polkit, можно ли пользователю запустить данную операцию;
получает ответ, что можно;
запускает операцию.

В чём здесь, по-вашему, ошибка?

В классической ошибке программиста. Фича заключается не в том, чтобы у polkit'а спросить, а в том, чтобы сделать возможным выполнение привилегированных операций без привлечения рута, но только тем юзерам, которым явно разрешили. В данном случае, решили сделать через polkit и дать возможность выполнять команды только юзерам с правами auth_admin. И вот этот момент они и не проверили.

Тестировать нужно видную пользователю функциональность. В данном случае — выполнение привилегированных команд через systemctl, и совсем не важно, через что там это реализовано. А то вдруг у них там

if (uid > 0 && uid <= INT_MAX)
    res = ask_polkit();

И все, привет.

Исправление kirk_johnson, :

Их программный продукт работает правильно:

спрашивает у polkit, можно ли пользователю запустить данную операцию;
получает ответ, что можно;
запускает операцию.

В чём здесь, по-вашему, ошибка?

В классической ошибке программиста. Фича заключается не в том, чтобы у polkit'а спросить, а в том, чтобы сделать возможным выполнение привилегированных операций без привлечения рута, но только тем юзерам, которым явно разрешили. В данном случае, решили сделать через polkit и дать возможность выполнять команды только юзерам с правами auth_admin. И вот этот момент они и не проверили.

Тестировать нужно видную пользователю функциональность. В данном случае — выполнение привилегированных команд через systemctl, и совсем не важно, через что там это реализовано. А то вдруг у них там

if (uid > 0 && uid < INT_MAX)
    res = ask_polkit();

И все, привет.

Исправление kirk_johnson, :

Их программный продукт работает правильно:

спрашивает у polkit, можно ли пользователю запустить данную операцию;
получает ответ, что можно;
запускает операцию.

В чём здесь, по-вашему, ошибка?

В классической ошибке программиста. Фича заключается не в том, чтобы у polkit'а спросить, а в том, чтобы сделать возможным выполнение привилегированных операций без привлечения рута, но только тем юзерам, которым явно разрешили. В данном случае, решили сделать через polkit и дать возможность выполнять команды только юзерам с правами auth_admin. И вот этот момент они и не проверили.

Тестировать нужно видную пользователю функциональность. В данном случае — выполнение привилегированных команд через systemctl, и совсем не важно, через что там это реализовано. А то вдруг у них там

if (uid > 0 && uid < INT_MAX)
    res = ask_polkit();


И все, привет.

Исправление kirk_johnson, :

Их программный продукт работает правильно:

спрашивает у polkit, можно ли пользователю запустить данную операцию;
получает ответ, что можно;
запускает операцию.

В чём здесь, по-вашему, ошибка?

В классической ошибке программиста. Фича заключается не в том, чтобы у polkit'а спросить, а в том, чтобы сделать возможным выполнение привилегированных операций без привлечения рута, но только тем юзерам, которым явно разрешили. В данном случае, решили сделать через polkit и дать возможность выполнять команды только юзерам с правами auth_admin. И вот этот момент они и не проверили.

Исходная версия kirk_johnson, :

Их программный продукт работает правильно:

спрашивает у polkit, можно ли пользователю запустить данную >операцию;
получает ответ, что можно;
запускает операцию.

В чём здесь, по-вашему, ошибка?

В классической ошибке программиста. Фича заключается не в том, чтобы у polkit'а спросить, а в том, чтобы сделать возможным выполнение привилегированных операций без привлечения рута, но только тем юзерам, которым явно разрешили. В данном случае, решили сделать через polkit и дать возможность выполнять команды только юзерам с правами auth_admin. И вот этот момент они и не проверили.