Samba Server - Настройка (smb.conf, smbpasswd, testparm)
Настройка Samba Server в Ubuntu позволяет быстро организовать общий доступ к файлам между Windows и Linux. В данном видео мы разберемся с настройкой конфигурационного файла smb.conf, создание общей папки, добавление пользователей через smbpasswd и тестирование конфигурации с помощью testparm.
⇓ Запись видеоурока на RuTuBe ⇓
⇓ Запись видеоурока во ВКонтакте ⇓
⇓ Запись видеоурока на YouTuBe ⇓
Команды:
{smbpasswd} -a (add) user-name
/etc/samba/smb.conf
{systemctl} restart smbd (SaMBa Daemon)
testparm (test parameters) - тестирование параметров
Теперь перейдем к настройке Samba Server
Все настройки находятся в файле /etc/samba/smb.conf давайте просмотрим его содержимое
less /etc/samba/smb.conf

q чтобы выйти из режима просмотра
Чтобы внести нужные нам настройки, нужно это файл отредактировать и в данном случае я буду пользоваться текстовым редактором nano, так как он удобнее чем vim и присутствует практически в любом дистрибутиве Linux.
nano /etc/samba/smb.conf
[ File '/etc/samba/smb.conf' is unwritable ]
И тут появляется подобное сообщение. Оно говорит о том, что данный файл не доступен для записи, а все дело в том, что мы должны запускать его редактирование с повышением прав, т.е. через sudo
Ctrl+x чтобы выйти из редактора
sudo nano /etc/samba/smb.conf

А проще данные редактор как минимум тем, что, у него есть подсказки горячих клавиш. И тут ^ это Ctrl, а M это Alt.
Таким образом тут есть такие команды как:
- ^G Help: Открывает справку по командам Nano. Полезно для получения информации о доступных функциях и их использовании.
- ^O Write Out: Сохраняет изменения в текущем файле. После нажатия этой комбинации вам будет предложено подтвердить имя файла для сохранения.
- ^W Where Is: Открывает окно поиска, позволяя вам искать текст в файле.
- ^K Cut: Вырезает текущую строку или выделенный текст и помещает его в буфер обмена.
- ^T Execute: Позволяет выполнить команду проверки орфографии, если эта функция включена.
- ^C Location: Показывает текущее положение курсора (номер строки и столбца) в документе.
- M-U Undo: Отменяет последнее действие. Полезно для исправления ошибок.
- M-A Set Mark: Устанавливает маркер для выделения текста. Это позволяет выделить блок текста для дальнейших операций, таких как вырезание или копирование.
- ^X Exit: Выход из редактора. Если у вас есть несохраненные изменения, Nano предложит сохранить их перед выходом.
- ^R Read File: Позволяет вставить содержимое другого файла в текущий файл.
- ^\ Replace: Открывает функцию замены текста, позволяя заменить одно слово или фразу на другое.
- ^U Paste: Вставляет текст из буфера обмена на текущую позицию курсора.
- ^J Justify: Выровнять текущий абзац текста.
- ^/ Go To Line: Позволяет перейти к указанной строке в документе.
- M-E Redo: Повторяет последнее действие после отмены (требует включения функции отмены).
- M-6 Copy: Копирует выделенный текст в буфер обмена без его вырезания.
Но, для начала, дабы ничего не накосячить, давайте сделаем бэкап исходного файла конфигурации на случай, если что-то пойдет не так.
Ctrl+x
cd /etc/samba/
sudo cp smb.conf smb.conf.backup
ll

sudo nano /etc/samba/smb.conf
Мы поможем вам легко получить базовые навыки работы с Linux, без лишней теории и воды. Убедитесь, что осваивать новое может быть просто!
Получите бесплатный доступ к первым модулям курса.
Изначально хотел бы обратить ваше внимание на спец символы, символ # говорит нам о том, что строка закомментирована, т.е. как правило используется для описания назначения того или иного параметра, но не учитывается системой при применении конфигурации.
Так же есть символ ; перед строкой, что это? Это так же символ закомментированной строки, однако, его используют не просто для описания, а для выделения действительно применяемых параметров, но в данном случае так же закомментированных. Т.е. чтобы мы понимали, где описание, а где параметры, для более быстрой настройки.
Из параметров по умолчанию, нас может заинтересовать только параметр
server string = %h server (Samba, Ubuntu) - здесь задается имя сервера, где %h, это автоматическая подстановка имени сервера из системных настроек, т.е. ubuntu-srv. Я тут ничего менять не собираюсь, пускай останется стандартное имя сервера.
workgroup = WORKGROUP - говорит нам о том, в какой сети находится данный сервер, в рабочей группе, т.е. в одноранговой сети, либо в доменной сети. У нас на данном этапе одноранговая сеть, так что оставляем по умолчанию.
В конец файла добавляем следующие параметры
[1CBases] - Это название общего ресурса, которое будет видно клиентам в сети. Пользователи смогут подключаться к этому ресурсу по имени 1CBases.
comment = 1CBase - Этот параметр предоставляет описание общего ресурса. Он будет отображаться в списках сетевых ресурсов, что помогает пользователям понять назначение папки.
path = /1CBase - Указывает путь к директории на сервере, которая будет доступна для общего доступа. Пока у нас этой директории нет, но мы её создадим чуть позже.
read only = no - Позволяет пользователям записывать данные в эту папку. Если бы этот параметр был установлен на yes, пользователи могли бы только читать файлы, но не записывать.
force create mode = 0777 - Устанавливает права доступа для новых файлов, создаваемых в этой папке, на 0777, что означает полный доступ (чтение, запись и выполнение) для всех пользователей.
force directory mode = 0777 - Аналогично предыдущему параметру, этот устанавливает права доступа для новых директорий на 0777.

Ctrl+O \ Подтверждаем имя файла \ ОК \ Ctrl+X - сохранить документ
СОЗДАНИМ ДИРЕКТОРИЮ ДЛЯ БАЗЫ ДАННЫХ 1С
Далее, создадим директорию для хранения файловой базы 1С:
cd /
mkdir 1CBase
ll
По умолчанию, при создании директории в корне, у него все права, кроме записи для группы и всех. Однако, так как мы указали параметр, для всех пользователей внутри создавать файлы и директории с полными правами, то внутри мы должны все это уметь делать. Но, это мы проверим.
Далее нам необходимо создать пользователей, под которыми будут подключаться клиенты к нашему файловому серверу. И так как у нас в данный момент для теста 2 машины под управлением Windows и Ubuntu Linux, то предлагаю их назвать так же, как мы их назвали на этих машинах, чтобы было меньше путаницы.
useradd -m -s /bin/bash -p 123456 user-windows
useradd -m -s /bin/bash -p 123456 user-ubuntu
cd home && ll
Директории для пользователей созданы, а значит и сами пользователи у нас созданы.

Теперь нам необходимо задать пароль, для данных пользователей через samba службу. В чем суть, если мы указали пароль для пользователя, то это не означает, что под этим же паролем мы можем авторизоваться на файловом сервере samba, для него нужно создавать отдельные пароли. И, лично я думаю, что это хорошо. Т.е. в ситуации, если каким-то образом злоумышленнику будет известен сетевой пароль пользователя, он все равно не сможет под ним авторизоваться в системе! Поэтому, пароли желательно должны быть разные!
sudo smbpasswd -a user-windows
sudo smbpasswd -a user-ubuntu

Чтобы убедиться, что у нас точно корректно настроен Samba сервер, запустим тестовую утилиту
sudo testparm - она предназначена для тестирования корректности конфигурационного файла smb.conf и если есть какие-то ошибки, то она об этом сообщит
Load smb config files from /etc/samba/smb.conf - загрузка конфигурационного файла
Loaded services file OK. - загрузка успешна
Weak crypto is allowed - разрешено использование слабого шифрования
Server role: ROLE_STANDALONE - сервер является самостоятельным, не подключен к домену

Press enter to see a dump of your service definitions - Нажмите enter, чтобы просмотреть список определений ваших сервисов
Сообщений об ошибках здесь никаких нет, а значит мы выполнили настройку конфигурационного файла корректно. Нажимаем Enter и нам выводится наш рабочий конфиг, без закомментированных строчек.

sudo systemctl restart smbd - перезапустим службу Samba, чтобы внесенные изменения применились.
На этом, базовая настройка Samba сервера, закончена.