1

Об этом уже миллион раз спрашивали, и я рассмотрел несколько сотен "решений", охватывающих десятилетия, ни одно из которых не работает на 100%.

Что я хочу:

Простой, минимальный файл smb.conf, который я могу упаковать в контейнер LXC на базе Alpine Linux, который можно обнаружить, просмотреть с помощью WORKGROUP и разрешить полный, неограниченный гостевой доступ к /mnt /shared без запроса пароля. Что-то, где член семьи идет в "Сеть" на своем компьютере (Windows, Mac, Linux, Chromeos), видит "Файловый доступ", нажимает на него, и он просто работает (доступ для чтения и записи).

Что я пробовал:

  • возиться с кучей настроек, таких как безопасность = общий доступ, безопасность = пользователь, сопоставление с гостем = плохой пользователь, учетная запись гостя = никто, принудительный пользователь = никто, локальный мастер = да, локальный мастер = нет, различные заклинания порядка разрешения имен и куча других вещей, которые я не могу вспомнить в данный момент.
  • Смена прав и владения никому, руту, вашей-маме ...
  • Просматривая каждый форум, SO, SU, SF сообщение об этом ТОЧНО ЖЕ ПРОБЛЕМА и следуя решению, помеченному как РЕШЕНО, безрезультатно.
  • Конечно попробовал https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Standalone_Server
  • загрузил и перезагрузил и переустановил и снова перезагрузил каждую машину в моей сети.

Настройка Samba сложнее получить, чем sendmail. Ничто никогда не работает совершенно правильно, так что любой данный конфиг вызывает одно или несколько из следующих действий:

  • Сервер не может быть обнаружен при просмотре сети
  • Сервер можно просматривать вручную, но автоматически не отображается в разделе "Сеть" Windows
  • Сервер может быть обнаружен в некоторых системах, но не в других (Mac, Linux, Windows)
  • Доступ к серверу возможен только по IP-адресу, а не по имени
  • Клиентская сторона постоянно запрашивает пароль для просмотра WORKGROUP
  • Клиентская сторона постоянно запрашивает пароль для просмотра самой папки.
  • Клиент продолжает жаловаться на проблемы с разрешением, даже после того, как chown -R
  • На стороне клиента время истекает
  • Клиентская сторона ОЧЕНЬ ОЧЕНЬ медленная, на многие операции уходит 10-30 секунд

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

Итак, что я хотел бы знать: может ли кто-нибудь предоставить чистый smb.conf для только что созданного контейнера, который просто работает, для полного гостевого доступа, полностью просматриваемого, полностью обнаруживаемого на всех клиентах, не медленной доли одного каталог? Например:

[global]
   map to guest = Bad User
   security = user
   guest account = nobody

[shared]
   path = /mnt/shared
   public = yes
   only guest = yes
   writable = yes
   printable = no
   force user = nobody

(примечание: вышеуказанный конфиг не работает)

Я могу настроить среду так, чтобы она соответствовала любым предположениям, которые вы хотите (хотя я бы предпочел Alpine как дистрибутив, потому что в нем меньше движущихся частей). Мне просто нужна минимальная базовая настройка "гарантированных работ", которую я могу затем построить постепенно, а не постепенно, как каждый раз, когда мне нужно настроить общий доступ к файлам.

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

2 ответа2

1

Хорошо, мне удалось собрать конфигурацию, которая решает все, включая обнаружение под Windows.

Хитрость в обнаружении Windows состоит в том, чтобы имя NetBIOS совпадало с именем хоста и было не более 15 символов.

/etc/samba/smb.conf:

[global]

# Identification
netbios name = same-as-hostnanme
workgroup = WORKGROUP
server string = Samba Server Version %v

# Network
name resolve order = bcast host lmhosts wins

# Protocol
server role = standalone server
disable netbios = no
wins support = yes
dns proxy = yes
domain master = yes
local master = yes
preferred master = yes
os level = 31

# Security
security = user
map to guest = Bad User
guest ok = yes
guest only = yes
guest account = nobody

# Needed by some Windows installs
server signing = auto

# Printing
load printers = No
printing = bsd
printcap name = /dev/null
disable spoolss = Yes

# Files
directory mask = 0755
force create mode = 0644
force directory mode = 0755
case sensitive = True
default case = lower
preserve case = yes
short preserve case = yes

# Performance
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072
read raw = yes
write raw = yes
server signing = no
strict locking = no
min receivefile size = 16384
use sendfile = Yes
aio read size = 16384
aio write size = 16384

# Logging
syslog = 0
max log size = 100

/etc/avahi/services/samba.service:

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">

<service-group>
  <name replace-wildcards="yes">%h</name>
  <service>
    <type>_smb._tcp</type>
    <port>445</port>

  </service>
</service-group>

Эта конфигурация avahi обеспечивает молниеносный доступ и пропускную способность и делает сервис мгновенно доступным для всех систем с поддержкой Bonjour (Mac и Linux).

0

Я настроил сервер с каталогом drwxrwxrwx jnl jnl /share/backup . Этот каталог используется через samba со следующим smb.conf:

[global]
workgroup = WORKGROUP
log file = /var/log/samba/log.%m
max log size = 1000
server role = standalone server
security = user
map to guest = Bad Password

[Backup]
path = /share/backup
writeable = yes
browsable = yes
guest ok = yes

С этой конфигурацией я могу использовать общий ресурс под любой другой (Windows) ОС напрямую без имени пользователя / пароля и прав R / W. Файлы создаются с -rw-r----- nobody nogroup FILE и папки с drwxrwxr-x nobody nogroup DIR .

Если я хочу, чтобы общий ресурс был скрыт, просто установите browsable = no .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .