[sisyphus] Еще раз о технологической нейтральности и съемных носителях

Mikhail Efremov sem на altlinux.ru
Ср Апр 10 18:54:04 MSK 2013


On Tue, 9 Apr 2013 10:48:30 +0400 Eugene Prokopiev wrote:
> 5 апреля 2013 г., 16:52  Mikhail Efremov написал:
> > On Fri, 5 Apr 2013 16:30:23 +0400 Eugene Prokopiev wrote:
> 
> >> А как вы монтируете съемные носители? Специальной сборки udisks2 у вас
> >> случайно нет? ;)
> >
> > У меня есть udisks2 и polkit на Hold. Впрочем, монтировать я в любом
> > случае предпочитаю командой mount.
> 
> Я совсем не против сказать pmount /dev/sdb1 на сервере (хотя он желает
> работать исключительно с теми накопителями, которые считает съемными,
> как бы отучить?) или даже mount /dev/sdb1 /mnt (это нравится уже
> меньше), но на десктопе такое решение слишком радикально :)
> 
> О взаимосвязи всех этих *Kit я до сих пор не задумывался, т.к. оно
> просто работало. Верно ли я понимаю, что ConsoleKit нужен для
> поддержания в актуальном состоянии информации о том, кто сейчас
> залогинен, а PolicyKit нужен для того, чтобы разрешить/запретить
> монтирование через вызовы DBus API к udisks2 на основании, например,
> этой информации (но не обязательно)?

В общих чертах да.

> Новый udisks2 разучился запрашивать эту информацию у ConsoleKit, а
> xfce-session не умеет сообщать ее кому-либо еще кроме ConsoleKit и не
> умеющего работать автономно systemd-logind. Получается, что ConsoleKit
> уже бесполезен, и стоило бы его оторвать от xfce-session и вынести из
> системы вообще?

Udisks2 спрашивает polkit, который умеет сейчас только systemd-logind.
xfce4-session же использует ConsoleKit только для того, чтобы выполнить
reboot/shutdown. Скоро в Сизиф поедет xfce4-session с поддержкой
systemd-logind и без него reboot/shutdown будет возможен только через
правильно настроенный sudo. Для suspend/hibernate я возможно тоже
вхакаю запуск pm-suspend/pm-hibernate через sudo.

> Ну а до тех пор, пока xfce-session не научится работать с тем же, с
> чем сейчас работает udisks2, меня вполне устроит решение в духе:
> 
> # cat /etc/polkit-1/rules.d/99-my.rules
> polkit.addRule(function(action, subject) {
>     if (action.id.indexOf("org.freedesktop.udisks2.") == 0) {
>         return polkit.Result.YES;
>     }
> });

Это можно сделать локально, конечно, но не в Сизиф же такие вещи
запихивать.

> А как насчет вычистить сейчас ConsoleKit из XFCE, раз в нынешнем
> Сизифе он бесполезен? 

Он был вполне полезен, reboot/shutdown через него работал и с systemd,
и без него. Но в следующей сборке он уже не будет использоваться.

> Меня бы и для NM решение в духе "всем - всё"
> устроило, какие там action.id у NM? ;)

См. /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy.
Можно и для NM разрешить всем всё, должно работать. Возможно я и сам
себе так сделаю, чтобы не собирать отдельную версию. ConsoleKit все-таки
действительно пора хоронить, видимо.

-- 
WBR, Mikhail Efremov


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