Файловый сервер SAMBA

Помимо удаленного администрирования посредством терминала на SSH, есть возможность организовать доступ к файловой системе сервера в целом, и к файлам конфигураций приложений в частности, привычным для пользователей windows образом. Для этого мы установим и настроим распространенный файловый сервер samba, тем самым превращая устройство под управлением Tiny Core Linux в настоящий полноценный NAS. Или иными словами - сетевое хранилище.

Из репозитория нам доступна довольно старая но стабильная версия 3.6.1. Для наших нужд функционала этой версии будет более чем достаточно. Поэтому ставим её:

tce-load -wi samba3.tcz

Запускается сервер samba тоже одной строчкой:

/usr/local/etc/init.d/samba start

Как и у openssh запускающий скрипт файлового сервера samba поддерживает команды start, stop, и restart. Они соответственно запускают, осанавливают и перезапускают файловый сервер. В будущем, команды запуска иных приложений мы будем приводить к этому негласному "стандарту", создавая соответствующий скрипт. Подобное упрощает и унифицирует работу с приложениями из консоли.

Итак, сервер запущен. Теперь необходимо добавить пользователей, которые могут иметь доступ к файлам по сети. В моём случае пользователь будет один - root. Если вы планируете давать доступ к NAS другим пользователям, из соображений безопасности учетную запись суперпользователя не стоит использовать где либо ещё, кроме как для локального входа на сервер. В моём же случае это не столь критично. Добавляем пользователя:

smbpasswd -a root

На запрос вводим пароль. Он должен быть достаточно надежным. После добавления пользователя переходим к правке конфигурационного файла. Для удобства настройки сервисов все конфигурационные файлы у меня хранятся в папке /opt/conf/. Для того чтобы наш сервер при запуске брал настройки именно оттуда, придется подкорректировать файл /usr/local/etc/init.d/samba. А именно строчки

/usr/local/etc/init.d/samba

...
/usr/local/sbin/nmbd -D
/usr/local/sbin/smbd -D
...

заменить на:

/usr/local/etc/init.d/samba

...
/usr/local/sbin/nmbd -D -s /opt/conf/smb.conf
/usr/local/sbin/smbd -D -s /opt/conf/smb.conf
...

Есть и другой, очень простой способ, не требующий внесения правок в запускающий скрипт. Тем более в версии 8.x это сделать уже невозможно, так как скрипт защищен от изменения. В таком случае достаточно в файле /usr/local/etc/samba/smb.conf удалить всё содержимое и оставить всего одну строчку:

/usr/local/etc/samba/smb.conf

include = /opt/conf/smb.conf

Этой строчкой мы ссылаемся на наш файл с конфигурацией.

После этого нам останется создать файл /usr/local/etc/samba/smb.conf в директорию /opt/conf/ и открыть для редактирования. Ссылку с очень хорошим руководством на русском я опубликовал в категории "полезные ссылки". Ниже я перечислю только базовые настройки, которые касаются непосредственно нашего мультисервера.
После строки workgroup = MYGROUP необходимо добавить ещё несколько полезных параметров, которые почему-то были опущены в базовой конфигурации.

smb.conf

...
workgroup = MYGROUP
netbios name = TCL-SERVER
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=4096 SO_RCVBUF=4096
...


workgroup - имя локальной сети в windows.

netbios name - NETBIOS-имя. Это то имя с которым будет отображаться наш сервер в списке компьютеров из сетевого окружения. Более корректным будет задать это имя таким же, как и "hostname" сервера. Если же вы хотите сменить "hostname", достаточно в файле /opt/bootsync.sh заменить стандартное значение BOX на своё.

socket options - настройки сокета. Внимание стоит уделить размеру буфера приема и передачи данных, по умолчанию они равны 8182 байт. Если у вас гигабитная сеть, этот параметр необходимо увеличить, вплоть до максимального значения в 65536 байт. Если же передача файлов идёт с задержками и провалами скорости - размер буфера придется уменьшить. Это немного уменьшит пропускную способность, но позволит устранить проблемы с просмотром видео по сети непосредственно с вашего NAS под управлением Tiny Core Linux.

Осталось добавить ресурсы к которым мы хотим открыть сетевой доступ. Для себя я создал две папки. Одну "root" - системный диск, и "HDD" - содержимое жесткого диска. Для этого в самый конец файла конфигурации добавил следующие строки:

smb.conf

...
[root]
  comment = rootdir
  path = /
  valid users = root
  public = no
  writable = yes
  browseable = yes
  printable = no

[hdd]
  comment = hard drive
  path = /mnt/HDD
  valid users = root
  public = no
  writable = yes
  browseable = yes
  printable = no

Теперь сохраняем конфигурацию, не забывая внести в список /opt/.filetool.lst директорию со скриптами запуска /usr/local/etc/init.d/ либо измененнный конфигурационный файл /usr/local/etc/samba/smb.conf, папку с паролем SAMBA /usr/local/etc/samba/private/. Команду запуска файл-сервера заносим в /opt/bootlocal.sh, и перезапускаем samba-сервер.

filetool.sh -b
/usr/local/etc/init.d/samba restart

После этого в нашем сетевом окружении появится компьютер с заданым в конфигурации именем NETBIOS. Если этого не произошло, перезагрузите сервер и попробуйте зайти напрямую по IP адресу. Иногда возникают конфликты SAMBA с работой WINS-сервера. При этом имя NETBIOS не отображается в списке стевых устройств, однако доступ по прямому IP работает без нареканий.

ранее: "Монтирование дисков, cron"далее: "FTP и NFS"

Обсуждение темы ещё не открыто. Вы можете быть первым.


Оставить комментарий

Имя:

Сообщение: