* [devel] I: brp-verify-unit: "... assumes overflowugid credentials"
@ 2024-02-10 11:37 Arseny Maslennikov
2024-02-10 14:06 ` Anton Farygin
2024-02-18 13:35 ` Vitaly Lipatov
0 siblings, 2 replies; 16+ messages in thread
From: Arseny Maslennikov @ 2024-02-10 11:37 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 3178 bytes --]
Hi!
В опубликованный сегодня Sisyphus вошёл новый rpm-build:
> rpm-build - Scripts and executable programs used to build packages
> * Thu Jan 11 2024 Arseny Maslennikov <arseny@altlinux> 4.0.4.195-alt1
> - debuginfo: Changed compression format (--lzma2=dict=2MiB ->
> --check=crc32 --lzma2=dict=1MiB) of xz-compressed modules for compatibility
> with kmod >= 31 (thx asheplyakov@).
> - Introduced brp-verify-unit to check sanity of systemd units included
> in built packages.
Новый brp-модуль проверяет юниты systemd на вшивость. Пока он содержит
две проверки:
* <...>
* файл с systemd-юнитом, предусматривающим порождение процесса, не
должен запускать что-либо под nobody.
В результате сегодняшней тестовой пересборки обнаружилось[1] 5 пакетов,
содержащих systemd-юниты, предписывающие запускать что-либо под nobody.
[1] https://lore.altlinux.org/sisyphus-cybertalk/Zcb1ezIHJkgVff21@beehive.mskdc.altlinux.org/T/#u
Пакеты, перечисленные ниже, нужно исправить, убрав из директив User= и
Group= упоминания uid и gid 65534 и имени nobody.
Лучше всего завести им отдельного пользователя (и, в случае
mariadb-server-galera, группу). systemd поддерживает директиву
DynamicUser=, но я не видел её применения на практике в классических
дистрибутивах, кроме, может быть, юнитов к программам из состава проекта
systemd.
Под каждой цитатой из лога пересборки указан acl на пакет.
bozohttpd-20220517-alt1
044-verify-unit.brp: bad permissions on "/lib/systemd/system/bozohttpd@.service":
-rwxr-xr-x
044-verify-unit.brp: ERROR: "/lib/systemd/system/bozohttpd@.service" assumes overflowugid
credentials
bozohttpd george @everybody
gnunet-0.11.5-alt2
Verifying systemd units in /usr/src/tmp/gnunet-buildroot
044-verify-unit.brp: ERROR: "/lib/systemd/system/gnunetd.service" assumes overflowugid
credentials
gnunet lav viy @everybody
lizardfs-3.13.0-alt0.rc4.1
Verifying systemd units in /usr/src/tmp/lizardfs-buildroot
044-verify-unit.brp: ERROR: "/lib/systemd/system/lizardfs-cgiserv.service" assumes
overflowugid credentials
lizardfs andy @everybody
mariadb-10.11.6-alt1
Verifying systemd units in /usr/src/tmp/mariadb-buildroot
044-verify-unit.brp: ERROR: "/lib/systemd/system/mariadbcheck@.service" assumes
overflowugid credentials
mariadb shaba @everybody
xfsprogs-6.3.0-alt1
Verifying systemd units in /usr/src/tmp/xfsprogs-buildroot
044-verify-unit.brp: ERROR: "/lib/systemd/system/xfs_scrub@.service" assumes overflowugid
credentials
xfsprogs rider mike @qa
См. также: https://altlinux.org/NobodySubjectPolicy
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [devel] I: brp-verify-unit: "... assumes overflowugid credentials" 2024-02-10 11:37 [devel] I: brp-verify-unit: "... assumes overflowugid credentials" Arseny Maslennikov @ 2024-02-10 14:06 ` Anton Farygin 2024-02-10 15:23 ` Arseny Maslennikov 2024-02-18 13:35 ` Vitaly Lipatov 1 sibling, 1 reply; 16+ messages in thread From: Anton Farygin @ 2024-02-10 14:06 UTC (permalink / raw) To: devel On 10.02.2024 14:37, Arseny Maslennikov wrote: > xfsprogs-6.3.0-alt1 > Verifying systemd units in /usr/src/tmp/xfsprogs-buildroot > 044-verify-unit.brp: ERROR:"/lib/systemd/system/xfs_scrub@.service" assumes overflowugid > credentials > xfsprogs rider mike @qa Что-то я не пойму, какое решение предлагается в данном случае и чем так плох nobody для той операции, которую выполняет данный unit ? nobody выбран апстримом. Запуск данного юнита под nobody - общепринятая практика во всех дистрибутивах Linux, исключения мне не известны. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [devel] I: brp-verify-unit: "... assumes overflowugid credentials" 2024-02-10 14:06 ` Anton Farygin @ 2024-02-10 15:23 ` Arseny Maslennikov 2024-02-11 22:12 ` Dmitry V. Levin 2024-02-12 5:44 ` Anton Farygin 0 siblings, 2 replies; 16+ messages in thread From: Arseny Maslennikov @ 2024-02-10 15:23 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 3082 bytes --] On Sat, Feb 10, 2024 at 05:06:13PM +0300, Anton Farygin wrote: > On 10.02.2024 14:37, Arseny Maslennikov wrote: > > xfsprogs-6.3.0-alt1 > > Verifying systemd units in /usr/src/tmp/xfsprogs-buildroot > > 044-verify-unit.brp: ERROR:"/lib/systemd/system/xfs_scrub@.service" assumes overflowugid > > credentials > > xfsprogs rider mike @qa > > чем так плох nobody для той операции, которую выполняет данный unit ? nobody у нас скоро превратится в overflowuid, под которым ничего не должно работать. Более того, никто не будет гарантировать на каждой инсталляции, что под этим nobody или _nobody99 работает только xfs_scrub. > nobody выбран апстримом. Это тот ныне нечастый случай, где тем хуже для апстрима. Более того, судя по коммиту 824b5807fb1e1a0e156b183a591f23b096c8868f, в котором юнит появился и после которого фундаментально менялся только один раз (PrivateTmp= выключили), апстрим об этом особо не думал, ибо никто ему об этом соображении не рассказал. > Запуск данного юнита под nobody - общепринятая практика во всех > дистрибутивах Linux, исключения мне не известны. Как я понимаю, Альт его сообщество любит в первую очередь за непопулярные технические решения. А здесь как раз повод принять такое решение, в котором есть смысл! :D > Что-то я не пойму, какое решение предлагается в данном случае Лучше всего завести для него отдельного пользователя (или, может, для всех xfsprogs). Если это по какой-то причине невозможно, есть другие варианты: * использовать _nobody99, которого мы добавим в задании 330460; (systemd позволяет даже число в качестве User= указать :)) * если учесть, что много что в юните закрыли, какого-нибудь daemon из головы /etc/passwd; * повторюсь: лучше всего для таких случаев (программа без хранилища) подходит DynamicUser=yes, но на практике я его не видел, и в этом случае автоматически зафиксируется PrivateTmp=yes, т. е. поскрабать таким юнитом ФС, примонтированную под /tmp, не получится. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [devel] I: brp-verify-unit: "... assumes overflowugid credentials" 2024-02-10 15:23 ` Arseny Maslennikov @ 2024-02-11 22:12 ` Dmitry V. Levin 2024-02-12 5:58 ` Anton Farygin 2024-02-12 5:44 ` Anton Farygin 1 sibling, 1 reply; 16+ messages in thread From: Dmitry V. Levin @ 2024-02-11 22:12 UTC (permalink / raw) To: devel On Sat, Feb 10, 2024 at 06:23:02PM +0300, Arseny Maslennikov wrote: > On Sat, Feb 10, 2024 at 05:06:13PM +0300, Anton Farygin wrote: > > On 10.02.2024 14:37, Arseny Maslennikov wrote: > > > xfsprogs-6.3.0-alt1 > > > Verifying systemd units in /usr/src/tmp/xfsprogs-buildroot > > > 044-verify-unit.brp: ERROR:"/lib/systemd/system/xfs_scrub@.service" assumes overflowugid > > > credentials > > > xfsprogs rider mike @qa > > > > чем так плох nobody для той операции, которую выполняет данный unit ? > > nobody у нас скоро превратится в overflowuid, под которым ничего не > должно работать. [...] > > Запуск данного юнита под nobody - общепринятая практика во всех > > дистрибутивах Linux, исключения мне не известны. > > Как я понимаю, Альт его сообщество любит в первую очередь за > непопулярные технические решения. А здесь как раз повод принять такое > решение, в котором есть смысл! :D Кто-нибудь может мне рассказать, почему ядро до сих пор ещё разрешает setuid(overflowuid)? Это же по сути отменяет саму идею, заложенную в overflowuid. -- ldv ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [devel] I: brp-verify-unit: "... assumes overflowugid credentials" 2024-02-11 22:12 ` Dmitry V. Levin @ 2024-02-12 5:58 ` Anton Farygin 2024-02-12 10:34 ` Dmitry V. Levin 0 siblings, 1 reply; 16+ messages in thread From: Anton Farygin @ 2024-02-12 5:58 UTC (permalink / raw) To: devel On 12.02.2024 01:12, Dmitry V. Levin wrote: > Кто-нибудь может мне рассказать, почему ядро до сих пор ещё разрешает > setuid(overflowuid)? Это же по сути отменяет саму идею, заложенную > в overflowuid. > > Сейчас при входе в систему доменным пользователем UID получается 32-х битный. overflow оно только на старых системах, где UID/GID 16-бит. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [devel] I: brp-verify-unit: "... assumes overflowugid credentials" 2024-02-12 5:58 ` Anton Farygin @ 2024-02-12 10:34 ` Dmitry V. Levin 2024-02-12 10:50 ` Anton Farygin 0 siblings, 1 reply; 16+ messages in thread From: Dmitry V. Levin @ 2024-02-12 10:34 UTC (permalink / raw) To: devel On Mon, Feb 12, 2024 at 08:58:30AM +0300, Anton Farygin wrote: > On 12.02.2024 01:12, Dmitry V. Levin wrote: > > Кто-нибудь может мне рассказать, почему ядро до сих пор ещё разрешает > > setuid(overflowuid)? Это же по сути отменяет саму идею, заложенную > > в overflowuid. > > > Сейчас при входе в систему доменным пользователем UID получается 32-х > битный. > > overflow оно только на старых системах, где UID/GID 16-бит. Всё обстоит несколько иначе. Не готов читать лекцию, желающие могут обратиться к первоисточнику самостоятельно: linux$ git grep overflowuid Documentation/admin-guide/sysctl/fs.rst:overflowgid & overflowuid Documentation/admin-guide/sysctl/kernel.rst:overflowgid & overflowuid Documentation/filesystems/idmappings.rst:third idmapping. The kernel will report unmapped ids as the overflowuid drivers/gpu/drm/drm_ioctl.c: client->uid = overflowuid; fs/sysctls.c: .procname = "overflowuid", fs/sysctls.c: .data = &fs_overflowuid, fs/udf/super.c: uopt.uid = make_kuid(current_user_ns(), overflowuid); include/linux/highuid.h:extern int overflowuid; include/linux/highuid.h:#define high2lowuid(uid) ((uid) & ~0xFFFF ? (old_uid_t)overflowuid : (old_uid_t)(uid)) include/linux/highuid.h:extern int fs_overflowuid; include/linux/highuid.h:#define fs_high2lowuid(uid) ((uid) & ~0xFFFF ? (uid16_t)fs_overflowuid : (uid16_t)(uid)) include/linux/uidgid.h: uid = overflowuid; include/uapi/linux/bpf.h: * time-wait or a request socket instead), **overflowuid** value include/uapi/linux/bpf.h: * is returned (note that **overflowuid** might also be the actual kernel/sys.c:int overflowuid = DEFAULT_OVERFLOWUID; kernel/sys.c:EXPORT_SYMBOL(overflowuid); kernel/sys.c:int fs_overflowuid = DEFAULT_FS_OVERFLOWUID; kernel/sys.c:EXPORT_SYMBOL(fs_overflowuid); kernel/sysctl.c: .procname = "overflowuid", kernel/sysctl.c: .data = &overflowuid, kernel/user_namespace.c: * If @kuid has no mapping in @targ overflowuid is returned. kernel/user_namespace.c: uid = overflowuid; net/core/filter.c: return overflowuid; -- ldv ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [devel] I: brp-verify-unit: "... assumes overflowugid credentials" 2024-02-12 10:34 ` Dmitry V. Levin @ 2024-02-12 10:50 ` Anton Farygin 2024-02-12 13:16 ` Arseny Maslennikov 0 siblings, 1 reply; 16+ messages in thread From: Anton Farygin @ 2024-02-12 10:50 UTC (permalink / raw) To: devel On 12.02.2024 13:34, Dmitry V. Levin wrote: > Всё обстоит несколько иначе. Ну да, но смысл от этого особо не меняется. sysctl этот, судя по документации, для каких-то старых файловых систем нужен: https://docs.kernel.org/admin-guide/sysctl/fs.html#overflowgid-overflowuid ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [devel] I: brp-verify-unit: "... assumes overflowugid credentials" 2024-02-12 10:50 ` Anton Farygin @ 2024-02-12 13:16 ` Arseny Maslennikov 0 siblings, 0 replies; 16+ messages in thread From: Arseny Maslennikov @ 2024-02-12 13:16 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 2058 bytes --] On Mon, Feb 12, 2024 at 01:50:27PM +0300, Anton Farygin wrote: > On 12.02.2024 13:34, Dmitry V. Levin wrote: > > Всё обстоит несколько иначе. > > Ну да, но смысл от этого особо не меняется. > > sysctl этот, судя по документации, для каких-то старых файловых систем > нужен: > > https://docs.kernel.org/admin-guide/sysctl/fs.html#overflowgid-overflowuid NFS с его логикой ремаппинга рута трудно назвать старой файловой системой. :) Более того, письмо Димы с цитатой git grep по ядру меня сподвигло узнать вот об этом: user_namespaces(7): Unmapped user and group IDs There are various places where an unmapped user ID (group ID) may be exposed to user space. For example, the first process in a new user namespace may call getuid(2) be‐ fore a user ID mapping has been defined for the namespace. In most such cases, an unmapped user ID is converted to the overflow user ID (group ID); the default value for the overflow user ID (group ID) is 65534. See the descriptions of /proc/sys/ker‐ nel/overflowuid and /proc/sys/kernel/overflowgid in proc(5). The cases where unmapped IDs are mapped in this fashion include system calls that re‐ turn user IDs (getuid(2), getgid(2), and similar), credentials passed over a UNIX do‐ main socket, credentials returned by stat(2), waitid(2), and the System V IPC "ctl" IPC_STAT operations, credentials exposed by /proc/pid/status and the files in /proc/sysvipc/*, credentials returned via the si_uid field in the siginfo_t received with a signal (see sigaction(2)), credentials written to the process accounting file (see acct(5)), and credentials returned with POSIX message queue notifications (see mq_notify(3)). [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [devel] I: brp-verify-unit: "... assumes overflowugid credentials" 2024-02-10 15:23 ` Arseny Maslennikov 2024-02-11 22:12 ` Dmitry V. Levin @ 2024-02-12 5:44 ` Anton Farygin 2024-02-12 7:45 ` [devel] I: brp-verify-unit: "... assumes overflowugid Alexey V. Vissarionov 2024-02-12 14:23 ` [devel] I: brp-verify-unit: "... assumes overflowugid credentials" Arseny Maslennikov 1 sibling, 2 replies; 16+ messages in thread From: Anton Farygin @ 2024-02-12 5:44 UTC (permalink / raw) To: devel On 10.02.2024 18:23, Arseny Maslennikov wrote: > On Sat, Feb 10, 2024 at 05:06:13PM +0300, Anton Farygin wrote: >> On 10.02.2024 14:37, Arseny Maslennikov wrote: >>> xfsprogs-6.3.0-alt1 >>> Verifying systemd units in /usr/src/tmp/xfsprogs-buildroot >>> 044-verify-unit.brp: ERROR:"/lib/systemd/system/xfs_scrub@.service" assumes overflowugid >>> credentials >>> xfsprogs rider mike @qa >> чем так плох nobody для той операции, которую выполняет данный unit ? > nobody у нас скоро превратится в overflowuid, под которым ничего не > должно работать. Почему-то при этом в других дистрибутивах работает. Или overflow uid сделаем только мы ? > > Более того, никто не будет гарантировать на каждой инсталляции, что под > этим nobody или _nobody99 работает только xfs_scrub. > >> nobody выбран апстримом. > Это тот ныне нечастый случай, где тем хуже для апстрима. > > Более того, судя по коммиту 824b5807fb1e1a0e156b183a591f23b096c8868f, в > котором юнит появился и после которого фундаментально менялся только > один раз (PrivateTmp= выключили), апстрим об этом особо не думал, ибо > никто ему об этом соображении не рассказал. А можете донести эту мысль до апстрима ? > >> Запуск данного юнита под nobody - общепринятая практика во всех >> дистрибутивах Linux, исключения мне не известны. > Как я понимаю, Альт его сообщество любит в первую очередь за > непопулярные технические решения. А здесь как раз повод принять такое > решение, в котором есть смысл! :D Мне непонятно какое именно техническое решение повод принять. > >> Что-то я не пойму, какое решение предлагается в данном случае > Лучше всего завести для него отдельного пользователя (или, может, для > всех xfsprogs). Возможно, но мне хотелось бы что бы заведение системного пользователя было осмысленно. Возможно нам нужен пользователь не для xfs_scrub, а в целом для операций над FS ? > > Если это по какой-то причине невозможно, есть другие варианты: > * использовать _nobody99, которого мы добавим в задании 330460; > (systemd позволяет даже число в качестве User= указать :)) Это же костыль. Зачем он нужен ? > * если учесть, что много что в юните закрыли, какого-нибудь daemon из > головы /etc/passwd; Неизвестно, кто захочет и как использовать данный UID. Да и демон - это не то, чем можно назвать xfs_scrub > * повторюсь: лучше всего для таких случаев (программа без хранилища) > подходит DynamicUser=yes, но на практике я его не видел, и в этом > случае автоматически зафиксируется PrivateTmp=yes, т. е. поскрабать > таким юнитом ФС, примонтированную под /tmp, не получится. Верно, тоже не решение. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [devel] I: brp-verify-unit: "... assumes overflowugid 2024-02-12 5:44 ` Anton Farygin @ 2024-02-12 7:45 ` Alexey V. Vissarionov 2024-02-12 7:52 ` Anton Farygin 2024-02-12 14:23 ` [devel] I: brp-verify-unit: "... assumes overflowugid credentials" Arseny Maslennikov 1 sibling, 1 reply; 16+ messages in thread From: Alexey V. Vissarionov @ 2024-02-12 7:45 UTC (permalink / raw) To: ALT Linux Team development discussions Good ${greeting_time}! On 2024-02-12 08:44:19 +0300, Anton Farygin wrote: >>> Что-то я не пойму, какое решение предлагается в данном случае >> Лучше всего завести для него отдельного пользователя (или, >> может, для всех xfsprogs). > Возможно, но мне хотелось бы что бы заведение системного > пользователя было осмысленно. > Возможно нам нужен пользователь не для xfs_scrub, а в целом > для операций над FS ? Да. Вот такой: disk:5:5:Block device manager:/var/empty:/bin/false -- Alexey V. Vissarionov gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [devel] I: brp-verify-unit: "... assumes overflowugid 2024-02-12 7:45 ` [devel] I: brp-verify-unit: "... assumes overflowugid Alexey V. Vissarionov @ 2024-02-12 7:52 ` Anton Farygin 2024-02-12 8:04 ` Alexey V. Vissarionov 0 siblings, 1 reply; 16+ messages in thread From: Anton Farygin @ 2024-02-12 7:52 UTC (permalink / raw) To: devel On 12.02.2024 10:45, Alexey V. Vissarionov wrote: > Good ${greeting_time}! > > On 2024-02-12 08:44:19 +0300, Anton Farygin wrote: > > >>> Что-то я не пойму, какое решение предлагается в данном случае > >> Лучше всего завести для него отдельного пользователя (или, > >> может, для всех xfsprogs). > > Возможно, но мне хотелось бы что бы заведение системного > > пользователя было осмысленно. > > Возможно нам нужен пользователь не для xfs_scrub, а в целом > > для операций над FS ? > > Да. Вот такой: > > disk:5:5:Block device manager:/var/empty:/bin/false > > disk имеет rw привелегии на устройства, это перебор. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [devel] I: brp-verify-unit: "... assumes overflowugid 2024-02-12 7:52 ` Anton Farygin @ 2024-02-12 8:04 ` Alexey V. Vissarionov 0 siblings, 0 replies; 16+ messages in thread From: Alexey V. Vissarionov @ 2024-02-12 8:04 UTC (permalink / raw) To: ALT Linux Team development discussions Good ${greeting_time}! On 2024-02-12 10:52:36 +0300, Anton Farygin wrote: >>>> Лучше всего завести для него отдельного пользователя (или, >>>> может, для всех xfsprogs). >>> Возможно, но мне хотелось бы что бы заведение системного >>> пользователя было осмысленно. >>> Возможно нам нужен пользователь не для xfs_scrub, а в целом >>> для операций над FS ? >> Да. Вот такой: >> disk:5:5:Block device manager:/var/empty:/bin/false > disk имеет rw привелегии Все же "привИлегии". Или, еще лучше, по-русски: "права". > на устройства, это перебор. Эт хде? В системах с udev? Значит, там и надо исправлять. В системах без этого руткита ядро с CONFIG_DEVTMPFS_MOUNT создает блочные устройства 0600: % ll /dev/sd* brw------- 1 root root 8, 0 сен 6 08:33 /dev/sda brw------- 1 root root 8, 1 сен 6 08:33 /dev/sda1 brw------- 1 root root 8, 2 сен 6 08:33 /dev/sda2 brw------- 1 root root 8, 16 сен 6 08:33 /dev/sdb brw------- 1 root root 8, 17 сен 6 08:33 /dev/sdb1 brw------- 1 root root 8, 18 сен 6 08:33 /dev/sdb2 brw------- 1 root root 8, 32 сен 6 08:33 /dev/sdc brw------- 1 root root 8, 33 сен 6 08:33 /dev/sdc1 brw------- 1 root root 8, 34 сен 6 08:33 /dev/sdc2 brw------- 1 root root 8, 48 сен 6 08:33 /dev/sdd brw------- 1 root root 8, 49 сен 6 08:33 /dev/sdd1 brw------- 1 root root 8, 50 сен 6 08:33 /dev/sdd2 brw------- 1 root root 8, 64 сен 6 08:33 /dev/sde brw------- 1 root root 8, 65 сен 6 08:33 /dev/sde1 brw------- 1 root root 8, 66 сен 6 08:33 /dev/sde2 brw------- 1 root root 8, 80 сен 6 08:33 /dev/sdf brw------- 1 root root 8, 81 сен 6 08:33 /dev/sdf1 brw------- 1 root root 8, 82 сен 6 08:33 /dev/sdf2 brw------- 1 root root 8, 96 сен 6 08:33 /dev/sdg brw------- 1 root root 8, 97 сен 6 08:33 /dev/sdg1 brw------- 1 root root 8, 98 сен 6 08:33 /dev/sdg2 Как всегда, разработчики ядра оказались умнее разработчиков усерспейсных костылей. -- Alexey V. Vissarionov gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [devel] I: brp-verify-unit: "... assumes overflowugid credentials" 2024-02-12 5:44 ` Anton Farygin 2024-02-12 7:45 ` [devel] I: brp-verify-unit: "... assumes overflowugid Alexey V. Vissarionov @ 2024-02-12 14:23 ` Arseny Maslennikov 2024-02-12 14:33 ` Arseny Maslennikov 1 sibling, 1 reply; 16+ messages in thread From: Arseny Maslennikov @ 2024-02-12 14:23 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 4356 bytes --] On Mon, Feb 12, 2024 at 08:44:19AM +0300, Anton Farygin wrote: > On 10.02.2024 18:23, Arseny Maslennikov wrote: > > On Sat, Feb 10, 2024 at 05:06:13PM +0300, Anton Farygin wrote: > > > On 10.02.2024 14:37, Arseny Maslennikov wrote: > > > > xfsprogs-6.3.0-alt1 > > > > Verifying systemd units in /usr/src/tmp/xfsprogs-buildroot > > > > 044-verify-unit.brp: ERROR:"/lib/systemd/system/xfs_scrub@.service" assumes overflowugid > > > > credentials > > > > xfsprogs rider mike @qa > > > чем так плох nobody для той операции, которую выполняет данный unit ? > > nobody у нас скоро превратится в overflowuid, под которым ничего не > > должно работать. > Почему-то при этом в других дистрибутивах работает. Это либо от халатности, либо по инициативе начинающих, наивных или по-доброму ленивых админов "сам-себе-мейнтейнеров". Так-то и файл, на который сказали chmod 777, точно так же доступен на чтение, как и файл с режимом 644 или 600. "Ведь и так работает!" > Или overflow uid сделаем > только мы ? Дебиан уже сделал: # grep D /etc/os-release PRETTY_NAME="Debian GNU/Linux trixie/sid" NAME="Debian GNU/Linux" VERSION_CODENAME=trixie ID=debian # getent passwd nobody nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin # echo $(</proc/sys/fs/overflowuid):$(</proc/sys/fs/overflowgid) 65534:65534 Кто пользуется другими, может глянуть на других. > > > Что-то я не пойму, какое решение предлагается в данном случае > > Лучше всего завести для него отдельного пользователя (или, может, для > > всех xfsprogs). > > Возможно, но мне хотелось бы что бы заведение системного пользователя было > осмысленно. Смысл — в проведении границы между привилегиями этого сервиса и других, а также границы с overflowuid. > Возможно нам нужен пользователь не для xfs_scrub, а в целом для операций над > FS ? Это уж точно гораздо лучше nobody. Но по-прежнему непонятно, чем этот случай заслуживает исключения. А точно ли таких скрабберов, нынче сбрасывающих uid до чего попало, но сохраняющих за собой обширный набор капов (AmbientCapabilities=), больше одного? > > Если это по какой-то причине невозможно, есть другие варианты: > > * если учесть, что много что в юните закрыли, какого-нибудь daemon из > > головы /etc/passwd; > Неизвестно, кто захочет и как использовать данный UID. Мне тоже, но я подозреваю, что вообще никто, кроме, вероятно, дебиановского варианта at(1), за которым помню такой артефакт. Я и пишу: "если завести отдельного по какой-то причине невозможно". Предложения взять daemon, disk, или резервировать новый uid для ухода за ФС — это всё уже попытки изобрести компромисс. > Да и демон - это не то, чем можно назвать xfs_scrub Верно, но запускают эту программу именно в такой роли. Системдоиды говорят "oneshot-сервис"; он безголовый, т. е. без {WAYLAND_,}DISPLAY= и без контрольного терминала, и запускается сам по событию. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [devel] I: brp-verify-unit: "... assumes overflowugid credentials" 2024-02-12 14:23 ` [devel] I: brp-verify-unit: "... assumes overflowugid credentials" Arseny Maslennikov @ 2024-02-12 14:33 ` Arseny Maslennikov 2024-02-12 14:48 ` Anton Farygin 0 siblings, 1 reply; 16+ messages in thread From: Arseny Maslennikov @ 2024-02-12 14:33 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 3444 bytes --] On Mon, Feb 12, 2024 at 05:23:53PM +0300, Arseny Maslennikov wrote: > On Mon, Feb 12, 2024 at 08:44:19AM +0300, Anton Farygin wrote: > > Возможно, но мне хотелось бы что бы заведение системного пользователя было > > осмысленно. (в сторону) Чувствую, что надо это куда-то записать. Замечаю, к сожалению, что в некоторых умах сложился нездоровый взгляд на т. н. заведение системных пользователей: * кажется, будто это сложное, мучительное дело (руками — да); * кажется, будто ему нужно выделить и сопровождать какие-то ресурсы, вроде домашнего каталога, шелла, квот, gecos; будто от него будут порождаться какие-то сеансы с участием pam и logind; будто всё это — хрупкий стейт, захламляющий не только систему, но и голову администратора; * этот стейт потом сложно удалить — а вдруг в ФС остались данные с этими uid и gid? А на самом деле вопрос сводится к тому, чтобы называть вещи подходящими именами. Здесь речи о _заведении пользователей_ нет, потому что нету никаких пользователей и большинство соотв. типов ресурсов им не требуется. Если эту процедуру назвать "резервирование UID и GID", сразу весь ментальный морок спадает. "...С целью разделения привилегий". Этим системным "пользователям" и имя-то не нужно, их имя выступает лишь симлинком на выделенный по месту на машине численный ID, вносит дополнительный удобный уровень косвенности. Понятия "сеанс", "пароль/токен аутентификации", "домашний каталог", "начальный шелл" для них, понятное дело, тем более не имеют смысла. Институт sysusers вообще упрощает это дело чуть ли не до максимума: в пакет со службой достаточно упаковать файл-конфиг. Но пока что нам не судьба. Останется лишь соображение о возможности потери стейта от удаления записей о резервировании, но и эту проблему можно побороть, исключив доступ сервису на запись во все места, кроме белого списка, и сделать это решение общедистрибутивным. (Если бы в /etc/passwd можно было записать строчку навроде "deleted uid N", это была бы половина решения) [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [devel] I: brp-verify-unit: "... assumes overflowugid credentials" 2024-02-12 14:33 ` Arseny Maslennikov @ 2024-02-12 14:48 ` Anton Farygin 0 siblings, 0 replies; 16+ messages in thread From: Anton Farygin @ 2024-02-12 14:48 UTC (permalink / raw) To: devel On 12.02.2024 17:33, Arseny Maslennikov wrote: > Институт sysusers вообще упрощает это дело чуть ли не до максимума: в > пакет со службой достаточно упаковать файл-конфиг. Но пока что нам не > судьба. Вы просто не так часто переносите файлы, принадлежащие вот таким образом заведённому системному пользователю с одной машины на другую. Нужно резервирование UID, а не заведение системного пользователя. Это немного больше и важнее. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [devel] I: brp-verify-unit: "... assumes overflowugid credentials" 2024-02-10 11:37 [devel] I: brp-verify-unit: "... assumes overflowugid credentials" Arseny Maslennikov 2024-02-10 14:06 ` Anton Farygin @ 2024-02-18 13:35 ` Vitaly Lipatov 1 sibling, 0 replies; 16+ messages in thread From: Vitaly Lipatov @ 2024-02-18 13:35 UTC (permalink / raw) To: ALT Linux Team development discussions; +Cc: Arseny Maslennikov Arseny Maslennikov писал(а) 10.2.24 14:37: > Hi! > > В опубликованный сегодня Sisyphus вошёл новый rpm-build: >> rpm-build - Scripts and executable programs used to build packages >> * Thu Jan 11 2024 Arseny Maslennikov <arseny@altlinux> 4.0.4.195-alt1 >> - debuginfo: Changed compression format (--lzma2=dict=2MiB -> >> --check=crc32 --lzma2=dict=1MiB) of xz-compressed modules for >> compatibility >> with kmod >= 31 (thx asheplyakov@). >> - Introduced brp-verify-unit to check sanity of systemd units included >> in built packages. .. На всякий случай, не забыли ли # grep nobody /lib/sysusers.d/basic.conf # The nobody user/group for NFS file systems g nobody 65534 - - u nobody 65534:65534 "Kernel Overflow User" - -- С уважением, Виталий Липатов, ALT Linux Team ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2024-02-18 13:35 UTC | newest] Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2024-02-10 11:37 [devel] I: brp-verify-unit: "... assumes overflowugid credentials" Arseny Maslennikov 2024-02-10 14:06 ` Anton Farygin 2024-02-10 15:23 ` Arseny Maslennikov 2024-02-11 22:12 ` Dmitry V. Levin 2024-02-12 5:58 ` Anton Farygin 2024-02-12 10:34 ` Dmitry V. Levin 2024-02-12 10:50 ` Anton Farygin 2024-02-12 13:16 ` Arseny Maslennikov 2024-02-12 5:44 ` Anton Farygin 2024-02-12 7:45 ` [devel] I: brp-verify-unit: "... assumes overflowugid Alexey V. Vissarionov 2024-02-12 7:52 ` Anton Farygin 2024-02-12 8:04 ` Alexey V. Vissarionov 2024-02-12 14:23 ` [devel] I: brp-verify-unit: "... assumes overflowugid credentials" Arseny Maslennikov 2024-02-12 14:33 ` Arseny Maslennikov 2024-02-12 14:48 ` Anton Farygin 2024-02-18 13:35 ` Vitaly Lipatov
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git