Samba - программа, которая позволяет обращаться к сетевым дискам на различных операционных системах по протоколу SMB/CIFS.
Простыми словами Samba — это программное обеспечение для реализации файлового сервера, а с 4-й версии и контроллера домена (аналог Windows Active Directory). Устанавливается как на Windows, так и Linux/FreeBSD. Также может быть установлена на некоторые модели роутеров для реализации простого домошнего файлового хранилища.
В качестве клиентской части для подключения к файловому серверу Samba может выступать программное обеспечение, работающее по протоколу SMB. В Linux/FreeBSD это samba client, в Windows — проводник.
Samba использует 137-139 порты UDP и Порты TCP. Что такое TCP / IP порт.
В руководстве описана установка и настройка автономного файлового сервера под управлением Samba Ubuntu Server 20.04 для доступа клиентов Windows, Linux, macOS.
Компьютеры под управлением Windows и Ubuntu должны быть членами локального домена или рабочей группы под названием WORKGROUP.
Для проверки в Windows к какой рабочей группе принадлежит компьютер используйте команду:
net config workstation
На скриншоте видно, что мой клиентский компьютер имеет правильное название рабочей группы.
Обновляем пакеты и устанавливаем Samba сервер. Также установим клиента Samba - пригодится для тестирования настроек сервера.
sudo apt update sudo apt install samba smbclient
Мы начнем со свежего чистого файла конфигурации smb.conf, удалив все закоментированные строки. А также сохраним файл конфигурации по умолчанию в качестве резервной копии для справочных целей. Выполните следующие команды linux, чтобы сделать копию существующего файла конфигурации и создать новый файл конфигурации /etc/samba/smb.conf:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup sudo bash -c 'grep -v -E "^#|^;" /etc/samba/smb.conf_backup | grep . > /etc/samba/smb.conf'
У Samba есть собственная система управления пользователями. Однако любой пользователь, существующий в списке пользователей samba, также должен быть системным, то есть существовать в файле /etc/passwd. Если ваш системный пользователь еще не существует и, следовательно, не может быть расположен в файле /etc/passwd, сначала создайте нового пользователя с помощью команды useradd, прежде чем создавать любого нового пользователя Samba.
Создадим системного пользователя
sudo useradd -m -c "Name_User" -s /bin/bash buhnasmb sudo passwd buhnasmb
Возьмем для примера имя buhnasmb, допустим что он уже есть в системе (проверить командой id), надо внести его в базу данных SMB и назначить пароль для доступа к общим ресурсам, сделаем это командой:
$ sudo id buhnasmb uid=1003(buhnasmb) gid=1003(buhnasmb) groups=1003(buhnasmb) $ sudo smbpasswd -a buhnasmb New SMB password: Retype new SMB password: Added user buhna.
Создадим директорию для хранения расшаренных файлов и папок:
mkdir -p /home/hdd2backup/smb/buhnasmb
Добавьте в конец файла /etc/samba/smb.conf следующие строки, buhnasmb замените на имя пользователя компьютера с Samba. Папка будет открыта для чтения и записи.
[BackupWork] comment = Samba Share path = /home/hdd2backup/smb/buhnasmb guest ok = yes browsable =yes writable = yes read only = no force user = buhnasmb force group = buhnasmb
Не забудьте поставить правильного владельца и права доступа на папку, которую вы расшариваете, например так:
sudo chmod ug+rwx /home/hdd2backup/smb/buhnasmb sudo chown root:"пользователи домена" /home/hdd2backup/smb/buhnasmb
Перезапуск Samba:
sudo systemctl restart smbd.service
Теперь вы знаете, как создавать общедоступные общие ресурсы Samba. Теперь приступим к созданию частных и защищенных общих ресурсов.
То есть настройка идентична ШАГ 4. Хорошо давайте повторю.
И так создаем новую директорию:
mkdir -p /home/hdd2backup/smb/protected
Пользователь тот же buhnasmb, напоминаю, что пароль для доступа к smb- ресурсам мы пользователю buhnasmb задали на ШАГ 3.
Добавьте в конец файла /etc/samba/smb.conf следующие строки, buhnasmb замените на имя пользователя компьютера с Samba. Папка будет доступна по логину и паролю.
[ProtectedSamba] comment = Samba Protected Share path = /home/hdd2backup/smb/protected guest ok = no browsable =yes writable = yes read only = no force user = buhnasmb force group = buhnasmb
Задайте права на папку как в ШАГ 4:
sudo chmod ug+rwx /home/hdd2backup/smb/protected sudo chown root:"пользователи домена" /home/hdd2backup/smb/protected
Перезапуск Samba:
sudo systemctl restart smbd.service
# testparm Load smb config files from /etc/samba/smb.conf Loaded services file OK. Server role: ROLE_STANDALONE
smbget -Rr smb://ip_addr/share
smbclient -L ip_addr/hostname
smbclient -L 127.0.0.1
$ smbclient \\\\10.26.95.220\\vip -U tatyana
nbtscan ip_addr разрешить netbios-имя nbtscan не во всех системах ставится по-умолчанию, возможно, придётся доустанавливать вручную. nmblookup включен в пакет samba. nmblookup -A ip_addr
[global] workgroup = WORKGROUP server string = %h server (Samba, Ubuntu) log file = /var/log/samba/log.%m max log size = 1000 logging = file panic action = /usr/share/samba/panic-action %d server role = standalone server obey pam restrictions = yes unix password sync = yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . pam password change = yes map to guest = bad user netbios name = back20 usershare allow guests = yes [PublicSamba] comment = Samba Anonymous Share path = /home/hdd2backup/smb/buhnasmb guest ok = yes browsable =yes writable = yes read only = no force user = buhnasmb force group = buhnasmb [ProtectedSamba] comment = Samba Protected Share path = /home/hdd2backup/smb/protected guest ok = no browsable =yes writable = yes read only = no force user = buhnasmb force group = buhnasmb
Проект Samba продолжает активно развиваться. Скорость работы Samba в условиях многопользовательского доступа в качестве ролей файлового и принт-сервера более чем в два раза выше по сравнению с Windows Server.
Начиная с четвёртой версии, Samba может выступать в роли контроллера домена и сервиса Active Directory, совместимого с реализацией Windows 2000, и способна обслуживать все поддерживаемые Microsoft версии Windows-клиентов, в том числе Windows 10.
К сожалению, для более углубленного изучения Samba в интернете практический нет информации.