Читая эти вопросы и ответы:
принес мне еще один, который создаст проблемы для новых пользователей этой команды:
- Как настроить
pkexec
для простоты использования?
Например, когда делаете следующее:
(Открытие файла в терминале)
pkexec nano /etc/mysql/my.cnf
(Открытие файла в графическом интерфейсе)
pkexec gedit /etc/mysql/my.cnf
Последний получает следующую ошибку:
pkexec must be setuid root
Теперь это принесло мне следующие вопросы:
Как настроить,
pkexec
чтобы избежать этого? Аналогично тому, какsudo
/gksu
ведут себя, когда делают то же самое (они только запрашивают пароль).Если применимо, как сказать, чтобы он не запрашивал пароль после первого применения его к команде (или включения первой команды, если она настраивается)?
Где сохранить файл конфигурации, если он еще не существует?
Есть ли приложение с графическим интерфейсом для настройки
pkexec
использования (Policy Kit)?
command-line
sudo
pkexec
Луис Альварадо
источник
источник
Ответы:
Как настроить,
pkexec
чтобы избежать ошибок при запуске приложений с графическим интерфейсом?Я нашел два возможных пути:
Как видите, используя следующее:
не получит никакой ошибки. И это нормально, потому что
man pkexec
очень ясно в этом вопросе:В результате вы можете создать ( постоянный ) псевдоним (это самый простой способ):
Или (опять же) как
man pkexec
говорится:Вы можете создать новый файл политики с
/usr/share/polkit-1/actions
именемcom.ubuntu.pkexec.gedit.policy
с помощью следующего XML-кода внутри, где самое важное - установитьorg.freedesktop.policykit.exec.allow_gui
непустое значение:Как сказать, чтобы он не запрашивал пароль после первого применения к команде?
Для этих трех настроек тегов:
allow_any
,allow_inactive
иallow_active
из файла политики, следующие варианты:sudo
авторизация длится несколько минут.sudo
авторизация длится несколько минут.Источник: Polkit - Структура - Действия
Таким образом, если вы используете опцию auth_admin_keep (или, в зависимости от обстоятельств, auth_self_keep ),
pkexec
не будет запрашивать пароль снова некоторое время (по умолчанию это время равно 5 минутам, как я проверял). Недостатком здесь является то, что эта вещь применима только для одной и той же команды / приложения и действительна для всех пользователей (если только она не отменяется в более поздней конфигурации).Где сохранить файл конфигурации, если он еще не существует?
Файлы конфигурации или определения polkit можно разделить на два вида:
Действия определены в XML .policy файлах, расположенных в
/usr/share/polkit-1/actions
. К каждому действию прикреплен набор разрешений по умолчанию (например, вам нужно указать в качестве администратора, чтобы использовать действие GParted). Значения по умолчанию могут быть отменены, но редактирование файлов действий НЕ является правильным способом. Имя этого файла политики должно иметь следующий формат:Правила авторизации определены в файлах JavaScript .rules. Они находятся в двух местах: сторонние пакеты могут использовать
/usr/share/polkit-1/rules.d
(хотя некоторые, если таковые имеются) и/etc/polkit-1/rules.d
предназначен для локальной конфигурации. Файлы .rules обозначают подмножество пользователей, ссылаются на одно (или несколько) действий, указанных в файлах действий, и определяют, с какими ограничениями эти действия могут быть предприняты этим / этими пользователями. Например, файл правил может отменять требование по умолчанию для всех пользователей для аутентификации в качестве администратора при использовании GParted, определяя, что некоторым конкретным пользователям это не нужно. Или не разрешено использовать GParted вообще.Источник: Полкит - Структура
Есть ли приложение с графическим интерфейсом для настройки
pkexec
использования?Из того, что я знаю, до сих пор (18.01.2014) не существует чего-то подобного. Если в будущем я что-то найду, я тоже не забуду обновить этот ответ.
источник
doublecmd
с ROOT PRIVELEGES, поскольку мне нужно было экспортировать среды с помощьюDISPLAY & XAUTHORITY
!! Просто небольшие вопросы: есть ли разница в написании политики или просто в запуске программы с командойpkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY doublecmd
все время?pkexec
станет так же небезопасно, какgksudo
если бы запустить через такой псевдоним? может быть, вместо псевдонима это может быть скрипт с привилегиями root, может быть безопаснее?auth_admin_keep
не работает. Если я запускаю synaptic из GUI (что эквивалентноpkexec synaptic
), он запрашивает пароль каждый раз. Есть идеи почему?В дополнение к ответу Раду: я бы не использовал псевдоним pkexec, но gksudo .
Зачем? Вам не нужно переписывать свой скрипт.
Я использую следующую конфигурацию:
cd /usr/local/bin
sudo gedit gksudo
(создайте новый файл с именем "gksudo"напишите следующее содержание:
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY $@
(не забудьте
$@
в конце. Это для перенаправления всех параметров)сохранить и выйти
chmod 755 gksudo
По причинам документации напишу, что я пробовал и не получилось:
~/.bash_aliases
ln -s pkexec [...]
)источник