Я работаю в комапнии Mail.ru Group старшим системным администратором и по долгу службы приходится сталкиваться с настройкой и установкой различных служб и сервисов. Один из таких — файловое хранилище с общим доступом. Такое хранилище может использоваться для доступа к файлам с нескольких компьютеров по сети. Так же хранилище поддерживает парольный доступ, что делает его удобным инструментом для хранения приватных данных.
Функционал общих папок на Linux реализуется демоном Samba. Для его установки выполните следующие команды
sudo apt update sudo apt install samba sudo systemctl status smbd
Последняя команда должна показать что демон успешно установлен и работает. Теперь его необходимо настроить.
Настройка демона выполняется в файле /etc/samba/smb.conf
Для примера, я покажу настройку папки с гостевым доступом для любого пользователя и папки защищенной паролем.
sudo vim /etc/samba/smb.conf
Настройки по умолчанию довольно разумны и их стоит изменять только в случае, если нужно добиться какого-то особенного поведения. Для создания гостевой папки в конец файла нужно добавить строки:
[Public] path = /storage browseable = yes guest ok = yes guest only = yes read only = no force user = nobody force create mode = 0777 force directory mode = 0777
Переменную path стоит изменить указав путь к папке на сервере которую нужно опубликовать. Слово [public] означает как будет называться папка для удаленных клиентов. В примере использована папка /storage, если она не существует, то ее необходимо создать и установить соответствующие права доступа:
# Первую команду необходимо выполнять только если вы создаете новую папку. Для существующей папки достаточно второй команды. sudo mkdir /storage sudo chmod 777 /storage
Для создания папки защищенной паролем нужно в конец файла добавить строки:
[Protected] path = /secret-storage valid users = @smbgroup guest ok = no writable = yes browsable = yes
Для применения настроек демона его необходимо перезагрузить командой sudo systemctl restart smbd
Теперь необходимо создать пользователей для доступа к защищенной папке. На самом деле в этом случае используются обычные системные пользователи которым разрешается доступ к Samba папкам. Для создания нового пользователя и его активации нужно выполнить команды:
sudo addgroup smbgroup # создание группы для пользователей Samba. Достаточно выполнить один раз. sudo useradd -G smbgroup john# Создание пользователя sudo smbpasswd -a john # Добавление пользователя в Samba sudo smbpasswd -e john # Активация пользователя
В Windows 10 существует проблема автоматического обнаружения общих папок созданных на базе Samba. Эта проблема решается специальным скриптом. Для его установки и запуска нужно выполнить команды:
sudo curl https://raw.githubusercontent.com/christgau/wsdd/master/src/wsdd.py > /usr/bin/wsdd sudo chmod +x /usr/bin/wsdd sudo cat > /etc/systemd/system/wsdd.service <<EOF [Unit] Description=Web Services Dynamic Discovery host daemon After=network-online.target Wants=network-online.target Wants=smb.service [Service] Type=simple ExecStart=/usr/bin/wsdd –s [Install] WantedBy=multi-user.target EOF systemctl status wsdd –now
После этого сервер общих папок будет доступен в режиме обзора сети Windows.