* [devel] NobodySubjectPolicy implementation
@ 2023-12-19 18:13 arseny
2024-01-08 9:29 ` Arseny Maslennikov
0 siblings, 1 reply; 4+ messages in thread
From: arseny @ 2023-12-19 18:13 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 2628 bytes --]
On Wed, Nov 15, 2023 at 04:00:56PM +0300, Arseny Maslennikov wrote:
> Hi!
> <...>
> === Предложение ===
>
> Вношу следующее предложение:
> - Сменить пользователю и группе nobody численный идентификатор с 99 на
> 65534. Для обозначения 99-го оставить другое имя, например, _nobody99;
> - Передать /var/nobody этому самому _nobody99;
Оказалось проще удалить этот каталог совсем; он не должен быть никому
нужен.
То, что получилось, можно наблюдать в задании:
https://git.altlinux.org/tasks/330460/
Есть пока и препятствия, о которых ниже.
> Для пакетов в Sisyphus:
> <...>
> - Рекомендовать мейнтейнерам не допускать, чтобы собираемые ими
> системные службы исполняли код под nobody;
> - Рекомендовать администраторам не запускать процессы под юзером и группой
> nobody.
За этим должен был следить brp-модуль при сборке пакета, который бы
запрещал класть в пакет systemd-юниты, указывающие nobody в User=,
Group=, SupplementaryGroups=. Но rpm-build перестаёт проходить проверки
из rpminstall-tests со следующей чудесной диагностикой[1]:
rpm --dbpath '/tmp/sh.Hh8cuteY/sh.DakRlnyW' --justdb -i RPMS/dummy/noarch/dummy-1-alt1.noarch.rpm
error: Couldn't create temporary file for posttrans filetriggers: Success
При этом создать под dbpath файлы для базы у него получается. Снаружи
fakeroot-окружения все эти временные каталоги имеют uid и gid rooter,
конечно.
[1] https://git.altlinux.org/tasks/336802/logs/events.1.1.log
> === Footprint ===
> <...>
> checkinstall-helper-sh-safely imz @everybody
Если в используемом выше /usr/sbin/sh-safely из этого пакета,
сбрасывающем привилегии до nobody, изменить это имя на _nobody99, то
симптом всё ещё воспроизводится, а если убрать "--chuid nobody:nobody",
то перестаёт.
Нужно разбираться.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [devel] NobodySubjectPolicy implementation
2023-12-19 18:13 [devel] NobodySubjectPolicy implementation arseny
@ 2024-01-08 9:29 ` Arseny Maslennikov
2024-01-08 9:52 ` [devel] [#330460] TESTED (try 16) Arseny Maslennikov
0 siblings, 1 reply; 4+ messages in thread
From: Arseny Maslennikov @ 2024-01-08 9:29 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 1514 bytes --]
On Tue, Dec 19, 2023 at 09:13:07PM +0300, arseny@altlinux.org wrote:
> Но rpm-build перестаёт проходить проверки
> из rpminstall-tests со следующей чудесной диагностикой[1]:
>
> rpm --dbpath '/tmp/sh.Hh8cuteY/sh.DakRlnyW' --justdb -i RPMS/dummy/noarch/dummy-1-alt1.noarch.rpm
> error: Couldn't create temporary file for posttrans filetriggers: Success
У пользователя, под которым запускалась команда выше, envvar HOME была
назначена в /root (логично для pre-скрипта в checkinstall-пакете). Поэтому:
- подхватывались определения, которые содержит файл $HOME/.rpmmacros в хешере:
%_topdir %homedir/RPM
%_tmppath %homedir/tmp
- "%homedir/tmp" раскрывалась в то, чего нет: в "/dev/null/tmp", потому
что RPM, раскрывая этот макрос, берёт значение из nss password
database, не проверяя, что там за объект, и всегда игнорируя своё
значение $HOME.
Решение — исправить rpminstall-tests так, чтобы в окружении, где
работает тест, $HOME точно был каталогом, доступным на запись, и не
подхватывались чужие .rpmmacros-файлы (уже в Sisyphus).
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [devel] [#330460] TESTED (try 16) ...
2024-01-08 9:29 ` Arseny Maslennikov
@ 2024-01-08 9:52 ` Arseny Maslennikov
2024-02-29 8:42 ` [devel] I: nobody-owned files in packages Arseny Maslennikov
0 siblings, 1 reply; 4+ messages in thread
From: Arseny Maslennikov @ 2024-01-08 9:52 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 3062 bytes --]
Соответственно, прошу посмотреть и одобрить*:
https://packages.altlinux.org/tasks/330460
#740 setup 2.2.19-alt1 -> 2.2.20-alt1
Tue Nov 07 2023 Arseny Maslennikov <arseny@altlinux> 2.2.20-alt1
- Install the default overflowuid defined by Linux (incl. our kernels) as the
nobody user and group. The user and group 99 are installed as _nobody99.
#1000 filesystem 2.3.18-alt1 -> 2.3.19-alt1
Thu Nov 16 2023 Arseny Maslennikov <arseny@altlinux> 2.3.19-alt1
- Removed /var/nobody altogether.
#1140 basesystem 1:sisyphus-alt23 -> 1:sisyphus-alt25
Sun Dec 10 2023 Arseny Maslennikov <arseny@altlinux> 1:sisyphus-alt25
- Split interactivesystem away from basesystem.
Sat Dec 09 2023 Arseny Maslennikov <arseny@altlinux> 1:sisyphus-alt24
- Added a facility to upgrade default passwd entries, hopefully temporary.
#1600 sisyphus_check 0.8.68-alt2 -> 0.8.69-alt1
Tue Nov 14 2023 Arseny Maslennikov <arseny@altlinux> 0.8.69-alt1
- Disallowed file objects whose owner or group is nobody.
#2100 rpm-build 4.0.4.194-alt1 -> 4.0.4.195-alt1
Fri Dec 08 2023 Arseny Maslennikov <arseny@altlinux> 4.0.4.195-alt1
- Introduced brp-verify-unit to check sanity of systemd units included
in built packages.
Править basesystem пришлось, чтобы куда-то воткнуть код по обновлению
уже установленных /etc/{passwd,group}. Будь у нас портативная реализация
программы sysusers, которую можно было бы включить в basesystem, этим бы
занималась она; но это дело будущего.
Вытаскивать оттуда interactivesystem пришлось, потому что тот пакет
не проходил install check, при этом не входя в зависимости других
пакетов; из него пришлось выбросить syslogd-daemon (тот всегда тащил
systemd).
Более того, этот пакет, судя по публичным источникам, главным образом
используется в составе образов; сопровождать его имеет смысл вместе с
mkimage-profiles, а значит, у него и у basesystem должны быть совсем
разные ACL, потому что консистентностью базовых пакетов репозитория и
составом образов занимаются совсем разные люди.
____
* Но сначала, конечно же, питон! :)
А может, мы ему и не помешаем: наша сборочница в некоторых случаях
вешает задание в сост. POSTPONED, если там что-то приобретает
зависимость на то, что пропадает в задании 333513, но собрать 330460 в
tested мне позволили.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* [devel] I: nobody-owned files in packages
2024-01-08 9:52 ` [devel] [#330460] TESTED (try 16) Arseny Maslennikov
@ 2024-02-29 8:42 ` Arseny Maslennikov
0 siblings, 0 replies; 4+ messages in thread
From: Arseny Maslennikov @ 2024-02-29 8:42 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 1391 bytes --]
On Mon, Jan 08, 2024 at 12:52:45PM +0300, Arseny Maslennikov wrote:
> https://packages.altlinux.org/tasks/330460
В ближайшее время задание уйдёт в сизиф.
> #740 setup 2.2.19-alt1 -> 2.2.20-alt1
> Tue Nov 07 2023 Arseny Maslennikov <arseny@altlinux> 2.2.20-alt1
> - Install the default overflowuid defined by Linux (incl. our kernels) as the
> nobody user and group. The user and group 99 are installed as _nobody99.
> #1000 filesystem 2.3.18-alt1 -> 2.3.19-alt1
> Thu Nov 16 2023 Arseny Maslennikov <arseny@altlinux> 2.3.19-alt1
> - Removed /var/nobody altogether.
> #1140 basesystem 1:sisyphus-alt23 -> 1:sisyphus-alt25
> Sun Dec 10 2023 Arseny Maslennikov <arseny@altlinux> 1:sisyphus-alt25
> - Split interactivesystem away from basesystem.
> Sat Dec 09 2023 Arseny Maslennikov <arseny@altlinux> 1:sisyphus-alt24
> - Added a facility to upgrade default passwd entries, hopefully temporary.
Обращаю особое внимание на следующее правило:
> #1600 sisyphus_check 0.8.68-alt2 -> 0.8.69-alt1
> Tue Nov 14 2023 Arseny Maslennikov <arseny@altlinux> 0.8.69-alt1
> - Disallowed file objects whose owner or group is nobody.
sisyphus-check будет зарубать пакеты, где что-либо упаковано как:
%attr(*, nobody, *)
или
%attr(*, *, nobody)
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-02-29 8:42 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-19 18:13 [devel] NobodySubjectPolicy implementation arseny
2024-01-08 9:29 ` Arseny Maslennikov
2024-01-08 9:52 ` [devel] [#330460] TESTED (try 16) Arseny Maslennikov
2024-02-29 8:42 ` [devel] I: nobody-owned files in packages Arseny Maslennikov
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