Lumpics lumpics.ru

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

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

Устанавливаем и настраиваем файловый сервер в Linux

Хоть сегодняшний материал и будет сосредоточен на управлении дистрибутивами Linux, не обойдем стороной и Виндовс, поскольку для начала вам придется выполнить простейшие манипуляции в этой ОС, чтобы в будущем настройка прошла успешно и не возникло никаких проблем с подключением к группе. За пример мы взяли связку Windows 10 и Ubuntu. Если вы используете другие ОС, просто придерживайтесь особенностей их реализации, которые не должны значительно отличаться от того, что вы увидите далее.

Шаг 1: Предварительная настройка Windows

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

  1. Откройте «Пуск» и запустите оттуда «Командную строку», найдя приложение через поиск.
  2. Переход к командной строке в Windows для определения параметров общего доступа с Linux
  3. Здесь вам потребуется ввести простую команду net config workstation и нажать на клавишу Enter.
  4. Команда для определения имени рабочей группы в Windows для дальнейшей настройки Linux
  5. В отобразившемся списке отыщите строку «Домен рабочей станции» и запомните ее значение.
  6. Поиск строки названия рабочей группы в Windows
  7. Снова в консоли введите notepad C:\Windows\System32\drivers\etc\hosts для открытия известного файла hosts через стандартный «Блокнот».
  8. Команда для запуска файла hosts в Windows для разрешения доступа к Linux
  9. Здесь в конце вставьте строку 192.168.0.1 srvr1.domain.com srvr1, заменив IP на адрес компьютера с Samba, и сохраните все изменения.
  10. Настройка файла hosts для предоставления доступа к Linux

На этом работа с Windows заканчивается. После вы сможете вернуться в эту ОС для настройки общего доступа и управления открывшимися папками, но пока это недоступно, поскольку конфигурация файлового сервера в Линукс еще не произведена. Этим мы и предлагаем заняться в следующих шагах.

Шаг 2: Установка Samba в Linux

Начнем с непосредственной установки Samba в Линукс. Использовать для этого мы будем официальные репозитории, поэтому перед началом убедитесь, что подключение к интернету находится в активном состоянии. После этого следуйте расписанной ниже инструкции.

  1. Откройте меню приложений и запустите «Терминал».
  2. Переход к терминалу для дальнейшей установки Samba Linux
  3. Здесь потребуется ввести команду sudo apt-get install -y samba samba-common python-glade2 system-config-samba. Она отвечает за инсталляцию дополнительных компонентов вместе с файловым сервером.
  4. Ввод команды для установки Samba в Linux включая все дополнительные компоненты
  5. Подтвердите подлинность учетной записи суперпользователя, написав пароль. Символы, вводимые в эту строку, на экране не отображаются, поэтому не стоит переживать из-за того, что букв или цифр не видно.
  6. Подтверждение установки Samba в Linux путем ввода пароля суперпользователя
  7. Затем начнется процедура получения и распаковки архивов. Она может занять несколько минут, во время этой операции лучше не выполнять других действий и не закрывать консоль. Если появилась новая строка ввода, значит, инсталляция успешно завершена.
  8. Ожидание завершения установки Samba в Linux через терминал

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

Шаг 3: Создание глобальных настроек

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

  1. Иногда какие-то важные параметры в конфигурационном файле все же присутствуют по умолчанию, из-за чего возникает надобность создать его резервную копию, чтобы восстановить ее при возникновении случайных сбоев. Осуществляется это путем ввода всего одной команды sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak.
  2. Команда для создания резервной копии конфигурационного файла Samba в Linux
  3. Все остальные действия будут производиться через текстовый редактор. Оптимальным вариантом в этом случае является nano. Если данное приложение отсутствует в вашем дистрибутиве, добавьте его через sudo apt install nano.
  4. Команда для установки кастомного текстового редактора при настройке Samba в Linux
  5. После переходите к конфигурационному файлу, используя sudo nano /etc/samba/smb.conf.
  6. Запуск конфигурационного файла Samba в Linux через текстовый редактор
  7. В открывшемся окне вставьте приведенные ниже строки.

    [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

  8. Вставка глобальных настроек в конфигурационный файл Samba в Linux
  9. Используйте комбинацию Ctrl + O, чтобы сохранить изменения.
  10. Сохранение настроек конфигурационного файла Samba в Linux
  11. Название файла менять не нужно, достаточно будет просто нажать на клавишу Enter.
  12. Отказ от изменения имени при глобальной настройке конфигурационного файла Samba в Linux
  13. По завершении выйдите из текстового редактора, зажав Ctrl + X.
  14. Выход из текстового редактора после глобальной настройки конфигурационного файла Samba в Linux

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

  1. workgroup — отвечает за имя рабочей группы. Ее мы уже узнавали в Windows, и здесь требуется задать точно такое же название, поскольку оно должно быть одинаковым абсолютно на всех соединенных устройствах.
  2. netbios name — используется для отображения имени текущего компьютера на устройстве под управлением Windows. Задайте оптимальное для себя значение.
  3. log file — указывается путь к файлу, куда будут сохраняться отчеты. Создать подобную запись нужно обязательно, чтобы всегда быть в курсе возможных ошибок и других сведений.
  4. passdb backend — определяет способ хранения паролей учетных записей. Без надобности лучше не изменять и оставить в состоянии по умолчанию.
  5. unix password sync — при активации выполняет синхронизацию паролей.
  6. map to guest — отвечает за предоставление гостевого уровня доступа определенным профилям. Если значение установлено в состояние bad user, то такая настройка применяется для несуществующих пользователей, bad password — при неправильном вводе паролей, а never — никогда.

На самом деле в Samba присутствует еще множество глобальных параметров, а также реализован графический интерфейс. Если вы заинтересовались всеми этими настройками, советуем обратиться к официальной документации, чтобы узнать о них более детально, поскольку все сведения не уместятся в рамках данной статьи, а также не все они имеют отношение к сегодняшней теме.

Шаг 4: Создание общедоступной папки

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

  1. Запустите «Терминал» и введите там sudo mkdir -p /samba/allaccess для создания новой папки. Ее имя вы можете поменять на любое удобное.
  2. Команда для создания незащищенной папки общего доступа Samba в Linux
  3. Данное действие выполняется вместе с аргументом sudo, а это значит, что придется ввести пароль для подтверждения учетной записи.
  4. Подтверждение создания незащищенной папки Samba в Linux
  5. После переходите к настройке общего доступа для созданной директории. Для начала переместимся в корень Samba через cd /samba.
  6. Переход к корню Samba в Linux для изменения доступа к созданной папке
  7. Теперь вставьте команду sudo chmod -R 0755 allaccess и нажмите на Enter.
  8. Первая команда изменения доступа к общей незащищенной папке Samba в Linux
  9. Потребуется указать еще одну опцию sudo chown -R nobody:nogroup allaccess/, которая отвечает за предоставление доступа абсолютно всем учетным записям.
  10. Вторая команда для изменения доступа к общей незащищенной папке Samba в Linux
  11. Осталось внести все изменения в конфигурационный файл. Запустите его через текстовый редактор, используя уже знакомую команду sudo nano /etc/samba/smb.conf.
  12. Запуск конфигурационного файла для внесения изменений после создания общей незащищенной папки Samba в Linux
  13. Здесь вставьте указанный ниже блок, отвечающий за определение правил поведения сервера. О значении каждой строки мы также поговорим немного позже.

    [allaccess]
    path = /samba/allaccess
    browsable = yes
    writable = yes
    guest ok = yes
    read only = no

  14. Внесения изменений в Samba в Linux после создания общей незащищенной папки
  15. Сохраните изменения и закройте текстовый редактор, используя специально отведенные горячие клавиши.
  16. Сохранение конфигурационного файла после создания незащищенной папки Samba в Linux
  17. Перезапустите сервер через sudo systemctl restart samba, чтобы текущие настройки вступили в силу.
  18. Перезапуск файлового сервера после создания незащищенной общей папки Samba в Linux

Проверка доступа к созданной директории в Windows осуществляется путем перехода по \\srvr1\allaccess. Сейчас по тому же примеру, который мы привели в предыдущем этапе, разберем значение каждого устанавливаемого параметра:

  • path. Как вы видите из значения, здесь указывается путь к созданной общедоступной директории.
  • browsable. Этот параметр отвечает за отображение директории в списке разрешенных.
  • writable. Отметьте значение yes, если вы хотите разрешить создание записей в этой папке.
  • guest ok. Данная строка отвечает за гостевой доступ.
  • read only. Если вы знаете перевод этой фразы, то уже догадываетесь, что произойдет, если активировать параметр. Он отвечает за атрибут «Только чтение» для указанной директории.

Шаг 5: Создание защищенной общедоступной папки

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

  1. Создайте директорию по тому же принципу через sudo mkdir -p /samba/allaccess/secured.
  2. Команда для создания общей защищенной папки в Samba в Linux
  3. Как вы могли догадаться, это действие тоже следует подтвердить, введя пароль суперпользователя.
  4. Подтверждение создания общей защищенной папки в Samba в Linux
  5. После этого создайте группу, куда будут входить разрешенные пользователи, написав sudo addgroup securedgroup.
  6. Добавление группы пользователей для доступа к защищенной папке Samba в Linux
  7. Перейдите к расположению защищенной директории, указав cd /samba/allaccess.
  8. Переход к расположению защищенной папки для ее управления в Samba в Linux
  9. Здесь укажите права для пользователей, написав sudo chown -R richard:securedgroup secured. Замените richard на требуемое имя учетной записи.
  10. Добавление группы для доступа к защищенной папке Samba в Linux
  11. Вторая команда для обеспечения безопасности выглядит так: sudo chmod -R 0770 secured/.
  12. Вторая команда общего доступа к защищенной папке Samba в Linux
  13. Переместитесь к текстовому редактору, открыв там конфигурационный файл и написав уже знакомую команду sudo nano /etc/samba/smb.conf.
  14. Запуск конфигурационного файла Samba в Linux для настройки защищенной папки
  15. Вставьте указанный ниже блок и сохраните изменения.

    [secured]
    path = /samba/allaccess/secured
    valid users = @securedgroup
    guest ok = no
    writable = yes
    browsable = yes

  16. Настройка защищенной папки Samba в Linux в конфигурационном файле
  17. Добавьте пользователя в защищенную группу sudo usermod -a -G securedgroup richard. Если указанной учетной записи не существует, вы получите соответствующее уведомление.
  18. Добавление пользователя для доступа к защищенной папке Samba в Linux
  19. Создайте пароль, который будет отвечать за открытие доступа через sudo smbpasswd -a richard.
  20. Переход к добавлению пароля для пользователя Samba в Linux
  21. Введите ключ безопасности в новую строку, а затем подтвердите его.
  22. Добавление пароля для пользователя Samba в Linux

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

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

Обсудить в TelegramНаш Telegram каналТолько полезная информация
Автор статьи Вы на сайте: Статья обновлена: . Автор: Виктор Бухтеев

Вам помогли мои советы?

Получить ответ на Email
Уведомить о

7 ответов
По рейтингу
Новые Старые
Межтекстовые Отзывы
Посмотреть все комментарии
grinnenrgosbyt
7 мая 2020 13:38

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

Ayuna
26 мая 2022 03:49

Здравствуйте. Что делать если на 3 шаге установки samba в linux ошибка: user is not in the sudoers file. This incident will be reported

Дмитрий
2 мая 2023 15:31
Ответить на  Ayuna

в Ubunte нужно добавить пользователя в файл sudoers с помощью редактора visudo.
# User privilege specification
root   ALL=(ALL:ALL) ALL
user ALL=(ALL:ALL)  ALL

в rpm дистрибутивах достаточно добавить пользователю группу wheel, как secondary группу.
#usermod -aG wheel user

Подробное описание работы с конфигурацией файла sudoers дано в книге Mastering Linux Security and Hardening.

Александр
8 августа 2024 08:36

Смонтировал диски на сервере создал шары.
При подключении с клиента или с другого сервера просит ввести Логин и пароль.
Ни одну из УЗ и паролей не воспринимает, даже администратора.
При проверки на файлсервере юзеров и группы показывает их…
Что делать не знаю уже.
Как убрать запрос на логин и пароль.

Внизу описал мои настройки

Сервер в домене, клиенты тоже
workgroup =VKU
security =ADS
dns proxy = no
winbind enum groups = yes
winbind enum users = yes

1. В fstab при монтировании дисков на сервере создал
/DATA1 для USERS
/DATA2 для COMMON
2. В корне появились папки DATA1 и DATA2
внутри добавил в папки DATA1 и DATA2
в /DATA1/USERS
и соттветственно
/DATA2/COMMON
3. в smb.config в GLOBAL добавил пути к папкам
USERS и COMMON
Пример:
[GLOBAL]
usershare allow guest = yes
map to guest = bad user
pam password change = yes

[USERS]
path = /DATA1/USERS
[Common]
path = /DATA2/COMMON
browseable = yes
writable = yes
guest = ok
read only = no
4. Даём владельцев к папке и даём права
root@fs:/home/administrator# cd
#для каталога USERS
root@fs:~# cd /DATA1
root@fs:/DATA1# sudo chown -R administrator:adm_azov /DATA1
root@fs:/DATA1# sudo chown -R :vse1 /DATA1/USERS
root@fs:/DATA1# sudo chmod -R 775 /DATA1/USERS
root@fs:/DATA1# cd
#для каталога COMMON
root@fs:~# cd /DATA2
root@fs:/DATA2# sudo chown -R administrator:adm_azov /DATA2
root@fs:/DATA2# sudo chown -R :vse1 /DATA2/COMMON
root@fs:/DATA2# sudo chmod -R 775 /DATA2/COMMON

Кстати в АД на сервере WINDOWS группы прописал через @
и запуске команды chown выдаёт ошибку что такой группы нет, поэтому прописалпросто vse1 без @

Дайте совет пожалуйста куда копать для исправлении ошибки.
Спасибо.

Александр
8 августа 2024 08:54

Прошу прощения, забыл поздороваться.
Добрый день!

Александр
8 августа 2024 09:26

Добрый день!
Смотриваны два диска, расшарена папка, доступ дал, владельцев назначил.
Условия для проверки УЗ есть (синхронизация с АД).
При подключении к шаре запрашивает логин и пароль. Никого не пускает даже администратора.
Подключаюсь с Линукс клиентов и с сервера c Windows. Результат тот же.
Как сделать что бы при подключении не запрашивало Логин и пароль?
Спасибо.

Задать вопрос