Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

  1. Создать файл /etc/polkit-1/rules.d/10-default.rules с правилом:
    Блок кода
    polkit.addRule(function(action, subject) {
     if (action.id == "org.freedesktop.policykit.exec") {
        polkit.log("action=" + action);
        polkit.log("subject=" + subject);
     }
    });
    где org.freedesktop.policykit.exec – название действия, соответствующего команде pkexec.
    Примечание

    В ОС Astra Linux, использующей мандатный контроль целостности, после создания какого-либо нового файла с правилом в каталогах /etc/polkit-1/rules.d/ и /usr/share/polkit-1/rules.d: polkitd перестаёт работать, а в системном журнале появляется запись:
    polkitd[5403]: Insufficient integrity level of file '/etc/polkit-1/rules.d/10-default.rules'

    Необходимо настроить мандатный контроль целостности для файла 10-default.rules либо, как временный вариант, разместить правило в уже существующем rules-файле.

  2. Разрешить службе polkitd выводить в системный журнал отладочные сообщения.
    Для этого в файле systemd-юнита /usr/lib/systemd/system/polkit.service убрать из значения параметра ExecStart опцию --no-debug:
    Блок кода
    [Unit]
    Description=Authorization Manager
    Documentation=man:polkit(8)
    
    [Service]
    Type=dbus
    BusName=org.freedesktop.PolicyKit1
    ExecStart=/usr/lib/polkit-1/polkitd  --min-ilev-auth-admin=max
  3. Перечитать настройки системного менеджера systemd и перезапустить службу polkitd:
    Command

    sudo systemctl daemon-reload

    sudo systemctl restart polkit

  4. Запустить команду:
    Command

    pkexec -u administrator echo "test"

  5. В системном журнале появятся записи о действии "action=..." и о пользователе "subject=...":
    Блок кода
    сен 22 12:51:44 astra-28739 polkitd[7867]: action=[Action id='org.freedesktop.policykit.exec' program='/usr/bin/echo' user.display='administrator' command_line='/usr/bin/echo test' user='administrator' polkit.message='Authentication is needed to run `$(program)' as user $(user.display)' polkit.gettext_domain='polkit-1' user.gecos='']
    сен 22 12:51:44 astra-28739 polkitd[7867]: subject=[Subject pid=4297 user='administrator' groups=administrator,tty,dialout,cdrom,floppy,audio,dip,video,plugdev,users,netdev,lpadmin,scanner,astra-admin,astra-console seat=null session='7' local=false active=true]

Запуск команды без

...

запроса пароля (файл 50-local-allow.rules из состава polkitd)

При установке пакета polkitd устанавливается файл /usr/share/doc/polkitd/50-local-allow.rules:

...