До сих пор я использовал эту строку в /etc/fstab
:
/home/ftp_user /home/app_user/mounts/ftp_user fuse.bindfs mirror=app_user 0 0
Это работает. В app_user
может получить доступ к файлам ftp_user
как если бы файлы были его собственными файлами.
Теперь я хочу использовать inotify. В app_user
следит за изменениями в каталоге, подключенном к привязке.
Работает если app_user
касается файла в /home/app_user/mounts/ftp_user
.
Но не работает, если ftp_user
касается файла в /home/ftp_user
.
Есть ли способ заставить это работать?
ОС: только Linux.
По возможности избегайте умных решений inotify. Часто лучше получать файлы через http, так как вы можете проверить файлы перед их принятием. Видеть используйте http, избегайте ftp / sftp / scp / rsync / smb / mail
То, чего вы пытаетесь достичь, невозможно.
Посмотрите на https://bindfs.org/ и прокрутите вниз до раздела «Известные проблемы». Вы увидите это
События inotify не запускаются, поскольку FUSE не предоставляет API для этого
Вы можете использовать inotify для мониторинга / home / ftp_user, но в этом случае пользователю, который настраивает часы, потребуется доступ к этому каталогу.
В противном случае работает:
Ftp_user получает виртуальный (смонтированный) каталог, а app_user содержит реальный каталог.
/home/ftp_user /home/app_user/import/ftp_user fuse.bindfs mirror=ftp_user 0 0
Новые файлы создаются в виртуальном каталоге (например, /home/ftp_user/new.txt
). Это запускает inotify, который запускается как пользователь app_user
. В этом примере событие файла создается для /home/app_user/import/ftp_user/new.txt
.