Установка и настройка файлового сервера Samba на Ubuntu
Установка и настройка файлового сервера Samba на Ubuntu
Samba позволяет настроить файловое хранилище различных масштабов — от малых офисов для крупных организаций. В данной инструкции мы рассмотрим процесс настройки файлового сервера. Сначала мы выполним установку и базовую настройку с предоставлением гостевого доступа. После будет приведены примеры разграничения доступа по пользователям, группам и пользователям Active Directory.
Подготовка сервера
1. Время
Для корректного отображения дат, необходимо позаботиться о синхронизации времени. Для этого будем использовать демон chrony. Установим его:
apt-get install chrony
Разрешим автозапуск сервиса:
systemctl enable chrony
2. Брандмауэр
По умолчанию, в системах на базе Debian брандмауэр разрешает все соединения. Но если в нашем случае мы используем брандмауэр, необходимо открыть порты:
iptables -I INPUT -p tcp —dport 445 -j ACCEPT
iptables -I INPUT -p udp —dport 137:138 -j ACCEPT
iptables -I INPUT -p tcp —dport 139 -j ACCEPT
* где порт 445 используется для samba, а порты 137, 138 и 139 — для работы NetBIOS (использование имени компьютера для доступа).
apt-get install iptables-persistent
Установка и запуск Samba
Установка выполняется из репозитория одной командой:
apt-get install samba
Разрешаем автостарт сервиса:
systemctl enable smbd
И проверим, что сервис запустился:
systemctl status smbd
Проверяем, что сервер самба позволяет к себе подключиться. Для этого можно с компьютера обратиться к серверу по SMB, например, на компьютере с Windows это можно сделать из проводника, прописав путь к серверу с двух слэшей:
* в данном примере мы подключаемся к серверу Samba с IP-адресом 192.168.1.15.
Если мы настроили сервер правильно, система откроет пустую папку. На данном этапе проверка закончена и мы можем переходить к созданию первой шары.
Создание первой шары и предоставление к ней гостевого доступа (анонимного)
Разберем самый простой пример предоставления доступа к папке — анонимный доступ всем пользователям без запроса пароля.
Открываем на редактирование конфигурационный файл samba:
И добавляем настройку для общей папки:
[Общая папка]
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 — при создании новой папки или файла назначаются указанные права. В нашем примере права будут полные.
Создаем каталог на сервере и назначим права:
mkdir -p /data/public
chmod 777 /data/public
Применяем настройки samba, перезагрузив сервис:
systemctl restart smbd
Пробуем подключиться к папке. Мы должны зайти в нее без необходимости ввода логина и пароля.
Доступ к папке по логину и паролю
Теперь создадим каталог, в который вход будет разрешен только авторизованным пользователям.
Открываем конфигурационный файл samba:
Добавляем настройку для новой папки:
[Папка сотрудников]
comment = Staff Folder
path = /data/staff
public = no
writable = yes
read only = no
guest ok = no
create mask = 0777
directory mask = 0777
force create mode = 0777
force directory mode = 0777
* эти настройки, во многом, похожи на те, что использовались в примере выше. Вот основные различия:
- path = /data/staff — используем новый путь до папки.
- public = no — запрещаем публичный доступ.
- guest ok = no — не разрешаем гостевое подключение.
Создаем каталог для новой папки:
Задаем права на созданный каталог:
chmod 777 /data/staff
Создаем пользователя в системе Linux:
* где staff1 — имя пользователя.
Задаем пароль для пользователя:
Теперь создадим пользователя в samba:
smbpasswd -a staff1
systemctl restart smbd
Пробуем зайти на сервер — общую папку мы должны открыть без авторизации, а при попытке открыть папку сотрудников должно появиться окно ввода логина и пароля.
Если мы авторизованы на компьютере, с которого пытаемся подключиться к серверу, под той же учетной записью, что создали для доступа к папке, samba может и не потребовать аутентификации.
Доступ к папке определенным пользователям и группам
Теперь создадим папку, доступ к которой будут иметь ограниченное количество пользователей.
Открываем конфигурационный файл samba:
Добавляем настройку для новой папки:
[Приватная папка]
comment = Private Folder
path = /data/private
public = no
writable = no
read only = yes
guest ok = no
valid users = admin, staff2, staff3, @privateusers
write list = admin, staff2
create mask = 0777
directory mask = 0777
force create mode = 0777
force directory mode = 0777
inherit owner = yes
* стоит обратить внимание на следующие настройки:
- path = /data/private — используем новый путь до папки.
- writable = no и read only = yes — в данном примере мы разрешим запись в каталог только некоторым пользователям. Поэтому общие настройки, разрешающие запись в папку, должны быть запрещены.
- valid users — список пользователей, которым разрешено подключаться к каталогу. В данном примере разрешения работают для пользователей admin, staff2 и staff3, а также для всех, кто входим в группу privateusers.
- write list — список пользователей, которые имеют доступ к папке на чтение и запись. В данном примере мы разрешаем это только для пользователей admin и staff2.
- inherit owner — опция позволяем включить наследование владельца при создании папок и файлов.
* если мы хотим, чтобы доступ к каталогу был полный у определенных пользователей (без разделения на тех, кто может только читать и тех, кто может также писать в папку), то опцию write list можно не указывать, а опции writable и read only оставить как в примерах выше.
Создаем каталог для новой папки:
Задаем права на созданный каталог:
chmod 777 /data/private
Для применения настроек перезапускаем samba:
systemctl restart smbd
Создать группу пользователей можно командой:
Добавить ранее созданного пользователя в эту группу:
usermod -a -G privateusers staff1
Проверяем возможность работы с новым каталогом.
Сетевая корзина
При удалении файлов из общей папки, данные удаляются навсегда. Но мы можем настроить сетевую корзину — скрытый каталог, в который будут перемещаться удаляемые с самбы объекты.
Открываем конфигурационный файл:
[Recycle]
comment = Snap Directories
path = /data/recycle
public = yes
browseable = yes
writable = yes
vfs objects = recycle
recycle:repository = .recycle/%U
recycle:keeptree = Yes
recycle:touch = Yes
recycle:versions = Yes
recycle:maxsize = 0
recycle:exclude = *.tmp,
- vfs objects = recycle — использовать подсистему recycle.
- recycle:repository — где хранить удаленные объекты. В данном примере удаленные файлы попадут в скрытый каталог .recycle к котором создастся каталог с именем пользователя, удалившего файл или папку.
- recycle:keeptree — удалять объекты с сохранение дерева каталогов.
- recycle:touch — изменить ли дату изменения файла при его перемещении в корзину.
- recycle:versions — при удалении файлов с совпадающими именами, добавлять номер версии.
- recycle:maxsize — не помещать в корзину файлы, размер которых больше заданного параметра (в байтах). В данном примере, помещать файлы любого размера.
- recycle:exclude — исключить файлы.
- recycle:exclude_dir — исключить каталог.
Создаем каталог и задаем права:
chmod 777 /data/recycle
systemctl restart smbd
Пробуем зайти в сетевой каталог Recycle и создать, а после удалить файл. Он должен оказаться к скрытой папке .recycle.
Для автоматической чистки сетевой корзины можно создать скрипт:
/usr/bin/find $recyclePath -name "*" -ctime +$maxStoreDays -exec rm <> ;
* в данном скрипте мы ищем все файлы в каталоге /data/recycle/.recycle, которые старше 30 дней и удаляем их.
Разрешаем запуск скрипта:
chmod +x /scripts/cleanrecycle.sh
Создаем задание в планировщике:
0 5 * * * /scripts/cleanrecycle.sh
* в данном примере мы будем запускать скрипт по очистке сетевой корзины каждый день в 05:00.
Подключение к шаре
Теперь разберем примеры подключения к нашим шарам из разных систем.
Windows
Для разового подключения можно использовать проводник, прописав в нем адрес сервера через косые линии:
Для подключения сетевого диска, который будет автоматически создаваться при запуске системы, в проводнике сверху нажимаем Простой доступ — Подключить как диск:
В открывшемся окне прописываем путь до сетевой папки и выбираем имя диска:
Сетевой диск настроен.
Но мы может сделать те же действия из командной строки:
net use x: \samba.dmosk.localAD ACL /persistent:yes
* где x: — имя сетевого диска; \samba.dmosk.localAD ACL — путь до сетевого каталога; persistent:yes — указывает на то, что нужно восстанавливать данный диск каждый раз при входе в систему.
Linux
Монтирование
В 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 staff@dmosk.local
* где 192.168.1.15 — сервер samba, к которому мы пытаемся подключиться; staff@dmosk.local — учетная запись, под которой выполняется подключение.
. мы получим список каталогов, которые расшарены на сервере.
Также мы можем подключиться к конкретной папке, например:
smbclient \\192.168.1.15\ad -U staff@dmosk.local
Мы подключимся клиентом samba — можно выполнить запрос на показ содержимого:
Или полный список возможных команд:
Некоторые опции Samba
Рассмотрим некоторые полезные опции, которые могут пригодится при настройке Samba.
1. hosts allow
Параметр задает список разрешенных хостов или сетей, с которых можно подключаться к серверу. Если его прописать в секцию с настройкой шары, то он будет действовать только для нее, если прописать в [global], то для всех общих папок.
Пример использования параметра.
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.
Как расшарить папку Linux без пароля
Если вам оказалась полезна или просто понравилась эта статья, тогда не стесняйтесь — поддержите материально автора. Это легко сделать закинув денежек на Яндекс Кошелек № 410011416229354. Или на телефон +7 918-16-26-331.
Даже небольшая сумма может помочь написанию новых статей 🙂
Или поделитесь ссылкой на эту статью со своими друзьями.
В этой статье будет рассмотрен наиболее простой случай настройки доступа к Linux файлам. Когда нужно предоставить анонимный доступ к общим ресурсам Linux. Это распространенная ситуация в домашних сетях и в сети небольшого офиса. Расшарить папку Linux по сети можно используя несколько протоколов. Но чаще всего это делается через сервер Samba с использованием протокола SMB (CIFS). Именно этот способ и будет описан в статье.
Частое использование Samba и протокола SMB связано с тем, что обычно нужно на Linux расшарить папку для Windows. А протокол SMB (CIFS) используется в операционных системах Windows для организации общего доступа к файлам и принтерам. Компьютер под управлением Linux, на котором установлен и настроен сервер Samba, в локальной сети выглядит точно так же как и компьютер под управлением Windows.
Итак, что, и в какой последовательности необходимо сделать для того чтобы в Linux предоставить сетевой доступ к папке и файлам?
Установка Samba
Это первый шаг. В некоторых дистрибутивах установку Samba можно указать в параметрах установщика, как например Alt Linux или Rosa Linux. Но в большинстве дистрибутивов Samba устанавливается отдельно, при необходимости. Например в Ubuntu установка Samba выполняется автоматически, если вы открываете общий доступ к папке через файловый менеджер Наутилус.
В общем случае установка Samba очень проста — обычно установочный пакет так и называется — samba. В каждом дистрибутиве Linux есть программа для управления программными пакетами. Которая показывает установленные пакеты и позволяет устанавливать новые пакеты. Например в дистрибутиве Ubuntu это три графические программы — Gdebi, Synaptic и Software-center. И две консольные — apt и dpkg.
Итак, шаг первый — проверить установлен ли сервер Samba и если нет тогда установить его.
Настройка доступа в Samba без пароля
Шаг второй. После установки сервера Samba необходимо его настроить. В самом простейшем случае нужно настроить две вещи:
- Указать папку, которая будет доступна по сети.
- Указать способ доступа к компьютеру через сеть (способ аутентификации для входа на компьютер через сеть).
С первым пунктом, я думаю, все понятно. Второй пункт чуть сложнее. Samba может предоставлять сетевой доступ к компьютеру Linux либо с авторизацией (с указанием логина и пароля) либо анонимно (без логина и пароля). Как и было написано в начале статьи, я опишу настройку анонимного доступа.
Настроить сервер Samba можно через GUI интерфейс или через непосредственное редактирование файла конфигурации Samba.
Настройка Samba через GUI интерфейс
Чаще всего для этого используется программа system-config-samba. Она есть во всех популярных дистрибутивах Linux. Но не во всех дистрибутивах она устанавливается автоматически (из коробки). Так что нужно проверять ее наличие и устанавливать, если ее нет. Эта программа позволяет не только указать общую папку, но и добавлять Samba-пользователей и управлять некоторыми параметрами сервера Samba.
Параметры, изменяемые через эту программу, записываются в файл глобальной настройки Samba — /etc/samba/smb.conf.
В графической оболочке GNOME есть файловый менеджер Наутилус в котором указать общий доступ к папке можно непосредственно в свойствах этой папки (пакет nautilus-share).
Параметры, изменяемые через файловый менеджер Наутилус, записываются в файл
/.gnome2/nautilus-share-modified-permissions и в папку /var/lib/samba/usershares.
Настройка Samba через файл конфигурации
Файл конфигурации Samba обычно находится в папке /etc/samba и называется smb.conf (полный путь к файлу /etc/samba/smb.conf). Через этот файл можно полностью управлять настройками сервера Samba. Однако редактировать этот файл нужно осторожно.
Samba — настройка доступа без пароля
На самом деле протокол SMB не дает анонимного доступа к файлам и папкам. Он предоставляет два способа авторизации:
- Авторизация при сетевом входе на компьютер.
- Авторизация при доступе к разделяемому ресурсу (папке, файлу).
Тем не менее, комбинируя параметры Samba и параметры файловой системы можно получить псевдо анонимный доступ — то есть использование сетевых ресурсов без учетной записи пользователя и без пароля.
Если настраивать Самба через файл smb.conf, тогда нужно, в секции [global], указать следующие параметры:
- security = user
- map to guest = bad user (или bad password)
В случае значения bad user, при сетевом входе, будет запрошено имя пользователя и пароль. Но их можно указать любые "от фонаря". И тем не менее вход будет выполнен. В случае значения bad password не будет запроса имени пользователя и пароля.
Параметр map to guest указывает Самбе, что всех кто не смог авторизоваться нужно тем не менее впускать в систему, но с правами гостя.
Далее в секции, которая описывает общую папку Linux, нужно указать четыре параметра:
- [lan]
- path = /home/user/lan
- guest ok = yes
- read only = no
- create mask = 0777
- directory mask = 0777
Это пример такой секции в файле smb.conf. Заголовок секции определяет имя папки которое будет видно в сети. Параметр path определяет саму папку в файловой системе Linux. А параметры guest ok и read only разрешают запись в папку и гостевой доступ к папке. И последние параметры, create mask и directory mask, указывают, что все файлы и папки, которые будут там созданы через сеть (сетевыми пользователями) должны получить атрибуты полного доступа в файловой системе Linux.
Последние два параметра очень важны, чтобы у всех сетевых пользователей была возможность изменять файлы в этой сетевой папке Linux. Если не указать параметры create mask и directory mask, тогда новые файлы будут доступны только тем кто войдет в эту папку гостем. А например уже локальный пользователь Linux не сможет их изменять.
Вот минимальная конфигурация Samba для анонимного доступа к файлам Linux.
Разрешения Linux для доступа без пароля
Во-первых нужно установить полные права на папку Linux, которая будет сетевой. Полные права доступа на папку в Linux это разрешение на исполнение и запись для: владельца, группы и всех остальных. В Linux широко используется цифровое сокращение для обозначения прав доступа — полный доступ для папки это 777. Если такие права не установить на папку, тогда сетевые пользователи либо не смогут войти в эту папку, либо не смогут в ней создавать новые файлы или папки.
Установить разрешения на файл (папку) в Linux можно через файловый менеджер (через свойства папки) или в терминале, программой chmod.
Если ограничиться только лишь настройкой Samba и установкой разрешений на папку, тем не менее возможно появление проблем с доступом к отдельным файлам в этой сетевой папке Linux.
- если локальный пользователь Linux войдет в эту папку через файловый менеджер и создаст в ней новый файл;
- если локальный пользователь Linux скопирует в эту папку файл из другой своей локальной папки.
В обоих случаях новый файл будет недоступен для редактирования сетевыми пользователями. Почему это произойдет? Новый файл получит права доступа Linux 644, то есть полный доступ только для владельца файла. А если файл будет скопирован из другой папки, то он сохранит свои права и после копирования.
Что делать для решения этой проблемы?
Есть разные способы решения. Кто-то советует периодически (например по заданию cron) изменять права всем файлам в папке на 666 (права полного доступ для всех без исключения). Это работает, но на мой взгляд не вариант. Я считаю что такое присвоение прав должно происходит автоматически, без лишних телодвижений.
Другие люди советуют включить ACL на файловой системе Linux и затем указать ACL по умолчанию для сетевой папки (со значением 777).
Это работает, но только наполовину. Если локальный пользователь сам создаст новый файл, этот файл получит атрибуты 666. Но если локальный пользователь скопирует файл из другой папки, то файл сохранит свои старые атрибуты.
Однако есть два способа которые полностью решают проблему.
Первый способ, самый простой.
Локальному пользователю, нужно заходить в сетевую папку тоже через сеть! В этом случае все его операции в папке будут проходить через сервер Samba. А Самба настроена на полный доступ.
Достоинство этого способа в том, что ничего не нужно делать дополнительно. Недостатка два:
- Скорость файловых операций для локального пользователя будет ниже чем если бы он зашел в сетевую папку обычным образом.
- Локальный пользователь может забыть и войти в папку обычным образом.
Второй способ — настройка сетевого доступа через 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 уже не нужны.
Резюме
Еще раз напоминаю, что это простейшая конфигурация для полностью доверенной локальной сети. В которой не нужны никакие ограничения по доступу к файлам.
Но в том случае, когда доступ нужно разграничивать, настройка будет похожа. Нужно лишь добавлять пользователей в Samba, установить нужные разрешения в файловой системе Linux. Быть может даже создать специальную локальную группу пользователей Linux, в которую продублировать всех пользователей Самбы.
Настройка доступа без пароля для других ОС
Если вы живете в г. Краснодар и вам необходимо настроить локальную сеть в Linux
Иван Сухов, 2015, 2018 г.
Если вам оказалась полезна или просто понравилась эта статья, тогда не стесняйтесь — поддержите материально автора. Это легко сделать закинув денежек на Яндекс Кошелек № 410011416229354. Или на телефон +7 918-16-26-331.
Как установить и настроить Samba в Ubuntu 18.04
Samba — это бесплатная и открытая повторная реализация сетевого протокола обмена файлами SMB / CIFS, который позволяет конечным пользователям получать доступ к файлам, принтерам и другим общим ресурсам.
Мы создадим следующие общие ресурсы и пользователей Samba.
Пользователи:
- sadmin — административный пользователь с правами чтения и записи для всех общих ресурсов.
- josh — Обычный пользователь со своим личным файловым хранилищем .
- users — этот общий ресурс будет доступен всем пользователям с разрешениями на чтение и запись.
- josh — этот общий ресурс будет доступен с разрешениями на чтение и запись только пользователям josh и sadmin.
Общие файловые ресурсы будут доступны со всех устройств в вашей сети. Позже в этом руководстве мы также предоставим подробные инструкции о том, как подключиться к серверу Samba из клиентов Linux, Windows и macOS.
Прежде чем приступить
Прежде чем продолжить, убедитесь, что вы вошли в систему Ubuntu 18.04 как пользователь с правами sudo .
Установка Samba в Ubuntu
Samba доступна в официальных репозиториях Ubuntu. Чтобы установить его в вашей системе Ubuntu, выполните следующие действия:
Начните с обновления индекса пакетов apt:
Установите пакет Samba с помощью следующей команды:
После завершения установки служба Samba запустится автоматически. Чтобы проверить, запущен ли сервер Samba, введите:
Результат должен выглядеть примерно так, как показано ниже, показывая, что служба Samba активна и работает:
На этом этапе Samba установлена и готова к настройке.
Настройка межсетевого экрана
Если у вас есть брандмауэр работает в вашей системе Ubuntu вам необходимо разрешить входящие соединения UDP на портах 137 и 138 и TCP соединений на портах 139 и 445 .
Предполагая, что вы используете UFW для управления брандмауэром, вы можете открыть порты, включив профиль Samba:
Настройка глобальных параметров Samba
Прежде чем вносить изменения в файл конфигурации Samba, создайте резервную копию для использования в будущем:
Файл конфигурации по умолчанию, который поставляется с пакетом Samba, настроен для автономного сервера Samba. Откройте файл и убедитесь, что для server role него установлено значение standalone server
По умолчанию Samba прослушивает все интерфейсы. Если вы хотите ограничить доступ к серверу Samba только из своей внутренней сети, раскомментируйте следующие две строки и укажите интерфейсы для привязки:
После этого запустите testparm утилиту, чтобы проверить файл конфигурации Samba на наличие ошибок. Если нет синтаксических ошибок, вы увидите Loaded services file OK.
Наконец, перезапустите службы Samba с помощью:
Создание пользователей Samba и структуры каталогов
Для упрощения обслуживания и гибкости вместо использования стандартных домашних каталогов ( /home/user ) все каталоги и данные Samba будут расположены в этом /samba каталоге.
Чтобы создать /samba каталог типа:
Установите собственность группы в sambashare . Эта группа создается во время установки Samba, позже мы добавим в эту группу всех пользователей Samba.
Samba использует систему разрешений пользователей и групп Linux, но имеет собственный механизм аутентификации, отличный от стандартной аутентификации Linux. Мы создадим пользователей с помощью стандартного useradd инструмента Linux , а затем установим пароль пользователя с помощью smbpasswd утилиты.
Как мы упоминали во введении, мы создадим обычного пользователя, который будет иметь доступ к его личному файловому ресурсу, и одну административную учетную запись с доступом для чтения и записи ко всем общим папкам на сервере Samba.
Создание пользователей Samba
Чтобы создать нового пользователя с именем, josh используйте следующую команду:
Параметры useradd имеют следующие значения:
- -M -не создавать домашний каталог пользователя. Мы создадим этот каталог вручную.
- -d /samba/josh — установить домашний каталог пользователя /samba/josh .
- -s /usr/sbin/nologin — отключить доступ к оболочке для этого пользователя.
- -G sambashare — добавить пользователя в sambashare группу.
Создайте домашний каталог пользователя и установите права собственности на каталог для пользователя josh и группы sambashare :
Следующая команда добавит бит setgid в /samba/josh каталог, чтобы вновь созданные файлы в этом каталоге унаследовали группу родительского каталога. Таким образом, независимо от того, какой пользователь создает новый файл, файл будет иметь группу-владельца sambashare . Например, если вы не установите права доступа к каталогу, 2770 а sadmin пользователь создаст новый файл, пользователь josh не сможет читать / писать в этот файл.
Добавьте josh учетную запись пользователя в базу данных Samba, установив пароль пользователя:
Вам будет предложено ввести и подтвердить пароль пользователя.
После того, как пароль установлен для запуска учетной записи Samba:
Чтобы создать другого пользователя, повторите тот же процесс, что и при создании пользователя josh .
Далее давайте создадим пользователя и группу sadmin . Все члены этой группы будут иметь права администратора. Позже, если вы захотите предоставить административные права другому пользователю, просто добавьте этого пользователя в sadmin группу .
Создайте пользователя с правами администратора, набрав:
Команда выше будет также создать группу sadmin и добавить пользователя как sadmin и sambashare группы.
Установите пароль и включите пользователя:
Затем создайте Users общий каталог:
Установите владельца каталога на пользователя sadmin и группу sambashare :
Этот каталог будет доступен всем авторизованным пользователям. Следующая chmod команда предоставляет доступ для записи / чтения членам sambashare группы в /samba/users каталоге:
Настройка общих ресурсов Samba
Откройте файл конфигурации Samba и добавьте разделы:
Параметры имеют следующие значения:
- [users] и [josh] — Имена общих ресурсов, которые вы будете использовать при входе в систему.
- path — Путь к доле.
- browseable — Должна ли акция быть указана в списке доступных акций. При установке на no другие пользователи не смогут увидеть общий ресурс.
- read only — Могут ли пользователи, указанные в valid users списке, писать в этот общий ресурс.
- force create mode — Устанавливает разрешения для вновь созданных файлов в этом общем ресурсе.
- force directory mode — Устанавливает разрешения для вновь созданных каталогов в этом общем ресурсе.
- valid users — Список пользователей и групп, которым разрешен доступ к общему ресурсу. Группы начинаются с @ символа.
Дополнительные сведения о доступных параметрах см. На странице документации файла конфигурации Samba .
После этого перезапустите службы Samba с помощью:
В следующих разделах мы покажем вам, как подключиться к общему ресурсу Samba из клиентов Linux, macOS и Windows.
Подключение к общему ресурсу Samba из Linux
Пользователи Linux могут получить доступ к общему ресурсу Samba из командной строки, используя файловый менеджер или смонтировать общий ресурс Samba.
Использование клиента smbclient
smbclient это инструмент, позволяющий получить доступ к Samba из командной строки. smbclient Пакет не предустановлен на большинстве дистрибутивов Linux , так что вам нужно будет установить его с помощью менеджера пакетов распределения.
Для установки smbclient в Ubuntu и Debian запустите:
Для установки smbclient на CentOS и Fedora запустите:
Синтаксис для доступа к общему ресурсу Samba следующий:
Например, чтобы подключиться к общему ресурсу с именем josh на сервере Samba с IP-адресом в 192.168.121.118 качестве пользователя, josh вы должны запустить:
Вам будет предложено ввести пароль пользователя.
После ввода пароля вы войдете в интерфейс командной строки Samba.
Монтирование общего ресурса Samba
Чтобы смонтировать общий ресурс Samba в Linux, вам сначала нужно установить cifs-utils пакет.
В Ubuntu и Debian запустите:
В CentOS и Fedora запустите:
Затем создайте точку монтирования:
Подключите общий ресурс с помощью следующей команды:
Например, чтобы подключить общий ресурс с именем josh на сервере Samba с IP-адресом в 192.168.121.118 качестве пользователя josh к /mnt/smbmount точке монтирования, вы должны запустить:
Вам будет предложено ввести пароль пользователя.
Использование графического интерфейса
Files, файловый менеджер по умолчанию в Gnome имеет встроенную возможность доступа к общим ресурсам Samba.
- Откройте файлы и нажмите «Другие места» на боковой панели.
- В поле «Подключиться к серверу» введите адрес общего ресурса Samba в следующем формате smb://samba_hostname_or_server_ip/sharename .
- Нажмите «Подключиться», и появится следующий экран:
Подключение к общему ресурсу Samba из macOS
В macOS вы можете получить доступ к общим ресурсам Samba либо из командной строки, либо с помощью стандартного файлового менеджера macOS Finder. Следующие шаги показывают, как получить доступ к общему ресурсу с помощью Finder.
- Откройте «Finder», выберите «Перейти» и нажмите «Подключиться к».
- В поле «Подключиться к» введите адрес общего ресурса Samba в следующем формате smb://samba_hostname_or_server_ip/sharename .
Подключение к общему ресурсу Samba из Windows
Пользователи Windows также могут подключиться к общему ресурсу Samba как из командной строки, так и из графического интерфейса. Следующие шаги показывают, как получить доступ к общему ресурсу с помощью проводника Windows.
- Откройте проводник и на левой панели щелкните правой кнопкой мыши «Этот компьютер».
- Выберите «Выбрать другое сетевое расположение» и нажмите «Далее».
- В поле «Интернет или сетевой адрес» введите адрес общего ресурса Samba в следующем формате \samba_hostname_or_server_ipsharename .
Установка и настройка Samba в Ubuntu
Файловый сервер Samba позволяет передавать файлы между серверами и компьютерами по сети. С его помощью, к примеру, вы можете получить доступ к файлам на сервере со своего рабочего компьютера или ноутбука. Ниже я расскажу, как установить и настроить файловый сервер Samba на Ubuntu.
Если вы только планируете устанавливать ubuntu, то можете воспользоваться моей подробной статьей на этот счет — установка ubuntu server. Так же вам может быть интересен мой обзор и сравнение сервера убунту с другими linux системами — Ubuntu Server — обзор для начинающих, сравнение, отзывы.
Введение
Из статьи вы узнаете:
- Как настроить файловый сервер Samba
- Как передавать файлы по локальной сети
- Ubuntu Server
- Локальная сеть для передачи файлов
Если у вас все готово, то приступаем к настройке.
Установка Samba
Для установки Samba, выполняем в консоли:
После того, как установка будет завершена, проверьте, куда установлена samba:
Вы должны увидеть примерно следующее:
Настройка Samba
Когда Samba установлена, можно приступить к настройке. Нам необходимо создать директорию для сетевой папки.
Команда выше создаст пустую папку, которую мы сделаем сетевой. Для этого настраиваем конфиг Самбы. Он живет по адресу /etc/samba/smb.conf . Отредактируем его и добавим новую сетевую директорию.
Добавляем туда следующие строки:
Нажмите Ctrl-O, чтобы сохранить и Ctrl-X, чтобы выйти из редактора nano.
Что мы настроили:
- path — директория для нашей сетевой папки samba
- read only — указали, что файлы в сетевой папке не только для чтения, а значит могут быть изменены
- browsable — сделали возможным просмотр сетевой папки в сетевом окружении обозревателя файлов в операционных системах
Сетевую папку мы настроили, теперь нужно перезагрузить Samba:
Разрешим работу Samba в фаерволе, если он у вас включен:
Все, на этом настройка Samba закончена. Переходим к проверке работы.
Добавление пользователя сетевого диска
Для того, чтобы получить доступ к сетевой папке Samba, необходимо задать пароль пользователя шары. Он уже должен существовать в системе.
shareuser — системный пользователь, у которого будет доступ к сетевой папке. Если получите ошибку:
Failed to add entry for user shareuser.
Значит у вас нет системного пользователя. Добавьте его следующим образом:
Подключение к сетевому диску
Теперь попробуем зайти на сетевой диск Samba. Для этого в обозревателе файлов перейдите по адресу \10.20.1.16 , где 10.20.1.16 это ip адрес сервера, на котором мы выполняли настройку samba.
Появится запрос на авторизацию. Укажите имя пользователя и пароль, которые мы задали этапом раньше. Вы окажетесь в сетевой директории. Попробуйте туда скопировать несколько файлов.
Если получите ошибку — Нет доступа к целевой папке, Вам необходимо разрешение на выполнение целевой операции, значит у пользователя shareuser нет unix прав на запись в директорию /mnt/share . Исправляем это:
Попробуйте скопировать еще раз. Теперь должно быть все в порядке.
Все, на этом настройка Samba закончена. Удачной работы и хорошего аптайма!
Видео
Как установить и настроить Samba в Ubuntu
Если у вас есть сеть, состоящая из компьютеров под управлением Windows и Linux, и вы хотите включить обмен между ними. Вы можете достичь этого с помощью полезного инструмента Samba. Это инструмент с открытым исходным кодом, который позволяет вам получать доступ к общим ресурсам, включая файлы, принтеры и т. Д.
В этой статье мы покажем вам, как установить и настроить Samba в качестве системы хранения файлов для ОС Windows и Linux. Мы также покажем вам, как получить доступ к общим файлам Samba с помощью других клиентских ОС Linux и Windows. Прежде чем получить доступ к общим ресурсам, убедитесь, что у вас есть серверная и клиентская ОС в одной IP-подсети.
В этой статье я использую Ubuntu 18.04 LTS для установки и настройки сервера Samba.
Установка Samba в Ubuntu
Запустите терминал, нажав сочетание клавиш Ctrl + Alt + T , затем введите следующую команду для установки Samba.
Проверка установки SAMBA
Чтобы проверить, успешно ли Samba установлена и работает, введите следующую команду. Он покажет статус службы Samba.
Вы можете видеть вышеупомянутый статус, что Samba активен и работает.
Конфигурация Samba
Когда вы закончите установку, вам нужно будет ее настроить.
1. Сначала нам нужно будет создать каталог Samba, в котором будут храниться все общие данные. Откройте Терминал и выполните следующую команду от имени sudo:
Он создаст новый подкаталог samba в корневом каталоге.
2. Сделайте резервную копию файла конфигурации, скопировав его в тот же или другой каталог. Чтобы скопировать файл, выполните следующую команду от имени sudo:
Он сделает резервную копию файла в том же каталоге.
3. Теперь отредактируйте файл конфигурации. Файл конфигурации Samba находится в / etc / samba / в файле с именем smb.conf. Вы можете использовать Gedit, Nano или Vim для редактирования любого файла конфигурации. Чтобы отредактировать файл с помощью редактора nano, откройте Terminal и выполните следующую команду от имени sudo:
Настройка общих ресурсов Samba
Теперь мы настроим наш новый каталог samba в качестве общего ресурса. Для этого нам нужно будет добавить следующие строки в файл конфигурации Samba.
Добавьте следующую строку в конец файла smb.conf.
- [samba-share] = имя ресурса
- comment = Добавить краткое описание ресурса
- Path = Это каталог вашего ресурса.
- Только для чтения = Указывает, разрешено ли пользователю писать
- Browsable = следует ли указывать общий ресурс в списке общих ресурсов
Нажмите Ctrl + O для сохранения и Ctrl + X выходить.
Настройка учетной записи пользователя Samba
Теперь настройте учетную запись пользователя Samba. Samba использует системную учетную запись для доступа к общему ресурсу, но не принимает пароль системной учетной записи. поэтому нам нужно будет установить пароль для этой учетной записи, введя следующую команду как sudo. При запросе пароля введите новый пароль.
Перезапустите службу Samba
После завершения всех настроек перезапустите службу Samba, выполнив следующую команду:
Подключение Samba Share
Как уже говорилось, вы должны быть в LAN для доступа к файлам с сервера Samba. Это означает, что IP-адрес вашего сервера Samba и клиентов, подключающихся к нему, должны находиться в одной сети.
Например, в моем сценарии у меня есть один сервер Samba и два клиента: один — Linux, а другой — Windows. Все три машины находятся в одной сети.
- IP-адрес Samba (сервер): 192.168.36.129/24
- IP-адрес Linux (клиент): 192.168.36.130/24
- IP-адрес Windows (клиент): 192.168.36.1/24
Настройка IP-адреса сервера Samba
Вы можете проверить IP-адрес любой машины, запустив ifconfig в Терминале.
Ниже приведена конфигурация IP моего сервера Samba:
Метод 1: Подключение из Linux
Существует два способа подключения общего ресурса Samba из клиента Linux.
1. Использование командной строки
2. Использование GUI
Ниже приведена конфигурация IP-адреса моего клиента Linux:
1. Использование командной строки
Для подключения общего ресурса Samba через командную строку Linux вам потребуется smbclient tool. Чтобы установить smbclient, откройте Терминал и выполните следующую команду от имени sudo:
После завершения установки выполните команду, используя следующий синтаксис для доступа к общему ресурсу Samba.
- [IP_address or Host_name] — это IP-адрес или имя хоста сервера Samba
- [share_name] — это имя общего ресурса Samba
- [username] — это имя пользователь, который обращается к общему ресурсу
, запросит пароль. После ввода пароля вы войдете в Samba CLI. Вы можете набрать help , чтобы увидеть список различных команд.
2. Использование GUI
Чтобы получить доступ к общему ресурсу Samba через графический интерфейс, откройте диспетчер файлов Linux. Нажмите Connect to Server в левой части окна диспетчера файлов.
В окне Connect to Server введите адрес сервера Samba в следующем синтаксисе и нажмите Connect .
smb: // [IP_address or Host_name] / [share_name]
Появится следующий экран. В параметре Connect As выберите Registered User .
Введите имя пользователя и пароль Samba. Оставьте домен по умолчанию и нажмите Connect .
Вы увидите, что соединение установлено. Теперь вы можете получить доступ к файлам на сервере Samba.
Способ 2. Подключение из Windows
Вы можете подключиться к общему ресурсу Samba с помощью ОС Windows двумя способами:
1. С помощью утилиты запуска
2. С помощью проводника
Ниже приведена конфигурация IP-адреса клиентского компьютера My Windows:
1. Использование утилиты Run
Нажмите клавишу Windows + R , чтобы запустить утилиту Run . Введите адрес в следующем синтаксисе для доступа к общему ресурсу Samba и нажмите Enter.
Будет предложено ввести учетные данные. Введите учетные данные для общего ресурса Samba, затем нажмите OK .
Вы увидите, что соединение установлено. Теперь вы можете получить доступ к файлам на сервере Samba.
2.Использование проводника
Запустите проводник в окне. На левой панели щелкните правой кнопкой мыши This PC . Затем выберите Добавить сетевое расположение из раскрывающихся меню.
Запустится мастер Add Network Location . Продолжайте нажимать Next , пока не появится следующий экран. Добавьте общий адрес Samba, следуя синтаксису, и нажмите Next .
На следующем экране вы можете изменить имя общего расположения. Нажмите Next , а затем нажмите Finish , чтобы завершить процесс.
Когда вышеуказанный процесс будет завершен, он запросит учетные данные, введите учетные данные для общего ресурса Samba и нажмите OK .
Вы увидите, что соединение установлено. Теперь вы можете получить доступ к файлам на сервере Samba.
Поэтому, чтобы подвести итог, мы узнали, как установить и настроить Samba в Ubuntu 18.04 LTS для создания общих ресурсов. Мы узнали, как подключить эти ресурсы с помощью ОС Linux и Windows.