Настройка анонимного общедоступного ресурса Samba для доступа через Windows 7 и XBMC

9

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

Вот что у меня было раньше и чего я пытаюсь достичь снова. У меня был общий доступ к самбе на сервере Ubuntu. Любой пользователь в моей сети может получить доступ к общему ресурсу и его содержимому, просто набрав \ Hostname. Пароль не требуется. Пользователи, не входившие в рабочую группу общего ресурса, имели доступ на чтение, но пользователи, входившие в рабочую группу, имели доступ на чтение / запись. (Windows 7)

Теперь, если я пытаюсь подключиться к \ Hostname, у меня запрашивают имя пользователя и пароль. Если я вхожу в ООН PW, я получаю полный доступ, но мне не нужно; мои текущие настройки ...

security = user
map to guest = bad user

[Shares]
path = /home/shares
available = yes
read only = no
browsable = yes
public = yes
writable = yes
guest ok = yes

Я тяну свои волосы над этим. Какие-либо предложения?

РЕДАКТИРОВАТЬ:

Тьфу, это доставляет мне такие трудности. Я так близок.

Вот что у меня есть.

Я могу получить доступ к общему ресурсу из Windows 7, перейдя в начало и набрав \ Hostname \ Sharename, но у меня запрашивают имя пользователя и пароль. Я не могу просто оставить его пустым, потому что он будет использовать мою рабочую группу в качестве домена; поэтому я ввожу \ для имени пользователя, чтобы очистить его и войти с пустым именем пользователя и паролем. Отлично, теперь я могу получить доступ к файлам в общей папке.

Как только я вхожу, конфигурация рабочей группы работает правильно. Если я работаю на компьютере со стандартной рабочей группой, я могу читать и выполнять; компьютер в моей домашней рабочей группе может читать, писать и выполнять. Так что это работает.

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

Все еще тянет волосы за это. Хуже всего то, что в первый раз, когда я сделал это около недели назад, я потратил около 30 минут, и это сработало отлично. Теперь я, вероятно, провел по крайней мере 4 часа, и он все еще не работает.

Testparm:

Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Shares]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

[global]
        workgroup = FELLOWSHIP
        server string = %h server (Samba, Ubuntu)
        map to guest = Bad User
        obey pam restrictions = Yes
        pam password change = Yes
        passwd program = /usr/bin/passwd %u
        passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
        unix password sync = Yes
        syslog = 0
        log file = /var/log/samba/log.%m
        max log size = 1000
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        dns proxy = No
        wins support = Yes
        usershare allow guests = Yes
        panic action = /usr/share/samba/panic-action %d
        idmap config * : backend = tdb

[printers]
        comment = All Printers
        path = /var/spool/samba
        create mask = 0700
        printable = Yes
        print ok = Yes
        browseable = No

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/printers

[Shares]
        path = /home/shares
        read only = No
        guest ok = Yes

ОБНОВЛЕНИЕ: Итак, общий ресурс теперь доступен через мою сеть независимо от рабочей группы. Любой пользователь Windows, который подключается к моей сети, может увидеть NAS под Netowork и получить к нему доступ. Ключ устанавливал безопасность на безопасность = поделиться. Я знаю, это устарело, но это работает, и безопасность = пользователь и сопоставление с пользователем = плохой пользователь не работал для меня.

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

Таким образом, я могу установить каталог на 775, и я буду в состоянии писать, потому что я присоединен к рабочей группе, но другие пользователи могут только читать и выполнять.

Джордж Спейк
источник
Вы должны иметь возможность сопоставлять пользователей рабочей группы для получения определенных разрешений с помощью файла сопоставления имен пользователей: samba.org/samba/docs/man/manpages-3/smb.conf.5.html#USERNAMEMAP
Aaron

Ответы:

8

Случайно наткнулся на эту ветку на форумах Ubuntu и подумал, что это может помочь. Это объясняет шаги, которые происходят за кулисами:

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

Когда это имя пользователя передается, Samba будет искать в своей базе паролей этого пользователя:

  • Если нет совпадения с именем пользователя, пользователь клиента помечается как «Плохой пользователь» и преобразуется (отображается) в гостевую учетную запись, которая по умолчанию - «никто».

  • Если он находит совпадение с именем пользователя и существует пароль samba, совпадающий с паролем, отправленным клиентом Windows, тогда пользователь Windows автоматически получает доступ, но не как анонимный пользователь, поэтому вам нужно было добавить «force user = nobody» к ваша доля определения.

  • Если он находит совпадение с именем пользователя, но пароль samba не совпадает точно с паролем, автоматически отправляемым клиентом Windows, вам будет предложено ввести пароль - даже для гостевого ресурса.

Попробуйте добавить force user = nobodyв определение своего ресурса и посмотреть, если это так.

Изменить 20.02.2013:

Является ли testparmвозвращение код выхода чего - то другого , чем ноль? Тем не менее, я бы пошел вперед и дал бы этой области конфигурации хороший, жесткий взгляд. Кроме того, я не уверен, насколько чувствителен к регистру smb.conf, но в каждом примере, который я вижу (например), map to guest = Bad Userзаглавные буквы B и U. Посетите справочные страницы Samba, чтобы узнать, какие опции вы используете, и перепроверьте все.

Аарон
источник
Эй, Брайс, спасибо за ответ. Мне удалось немного продвинуться с момента моего первоначального вопроса, но у меня все еще есть та же проблема. Мне удалось настроить мой общий ресурс (я называю его Shares) так, чтобы любой член рабочей группы, определенный в глобальных настройках в smb.conf, мог получить право на него - пароль не требуется. Продолжая в следующем комментарии ...
Джордж Спик
Вот настройки для общего ресурса: [Shares] path = /home/shares browsable = yes available = yes read only = no public = yes writable = yes guest ok = yes если я добавлю force user = nobodyего, он сломается и вообще не сможет получить к нему доступ. Вот где это странно, хотя; когда я запускаю testparm, он выдает дамп. По [Shares] path = /home/shares read only = no guest ok = yesкакой-то причине он не видит общедоступных, доступных для записи, доступных и доступных для просмотра определений. Может ли это быть индикатором того, где проблема.
Джордж Спик
@GeorgeSpake редактирование сделано ...
Аарон
1
Я думаю, что testparm просто выплевывает вещи таким образом. Все строчные в файле conf. Я также обнаружил и должен убедиться в этом, что testparm выводит только определения, отличные от заданных по умолчанию, что объясняет, почему некоторые результаты опущены.
Джордж Спик
Недавнее обновление самбы 4.3.11+dfsg-0ubuntu0.14.04.3в Ubuntu 14.04 сломало мою публичную акцию, force user = nobodyэто именно то исправление, которое мне нужно, чтобы вернуть публичную акцию
Antony
7

Вот как настроен OpenElec. Должен делать то, что вы просите. (даже если это будет год спустя ... может быть, это поможет следующему) Просто настройте параметры общего ресурса по мере необходимости.

[global]
  server string = YOURSERVERNAME
  workgroup = WORKGROUP
  netbios name = %h
  security = share
  guest account = root
  socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536
  smb ports = 445
  max protocol = SMB2
  min receivefile size = 16384
  deadtime = 30
  os level = 20
  mangled names = no
  syslog only = yes
  syslog = 2
  name resolve order = lmhosts wins bcast host
  preferred master = auto
  domain master = auto
  local master = yes
  printcap name = /dev/null
  load printers = no
  browseable = yes
  writeable = yes
  printable = no
  encrypt passwords = true
  enable core files = no
  passdb backend = smbpasswd
  smb encrypt = disabled
  use sendfile = yes

[share]
comment = Share
path = /share
available = yes
browsable = yes
writable = yes
public = yes
кругозор
источник
Спасибо за это дополнение! Я изо всех сил пытался получить общедоступный ресурс, работающий с Windows 8.1, эти настройки сделали свое дело.
Давидмдем
13
Urgh! "гостевой аккаунт = root". Это означает, что гостевые учетные записи сопоставлены с root, то есть имеют неограниченные разрешения на что-либо. БУДЬ ОЧЕНЬ ОСТОРОЖЕН! Впереди драконы!
DanielSmedegaardBuus
0

Так как поиск в Google приводит нас сюда, а четкого ответа нет, я подвел итог.

Ниже приведены условия, необходимые для того, чтобы клиенты SMB не запрашивали имя пользователя и пароль при доступе к серверу Samba:

  1. Добавить guest account = <owner-of-your-shares>в [global]раздел. Важно, чтобы аккаунт владельца ваших акций имел к ним доступ. Если вы этого не сделаете, Samba будет считать, что гостевой учетной записью является nobodyпользователь, который вряд ли имеет доступ к данным в вашей общей папке.

    В качестве альтернативы вы можете указать force user = <owner-of-your-share>под своим [shareXYZ]блоком.

  2. Убедитесь, что у вас [shareXYZ]есть guest ok = yes.

    Устанавливается, browsable = yesно обычно он наследуется от [global]и устанавливается yesпо умолчанию.

Затем, вероятно, также security = userследует установить (это значение по умолчанию, если в вашей среде не установлен Active Directory). Хотя я не уверен, требуется ли этот флаг, поскольку у меня нет AD в моей среде.

Конечно, если вы хотите, чтобы nobodyпользователь работал, тогда вы можете просто chown -Rh 65534:65534 /yourshare, после этого вам будет хорошо только с одной настройкой guest ok = yesпод вашим [shareXYZ].

Обратите внимание, что установка rwxв others( chmod o+rwx /yourshare) не позволила Samba с его nobodyпользователем в общий ресурс. Я проверил это с strace -f -e chdir,geteuid,getegid -p <pid-of-the-parent-smbd-process>. Вероятно, Samba просто игнорирует разрешения, установленные для others? Точно сказать не могу.

Андрей Арапов
источник