2

У меня есть сервер Samba и смесь клиентов Mac и Windows. На этих клиентах у меня есть приложение, которое требует знать полный путь к файлам на сервере samba. Для сервера samba мы используем vfs_fruit и vfs_streams_xattr, которые могут обрабатывать расширенные атрибуты.

Мне интересно, можно ли как-то поместить реальный путь к файлу на сервере samba в качестве расширенного атрибута и позволить клиентам прочитать этот расширенный атрибут.

Я попытался реализовать это, изменив исходный код для Samba, но безрезультатно. Некоторая помощь будет оценена.

1 ответ1

0

Не знаю, зачем вам это нужно, но вы можете сохранить полный путь к файлам на сервере в "альтернативном потоке данных NTFS", который затем будет доступен для чтения клиентами Samba. Samba "подделывает" альтернативные потоки данных NTFS, сохраняя их как расширенные атрибуты.

Ваши данные будут просто путем, поэтому streams_xattr будет в порядке. Расширенный атрибут должен называться user.DosStream."ADS-NAME" как видно по адресу https://www.samba.org/samba/docs/man/manpages/vfs_streams_xattr.8.html

Написание сценария для периодического добавления атрибута к существующим файлам с помощью setfattr будет достаточно простым делом .

Создать его "в реальном времени" было бы сложнее, но изменение исходного кода Samba не требуется, вам просто нужно запустить скрипт для создания / изменения расширенного атрибута при создании / перемещении файлов. Посмотрите на incron для этого, есть пример на https://stackoverflow.com/questions/14692353/executing-a-bash-script-upon-file-creation

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .