pam_mktemp использует attributes. reiser4 сейчас не поддерживает атрибуты. Пока предлагается, если собираетесь пользоваться pam_mktemp или как то иначе атрибутами файлов, использовать для этой директории другие файловые системы.
У меня в связи с pam_mktemp возник вопрос: он использует атрибуты для ext2/3, reiserfs и т.п. файловых системах которые поддерживают атрибуты (lsattr,charrt...), но на tmpfs, которая этих атрибутов не поддерживает, pam_mktemp тоже ухитряется нахорошо работать. Поэтому у меня вопрос-предложение: передать этот баг 7520 c reiser4 на pam_mktemp чтобы особый образ, которым она работает с неподдерживающими атрибуты файловыми системами, распространялся и на reiser4.
Извиняюсь, но багзилла-демон требует если не могу исправить и отвергнуть как неправильный, то переназначить баг. Похоже со стороны reiser4 его мне не исправить, а апстрим в ближайшее обозримое время этим тоже не будет заниматься. Сергей.
Со своей стороны, я тоже не планирую дорабатывать reiserfs4. Вы хотя бы можете выяснить, какой код ошибки возвращает reiserfs4 в ответ на ioctl EXT2_IOC_SETFLAGS? Проверяется следующим образом: strace -e trace=ioctl chattr +a /path/to/file/on/reiserfs4
$ strace -e trace=ioctl chattr +a /home/seriv/.bash_history ioctl(3, EXT2_IOC_GETFLAGS, 0xbfbea92c) = -1 ENOSYS (Function not implemented) chattr: Function not implemented while reading flags on /home/seriv/.bash_history -- Нет там в reiser4 атрибутов. И пока не планируется. Но ведь у tmpfs тоже атрибуты не реализованы: -- $ touch /tmp/.private/seriv/1 $ strace -e trace=ioctl chattr +a /tmp/.private/seriv/1 ioctl(3, EXT2_IOC_GETFLAGS, 0xbfd7e93c) = -1 ENOTTY (Inappropriate ioctl for device) chattr: Inappropriate ioctl for device while reading flags on /tmp/.private/seriv/1 -- И при этом pam_mktemp при /tmp на tmpfs работает!
С этого надо было начинать: ENOSYS != ENOTTY. В следующей сборке pam_mktemp, возможно, будет добавлена обработка ENOSYS по аналогии с ENOTTY; я посоветуюсь с автором pam_mktemp. Хотя, конечно, виноват драйвер reiserfs4: он должен возвращать ENOTTY.
Так если дело в том, чтобы вернуть ENOTTY вместо ENOSYS, я думаю это дело нехитрое, из трёх мест в коде kernel-feat-fs-reiser4/15_reiser4-only.patch методом чтения и тыка я пойму какое надо заменить и пересоберу kernel-feat-fs-reiser4. Если действительно так правильнее. Сергей. (In reply to comment #5) > С этого надо было начинать: ENOSYS != ENOTTY. > В следующей сборке pam_mktemp, возможно, будет добавлена обработка ENOSYS по > аналогии с ENOTTY; я посоветуюсь с автором pam_mktemp. > Хотя, конечно, виноват драйвер reiserfs4: он должен возвращать ENOTTY.
I will take care.
Next version of pam_mktemp will handle filesystems which return ENOSYS in response to ioctl requests.
Implemented in pam_mktemp-1.0.1