The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"whomade - процесс, запоминающий кто создал файлы в отслеживаемых каталогах"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"whomade - процесс, запоминающий кто создал файлы в отслеживаемых каталогах"  +/
Сообщение от opennews (??), 23-Авг-25, 07:55 
Для определения приложений, создающих расходующие дисковое пространство файлы в домашнем каталоге пользователя, подготовлен фоновый процесс whomade, отслеживающий появление новых файлов при помощи механизма fanotify. Проект написан на языке С++ и распространяется под лицензией  GPLv3...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=63761

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

2. Сообщение от User (??), 23-Авг-25, 08:06   –2 +/
Так ведь в ntfs создатель и без помощи демонов известен.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #13, #56, #73

3. Сообщение от Stanislavvv (?), 23-Авг-25, 08:18   +/
> Данные хранятся в БД SQLite3

А расширенные атрибуты, значит, нафиг?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #7, #52, #64, #89, #91

6. Сообщение от Аноним (6), 23-Авг-25, 08:29   –4 +/
Отличная замена ls -la, да ещё и с гуй. Всегда искал!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #9

7. Сообщение от A.Stahl (ok), 23-Авг-25, 09:04   +1 +/
Атрибуты чего? БД хранит лишь кортежи имя файла/имя процесса.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #8, #74

8. Сообщение от Аноним (8), 23-Авг-25, 09:12   –1 +/
Атрибуты ФС. Это ясно из контекста, да и термин однозначный.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #17

9. Сообщение от Аноним (8), 23-Авг-25, 09:14   +/
Ну это вряд ли.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6

10. Сообщение от u235 (ok), 23-Авг-25, 09:18   +/
Заглянул в CMakeLists.txt и собирать это как-то расхотелось.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #40

12. Сообщение от RM (ok), 23-Авг-25, 09:22   +/
название subj и заголовок статьи крайне неудачны, видно из комментов.
народ просто не понимает (не удивительно), что отслеживается не пользователь, создавший файл, а процесс.
whatcreated а не whomade было бы лучше, как вариант.
ну и в заголовоке заменить "кто" на "программу"
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #20

13. Сообщение от нах. (?), 23-Авг-25, 09:23   +/
ну и кто мне понасоздавал вот это вот

11/08/2025  14:05           335,149 481a175f-cf20-4ad2-8548-d0d4eaa1ca5e.tmp
22/08/2025  22:36                 0 602a6864-4320-4e8c-a888-5c212a639d78.tmp
11/08/2025  14:05           292,514 bd22900a-d2de-47a1-9700-5bd3e078d27e.tmp

?
Можешь подсказать, а то их уже под три сотни там таких?

Поделка, как я понимаю, запоминает процесс (и не один лишь ненужно-pid)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #96

17. Сообщение от A.Stahl (ok), 23-Авг-25, 09:32   +3 +/
> Атрибуты ФС.

И какое отношение этот демон может иметь к атрибутам ФС? Вырази свою мысль полнее, я тебя не понимаю.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #21

18. Сообщение от freehck (ok), 23-Авг-25, 09:33   +1 +/
A.Stahl, ты конечно молодец, что почитал доки и сделал свою реализацию, но вообще-то, хоть мне и неловко сейчас тебе это говорить, однако такой процесс уже есть, и он называется auditd.

Минуточку внимания:


% apt-get install auditd
% auditctl -w /srv/watcher -p wa -k file-creation
% touch /srv/watcher/f1
% ausearch -k file-creation
time->Sat Aug 23 06:27:29 2025
type=PROCTITLE msg=audit(1755930449.930:203): proctitle=746F756368006631
type=PATH msg=audit(1755930449.930:203): item=1 name="f1" inode=106694349 dev=fc:00 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=CREATE cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0
type=PATH msg=audit(1755930449.930:203): item=0 name="/srv/watcher" inode=106700802 dev=fc:00 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0
type=CWD msg=audit(1755930449.930:203): cwd="/srv/watcher"
type=SYSCALL msg=audit(1755930449.930:203): arch=c000003e syscall=257 success=yes exit=3 a0=ffffff9c a1=7ffef733c719 a2=941 a3=1b6 items=2 ppid=494441 pid=495433 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts12 ses=52246 comm="touch" exe="/usr/bin/touch" subj=unconfined key="file-creation"

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #19, #90

19. Сообщение от A.Stahl (ok), 23-Авг-25, 09:39   +/
> такой процесс уже есть, и он называется auditd.

Это хорошо, но теперь прикрути туда БД и какой-то механизм для настройки всего этого.

То, что за гаражом валяются какие-то колёса и ты знаешь где купить хороший японский двигатель не означает что у тебя есть машина.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #22

20. Сообщение от Аноним (-), 23-Авг-25, 09:40   +/
> в заголовоке заменить "кто" на "программу"

Или на "что". Этого будет достаточно, но я согласен очень полезно, потому что с толку сбивает.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

21. Сообщение от Аноним (8), 23-Авг-25, 09:50   +2 +/
>> Атрибуты ФС.
> И какое отношение этот демон может иметь к атрибутам ФС? Вырази свою
> мысль полнее, я тебя не понимаю.

Попробуй подумать. Ну вот записывается информация в базу данных, чтобы потом периодически её удалять, когда файл исчезнет. Хотя достаточно записать, кто создал, прямо в атрибуты файла (которые кривой файловый менеджер обнулит, но это уже не по адресу). Можно даже без доступа пользователя на изменение, типа метки selinux.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #25, #49, #70

22. Сообщение от freehck (ok), 23-Авг-25, 09:50   +1 +/
> Это хорошо, но теперь прикрути туда БД

А зачем нужна БД, если всю необходимую информацию можно получить через ausearch.

> механизм для настройки всего этого

Так auditctl же.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19

24. Сообщение от Аноним (24), 23-Авг-25, 09:54   +/
>addDir(DirAction::ADD, DirType::MONITOR, "/home/astahl/.config");
>addDir(DirAction::ADD, DirType::MONITOR, "/home/astahl/.cache");
>addDir(DirAction::ADD, DirType::IGNORE,  "/home/astahl/.cache/mozilla");

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

1. https://github.com/CLIUtils/CLI11
2. https://git.code.sf.net/p/tclap/code
3. https://github.com/bfgroup/Lyra
4. https://github.com/saveman/octargs

И инлайнить либы в репозиторий - это очень некрасиво. Освойте CMake наконец.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #26, #28

25. Сообщение от A.Stahl (ok), 23-Авг-25, 09:55   +/
И на каких ФС это работает? Вот я действительно ничего про это не знаю. Кинь ссылкой где всё это разжёвано.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #30

26. Сообщение от A.Stahl (ok), 23-Авг-25, 10:01   +/
Это обычные плейсхолдеры, чтобы пользователь сразу понял что туда вводить. Их можно менять. Их нужно менять.

>эту библиотеку для парсинга опций командной строки

Она работает. Никаких нареканий у меня нет. Чем твои варианты лучше?

>инлайнить либы в репозиторий - это очень некрасиво.

Для мелких некритичных либ -- самое оно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #29, #31

27. Сообщение от Аноним (24), 23-Авг-25, 10:01   +2 +/
>query = std::format(R "SQL(INSERT INTO {0:}(dirname) SELECT '{1:}' WHERE NOT EXISTS(SELECT 1 FROM {0:}WHERE dirname = '{1:}')) SQL ", table_name, dir);

У вас случайно нет знакомого Little Bobby Tables?

Ответить | Правка | Наверх | Cообщить модератору

28. Сообщение от Аноним (8), 23-Авг-25, 10:04   +/
Твоя правда. У меня есть похожая шляпа на питоне, но там код получше и функциональность побогаче (раз в 100). А вся работа по написанию заняла те же полчаса. Есть ещё индексатор для поиска: изначально идея была fuzzy search для похожих имён, но в конечном итоге достаточно перестановок и замен/удаления символов. Без индекса перебор часы, с индексом 10 секунд, меня устраивает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #32

29. Сообщение от Аноним (24), 23-Авг-25, 10:05   –2 +/
Это вам локальная модель так навайбкодила? Потому что ни один программист так не напишет в продакшн-коде.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

30. Сообщение от Аноним (8), 23-Авг-25, 10:08   +1 +/
Ммм на всех? Сложно сказать. https://en.wikipedia.org/wiki/Extended_file_attributes
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #33

31. Сообщение от Аноним (24), 23-Авг-25, 10:09   +/
>Она работает. Никаких нареканий у меня нет. Чем твои варианты лучше?

Вы забыли (или никогда не знали) пословицу всех технооптимистов/материалистов/редукционистов/программистов: "you are only as good as your tools". "Меня устраивает" - не оправдание, а дешёвая отмазка, не выдерживающая никакой критики. "Не хватает денег" - уже более сильное оправдание, но оно не очень применимо к библиотеке для парсинга командной строки.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #45

32. Сообщение от Аноним (24), 23-Авг-25, 10:10   +/
В индексе случаем не dafsa?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #37

33. Сообщение от A.Stahl (ok), 23-Авг-25, 10:12   +/
Забавно. Я не сталкивался. Гляну потом повнимательней. Это может упростить мне жизнь, на самом деле, если действительно работает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #34, #44

34. Сообщение от Аноним (8), 23-Авг-25, 10:30   +2 +/
О да, меня вот расстраивает, что записанные в атрибуты хэши с информацией об источнике файла файловые менеджеры не показывают из коробки. Но и знаю, что они там есть, и открываю окошко из контекстного меню, когда надо. Можно много чего интересного сделать на самом деле, только отсутствие поддержки в ФМ удручает. Ни xdg, ни dublincore нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #38

37. Сообщение от Аноним (8), 23-Авг-25, 10:40   +/
Да не, там простая сериализация в messagepack и cжатие, всё равно перебирать всё для поиска. Индексы просто раздельные немного, чтобы сразу десятки гигабайт памяти не кушать. Это тот случай, когда временное наколенное решение работает достаточно хорошо даже после стократного увеличения объёмов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

38. Сообщение от A.Stahl (ok), 23-Авг-25, 10:51   +2 +/
Хм. А ведь работает. Спасибо, аноним, за наводку. Это позволит мне вообще выкинуть БД со всеми БД-шными проблемами. И отдельный поток для периодической очистки БД тоже. Одни плюсы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #41, #69

39. Сообщение от Анонимчег (?), 23-Авг-25, 10:59   –2 +/
Интересно, хоть кто-то из критикующих прислал пулл-реквест?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #43, #50

40. Сообщение от 12yoexpert (ok), 23-Авг-25, 11:01   +/
чувак зачем-то вместо объектных файлов архивы линкует
чувствуется колхоз
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #42, #47

41. Сообщение от Аноним (8), 23-Авг-25, 11:04   +/
Ну нормально это через eBPF делается, может, ещё чего придумаешь улучшить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

42. Сообщение от u235 (ok), 23-Авг-25, 11:21   +/
>чувак зачем-то вместо объектных файлов архивы линкует

Меня удивили файлы README.md и CHANGELOG.md в add_executable(). И непонятно откуда берется цель sqlite3 в target_link_libraries().

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #63

43. Сообщение от u235 (ok), 23-Авг-25, 11:33   –1 +/
Типа "критикуя, предлагай" и никак иначе? Я помню этим нашу оппозицию, пока она ещё была, постоянно попрекали. Нет, я не прислал пулл-реквестов и не пришлю. Я высказал свое мнение, автор может принять его к сведению или проигнорировать и это нормально.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39

44. Сообщение от eugener (ok), 23-Авг-25, 11:39   +/
> Забавно. Я не сталкивался

Во времена OS/2 даже журнал бумажный издавался, "Extended Attributes". В полуоси это дело активно использовалось графической оболочкой, например, можно было назначать свои иконки любым файлам, ну и прочую доп.инфу. И всё это хранилось в EA.
Хотя линь и винда поддерживают EA — DE их почти не использует, видимо из-за современных тенденций к упрощению.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #60

45. Сообщение от Фрол (?), 23-Авг-25, 11:57   +/
> "Меня устраивает" - не оправдание, а основной принцип UNIX, начиная с первой же версии.

// очевидный фикс

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #46

46. Сообщение от Аноним (47), 23-Авг-25, 12:11   +/
UNIX была коммерческой ОС. Коммерсы с принципом "меня всё устраивает" с рынка вылетели бы ... а всякие QNX, AIX и прочие и поныне продаются за бабло вме6сто того чтобы "нас всё устраивает, а вы - валите на линукс или винду".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45 Ответы: #81

47. Сообщение от Аноним (47), 23-Авг-25, 12:15   +1 +/
Объектные файлы лучше не линковать - гимора не оберёшься, add_library(... OBJECT ...) - это очень хрупкаяя вещь, напр. от C++ модулей она разваливается.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #65

48. Сообщение от Аноним (48), 23-Авг-25, 12:24   +/
Если настоящей целью является очистка хомяка от всякого хлама, то я выбрал принципиально другой подход: весь рут ("/") монтируется в tmpfs; хомяк тоже в tmpfs; избранные папки бинд-маунтятся в долгосрочное хранилище. Таким образом после рестарта системы я получаю чуть ли не свежеустановленную ось, при этом только некоторые папки переживают перезагрузку (например ~/.config/chromium). И никакой аудит не задействуется. Пусть там хоть тысячи прог понасоздадут свой мусор в хомяке -- после перезагрузки мусор исчезнет, а папки из белого списка останутся. В интернете этот подход гуглится по словам impermanence nix.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #51

49. Сообщение от Аноним (60), 23-Авг-25, 12:37   +1 +/
> Хотя достаточно записать, кто создал, прямо в атрибуты файла

так файл с таким же именем может создать кто-либо другой (владелец, процесс). Цель утилиты трекать историю создания файлов и т.д. Вопрос толька накуя, когда есть аудит лог?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #54

50. Сообщение от Аноним (60), 23-Авг-25, 12:43   +/
auditd - не, не слышал
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39

51. Сообщение от Аноним (60), 23-Авг-25, 12:44   +/
вы, / в ro монтируйте сразу
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48 Ответы: #53

52. Сообщение от Мемоним (?), 23-Авг-25, 12:53   +1 +/
Аналитику считать сложнее. И, теоретически, эта информация может понадобиться и после удаления файла. По хорошему нужна поддержка обеих мест хранения.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

53. Сообщение от пох. (?), 23-Авг-25, 12:59   +/
да можно просто комп не включать - никто не нагадит в хомяк!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51 Ответы: #61

54. Сообщение от Аноним (8), 23-Авг-25, 13:00   –1 +/
Я думал, установить, кто создал в последний раз. Там не очень надёжно логирует, насколько я понял. Я попросил чатгпт навайбкодить, чтобы было чётко, он выдал

#include <linux/bpf.h>
#include <linux/ptrace.h>
#include <linux/fs.h>
#include <linux/uaccess.h>
#include <linux/sched.h>
#include <linux/bpf_helpers.h>

SEC("tracepoint/syscalls/sys_enter_openat")
int trace_openat(struct trace_event_raw_sys_enter *ctx) {
    char comm[TASK_COMM_LEN];
    struct file *file;
    char *filename;
    int ret;

    // Get the current process name
    bpf_get_current_comm(&comm, sizeof(comm));

    // Get the filename from the syscall arguments
    filename = (char *)ctx->args[1];

    // Set the xattr (assuming the file descriptor is valid)
    ret = bpf_set_xattr(filename, "user.created_by", comm, sizeof(comm));
    if (ret < 0) {
        return 0; // Error handling
    }

    return 0;
}

char _license[] SEC("license") = "GPL";

clang -O2 -target bpf -c your_ebpf_program.c -o your_ebpf_program.o

bpftool prog load your_ebpf_program.o /sys/fs/bpf/your_ebpf_program

bpftool prog attach /sys/fs/bpf/your_ebpf_program tracepoint syscalls:sys_enter_openat

getfattr -n user.created_by filename

надо, чтобы кто-нибудь проверил

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49 Ответы: #59

55. Сообщение от Мемоним (?), 23-Авг-25, 13:01   +/
А какая-нибудь libmdbx не лучше будет для такой достаточно простой задачи?
https://www.opennet.me/openforum/vsluhforumID3/121987.html#9
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #57

56. Сообщение от Аноним (56), 23-Авг-25, 13:36   +/
Так ведь он в любой ФС известен. Но только вот какие именно он процессы использовал для создания файлов - неизвестно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

57. Сообщение от Аноним (47), 23-Авг-25, 13:57   –1 +/
Нет, не будет.

1. Во-первых libmbdx - это продукт человека, последовательно озвучивающего совершенно ужасную общественную позицию, которая в поддержку сил, которые нам скотобойню готовят, поэтому её сразу обходим стороной - использование этого продукта бустит карьеру его автора, а те, у кого такая общественная позиция, бустинга карьеры не заслуживают. При этом существенных недостатков в vanilla lmdb нет, поэтому сразу же заменяем в вашем предложении mbdx на lmdb.

2. Вот lmdb как раз можно заюзать, но вместе с dafsa, иначе на хранени путей разоришься. стоковая реализация dafsa в одноимённой либе к сожалению не имеет встроенной функции цепляния к листьям метаинформации. Но есть идентификатор листа, и его можно использовать как ключ хочешь в LMDB, а хочешь вообще perfect hash table сделай.

3. если используешь другие реализации, то в некоторых можно напрямую прицепить к листьям метаданные

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55 Ответы: #58, #62

58. Сообщение от Аноним (47), 23-Авг-25, 14:00   +/
Забыл добавить: в моей реализации чего-то подобного всё ещё lzma2-компрессией накрывалось.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57

59. Сообщение от Аноним (60), 23-Авг-25, 14:04   +/
> Там не очень надёжно логирует, насколько я понял.

так атрибуты можно редактировать (заменить current process), чтобы ввести в заблуждение. А в случае с аудит логом - нет.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54 Ответы: #67

60. Сообщение от Аноним (60), 23-Авг-25, 14:06   +/
ага, иконки исполняемых файлов в виде папок или документов :) спасибо, не надо.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #66

61. Сообщение от Аноним (60), 23-Авг-25, 14:07    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53

62. Сообщение от Аноним (60), 23-Авг-25, 14:08   +/
> 1. Во-первых libmbdx - это продукт человека

так он по заказу "товарищмайора" делал :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57

63. Сообщение от 12yoexpert (ok), 23-Авг-25, 14:29   +1 +/
> Меня удивили файлы README.md и CHANGELOG.md в add_executable()

думаю, это для того, чтобы они в дереве проекта в IDE отображались

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42

64. Сообщение от Аноним (64), 23-Авг-25, 14:29   +/
> А расширенные атрибуты, значит, нафиг?

А если они не поддерживаются фс либо отключены?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #76

65. Сообщение от 12yoexpert (ok), 23-Авг-25, 14:31   +/
от модулей и компиляторы пока что разваливаются
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47 Ответы: #68

66. Сообщение от eugener (ok), 23-Авг-25, 14:31   +/
Это да, например zip для OS/2 тоже поддерживал расширенные атрибуты, так что можно было заархивировать файл и кому-нибудь переслать, так что у того человека который его разархивирует — он будет с той же иконкой.
Сейчас это выглядит как уязвимость, а тогда была крутая фича.)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60

67. Сообщение от Аноним (8), 23-Авг-25, 14:31   +/
Не могу понять, почему это проблема. На практике подобного не будет никогда. А так, у меня есть похожая программа, которая следит, чтобы порождённые процессы помимо пида и команды имели записанный родительский пид и не терялись (смерть прародителя не важна). Если это не так, родитель (шелл однострочник) перезапускается новым прародителем (любым из). Пару лет крутилось тысячи процессов в день, никаких проблем (целиком благодаря sqlite). А так, конечно, линукс позволяет не только крыть команду, но и запустить другой процесс с тем же пид. Использовать для этого аудит? Увольте, лишнее.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59 Ответы: #83

68. Сообщение от Аноним (68), 23-Авг-25, 15:25   +/
В clang вся базовая функциональность работает и время компиляции сокращает. Не полностью, но работает. import std не работает, и в cmake под специальным вредительской переменной "пропишите "лицензионный ключ", который мы специально периодически меняем, чтобы вы эту фичу даже и не думали всерьёз заюзать". import <...>; не работает совсем.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65

69. Сообщение от Аноним (-), 23-Авг-25, 15:48   +/
Да, правильно такие вещи в xattr писать. Надо посмотреть стандарты, возможно для этого уже предусмотрен трибут. Только PID не нужен, надо писать абсолютный путь к бинарнику. Сам давно пол зуб только:

wget --xattr

И все ссылки известны.

Правда надо помнить о опциях --xattrs для tar, cp , чтобы эти атрибуты не терялись.

  

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

70. Сообщение от Аноним (70), 23-Авг-25, 15:49   +/
>которые кривой файловый менеджер обнулит, но это уже не по адресу)

не не, раскрывай мысль, чем потом копировать чтобы расширенные атрибуты не дропались

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #79

73. Сообщение от Аноним (-), 23-Авг-25, 16:26   +/
> Так ведь в ntfs создатель и без помощи демонов известен.

И вот вижу я что 100500 файлов создал "SYSTEM" или "Administrator" и о чем мне это все говорит, интересно? Не, даже какой процесс это создал - хз. А system и adminsitrator юзаются более 9000 процессов по 100500 поводов. И вот чем вы тут гордиться пытаетесь?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #78

74. Сообщение от Аноним (-), 23-Авг-25, 16:29   +/
> Атрибуты чего? БД хранит лишь кортежи имя файла/имя процесса.

Интересно скуль им для этого зачем? КМК key-value типа tokyocabinet, или кто там кому модный нравится типа lmdb и проч - был бы сильно быстрее для такого?

Или даже вот реально дописать в xattr файла процесс который его создал.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #80

76. Сообщение от Аноним (-), 23-Авг-25, 16:37   +/
>> А расширенные атрибуты, значит, нафиг?
> А если они не поддерживаются фс либо отключены?

Бедный FAT, он пролетает...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64

78. Сообщение от morphe (?), 23-Авг-25, 16:46   +5 +/
> Не, даже какой процесс это создал - хз.

svchost.exe

Не благодари

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #73

79. Сообщение от Аноним (8), 23-Авг-25, 16:57   +1 +/
Ответ "не копируй" устроит? Явно не кдеешный dolphin (kio наверно) -- он сохраняет для файлов с каких-то пор, но обнуляет каталоги. И не помойка mc (стоит птичка сохранять, а толку то, позорище). Понятно не nnn. Есть человеческие фм, вот ranger не подвёл. Если двухпанельники больше по душе, vifm норм. Или mv вон при перемещении файлов между разделами сохраняет расширенные аттрибуты, cp с --preserve=all (-a) тоже, те же rsync и tar имеют ключи, сохраняющие аттрибуты. Лишний повод освоить шелл.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70 Ответы: #88

80. Сообщение от Аноним (8), 23-Авг-25, 17:12   +1 +/
Это всё какое-то мёртвое и ненадёжное. У lmdb часто неподходящие ограничения, leveldb в плане ограничений получше, но по надёжности вообще самое плохое. Я gdbmtool в шелле для подобного использую (dbm в питоне), удобно и прекрасно. Производительностью не интересовался. Что случится, если ядро словит панику, или питание отключится прямо в этот момент, лучше не думать (ни разу не было, впрочем). В этом отношении sqlite сложно переплюнуть, он наиболее надёжный и файл бд выживает под любыми падениями (если не дообмазываться прагмами, конечно).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #74

81. Сообщение от Аноним (94), 23-Авг-25, 17:13   +/
> AIX и прочие и поныне продаются за бабло вме6сто того чтобы "нас всё устраивает, а вы - валите на линукс или винду".

IBM практически прямым текстом говорит именно это — валите на линукс или винду — любому, кто хочет купить AIX. И не знает как сделать так, чтобы на линукс и винду свалили наконец те, кто уже купил и десятки лет использует. И что-то у них проблем с прибылями нет.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #92

83. Сообщение от Аноним (60), 23-Авг-25, 17:29   +/
> Не могу понять, почему это проблема.

заметать следы работы с файлами, вы же там доп. инфу храните в каких-то целях.

> Использовать для этого аудит? Увольте, лишнее.

тут надо задать главный вопрос - "зачем оно вам?", с аудитом все ясно, а вот с вашими расширенными атрибутами хранить доп. инфу чего ради? Если нет цели, которую преследует аудит, то это зря потраченное место на диске. А если вы хотите сделать аналог легкого аудита (аудита только файлов), то к вашему механизму по определению нет доверия, ибо атрибуты может менять владелец файла (процесс и т.д.), отсюда и самообман эдакий.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67 Ответы: #86

86. Сообщение от Аноним (8), 23-Авг-25, 18:18   +/
Основная цель, как видится, всё же, пользователю понимать, кто это тут нагадил файлами и не прибрался -- не всегда угадаешь. И куда. А потраченное место на диске, к примеру, замечательно экономит время при последующих обращениях (не надо считать хэши, чтобы установить соответствие локальной копии удалённой, или искать принадлежность, запуская разные программы в данном случае). Вероятность того, что злонамеренная программа затрёт, конечно, не нулевая, но близко к тому и подобное едва ли попадётся. К тому же, пользователь (и любая пользовательская программа) может изменять только пользовательские расширенные атрибуты, при желании, лишить его этой возможности не проблема. Но это всё не вопрос безопасности. Любой локально исполняющийся код потенциально может иметь встроенный руткит и обойти любой rbac при желании.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #83 Ответы: #87

87. Сообщение от Аноним (8), 23-Авг-25, 18:28   +/
>не надо считать хэши

И это если они вообще есть, я проставляю каталогу различную информацию об архиве файла источника. Откуда получен, время, размер, и так далее. Здорово помогает при работе с данными. Аргументация, с которой удалили поддержку расширенных атрибутов из Хрома, не выдерживает никакой критики -- она просто смешная.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #86

88. Сообщение от Аноним (70), 23-Авг-25, 18:30   +1 +/
>И не помойка mc

не надо так о раритете

>вот ranger не подвёл

да, стоит, превью роликов работает

Забавно, что для cp нужно писать --preserve=all, а не просто -p.

>Ответ "не копируй" устроит?

Нет. У меня припекает что фс=бд с одной стороны, а с другой
все мои расширенные атрибуты дропаются простыми операциями с файлами.
Будто нужна meta_бд о бд на бд, но это на бред же

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #79

89. Сообщение от Аноним (89), 23-Авг-25, 18:33   +1 +/
Следующим вопросом будет, кто занимал 200ТБ с 1 до 3 ночи..... а файлик то в 3 ночи и стрёли. вместе с, естественно, атибутами..

..но правда для этого чудо программа должна еще и размеры хранить и их изменения во времени, и соотв статистику выводить... причём желательно не писать историю если изменение меньше чем ХХХ, дабы самой не попасть со своей базой в свой же топ с +1 байт +2 байта.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

90. Сообщение от Аноним (-), 23-Авг-25, 18:56   +/
freehck, ты конечно молодец..

-p [r|w|x|a]    ... This is deprecated. Convert watches to the syscall form.
-w path    The -w form of writing watches is for backwards compatibility and is deprecated due to poor system performance. Convert watches of this form to the syscall based form.

Больше интересует разница в "system performance"  auditctl vs fanotify и какая(возможно они используют одинаковый механизм, хз), скорее это главный вопрос, который относится к обоим подходам. А то включил такой аудит и сидишь с довольным фейсом "какой ты молодец", а оно "под капотом" добавляет n999999 ms задержку на любой чих.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18

91. Сообщение от Аноним (91), 23-Авг-25, 19:11   +/
А я вот как раз хотел бы поглядеть, кто (какие процессы) что создавали **и удаляли** у меня в какой-то папке. Так что мне нужна история, длиной хотя бы в несколько часов. И чтобы можно было увидеть сразу все файлы, как они по времени расположились.

Из базы такой список получить — один запрос. А сгребать это из атрибутов файлов — для существующих — целое дело, для удалённых — нереализуемо.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #94

92. Сообщение от Мемоним (?), 23-Авг-25, 19:15   +/
> И что-то у них проблем с прибылями нет.

Вообще-то есть. Прибыль за 2015 13.1 млрд долларов, а в 2022 1.6 млрд

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #81

94. Сообщение от Аноним (94), 23-Авг-25, 20:06   +/
Для этого уже есть всё, что нужно, и в ядре, и в юзерспейсе. То, что кто-то не умеет пользоваться операционной системой и городит костыли — проблемы этих кого-то. У нас продакшен системы под таким аудитом. Все возможные файловые операции на сервере известны и при возникновении невозможных сервер изолируется выключением порта на свиче.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #91

95. Сообщение от Интересующийся (??), 23-Авг-25, 20:32   +/
Я пока не пойму... А systemtap запретили уже что ли? Или он не подходит для выполнения тех задач, что задумывал автор этой проги?
Ответить | Правка | Наверх | Cообщить модератору

96. Сообщение от User (??), 23-Авг-25, 20:39   –1 +/
https://github.com/microsoft/ProcMon-for-Linux/blob/main/pro... - для linux

https://github.com/microsoft/ProcMon-for-Linux/blob/main/pro... - для windows
Надеюсь поможет Вам.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13

98. Сообщение от php_не_считаем_за_опыт (ok), 23-Авг-25, 21:21   +/
как это собрать?
Ответить | Правка | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру