Bug 34793 - Не работает setfacl в Live
Summary: Не работает setfacl в Live
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: make-initrd-propagator (show other bugs)
Version: unstable
Hardware: all Linux
: P3 major
Assignee: Anton V. Boyarshinov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on: 34231
Blocks: 33000 34757
  Show dependency tree
 
Reported: 2018-04-11 16:59 MSK by Антон Мидюков
Modified: 2018-09-06 13:33 MSK (History)
17 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Антон Мидюков 2018-04-11 16:59:09 MSK
В регулярках с ядром un-def (gnome3 и xfce) собираемых с прошлой недели в лайв-режиме не отрабатывает операция:
setfacl

Из-за этого на файлы журнала journald не устанавливаются расширенные списки прав. Что в свою очередь делает недоступным журнал пользователю altlinux.
Я пробовал собирать один и тот же образ с ядром un-def и std-def. Проблема именно при использовании ядра un-def.
Comment 1 Антон Мидюков 2018-04-24 17:32:09 MSK
Проблеме три недели уже.
Comment 2 Anton V. Boyarshinov 2018-04-24 17:39:11 MSK
я это видел, но сказать по этому поводу мне пока нечего :(
Comment 3 Anton V. Boyarshinov 2018-04-25 13:26:12 MSK
Это не может быть связано с https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=886329 ?
То есть сработает ли повторный setfacl?
Comment 4 Антон Мидюков 2018-04-25 18:55:40 MSK
(В ответ на комментарий №3)
> Это не может быть связано с
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=886329 ?
> То есть сработает ли повторный setfacl?

Сколько раз его не используй на один и тот же файл, получаешь:
Operation not supported

Проблема началась после:
2018-04-01 - Kernel Bot <kernelbot@altlinux.org> 1:4.14.32-alt1 - v4.14.32 (Fixes: CVE-2017-8824)
Comment 5 Vitaly Chikunov 2018-05-30 18:22:51 MSK
Как воспроизвести проблему командой setfacl?

    1# uname -r -m
    4.16.10-un-def-alt1 x86_64
    1# touch g
    1# setfacl -m m:- g
    1# getfacl g
    # file: g
    # owner: root
    # group: root
    user::rw-
    group::r--                      #effective:---
    mask::---
    other::r--
    1# getfattr -d -m. g
    # file: g
    system.posix_acl_access=0sAgAAAAEABgD/////BAAEAP////8QAAAA/////yAABAD/////

То есть на 4.16.10 проблемы нет?
Comment 6 Антон Мидюков 2018-06-02 05:55:26 MSK
Проблема только на live, то бишь на squashfs. Воспроизводится на регулярках gnome и xfce, у которых ядро un-def.
Comment 7 Антон Мидюков 2018-06-02 09:31:43 MSK
Ошибка также пришла и в стартеркиты p8 с ядром 4.14.45-un-def-alt0.M80P.1
Comment 8 Vitaly Chikunov 2018-06-02 16:06:34 MSK
squashfs отродясь не поддерживал posix acl.
Comment 9 Антон Мидюков 2018-06-02 16:38:30 MSK
(В ответ на комментарий №8)
> squashfs отродясь не поддерживал posix acl.

Хорошо, на самой squshfs не поддерживается. Но при загрузке live с ядром std-def операция setfacl работает, а при загрузке live с un-def не поддерживается. Это приводит к недоступности журнала systemd из-под пользователя на live с ядром un-def.
Comment 10 Michael Shigorin 2018-06-04 22:20:21 MSK
(В ответ на комментарий №8)
> squashfs отродясь не поддерживал posix acl.
aufs на squashfs+tmpfs там...
Comment 11 Vitaly Chikunov 2018-06-04 22:22:11 MSK
Надо монтировать aufs с -o acl.
Comment 12 Антон Мидюков 2018-07-11 12:39:50 MSK
С приходом ядра 4.14.54-std-def-alt1 в Сизиф, проблема касается всех регулярок.
Comment 13 Michael Shigorin 2018-07-11 13:19:16 MSK
(В ответ на комментарий №12)
> С приходом ядра 4.14.54-std-def-alt1 в Сизиф, проблема касается всех регулярок.
...кроме sysv-based.
Comment 14 AEN 2018-07-11 13:22:30 MSK
#11 не помогает? 
Попробуйте и напишите, пожалуйста.
Comment 15 Repository Robot 2018-07-11 19:53:47 MSK
make-initrd-propagator-0.33-alt2 -> sisyphus:

Wed Jul 11 2018 Anton Midyukov <antohami@altlinux> 0.33-alt2
- Fix ACL access for livecd (Closes: 34793)
Comment 16 Michael Shigorin 2018-07-12 14:24:53 MSK
2 vt: спасибо; более старые ядра такой опцией подавятся, правильно понимаю?

2 antohami: просьба проверить на p8 с локально подсунутой твоей сборкой m-i-p,
            нет ли в ней скрытой мины -- возможно, надо делать что-то вроде
mount -t aufs none $stage2 -o acl,dirs=$stage2.rw=rw:$stage2.ro=rr ||
  mount -t aufs none $stage2 -o dirs=$stage2.rw=rw:$stage2.ro=rr

Ну и поднимать следовало версию (поскольку менялся код проекта), а не релиз
(это если бы менялись только спек/патчи).
Comment 17 Vitaly Chikunov 2018-07-12 14:41:54 MSK
(В ответ на комментарий №16)
> более старые ядра такой опцией подавятся, правильно понимаю?

Не должны, в 4.0 она точно есть.
Comment 18 Антон Мидюков 2018-07-12 20:10:12 MSK
(В ответ на комментарий №16)
> 2 vt: спасибо; более старые ядра такой опцией подавятся, правильно понимаю?
> 
> 2 antohami: просьба проверить на p8 с локально подсунутой твоей сборкой m-i-p,
>             нет ли в ней скрытой мины -- возможно, надо делать что-то вроде
> mount -t aufs none $stage2 -o acl,dirs=$stage2.rw=rw:$stage2.ro=rr ||
>   mount -t aufs none $stage2 -o dirs=$stage2.rw=rw:$stage2.ro=rr
> 
> Ну и поднимать следовало версию (поскольку менялся код проекта), а не релиз
> (это если бы менялись только спек/патчи).

Проверил собираемость и работоспособность для apt-p8-lxde.iso (ядро 4.9) и altlinux-p7-lxde.iso (ядро 3.14). Проблем нет. Добавлял опцию acl в пакеты, которые в репозиториях p8 и p7, поднимая релиз. Завтра могу ещё p6 проверить (ядро 3.0), и попытаться собрать на p5 (ядро 2.32).
Comment 19 Антон Мидюков 2018-07-13 05:08:19 MSK
Проверил p6 (ядро 3.0) собрал livecd-icewm.iso. При загрузке ругается на плохую опцию. Ядро 3.0 точно не поддерживает опцию ACL. 3.14 поддерживает. Поддержка какой минимальной версии ядра нужна в Сизифе/p9 ?
Comment 20 Антон Мидюков 2018-07-13 05:08:56 MSK
(В ответ на комментарий №19)
> Проверил p6 (ядро 3.0) собрал livecd-icewm.iso. При загрузке ругается на плохую
> опцию. Ядро 3.0 точно не поддерживает опцию ACL. 3.14 поддерживает. Поддержка
> какой минимальной версии ядра нужна в Сизифе/p9 ?

опцию acl
Comment 21 Anton V. Boyarshinov 2018-07-13 12:50:46 MSK
(В ответ на комментарий №19)
> Проверил p6 (ядро 3.0) собрал livecd-icewm.iso. При загрузке ругается на плохую
> опцию. Ядро 3.0 точно не поддерживает опцию ACL. 3.14 поддерживает. Поддержка
> какой минимальной версии ядра нужна в Сизифе/p9 ?

В худшем случае должно работать на std-def.
В лучшем случае -- на самом старом ядре, которое есть в данном репозитории, но это не обязательно.
Comment 22 Антон Мидюков 2018-07-13 13:31:19 MSK
(В ответ на комментарий №21)
> (В ответ на комментарий №19)
> > Проверил p6 (ядро 3.0) собрал livecd-icewm.iso. При загрузке ругается на плохую
> > опцию. Ядро 3.0 точно не поддерживает опцию ACL. 3.14 поддерживает. Поддержка
> > какой минимальной версии ядра нужна в Сизифе/p9 ?
> 
> В худшем случае должно работать на std-def.
> В лучшем случае -- на самом старом ядре, которое есть в данном репозитории, но
> это не обязательно.

Старички только:
kernel-image-domU-ovz-el-2.6.32-alt162
kernel-image-ovz-el-2.6.32-alt162

Им поддержка propagator нужна?
Для других платформ (эльбрус, mips) ядра древнее 3.14 не используются?

Добавить workaround не проблема:
mount -t aufs none $stage2 -o acl,dirs=$stage2.rw=rw:$stage2.ro=rr ||
  mount -t aufs none $stage2 -o dirs=$stage2.rw=rw:$stage2.ro=rr

Проверял, работает.
Comment 23 Anton V. Boyarshinov 2018-07-13 16:03:10 MSK
> Старички только:
> kernel-image-domU-ovz-el-2.6.32-alt162
> kernel-image-ovz-el-2.6.32-alt162
Вряд ли на них будут делаться установщики. Кроме того, может оказаться, что в этих ядрах работает -o acl, так как это совсем не те версии, которыми кажутся.

> Для других платформ (эльбрус, mips) ядра древнее 3.14 не используются?
Насколько я знаю, нет.
Comment 24 AEN 2018-07-13 16:06:21 MSK
(В ответ на комментарий №23)
> > Старички только:
> > kernel-image-domU-ovz-el-2.6.32-alt162
> > kernel-image-ovz-el-2.6.32-alt162
> Вряд ли на них будут делаться установщики. Кроме того, может оказаться, что в
> этих ядрах работает -o acl, так как это совсем не те версии, которыми кажутся.
> 
> > Для других платформ (эльбрус, mips) ядра древнее 3.14 не используются?
> Насколько я знаю, нет.

Точно нет. Думаю, что на этом можно закрывать обсуждение. Спасибо !
Comment 25 Michael Shigorin 2018-09-03 15:53:46 MSK
Жаль, что тогда же не озадачились бэкпортом в p8, вылезло на альфе стартеркитов; сейчас он ждёт в http://webery.altlinux.org/task/212500, sotor@ в курсе.
Comment 26 Sergey V Turchin 2018-09-04 11:32:15 MSK
(В ответ на комментарий №25)
> http://webery.altlinux.org/task/212500
Там же перенос строки надо эскейпить после "||".
Comment 27 Антон Мидюков 2018-09-04 12:05:49 MSK
(В ответ на комментарий №26)
> (В ответ на комментарий №25)
> > http://webery.altlinux.org/task/212500
> Там же перенос строки надо эскейпить после "||".

Ага. Но тестировавший человек проблемы не обнаружил. Я исправил. Спасибо. Вчера тупо скопировал отсюда строчки, так как торопился...
Comment 28 Michael Shigorin 2018-09-05 18:58:37 MSK
(В ответ на комментарий №26)
> Там же перенос строки надо эскейпить после "||".
Нет; не пугай людей.

PS: уехало в p8.
Comment 29 Sergey V Turchin 2018-09-06 10:53:28 MSK
(В ответ на комментарий №28)
> > Там же перенос строки надо эскейпить после "||".
> Нет
Не "нет", а "уже нет". ;-)
Comment 30 Sergey V Turchin 2018-09-06 10:55:01 MSK
Я вообще для красоты подобние пишу в виде
something \
  || something
Comment 31 Michael Shigorin 2018-09-06 12:10:24 MSK
(В ответ на комментарий №29)
> > > Там же перенос строки надо эскейпить после "||".
> > Нет.
> Не "нет", а "уже нет". ;-)
Просто _нет_.  Ты хоть сам бы проверил, прежде чем народ смущать.
Тем более когда уже прямым текстом сказано ;-)

(В ответ на комментарий №30)
> Я вообще для красоты подобние пишу в виде
> something \
>   || something
Сам обычно пишу

a || b

или реже

a || \
  b

или порой по-легионовски

a ||
  b

А варианты вроде

a \
&& b \
|| c

последние годы стал сразу писать if-then-else (у чего есть ещё отличие в поведении по части кода возврата последней команды).

Но вкусовщина вкусовщиной, я бухтел против введения в заблуждение.
Comment 32 Sergey V Turchin 2018-09-06 13:33:09 MSK
(В ответ на комментарий №31)
> я бухтел против введения в заблуждение.
Дык, я начал с этого. ;-)