Повторное использование поля inode

Я нахожусь в проекте, где мне нужно вести учет, т.е. указывать, был ли доступ к конкретному файлу программой A. Я планирую хранить эту информацию в индексном узле, поскольку использование другой дополнительной структуры данных было бы неэффективным. Я планирую повторно использовать поле i_mode в структуре данных inode. Какие-либо предложения. Более того, я не знаю, как писать в структуру данных inode из пользовательского пространства. Как я могу это сделать? Спасибо...


person Lipika Deka    schedule 08.07.2011    source источник
comment
Для меня это звучит как абсолютно неправильный способ решения проблемы, которую вы описываете.   -  person NPE    schedule 08.07.2011


Ответы (3)


Файловая система следит за индексом; он даже не позволит суперпользователю напрямую изменить индексный дескриптор (хотя root всегда может получить доступ к размонтированному (блочному или символьному) устройству, чтобы изменить его).

Если вы не напишете код для изменения файловой системы — модуля ядра — вы не сможете делать то, что хотите. Найдите другой способ сделать это.

person Jonathan Leffler    schedule 08.07.2011

Файловая система не предназначена для решения проблем пользователей. Вы хотите вести учет измененных файлов, другие хотят вести учет новых/удаленных файлов.

Я вижу только следующие варианты:

  • inotify
  • сохранять статус интересующих файлов/каталогов и проверять изменения один раз

Ради интереса можно рассмотреть:

  • модуль ядра
  • внедрить собственную файловую систему
person dimba    schedule 08.07.2011

Немного погуглив, я увидел, что «липкий бит» сегодня мало используется, и мы можем использовать его, а также изменять его из пользовательского пространства.

person Lipika Deka    schedule 12.07.2011
comment
Это все еще звучит как неправильное решение для меня. Имейте в виду, что любой системный администратор, который использует восьмеричные разрешения для изменения ваших файлов, удалит ваш закрепленный бит. Вы также должны знать, что будущая версия операционной системы может повторно использовать липкий бит в своих целях. NetBSD в настоящее время имеет закрепленный бит, помеченный как «Зарезервированный для использования в будущем». - person Steve Weet; 12.07.2011