2015-06-27 1 views
1

У меня есть каталог, и я бы хотел, чтобы любой файл, добавленный в этот каталог, автоматически выполнял chmod с определенным набором разрешений.Автоматически назначать разрешения для любого файла, скопированного в каталог

Есть ли способ сделать это?

+0

Есть вложенные папки? – HuStmpHrrr

ответ

3

Реагируя на файловой системе события (в Linux) может быть сделано с помощью inotify ,

Существует множество инструментов, основанных на inotify, которые позволяют вам вызывать команды в ответ на события файловой системы. Одним из таких инструментов является incron. Вам может понравиться это, так как он может быть настроен так же, как и знакомый демон cron.

Файлы, перемещенные в контролируемый каталог, генерируют событие IN_MOVED_TO.

the incrontab file Так будет содержать запись вроде

/path/to/watch IN_MOVED_TO chmod 0644 $# 
+0

Спасибо, это определенно сделает трюк. Мне кажется, должен существовать флаг файловой системы, который можно установить, чтобы позволить каталогу автоматически принудительно наследовать свои права на любые дочерние элементы, которые перемещаются, копируются или создаются в нем. Думаю, я предлагаю это как запрос функции для Ext5;) – 1337ingDisorder

1

Вы можете создать cron, который проверяет/chmods файлы в этом каталоге.

Что-то, как это будет работать:

find /path/to/directory -type f -print0 | xargs -0 chmod 0644 

(Конечно, вы должны отредактировать путь и установить необходимые разрешения)

1

Вопрос слишком неопределенные и опасно давать какой-либо ответ, как это.

Кто (/ что) создает файлы в вышеупомянутом каталоге? Какие права вы хотите установить и почему, по вашему мнению, это необходимо? Почему все, что их создает, не может самостоятельно использовать ожидаемые права?

Например, все эти «find» chmod или inotify наблюдатели и другие инструменты, упомянутые в других комментариях, являются огромной дырой в безопасности, если это каталог, в который каждый может помещать файлы, и такая команда chmoding будет запускаться с корневыми привилегиями , так как его можно обманывать следующим текстом symlink и chmoding, например/etc/shadow.

Это/может/быть реализовано надежно, но, скорее всего, настоящая проблема не требует этого.

+0

Спасибо за соображение безопасности. Это для локальной системы, где я единственный пользователь (запрет вторжения в мою частную сеть, хотя на этом хосте нет SSHD, поэтому без руткита я думаю, что злоумышленнику необходимо будет получить физический доступ к ПК, чтобы использовать inotify watcher, и в этом случае у меня будут большие проблемы, чем злоумышленник, просто использующий упомянутого наблюдателя. – 1337ingDisorder