правило polkit: определить, является ли пользователь администратором?

polkit настраивается с использованием файлов правил, написанных на javascript.

Вы пишете собственные функции и передаете их в качестве аргумента в polkit.addRule(). Когда выполняется действие polkit, функции вызываются по порядку, пока одна из них не вернет результат. (В противном случае используются значения по умолчанию).

Функция правила вызывается с двумя параметрами: именем действия и объектом subject.

Вы можете использовать subject.isInGroup("wheel"), чтобы проверить, входит ли пользователь в группу "wheel".

По умолчанию в polkit используется концепция того, является ли пользователь «администратором» или нет. То, что означает эта концепция, может быть изменено с помощью polkit.addAdminRule() несколько странным образом. Значение по умолчанию для этого зависит от дистрибутива. В некоторых дистрибутивах администраторы помещены в группу «колесо». В других дистрибутивах группа «sudo» считается администратором.

Можно ли написать функцию для polkit.addRule() в переносимом стиле, которая проверяет, входит ли субъект в группу администраторов дистрибутива, вместо того, чтобы жестко кодировать группу «wheel» или «sudo»?

0
25.04.2019, 23:26
1 ответ

Это невозможно.

Это не очень распространенный тип политики безопасности -, будь то для polkit или чего-то еще. Многие вещи используют либо группу, либо запрос пароля polkit.

Я заметил, что этот тип политики используется только для PackageKit. (Я предполагаю, что группа администраторов определяется дистрибутивом, когда он компилирует PackageKit ).

0
28.01.2020, 03:47

Теги

Похожие вопросы