использование inotify для контроля доступа к файлу

Если Ваш используют оболочку, то только запускают новый вход в систему, например. su youruserid -

протестируйте его, затем выходят назад к Вашей исходной оболочке входа в систему

Если Вы используете gui, выходите из системы и вход в систему снова.

2
06.06.2014, 01:57
2 ответа

Согласно Жилю на Суперпользователь :

Простой, с использованием inotifywait (установите пакет inotify-tools вашего дистрибутива):

 while inotifywait -e close_write myfile.py; сделать ./myfile.py; done 
 

Это имеет большое ограничение: если какая-то программа заменяет myfile.py другим файлом, а не записывает в существующий myfile , inotifywait умрет. Так работает большинство редакторов.

Чтобы преодолеть это ограничение, используйте inotifywait в каталоге:

 while true; сделать 
change = $ (inotifywait -e close_write, move_to, create.) 
change = $ {change #. / *} 
if ["$ change" = "myfile. ру "]; затем ./myfile.py; fi 
готово 
 
3
27.01.2020, 21:57

Базовым интерфейсом оболочки для inotify является inotifywait из inotify-tools .

Для отслеживания всех обращений к файлу:

inotifywait -mq --format '%e' /path/to/file |
while IFS= read -r events; do
  /path/to/script "$events"
done

Ваш скрипт вызывается со списком одновременных событий, разделенных запятыми, каждый раз, когда что-то происходит с файлом (чтение, запись, закрытие,…).

2
27.01.2020, 21:57

Теги

Похожие вопросы