Почему stat, li -lu в убунту не обновляют время чтения файла или его копирования?
Почему stat, li -lu в убунту не обновляют время чтения файла или его копирования? Они лишь обновляют acces time при записи в файл? Как это исправить? Чистить кэш как в php(clearstatcashe())? Если да то как чистить?
В метаинформации по файлу нет времени его копирования. Есть atime - время доступа (причем сам stat не обновляет эту информацию и это правильно, т.к. в противном случае он бы затирал эти данные). Есть ctime - время модификации атрибутов (права доступа там). Есть mtime- время последней модификации файла. Если была запись в файл, то mtime меняется без вариантов.
я знаю все эти разновидности. вопрос в том почему время доступа не обновляется при копировании или чтении файла хотя первое время чтения файла после его создания фиксируется. а при последующих чтениях остается прежним...то есть если чел. зашел туда куда он не должен заходить я об этом не узнаю потому что он просто посмотрит содержимое или скопирует файл но не запишет в него. а мне нужно знать совал ли свой нос администратор при проведении работ на моем сервере туда куда не надо . вот и все.
проблема в том что stat не обновляет access(17:04). Но я смотрел файл с помощью cat позже 17:04. Или вывод содержимого файла с помощью cat не считается за access?
lexaxaxa: С версии ядра 2.6.30 по умолчанию atime будет меняться только в случае, если текущее значение меньше, чем ctime или mtime. Т.е. по сути это почти тоже самое, что и при noatime. Изменить можно только сменой опций монтирования, что потребует root прав.
lexaxaxa: По сути сейчас по дефолту получается, что такая информация в системе не сохраняется. Поэтому дело не в stat, он показывает все корректно. Дело в новом ядре и изменении его поведения при записи данных в inode.