SAMBA - описание настройки сервиса, примеры конфигураций

Материал из Викиадмин
Версия от 14:18, 14 ноября 2018; Aleksdem (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Samba (домашняя страница) предоставляет собой службу доступа к файлам и принтерам для различных клиентов Microsoft Windows и может интегрироваться с операционной системой Windows Server, либо как основной контроллер домена (PDC), либо как член домена. Она также может быть частью домена Active Directory. По сути - та самая всеми любимая служба для доступа к “расшареным” папкам и принтерам. Несмотря на наличие некоторых других вариантов, этот сервис остается весьма популярным и востребованным в локальных сетях. Поэтому поднятие этой службы на Linux-машине - не редкость.

Простейшая настройка SAMBA заключается в конфигурировании сервиса в файле smb.conf (/etc/samba/smb.conf в centos или ubuntu). В данном примере мы настроим одну расшаренную папку и принтер в SAMBA.

Пример простой настройки SAMBA

[global]
   null passwords = yes #разрешаем вход без пароля
   encrypt passwords = yes
   realm = host.workgroup #указываем имя хоста и рабочей группы
   public = yes #виден в сети
   winbind use default domain = false
   passdb backend = tdbsam
   template shell = /bin/false
   netbios name = host #видимое имя
   cups options = raw
   server string = smitty
   default = host.workgroup
   workgroup = workgroup #имя рабочей группы
   os level = 20
   security = share

[printers] #[Принтер](/)
   comment = All Printers #комментарий, не обязательный параметр, но лучше все-таки указывать
   printable = yes #разрешить печать
   path = /var/spool/samba #
   guest ok = yes #разрешить гостевой доступ
   browseable = yes #виден в сети

[share] #Шара
   comment = Reports #комментарий, не обязательный параметр, но лучше все-таки указывать
   path = /home/share #расшаренная папка
   writeable = yes #разрешаем запись
   browseable = yes #виден в сети
   guest only = yes #разрешить только гостевой доступ, пароль не требуется
   create mask = 0775
   directory mask = 0775

Пример настройки SAMBA на Ubuntu Server 12.04 для использования в домашней или локальной сети без аутентификации


[global]
        netbios name = router
        read raw = no
        write raw = no
        socket options = TCP_NODELAY
        debug level = 2
        os level = 20
        auto services = global
        socket address = 10.0.0.1
        security = user
        map to guest = bad user
        guest account = nobody
        wins support = true

[share]
        comment = RAID
        path = /mnt
        public =  yes
        guest_ok = yes
        writeable = yes
        browseable = yes

Socket address поставить свой, как и название шары (тут share). Debug можно уменьшить, 2 уровень стоит для отладки

Настройка iptables для SAMBA

Настройка для сервера:

/sbin/iptables -A INPUT -i eth0 -m pkttype --pkt-type broadcast -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p tcp -m tcp -m multiport --dports 139,445 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p udp -m udp -m multiport --dports 137,138 -j ACCEPT

Ошибки SAMBA

  • WARNING: The security=share option is deprecated

Такое больше не поддерживается, используете user и т.д.

  • Ошибка монтирования windows папок с кодом 22

Пытаемся монтировать шару:

mount -t cifs //COMPUTER/test -o username=user,password=pass /media/win/

Получаем:

mount: wrong fs type, bad option, bad superblock on //atr-it4/test,
       missing codepage or helper program, or other error
       (for several filesystems (e.g. nfs, cifs) you might
       need a /sbin/mount.<type> helper program)
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

В dmasg видим:

CIFS VFS: cifs_mount failed w/return code = -22

Исправление:

yum install cifs-utils


  • Unable to find the Domain Master Browser
find_domain_master_name_query_fail:
Unable to find the Domain Master Browser name WORKGROUP<1b> for the workgroup WORKGROUP.
Unable to sync browse lists in this workgroup.

Добавьте в [global] опцию

workgroup = DOMAIN.LOCAL