Как получить список пользователей и групп, имеющих доступ на чтение к файлу, учитывая его полный путь (с разрешением на Linux

Ответить
Anonymous
 Как получить список пользователей и групп, имеющих доступ на чтение к файлу, учитывая его полный путь (с разрешением на

Сообщение Anonymous »

Я программирую кеш второго уровня для файлов в Linux (основной, конечно, находится в оперативной памяти).
Я пытаюсь создать программное обеспечение, которое будет использовать быстрый SSD диски как дополнительный контейнер для архивов, расположенных на медленных запоминающих устройствах (HDD, магнитные ленты,...)
К сожалению, я не нашел подсистему, которая была бы достаточно проста в использовании и гибка.
Существующие (например, bcache) не являются легко настраиваются (обычно их необходимо инициализировать вместе с диском) и работают только с одним выделенным диском.
Остальные тесно связаны с файловыми системами (ZFS, LVM, ...)
Я хотел создать более гибкое программное обеспечение:
  • может работать с несколькими дисками одновременно (со смешанными типами файловых систем)
  • можно активировать/деактивировать в любое время
  • работает только как кэш только для чтения (измененные файлы удаляются из кэша)
  • кэш постоянный (продолжает работать после перезагрузки системы)
Необходимость в таком простом кэше появилась в моем случае в связи с работающим битторрент-клиентом.
Клиент отправляет большие файлы (несколько ГБ), которые для этого Причина не может быть сохранена в системном кеше (ОЗУ).
Поскольку в результате мои диски (несколько HDD) постоянно "дребезжат" во время работы, обрабатывая случайные запросы на перенос.
У меня в системе быстрый SSD диск (512 ГБ) почти полностью свободен и он должен выполнять роль второго уровня кэш.
А теперь моя проблема. У меня есть рабочий скелет такой программы, но в ограниченной версии. Кэш является «приватным», т.е. доступ к нему имеют только назначенные пользователи (из-за прав доступа к файлам).
Я хотел распространить его работу на любых пользователей, но для этого мне нужно предоставить доступ для каждого файла в кешировать только пользователям и группам, имеющим доступ к исходному файлу.
В настоящее время я использую для этой цели ACL, который предоставляет соответствующие разрешения файлам, сохраненным в кеше. Теоретически это просто. Для каждого исходного файла и всех его подкаталогов на пути вам необходимо собрать пользователей и группы, которые могут получить к нему доступ.
И установить разрешения на чтение файла кэша только для этих отфильтрованных пользователей и групп.
Кто-нибудь знает, где в ядре Linux (или в системной программе) я могу найти алгоритм (модуль?), который выполняет подобную фильтрацию?
Может быть, «rsync»? 'cp'?
Я начал программировать такой модуль, но меня беспокоит его качество (не эффективность).
Пока я использую системные программы getfacl и setfacl.
С точки зрения производительности эти программы достаточно быстрые, поскольку предоставление разрешений происходит только один раз при создании нового файла в кэше.
ТИА

Подробнее здесь: https://stackoverflow.com/questions/793 ... -given-its
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»