S3.Blog

14 Марта 2026
A A A   RSS-лента
"Я знаю, что ничего не знаю, но многие не знают и этого". Сократ [?].

Linux: Samba, CIFS/Linux и симлинки

Дата последнего изменения: 10 Февраля 2012
Метки статьи: Фиксы & Хаки, Linux
Недавно столкнулся с проблемой: телевизор Samsung, подключенный к домашней сети по samba (версия 3.0.34) никак не хотел видеть каталог, который был прилинкован к расшаренной папке через ln -s
 


Поиск в гугло-яндексе выдал похожую проблему:

Есть сервер debian sarge с самбой 3.0.14a-3sarge11.
Есть клиент ubuntu gutsy с CIFS smbfs_3.0.26a-1ubuntu2_amd64

На сервере есть каталог, расшаренный по самбе. В каталоге есть симлинк за пределы этого каталога, в другую файловую систему, через самбу (напрямую) не доступную. Я его монтирую командой sudo mount -t cifs \\\\server\\share localdir -oiocharset=utf8
С виндовых клиентов симлинк выглядит как каталог и содержимое другой файловой системы доступно.
С убунту, CIFS договаривается с самбой о поддержке CIFS Unix extensions и показывает клиенту симлинк как симлинк. Разумеется, на клиенте этот симлинк выглядит как ссылка в никуда.
Хочется, чтобы убунтовый клиент видел симлинки на сервере как каталоги, а не как симлинки.


и решение этой проблемы:

В старых версиях Samba symlink мог ссылаться на любой файл сервера. В новых версиях (начиная с версии 3.2) это поправлено для исключения symlink-атак (http://www.samba.org/samba/news/symlink_attack.html).

Из-за этого исправления очень часто, при настройке шар самбы, новички спотыкаются на этих симлинках. Их или не видно или они не работают (ведут куда-то не туда).
Все дело в том, что у Samba есть целых ТРИ режима работы с симлинками, причем 2 из них - взаимоисключающие.
Первый параметр отвечающий за режим работы с симлинками это follow symlinks. Если он не разрешен, самба вообще не отображает ссылки.

Второй и третий параметры - отвечают за то кто обрабатывает симлинки - сервер Samba или клиентская машина. Их две: wide symlinks и unix extensions. Первая включает режим обработки симлинков сервером, это режим для работы с Windows клиентами. Второй - включает режим работы с Unix клиентами, когда с симлинками разбирается клиент. Если они оба включены, то предпочтение отдается unix extensions, а он включен "по умолчанию".

Исходя из вышесказанного, для типичной ситуации, когда клиенты - это компьютеры с windows, настройки надо сделать следующим образом:
[global]
    unix extensions = no
    ...

[имя_ресурса]
    follow symlinks = yes
    wide symlinks = yes
    ...


Да, но что делать тем, у кого самба ниже версии 3.2?

остается одно - включить unix extension на стороне клиента:

// входим в root-зону
$ sudo -i

// если отсутствует каталог /proc/fs/cifs/ то выполняем modprobe
# modprobe cifs

// выключаем unix extension
# echo 0 > /proc/fs/cifs/LinuxExtensionsEnabled

// монтируем самба-шару
# mount ....


По материалам:
Samba, CIFS/Linux и симлинки
Символические ссылки (symlinks) в ресурсах samba
Все о Samba




Похожие материалы:




GrumbaL (гость) • ответить
Доброго времяни суток, Александр.
Есть такой вопрос, возможно сталкивались: есть домашний ТВ Philips 47PFL4007T/60 и NAS собственной сборки на Ubuntu Server с самбой и MediaTomb в качестве DLNA-сервера. ТВ в DLNA видит мой расшаренный каталог на NASe, но в нем нет функций поиска определенных фильмов, а так как коллекция фильмов более 1000 шт., клацать лентяйкой в поиске просто убивает... Что можно придумать для реализации поиска? Пилить DLNA на ТВ наверное нет возможности...
Александрответить
если функции поиска изначально нет в телевизоре, то вам ничего не поможет, кроме каких-то самодельных апдейтов прошивки именно для вашей модели телевизора
Clyde K. Hirsch (гость) • ответить
If you’ve ever wanted to unleash cosmic chaos in a virtual universe, Solar Smash is the perfect game for you. This planet destruction simulator lets you experiment with various weapons and disasters to obliterate planets, moons, and even entire solar systems. Whether you're looking to blow off steam or simply enjoy creative destruction, Solar Smash offers a satisfying and visually engaging experience.
You can try it out for yourself at Solar Smash

 
 
  Имя *:   Решите пример *: =
 
Полужирный Курсив Подчеркнутый Перечеркнутый
 
Вставить изображение Сделать цитатой Вставить ссылку Вставить код

Вставить смайл
 
 

 



© S3.Blog: Если критикуешь, не предлагая решения проблемы, то ты становишься частью этой проблемы.