Автор Тема: Xfce c Sysv  (Прочитано 563584 раз)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #765 : 17.02.2019 20:28:18 »
Ещё один вариант правил блокировки монтирования usb-flash:
Правила разрешают монтирование несистемных устройств (usb-flash, HintSystem: false) пользователям группы wheel, но запрещают всем остальным.
# cat /etc/polkit-1/rules.d/60-mount-other-seat.rules
polkit.addRule(function(action, subject) {
    if (action.id.indexOf("org.freedesktop.udisks2.filesystem-mount") == 0) {
        if (subject.isInGroup("wheel")) {
            return polkit.Result.AUTH_ADMIN;
        } else {
            return polkit.Result.NO;
        }
    }
});


polkit.addRule(function(action, subject) {
    if (action.id.indexOf("org.freedesktop.udisks2.filesystem-mount-other-seat") == 0) {
        if (subject.isInGroup("wheel")) {
            return polkit.Result.AUTH_ADMIN;
        } else {
            return polkit.Result.NO;
        }
    }
});


Так же как и выше, это только для систем на udisks2.
Этот вариант и вариант выше не должны находиться в системе одновременно:
Или один из них должен отсутствовать в системе или быть *.rules.bak

Теоретически, на базе этих правил можно было бы внести изменения в пакет polkit-sysvinit для sysv-xfce.
Ввести дополнительную системную группу storage с условием:
если пользователь в группе storage, монтирование флешки разрешено, иначе не разрешено, через YES или NO.
Но файл 60-sysvinit-mount.rules надо будет дробить на два файла:
60-sysvinit-mount.rules и 60-sysvinit-mount-other-seat.rules
 
Наверное первого пользователя (сессия home root), надо наверное было бы добавлять в storage по-умолчанию, а остальных в storage руками:
если не в storage, монтирование флешки запрещено.

И наверное желательно было бы соблюсти условие:
60-sysvinit-mount-other-seat.rules должен работать одинаково или почти одинаково и в системе на systemd и в системе на sysv. Т.е. правило должно быть универсальным изначально, без всяких локов на инит.
« Последнее редактирование: 17.02.2019 20:36:08 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #766 : 18.02.2019 15:56:28 »
Теоретически, в этих правилах можно было бы в листинге заменить системную группу wheel на системную группу storage (группа должна существовать).
Тогда монтирование флешки разрешалось бы только пользователям входящим в группу storage.
Это может дать чуть большую гибкость при распределении прав доступа на монтирование флешек.

Эти правила разрешают монтирование флешек только пользователям состоящим в системной группе storage.
Группа должна существовать.
Запрашивается пароль монтирующего флешку пользователя для подтверждения подлинности пользователя.
# cat /etc/polkit-1/rules.d/60-mount-other-seat.rules
polkit.addRule(function(action, subject) {
    if (action.id.indexOf("org.freedesktop.udisks2.filesystem-mount") == 0) {
        if (subject.isInGroup("storage")) {
            return polkit.Result.AUTH_SELF;
        } else {
            return polkit.Result.NO;
        }
    }
});


polkit.addRule(function(action, subject) {
    if (action.id.indexOf("org.freedesktop.udisks2.filesystem-mount-other-seat") == 0) {
        if (subject.isInGroup("storage")) {
            return polkit.Result.AUTH_SELF;
        } else {
            return polkit.Result.NO;
        }
    }
});

Чтобы пароль не запрашивался, в листинге заменить AUTH_SELF на YES.

Только авторизация на sysv сломана и придется YES else NO.
Но само-собой, чтобы разрулить права доступа на монтирование флешек через группу storage, эти экшны нужно выдрать из файла 60-sysvinit-mount.rules (пакет polkit-sysvinit).
« Последнее редактирование: 18.02.2019 17:10:30 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #767 : 18.02.2019 19:11:36 »
Эти правила разрешают монтирование флешек только пользователям состоящим в системной группе storage.
Группа должна существовать.
Запрашивается пароль монтирующего флешку пользователя для подтверждения подлинности пользователя.
# cat /etc/polkit-1/rules.d/60-mount-other-seat.rules
polkit.addRule(function(action, subject) {
    if (action.id.indexOf("org.freedesktop.udisks2.filesystem-mount") == 0) {
        if (subject.isInGroup("storage")) {
            return polkit.Result.AUTH_SELF;
        } else {
            return polkit.Result.NO;
        }
    }
});


polkit.addRule(function(action, subject) {
    if (action.id.indexOf("org.freedesktop.udisks2.filesystem-mount-other-seat") == 0) {
        if (subject.isInGroup("storage")) {
            return polkit.Result.AUTH_SELF;
        } else {
            return polkit.Result.NO;
        }
    }
});

Чтобы пароль не запрашивался, в листинге заменить AUTH_SELF на YES.

Только авторизация на sysv сломана и придется YES else NO.
Но само-собой, чтобы разрулить права доступа на монтирование флешек через группу storage, эти экшны нужно выдрать из файла 60-sysvinit-mount.rules (пакет polkit-sysvinit).

Ладно, а в чём засада?
А засада в udisks2. И засада в том, что для монтирования файловых HintSystem:false (other seat, флешка) udiskctl использует экшн org.freedesktop.udisks2.filesystem-mount, но оно же судя по всему неявно используется для монтирования файловых HintSystem:true (файловых встроенного винчестера) не прописанных в /etc/fstab. И если запрещать монтировать флешку, то последует отказ монтирования через udisksctl и файловых HintSystem:true, с таким эффектом, как будто их прописали в fstab с noauto.
Короче говоря:
С org.freedesktop.udisks2.filesystem-mount, либо разрешать всё не прописанное в fstab, либо запрещать всё не прописанное в fstab.
Вывернуть права раздельно, для системных и несистемных устройств не удастся.
Несмотря на существующий экшн org.freedesktop.udisks2.filesystem-mount-system:
# grep 'mount-system\|системном устройстве' /usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy
  <action id="org.freedesktop.udisks2.filesystem-mount-system">
    <description xml:lang="ru">Монтировать файловую систему на системном устройстве</description>
$ udisksctl info -b /dev/sda8 | grep ' Device:\|HintSystem\|Symlink'
    Device:                     /dev/sda8
    HintSystem:                 true
    Symlinks:                   /dev/disk/by-id/ata-WDC_WD5000LPCX-24C6HT0_WD-WXC1A45NS2D4-part8
« Последнее редактирование: 21.02.2019 23:59:27 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #768 : 25.02.2019 04:50:06 »
Свежие версии пакетов.

Изменения в пакетах
polkit-sysvinit-0.3.5-alt1
Запрещено монтирование, размонтирование и извлечение usb флеш пользователям не состоящим в группе storage.
Запрещено монтирование файловых cd/dvd пользователям не состоящим в группе storage.
Запрещено монтирование и размонтирование файловых системного винчестера не прописаных в /etc/fstab, пользователям не состоящим в группе storage.
Первый пользователь в системе с UID=500 заносится в группу storage и имеет эти права.
Это выполняет сервис storage-group нового пакета storage-group-sysvinit-0.1-alt1.
Добавлены в зависимости пакета polkit-sysvinit-0.3.5-alt1, пакеты nm-sysvinit и storage-group-sysvinit добавляющие пользователя с UID=500 в группы _nmconnect и storage соответстветственно.

Непривилегированным пользователям с UID от 501 и выше, регистрируемым в системе, по-умолчанию запрещено всё.
Системный администратор (root) делегирует этим пользователям права, на выбор.

Группы (пакеты *-sysvinit):
* xgrp - даёт право на перезагрузку, выключение и ждущий.
* _nmconnect - даёт право настраивать, включать и отключать сеть.
* storage - даёт право монтировать, размонтировать и извлекать медиа, а также монтировать и размонтировать файловые системного hdd не прописанные в /etc/fstab.

Стандартные штатные группы:
audio - даёт право на звук.
scanner - право на сканер.

Изменение в пакетах прав на монтирование медиа, выполнено по мотивам и пожеланию в этой теме:
Отключение автомонтирования флэшек
Исходные заготовки рулезов на страницах 2, 3 и 4 в теме по ссылке.
Мотивация:
Пользователю (администратору) много проще добавлять нового пользователя в группу(ы) разрешая, чем ваять руками рулезы запрета.

Пакеты во вложении создавались и обкатывались в системе на p8-sysv-xfce.
« Последнее редактирование: 26.02.2019 12:57:26 от Speccyfighter »

Оффлайн kostyalamer

  • Мастер
  • ***
  • Сообщений: 432
    • Сайт клуба активных пользователей ALT Linux
Re: Xfce c Sysv
« Ответ #769 : 26.02.2019 21:19:14 »
Юра, в клубную репу или в бранч отправляете ?
Archlinux  / Altlinux Free Mate p8

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #770 : 26.02.2019 23:45:29 »
Юра, в клубную репу или в бранч отправляете ?

Кость, да тут уже хоть куда-нибудь.  Иначе какой резон в этом всём ковыряться и собирать пакеты. Какой в этом смысл если результат нулевой?
Вон Юра через права глушит доступ к /run/media.
Парень в соседней теме тоже разбирался с блокировкой. Но шесть дней на одну не слишком большую проблему, это уже перебор.
В этих пакетах под sysv, это готовое решение для систем на udisks2.

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

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Xfce c Sysv
« Ответ #771 : 27.02.2019 05:38:58 »
elogind у legion@ и lakostis@ работает. Как заработает у меня, регулярки перейдут на него. И polkit-sysvinit станет ненужным. А вот storage-group-sysvinit может быть полезен и для систем с работающим polkit-agent? Верно?

Оффлайн kostyalamer

  • Мастер
  • ***
  • Сообщений: 432
    • Сайт клуба активных пользователей ALT Linux
Re: Xfce c Sysv
« Ответ #772 : 27.02.2019 07:15:52 »
Залил в нашу 8-ую 32-битную, попрошу Ивана собрать для 64-бит.
Archlinux  / Altlinux Free Mate p8

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #773 : 27.02.2019 09:07:11 »
elogind у legion@ и lakostis@ работает. Как заработает у меня, регулярки перейдут на него. И polkit-sysvinit станет ненужным. А вот storage-group-sysvinit может быть полезен и для систем с работающим polkit-agent? Верно?

Конечно.
Но storage-group-sysvinit, это только init-скрипт добавляющий пользователя UID=500
Разграничения доступа на флешки и медиа у альтов нет. В двух темах уже проскакивало. Значит функционал востребован.
в группу storage на первом своём старте.
Все рулезы с if else storage, это для флешек и матриц по условию: если в сторэдж - разрешено, иначе запрещено.
и их надо будет выдёргивать отдельным файлом.
Если вместо YES ставить AUTH_SELF - спросит пароль текущего пользователя, который в группе storage.
# cat /mnt/sda11/etc/polkit-1/rules.d/60-sysvinit-mount.rules
polkit.addRule(function(action, subject)
{

    if (action.id.indexOf("org.freedesktop.udisks2.filesystem-mount") == 0)
    {
        if (subject.isInGroup("storage")) {
            return polkit.Result.YES;
        } else {
            return polkit.Result.NO;
        }
    };

    if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" && subject.isInGroup("xgrp"))
    {
        return polkit.Result.YES;
    };

    if (action.id == "org.freedesktop.udisks2.filesystem-mount-system-internal" && subject.isInGroup("xgrp"))
    {
        return polkit.Result.YES;
    };

    if (action.id.indexOf("org.freedesktop.udisks2.eject-media") == 0)
    {
        if (subject.isInGroup("storage")) {
            return polkit.Result.YES;
        } else {
            return polkit.Result.NO;
        }
    };

    if (action.id.indexOf("org.freedesktop.udisks2.power-off-drive") == 0)
    {
        if (subject.isInGroup("storage")) {
            return polkit.Result.YES;
        } else {
            return polkit.Result.NO;
        }
    };

    if (action.id  == "org.freedesktop.udisks2.encrypted-unlock" && subject.isInGroup("xgrp"))
    {
        return polkit.Result.YES;
    }

    if (action.id.indexOf("org.freedesktop.udisks2.filesystem-mount-other-seat") == 0)
    {
        if (subject.isInGroup("storage")) {
            return polkit.Result.YES;
        } else {
            return polkit.Result.NO;
        }
    };

    if (action.id.indexOf("org.freedesktop.udisks2.eject-media-other-seat") == 0)
    {
        if (subject.isInGroup("storage")) {
            return polkit.Result.YES;
        } else {
            return polkit.Result.NO;
        }
    };

    if (action.id.indexOf("org.freedesktop.udisks2.power-off-drive-other-seat") == 0)
    {
        if (subject.isInGroup("storage")) {
            return polkit.Result.YES;
        } else {
            return polkit.Result.NO;
        }
    };
});

Ставить ли AUTH_SELF вместо YES, вопрос философский:
С одной стороны это безопасность, с другой стороны частый запрос пароля при перебирании флешек, может достать до печёнок.

Моё ИМХО:
Лучше YES. Но если пользователь прощёлкал свой аккаунт, это его личные проблемы.
« Последнее редактирование: 27.02.2019 09:09:37 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #774 : 27.02.2019 23:07:24 »
elogind у legion@ и lakostis@ работает. Как заработает у меня, регулярки перейдут на него. И polkit-sysvinit станет ненужным.

Это надо будет смотреть на альфа сборке sysv-xfce.
Пока не увижу что это работает, не поверю. :)

И polkit-sysvinit станет ненужным.
А вот storage-group-sysvinit может быть полезен и для систем с работающим polkit-agent? Верно?

В целом да.
Тут пользователь подтверждает что запрет работает:
(для варианта по ссылке разрешено монтирование флеш только для администраторов и соадминистраторов (wheel) )
https://forum.altlinux.org/index.php?topic=42293.msg335507#msg335507
https://forum.altlinux.org/index.php?topic=42293.msg335613#msg335613
У меня в sysv-xfce тоже работает, но не с AUTH_SELF (пароль пользователя), а с YES.

Но ответ не так прост как кажется на первый взгляд:

Модель будущего пакета:

Пакет storage-group

Назначение
Универсальный пакет предназначенный для разрешения прав монтирования флешек и медиа с делегированием прав доступа через группу storage. Предназначен для систем на System V init и systemd, базирующихся на udisks2 и polkit.

Преамбула
udisks2 различает две группы устройств:
HintSystem: true - системные hdd подключаемые к коннекторам на системной плате.
HintSystem: false - CD/DVD и usb-акопители, это устройства other seat, подключаемые в другое место.
<action id="org.freedesktop.udisks2.filesystem-mount">
<description xml:lang="ru">Монтировать файловую систему</description>
<action id="org.freedesktop.udisks2.filesystem-mount-system">
<description xml:lang="ru">Монтировать файловую систему на системном устройстве</description>
<action id="org.freedesktop.udisks2.filesystem-mount-other-seat">
<description xml:lang="ru">Монтировать файловую систему с устройства, подключенного в другое место</description>

Проблемы udisks2
Алгоритм udisks2 требующий авторизацию безнадёжно плох. Это не лечится и нужно переписывать весь udisks2 с нуля.
Дело в том что:
Вне зависимости от того какой из экшнов используется
<action id="org.freedesktop.udisks2.filesystem-mount-system">
<action id="org.freedesktop.udisks2.filesystem-mount-other-seat">
оба они требуют расписывать права доступа и для
<action id="org.freedesktop.udisks2.filesystem-mount">
Более того:
Если файловая системного hdd не прописана в /etc/fstab, она использует и
<action id="org.freedesktop.udisks2.filesystem-mount-other-seat">
и устройство (sda[1-9]) считается подключенным в другое место! Чего не должно быть в принципе!
Из-за этого возникает путаница и сложность написания рулезов с необходимостью тщательной отладки!
Это неявно заметно на системах, на которых авторизация сломана. И вылавливается логикой от обратного.
Здесь
# cat /etc/polkit-1/rules.d/60-sysvinit-mount.rules
polkit.addRule(function(action, subject)
{

    if (action.id.indexOf("org.freedesktop.udisks2.filesystem-mount") == 0)
    {
        if (subject.isInGroup("storage")) {
            return polkit.Result.YES;
        } else {
            return polkit.Result.NO;
        }
    };

    if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" && subject.isInGroup("xgrp"))
    {
return polkit.Result.YES;
    };

    if (action.id == "org.freedesktop.udisks2.filesystem-mount-system-internal" && subject.isInGroup("xgrp"))
    {
return polkit.Result.YES;
    };

    if (action.id.indexOf("org.freedesktop.udisks2.eject-media") == 0)
    {
        if (subject.isInGroup("storage")) {
            return polkit.Result.YES;
        } else {
            return polkit.Result.NO;
        }
    };

    if (action.id.indexOf("org.freedesktop.udisks2.power-off-drive") == 0)
    {
        if (subject.isInGroup("storage")) {
            return polkit.Result.YES;
        } else {
            return polkit.Result.NO;
        }
    };

    if (action.id  == "org.freedesktop.udisks2.encrypted-unlock" && subject.isInGroup("xgrp"))
    {
return polkit.Result.YES;
    }

#    if (action.id.indexOf("org.freedesktop.udisks2.filesystem-mount-other-seat") == 0)
#    {
#        if (subject.isInGroup("storage")) {
#            return polkit.Result.YES;
#        } else {
#            return polkit.Result.NO;
#        }
#    };

    if (action.id.indexOf("org.freedesktop.udisks2.eject-media-other-seat") == 0)
    {
        if (subject.isInGroup("storage")) {
            return polkit.Result.YES;
        } else {
            return polkit.Result.NO;
        }
    };

    if (action.id.indexOf("org.freedesktop.udisks2.power-off-drive-other-seat") == 0)
    {
        if (subject.isInGroup("storage")) {
            return polkit.Result.YES;
        } else {
            return polkit.Result.NO;
        }
    };
});
правило для mount-other-seat закомментировано.
Но стоп!
$ udisksctl info -b /dev/sda12 | grep ' Device:\|HintSystem\| Id:'
    Device:                     /dev/sda12
    HintSystem:                 true
    Id:                         by-id-ata-WDC_WD5000LPCX-24C6HT0_WD-WXC1A45NS2D4-part12

При чём здесь авторизация?!
$ udisksctl mount -b /dev/sda12
==== AUTHENTICATING FOR org.freedesktop.udisks2.filesystem-mount-system ====
Для монтирования WDC WD5000LPCX-24C6HT0 (/dev/sda12) требуется подтверждение подлинности пользователя
Authenticating as: user1 # wheel
Password:

Если filesystem-mount-system разрешён явно!
# sed -n '13,21p' /etc/polkit-1/rules.d/60-sysvinit-mount.rules
    if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" && subject.isInGroup("xgrp"))
    {
return polkit.Result.YES;
    };

    if (action.id == "org.freedesktop.udisks2.filesystem-mount-system-internal" && subject.isInGroup("xgrp"))
    {
return polkit.Result.YES;
    };
$ groups | grep -o storage
storage

А соль в том, что устройства системного винчестера (sda[1-9], HintSystem: true) с файловыми не прописанными в /etc/fstab, udisks2 считает устройствами other seat (подключенными в другое место)
и при разрешённом org.freedesktop.udisks2.filesystem-mount-other-seat, но запрещённом  org.freedesktop.udisks2.filesystem-mount-system (авторизация-то на sysv-xfce сломана!), даже при отсутствующем правиле для org.freedesktop.udisks2.filesystem-mount-system
# cat /etc/polkit-1/rules.d/60-sysvinit-mount.rules
polkit.addRule(function(action, subject)
{

    if (action.id.indexOf("org.freedesktop.udisks2.filesystem-mount") == 0)
    {
        if (subject.isInGroup("storage")) {
            return polkit.Result.YES;
        } else {
            return polkit.Result.NO;
        }
    };

    if (action.id.indexOf("org.freedesktop.udisks2.eject-media") == 0)
    {
        if (subject.isInGroup("storage")) {
            return polkit.Result.YES;
        } else {
            return polkit.Result.NO;
        }
    };

    if (action.id.indexOf("org.freedesktop.udisks2.power-off-drive") == 0)
    {
        if (subject.isInGroup("storage")) {
            return polkit.Result.YES;
        } else {
            return polkit.Result.NO;
        }
    };

    if (action.id  == "org.freedesktop.udisks2.encrypted-unlock" && subject.isInGroup("xgrp"))
    {
return polkit.Result.YES;
    }

    if (action.id.indexOf("org.freedesktop.udisks2.filesystem-mount-other-seat") == 0)
    {
        if (subject.isInGroup("storage")) {
            return polkit.Result.YES;
        } else {
            return polkit.Result.NO;
        }
    };

    if (action.id.indexOf("org.freedesktop.udisks2.eject-media-other-seat") == 0)
    {
        if (subject.isInGroup("storage")) {
            return polkit.Result.YES;
        } else {
            return polkit.Result.NO;
        }
    };

    if (action.id.indexOf("org.freedesktop.udisks2.power-off-drive-other-seat") == 0)
    {
        if (subject.isInGroup("storage")) {
            return polkit.Result.YES;
        } else {
            return polkit.Result.NO;
        }
    };
});

файловые системного винчестера sda не прописанные в /etc/fstab, udisks2 смонтирует как устройства other seat, т.е. как флешки!
Говоря ещё проще:
Правила написанные для распределения прав доступа для монтирования флешек, будут работать и для файловых винчестера не прописанных в /etc/fstab!

И я не знаю, как с udisks2 разрешить группе storage монтировать флешки, но не разрешать не-wheel монтировать файловые не прописанные в /etc/fstab, которые udisks2 монтирует как флешки.
Алгоритм udisks2, это полный вынос мозга.


Но теоретически, конструкция пакета storage-group должна быть такой:
- скрипт storage-group с LSB-хидером под sysv и systemd.
- комплект необходимых рулезов для монтирования устройств other-seat (с YES для систем на systemd и sysv  если авторизация сломана на sysv; с AUTH_SELF для систем на systemd и sysv если в sysv авторизация починена).
- соответственно написание/правка спека с пост-инсталл скриптом.
На выходе будет универсальный пакет и под sysv и под systemd.
« Последнее редактирование: 27.02.2019 23:19:08 от Speccyfighter »

Оффлайн klark973

  • Завсегдатай
  • *
  • Сообщений: 662
  • Неспящий саппорт
Re: Xfce c Sysv
« Ответ #775 : 28.02.2019 00:33:01 »
Speccyfighter, а что скажете о storaged? Приходилось его юзать?
To moan or to solve -- that is the question!

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #776 : 28.02.2019 13:34:36 »
Speccyfighter, а что скажете о storaged? Приходилось его юзать?

Не приходилось сталкиваться.
Но мануал
http://storaged.org/doc/storaged-api/
посмотрел
https://www.systutorials.com/docs/linux/man/1-storagectl/
На первый взгляд вполне.
Упоминание polkit внизу вижу. Стало быть права можно выкручивать.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #777 : 28.02.2019 15:12:28 »
Мысли на будущее

Есть мысль всё таки собрать пробную сборку storage-group.
Пересобирать придётся и storage-group и polkit-sysvinit.
В storage-group будут реализованы права доступа на накопители other-seat. Зависимость на polkit-sysvinit будет снята. Это позволит, если авторизация на sysv будет починена, просто удалить polkit-sysvinit из репозитория.
Также придётся (вероятно, м.б.) добавить pokit-рулез в пакет nm-sysvinit с переименованием пакета в nm-group (посмотреть права доступа (универсальность для распределения прав доступа на sysv и systemd)). (Этот момент надо прощупать на системах с systemd). Фактически он будет делать то же самое что и nm-sysvinit, но для sysv и systemd и по другому алгоритму для работающей авторизации. Зависимость на polkit-sysvinit тоже снять.
В polkit-sysvinit будут оставлены рулезы для sysv со сломаной авторизацией (перезагрузка|выключение|ждущий), - пакет polkit-sysvinit должен безболезненно выноситься из репозитория при починке авторизации, - в идеале, при полном отсутствии изменений в пакетах storage-group и nm-group. Но только если авторизация работает! Всё дело в ней.
Зависимости:
В polkit-sysvinit на storage-group и nm-group, но отсутствие зависимостей в пакетах storage-group и nm-group.
Итого в остатке, нужно изменить три пакета.

В идеале, при работающей авторизации, в репозитории должны оставаться два независимых пакета: storage-group и nm-group, - делегирование прав доступа через группы storage и _nmconnect соответственно в системах на sysv и systemd.

Примечание:
Зависимости при сломанной в sysv авторизации: polkit-sysvinit -> storage-group + nm-sysvinit(скрипт-версия, только для sysv).
Зависимости при работающей авторизации: polkit-sysvinit -> storage-group + nm-group(скрипт и polkit-рулез версия, для sysv и systemd).
В готовом варианте, при работающей в sysv авторизации, пакеты storage-group и nm-group, при переезде из репозитория в репозиторий, не должны требовать никаких изменений.

Зачем это, nm-sysvinit vs nm-group:
Название пакета и его назначение не должны сбивать с толку пользователя и вводить его в заблуждение.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #778 : 28.02.2019 15:46:03 »
Залил в нашу 8-ую 32-битную, попрошу Ивана собрать для 64-бит.

Спасибо Костя.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Xfce c Sysv
« Ответ #779 : 28.02.2019 16:04:59 »
Кстати, Антон, или кто-нибудь, вопрос:
Что применяется в спеке когда пакет меняет имя?
И как это должно выглядеть в спеке.
В спеке пакета меняющего имя и в спеке пакета который требует этот пакет.
Предполагаю, что в спеке пакета который требует пакет сменивший имя, просто указывается новое имя пакета.
А что в пакете который сменил имя? Собсно ничего особенного, только новое имя?
В контексте установки и dist-upgrade.
Пакет со старым именем должен удаляться из системы.

В конкретном случае:
Когда пакет с именем nm-sysvinit должен быть заменён пакетом nm-group.
Зависимостей у nm-sysvinit/nm-group не будет, но polkit-sysvinit будет требовать его.
Это необходимо для гладкой миграции со сломанной авторизации на работающую.
« Последнее редактирование: 28.02.2019 16:06:35 от Speccyfighter »