Bug 28549 - слишком жёсткие права на /var/run/gdm/
: слишком жёсткие права на /var/run/gdm/
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/gdm)
: unstable
: all Linux
: P3 major
Assigned To:
:
: https://bugzilla.gnome.org/show_bug.c...
:
:
: 27685
  Show dependency tree
 
Reported: 2013-02-12 22:21 by
Modified: 2013-02-20 21:10 (History)


Attachments
gdm-3.6.2-alt-runtimedir-perms.patch (529 bytes, patch)
2013-02-13 02:21, Michael Shigorin
no flags Details | Diff


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2013-02-12 22:21:14
На
http://nightly.altlinux.org/sisyphus/snapshots/20130212/regular-cinnamon-20130212-x86_64.iso
пронаблюдали следующее: при некоторых условиях (возможно, зависящих от скорости
загрузки) acc не работает.

Права на /var/run/gdm:
0770 root:root => не работает
0711 root:root => работает

В пакете 1777 root:gdm, файла в /etc/tmpfiles.d/ в gdm-3.6.2-alt3 не наблюдаю.

Спасибо за отладку ldv@ -- добавили в /etc/pam.d/acc отладку:
-session         optional        pam_xauth.so
+session         optional        pam_xauth.so debug xauthpath=/opt/xauth

где исполняемый /opt/xauth содержит следующее:
#!/bin/sh
/usr/bin/strace -o /tmp/strace.log -- /usr/bin/xauth "$@"

В полученном логе:

--- SIGCONT {si_signo=SIGCONT, si_code=SI_USER, si_pid=2794, si_uid=500} ---
execve("/usr/bin/xauth", ["/usr/bin/xauth", "-f",
"/var/run/gdm/auth-for-altlinux-P"..., "nlist", ":0"], [/* 53 vars */]) = 0
[...]
stat("/var/run/gdm/auth-for-altlinux-PO3KiZ/database-c", 0x7fff11174380) = -1
EACCES (Permission denied)
open("/var/run/gdm/auth-for-altlinux-PO3KiZ/database-c",
O_WRONLY|O_CREAT|O_EXCL, 0600) = -1 EACCES (Permission denied)
[...]
nanosleep({2, 0}, 0x7fff111741b0)       = 0
write(2, "/usr/bin/xauth:  timeout in lock"..., 98) = -1 EBADF (Bad file
descriptor)
exit_group(1)
------- Comment #1 From 2013-02-13 01:24:47 -------
0770 -- "заслуга" апстрима: https://bugzilla.gnome.org/show_bug.cgi?id=693679
------- Comment #2 From 2013-02-13 02:21:47 -------
Created an attachment (id=5735) [details]
gdm-3.6.2-alt-runtimedir-perms.patch

Патч, добавляющий всем право на сканирование /var/run/gdm/ (проверен сборкой
образа, результирующие права 0771 root:root не мешают pam_xauth работать).

2 ldv: прошу посмотреть и высказаться, годится ли такое NMU -- не хотелось бы
анонсировать regular-{gnome3,cinnamon}.iso с известной проблемой подобного
плана.
------- Comment #3 From 2013-02-13 02:26:17 -------
Надо отдавать себе отчет в том, что 0770 root:root фактически означает 0700
root:root, поскольку у нас обычно никого, кроме root, в группе root нет.

Вопрос, создаются ли в /var/run/gdm/ объекты, к которым не-root не должен иметь
доступ?
------- Comment #4 From 2013-02-13 02:34:42 -------
(В ответ на комментарий №3)
> Надо отдавать себе отчет в том, что 0770 root:root фактически означает 0700
> root:root, поскольку у нас обычно никого, кроме root, в группе root нет.

Разумеется.

> Вопрос, создаются ли в /var/run/gdm/ объекты, к которым не-root не должен иметь
> доступ?
Заметить таких не удалось, наблюдаю там каталоги вида auth-for-$USER-$XXXXXX,
где USER -- gdm и, например, altlinux; права на них -- 0711 $USER:$USER.

Ещё упоминается тот самый маркер, при создании которого и портят права на
/var/run/gdm, оказывающийся по умолчанию ещё и GDM_RAN_ONCE_MARKER_DIR:

configure.ac:   GDM_RAN_ONCE_MARKER_DIR=${localstatedir}/run/gdm
[...]
configure.ac:GDM_RAN_ONCE_MARKER_FILE="$GDM_RAN_ONCE_MARKER_DIR/ran-once-marker"

А сделать 0711 (как и получаются в другой ветке этого предположительно race
condition) думал, но решил обойтись минимально необходимым изменением до
пояснений апстрима, буде таковые последуют.  У них в NEWS /var/run/gdm
упоминается в 2.22.0 (когда перенесли xauth-файлики) и в 2.29.0 (когда
ужесточили права).
------- Comment #5 From 2013-02-13 05:17:01 -------
Какой-то в этом gdm случился плюрализм: в файле
gdm/daemon/gdm-display-access-file.c написано, что каталог GDM_XAUTH_DIR (он же
/var/run/gdm) создается с правами %attr(0711,root,gdm), в то время как
daemon/main.c рядом создает GDM_RAN_ONCE_MARKER_DIR (тот же самый /var/run/gdm)
с правами %attr(0700,-,-).
Беда, в общем, этот ваш gdm.
------- Comment #6 From 2013-02-13 05:17:21 -------
Какой-то в этом gdm случился плюрализм: в файле
gdm/daemon/gdm-display-access-file.c написано, что каталог GDM_XAUTH_DIR (он же
/var/run/gdm) создается с правами %attr(0711,root,gdm), в то время как
daemon/main.c рядом создает GDM_RAN_ONCE_MARKER_DIR (тот же самый /var/run/gdm)
с правами %attr(0770,-,-).
Беда, в общем, этот ваш gdm.
------- Comment #7 From 2013-02-13 05:22:41 -------
(In reply to comment #4)
> (В ответ на комментарий №3)
> > Надо отдавать себе отчет в том, что 0770 root:root фактически означает 0700
> > root:root, поскольку у нас обычно никого, кроме root, в группе root нет.
> 
> Разумеется.
> 
> > Вопрос, создаются ли в /var/run/gdm/ объекты, к которым не-root не должен иметь
> > доступ?
> Заметить таких не удалось, наблюдаю там каталоги вида auth-for-$USER-$XXXXXX,
> где USER -- gdm и, например, altlinux; права на них -- 0711 $USER:$USER.
> 
> Ещё упоминается тот самый маркер, при создании которого и портят права на
> /var/run/gdm, оказывающийся по умолчанию ещё и GDM_RAN_ONCE_MARKER_DIR:
> 
> configure.ac:   GDM_RAN_ONCE_MARKER_DIR=${localstatedir}/run/gdm
> [...]
> configure.ac:GDM_RAN_ONCE_MARKER_FILE="$GDM_RAN_ONCE_MARKER_DIR/ran-once-marker"
> 
> А сделать 0711 (как и получаются в другой ветке этого предположительно race
> condition) думал, но решил обойтись минимально необходимым изменением до
> пояснений апстрима, буде таковые последуют.  У них в NEWS /var/run/gdm
> упоминается в 2.22.0 (когда перенесли xauth-файлики) и в 2.29.0 (когда
> ужесточили права).

Более правильным выглядит изменение значений GDM_RAN_ONCE_MARKER_DIR и
GDM_XAUTH_DIR, чтобы они не совпадали, и одно из них не было подкаталогом
другого.
------- Comment #8 From 2013-02-13 05:34:03 -------
gdm-3.6.2-alt4 -> sisyphus:

* Wed Feb 13 2013 Michael Shigorin <mike@altlinux> 3.6.2-alt4
- NMU: fixed /var/run/gdm permissions which were blocking
  proper pam_xauth execution; thanks ldv@ (closes: #28549)
------- Comment #9 From 2013-02-13 14:26:43 -------
(In reply to comment #7)
> Более правильным выглядит изменение значений GDM_RAN_ONCE_MARKER_DIR и
> GDM_XAUTH_DIR, чтобы они не совпадали, и одно из них не было подкаталогом
> другого.
Об этом тоже подумал, но тут оценить последствия мне было несколько сложней.

2 aris: я попросил тебя не дожидаться и пропустить совсем нахальный NMU.
Надеюсь на снисхождение ввиду характера проблемы.
------- Comment #10 From 2013-02-20 21:10:31 -------
Апстрим сделал такой патч:
http://bugzilla-attachments.gnome.org/attachment.cgi?id=236941