Заметки · 31.05.2022

Сетевые папки в Linux Ubuntu

Установку Samba в Linux Ubuntu можно осуществить из основного репозитория операционной системы командой:

sudo apt-get install samba

После установки проверяем статус службы smbd:

sudo service smbd status

Или так:

sudo systemctl status smbd

Служба должна быть в состоянии active.

Если служба выключена — поднимаем и запускаем:

sudo systemctl enable smbd && sudo systemctl start smbd

В некоторых дистрибутивах сервис samba именуется, как smb.

Теперь нужно создать папку, которая станет общей. Если папка уже создана — используйте существующую и пропустите этап создания папки.

Создавать папку будем в корне системного диска с именем share:

sudo mkdir /share

После того, как мы создали папку — необходимо назначить права доступа для данной папки с помощью команды chmod. Я назначаю права 777 (всем можно всё):

sudo chmod 777 /share

Также можно поэкспериментировать с частичными правами доступа. Основные права:

  • 744 — разрешить все для владельца, а остальным только чтение;
  • 755 — разрешить все для владельца, остальным только чтение и выполнение;
  • 764 — разрешить все для владельца, чтение и запись для группы пользователей, а для остальных — только чтение;
  • 777 — всем разрешено все.

Теперь настраиваем конфигурацию Samba. Для этого открываем конфиг-файл в редакторе nano:

sudo nano /etc/samba/smb.conf

Спускаемся в основание файла и добавляем туда строчки:

[SHARE]
path = /share
guest ok = yes
read only = no
create mask = 0777
directory mask = 0777

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

Чуть ниже указывается адрес директории, которую нужно расшарить. За это отвечает параметр path. Потом следуют настройки гостевого доступа и установки прав на «только чтение«.

В параметрах create mask и directory mask устанавливаем права 0777 (всем разрешено всё).

Теперь сохраняем файл (ctrl+o), выходим из редактора nano (ctrl+x) и перезапускаем службу smbd:

sudo service smbd restart

После перезапуска общий ресурс станет доступен, в том числе и для компьютеров под управлением ОС Windows. Достаточно будет войти на сервер через проводник по IP адресу или DNS-имени.

DNS-имя сервера можно сопоставить с IP-адресом в управлении диспетчере DNS вашего контроллера домена через оснастку dnsmgmt.msc или в файле hosts конкретного компьютера.

Иногда может возникнуть проблема с авторизацией пользователя при обращении к общему сетевому ресурсу, развёрнутого с помощью Samba. Если в дальнейшем планируется наращивание прав с помощью NTFS-прав доступа или же они будут вовсе не нужны — предлагаю сделать Linux шару полностью общедоступной и внести соответствующие корректировки в блок global файла smb.conf:

[global]
dos charset = CP866
unix charset = utf8
workgroup = WORKGROUP
server string = File Server
security = user
map to guest = Bad User
log file = /var/log/samba/%m.log
max log size = 50
guest account = nobody
dns proxy = no

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

Кстати, если Вам необходимо добавить пользователя Ubuntu Server в администраторы Samba необходимо добавить в раздел global следующий параметр:

force user = имя-вашего-пользователя-ubuntu

Вот и всё.

UPD: столкнулся с появлением в общих ресурсах каталога nobody, хотя в конфигурации smb.conf о нём ни слова. Исправил внесением в файл конфигурации конструкции:

[nobody]
browseable = no