Bug 44379 - Нет совместимости с installer-feature-samba-usershares
Summary: Нет совместимости с installer-feature-samba-usershares
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: samba-usershares (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Evgeny Sinelnikov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-11-21 14:03 MSK by Sergey V Turchin
Modified: 2022-12-27 15:00 MSK (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey V Turchin 2022-11-21 14:03:04 MSK
https://bugzilla.altlinux.org/show_bug.cgi?id=44144#c8
Предлагаю свести к минимуму разнобой с пакетом installer-feature-samba-usershares, т.к. он давно используется в дистрибутивах.
Comment 1 Sergey V Turchin 2022-11-29 14:24:51 MSK
Ку-ку!
Comment 2 Repository Robot 2022-11-30 01:08:01 MSK
samba-4.16.7-alt2 -> sisyphus:

 Tue Nov 29 2022 Evgeny Sinelnikov <sin@altlinux> 4.16.7-alt2
 - Add role-usershares control allow or disallow for group users using of
   samba usershares as privilege.
 - Add compatibility support for sambashare group as common privilege assigned
   to usershares group (Closes: #44379).
 Tue Nov 22 2022 Evgeny Sinelnikov <sin@altlinux> 4.16.7-alt1
 - Update to maintenance release of Samba 4.16 (Samba#15203)
 - Security fixes:
   + CVE-2022-42898: Samba's Kerberos libraries and AD DC failed to guard against
                     integer overflows when parsing a PAC on a 32-bit system, which
                     allowed an attacker with a forged PAC to corrupt the heap.
                     https://www.samba.org/samba/security/CVE-2022-42898.html
     Workaround and mitigations:
     * No workaround on 32-bit systems as an AD DC
     * file servers are only impacted if in a non-AD domain
     * 64-bit systems are not exploitable
Comment 3 Sergey V Turchin 2022-11-30 10:58:47 MSK
Спасибо!
Comment 4 Mikhail Efremov 2022-11-30 18:49:55 MSK
Вот только это не работает, если пользователя нет в группе users. А в SL он туда не включается, там за основу брался список default_groups из alterator-users, в котором users нет. В alterator-users в users должен добавлять вот этот коммит:
https://git.altlinux.org/gears/a/alterator-users.git?p=alterator-users.git;a=commitdiff;h=edcb7b3c058b0a151252280c7bb812087e5c7731
но он, к счастью, не работает (иначе ломалось бы назначение произвольного списка групп по умолчанию для пользователя в дистрибутиве, на что рассчитывают скрипты в installer-distro-*).
А не работает коммит из-за этого:
https://bugzilla.altlinux.org/44505
Comment 5 Mikhail Efremov 2022-12-01 09:50:00 MSK
Предлагаю делать наоборот: при наличии группы sambashare добавлять в нее группу usershare.
Comment 6 Repository Robot 2022-12-07 19:35:20 MSK
samba-4.16.7-alt2 -> p10:

 Tue Nov 29 2022 Evgeny Sinelnikov <sin@altlinux> 4.16.7-alt2
 - Add role-usershares control allow or disallow for group users using of
   samba usershares as privilege.
 - Add compatibility support for sambashare group as common privilege assigned
   to usershares group (Closes: #44379).
 Tue Nov 22 2022 Evgeny Sinelnikov <sin@altlinux> 4.16.7-alt1
 - Update to maintenance release of Samba 4.16 (Samba#15203)
 - Security fixes:
   + CVE-2022-42898: Samba's Kerberos libraries and AD DC failed to guard against
                     integer overflows when parsing a PAC on a 32-bit system, which
                     allowed an attacker with a forged PAC to corrupt the heap.
                     https://www.samba.org/samba/security/CVE-2022-42898.html
     Workaround and mitigations:
     * No workaround on 32-bit systems as an AD DC
     * file servers are only impacted if in a non-AD domain
     * 64-bit systems are not exploitable
Comment 7 Mikhail Efremov 2022-12-07 21:44:02 MSK
Таки нет, не fixed.
Comment 8 Evgeny Sinelnikov 2022-12-08 09:11:05 MSK
Вот такой control:

$ sudo control role-sambashare
disabled

$ sudo control role-sambashare help
enabled: Role group "sambashare" given privilege group "usershares"
disabled: Privilege group "sambashare" assigned to role group "usershares"
default: Group "sambashare" not used as role or privilege

$ cat /etc/role.d/samba-usershares.role
usershares: sambashare
users: usershares

$ sudo control role-sambashare enabled

$ cat /etc/role.d/samba-usershares.role
sambashare: usershares
users: usershares

совместно с вот таким триггером:

# Enable sambashare group as role with usershares priviledge for compatility
# during upgrade from previous manual managed installations.
%triggerin -n %name-usershares -- %name < 4.16.7-alt1
control role-sambashare enabled

должны решить проблему при обновлении:

#311076 BUILDING #2 [locked] [test-only] p10 samba.git=4.16.7-alt4
#311075 BUILDING #2 [locked] [test-only] sisyphus samba.git=4.16.7-alt4
Comment 9 Mikhail Efremov 2022-12-08 11:06:03 MSK
(In reply to Evgeny Sinelnikov from comment #8)
> совместно с вот таким триггером:
> 
> # Enable sambashare group as role with usershares priviledge for compatility
> # during upgrade from previous manual managed installations.
> %triggerin -n %name-usershares -- %name < 4.16.7-alt1
> control role-sambashare enabled
> 
> должны решить проблему при обновлении:

Но этот триггер будет работать только для тех, кто уже поставил пакет samba-usershares и поимел проблему. Установка же этого пакета все также будет ее создавать, т.к. control role-sambashare будет disabled я так пониимаю.
Вообще же это все жуткий оверхед, нафига такие навороты с аж целым control?
Группы sambashare больше никогда не будет, я переделаю installer-feature-samba-usershares, это только для уже существующих установок.
Можно же просто в %post написать что-то типа

if getent group sambashare >/dev/null 2>&1 && [ ! -f /etc/role.d/sambashare.role ]; then
    echo "sambashare: usershares" >/etc/role.d/sambashare.role
fi

И все, не надо никакого control, он совершенно бессмысленен.
Comment 10 Sergey V Turchin 2022-12-08 11:24:21 MSK
(In reply to Evgeny Sinelnikov from comment #8)
> enabled: Role group "sambashare" given privilege group "usershares"
> disabled: Privilege group "sambashare" assigned to role group "usershares"
С точки зрения пользователя:
С первого взгляда кажется, что это одно и то же.
С второго кажется, что ничего не понятно.
Полагаю, надо как-то ближе к цели описать, а то похоже на перевод в bash на английский.
Например:
enabled: Allow <подставить нужное>
disabled: Disallow <подставить нужное>
Comment 11 Sergey V Turchin 2022-12-08 11:26:30 MSK
(In reply to Mikhail Efremov from comment #9)
> Можно же просто в %post написать
Для изменения настройки переустанавливать пакет?
Comment 12 Evgeny Sinelnikov 2022-12-08 11:27:26 MSK
Да, надо переделать. Действительно, вариант:
- обновился;
- поставил samba-usershares после обновления;
этот триггер не обработает.
Comment 13 Sergey V Turchin 2022-12-08 11:30:47 MSK
Только, control убирать не хотелось бы. Умолчания в дистрибутивах могут не совпадать с локальными требованиями. После установки у кого-то надо включить, а у кого-то выключить. Это может быть даже в одной комнате.
Comment 14 Mikhail Efremov 2022-12-08 11:54:21 MSK
(In reply to Sergey V Turchin from comment #13)
> Только, control убирать не хотелось бы. Умолчания в дистрибутивах могут не
> совпадать с локальными требованиями. После установки у кого-то надо
> включить, а у кого-то выключить. Это может быть даже в одной комнате.

Это все нужно только для решения проблемы на системах, где ранее отработала installer-feature-samba-usershares при установки туда пакета samba-usershares (причем если его туда не ставить, то и проблемы нет). И все. Группы sambashare в новых дистрибутивах больше не будет, будет просто использоваться samba-usershares, про sambashare там ничего знать не нужно.

(In reply to Sergey V Turchin from comment #11)
> (In reply to Mikhail Efremov from comment #9)
> > Можно же просто в %post написать
> Для изменения настройки переустанавливать пакет?

Настройки чего? Там ничего не надо настраивать. Надо просто обеспечить, чтобы usershares не сломались у пользователю, входящего в группу sambashare, но не входящего в группу users.
Comment 15 Sergey V Turchin 2022-12-08 12:15:35 MSK
(In reply to Mikhail Efremov from comment #9)
> И все, не надо никакого control, он совершенно бессмысленен.
Область видимости утверждения не была указана. ;-)
Comment 16 Evgeny Sinelnikov 2022-12-09 11:34:23 MSK
(Ответ для Mikhail Efremov на комментарий #5)
> Предлагаю делать наоборот: при наличии группы sambashare добавлять в нее
> группу usershare.

Это вариант, в итоге, выглядит самым разумным. Оставил control, установил предложенный вариант по умолчанию.

#311076 BUILDING #3 [locked] [test-only] p10 samba.git=4.16.7-alt4
#311075 BUILDING #3 [locked] [test-only] sisyphus samba.git=4.16.7-alt4

Текст поправил:
$ sudo control role-sambashare help
enabled: Allow users in group "sambashare" to use samba usershares
disabled: Assign group "sambashare" as privilege to groups "usershares" and "users"
default: Privilege group "sambashare" assigned to users explicitly
Comment 17 Sergey V Turchin 2022-12-09 12:14:39 MSK
(In reply to Evgeny Sinelnikov from comment #16)
> enabled: Allow users in group "sambashare" to use samba usershares
Так уже приятно выглядит.

> disabled: Assign group "sambashare" as privilege to groups "usershares" and
> "users"
Тут опять непонятно, что именно "disabled"? Опция же называется "disabled", а не "changesomething".

> default: Privilege group "sambashare" assigned to users explicitly
Из описания не понятно, пользователю с этого что?
Comment 18 Repository Robot 2022-12-12 21:15:19 MSK
samba-4.16.7-alt5 -> sisyphus:

 Mon Dec 12 2022 Evgeny Sinelnikov <sin@altlinux> 4.16.7-alt5
 - Update text of summary for role-usershares and smb-conf-usershares.
 - Update default usershare prefix allow and deny lists:
   + usershare prefix deny list = /etc /dev /sys /proc
   + usershare prefix allow list = /home /srv /mnt /media /var
 - Add new controls for samba-usershares:
   + smb-conf-usershare-allow-list
   + smb-conf-usershare-deny-list
   + smb-conf-usershare-owner-only
   + smb-conf-usershare-allow-guests
 Thu Dec 08 2022 Evgeny Sinelnikov <sin@altlinux> 4.16.7-alt4
 - Add role-sambashare control for compatibility during upgrade from previous
   manual managed settings of usershares.
 - Trigger sambashare as role with privilege usershares (Closes: #44379).
 Sat Dec 03 2022 Evgeny Sinelnikov <sin@altlinux> 4.16.7-alt3
 - Avoid cycle dependencies on common service files.
 - Fix cycle dependencies on libRPC and libREG samba4 libraries.
Comment 19 Mikhail Efremov 2022-12-13 11:46:28 MSK
(In reply to Evgeny Sinelnikov from comment #16)
> Текст поправил:
> $ sudo control role-sambashare help

Мне заранее жаль пользователей, пытающихся понять что это за control и зачем он нужен.
Comment 20 AEN 2022-12-13 11:55:16 MSK
(Ответ для Mikhail Efremov на комментарий #19)
> (In reply to Evgeny Sinelnikov from comment #16)
> > Текст поправил:
> > $ sudo control role-sambashare help
> 
> Мне заранее жаль пользователей, пытающихся понять что это за control и зачем
> он нужен.

Увы, да.
Comment 21 Sergey V Turchin 2022-12-13 11:57:15 MSK
(In reply to Mikhail Efremov from comment #19)
> Мне заранее жаль пользователей, пытающихся понять что это за control и зачем
> он нужен.
+1. Пойду повешу что-нибудь.
Comment 22 Evgeny Sinelnikov 2022-12-13 14:20:48 MSK
(Ответ для AEN на комментарий #20)
> (Ответ для Mikhail Efremov на комментарий #19)
> > (In reply to Evgeny Sinelnikov from comment #16)
> > > Текст поправил:
> > > $ sudo control role-sambashare help
> > 
> > Мне заранее жаль пользователей, пытающихся понять что это за control и зачем
> > он нужен.
> 
> Увы, да.

А чем вас этот вариант не устраивает?

enabled: Allow users in group "sambashare" to use samba usershares
default: Allow users in group "sambashare" to use samba usershares if they are in the "users" group
disabled: Disallow users in group "sambashare" to use samba usershares

По моему, всё как просил zerg@ сделано.

Ну, и да - две проблемы:
- ужасный английский;
- нужно уложить текст в минимальный набор слов.
Comment 23 Sergey V Turchin 2022-12-13 14:40:44 MSK
(In reply to Evgeny Sinelnikov from comment #22)
> Ну, и да - две проблемы:
> - ужасный английский;
> - нужно уложить текст в минимальный набор слов.
Если надо, есть, кто переведёт в нужную сторону.
Comment 24 Sergey V Turchin 2022-12-13 14:45:37 MSK
(In reply to Evgeny Sinelnikov from comment #22)
> По моему, всё как просил zerg@ сделано.
Только не в тех местах, где напоминает
enabled: Allow disable false
disabled: Disallow enable true
Comment 25 Sergey V Turchin 2022-12-27 14:57:25 MSK
Смешанное использование в одном контексте "shareS" и "share" сбивает с толку.

P.S.
Не хотелось бы иметь необходимость пользоваться подобными настройками.
Comment 26 Sergey V Turchin 2022-12-27 15:00:58 MSK
И просьба иметь ввиду, что до включения в дистрибутивы обновлённой функциональности осталось совсем немного. Это я к тому, что без специального уведомления релиз-менеджеров менять потом не стоит, чтобы незаметно не сломать.