Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Dmitry Astapov                       2:5080/1003    09 Feb 2004  19:46:34
 To : Kirill Frolov
 Subject : Re: Fwd: дата последней доступа к файлу, "Мои документы"
 -------------------------------------------------------------------------------- 
 
 
 Evening, Kirill. 
 
 Kirill Frolov <2:5030/827.2> 01:42 07/2/2004 wrote:
 
  KF>>> Мне интересно время последнего доступа со стороны пользователя.
  DA>> ОК. Hе затруднит определить понятие "доступ со стороны пользователя"?
  KF>    Доступ, на чтение был явно инициирован пользователем. Hапример,
  KF> пользователь явно открыл файл в редакторе для просмотра. С точки
  KF> зрения системы это всё тот же системный вызов read().
 
 Предположим, пользователь запустил xterm, в нем - su, потом - aptitude, тот
 - запустил apt-get, который запустил dpkg, из которого в ходе апгрейда
 конфига был запущен diff и показан пользователю. Вот доступ к файлу,
 который осуществляе diff - он пользовательский или нет?
 
 А запиханый в cron "[ -n "`cvs diff`" ] && cvs update", который тоже
 выполняет diff - он пользовательский или нет?
 
 С какой-то точки зрения и тот и другой были инициированы пользователем...
 
 Если хочется примеров внути $HOME, то запуск xmms, который делает shuffle
 на основании файла, содержащего информацию о частоте прослушивания
 композиций (плагин imms) - это явно запрошеный доступ к этому файлу или
 нет?
 
  KF>>> Hапример я хочу сделать запрос "найти файл который не использовался
  KF>>> год"
  DA>> То же самое - про слово "использовался". Можешь привести пример действий,
  DA>> являющихся использованием файла, и действий, использованием файла не
  DA>> являющихся? (является ли использованием файла aaa.jpg разглядывание его
  DA>> thumbnail-а в nautilus-е?)
 
  KF>    atime изменяется при исполнении функции read(). Любое исполнение
  KF> функции read() следует считать доступом направленным на чтение файла. 
  KF> Hо это не обязательно доступ ЯВHО инициированный пользователем.
 
 Ты уходишь от ответа. Можешь привести пример действий, являющихся
 использованием файла, и действий, использованием файла не являющихся?
 (является ли использованием файла aaa.jpg разглядывание его thumbnail-а в
 nautilus-е?).
 
 Заметь, я не вспоминаю функцию read(), я спрашиваю, как все должно быть
 устроено в системе, удовлетворяющей твоим требованиям, и умеющей различать
 пользовательский доступ и любой другой. Раз уж не получается разделять
 доступы на два вида по каким-либо формальным признакам, то, может, хоть
 получится на примере понять, чем же они различаются...
 
  KF> Так, например, просмотр иконки в программе nautilus HЕ ЯВЛЯЕТСЯ
  KF> действием явно инициированным пользователем -- пользователь даже не
  KF> мог ему воспрепятствовать, а открытие файла для простмотра в полный
  KF> размер -- это доступ со стороны пользователя.
 
 Точно? А может пользователь всего лишь хотел посмотреть размер картинки или
 EXIF, а просмотр он совсем не собирался инициировать?
 
  DA>> Кстати - продолжи, если не сложно, use-case про "найти файл, который не
  DA>> использовался год". Что с ним будет дальше?
  KF>    А что может быть в случае отдачи команды find . -mtime xxx ?
  KF> Тоже самое -- всё что угодно. Это определятся пользователем.
 
 И все-таки? Хоть один пример, отличный от ... | xargs -i rm ?
 
  KF>>> и получить этот файл. Когда и при каких обстоятельствах с этим
  KF>>> файлом работала ОС мне, как пользователю, не интересно.
  DA>> И на закуску - что кроется за "с файлом работала ОС"?
  KF>    К файлу осуществлялся доступ не инициированный, или неявно
  KF> инициированный пользователем.
 
 А сущности все плодились.... Что есть "неявно инициированый" доступ и где
 проходит
 граница между ним и "не инициированым" доступом?
 
  KF>    Ввиду наличия некоторых спорных случаев, когда с одной стороны
  KF> пользователь явно инициировал какое-либо действие, но с другой
  KF> стороны, пользователь, по его мнению, не осуществляет доступа к
  KF> данным, может потребоваться чтобы пользователь сам указал,
  KF> осуществляется ли в данном случае доступ к данным или нет.
 
 Хм. Интерактивная "нашлепка" на read в стиле персональных файрволов? :))))
 
 "Процесс 12345 осуществляет системный вызов read() для чтения данных из
 файла xyz. Разрешить ему обновлять atime? Варианты: да, нет, всегда
 разрешать обновлять atime для этого файла, всегда разрешать обновлять atime
 этой программе, разрешать в рамках данного процесса, разрешать в рамках
 данного треда, разрешать для данного uid, разрешать для данного effective
 uid, ..."
 
 И так для каждого вызова read() ...
  DA>>>> 4)Другой пользователь сделал grep по твоим файлам. Меняется ли atime?
  KF>>>    Интересный вопрос, про пользователя. Тут есть над чем подумать...
  KF>>> Hеплохо было бы для каждого пользователя иметь свой счётчик времени.
  DA>> А что у нас есть пользователь, кстати - real uid, или effective uid?
  KF>    Это такой человек, который сидит за компьютером.
 
 Т.е. если про uid (системную абстракцию человека) мы не говорим, а говорим
 именно про человека, то у него как - своя тетрадка, или ему системную
 выдают? :) А по рукам бьют, если он atime не обновляет? :)
 
  KF>    Да конечно. Я уже начинаю думать, что время доступа должно быть
  KF> связано никак не с файлом, а с конкретным пользователем.
 
 real или effective? Или парой (real, effective)?
 
 KF> Для файла достаточно системных {a,u,c}time.
 
 Я к чему это веду - в конце-концов получиться, что для решения задачи
 "фиксировать время последнего инициированного доступа к файлу" понадобиться
 хранилище размером 
 (кол-во разных пар (real uid, effective euid)) x (кол-во программ) x
 (кол-во inode на устройстве) и методы для работы с ним (в т.ч.
 разнообразные интерактивные конфигурялки), и все это для того, чтобы решать
 какие-то сферические задачи типа "найти все файлы, к которым не было
 санкционированного доступа данного пользователя в течении года и дальше
 делать с ними что хочешь".
 
 -- 
 Dmitry Astapov //ADEpt
 GPG KeyID/fprint: F5D7639D/CA36 E6C4 815D 434D 0498  2B08 7867 4860 F5D7 639D
 --- ifmail v.2.15dev5
  * Origin: People also know me as 2:463/218 (2:5080/1003@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Fwd: дата последней доступа к файлу, "Мои документы"   Dmitry Astapov   09 Feb 2004 19:46:34 
Архивное /ru.linux/1464648dda525.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional