Я использую Ubuntu Mate 20.04 и pkexec
для запуска приложений с правами администратора, если это необходимо.
Однако, когда набор агента политики запрашивает авторизацию запроса, информации недостаточно для принятия решения. Например, если я запустил
pkexec sh -c 'echo hello'
, я увижу это сообщение:
Обратите внимание, что нет информации о команде, которую я пытаюсь выполнить. Таким образом, это будет выглядеть так же для опасного
pkexec sh -c 'rm -rf /'
Как я могу настроить свою настройку, настроив или изменив агент, чтобы я мог видеть дополнительную информацию (например, полную командную строку) о действии, которое меня просят разрешить?
За полную командную строку с аргументами отвечает command_line
. Чтобы изменить его, можно создать собственную политику, как предлагает страница man pkexec
.
Однако мне пришлось редактировать LC_MESSAGES. Моя локаль en_US, поэтому я выполнил следующие шаги:
/usr/share/locale-langpack/en_GB/LC_MESSAGES/polkit-1.mo
msgunfmt polkit- 1.mo -o polkit-1.po
polkit-1.po
msgid "Authentication is needed to run `$(program)' as the super user"
msgstr "Authentication is needed to run '$(program)' as the super user"
до
msgid "Authentication is needed to run `$(program)' as the super user"
msgstr "Authentication is needed to run '$(program)' ('$(command_line)') as the super user"
, а также несколько похожих строк.
msgfmt polkit-1.po -o polkit-1.mo
/usr/share/locale/en_US/LC_MESSAGES/polkit-1.mo
systemctl restart polkit