Как установить и настроить samba в ubuntu

ШАГ 3: Создать пользователя Samba

У Samba есть собственная система управления пользователями. Однако любой пользователь, существующий в списке пользователей samba, также должен быть системным, то есть существовать в файле /etc/passwd. Если ваш системный пользователь еще не существует и, следовательно, не может быть расположен в файле /etc/passwd, сначала создайте нового пользователя с помощью команды useradd, прежде чем создавать любого нового пользователя Samba.

Создадим системного пользователя

sudo useradd -m -c "Name_User" -s binbash 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.

Некоторые опции Samba

Рассмотрим некоторые полезные опции, которые могут пригодится при настройке Samba.

1. hosts allow

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

Пример использования параметра.

hosts allow = comp1, 192.168.1., 192.168.160.0/255.255.252.0

* в нашем примере мы разрешим доступ только для компьютера comp1, компьютеров из сетей 192.168.1.0/24 и 192.168.160.0/22.

2. hosts deny

Параметр аналогичный hosts allow, только он наоборот — запрещает доступ для хостов и сетей. Например:

hosts deny = comp2, 192.168.2., 192.168.164.0/255.255.252.0

hosts deny = ALL EXCEPT 192.168.3.

3. interfaces

По умолчанию samba использует все сетевые интерфейсы, кроме локальной петли (127.0.0.1). Параметр interfaces позволит указать, на каком сетевом адаптере файловый сервер должен принимать запросы. Пример:

interfaces = ens32 192.168.1.15/24 192.168.2.15/255.255.255.0

4. Force User/Group

Опции force user и force group позволяют задать пользователя и группу, от которых будет работать подключение пользователя к samba. Параметр может оказаться полезным для создания шары из каталога с уже назначенным владельцем, которого мы не хотим менять.

Прописывается для шары:

force user = apache
force group = apache

* данная настройка позволит подключаться к шаре под пользователем apache.

Идентификация доступа к файловому серверу на основе регистрации в Active Directory/DOMAIN/Kerberos REALM

Режим ADS без использования WINBIND

!!! В FreeBSD samba должна быть скомпилирована с поддержкой ADS !!!

Kerberos REALM

server# kadmin -l
kadmin> add -r cifs/gate.corpX.un
kadmin> add -r cifs/gate.CORPX.UN

kadmin> ext -k gatecifs.keytab cifs/gate.corpX.un
kadmin> ext -k gatecifs.keytab cifs/gate.CORPX.UN
Debian/Ubuntu MIT
server# kadmin.local
kadmin.local:  addprinc -randkey cifs/gate.corpX.un
kadmin.local:  addprinc -e rc4-hmac:normal -randkey cifs/gate.CORPX.UN

kadmin.local:  ktadd -k gatecifs.keytab cifs/gate.corpX.un
kadmin.local:  ktadd -k gatecifs.keytab cifs/gate.CORPX.UN
FreeBSD/Debian/Ubuntu
server# scp gatecifs.keytab gate:

Active Directory

Login: gatecifs
Password: Pa$$w0rd

Пароль не меняется и не устаревает

Устанавливаем Microsoft Windows Support Tools

C:\>ktpass -princ cifs/[email protected] -mapuser gatecifs -pass 'Pa$$w0rd' -out gatecifs.keytab
C:\>pscp gatecifs.keytab gate:

Копируем ключи в системный keytab

Debian/Ubuntu (MIT)
root@gate:~# ktutil
ktutil: rkt /root/gatecifs.keytab
ktutil: list
ktutil: wkt /etc/krb5.keytab
ktutil: quit

root@gate:~# klist -k /etc/krb5.keytab

Настройка samba сервера в режиме ADS без использования WINBIND

...
	security = user
	realm = CORPX.UN
        kerberos method = system keytab
...

Режим ADS c WINBIND

Авторизация в режиме ADS (Сервис WINBIND)

Примечание: достаточно зарегистрировать SAMBA сервер в домене, принципал cifs не нужен


...


; may be need make homedir
        read only = no        


        path = /disk2/samba

;with winbind
;        valid users = CORPX\user1 CORPX\Administrator CORPX\root
;        valid users = @CORPX\group1
;        valid users = "@CORPX\domain users"

;without winbind, group1 must be master group
;        valid users = @group1 games

;without winbind      
;        valid users = user1 user2 games
        
        read only = no
        force user = games

Что такое Самба?

Если вы думали, что страница посвящена изучению танца, вы слегка ошиблись. Samba — свободно распространяемое программное обеспечение. Оно реализует доступ к принтерам и файлам. Причём делает это на различных операционных системах.

Для чего нужна?

В сравнении с другими пакетами программ подобного назначения Самба имеет несколько достоинств и особенностей.

  • Позволяет соединить друг с другом Unix-подобную систему, т. е. любую систему на Linux, и Windows. Причём не только Windows. Программа очень «всеядна»: MacOS, Solaris и другие ОС разной степени популярности.
  • Самба даёт возможность пользователям Виндовс использовать компьютеры на Ubuntu в качестве сервера. То есть пользоваться файлами, к которым налажен доступ, а также частью подключённых устройств.
  • Поддерживает доменную структуру NT Domain, управляет пользователями NT, поддерживает функции участника, первичного контроллера.

Наверное, для многих главное из этого — связь с машинами на Windows. Они в этом случае выступают в качестве клиента, а компьютер на Ubuntu — в качестве сервера. С другой стороны, пользователь Ubuntu также может получить доступ к сетевым папкам Windows.

Samba производится аж с 1992 года. И, что главное, новые версии выходят до сих пор. Последняя была выпущена седьмого марта 2017. С каждым годом разработчики стараются наладить совместимость большим количеством различных версий операционных систем, но главной фишкой остаётся соединение Linux-систем с Microsoft. В сравнении с Windows Server Samba может уступать ей из-за отсутствия поддержки части протоколов и инфраструктуры узлов. Однако многие утверждают, что скорость работы Самбы гораздо выше.

ШАГ 6: Утилиты и диагностика Samba

# testparm
Load smb config files from etcsambasmb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE
  • smbget позволяет скачивать с windows, linux (д.уст. samba) файлы через Что такое протокол SMB протокол. Скачать рекурсивно все директории и файлы:
    smbget -Rr smb://ip_addr/share
  • smbclient — утилита для подключения к общедоступным папкам.
    • Отобразить общедоступные ресурсы на удаленном хосте:
      smbclient -L ip_addrhostname
    • Посмотреть «шары» локально на стороне сервер
      smbclient -L 127.0.0.1
    • Просмотреть папку vip под пользователем tatyana
      $ smbclient \\\\10.26.95.220\\vip -U tatyana
  • nbtscan
    nbtscan ip_addr разрешить netbios-имя nbtscan не во всех системах ставится по-умолчанию,
    возможно, придётся доустанавливать вручную. nmblookup включен в пакет samba.
    nmblookup -A ip_addr

Steps to install SAMBA on Ubuntu 22.04 LTS

1. Run system update

Well, it is not a necessary step, however, run the system update command to rebuild the repo cache and make sure all the system installed packages are up to date.

sudo apt update

2. Install Samba on Ubuntu 22.04

Next, in your command terminal use the APT package manager to install Samba on your Ubuntu 22.04 LTS. The packages to set it up are already there in the system repository, thus we don’t need to add anything extra.

sudo apt install samba

Check its service is active and running:

systemctl status smbd --no-pager -l

To make the service enabled to start automatically with system boot, here is the command:

sudo systemctl enable --now smbd

3. Allow samba in Ubuntu 22.04 Firewall

To connect and access the shared files over SMB protocol, we have to first whitelist and allow its service in the firewall to get accessed from the outside of the computer. Here is the command to follow.

sudo ufw allow samba

4. Add your user to the Samba group

Let’s add the current System user to the SambaShare group, so it can access all files and folders shared under it.

sudo usermod -aG sambashare $USER

set the password for share: This will be different from your system password.

sudo smbpasswd -a $USER

Note: $USER means your current user, if you want to set some other user then change $USER with the particular user name. Also, the file or folder you want to share must be accessible to that particular user.

Alternatively, if you want to add some other users to the SAMBA group use:

To set a password:

5. Share some Ubuntu folder

We have configured the user to use Samba, let’s test it. Let’s say you want to share the Pictures folder or any other that is owned by your current user.

Once you have decided which folder you want to share over the network, then right-click on it and select Properties and then the Local Network Share tab. If you want the users to create or delete the files from the shared directory then check the box given for “Allow others to create and delete files in this folder“. Whereas, if you want any user to log in and access the shared folder then select the “Guest access” box otherwise don’t.  Finally, to create the sharing point, click on the “Create Share” button.

When Ubuntu’s Nautilus file manager asks to add some permission to the folder to share- Click on the: “Add the permissions automatically“.

6. Access the shared folder

Here we are using Debian and Windows 11 to access the remotely shared folder on Ubuntu 22.04. You can use macOS if you want.

#On Debian, Ubuntu, CentOS, and other Linux with Gnome

⇒ Go to File Manager and then click on the Other locations.

⇒ There go to Connect Server box and type your Ubuntu 22.04 Samba IP address in the following format:

smb://ip-address/shared-folder-name

In the above URL format: replace ip-address with your SAMBA server IP and Shared-folder-name with a folder that you have shared.

⇒ When the system asks for credentials, then select “Registered User” and give your Ubuntu system user and password set to use for SAMBA.

⇒ Soon, you will have the content of your remote Ubuntu server via SMB protocol.

#On Windows 11 or 10

If you are using the Windows system and want to mount the folder shared on Ubuntu 22.04 with the help of SAMBA, then here are the steps to follow.

⇒ Go to This PC and right-click somewhere on the blank area to select “Add a network location” from the context menu.

⇒ Now, enter the Ip-address and shared folder name in the following format:

\\server-ip-address\shared-folder

Replace server-ip-address with your Ubuntu’s IP where you have configured the SAMBA, along with the shared folder name.

⇒ Soon, the system will ask you to enter the Username and password used to access the SAMBA share folders. Enter that and hit the OK button.

⇒ Finally, you have the remotely or locally Ubuntu’s shared folder mounted on your Windows 10 or 11 via SMB protocol.

Other Articles:

Install Samba on Linux Mint to share files with WindowsHow to Change file, folder, or app Icons in Gnome LinuxInstall XAMPP on Ubuntu 22.04 LTS4 Ways to install GIMP on Ubuntu 22.04…

Подключение к шаре

Теперь разберем примеры подключения к нашим шарам из разных систем.

Windows

Для разового подключения можно использовать проводник, прописав в нем адрес сервера через косые линии:

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

В открывшемся окне прописываем путь до сетевой папки и выбираем имя диска:

Сетевой диск настроен.

Но мы может сделать те же действия из командной строки:

net use x: \\samba.dmosk.local\AD ACL /persistent:yes

* где x: — имя сетевого диска; \\samba.dmosk.local\AD ACL — путь до сетевого каталога; persistent:yes — указывает на то, что нужно восстанавливать данный диск каждый раз при входе в систему.

Монтирование

В Linux мы можем монтировать удаленный каталог с помощью команды mount, например:

mount -t cifs «//192.168.1.15/ad» /mnt -o user=dmosk

* где 192.168.1.15 — IP-адрес сервера; mnt — каталог, куда монтируем сетевую шару; dmosk — пользователь, под которым выполняем подключение к сетевому каталогу.
** в систему должен быть установлен пакет cifs-utils.

Подробнее, процесс монтирования описан в инструкции Как в Linux монтировать шару CIFS.

SMB Browser

Также мы можем увидеть содержимое удаленных папок на samba при помощи клиента smb. Для начала установим данного клиента:

а) на Red Hat / CentOS / Fedora:

yum install samba-client

б) на Debian / Ubuntu / Mint:

apt-get install samba-client

После вводим команду:

smbclient -L 192.168.1.15 -U [email protected]

* где 192.168.1.15 — сервер samba, к которому мы пытаемся подключиться; [email protected] — учетная запись, под которой выполняется подключение.

… мы получим список каталогов, которые расшарены на сервере.

Также мы можем подключиться к конкретной папке, например:

smbclient \\\\192.168.1.15\\ad -U [email protected]

Мы подключимся клиентом samba — можно выполнить запрос на показ содержимого:

smb: \> ls

Или полный список возможных команд:

smb: \> help

Разрешения Linux для доступа без пароля

Во-первых нужно установить полные права на папку Linux, которая будет
сетевой. Полные права доступа на папку в Linux это разрешение на исполнение
и запись для: владельца, группы и всех остальных. В Linux
широко используется цифровое сокращение для
обозначения прав доступа — полный доступ для папки это 777. Если такие права
не установить на папку, тогда сетевые пользователи либо не смогут войти в
эту папку, либо не смогут в ней создавать новые файлы или папки.

Установить разрешения на файл (папку) в Linux
можно через файловый менеджер (через свойства папки) или в терминале, программой
chmod
.

Во-вторых.

Если ограничиться только лишь настройкой Samba и установкой разрешений
на папку, тем не менее
возможно появление проблем с доступом к отдельным файлам в этой сетевой папке
Linux.

В двух случаях:

  1. если локальный пользователь Linux войдет в
    эту папку через файловый менеджер и создаст в ней новый файл;
  2. если локальный пользователь Linux
    скопирует в эту папку файл из другой своей локальной папки.

В обоих случаях новый файл будет недоступен для редактирования сетевыми
пользователями. Почему это произойдет? Новый файл получит права доступа
Linux 644,
то есть полный доступ только для владельца файла. А если файл будет
скопирован из другой папки, то он сохранит свои права и после копирования.

Что делать для решения этой проблемы?

Есть разные способы решения. Кто-то советует периодически
(например по заданию cron) изменять права всем файлам в
папке на 666 (права полного доступ для всех без исключения). Это работает, но на мой взгляд не
вариант. Я считаю что такое присвоение прав должно происходит автоматически,
без лишних телодвижений.

Другие люди советуют включить ACL на файловой
системе Linux и затем указать
ACL по умолчанию для сетевой папки (со значением 777).

Это работает,
но только наполовину. Если локальный пользователь сам создаст новый файл,
этот файл получит атрибуты 666. Но если локальный пользователь скопирует
файл из другой папки, то файл сохранит свои старые атрибуты.

Однако есть два способа которые полностью решают проблему.

Первый способ, самый простой.

Локальному пользователю, нужно заходить в сетевую папку тоже через сеть!
В этом случае все его операции в папке будут проходить через сервер
Samba. А Самба настроена на полный доступ.

Достоинство этого способа в том, что ничего не нужно делать
дополнительно. Недостатка два:

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

Второй способ — настройка сетевого доступа через bindfs

Использовать bindfs. Для этого нужно установить этот пакет и затем
вручную или автоматически смонтировать сетевую папку через bindfs.

Вот пример автоматического монтирования через fstab:

bindfs#/home/user/lan
/home/user/lan fuse perms=0777 0 0

В примере папка монтируется сама в себя, но можно указать другую точку
монтирования

Важно указать параметр монтирования perms=0777
— это полный доступ на все файлы и папки

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

В этом случае параметры create mask и directory mask в
файле smb.conf уже не нужны.

Общий доступ к папке Ubuntu

Сначала давайте создадим общую папку доступную всем. То есть с анонимным доступом, без авторизации samba.

Создайте папку, к которой будем открывать доступ, например:

После того как папка создана, нужно сделать для нее правильные права доступа. Следующие команды разрешают доступ к папке для всех и делают владельцем nobody:

Следующим шагом будет описать папку allaccess в файле настройки samba:

Теперь ваш конфигурационный файл должен выглядеть вот так:

Рассмотрим подробнее опции, которые были здесь использованы:

  • path — путь к папке, которую нужно расшарить;
  • browsable — будет ли папка отображаться в списке доступных шар;
  • writable — будет ли папка доступна для записи;
  • read only — папка доступна только для чтения;
  • guest ok, public — будет ли разрешен гостевой доступ;
  • only guest — если установлено yes, то папка будет доступна только гостям;
  • hosts allow — ip адреса, с которых можно получить доступ к этому серверу;
  • valid users — по умолчанию могут авторизоваться все пользователи, если в этом параметре передать список пользователей, то авторизоваться смогут только они;
  • create mask — маска прав для создаваемых файлов.

Чтобы применить изменения, перезапустите сервер Samba:

Настройка Samba Ubuntu для анонимного доступа завершена. Теперь вы можете проверить доступность общей папки allaccess из Windows, для этого нажмите Win+R и выполните:

Вы увидите нашу папку. Если не увидите, проверьте еще раз конфигурацию. Доступ к папке можно получить без авторизации samba. Настойка Samba шары с доступом без авторизации завершена.

Также вы можете подключится к этому серверу из Linux с помощью Nautilus для этого достаточно набрать адрес smb://ip-сервера, в разделе другие места:

Авторизация с Active Directory

Разберем пример конфигурирования файлового сервера samba в домене Windows и настроим авторизацию пользователей на базе LDAP Active Directory.

Подключение к Active Directory

Введем наш сервер в домен. Сначала необходимо убедиться, что сервер доступен по своему доменному имени. Если серверу так и не было задано вменяемого имени, вводим команду:

hostnamectl set-hostname samba.dmosk.local

* где samba — имя сервера; dmosk.local — домен.

После добавляем в DNS наш сервер samba. Ждем минут 15, если у нас используется доменная инфраструктура с несколькими сайтами.

Устанавливаем необходимые компоненты:

dnf install samba-client samba-winbind samba-winbind-clients krb5-workstation

Открываем конфигурационный файл samba:

vi /etc/samba/smb.conf

В разделе редактируем следующие опции:

workgroup = DMOSK
security = ads

* где DMOSK — NETBIOS имя домена; ads — указывает, что для samba будет использоваться модель безопасности LDAP Active Directory.

Также в добавим следующие строки:

kerberos method = secrets and keytab
realm = DMOSK.LOCAL
winbind enum groups = Yes
winbind enum users = Yes
idmap config * : rangesize = 1000000
idmap config * : range = 1000000-19999999
idmap config * : backend = autorid

* где:

  • kerberos method — метод проверки kerberos. В данном примере сначала используется secretts.tdb, а затем системная таблица ключей.
  • realm — сервер Active Directory. В нашем примере прописан домен, так как по нему можно обратиться к любому из серверов AD.
  • winbind enum groups — задает пределы перечисления групп через setgrent(), getgrent() и endgrent().
  • winbind enum users — задает пределы перечисления пользователей через setpwent(), getpwent()и endpwent().
  • idmap config * : rangesize — определяет количество доступных uids и gids в каждом доменном диапазоне.
  • idmap config * : range — определяет доступные совпадающие диапазоны uid и gid, для которых серверная часть является авторитетной.
  • idmap config * : backend — задает idmap плагин для использования в качестве SID/uid/gid подсистемы

Вводим сервер в домен: 

net ads join -U [email protected]

* где Administrator — учетная запись пользователя AD с правами на ввод компьютеров в домен; dmosk.local — наш домен.

Мы должны увидеть, примерно, следующее:

Using short domain name — DMOSK
Joined ‘SAMBA’ to dns domain ‘dmosk.local’

Разрешаем автозапуск winbind и стартуем его:

systemctl enable winbind —now

Выбираем профиль для аутентификации:

authselect select winbind —force

Проверяем, что наш сервер может получить список пользователей Active Directory:

wbinfo -u

… и групп:

wbinfo -g

Если мы увидели список пользователей и групп, то присоединение сервера к домену завершено.

Настройка шары

Открываем конфигурационный файл samba:

vi /etc/samba/smb.conf

Создаем шару:

    comment = Folder for AD users
    path = /data/ad
    public = no
    writable = yes
    read only = no
    guest ok = no
    valid users = «@DMOSK\Domain Users» «@DMOSK\Domain Admins»
    create mask = 0777
    directory mask = 0777
    force create mode = 0777
    force directory mode = 0777
    inherit owner = yes

* в данном примере мы будем шарить папку на сервере /data/ad; мы предоставим доступ всем пользователям групп Domain Users и Domain Admins домена DMOSK.

Создаем каталог и задаем права:

mkdir /data/ad

chmod 777 /data/ad

Теперь можно перезапустить самбу:

systemctl restart smb

Пробуем подключиться к серверу. У нас должна появиться еще одна папка ad. 

Права ACL

И в продолжение разговора о интеграции с AD, попробуем настроить ACL для более тонкого предоставления прав доступа.

Для этого снова открываем конфигурационный файл samba:

vi /etc/samba/smb.conf

В раздел добавим:

acl compatibility = auto

… и создадим новую шару:

    comment = Folder for AD ACL
    path = /data/adacl
    public = no
    writable = yes
    read only = no
    guest ok = no
    admin users = «@DMOSK\Domain Admins»
    inherit acls = yes
    inherit owner = yes
    inherit permissions = yes
    map acl inherit = yes

* где admin users — пользователи, которые могут менять права папки; inherit acls — наследование acl прав; inherit permissions — наследование прав от папки родителя; map acl inherit — использовать ли схему контроля доступа, хранимую в Windows ACL.

Создаем каталог и задаем права:

mkdir /data/adacl

chmod 777 /data/adacl

Перезапускаем самбу:

systemctl restart smb

Подключаемся к нашей созданной общей папке. Кликаем по ней правой кнопкой мыши — выбираем свойства. На вкладке «Безопасность» мы можем менять права:

Создание первой шары и предоставление к ней гостевого доступа (анонимного)

Разберем самый простой пример предоставления доступа к папке — анонимный доступ всем пользователям без запроса пароля.

Открываем на редактирование конфигурационный файл samba:

vi /etc/samba/smb.conf

В секцию  добавляем:


map to guest = Bad Password

И добавляем настройку для общей папки:

    comment = Public Folder
    path = /data/public
    public = yes
    writable = yes
    read only = no
    guest ok = yes
    create mask = 0777
    directory mask = 0777
    force create mode = 0777
    force directory mode = 0777

* где: 

  •  — имя общей папки, которое увидят пользователи, подключившись к серверу.
  • comment — свой комментарий для удобства.
  • path — путь на сервере, где будут храниться данные.
  • public — для общего доступа. Установите в yes, если хотите, чтобы все могли работать с ресурсом.
  • writable — разрешает запись в сетевую папку.
  • read only — только для чтения. Установите no, если у пользователей должна быть возможность создавать папки и файлы.
  • guest ok — разрешает доступ к папке гостевой учетной записи.
  • create mask, directory mask, force create mode, force directory mode — при создании новой папки или файла назначаются указанные права. В нашем примере права будут полные.
  • workgroup — Название рабочей группы, если будет отличатся, то шары не увидите;
  • hosts allow — Разрешить вход папку с IP-адресов;
  • browseable — Разрешить просмотр через проводник;

Создаем каталог на сервере и назначим права:

mkdir -p /data/public

chmod 777 /data/public

Применяем настройки samba, перезагрузив сервис:

systemctl restart smb

Пробуем подключиться к папке. Мы должны зайти в нее без необходимости ввода логина и пароля.

Метод 2: Подключение из Windows

Вы можете подключиться к ресурсу Samba с помощью Windows OS двумя способами:

  1. С помощью утилиты Run
  2. Используя Проводник

Ниже приведена IP-конфигурация клиентской машины My Windows:

Использование утилиты Run

Нажмите клавиши Windows + R, чтобы запустить утилиту Run. Введите адрес в следующем синтаксисе для доступа к ресурсу Samba и нажмите Enter.

\\\

Появится запрос на ввод учетных данных. Введите учетные данные для доступа к ресурсу Samba и нажмите OK.

Вы увидите, что соединение установлено. Теперь вы можете получить доступ к файлам на сервере Samba.

Использование Проводник

Запустите Проводник в окне Window. На левой панели щелкните правой кнопкой мыши на Этот компьютер (This PC). Затем выберите Добавить сетевое расположение из выпадающих опций.

Запустится мастер добавления сетевого расположения. Продолжайте нажимать кнопку Далее, пока не появится следующий экран. Добавьте адрес ресурса Samba в соответствии с синтаксисом и нажмите Далее.

\\\\мся_шары

В следующем окне вы можете изменить имя общего расположения. Нажмите Далее и затем нажмите Готово для завершения процесса.

После завершения процесса появится запрос на ввод учетных данных, введите учетные данные для общего ресурса Samba и нажмите OK.

Вы увидите, что соединение установлено. Теперь вы можете получить доступ к файлам на сервере Samba.

Настраиваем Samba

Перед непосредственно настройкой, программу нужно установить. Установка Samba выполняется таким же образом, как в случае с другими программами — при помощи ввода в терминал команды:

Сразу же заметьте: все действия, которые будут описаны, включая и установку программы, можно выполнить как на простой Ubuntu, так и на Ubuntu Server. Только на последней доступен исключительно текстовый интерфейс.

После установки следует сделать бэкап файла конфигурации:

Дальше делаем свой документ с глобальными параметрами:

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

  • Workgroup — рабочая группа. Значение этого параметра также часто будет Workgroup, поскольку в Виндовс домен рабочей группы по умолчанию выглядит именно так.
  • Netbios name — имя компьютера Ubuntu, которое видят пользователи Windows. Здесь можно вводить значение на своё усмотрение.
  • Security — режим авторизации пользователей. По умолчанию стоит User, то есть аутентификация на уровне пользователя. Пока что лучше так и оставить.
  • Os level — указывает приоритет, который имеет Samba над другими клиентами (ПК) в локальной или интернет-сети.
  • Name resolve order — очерёдность разрешения IP-адресов по NetBIOS имени.
  • Read only — привилегия чтения или записи каталога. Значение может быть «yes» — исключительно чтение, «no» — запись.

Создаём пользователя

Это простейшее действие, с которого можно начинать работу с Самбой.

Добавляем пользователя в самой ОС:

Создаём для него пароль:

Занесём нашего пользователя в базу Samba:

При помощи команды $ smbpasswd можно выполнять другие различные действия:

  • $ smbpasswd username — смена пароля
  • $ smbpasswd -x username — удаление пользователя
  • $ smbpasswd -d username — бан пользователя

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

Это базовые настройки Samba. Теперь можно попробовать применить программу на практике.

Доступ к папке

Сначала попробуем создать папку, доступ к которой будет открыт всем пользователям, даже тем, кто не авторизован в Samba.

Создаём папку, с которой и будем потом работать на двух компьютерах:

Теперь делаем для этой папки расширенный доступ, чтобы её мог открыть любой клиент нашей локальной сети:

Владельцем согласно коду является nobody.

Теперь в файле с конфигурацией сервера нужно сделать два раздела: первый, содержащий основную информацию:

Следуют разделы друг за другом в таком же порядке.

Обновляем изменения сервера:

Действия с компьютером на Windows

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

  1. Открываем командную строку. Желательно делать это с расширенными правами, т. е. от имени администратора.
  2. Выполняем команду:
  3. notepad C:\Windows\System32\drivers\etc\hosts
  4. Открывается файл, в котором вводим следующую строчку:
  5. 168.0.1 srvr1.domain.com srvr1 Благодаря ей папка станет доступна.
  6. Открыть её можно при помощи строки «Выполнить». Жмём Win + R, вводим: После этого нам откроется папка.

Закрытая папка

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

Делаем папку с названием «Closed»:

Делаем специальную группу, которая может иметь доступ к этой папке:

Создаём особые права для разных групп:

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

Перезапускаем сервер.

Как можно понять, мы сделали папку Closed внутри Access. Таким образом Access может открыть каждый пользователь локальной сети, но чтобы смотреть и редактировать Closed, нужно обладать особыми правами.

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

Создаём пользователя и добавляем его в нашу закрытую группу:

Пользователя у нас зовут, как пачку сигарет (или премьер-министра Британии).

Делаем для Уинстона пароль:

После этого нам предложат ввести новый пароль, чтобы зайти заново под только что созданным аккаунтом. Не забудьте после этого сделать перезагрузку. Теперь вы знаете, как настроить сервер через Самбу в Убунту.

https://youtube.com/watch?v=4VECMm4KnhY

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

Настройка общей папки Samba

Теперь я создам пару директорий, которые я буду использовать для настройки различных вариантов ограничения доступа к smb ресурсу:

Настройка анонимного доступа

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

Сначала зададим соответствующие разрешения на уровне директории:

Теперь скорректируем файл конфигурации для общих ресурсов smb:

Теперь я добавлю следующий блок с конфигураций для анонимного доступа:

В таблице ниже я кратко опишу основные параметры.

Параметр Назначение
Имя smb ресурса
path Физическое расположение директории на сервере
writable Запись в директорию разрешена, если установлено значение yes
guest ok Анонимный доступ разрешен, если установлено значение yes
guest only Если установлен параметр yes, то разрешен только анонимный доступ к ресурсу
create mode Все новые файлы будут создаваться с указанными разрешениями (777 в моем случае)
directory mode Все новые директории будут создаваться с указанными разрешениями (777 в моем случае)

Настройка доступа по логину и паролю

Теперь немного расширим задачу. Доступ к smb ресурсу должны получать только аутентифицированные пользователи. Отмечу, что доступ может получить любой аутентифицированный пользователь. Аутентификация производится сервером smb через локальную базу учетных записей на сервере.

Установлю нужные разрешения для директории:

Скорректируем файл конфигурации для общих ресурсов smb:

Теперь я добавлю следующий блок с конфигураций для анонимного доступа:

В таблице ниже я кратко опишу основные параметры.

Параметр Назначение
Имя smb ресурса
path Физическое расположение директории на сервере
writable Запись в директорию разрешена, если установлено значение yes
guest ok Анонимный доступ запрещен, если установлено значение no
public Если установлено значение “no”, то публичный доступ к ресурсу запрещен
create mode Все новые файлы будут создаваться с указанными разрешениями (777 в моем случае)
directory mode Все новые директории будут создаваться с указанными разрешениями (777 в моем случае)

Теперь нужно создать пользователя и установить пароль для его учетной записи:

Также нужно задать пароль для пользователя user1 для доступа по smb:

Настройка ограниченного доступа

Последний распространеный вариант – настройка ограниченного доступа. Под ограниченным доступом я подразумеваю доступ только для какой-то конкретной группы или пользователя. Я настрою ограничение для пользователя.

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

Также нужно задать пароль для пользователя user6 для доступа по smb:

Изменю владельца для директории:

Также я оставлю полные разрешения только для владельца и группы владельца:

Скорректируем файл конфигурации для общих ресурсов smb:

Теперь я добавлю следующий блок с конфигураций для анонимного доступа:

В таблице ниже я кратко опишу основные параметры.

Параметр Назначение
Имя smb ресурса
path Физическое расположение директории на сервере
browseable Если установлен параметр “yes”, то ресурс будет отображаться при запросе списка ресурсов на сервере. Если установлен параметр “no”, то ресурс будет доступен только по прямому пути. Например, \\10.10.10.33\restricted
read only Определяет, является ли ресурс доступным только для чтения
create mode Все новые файлы будут создаваться с указанными разрешениями (777 в моем случае)
directory mode Все новые директории будут создаваться с указанными разрешениями (777 в моем случае)
valid users Перечень пользователей, которым разрешен доступ к ресурсу. В моем случае – это пользователь user6. Список пользователей разделяется пробелом

Дополнительно необходимо перезапустить службы:

Понравилась статья? Поделиться с друзьями:
Клуб настройки
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: