Home » Полезные советы » Быстрая и простая настройка samba

Быстрая и простая настройка samba

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

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Курс стоящий, все подробности читайте по ссылке. Есть бесплатные курсы.

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

Я не буду специально оперировать версиями операционных систем. У самбы конфиги одинаковые почти везде, где мне приходилось с ними работать, тем более в самых простых конфигурациях.

Итак, устанавливаем самбу любым подходящим способом для вашей операционной системы. Конфигурации справедливы для 3-й версии самбы. Дальше решаем, что нам нужно:

  • доступ по пользователю и паролю,
  • доступ по ip адресу,
  • доступ всем подряд без ограничений.

В зависимости от этого настройки будут немного разные.

Для доступа по паролю рисуем такой конфиг:

[global]
security = user
passdb backend = tdbsam
workgroup = MYGROUP
server string = Samba

[share]
path = /mnt/shara
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
writable = yes
browseable = yes

Перезапускаем самбу. Дальше добавляем пользователя в систему примерно так:

# useradd share-user -M -G users -s /sbin/nologin

Импортируем этого пользователя в самбу и задаем пароль:

# smbpasswd -a share-user

И пробуем зайти на шару по адресу:

\\ip-сервера\share

Чтоб организовать доступ в зависимости от ip адреса, делаем такие настройки в smb.conf:

[global]
security = share
workgroup = MYGROUP
server string = Samba
map to guest = bad user

[share]
path = /mnt/files
browsable = yes
writable = yes
guest ok = yes
read only = no
hosts allow = 192.168.0.171

В данном случае полный доступ будет у адреса 192.168.0.171. Чтобы добавить всю подсеть, то указать нужно следующее:

hosts allow = 192.168.0.

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

hosts allow = 192.168.0. except 192.168.0.15

Доступ будет разрешен всей подсети 192.168.0.0/24, кроме адреса 192.168.0.15.

Делаем перезапуск самбы и проверяем.

Если у вас установлена samba 4, то эта конфигурация не заработает и вы получите ошибку:

 WARNING: Ignoring invalid value 'share' for parameter 'security'

Чтобы доступ по ip нормально заработал, вам необходимо внести следующие изменения в приведенный выше конфиг:

security = user
map to guest = Bad Password

Остальные параметры оставляете те же. После этого доступ по ip будет работать и на 4-й версии самбы.

Если доступ будет предоставлен всем без ограничений, то простейшая конфигурация самбы будет такой:

[global]
security = user
workgroup = MYGROUP
server string = Samba
guest account = nobody
map to guest = Bad User

[share]
path = /mnt/files
browseable = Yes
guest ok = Yes
writeable = Yes
public = yes

Не забываем сделать права для всех на папку:

# chmod 0777 /mnt/files

Перезапускаем самбу и пробуем зайти. Должно пустить без лишних вопросов.

Вот так буквально за 5 минут можно организовать простейший файловый сервер с помощью samba. А часто сложнее и не надо. Для какой-нибудь файловой помойки подойдет самый последний вариант.

Для более сложных конфигураций у меня есть отдельные статьи:

Онлайн курс по Linux

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом "Administrator Linux. Professional" в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Что даст вам этот курс:
  • Знание архитектуры Linux.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
  • Владение основными рабочими инструментами системного администратора.
  • Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
  • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.
Проверьте себя на вступительном тесте и смотрите подробнее программу по .
Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

38 комментариев

  1. Аватар

    # /etc/fstab
    //10.10.1.3/share /home/user/share cifs rw,nofail,noauto,users,x-systemd.automount,x-systemd.idle-timeout=120min,user=usersmb,pass=share,uid=user,gid=users

    авто монтирование шары при загрузке, может кому-то будет полезно

    • Zerox

      А что будет в момент загрузки сервера, если сетевая шара недоступна? Он нормально загрузится? Никогда не проверял, но на всякий случай всегда монтировал шары скриптами уже после загрузки системы.

  2. Аватар
    Аноним

    Смутили параметры browseable и browsable, man прояснил, это синонимы.

  3. Аватар
    Вячеслав

    Не подскажите почему после установки и запуска службы пишет
    янв 28 18:46:35 fileserver smbd[10027]: [2020/01/28 18:46:35.513944, 0] ../lib/util/becom...dy)
    янв 28 18:46:35 fileserver smbd[10027]: daemon_ready: STATUS=daemon 'smbd' finished star...ons

  4. Аватар
    kolbaser2010

    Zerox, спасибо за позновательную статью.
    Есть небольшой вопрос.
    Возможно ли создать пользователя с правами на папку, только запись?
    Что бы он мог туда только дописывать, но удалять или изменять там ни чего не мог.
    Я понимаю, что возможно можно и это будет что-то типо chown 2660 и/или 2220, но у меня почему-то это не работает.
    Не подскажите, что я делаю не так.

  5. Аватар

    Добрій день, немного не штатній вопрос: подскажите, как сделать так, что бі на нашей шаре біли права за запись файлов и папок, но, не біло прав на изменение файлов и удаление?

    Как верно скомбинировать липкий бит и права из конфига самой самбі?

    • Zerox

      Не уверен, что это возможно технически. Можно же залить новый такой же файл с нулевым содержимым, он затрет существующий.

      Как костыльный вариант, можно выставить права на шару 1755 и по крону раз в 5 минут менять владельца файлов на какого-то пользователя, к которому нет доступа у пользователей шары. Таким образом, удалять и изменять файлы старше 5-ти минут пользователи не смогут.

  6. Аватар

    Здравствуй Zerox!
    По поводу hosts allow. В одной подсети все прекрасно работает. Но если добавить другую подсеть, то samba у всех клиентов, видит адрес шлюза подсети, а не ip хостов. Как сделать, чтобы были видны реальные адреса.

    • Zerox

      Это уже вопрос к адресации и роутингу, а не к самбе. Скорее всего она видит адрес только шлюза, потому что сетка за ним ходит к самбе через nat. Здесь на стороне самбы, как я понимаю, ничего не сделать. Либо делайте прямой рутинг без nat, либо меняйте авторизацию.

  7. Аватар
    Сергей

    Здравствуйте. Очень интересная ситуация, если на комп с самбой зайти по имени , то в шару пускает без проблем, а если зайти по ip адресу, то запрашивает логин и пароль

    • Zerox

      Может вы просто сохранили логин с паролем, когда зашли по имени, вот и не спрашивает больше. Вообще, имя и ip адрес это разные сущности. К примеру, kerberos, если не ошибаюсь, вообще не работает с ip адресами.

  8. Аватар

    Доброго времени суток.
    Пытался настроить самбу по Вашей статье.
    Столкнулся с проблемами доступа пользователей к расшареным папкам.
    В какие-то папки пускало в какие-то нет.
    В общем все проблемы я устранил, поэтому хотелось не много дополнить...
    На сколько я понял в centos права на папки самбы читаются только после прав на директорию, собственно дошел до этого сам потом прочитал на каком-то из форумов - это что нужно иметь ввиду новичкам которые трогают первый раз самбу. (т.е. chown -R 777 /data;)
    По статье при добавление пользователя в самбы нужна еще одна команда smbpasswd -e "username" она переводит статус пользователя в enable.
    Собственно как-то так.
    Спасибо за Ваши статьи, очень много полезного из них вынес!

    • Zerox

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

  9. Аватар
    Дмитрий

    Можно ли сделать так - если пользователю известно имя файла , то дать ему скачать это файл? Например \\192.168.0.100\share\имяфигугадаешь.txt

  10. Аватар

    как перезапустить самбу?

    root@pve2:/# systemctl restart samba
    Failed to restart samba.service: Unit samba.service not found.
    root@pve2:/# service samba restart
    Failed to restart samba.service: Unit samba.service not found.
    root@pve2:/# systemctl restart smbd
    Failed to restart smbd.service: Unit smbd.service not found.
    root@pve2:/# /etc/init.d/samba restart
    -bash: /etc/init.d/samba: No such file or directory
    root@pve2:/#

    • Zerox

      Перезапуск самбы:
      systemctl restart smb

      Перечитать конфиг без перезапуска:
      smbd reload

      • Аватар
        Евгений

        root@pve2:/# systemctl restart smb
        Failed to restart smb.service: Unit smb.service not found.
        root@pve2:/#
        Мне кажется она не установлена, но конфиги лежат, странно ))

  11. Аватар

    Добрый день. Почему то конфиг по паролю не пускает, после ввода share-user и пароля выскакивает учетная запись виндовс и предлагает ввести пароль на pc-windows\share-user, что это может быть? остальные конфиги исправно работают.

  12. Аватар

    Просьба подсказать в чем может быть проблема. Очень режится скорость при скачивании файлов но только с Linux , если качать с Винды то скорость 5-6 мегабайт, если с Линукса то 2-3 максимум.

  13. Аватар
    Птенчики_в_гнезде

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

    • Zerox

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

      А вообще, если не очень разбираетесь в самбе, лучше использовать готовый дистрибутив для разворачивания файлового сервера, например OpenMediaVault.

  14. Аватар
    Андрей

    по крайней мере если подключаться с клиентской машины с Windows 10

  15. Аватар
    Андрей

    Не совсем понял. У меня не получается, если в секции global есть параметр passdb backend = tdbsam то и во вторую папку пароль спрашивает

  16. Аватар
    Андрей

    День добрый! Можно ли сделать настройки так, чтобы одна папка share была для всех а вторая например share2 по паролю?

Добавить комментарий

Ваш адрес email не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.