Основная цель такой папки — возможность обмена файлами в локальной сети между Linux и Windows-машинами. Специфической привязки к 1С-направлению здесь нет, но такая папка поможет разработчикам хранить файлы конфигураций 1С, а также выгрузки документации по разработке и отчеты для обеспечения оперативного доступа при отсутствии ответственного сотрудника на месте.
В целом Ubuntu поставляется с общей папкой в домашнем каталоге. Она недоступна по умолчанию, но настраивается несколько различных типов обмена файлами в локальной сети компании. Изначальное предназначение папки — инструмент личного обмена файлами.
Главное стартовое условие — компьютеры, между которыми предполагается организовать обмен, должны быть локальной сети.
В качестве предпочтительного способа мы выбрали сервер Samba — есть и другие способы, но они требуют наличие Интернета. Samba — проверенное годами решение для ситуаций, когда файлы нужно хранить на сервере Linux.
Samba — Linux, Windows или Mac OS совместимый пакет программного обеспечения, позволяющий обмениваться файлами, документами и принтерами по сети.
Установка
apt install samba samba-common
Для тестирования настроек устанавливаем клиент Samba.
apt install smbclient
apt install samba-common-bin
Настройки
Скопируем шаблонный файл настроек на случай возврата в исходное состояние.
cp /etc/samba/smb.conf /etc/samba/smb.conf.backup
Удаляем все закомментированные строки из файла настроек.
bash -c 'grep -v -E "^#|^;" /etc/samba/smb.conf.backup | grep . > /etc/samba/smb.conf'
Создаем отдельного системного пользователя
useradd -m -c "Name_User" -s /bin/bash usersamba
Установка пароля:
passwd usersamba
smbpasswd -a usersamba
Создаем общую папку Samba, доступную для всех
Создание папки:
mkdir -p /home/usersamba/smb/
Настраиваем права доступа к папке:
chown -R nobody:nogroup /home/usersamba/smb/
chmod ug+rwx /home/usersamba/smb/
или
chmod -R 0775 /home/usersamba/smb/
Для доменной сети:
chown root:"пользователи домена" /home/usersamba/smb/
Редактируем настройки
sudo gedit /etc/samba/smb.conf
Добавляем в конец файла /etc/samba/smb.conf
следующие строки: usersamba
заменяем на имя пользователя компьютера с Samba.
Папка будет открыта для чтения и записи.
[BackupWork]
comment = Samba Share
path = /home/usersamba/smb/
guest ok = yes
browsable =yes
writable = yes
read only = no
force user = usersamba
force group = usersamba
Перезапуск Samba
systemctl restart smbd.service
service smbd restart
Проверка правильности конфигурации Samba
testparm
Защищенная папка Samba, доступная только по паролю
Для того, чтобы защитить открытую папку паролем, достаточно изменить параметр guest ok на no.
Чтобы скрыть в обзоре сети папку, можно изменить параметр browsable на no.
Samba — это программное обеспечение для организации обмена файлами и работы с общими ресурсами между компьютерами под управлением Linux/Unix и операционной системой Windows. Samba состоит из клиентской и серверной части. Клиентская часть позволяет получить доступ к сетевым папкам и ресурсам Windows, а серверная, в свою очередь, открывает общий доступ к папке Ubuntu для других машин, в том числе и Windows.
В этой небольшой инструкции будет рассмотрена простейшая настройка Samba Ubuntu 18.04, а также как настроить общий доступ к папке Ubuntu с несколькими уровнями привилегий.
Мы создадим три общие папки с различными уровнями разрешений. Папку с анонимным доступом, с доступом для пользователей, входящих в определенную группу и доступом лишь для определенного пользователя.
Получить доступ к расшаренным папкам в Ubuntu смогут как Linux так и Widnows машины, с помощью любой программы для работающей по протоколу SMB.
Содержание статьи
- Подготовка Windows
- Настройка Samba в Ubuntu
- Общий доступ к папке Ubuntu
- Защищенный общий доступ к папке Ubuntu
- Выводы
Подготовка Windows
Для того чтобы все работало правильно, все машины должны состоять в одной рабочей группе, указанной на сервере Samba. По умолчанию для Windows, Linux и MacOS рабочая группа называется Workgroup. Чтобы узнать какая рабочая группа используется в вашей Windows откройте командную строку (Win+R, затем cmd) и выполните вот такую команду:
net config workstation
Нужный нам параметр мы видим в строке Домен рабочей станции. Это и есть рабочая группа.
Теперь, если у компьютера с Samba сервером в вашей сети будет постоянный IP адрес желательно ввести его в файле hosts. Для этого запустите командную строку от имени администратора:
И выполните команду:
notepad C:\Windows\System32\drivers\etc\hosts
В открывшимся файле добавьте строчку с IP адресом компьютера, на который будет установлен Samba:
192.168.0.1 srvr1.domain.com srvr1
Теперь можно переходить к вопросу как расшарить папку Ubuntu.
Начнем, как обычно, с установки. Установка Samba Ubuntu вместе со всеми необходимыми компонентами выполняется командой:
sudo apt-get install samba samba-common python-glade2 system-config-samba -y
Когда все будет установлено, можно переходить к настройке. Сначала создайте резервную копию оригинального файла конфигурации Samba:
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
После создания резервной копии, создайте свой файл конфигурации, этой командой:
sudo vi /etc/samba/smb.conf
Сначала укажем глобальные настройки файлового сервера. Для этого вставьте в файл такие строки:
[global]
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
netbios name = Ubuntu Share
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
passdb backend = tdbsam
unix password sync = yes
passwd program = /usr/bin/passwd %u
pam password change = yes
map to guest = bad user
usershare allow guests = yes
Рассмотрим подробнее что значат эти строки.
- workgroup — рабочая группа, как уже говорилось должна одинакова на всех машинах
- netbios name — имя компьютера, которое будет отображаться в Windows;
- log file — адрес файла, куда будут складываться сообщения об ошибках и другая информация;
- security — по умолчанию выполнять аутентификацию на уровне пользователя;
- name resolve order — очередность разрешения IP адресов по NetBIOS имени. bcast — означает отправить в локальную сеть широковещательный запрос. Если все компьютеры между которыми планируется взаимодействие находятся в одной сети этот вариант оптимальный;
- passdb backend — способ хранения паролей пользователей;
- unix password sync — синхронизация паролей пользователей samba с локальными паролями Unix;
- map to guest — указывает, когда пользователю будет предоставляться гостевой доступ. Доступно три значения — never — никогда, bad user — когда такого пользователя не существует, bad password — когда пароль введен неверно,
Когда завершите создание конфигурационного файла, переходим к вопросу как расшарить папку Ubuntu для Windows.
Общий доступ к папке Ubuntu
Сначала давайте создадим общую папку доступную всем. То есть с анонимным доступом, без авторизации samba.
Создайте папку, к которой будем открывать доступ, например:
sudo mkdir -p /samba/allaccess
После того как папка создана, нужно сделать для нее правильные права доступа. Следующие команды разрешают доступ к папке для всех и делают владельцем nobody:
cd /samba
sudo chmod -R 0755 allaccess
sudo chown -R nobody:nogroup allaccess/
Следующим шагом будет описать папку allaccess в файле настройки samba:
[allaccess]
path = /samba/allaccess
browsable = yes
writable = yes
guest ok = yes
read only = no
Теперь ваш конфигурационный файл должен выглядеть вот так:
[global]
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
netbios name = Ubuntu Share
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
passdb backend = tdbsam
unix password sync = yes
passwd program = /usr/bin/passwd %u
pam password change = yes
map to guest = bad user
usershare allow guests = yes
#==============
[AllAccess]
path = /samba/allaccess
browsable = yes
writable = yes
guest ok = yes
read only = no
Рассмотрим подробнее опции, которые были здесь использованы:
- path — путь к папке, которую нужно расшарить;
- browsable — будет ли папка отображаться в списке доступных шар;
- writable — будет ли папка доступна для записи;
- read only — папка доступна только для чтения;
- guest ok, public — будет ли разрешен гостевой доступ;
- only guest — если установлено yes, то папка будет доступна только гостям;
- hosts allow — ip адреса, с которых можно получить доступ к этому серверу;
- valid users — по умолчанию могут авторизоваться все пользователи, если в этом параметре передать список пользователей, то авторизоваться смогут только они;
- create mask — маска прав для создаваемых файлов.
Чтобы применить изменения, перезапустите сервер Samba:
sudo systemctl restart samba
Настройка Samba Ubuntu для анонимного доступа завершена. Теперь вы можете проверить доступность общей папки allaccess из Windows, для этого нажмите Win+R и выполните:
\\srvr1\allaccess
Вы увидите нашу папку. Если не увидите, проверьте еще раз конфигурацию. Доступ к папке можно получить без авторизации samba. Настойка Samba шары с доступом без авторизации завершена.
Также вы можете подключится к этому серверу из Linux с помощью Nautilus для этого достаточно набрать адрес smb://ip-сервера, в разделе другие места:
Защищенный общий доступ к папке Ubuntu
Чтобы расшарить папку для Windows Ubuntu, к которой будут иметь доступ только пользователи из определенной группы, создадим отдельную папку и опишем ее в файле настройки Samba в Ubuntu.
Сначала создаем папку:
sudo mkdir -p /samba/allaccess/secured
Дальше установим такие права, чтобы доступ к папке могли получить только пользователи из группы securegroup.
Создаем группу:
sudo addgroup securedgroup
Настраиваем права:
cd /samba/allaccess
$ sudo chown -R richard:securedgroup secured
$ sudo chmod -R 0770 secured/
Последний шаг, добавляем настройки в конфигурационный файл samba:
sudo vi /etc/samba/smb.conf
[secured]
path = /samba/allaccess/secured
valid users = @securedgroup
guest ok = no
writable = yes
browsable = yes
Перезапустите сервер Samba. Теперь доступ к общей папке в Ubuntu могут получить только пользователи группы securegroup.
Чтобы проверить как это работает добавим пользователя richard в нашу группу:
sudo usermod -a -G securedgroup richard
Чтобы пользователь мог работать с расшаренными папками в Ubuntu, он должен быть в базе данных Samba. Поэтому создадим для него пароль Samba:
sudo smbpasswd -a richard
После ввода команды вам будет предложено ввести новый пароль. Для применения изменений не забудьте перезагрузить файловый сервер.
Если вы хотите чтобы общий доступ к папке Ubuntu мог получить доступ только определенный пользователь замените в конфигурационном файле @securegroup на имя пользователя. Также можно указать несколько пользователей через запятую или несколько групп.
Выводы
Вот и все. Теперь вы знаете как правильно выполняется установка Samba на Ubuntu 18.04, а также ее настройка. Кроме ручного редактирования конфигурационных файлов, для того чтобы расшарить папку в Ubuntu можно воспользоваться графической утилитой system-samba-config. Но после того как мы разобрали все низкоуровневые настройки, с этой утилитой вы справитесь без труда.
Все способы:
- Терминал
- Шаг 1: Подготовка Windows
- Шаг 2: Настройка сервера Samba
- Шаг 3: Создание папки с общим доступом
- Шаг 4: Создание папки с доступом «Только для чтения»
- Шаг 5: Создание папки с закрытым доступом
- System Config Samba
- Шаг 1: Установка
- Шаг 2: Запуск
- Шаг 3: Добавление пользователей
- Шаг 4: Настройка сервера
- Шаг 5: Создание папок
- Nautilus
- Шаг 1: Установка
- Шаг 2: Настройка
- Заключение
- Вопросы и ответы: 4
Если появляется необходимость работать с одними и теми же файлами на разных компьютерах под управлением разных операционных систем, программа Samba в этом поможет. Но самостоятельно настроить общие папки не так уж и просто, и для рядового пользователя эта задача, скорее, невыполнима. В этой статье будет рассказано, как настроить Samba в Ubuntu.
Читайте также:
Как установить Ubuntu
Как настроить интернет-соединение в Ubuntu
Терминал
С помощью «Терминала» в Ubuntu можно сделать все что угодно, соответственно, настроить Samba тоже получится. Для простоты восприятия весь процесс будет разбит на этапы. Ниже будут представлены три варианта настройки папок: с общим доступом (открывать папку сможет любой пользователь без запроса пароля), с доступом только для чтения и с аутентификацией.
Шаг 1: Подготовка Windows
Перед тем как произвести настройку Samba в Ubuntu, надо подготовить операционную систему Windows. Для обеспечения корректной работы необходимо, чтобы все участвующие устройства состояли в одной рабочей группе, которая указана в самой Samba. По умолчанию во всех операционных системах рабочая группа носит название «WORKGROUP». Для определения конкретной группы, используемой в ОС Windows, нужно воспользоваться «Командной строкой».
- Нажмите сочетание клавиш Win+R и во всплывшем окне «Выполнить» введите команду
cmd
. - В открывшейся «Командной строке» выполните следующую команду:
net config workstation
Имя интересующей вас группы располагается в строке «Домен рабочей станции». Конкретное местоположение вы можете видеть на изображении выше.
Далее, если на компьютере с Ubuntu статический IP, его необходимо прописать в файл «hosts» на Windows. Проще всего это сделать, используя «Командную строку» с правами администратора:
- Проведите поиск по системе с запросом «Командная строка».
- В результатах нажмите по «Командной строке» правой кнопкой мыши (ПКМ) и выберите пункт «Запуск от имени администратора».
- В открывшемся окне выполните следующее:
notepad C:\Windows\System32\drivers\etc\hosts
- В файле, открывшемся после выполнения команды, пропишите в отдельной строке ваш IP-адрес.
Читайте также: Часто используемые команды «Командной строки» в Windows 7
После этого подготовка Windows может считаться оконченной. Все последующие действия выполняются на компьютере с операционной системой Ubuntu.
Выше был приведен всего один пример открытия «Командной строки» в Windows 7, если по какой-то причине вы не смогли открыть ее или у вас другая версия операционной системы, рекомендуем ознакомиться с подробной инструкцией на нашем сайте.
Подробнее:
Открытие «Командной строки» в Windows 7
Открытие «Командной строки» в Windows 8
Открытие «Командной строки» в Windows 10
Шаг 2: Настройка сервера Samba
Настройка Samba — довольно трудоемкий процесс, поэтому внимательно выполняйте каждый пункт инструкции, чтобы в итоге все работало корректно.
- Установите все необходимые пакеты программного обеспечения, которые нужны для корректной работы Samba. Для этого в «Терминале» выполните команду:
sudo apt-get install -y samba python-glade2
- Теперь в системе есть все необходимые компоненты для настройки программы. Первым делом рекомендуется сделать резервное копирование конфигурационного файла. Сделать это можно с помощью этой команды:
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
Теперь, в случае возникновения каких-то трудностей, вы можете вернуть изначальный вид конфигурационного файла «smb.conf», выполнив:
sudo mv /etc/samba/smb.conf.bak /etc/samba/smb.conf
- Далее создаем новый файл конфига:
sudo gedit /etc/samba/smb.conf
Примечание: для создания и взаимодействия с файлами в статье используется текстовый редактор Gedit, вы же можете использовать любой другой, прописав в соответствующей части команды его название.
- После вышеуказанного действия откроется пустой текстовый документ, в него необходимо скопировать следующие строки, тем самым задав глобальные настройки для сервера Sumba:
[global]
workgroup = WORKGROUPE
netbios name = gate
server string = %h server (Samba, Ubuntu)
dns proxy = yes
log file = /var/log/samba/log.%m
max log size = 1000
map to guest = bad user
usershare allow guests = yes - Сохраните изменения в файле, нажав по соответствующей кнопке.
Читайте также: Популярные текстовые редакторы для Linux
Читайте также: Как создать или удалить файлы в Linux
После этого первостепенная настройка Samba закончена. Если вы хотите разобраться во всех заданных параметрах, то сделать это можно на этом сайте. Чтобы найти интересующий параметр, разверните в левой части список «smb.conf» и отыщите его там, выбрав первую букву имени.
Помимо файла «smb.conf», изменения нужно внести также и в «limits.conf». Для этого:
- Откройте нужный файл в текстовом редакторе:
sudo gedit /etc/security/limits.conf
- Перед последней строкой в файле вставьте следующий текст:
* - nofile 16384
root - nofile 16384 - Сохраните файл.
По итогу он должен иметь следующий вид:
Это необходимо для избежания ошибки, которая возникает при одновременном подключении нескольких пользователей к локальной сети.
Теперь, чтобы убедиться в корректности введенных параметров, нужно выполнить команду:
sudo testparm /etc/samba/smb.conf
Если в результате вы увидите текст, что приведен на картинке ниже, значит, все вписанные вами данные верны.
Остается перезапустить сервер Samba следующей командой:
sudo /etc/init.d/samba restart
Разобравшись со всеми переменными файла «smb.conf» и внеся изменения в «limits.conf», можно переходить непосредственно к созданию папок.
Шаг 3: Создание папки с общим доступом
Как говорилось выше, по ходу статьи мы создадим три папки с разными правами доступа. Сейчас будет продемонстрировано то, как создать общую папку, чтобы ее мог использовать каждый пользователь без аутентификации.
- Для начала создайте саму папку. Сделать это можно в любой директории, в примере же папка будет находиться по пути «/home/sambafolder/», а называться — «share». Вот какую команду нужно выполнить для этого:
sudo mkdir -p /home/sambafolder/share
- Теперь измените права доступа папки, чтобы каждый пользователь смог ее открыть и взаимодействовать со вложенными файлами. Делается это следующей командой:
sudo chmod 777 -R /home/sambafolder/share
Обратите внимание: в команде необходимо указать точный путь к созданной ранее папке.
- Осталось описать созданную папку в конфигурационном файле Samba. Сначала откройте его:
sudo gedit /etc/samba/smb.conf
Теперь в текстовом редакторе, отступив две строки внизу текста, вставьте следующее:
[Share]
comment = Full Share
path = /home/sambafolder/share
guest ok = yes
browsable = yes
writable = yes
read only = no
force user = user
force group = users - Сохраните изменения и закройте редактор.
Теперь содержимое конфигурационного файла должно выглядеть так:
Чтобы все изменения вступили в силу, нужно перезапустить Samba. Делается это уже известной командой:
sudo service smbd restart
После этого в Windows должна появится созданная общая папка. Чтобы в этом убедиться, выполните в «Командной строке» следующее:
\\gate\share
Также открыть ее можно и через Проводник, перейдя в директорию «Сеть», что размещена на боковой панели окна.
Бывает такое, что папки все равно не видно. Скорее всего, причина этому – ошибка при настройке. Поэтому еще раз следует пройтись по всем вышеперечисленным этапам.
Шаг 4: Создание папки с доступом «Только для чтения»
Если вы хотите, чтобы в локальной сети пользователи могли просматривать файлы, но не редактировать их, нужно создавать папку с доступом «Только для чтения». Делается это по аналогии с общей папкой, только в конфигурационном файле задаются другие параметры. Но чтобы не оставалось лишних вопросов, разберем все поэтапно:
Читайте также: Как узнать размер папки в Linux
- Создайте папку. В примере она будет находиться в той же директории что и «Share», только название будет иметь «Read». Поэтому в «Терминале» вводим:
sudo mkdir -p /home/sambafolder/read
- Теперь наделите ее нужными правами, выполнив:
sudo chmod 777 -R /home/sambafolder/read
- Откройте конфигурационный файл Samba:
sudo gedit /etc/samba/smb.conf
- В конце документа вставьте следующий текст:
[Read]
comment = Only Read
path = /home/sambafolder/read
guest ok = yes
browsable = yes
writable = no
read only = yes
force user = user
force group = users - Сохраните изменения и закройте редактор.
По итогу в конфигурационном файле должно быть три блока текста:
Теперь перезагрузите сервер Samba, чтобы все внесенные изменения вступили в силу:
sudo service smbd restart
После этого папка с правами «Только для чтения» будет создана, и все пользователи смогут в нее войти, но не смогут каким-либо образом изменять содержащиеся в ней файлы.
Шаг 5: Создание папки с закрытым доступом
Если вы хотите, чтобы сетевую папку пользователи могли открывать, проходя аутентификацию, то действия по ее созданию немного отличаются от вышеприведенных. Сделайте следующее:
- Создайте папку, например, «Pasw»:
sudo mkdir -p /home/sambafolder/pasw
- Измените ее права:
sudo chmod 777 -R /home/sambafolder/pasw
- Теперь создайте пользователя в группе «samba», который будет наделен всеми правами доступа к сетевой папке. Для это сначала создайте группу «smbuser»:
sudo groupadd smbuser
- Добавьте в только что созданную группу пользователя. Его имя можете придумать самостоятельно, в примере будет «teacher»:
sudo useradd -g smbuser teacher
- Задайте пароль, который необходимо будет вводить для открытия папки:
sudo smbpasswd -a teacher
Примечание: после выполнения команды вас попросят ввести пароль, а затем повторить его, обратите внимание, что при вводе символы не отображаются.
- Осталось лишь ввести все нужные параметры папки в конфигурационный файл Samba. Для этого сначала откройте его:
sudo gedit /etc/samba/smb.conf
А затем скопируйте этот текст:
[Pasw]
comment = Only password
path = /home/sambafolder/pasw
valid users = teacher
read only = noВажно: если выполняя четвертый пункт этой инструкции, вы создали пользователя с другим именем, то его необходимо ввести в строку «valid users» после символа «=» и пробела.
- Сохраните изменения и закройте текстовый редактор.
Текст в конфигурационном файле теперь должен выглядеть так:
Чтобы перестраховаться, проверьте файл, используя команду:
sudo testparm /etc/samba/smb.conf
По итогу вы должны увидеть примерно такое:
Если все в порядке, то перезагрузите сервер:
sudo /etc/init.d/samba restart
System Config Samba
Графический интерфейс (GUI) способен во многом облегчить процесс настройки Samba в Ubuntu. Как минимум, пользователю, который только перешел на Linux, этот способ покажется более понятным.
Шаг 1: Установка
Изначально нужно установить специальную программу в систему, которая обладает интерфейсом и которая необходима для осуществления настройки. Сделать это можно с помощью «Терминала», выполнив команду:
sudo apt install system-config-samba
Если до этого вы не устанавливали все компоненты Samba себе на компьютер, вам нужно будет вместе с ней загрузить и установить еще некоторые пакеты:
sudo apt-get install -y samba samba-common python-glade2 system-config-samba
После того как все необходимое было установлено, можно переходить непосредственно к настройке.
Шаг 2: Запуск
Запустить System Config Samba можно двумя способами: с помощью «Терминала» и через меню Bash.
Способ 1: Терминал
Если вы решили использовать «Терминал», то вам необходимо сделать следующее:
- Нажмите сочетание клавиш Ctrl+Alt+T.
- Введите следующую команду:
sudo system-config-samba
- Нажмите Enter.
Далее вам потребуется ввести системный пароль, после чего откроется окно программы.
Примечание: во время осуществления настройки Samba с помощью System Config Samba не закрывайте окно «Терминала», так как в этом случае программа закроется, а все внесенные изменения не будут сохранены.
Способ 2: Меню Bash
Второй способ многим покажется проще, так как все операции выполняются в графическом интерфейсе.
- Нажмите на кнопку меню Bash, которая находится в верхнем левом углу рабочего стола.
- Введите в открывшемся окне поисковой запрос «Samba».
- Нажмите по одноименной программе в разделе «Приложения».
После этого система запросит у вас пароль пользователя. Введите его и программа откроется.
Шаг 3: Добавление пользователей
Перед тем как приступать непосредственно к настройке папок Samba нужно добавить пользователей. Делается это через меню настроек программы.
- Нажмите по пункту «Настройка» на верхней панели.
- В меню выберите пункт «Пользователи Samba».
- В появившемся окне нажмите «Добавить пользователя».
- В выпадающем списке «Имя пользователя Unix» выберите пользователя, которому будет разрешено входить в папку.
- Вручную введите имя пользователя Windows.
- Введите пароль, а затем повторите его ввод в соответствующем поле.
- Нажмите кнопку «ОК».
Таким образом вы можете добавить одного или нескольких пользователей Samba, а в будущем определить их права.
Читайте также:
Как добавить пользователей в группу в Linux
Как просмотреть список пользователей в Linux
Шаг 4: Настройка сервера
Теперь нужно приступить к настройке сервера Samba. Это действие выполняется на порядок проще в графическом интерфейсе. Вот что нужно сделать:
- В главном окне программы нажмите по пункту «Настройка» на верхней панели.
- Из списка выберите строку «Параметры сервера».
- В появившемся окне, во вкладке «Основной», введите в строке «Рабочая группа» название группы, все компьютеры которой смогут подключаться к серверу Samba.
Примечание: как было сказано в начале статьи, наименование группы должно совпадать у всех участников. По умолчанию у всех компьютеров одна рабочая группа — «WORKGROUP».
- Введите описание группы. При желании можете оставить значение по умолчанию, этот параметр ни на что не влияет.
- Перейдите на вкладку «Безопасность».
- Определите режим аутентификации как «Пользователь».
- Выберите из выпадающего списка «Шифровать пароли» интересующий вас вариант.
- Выберите гостевую учетную запись.
- Нажмите «ОК».
После этого настройка сервера будет окончена, можно переходить непосредственно к созданию папок Samba.
Шаг 5: Создание папок
Если ранее вы не создавали общедоступные папки, то окно программы будет пустым. Для создания новой папки, вам нужно выполнить следующее:
- Кликните по кнопке с изображением знака плюс.
- В открывшемся окне, во вкладке «Основной», нажмите «Обзор».
- В файловом менеджере укажите нужную папку для ее расшаривания.
- В зависимости от предпочтений, поставьте галочки рядом с «Запись разрешена» (пользователю будет позволено редактировать файлы в общедоступной папке) и «Виден» (на другом ПК добавляемая папка будет видна).
- Перейдите во вкладку «Доступ».
- На ней есть возможность определить пользователей, которым будет разрешено открывать расшаренную папку. Для этого поставьте отметку рядом с «Предоставить доступ только определенным пользователям». После этого нужно выбрать их из списка.
Если вы собираетесь сделать общедоступную папку, то поставьте переключатель в положение «Предоставить доступ всем».
- Нажмите кнопку «ОК».
После этого в главном окне программы будет отображаться только что созданная папка.
При желании вы можете создать еще несколько папок, используя вышеприведенную инструкцию, или же изменить уже созданные, нажав по кнопке «Изменить свойства выбранного каталога».
Как только вы создадите все нужные папки, можете закрывать программу. На этом инструкция по настройке Samba в Ubuntu с помощью программы System Config Samba окончена.
Nautilus
Есть еще один способ настройки Samba в Ubuntu. Он отлично подойдет тем пользователям, которые не хотят устанавливать дополнительное ПО себе на компьютер и которые не любят прибегать к использованию «Терминала». Все настройки будут выполняться в стандартном файловом менеджере Nautilus.
Шаг 1: Установка
Используя Nautilus для настройки Samba, способ установки программы немного отличается. Эту задачу можно выполнить и с помощью «Терминала», как было описано выше, но ниже будет рассмотрен другой метод.
- Откройте Nautilus, нажав по одноименному значку на панели задач или проведя поиск по системе.
- Перейдите в директорию, где находится нужный каталог для расшаривания.
- Нажмите по нему ПКМ и выберите из меню строку «Свойства».
- В открывшемся окне перейдите на вкладку «Общедоступная папка локальной сети».
- Поставьте галочку рядом с «Опубликовать эту папку».
- Появится окно, в котором нужно нажать по кнопке «Установить службу», чтобы началась установка Samba в систему.
- Появится окно, в котором вы можете ознакомиться с перечнем устанавливаемых пакетов. После ознакомления нажмите кнопку «Установить».
- Введите пароль пользователя, чтобы разрешить системе выполнить загрузку и установку.
После этого вам остается дождаться окончания инсталляции программы. Как только это будет выполнено, можно переходить непосредственно к настройке Samba.
Шаг 2: Настройка
Настраивать Samba в Nautilus’е намного проще, чем с помощью «Терминала» или System Config Samba. Все параметры задаются в свойствах каталога. Если вы забыли как их открыть, то выполните три первых пункта предыдущей инструкции.
Чтобы сделать папку общедоступной, следуйте инструкции:
- В окне перейдите во вкладку «Права».
- Определите права для владельца, группы и остальных пользователей.
Примечание: если вам нужно ограничить доступ к общедоступной папке, то из списка выберите строку «Нет».
- Нажмите «Изменить права на вложенные файлы».
- В открывшемся окне по аналогии со вторым пунктом этого списка определите права пользователей для взаимодействия со всеми вложенными в папку файлами.
- Нажмите «Изменить», а далее перейдите на вкладку «Общедоступная папка локальной сети».
- Отметьте пункт «Опубликовать эту папку».
- Введите наименование этой папки.
Примечание: поле «Комментарий» при желании вы можете оставить не заполненным.
- Поставьте или, наоборот, уберите галочки с «Разрешить другим пользователям изменять содержимое папки» и «Гостевой доступ». Первый пункт позволит пользователям, которые не наделены правами, редактировать вложенные файлы. Второй — откроет доступ всем пользователям, которые не имеют локальную учетную запись.
- Нажмите «Применить».
После этого можно будет закрывать окно — папка стала общедоступной. Но стоит отметить, что если вы не настраивали сервер Samba, то есть вероятность, что папка не будет отображаться в локальной сети.
Примечание: как настроить сервер Samba рассказано в начале статьи.
Заключение
Подводя итоги, можно сказать, что все вышеперечисленные способы в значительной мере отличаются друг от друга, но все они в равной степени позволяют осуществить настройку Samba в Ubuntu. Так, используя «Терминал», вы можете осуществить гибкую настройку, задавая все необходимые параметры как сервера Samba, так и создаваемых общедоступных папок. Программа System Config Samba точно так же позволяет настроить сервер и папки, но количество задаваемых параметров намного меньше. Основным же плюсом этого способа является наличие графического интерфейса, что в значительной мере облегчит настройку для рядового пользователя. Используя файловый менеджер Nautilus, вам не придется скачивать и устанавливать дополнительное программное обеспечение, но в некоторых случаях необходимо будет вручную проводить настройку сервера Samba, используя все тот же «Терминал».
Наша группа в TelegramПолезные советы и помощь
Сегодня я покажу как можно расшарить папки в Ubuntu для домашних сетей, что бы можно было заходить в ваши папки в linux, например с компьютера с Windows.
Итак, приступим
Устанавливаем samba:
sudo apt-get update
sudo apt-get install samba
После того как samba будет установлена нужно поправить конфиг. Для этого набираем:
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo nano /etc/samba/smb.conf
В файл вставляем следующие строчки:
[global]
workgroup = WORKGROUP
server string = servername
netbios name = SERVERNAME
#servername замените на имя вашего хоста
log file = /var/log/samba/%m.log
max log size = 50
security = user
#запрещаем гостевой доступ
map to guest = Bad User
dns proxy = no
# следовать по симлинкам
unix extensions = no
wide links = yes
follow symlinks = yes
# utf кодировка
dos charset = cp866
unix charset = UTF8
# отключаем принтеры
load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes
# можно ограничить доступ по адресам/сетям
# hosts allow = 127. 192.168.24.
# по умолчанию все файлы, начинающиеся с точки будут иметь атрибут "скрытый"
hide dot files = yes
#добавляем шару
#название общей папки
[system_trash]
#путь до нее
path = /mnt/system_trash
guest ok = no
read only = no
browsable = yes
writeable = yes
Далее нужно посмотреть что бы имени вашего хоста соответствовал ip адрес этого хоста:
sudo nano /etc/hosts
Здесь должна быть строчка вида:
192.168.1.100 servername
После этого сохраняем файл (в нано комбинация клавиш ctrl+x) и перезапускаем самбу:
sudo /etc/init.d smbd restart
sudo /etc/init.d samba restart
Далее нужно добавить пользователя в пользователи samba (пользователь должен существовать в системе). Добавим нового пользователя в систему и самбу:
sudo adduser user
sudo smbpasswd -a user
После того как пользователь будет добавлен можно пробовать зайти на нашу шару с виндовой машины. Вводим логин и пароль пользователя. Должна будет открыться наша шара.
Для справки – что бы посмотреть пользователей samba нужно набрать команду:
sudo pdbedit -L -v
Что бы удалить пользователя Samba:
sudo smbpasswd -x user
Видео по теме:
Установка и настройка файлового сервера Samba на Ubuntu или Debian
Обновлено:
Опубликовано:
Используемые термины: Samba, Ubuntu, SMB.
Samba позволяет настроить файловое хранилище различных масштабов — от малых офисов для крупных организаций. В данной инструкции мы рассмотрим процесс настройки файлового сервера. Сначала мы выполним установку и базовую настройку с предоставлением гостевого доступа. После будет приведены примеры разграничения доступа по пользователям, группам и пользователям Active Directory. Инструкция протестирована на системах Ubuntu и Debian.
Подготовка сервера к работе
Настройка времени
Брандмауэр
Установка и запуск сервиса Samba
Создание первой шары с гостевым доступом
Настройка доступа к папке по логину и паролю
Доступ к папке для пользователей и групп
Помещение удаленных файлов в сетевую корзину
Настройка клиентов для подключения к шаре
Windows
Linux
Некоторые полезные опции Samba
hosts allow
hosts deny
interfaces
force user/group
include
Читайте также
Подготовка сервера
Прежде чем перейти к установке файлового серера, выполним подготовку.
1. Время
Для корректного отображения дат, необходимо позаботиться о синхронизации времени. Для этого будем использовать демон chrony. Установим его:
apt update
apt 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 install iptables-persistent
netfilter-persistent save
Установка выполняется из репозитория одной командой:
apt update
apt install samba
И проверим, что сервис запустился:
systemctl status smbd
Проверяем, что сервер самба позволяет к себе подключиться. Для этого можно с компьютера обратиться к серверу по SMB, например, на компьютере с Windows это можно сделать из проводника, прописав путь к серверу с двух слэшей:
* в данном примере мы подключаемся к серверу Samba с IP-адресом 192.168.1.15.
Если мы настроили сервер правильно, система откроет пустую папку. На данном этапе проверка закончена и мы можем переходить к созданию первой шары.
Разберем самый простой пример предоставления доступа к папке — анонимный доступ всем пользователям без запроса пароля.
Открываем на редактирование конфигурационный файл samba:
vi /etc/samba/smb.conf
И добавляем настройку для общей папки:
[Общая папка]
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:
vi /etc/samba/smb.conf
Добавляем настройку для новой папки:
[Папка сотрудников]
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 — не разрешаем гостевое подключение.
Создаем каталог для новой папки:
mkdir /data/staff
Задаем права на созданный каталог:
chmod 777 /data/staff
Создаем пользователя в системе Linux:
useradd staff1
* где staff1 — имя пользователя.
Задаем пароль для пользователя:
passwd staff1
Теперь создадим пользователя в samba:
smbpasswd -a staff1
Перезапускаем samba:
systemctl restart smbd
Пробуем зайти на сервер — общую папку мы должны открыть без авторизации, а при попытке открыть папку сотрудников должно появиться окно ввода логина и пароля.
Если мы авторизованы на компьютере, с которого пытаемся подключиться к серверу, под той же учетной записью, что создали для доступа к папке, samba может и не потребовать аутентификации.
Теперь создадим папку, доступ к которой будут иметь ограниченное количество пользователей.
Открываем конфигурационный файл samba:
vi /etc/samba/smb.conf
Добавляем настройку для новой папки:
[Приватная папка]
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 оставить как в примерах выше.
Создаем каталог для новой папки:
mkdir /data/private
Задаем права на созданный каталог:
chmod 777 /data/private
Для применения настроек перезапускаем samba:
systemctl restart smbd
Создать группу пользователей можно командой:
groupadd privateusers
Добавить ранее созданного пользователя в эту группу:
usermod -a -G privateusers staff1
Подробнее о работе с учетными записями в Linux.
Проверяем возможность работы с новым каталогом.
Сетевая корзина
При удалении файлов из общей папки, данные удаляются навсегда. Но мы можем настроить сетевую корзину — скрытый каталог, в который будут перемещаться удаляемые с самбы объекты.
Открываем конфигурационный файл:
vi /etc/samba/smb.conf
Создаем шару:
[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, ~$*
recycle:exclude_dir = /tmp
* где:
- vfs objects = recycle — использовать подсистему recycle.
- recycle:repository — где хранить удаленные объекты. В данном примере удаленные файлы попадут в скрытый каталог .recycle к котором создастся каталог с именем пользователя, удалившего файл или папку.
- recycle:keeptree — удалять объекты с сохранение дерева каталогов.
- recycle:touch — изменить ли дату изменения файла при его перемещении в корзину.
- recycle:versions — при удалении файлов с совпадающими именами, добавлять номер версии.
- recycle:maxsize — не помещать в корзину файлы, размер которых больше заданного параметра (в байтах). В данном примере, помещать файлы любого размера.
- recycle:exclude — исключить файлы.
- recycle:exclude_dir — исключить каталог.
Создаем каталог и задаем права:
mkdir /data/recycle
chmod 777 /data/recycle
Перезапускаем самбу:
systemctl restart smbd
Пробуем зайти в сетевой каталог Recycle и создать, а после удалить файл. Он должен оказаться к скрытой папке .recycle.
Для автоматической чистки сетевой корзины можно создать скрипт:
mkdir /scripts
vi /scripts/cleanrecycle.sh
#!/bin/bash
recyclePath=»/data/recycle/.recycle»
maxStoreDays=»30″
/usr/bin/find $recyclePath -name «*» -ctime +$maxStoreDays -exec rm {} \;
* в данном скрипте мы ищем все файлы в каталоге /data/recycle/.recycle, которые старше 30 дней и удаляем их.
Разрешаем запуск скрипта:
chmod +x /scripts/cleanrecycle.sh
Создаем задание в планировщике:
crontab -e
0 5 * * * /scripts/cleanrecycle.sh
* в данном примере мы будем запускать скрипт по очистке сетевой корзины каждый день в 05:00.
Подключение к шаре
Теперь разберем примеры подключения к нашим шарам из разных систем.
Windows
Для разового подключения можно использовать проводник, прописав в нем адрес сервера через косые линии:
Для подключения сетевого диска, который будет автоматически создаваться при запуске системы, в проводнике сверху нажимаем Простой доступ — Подключить как диск:
В открывшемся окне прописываем путь до сетевой папки и выбираем имя диска:
Сетевой диск настроен.
Но мы может сделать те же действия из командной строки:
net use x: \\samba.dmosk.local\AD ACL /persistent:yes
* где x: — имя сетевого диска; \\samba.dmosk.local\AD 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 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 — можно выполнить запрос на показ содержимого:
smb: \> ls
Или полный список возможных команд:
smb: \> help
Некоторые опции 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.
5. Include
Позволяет подключить дополнительный файл с конфигурацией.
include = /etc/samba/conf.d/shares.conf
* данная опция будет дополнительно подключать конфигурацию из файла /etc/samba/conf.d/shares.conf (прописывается полный путь).
Читайте также
Возможно, эти инструкции будут также Вам полезны:
1. Как в Linux монтировать шару CIFS.
2. Как настроить автоматическое монтирование дисков в Linux.
3. Настройка дисковых квот в Linux.
4. Установка и настройка samba в Linux CentOS.