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

Начиная знакомство с linux самое первое что мы пытаемся поставить это прокси-сервер squid и файл-сервер samba. Не смотря на обилие документации установка и настройка samba не редко вызывает множество проблем, как на старте, так и в процессе эксплуатации.

Как поделиться папками на компьютере с Ubuntu Linux

После запуска Samba вы можете легко обмениваться папками. Для этого сначала откройте Files.

Как поделиться папками на компьютере с Ubuntu Linux

Затем перейдите в папку, к которой вы хотите предоставить общий доступ в сети, и щелкните ее правой кнопкой мыши, чтобы открыть контекстное меню. В меню выберите Свойства.

Как поделиться папками на компьютере с Ubuntu Linux

В окне «Свойства» выберите общий сетевой ресурс и установите флажок «Поделиться этой папкой».

Как поделиться папками на компьютере с Ubuntu Linux

Измените имя общего доступа и добавьте комментарий, если хотите. Затем также установите или снимите флажок «Разрешить другим пользователям создавать и удалять файлы в этой папке» и «Гостевой доступ (для людей без учетной записи») в соответствии с тем, как вы хотите предоставить другим пользователям сети доступ к вашей общей папке.

Как поделиться папками на компьютере с Ubuntu Linux

Когда закончите, нажмите кнопку Create Share, чтобы начать общий доступ к этой папке в вашей сети, включая все компьютеры и устройства Windows, подключенные к ней.

Видео: Настройка локальной сети между Ubuntu Linux и Windows для файлового обмена

В этой небольшой инструкции будет рассмотрена простейшая настройка Samba Ubuntu , а также как настроить общий доступ к папке Ubuntu с несколькими уровнями привилегий. Мы создадим три общие папки с различными уровнями разрешений.

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

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

Из 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 в качестве файл-сервера.

    На сегодняшний день samba хоть и может использоваться в роли контроллера домена, но до полноценной Active Directory с групповыми политиками ей еще далеко, и использовать ее на 100 человек пользователей вряд ли кто будет. Отсюда получается, что один Windows-сервер у нас уже есть и необходимые CALs тоже.

    Таким образом корпоративная лицензия Win2k8Std для файлового сервера обойдется приближенно в 700$. Будет ли дешевле установить, полноценно настроить и обслуживать samba с Shadow Copy, DFS и сетевой корзиной? По-моему нет.

    Запуск демонов 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 ее правильное название.

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

    [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 = — аналогично для группы
    Читайте также:  Как подключиться к чужому компьютеру через Интернет

    Права

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

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

    Настройка прав доступа на файлы в Samba

    Сделаю небольшое пояснение по правам доступа в файловом сервере samba. Вопрос этот сложный и объемный. Ему можно посвятить и отдельную статью. Но для полноты картины по настройке самбы, расскажу самое основное.

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

    # getfacl /mnt/samba # file: mnt/shara # owner: admin51 # group: пользователи\040домена user::rwx group::r-x other::—

    С такими правами что-то создавать в папке сможет только пользователь admin51, а пользователи домена смогут только просматривать файлы и каталоги. Сделаем более прикладной вариант. Добавим права доступа на чтение и запись еще одной доменной группе — gr_it.

    # setfacl -m g:gr_it:rwx /mnt/shara

    Обращаю внимание, что иногда при копировании команд setfacl они не отрабатывают, выдавая не очень понятную ошибку:

    setfacl: Option -m: Invalid argument near character 1

    Наберите команду с клавиатуры, либо просто удалите и наберите снова ключ -m, он почему-то при копировании часто дает эту ошибку.

    Смотрим, что получилось:

    # getfacl /mnt/shara # file: mnt/shara # owner: admin51 # group: пользователи\040домена user::rwx group::r-x group:gr_it:rwx mask::rwx other::—

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

    # getfacl /mnt/shara/test1 # file: mnt/shara/test1 # owner: user1 # group: пользователи\040домена user::rwx group::— other::—

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

    # setfacl -m d:g:gr_it:rwx,d:g:’пользователи домена’:rx /mnt/shara

    Смотрим, что получилось:

    # getfacl /mnt/shara # file: mnt/shara # owner: admin51 # group: пользователи\040домена user::rwx group::r-x group:gr_it:rwx mask::rwx other::— default:user::rwx default:group::r-x default:group:пользователи\040домена:r-x default:group:gr_it:rwx default:mask::rwx default:other::—

    Создадим теперь тем же пользователем еще одну папку test2 и проверим ее права.

    # getfacl /mnt/shara/test2 # file: mnt/shara/test2 # owner: user # group: пользователи\040домена user::rwx group::— group:пользователи\040домена:r-x group:gr_it:rwx mask::rwx other::— default:user::rwx default:group::r-x default:group:пользователи\040домена:r-x default:group:gr_it:rwx default:mask::rwx default:other::—

    Применилось наследование с вышестоящих папок. Не забывайте про дефолтные права и учитывайте их при настройке прав доступа на файловом сервере.

    [sc6]

    Для удобной и корректной работы с правами доступа я обычно для крупных, корневых директорий выставляю права аккуратно через setfacl в консоли. Какие-то мелкие изменения по пользователям и группам в более низших иерархиях директорий делаю через windows acl с какой-нибудь виндовой машины.

    Еще важно знать одну особенность выставления прав доступа в linux. В моей практике часто требуется дать какому-нибудь пользователю доступ в одну директорию, которая располагается там, где у пользователя нет вообще никаких прав. В windows эта проблема решается просто — даются права на конкретную папку, а пользователю кладется ярлык на эту папку. В итоге он имеет доступ к нужной директории и больше никуда.

    Читайте также:  Настройка сетевых интерфейсов в CentOS 8/7

    В linux так сделать не получится. Для того, чтобы дать таким образом доступ на отдельную директорию пользователю, необходимо, чтобы по всем вышестоящим директориям у него были права на исполнение, то есть X. Их придется выставлять вручную по всем вышестоящим папкам. Результат будет такой же, как и в винде — пользователь получит доступ на чтение только в указанную папку, но для этого придется выполнить больше действий. Если не знаешь этот нюанс, можно потратить много времени, прежде чем поймешь, в чем проблема.

    Графический интерфейс System Config Samba

    Установка интерфейса

    Графический интерфейс System Config Samba

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

    Графический интерфейс System Config Samba
    1. Для установки нужно ввести в консоли следующую команду: sudo apt install system-config-samba
    2. Вместе с этим установить все сопутствующие компоненты Самба: sudo apt-get install -y samba samba-common python-glade2 system-config-samba
    3. Перейти к запуску и настройке.
    Графический интерфейс System Config Samba

    Способы отключения AdBlock во всех популярных браузерах

    Графический интерфейс System Config Samba

    Запуск

    Графический интерфейс System Config Samba

    Запустить System Config Samba из терминала:

    Графический интерфейс System Config Samba
    1. Нажать сочетание клавиш «CTRL+ALT+T».
    2. В окне консоли ввести: sudo system-config-samba
    3. Нажать «Enter».
    4. Ввести системный пароль.
    Графический интерфейс System Config Samba

    Добавляем пользователей

    Графический интерфейс System Config Samba

    Перед настройкой папок нужно создать пользователей:

    Графический интерфейс System Config Samba
    1. На верхней панели выбрать вкладку «Настройка».

    2. Выбрать пункт «Пользователи Samba».

    3. В следующем окне выбрать пункт «Добавить пользователя».

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

    5. Ввести имя пользователя в Windows.

    6. Ввести пароль с подтверждением.

    7. Нажать «ОК».
    Графический интерфейс System Config Samba

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

    Графический интерфейс System Config Samba

    Настройка сервера упрощается через графический интерфейс:

    Графический интерфейс System Config Samba
    1. Выбрать вкладку «Настройки».
    2. Далее «Параметры сервера».

    3. Вкладка «Основной», ввести название группы в поле «Рабочая группа».

    4. Параметр описания не влияет ни на что, поэтому его значение можно не изменять.

    5. Перейти к вкладке «Безопасность».

    6. Выбрать режим аутентификации — «Пользователь».

    7. Выбрать в пункте «Шифровать пароли» вариант «Да».

    8. Выбрать учетную запись гостя.

    9. Нажать «ОК».
    Графический интерфейс System Config Samba

    Создаем папки

    Графический интерфейс System Config Samba

    Если папки не были созданы ранее, главное окно будет пустым. Для создания нужно провести ряд действий:

    Графический интерфейс System Config Samba
    1. Кликнуть по кнопке в виде плюса. Произойдет переход к окну создания.

    2. Нажать «Обзор» в открывшемся окне.

    3. Указать папку, к которой будет предоставлен общий доступ.

    4. Отметить галочками пункты «Виден» и «Общедоступен».

    5. Перейти к вкладке «Доступ».

    6. На данной вкладке выбрать пользователей, которые получат доступ к папке.

    7. Для создания общедоступной папки выбрать «Предоставить доступ всем».
    8. Нажать на «ОК».
    Графический интерфейс System Config Samba

    В главном окне отобразится созданная директория.

    Графический интерфейс System Config Samba

    Графический интерфейс System Config Samba

    Онлайн курс по Linux

    онлайн-курсом «Администратор Linux»установке Linux

    • Знание архитектуры Linux.
    • Освоение современных методов и инструментов анализа и обработки данных.
    • Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
    • Владение основными рабочими инструментами системного администратора.
    • Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
    • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.

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

    Протокол SMB используется Microsoft Windows 2000, NT и 95/98 для организации доступа к дискам и принтерам. Используя набор утилит Samba от Andrew Tridgell ([email protected]), UNIX-машины (включая Linux) могут организовывать доступ к дискам и принтерам для Windows-машин. Утилиты smbfs, написанные Paal-Kr. Engstad ([email protected]) и Volker Lendecke ([email protected]), дают возможность машинам с UNIX монтировать SMB-ресурсы, доступные на машинах с Windows или Samba.

    C помощью Samba можно реализовать следующие наиболее распространенные:

    1. Давать доступ к дискам Linux Windows-машинам.
    2. Получать доступ к дискам Windows для машин под Linux.
    3. Давать доступ к принтерам Linux для Windows-машин.
    4. Получать доступ к принтерам Windows из Linux-систем.