Как стать автором
Обновить

Проблемы монтирования CIFS у клиентов при обновлении samba на сервере

Время на прочтение 2 мин
Количество просмотров 16K
Домашний файловый сервер (GNU/Linux) работал на третьей Самбе. Доступ к файлам был сделан полностью публичный анонимный, поскольку посторонних пользователей нет принципиально и защищаться не от кого.
Пришла пора менять сервер на более мощный (появились новые задачи). При настройке возникла проблема с подключением разных клиентов к новой версии Самбы.


Серверная samba


И на старом, и на новом серверах используются дистрибутивы GNU/Linux с бинарными пакетами — это облегчает установку и регулярное обновление ПО.

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

Ключевые параметры smb.conf на старом сервере (smbd version 3.2.5):
[global]
   security = share
   dos charset = CP866
   guest account = smbguest
   invalid users = root
[files]
   path = /srv/files
   comment = Files
   browseable = yes
   writable = yes
   public = yes
   guest only = yes


На новом сервере Самба уже четвёртой версии, и у неё довольно много изменений. Самое важное для описанной конфигурации:
  • нет режима security=share при сборке по умолчанию


Скопировал /etc/samba/smb.conf на новый сервер, закомментировал security=share (по умолчанию используется security=user) и запустил nmbd и smbd.

Клиенты на Linux


Подключение к ресурсу «files» старого сервера в /etc/fstab:
//srv/files /srv/files cifs rw,guest,ip=192.0.2.2,uid=1001,gid=users

При попытке подключить ресурс files нового сервера с теми же опциями получаем ошибку:
# mount -t cifs -o rw,ip=192.0.2.17,uid=1001,gid=users,guest //host-17/files /srv/host17files
mount: block device //host-17/files is write-protected, mounting read-only
mount: cannot mount block device //host-17/files read-only


Попытки найти правильные параметры окончились неудачей, пришлось гуглить.
Оказалось, что cкомпилированная в /sbin/mount подддержка cifs не поддерживает новые версии самбы, и нужно использовать /sbin/mount.cifs (по умолчанию не установлен). У установленных дистрибутивов Ubuntu и Altlinux этот файл содержится в пакете cifs-utils (версии программы 6.0 и 5.7 соответственно). После установки пакета монтирование стало проходить без ошибок.

Клиенты на Windows


При подключении к старому серверу работал анонимный вход.
При попытке подключиться к новому серверу получаем запрос логина-пароля.

Причина такого поведения в том, что Windows сначала пытается залогиниться на сервер с учётными данными пользователя Windows, и только при неудаче использует гостевой вход, в то же время в самбе в режиме security=user по умолчанию сделано так, что при попытке входа с неизвестным пользователем она не переключается на гостевой вход (за это отвечает параметр «map to guest = Never», такое значение по умолчанию).

Решение простое: нужно указать «map to guest = Bad User» в глобальной секции smb.conf.

В конфигурации, отличающейся от описанной, такое значение параметра может вызвать отказ в подключении — если используется парольный вход и логин совпадает с имеющимся в базе пользователей самбы. Для такого случая есть другие варианты параметра, или можно воспользоваться советом, чтобы имена пользователей не совпадали.
Теги:
Хабы:
-2
Комментарии 7
Комментарии Комментарии 7

Публикации

Истории

Работа

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн