Как заставить Samba делиться, чтобы НЕ ЗАПРОСИТЬ ПАРОЛЬ


20

ПРИМЕЧАНИЕ: я прочитал, вероятно, до 50 различных страниц, описывающих, как настроить общедоступный ресурс Samba в течение 2 ЛЕТ, и у меня ничего не получалось. Я не знаю, сколько RTFM мне нужно, чтобы установить все это.

Мне нужно / я хочу настроить полностью открытый общий файловый ресурс на моем домашнем сервере для двух рабочих станций.

Настройка выглядит следующим образом:

Сервер :

  • Debian Wheezy
  • sudo smbd --versionдает мне Version 3.6.6.
  • 2 локальных раздела, которыми я хочу поделиться, отформатированные в NTFS из-за того, что они старые и взяты с Windows-машины. Я не могу отформатировать их в ext * FS, потому что они содержат много данных, которые я (пока) не могу переместить куда-либо еще.
  • машина названа "homeserv" из-за отсутствия оригинальности.

Клиент :

  1. Тестирование Debian (Джесси)
  2. Windows 7 (2 разные машины). Фактически, моя машина - двойная загрузка Debian / Windows, а машина моей жены - только Windows.

Мой smb.conf после перегонки выглядит следующим образом ( дословно , больше ничего нет):

[global]
  workgroup = WORKGROUP
  security = user
  map to guest = Bad User

[disk1]
  comment = Disk 1 on 400GB HDD
  path = /media/disk1
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 0755

[disk2]
  comment = Disk 2 on 400GB HDD
  path = /media/disk2
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 0755

На обеих клиентских машинах, как в Debian, так и в Windows, я получаю один и тот же результат: диалог логина / пароля. Никакая комбинация security = user, map to guest = Bad user, security = share, guest ok = yesи такое не помогло.

Windows 7 показывает диалог входа в систему / пароль сразу после того, как я нажимаю на общий компьютер в сетевом окружении. smb://homeserv/путь к файлу в Debian (в любом файловом браузере) показывает мне две папки: disk1и disk2, как и предполагалось, при попытке открыть их вывести диалог логина / пароля.

Итак, чего мне не хватает в схеме, чтобы НЕ ИСПОЛЬЗОВАТЬ логин / пароль? Это вопрос юзабилити, я не буду создавать пользовательскую аутентификацию для файловой свалки.

Ответы:


14

ОК, я нашел ответ сам.

Поскольку это совершенно не очевидно из документов, HOWTO и других, причина, по которой эта штука запрашивает пароль, заключается в том, что она не может сопоставить гостевого пользователя с владельцем общего каталога .

У меня есть разделы NTFS, которые мне нужны для монтирования RW, поэтому я использовал следующую настройку /etc/fstab:

/dev/sdb1  /media/disk1  ntfs defaults,noexec,noatime,relatime,utf8,uid=1000,gid=1000 0       2
/dev/sdb2  /media/disk2  ntfs defaults,noexec,noatime,relatime,utf8,uid=1000,gid=1000 0       2

Наиболее важными частями конфигурации являются uidи gid(может быть, только uid, не знаю). Они настроены на UID и GID пользователя, jonnieустановленного на сервере (очевидно, не root). Итак, когда ntfs-3g будет монтировать эти диски, все будет принадлежать ему.

После этого я добавил этого пользователя в реестр Samba (или, может быть, создал новый идентичный, пофиг):

# smbpasswd -a jonnie

Он спросил пароль, я ввел так же, как и для основной системы.

После этого, я добавил force userи force groupнастройки в smb.conf:

[global]
  workgroup = WORKGROUP
  netbios name = HOMESERV
  security = share

[disk1]
  comment = Disk 1 on 400GB HDD
  path = /media/disk1
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 666
  directory mask = 777
  force user = jonnie
  force group = jonnie

[disk2]
  comment = Disk 2 on 400GB HDD
  path = /media/disk2
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 666
  directory mask = 777
  force user = jonnie
  force group = jonnie

Итак, самый важный кусок конфигурации, относящийся ко мне, был force user.

Предоставлено Samba HOWTO


1
«явно не root». Это на самом деле не так очевидно. Самба имеет десятки режимов отказа. Большинство приводит к идентичным сообщениям об ошибках. Вот почему вы потратили так много времени на бесполезные поиски в Google. Мало того, что один поиск вызовет множество проблем, но найденные ответы также пострадают от той же путаницы. Использование root устраняет безопасность Linux, но также позволяет диагностировать проблему. Если он работает с правами root, у вас есть проблема безопасности на уровне Linux. Если Samba по-прежнему не работает, проблема в представлении Samba о пользователях (они разные и должны были иметь уникальные ошибки)
MSalters

2

Конфиг может быть короче:

Создать пользователя Unix Джонни

useradd jonnie -s /usr/sbin/nologin

Создать Smbuser

smbpasswd -a jonnie

Создайте каталог Linux, чтобы поделиться

mkdir /mysmbshare

Изменить владельца каталога на Джонни

chown /mysmbshare jonnie

smb.conf

[global]
  workgroup = MyWorkGroup
  server string = Hello, use me
  security = share
  guest account = jonnie
  passdb backend = tdbsam

[the_public_share]
   path = /mysmbshare
   writable = yes
   printable = no
   public = yes

Все файлы принадлежат Джонни, и каждый имеет доступ к файлам.


Да, "изменить владельца каталога на Джонни", пожалуй, самая важная часть здесь. Спасибо за гораздо более короткое решение!
хиджарский

1

Быстрый и грязный способ иметь открытый ресурс Samba - это:

# ----------------------- Standalone Server Options ------------------------
#
# Scurity can be set to user, share(deprecated) or server(deprecated)
#
# Backend to store user information in. New installations should
# use either tdbsam or ldapsam. smbpasswd is available for backwards
# compatibility. tdbsam requires no further configuration.

        security = share
        passdb backend = tdbsam

и иметь акции определяет как таковой:

[export]
   comment = Data Export Directory
   path = /data/export
   read only = no
   public = yes
   browseable = yes
   writeable = yes
   create mask = 666
   directory mask = 777

Перезапустите демон.

Для клиентов Windows 7, начиная с 2014 года, мне нужно было установить политику домена: цифровую подпись сообщений от всегда до ОТКЛЮЧЕНО.


Боже мой, меняя политику домена для якобы публичных акций ... (facepalm). Хорошо, в любом случае, спасибо, но нет, я попробовал это только сейчас, и для доступа smb://homeserv/disk1все еще требуется пароль в Debian. Я использовал файловые браузеры Dolphin и Krusader. Может быть, это что-то в KDE.
Хиджарян

эй, это сработало! : D public = yesи 777разрешения сделали свое дело (Win 10 хостинг Ubuntu 18.04). К счастью, это на моей личной рабочей станции, так что мне не о чем беспокоиться
Артур Тарасов
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.