Установка Samba на Debian

Samba - это сервер или клиент на линуксе, поддерживающий протокол SMB, проще говоря, сетевая папка Windows. Очень полезно для взаимодействия linux и windows. Например, в офисе стоит сервер с CRM и есть сетевой сканер, который результаты складывает в сетевую папку, логично эту сетевую папку разместить на сервере под управлением Linux, а не на клиентской машине, т.к. сервер включен всегда, а машины включаются/выключаются в зависимости от присутствия сотрудников.

Второй пример - у меня рабочий комп на Windows 10, но разработку я веду на Linux, который в виртуальной машине под Hyper-V, Debian из коробки подгружает модули Hyper-V, которые делают 10 гигабитную сеть между машинами и между хостом и гостевыми машинами, если расшарить сетевую папку из линукса в Windows, то можно работать через сетевую папку и отклик будет настолько быстрым, что скорость не будет отличаться от локальной папки, только вот приходится немного подкрутить параметры, чтобы достигнуть желаемого без всяких подтормаживаний...

  1. Ставим сервер Samba
apt-get install samba

2. Создаем папку, которую будем шарить, например project создавать папку в корне - плохой тон, но мне пофиг, у меня временный сервак для всяких опытов и все файлы на одном разделе диска...

mkdir /project

3. Открываем наш конфиг

nano /etc/samba/smb.conf

И начинаем разбираться с параметрами, можно удалить всё содержимое и заменить вот таким, можно почитать описания, что то подправить....

[global]
   interfaces = eth0
   bind interfaces only = yes
   deadtime = 15
   disable netbios = yes
   dns proxy = no
   domain master = yes
   encrypt passwords = true
   guest ok = no
   hosts allow = 192.168.200.0/255.255.255.0 127.0.0.1
   hosts deny = all
   invalid users = nobody root
   load printers = no
   max connections = 10
   netbios name = techresearch
   preferred master = yes
   preserve case = yes
   printable = no
   server string = Samba Share
   ; это невероятное шаманство, сильно ускоряет все операции
   socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072
   strict sync = no
   sync always = no
   syslog = 0
   workgroup = WORKGROUP
   log file = /dev/null
   log level = 0


[project]
   browseable = yes
   path = /project
   guest ok = no
   create mask = 0750
   writable = yes

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

А второй параметр 192.168.200.0 - даже если у меня каким-то образом прокинется порт в локалку и запрос прилетит с маршрутизатора, то всё равно IP адрес не будет разрешенным.

4. Теперь надо добавить пользователя для подключения, прописать его пароль, обратите на параметр -a, он добавляет пользователя (локального) в samba и позволяет задать для него отличающийся от системного пароль

smbpasswd -a user

При изменении пароля делается всё тоже самое, только без параметра, если же захотите удалить пользователя, то флаг -x, для отключения -d, для обратного включения -e, узнать все параметры можно через -h

Потом перезагрузим

/etc/init.d/samba restart

Дальше можно проверять, win+r, вводим ip машины

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

Как видим, всё работает

Не забудьте еще дать соответственные права на чтение/запись в папку, которую расшариваем...

Хочу сказать, что алгоритм на других линуксах аналогичный, только там вместо apt-get будет yum или еще какой менеджер пакетов.
Показать комментарии