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

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

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

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

на данный момент я запускаю El Capitan, Ubuntu 16.04 с Samba 4.3.11.

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

27
задан JakeGould
01.04.2023 3:38 Количество просмотров материала 3112
Распечатать страницу

1 ответ

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

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

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

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

Примечание если этот параметр включен, широкий параметр ссылки автоматически отключается.

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

по умолчанию: Unix extensions = yes

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

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

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

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

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

0
отвечен BeowulfNode42 2023-04-02 11:26

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх