Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
/usr/bin/curl -d "host=fake&serial=1&name=2&vendor=3&file=');+DROP+DATABASE+usb;+SELECT+('qwerty&sub=true" --noproxy 10.0.40.16 http://10.0.40.16/usb/input.php
Например, в части вызовов curl'а параметр называется file, в части — action.
У вас, кстати, есть явный race condition.
Ещё SQLi в скрипте:
ACCESS=`find /media -anewer /var/tmp/usb.check -type f`
relatime
Update inode access times relative to modify or change time. Access time is only updated if the previous access time was earlier than the current modify or change time. (Similar to noatime, but doesn’t break mutt or other applications that need to know if a file has been read since the last time it was modified.)
Since Linux 2.6.30, the kernel defaults to the behavior provided by this option (unless noatime was specified), and the strictatime option is required to obtain traditional semantics. In addition, since Linux 2.6.30, the file’s last access time is always updated if it is more than 1 day old.
Плюс с cnewer/newer будут проблемы, т.к. пользователь может дома залить что-то на флешку уже после момента запуска скрипта. Скрипт эти файлы также посчитает.
В общем, если есть желание сделать работающее решение, то нужно копать в сторону FUSE.
Ну и раскидайте свой открытый ключ по всем машинкам, негоже в скриптах указывать рутовый пароль :)
Почему, если скрипт в самом начале своей работы обновляет время служебного файла?
Форматировать флешки в FUSE?
Скрипт запускается ведь не при монтировании флешки, а при старте компа, верно?
Комп включили вчера, флешку принесли сегодня. Или комп включили утром, а пользователь пришел на работу в обед, предварительно поработав с флешкой.
И не исключаем ситуации, что у пользователя на домашнем компьютере время банально улетело вперёд.
Поэтому, как уже писали, единственное правильное решение использовать inotify.
А во-вторых, правильно ли я понимаю, что если перед подключением usb накопителя «выдернуть ethernet шланг», то события у вас не залоггируются?
Но, для выполнения операций с файлами пользователю придется вставить шнурок назад.
Мониторинг подключения USB накопителей и логирование операций с файлами