Удаление символической ссылки папки Ubuntu удаляет содержимое целевой папки, когда выполняется через OSX & Samba

У меня проблема с удалением символической ссылки папки на смонтированном Samba share также удаляет содержимое целевой папки при доступе с моего Macbook. Это на самом деле проблема, которую я имел в течение многих лет, и остается, несмотря на использование разных версий машин и операционных систем.

Вот последовательность событий:

  1. Touch foo / bar / 1.txt
  2. Создайте символическую ссылку на папку на машине Ubuntu, то есть ln -s foo / bar bar2
  3. Соедините долю Samba, содержащую символическую ссылку bar 2 на Mac
  4. Удалите символическую ссылку bar2 через Mac.
  5. Символьная строка bar2 будет удалена, но файл foo / bar / 1.txt также исчезнет. Любые файлы или папки в foo / bar исчезнут.

На данный момент я управляю El Capitan, Ubuntu 16.04, с Samba 4.3.11.

У меня есть следующие опции в моем smb.conf, которые являются единственными, что приходит на ум, насколько это возможно: разрешить небезопасные широкие ссылки = да unix extensions = no

Поскольку совместное использование файлов Windows и, следовательно, исходная samba не имели понятия символических ссылок, она обычно удаляла бы все дерево папок через символическую ссылку. Однако вы можете попробовать перейти на unix extensions = yes как ваш OSX может это понять.

На странице https://www.samba.org/samba/docs/man/manpages/smb.conf.5.html#UNIXEXTENSIONS

Расширения unix (G)

Этот логический параметр определяет, реализует ли Samba расширения CIFS UNIX, как определено HP. Эти расширения позволяют Samba лучше обслуживать клиентов UNIX CIFS, поддерживая такие функции, как символические ссылки, жесткие ссылки и т. Д. Эти расширения требуют клиента с одинаковой поддержкой и не используются в настоящее время для клиентов Windows.

Обратите внимание, что если этот параметр включен, параметр широких ссылок будет автоматически отключен.

См. Параметр позволяют небезопасные широкие ссылки, если вы хотите изменить эту связь между двумя параметрами.

По умолчанию: unix extensions = yes

Возможно, вам захочется исследовать опцию небезопасных широких ссылок, так как вы можете отключить ее для достижения результатов, которые вы после.

Вышеупомянутое может по-прежнему не работать по вашему желанию из-за того, что многие системы реализуют удаление структуры папок. Обычно последовательность выполняется как

  1. Клиент неправильно обнаруживает объект, который нужно удалить, это структура папок вместо символической ссылки.
  2. Клиент рекурсивно переходит к самым глубоким уровням дерева и удаляет все содержимое этих папок.
  3. Клиент работает с самых глубоких уровней обратно в папку, которую вы сказали удалить, удаляя их
  4. То, наконец, когда папка пуста, клиент отправит команду для удаления папки
  5. Однако, поскольку папка на самом деле является символической ссылкой, хост удаляет только символическую ссылку.

Таким образом, содержимое цели удаляется вместе с символической ссылкой, но не фактической целевой папкой.

Аналогичным образом, когда ему дается указание удалить символический файл, удаляется только символическая ссылка. Проблема с символической структурой папок заключается в том, что клиент samba отправляет команду delete ко всему содержимому, прежде чем указывать серверу на удаление символической ссылки на эту папку.

  • Разрешение на создание символических ссылок в Windows 7?
  • Ubuntu - Создайте ссылку на указанный каталог, чтобы я мог легко перейти на этот каталог
  • Samba Linux - Почему машины окон не отображаются и не следуют символическим ссылкам?
  • Как установить короткую ссылку symlink на Sublime Text 3 в терминале?
  • Сделать символическую ссылку в bash с двумя относительными путями
  • Interesting Posts

    Как я могу сгладить папку в Windows 7, если все имена файлов различны?

    Удалить все вхождения символа из строки

    Свежая установленная Windows XP отказывается обновлять

    Почему ConcurrentHashMap предотвращает нулевые ключи и значения?

    размер блока данных в HDFS, почему 64 МБ?

    Поп-fragment backstack без воспроизведения Pop-Animation

    Утилита для блокировки положения окна и размера окон в Windows 7

    Перенаправление локальной локальной сети и интернет-трафика в VPN

    Boost :: Asio: io_service.run () vs poll () или как интегрировать boost :: asio в mainloop

    Должен ли я перезагружаться после dist-upgrade?

    Получить другой процесс argv в OS X, используя C

    как настроить «Основной class» в «Запуск конфигураций» в Eclipse

    Предупреждения памяти iPhone OS. Что означают разные уровни?

    Фильтрация столбцов datetime jqGrid с использованием выбора даты только по дате

    Как настроить предпочтительные приложения в Nautilus по расширению файла, а не типом mime?

    Давайте будем гением компьютера.