На 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)
0770 -- "заслуга" апстрима: https://bugzilla.gnome.org/show_bug.cgi?id=693679
Created attachment 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 с известной проблемой подобного плана.
Надо отдавать себе отчет в том, что 0770 root:root фактически означает 0700 root:root, поскольку у нас обычно никого, кроме root, в группе root нет. Вопрос, создаются ли в /var/run/gdm/ объекты, к которым не-root не должен иметь доступ?
(В ответ на комментарий №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 случился плюрализм: в файле 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.
Какой-то в этом 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.
(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, чтобы они не совпадали, и одно из них не было подкаталогом другого.
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)
(In reply to comment #7) > Более правильным выглядит изменение значений GDM_RAN_ONCE_MARKER_DIR и > GDM_XAUTH_DIR, чтобы они не совпадали, и одно из них не было подкаталогом > другого. Об этом тоже подумал, но тут оценить последствия мне было несколько сложней. 2 aris: я попросил тебя не дожидаться и пропустить совсем нахальный NMU. Надеюсь на снисхождение ввиду характера проблемы.
Апстрим сделал такой патч: http://bugzilla-attachments.gnome.org/attachment.cgi?id=236941