Причина newgrp не может измениться, группы в Ваших случаях то, что она использует getgrent, чтобы определить, являетесь ли Вы членом требуемой группы; посмотрите функцию find_matching_group
в newgrp.c
исходный файл.
Почему newgrp должен выполнить эту проверку? Поскольку набор групп, которых принадлежит процесс (так называемый "вектор группы") является произвольным списком: ядро не знает о /etc/group
или любая другая база данных группы и setgroups могут взять произвольный список групп. Поэтому решение, которым группы должны быть в векторе группы процесса, является вопросом политики: политика, проводившая [newgrp] и большинство других инструментов пространства пользователя, состоит в том, чтобы считать вектор группы через getgrent. (Ответ жабр предоставляет подробную информацию об этом.)
С другой стороны, pam_group проводит другую политику: это может увеличить вектор группы с группами, которых пользователь не является частью (согласно /etc/group
или LDAP).
Так, в конце две различных политики существуют, и mount.davfs2
жалуется, потому что это предполагает, что только первый - в действительности. Вы могли, вероятно, сообщить об этом как об ошибке против mount.davfs2
, или просто добавьте всех пользователей DAV к соответствующей группе в LDAP или /etc/group
, или используйте основанную на FUSE файловую систему DAV вместо этого.
Взгляните на своего менеджера по оформлению (lightdm, gdm, kdm, xdm, wdm).
Более новые lightdm версии могут иметь a session-cleanup-script
запись в [SeatDefaults]
раздел /etc/lightdm/lightdm.conf
.
Для gdm можно поместить сценарий в каталог PostSession.
Для kdm xdm и wdm взглянули на этот ответ в SuperUser.
exec >/tmp/Xreset.log 2>&1
в начале сценария (Ваша команда Xreset), таким образом, Вы видите, называют ли сценарий вообще, и Вы видите его сообщения об ошибках. – elmicha 04.10.2012, 16:55