[devel] polkit without systemd

Mikhail Efremov sem на altlinux.ru
Чт Окт 2 21:27:35 MSK 2014


On Fri, 26 Sep 2014 12:08:30 +0400 Mikhail Efremov wrote:
> On Tue, 23 Sep 2014 14:08:24 +0400 Mikhail Efremov wrote:
> > On Mon, 22 Sep 2014 13:40:28 +0400 Mikhail Efremov wrote:
> > > On Fri, 19 Sep 2014 23:15:22 +0400 Alexey Shabalin wrote:
> > > > 19 сентября 2014 г., 18:51 пользователь Mikhail Efremov
> > > > > Нет, при более внимательном рассмотрении там все плохо.
> > > > > В systemd-logind слишком много завязано на сам systemd.
> > > > > Не найдя dbus-интерфейс systemd он даже не запустится, да и
> > > > > потом он обращается к systemd при логине пользователя для
> > > > > манипуляций с cgroups, а также для выполнения shutdown/sleep.
> > > > > Надо подумать, можно ли с этим что-то сделать.
> > > > > К тому же, не знаю как с остальными демонами из
> > > > > systemd-services, но для logind dbus-активация - плохая идея.
> > > > > Как минимум в Xfce есть патчи, проверяющие наличие
> > > > > dbus-интерфейса logind. Если при этом logind вдруг запустится,
> > > > > но выполнять все, что от него ожидается, не сможет (тот же
> > > > > shutdown/sleep), то это просто перестанет работать. Предлагаю
> > > > > убрать dbus-активацию для logind и вернуть проверку на
> > > > > запущенный logind в pam_systemd, а если удастся-таки как-то
> > > > > заставить его работать без systemd - написать для него честный
> > > > > инит-скрипт.
> > > > 
> > > > Да, у меня эксперименты тоже не удались. Просторы интернета
> > > > подсказали про systemd-shim. Будем пробовать или откатывать все
> > > > изменения?
> > > 
> > > Можно попробовать. Только я бы, прежде чем этот systemd-shim
> > > собирать, почитал бы его хорошенько. Надо понять, насколько хорошо
> > > он прикидывается systemd. Потенциально возможны проблемы, если
> > > кто-то обнаружит dbus-интерфейс systemd и захочет от systemd-shim
> > > чего-то такого, чего тот не умеет.
> > 
> > Я, собственно, начал его неспешно собирать. Как соберу - расскажу что
> > получилось.
> 
> У меня это даже как-то заработало. В Сизиф пока не отправляю, там надо
> еще немного попилить.
> Но в целом выглядит вполне рабочим вариантом.

Отправил в Сизиф как есть, желающие могут поиграться. Нормально оно не
работает, но кое-что позволяет.
В частности не рекомендую использовать на Xfce, как минимум
shutdown/sleep отвалятся (как я и говорил dbus-активация для
systemd-logind - зло).

- systemd-machined должен быть запущен (собственно важно существование
  каталога /run/systemd/machines/).
- systemd-inhibit хорошо бы паковать вместе с systemd-logind.
- основная проблема: loginctl show-user показывает, что State=opening.
  Из-за этого polkit много чего не разрешает. Видимо logind ждет, что
  systemd-shim сделает что-то, чего тот не умеет. Закрытие сеанса тоже
  не работает.

-- 
WBR, Mikhail Efremov


Подробная информация о списке рассылки Devel