Настройка файлового сервера Samba с интеграцией в Active Directory

ПРИМЕЧАНИЕ. Мы создали эту статью, используя Ubuntu 20.04 LTS.

Как настроить рабочую группу Ubuntu

В большинстве случаев вам не нужно менять имя рабочей группы, потому что по умолчанию Ubuntu, Windows и Mac OS имеют одно и то же имя рабочей группы, которое на самом деле WORKGROUP. Однако, если вам нужно изменить его, выполните следующие действия.

Как настроить рабочую группу Ubuntu

Откройте окно терминала (CTRL + ALT + T) и выполните следующую команду: sudo gedit /etc/samba/ Затем нажмите Enter. Если вы ранее не использовали Терминал в этом сеансе, Ubuntu попросит вас ввести пароль вашей учетной записи.

Затем файл конфигурации Samba открывается в окне gedit. При необходимости прокрутите вниз, пока не найдете строку рабочей группы в разделе «Глобальные настройки».

Как настроить рабочую группу Ubuntu

Измените значение рабочей группы Ubuntu, чтобы оно соответствовало имени рабочей группы, в которую вы хотите добавить свой компьютер Ubuntu. Затем нажмите «Сохранить» и перезапустите Ubuntu, чтобы убедиться, что новые настройки применены.

ПРИМЕЧАНИЕ. Если у вас есть сеть, в которую входят компьютеры с Windows, вам необходимо убедиться, что рабочая группа настроена так же, как на ваших компьютерах с Ubuntu. Сделайте это, если хотите, чтобы ваши ПК с Ubuntu присоединились к вашей рабочей группе Windows. Чтобы узнать, как это сделать, ознакомьтесь с этим руководством: Рабочая группа Windows 10 и как ее изменить.

Как настроить рабочую группу Ubuntu

Подключение к общим папкам

Из Linux

Для подключения к общим папкам из среды Linux требуется установка отдельного программного обеспечения — smbclient. Установим:

sudo apt-get install smbclient

Для подключения к серверу используется следующий формат комангды:

smbclient -U <Имя_пользователя> <IP-адрес><Имя_каталога_на_сервере>

Пример:

smbclient -U buhgalter

Для того, Чтобы не вводить эту команду каждый раз, можно настроить монтирование общей директории как сетевого диска. Для этого установим пакет cifs-utils:

sudo apt-get install cifs-utils

Подключение к общим папкам

Монтирование выполняется по следующему шаблону:

mount -t cifs -o username=<Имя_пользователя>,password= //<IP-адрес>/<Общий каталог> <Точка монтирования>

Пример:

mount -t cifs -o username=Everyone,password= //10.0.0.1/public /media

Важно! Если требуется подключение к общим папкам расположенным на Windows-сервере, то в для не защищенных паролем директорий, в качестве имени пользователя, следует использовать “Everyone”. Для подключения к Linux-серверу рекомендуем использовать в качестве имени пользователя “nobody”. В случае доступа к защищенным директориям следует использовать те учетные данные, которые вы указали.

Из Windows

Подключение к удаленным папкам из среды Windows выполняется немного иначе. Для этого в проводнике или окне запуска программ (Windows + R), следует использовать следующий шаблон:

<IP-адрес><имя_папки>

Указав просто IP-адрес сервера вы получите список общих папок.

При подключении к Windows-сервер, система безопасности может потребовать ввод учетных данных. Для подключения к общей открытой папке используем Everyone, а поле пароля оставляем пустым.

Читайте также:  Встроенные СНПЧ — что это и как устроено?

При подключении к Linux-серверу из ОС Windows, следует использовать указанный ранее шаблон:

<IP-адрес><имя_папки>

или просто адрес сервера:

<IP-адрес>

Подключение к общим папкам

Поделиться Оценить

Средняя оценка: 5.0 Оценили: 1A05F8E9 г. Алматы ул. Наурызбай Батыра, д. 122 +7 (727) 350-53-42

  • 106 28 ТОО «LINCORE – облачные технологии»A05F8E9 г. Алматы ул. Наурызбай Батыра, д. 122 +7 (727) 350-53-42
  • 106 28 ТОО «LINCORE – облачные технологии»
  • 106 28
  • Запуск демонов Samba

    Об уровнях выполнения, можно почитать тут. Данный демон должен быть разрешен для запуска на необходимых уровнях выполнения ОС (команда в RedHat-подобных дистрибутивах — /sbin/chkconfig samba on, в Debian — /usr/sbin/update-rc.d samba defaults). Хотя я и не делал акцент на сборку Samba из исходников, но описание запуска все же затрону для общего понимания. Итак, после сборки Samba, в двоичном пакете необходимо отыскать сценарий, который будет запускать и останавливать демоны в необходимом порядке. При этом необходимо проверить сценарий на корректность имен каталогов, где лежит исполняемый файл демона. Сценарий необходимо сделать исполняемым с помощью команды chmod +x, положить в каталог /etc/init.d/ и создать соответствующие ссылки на скрипт в каталогах уровней запуска Linux (/etc/rc*.d), в которых необходим запуск демона и соответственно — остановка.

    Запуск демона из bash вручную производится командой:

    samba-server: ~# /etc/init.d/samba start

    соответственно, для остановки заменить start на stop, для перезапуска — restart.

    Настройка Samba

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

    Начнем с пароля:

    sudo smbpasswd -a pi

    Этой командой мы задаем пароль для пользователя pi, с которым можно будет получить доступ к расшаренным на Raspberry Pi ресурсам по SMB-протоколу.

    Можно обойтись и без пароля, расшарив ресурсы для гостевого доступа. Но я рекомендую гостевой доступ не открывать, а пароль все-таки установить. Пароль установлен, теперь надо отредактировать файл конфигурации:

    sudo nano /etc/samba/

    Настройка Samba

    В этом файле нас в первую очередь интересует группа параметров [global]. В нее нужно добавить следующие строки:

    [global] security = user encrypt passwords = true map to guest = bad user guest account = nobody

    Заголовок [global] повторно писать не нужно, нужно просто добавить 4 строки под имеющийся заголовок.

    Также нужно уделить внимание уже прописанному в [global] параметру:

    workgroup = WORKGROUP

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

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

    Читайте также:  Linux Mint 20: подробная инструкция по установке + видеоурок

    [usbstorage] path = /mnt/usbstorage/ writeable = yes read only = no browseable = yes

    Эти строки создают ресурс, который будет виден (browseable = yes) в сетевом размещении под названием usbstorage ([usbstorage]) и доступен для записи (writeable = yes, read only = no), и находящийся на Raspberry Pi по пути  /mnt/usbstorage.

    То есть я расшариваю весь примонтированный к Raspberry Pi жесткий диск целиком.

    Настройка Samba

    Можно сделать несколько отдельных шар, прописав в конфиге несколько ресурсов с отдельными [названиями] и указав в каждом свой /путь/до/нужной/директории.

    При этом нужно убедиться, что у пользователя, под которым мы будем логиниться по SMB-протоколу, есть права доступа к этим файлам. Если нет – их нужно задать:

    sudo chmod -R 755 /путь/до/нужной/директории

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

    [пример ресурса с гостевым доступом] comment = Public Share path = /путь/до/нужной/директории read only = no guest only = yes guest ok = yes

    Все это вопрос удобства и личных предпочтений.

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

    Закончив редактировать конфигурацию Samba, перезагрузим Raspberry Pi для применения изменений:

    sudo reboot

    И проверим работоспособность введенных параметров.

    Настройка Samba

    Открываем “Сетевое окружение”, находим в нем свою Raspberry Pi:

    Вводим заданный пароль для пользователя pi:

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

    Первый из них – корневая директория пользователя, она расшарена по умолчанию и только для чтения. Второй – жесткий диск:

    Открываем его:

    Все работает, файлы доступны для просмотра и изменения, значит все сделано правильно.

    Послесловие

    Директивы

    • # create mask — маска прав для файлов в текущей директории
    • # comment — описание
    • # directory mask — маска прав для самой директории, которая может определять такой параметр, как разрешение на создание каталога в текущем каталоге для удаленного пользователя или отсутствия такого.
    • # workgroup — это имя вашей сети, должно быть одинаковым для всех компьютеров, как рабочая группа в Windows
    • # netbios name — имя вашего компьютера в сети, сделайте всем машинам уникальное, как имя компьютера в Windows
    • # server string — описание компьютера, аналог подобного значения в Windows.
    • # security — определяет доступ к расшариваемым каталогам.
    • # browseable — хотите ли Вы сделать доступными все подкаталоги расшариваемого каталога. Этот параметр также можно использовать отдельно для каждого расшариваемого каталога.
    • # path — путь до расшариваемой папки. В данном конкретном примере будут расшарены домашняя папка пользователя shara и домашняя папка пользователя video
    • # comment — комментарий
    • # readonly — только для чтения
    • # hosts allow = — дать доступ только определенным хостам
    • # writeable = — аналогично read only, Вы можете запретить запись или разрешить
    • # valid users = — этот параметр определяет пользователей которые будут иметь доступ к серверу или папке
    • # force user = — это аналогичная команда
    • # force group = — аналогично для группы
    Читайте также:  Какая iOS у моего iPhone? Последние версии каждого терминала

    Права

    Обратите внимание, что Samba может ограничить права пользователя, но не может расширить права, заданные системой. То есть, если на расшариваемом каталоге не стоят права на запись для всех в самой системе, Samba не сможет разрешить запись в него сторонним пользователям. Однако если на каталоге стоят права 777, то задав параметр readonly = Yes Вы сможете ограничить доступ на запись для пользователей, подключающихся из сети.

    В SAMBA так много настроек, что рассмотрение подробно каждого отдельного случая, достойно отдельной статьи. Здесь же я описал, самые распространенные примеры использования SAMBA как дома так и в малом офисе.

    Заключение

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

    • Иногда через windows acl права перестают выставляться, возникают неинформативные ошибки, по которым невозможно понять, что не так.
    • Я достаточно регулярно наблюдаю ситуацию, когда слетают соответствия доменных учеток линуксовым UID. В итоге права доступа превращаются в ничего не значащий набор цифр и перестают работать.
    • При переносе данных с одного сервера на другой трудно сохранить права доступа. Можно поступить вот так для копирования прав доступа, либо как-то заморочиться, чтобы на всех серверах у вас были одинаковые UID доменных учетных записей. Я не разбирал этот вопрос подробно.

    [sc7]

    Если у вас есть возможность настроить файловый сервер на windows, либо обойтись линуксом без домена, то сделайте так. Существенно упростите настройку и дальнейшую эксплуатацию.

    Настройка клиентов Samba

    Для доступа к ресурсам из командной строки в Linux используется утилита smbclient. В большинстве дистрибутивов она не установлена по умолчанию, если нет то нужно воспользоваться менеджером пакетов:

    $sudo apt-get install smbclient

    В некоторых дистрибутивах может потребоваться создать файл /etc/samba/, так как при его отсутствии будет выводиться сообщение об ошибке. Для доступа к ресурсу нужно выполнить следующую команду:

    $smbclient //имя_или_адрес_сервера/ресурс -U пользователь

    Настройка клиентов Samba

    Например, для доступа к ресурсу ivan на сервере нужно ввести:

    $smbclient // -U ivan

    Далее потребуется ввести пароль, после чего появится интерфейс командной строки, похожий на интерфейс FTP:

    Например, можно создать директорию:

    smb: > mkdir test smb: > ls

    Доступ из командной строки используется в основном для тестирования, на практике доступ чаще всего осуществляется из графических оболочек, например, KDE. Возможен также доступ из других платформ (Windows, MacOS).

    Например для доступа с windows наберите в строке поиска \ И введите логин пароль

    Настройка клиентов Samba

    После чего вы сможете получить доступ к сетевым ресурсам.