Краткая инструкция о том, как настроить папки общего доступа в локальной сети для Windows-машин на примере Debian и Ubuntu Server.
Устанавливаем Самбу
# apt install samba
В Debian система задаст вопрос об использовании smb.conf настроек WINS из DHCP:
Отвечаем <Нет>, так как нам это не нужно и продолжаем установку.
Создадим каталог /home/smbshare, а в нём — ещё 2 каталога: /home/smbshare/ro_folder — здесь будут храниться файлы с правами только для чтения и /home/smbshare/rw_folder — файлы с правами для чтения и записи
# mkdir /home/smbshare /home/smbshare/{ro_folder,rw_folder}
Зададим этим двум каталогам соответствующие права:
# chmod 755 /home/smbshare/ro_folder/ # chmod 777 /home/smbshare/rw_folder/
Теперь переименуем файл /etc/samba/smb.conf в smb.conf.old, созданный установщиком самбы по умолчанию, чтобы сохранить его на всякий случай и создадим новый
# mv /etc/samba/smb.conf /etc/samba/smb.conf.old # touch /etc/samba/smb.conf
откроем его
# nano /etc/samba/smb.conf
и впишем в него такие строчки:
[GLOBAL] workgroup = VIRTUAL security = USER available = Yes browseable = Yes server string = MyServer netbios name = SambaServer [readonly] path = /home/smbshare/ro_folder read only = Yes guest ok = No [rw] path = /home/smbshare/rw_folder valid users = @smbgroup guest ok = No read only = No
В секции [rw] в параметре valid users указываются группы или пользователи, которые имеют доступ к этому каталогу.
Затем проверим его на корректность перед запуском служб Самбы
# testparm /etc/samba/smb.conf
или
# testparm -a
Для доступа к гостевой папке без логина и пароля (если такая нужна) необходимо создать каталог, к примеру /home/smbshare/public и задать права 777 для чтения и записи в неё, и в разделе [GLOBAL] дописать строчку
map to user = Bad Password
и также создать новую секцию [public], в которой будут указаны следующие параметры:
[public] path = /home/smbshare/public read only = No writeable = Yes guest ok = Yes
Далее переходим к созданию групп и пользователей Самбы.
Создадим группу smbgroup
# groupadd smbgroup
и пользователя smbuser
# useradd smbuser
Включаем пользователя smbuser в группу smbgroup
# usermod -aG smbgroup smbuser
и задаём для него пароль для Самбы
# smbpasswd smbuser
или
# smbpasswd -a smbuser
После этого запускаем необходимые службы
# systemctl start smbd # systemctl start nmbd
и включаем их в автозагрузку
# systemctl enable smbd.service # systemctl enable nmbd.service
На этом настройка Samba-сервера закончена. Можно с других машин в сети открывать \\SambaServer, ввести логин и пароль пользователя Самбы и в результате будут отображены ресурсы сервера.