Назад | Перейти на главную страницу

Как сделать так, чтобы Samba не запрашивал ПАРОЛЬ

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

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

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

Сервер:

Клиент:

  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, как и предполагалось, при попытке открыть их вывести диалоговое окно входа в систему / пароля.

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

Хорошо, я сам нашел ответ.

Как это совершенно не очевидно из документации, 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

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

Создать пользователя unix jonnie

useradd jonnie -s /usr/sbin/nologin

Создать smbuser

smbpasswd -a jonnie

Создайте каталог Linux для совместного использования

mkdir /mysmbshare

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

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

Все файлы принадлежат jonnie, и у всех есть доступ к файлам rw.

Быстрый и грязный способ получить открытый общий ресурс 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 года, мне нужно было установить политику домена: цифровая подпись сообщений всегда отключить.