Автор Тема: mate с sysv  (Прочитано 4033 раз)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
mate с sysv
« : 08.12.2020 08:34:16 »
Навеяно темой:

Управление питанием в mate не доступно
(mate поверх p9-xfce-sysv)
https://forum.altlinux.org/index.php?topic=44442.0

Эта тема предназначена только для разработки и тестирования компонентов предполагаемого mate-sysv.
Пожалуйста, не задавайте в этой теме вопросы как пользоваться. А также не пишите ничего из того, что не относится к разработке и тестированию. В ответ вы получите или молчание, или грубый ответ.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: mate с sysv
« Ответ #1 : 08.12.2020 08:51:50 »
Промежуточная заготовка рулеза для mate в системе на sysv

Создан на основе:
/usr/share/polkit-1/actions/org.freedesktop.login1.policy

Выключение, перезагрузка, спячка, разрешены группе xgrp.
Административные действия, только для группы wheel.
Подключение накопителей, - только для wheel.
Действия соответствуют экшнам полиси mate.

В окончательной версии (или для тестовой), исходную модель в начале файла и секции action нужно вычистить и для тестовой обкатки положить рулез в каталог:
/etc/polkit-1/rules.d

Файл промежуточной заготовки рулеза для mate на sysv, во вложении (убрать расширение .txt):

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: mate с sysv
« Ответ #2 : 08.12.2020 16:16:57 »
В рулезе 65-freedesktop.login1.rules есть два правила
        <action id="org.freedesktop.login1.attach-device">
                <description gettext-domain="systemd">Allow attaching devices to seats</description>
                <message gettext-domain="systemd">Authentication is required for attaching a device to a seat.</message>
                <defaults>
                        <allow_any>auth_admin_keep</allow_any>
                        <allow_inactive>auth_admin_keep</allow_inactive>
                        <allow_active>auth_admin_keep</allow_active>
                </defaults>
                <annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.flush-devices</annotate>
        </action>

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.login1.attach-device" && subject.isInGroup("wheel") )
    {
        return polkit.Result.YES;
    }
});




        <action id="org.freedesktop.login1.flush-devices">
                <description gettext-domain="systemd">Flush device to seat attachments</description>
                <message gettext-domain="systemd">Authentication is required for resetting how devices are attached to seats.</message>
                <defaults>
                        <allow_any>auth_admin_keep</allow_any>
                        <allow_inactive>auth_admin_keep</allow_inactive>
                        <allow_active>auth_admin_keep</allow_active>
                </defaults>
        </action>

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.login1.flush-devices" && subject.isInGroup("wheel") )
    {
        return polkit.Result.YES;
    }
});


которые разрешают подключение несистемных накопителей только администраторам.
Если разрешить это группе xgrp, как это сделано в xfce-sysv, то логика поведения будет такой же как и в xfce-sysv. И например исключение непривилегированного пользователя из группы xgrp, и в xfce и в mate, запретит подключение несистемных накопителей, выключение, перезагрузку и спячку. И выключение с перезагрузкой будет возможно через gdm2.20. И поведение станет аналогичным в обоих DE.

Высказываем мнение по логике:
оставить оригинальное поведение как в mate, versus так как в xfce-sysv.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: mate с sysv
« Ответ #3 : 10.12.2020 10:44:35 »
Экшны mate

# ls -1 /usr/share/polkit-1/actions/ | sort
    org.debian.pcsc-lite.policy
    org.freedesktop.color.policy
*** org.freedesktop.DisplayManager.AccountsService.policy
    org.freedesktop.Flatpak.policy
*   org.freedesktop.fwupd.policy
    org.freedesktop.hostname1.policy
    org.freedesktop.locale1.policy
    org.freedesktop.login1.policy
    org.freedesktop.ModemManager1.policy
*   org.freedesktop.NetworkManager.policy
**  org.freedesktop.policykit.policy
    org.freedesktop.realmd.policy
    org.freedesktop.systemd1.policy
    org.freedesktop.timedate1.policy
*   org.freedesktop.UDisks2.policy
*   org.gnome.gparted.policy
*   org.gtk.vfs.file-operations.policy
    org.mate.mate-system-monitor.policy
    org.mate.power.policy
    org.mate.randr.policy
    org.mate.settingsdaemon.datetimemechanism.policy
*   org.pkexec.cpu-x.policy
?   org.x.xf86-video-intel.backlight-helper.policy

Примечание:
*   - реализовано в xfce-sysv
**  - не будет реализовано (см. баги #35763 #37516), - потенциальная локальная атака на систему (заблокировано в xfce на sysv)
*** - не нужно с gdm2.20
?   - обойти pkexec


Целевое назначение экшнов mate (исключая рулезы xfce-sysv):
# grep '<description>' /usr/share/polkit-1/actions/* | grep -v 'fwupd\|NetworkM\|UDisks2\|gparted\|vfs\|cpu-x\|policykit'  | sort
/usr/share/polkit-1/actions/org.debian.pcsc-lite.policy:    <description>Access to the PC/SC daemon</description>
/usr/share/polkit-1/actions/org.debian.pcsc-lite.policy:    <description>Access to the smart card</description>
/usr/share/polkit-1/actions/org.freedesktop.color.policy:    <description>Create a color managed device</description>
/usr/share/polkit-1/actions/org.freedesktop.color.policy:    <description>Create a color profile</description>
/usr/share/polkit-1/actions/org.freedesktop.color.policy:    <description>Inhibit color profile selection</description>
/usr/share/polkit-1/actions/org.freedesktop.color.policy:    <description>Install system color profiles</description>
/usr/share/polkit-1/actions/org.freedesktop.color.policy:    <description>Modify a color profile</description>
/usr/share/polkit-1/actions/org.freedesktop.color.policy:    <description>Modify color settings for a device</description>
/usr/share/polkit-1/actions/org.freedesktop.color.policy:    <description>Remove a color managed device</description>
/usr/share/polkit-1/actions/org.freedesktop.color.policy:    <description>Remove a color profile</description>
/usr/share/polkit-1/actions/org.freedesktop.color.policy:    <description>Use color sensor</description>
/usr/share/polkit-1/actions/org.freedesktop.DisplayManager.AccountsService.policy:                <description>Set properties of any user</description>
/usr/share/polkit-1/actions/org.freedesktop.DisplayManager.AccountsService.policy:                <description>Set properties of any user</description>
/usr/share/polkit-1/actions/org.freedesktop.DisplayManager.AccountsService.policy:                <description>Set properties of own user</description>
/usr/share/polkit-1/actions/org.freedesktop.Flatpak.policy:    <description>Configure</description>
/usr/share/polkit-1/actions/org.freedesktop.Flatpak.policy:    <description>Configure Remote</description>
/usr/share/polkit-1/actions/org.freedesktop.Flatpak.policy:    <description>Install bundle</description>
/usr/share/polkit-1/actions/org.freedesktop.Flatpak.policy:    <description>Install signed application</description>
/usr/share/polkit-1/actions/org.freedesktop.Flatpak.policy:    <description>Install signed runtime</description>
/usr/share/polkit-1/actions/org.freedesktop.Flatpak.policy:    <description>Override parental controls</description>
/usr/share/polkit-1/actions/org.freedesktop.Flatpak.policy:    <description>Uninstall app</description>
/usr/share/polkit-1/actions/org.freedesktop.Flatpak.policy:    <description>Uninstall runtime</description>
/usr/share/polkit-1/actions/org.freedesktop.Flatpak.policy:    <description>Update appstream</description>
/usr/share/polkit-1/actions/org.freedesktop.Flatpak.policy:    <description>Update metadata</description>
/usr/share/polkit-1/actions/org.freedesktop.Flatpak.policy:    <description>Update remote metadata</description>
/usr/share/polkit-1/actions/org.freedesktop.Flatpak.policy:    <description>Update signed application</description>
/usr/share/polkit-1/actions/org.freedesktop.Flatpak.policy:    <description>Update signed runtime</description>
/usr/share/polkit-1/actions/org.freedesktop.Flatpak.policy:    <description>Update system repository</description>
/usr/share/polkit-1/actions/org.freedesktop.ModemManager1.policy:    <description>Accept incoming voice calls or start outgoing voice calls.</description>
/usr/share/polkit-1/actions/org.freedesktop.ModemManager1.policy:    <description>Add, modify, and delete mobile broadband contacts</description>
/usr/share/polkit-1/actions/org.freedesktop.ModemManager1.policy:    <description>Control the Modem Manager daemon</description>
/usr/share/polkit-1/actions/org.freedesktop.ModemManager1.policy:    <description>Enable and view geographic location and positioning information</description>
/usr/share/polkit-1/actions/org.freedesktop.ModemManager1.policy:    <description>Query and manage firmware on a mobile broadband device</description>
/usr/share/polkit-1/actions/org.freedesktop.ModemManager1.policy:    <description>Query and utilize network information and services</description>
/usr/share/polkit-1/actions/org.freedesktop.ModemManager1.policy:    <description>Send, save, modify, and delete text messages</description>
/usr/share/polkit-1/actions/org.freedesktop.ModemManager1.policy:    <description>Unlock and control a mobile broadband device</description>
/usr/share/polkit-1/actions/org.freedesktop.realmd.policy: <description>Change login policy</description>
/usr/share/polkit-1/actions/org.freedesktop.realmd.policy: <description>Discover realm</description>
/usr/share/polkit-1/actions/org.freedesktop.realmd.policy: <description>Join machine to realm</description>
/usr/share/polkit-1/actions/org.freedesktop.realmd.policy: <description>Remove machine from realm</description>
/usr/share/polkit-1/actions/org.mate.mate-system-monitor.policy:    <description>Kill process</description>
/usr/share/polkit-1/actions/org.mate.mate-system-monitor.policy:    <description>Renice process</description>
/usr/share/polkit-1/actions/org.mate.power.policy:    <description>Modify the laptop brightness</description>
/usr/share/polkit-1/actions/org.mate.randr.policy:    <description>Install multi-monitor settings for the whole system</description>
/usr/share/polkit-1/actions/org.mate.settingsdaemon.datetimemechanism.policy:    <description>Change system time</description>
/usr/share/polkit-1/actions/org.mate.settingsdaemon.datetimemechanism.policy:    <description>Change system time zone</description>
/usr/share/polkit-1/actions/org.mate.settingsdaemon.datetimemechanism.policy:    <description>Configure hardware clock</description>
/usr/share/polkit-1/actions/org.x.xf86-video-intel.backlight-helper.policy:    <description>Modify lcd panel brightness</description>
« Последнее редактирование: 10.12.2020 11:00:22 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: mate с sysv
« Ответ #4 : 10.12.2020 14:09:21 »
mate-session &> mate-session.log
^C[altlinux@localhost ~]$
[altlinux@localhost ~]$ cat ./mate-session.log
mate-session[14575]: WARNING: Failed to acquire org.gnome.SessionManager
mate-session[14575]: Gtk-CRITICAL: gtk_main_quit: assertion 'main_loops != NULL' failed
GNOME_KEYRING_CONTROL=/home/altlinux/.cache/keyring-FZMPV0
SSH_AUTH_SOCK=/home/altlinux/.cache/keyring-FZMPV0/ssh
mate-session[14575]: WARNING: Could not connect to ConsoleKit: Could not get owner of name 'org.freedesktop.ConsoleKit': no such name
mate-session[14575]: WARNING: Could not connect to ConsoleKit: Could not get owner of name 'org.freedesktop.ConsoleKit': no such name
mate-session[14575]: WARNING: Could not parse desktop file /home/altlinux/.config/autostart/xfce4-clipman-plugin-autostart.desktop: Файл ключей не содержит ключа «Name» в группе «Desktop Entry»
mate-session[14575]: GLib-GObject-CRITICAL: object GsmAutostartApp 0x1605260 finalized while still in-construction
mate-session[14575]: GLib-GObject-CRITICAL: Custom constructor for class GsmAutostartApp returned NULL (which is invalid). Please use GInitable instead.
mate-session[14575]: WARNING: could not read /home/altlinux/.config/autostart/xfce4-clipman-plugin-autostart.desktop
mate-session[14575]: WARNING: Unable to find provider '' of required component 'dock'
mate-session[14575]: WARNING: Could not connect to ConsoleKit: Could not get owner of name 'org.freedesktop.ConsoleKit': no such name

** (mate-settings-daemon:14585): WARNING **: 14:01:05.888: Failed to acquire org.mate.SettingsDaemon

** (mate-settings-daemon:14585): WARNING **: 14:01:05.888: Could not acquire name
Предупреждение менеджера окон: У экрана 0 дисплея «:0» уже есть менеджер окон. Попробуйте использовать параметр --replace, чтобы заместить текущий менеджер окон.
mate-session[14575]: WARNING: Child process 14589 was already dead.
Cannot register the panel shell: there is already one running.
GNOME_KEYRING_CONTROL=/home/altlinux/.cache/keyring-FZMPV0
SSH_AUTH_SOCK=/home/altlinux/.cache/keyring-FZMPV0/ssh
Looking in '/etc/xdg/parcellite/parcelliterc'
GNOME_KEYRING_CONTROL=/home/altlinux/.cache/keyring-FZMPV0
SSH_AUTH_SOCK=/home/altlinux/.cache/keyring-FZMPV0/ssh
org.gnome.SessionManagervmware-user: could not open /proc/fs/vmblock/dev
Предупреждение менеджера окон: У экрана 0 дисплея «:0» уже есть менеджер окон. Попробуйте использовать параметр --replace, чтобы заместить текущий менеджер окон.

(polkit-mate-authentication-agent-1:14619): polkit-mate-1-WARNING **: 14:01:06.167: Unable to determine the session we are in: No session for pid 14619
mate-session[14575]: WARNING: Child process 14597 was already dead.

** (mate-volume-control-status-icon:14623): WARNING **: 14:01:06.204: Status icon is already running, exiting

** (mate-screensaver:14601): WARNING **: 14:01:06.337: хранитель экрана уже запущен в этом сеансе
Предупреждение менеджера окон: У экрана 0 дисплея «:0» уже есть менеджер окон. Попробуйте использовать параметр --replace, чтобы заместить текущий менеджер окон.
*** ERROR ***
TI:14:01:06 TH:0x1ac3270 FI:gpm-main.c FN:main,246
 - Управление питанием is already running in this session.
Traceback:
mate-power-manager() [0x41944f]
mate-power-manager() [0x408a96]
/lib64/libc.so.6(__libc_start_main+0xeb) [0x7f50d6bbc08b]
mate-power-manager() [0x408caa]
Предупреждение менеджера окон: У экрана 0 дисплея «:0» уже есть менеджер окон. Попробуйте использовать параметр --replace, чтобы заместить текущий менеджер окон.
...
Предупреждение менеджера окон: У экрана 0 дисплея «:0» уже есть менеджер окон. Попробуйте использовать параметр --replace, чтобы заместить текущий менеджер окон.
mate-session[14575]: WARNING: Could not connect to Systemd: Could not get owner of name 'org.freedesktop.login1': no such name

mate говно.
Какой нафик ConsoleKit? Какой нафик Systemd?

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Re: mate с sysv
« Ответ #5 : 10.12.2020 17:37:45 »
Какой нафик ConsoleKit?

ConsoleKit2. Но что его, что elogind, невозможно поддерживать одновременно с systemd в одном дистрибутиве. Приложения вроде polkit нужно собирать с чем-то одним из них. А несколько polkit в дистрибутиве держать нельзя.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: mate с sysv
« Ответ #6 : 11.12.2020 06:59:18 »
Какой нафик ConsoleKit?

ConsoleKit2. Но что его, что elogind, невозможно поддерживать одновременно с systemd в одном дистрибутиве. Приложения вроде polkit нужно собирать с чем-то одним из них. А несколько polkit в дистрибутиве держать нельзя.

Тоже так понял про два polkit -а. Тем не менее, так или иначе, менеджер сессий mate оказался намертво прибитым к systemd. А ещё говорят что быдлокодеры водятся только на Windows.

Менеджер сессий xfce, в альтах, может работать и в systemd и в init. По крайней мере через правило. А в Слаке и на bsd-like init.

Оказывается mate, я на p8 даже на sysv пытался переводить :-)
https://forum.altlinux.org/index.php?topic=36539.msg328893#msg328893
http://forum.russ2.com/index.php?showtopic=4276&st=60&p=50271&#entry50271

Но уже тогда ждущий в mate на sysv был мёртвым.
Ну и: mate, это не gnome2. Ни разу.
Ладно. Померла так померла.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Re: mate с sysv
« Ответ #7 : 11.12.2020 10:30:43 »
Менеджер сессий xfce, в альтах, может работать и в systemd и в init. По крайней мере через правило. А в Слаке и на bsd-like init.

А ещё неизвестно, что там в xfce свежем. Ради интереса можно regular-xfce-sysv собрать да посмотреть. CSD (аля gnome3), к примеру, уже завезли.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: mate с sysv
« Ответ #8 : 11.12.2020 13:10:41 »
Менеджер сессий xfce, в альтах, может работать и в systemd и в init. По крайней мере через правило. А в Слаке и на bsd-like init.

А ещё неизвестно, что там в xfce свежем. Ради интереса можно regular-xfce-sysv собрать да посмотреть.

Антон, будет возможность, время и желание, собери регулярку с xfce на sysv. Посмотреть, что там готовит день грядущий. Если дойдут руки собрать, стукни в тему Xfce с SysV.

CSD (аля gnome3), к примеру, уже завезли.

Уже посыпался гнев возмущениий:
https://forum.xfce.org/viewtopic.php?id=13689

Я могу быть вдумчивым. Я могу быть конструктивным.
Но уважительно? Нет. Это надо заслужить. XFCE вплоть до 4.12 заслужил уважение.
Однако только потому, что вы заплатили арендную плату в прошлом месяце, это не значит, что вы можете отказаться от уплаты арендной платы в этом месяце, так как вы заплатили ее в прошлом месяце.

Нынешнее описание XFCE 4.16 не только не заслуживает уважения,но и теряет его. Это показывает тенденцию развития, которая выходит немного за рамки простого предположения о мотивах разработчиков, и это не так легко отклонить взмахом руки.


Оффлайн rits

  • Участник
  • *
  • Сообщений: 1 233
  • ITS
Re: mate с sysv
« Ответ #9 : 11.12.2020 13:43:14 »
"В GNOME редакции доступна новая утилита Gnome Layout Switcher, которая позволяет переключать режимы интерфейса (макеты), которые изменяют расположение элементов интерфейса на рабочем столе и делают интерфейс системы больше похожей на другие окружения/системы." https://pingvinus.ru/news/2283

Интересная фишка, можно глянуть на https://youtu.be/mk8itRnNd5E с 4:16 минуты
Идет непрерывная борьба за сохранение кнопки "Пуск" - присоединяйтесь ))