|
|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/1464648dda525.html, оценка из 5, голосов 10
|