Самым популярным вариантом обмена файлами между Ubuntu и Windows является использование Samba сервера.

Рассмотрим процесс установки сервера Samba на Ubuntu 11.04 server.

sudo apt-get install samba smbfs

Samba сервер установлен, теперь нам нужно настроить его. Выполните следующую команду чтобы открыть файл конфигурации:

sudo gedit /etc/samba/smb.conf

В этом файле определяются общие сетевые ресурсы (каталоги, файлы и принтеры) и параметры доступа к ним (пользователи, IP-адреса и т. п.). Файл состоит из трех разделов:

  • [global] – содержит глобальные директивы конфигурации, применимые ко всем ресурсам, которые также используются по умолчанию для разделов, если эти значения не переопределены явно;
  • [homes] – содержит директивы, определяющие доступ к различным каталогам;
  • [printers] – содержит директивы, определяющие доступ к принтерам.

Приведенный ниже пример конфигурационного файла /etc/smb.conf содержит пример конфигурации, обеспечивающей доступ в пользовательские каталоги с использованием PAM-аутентификации и зашифрованных паролей.

[global]
workgroup = UND   (определяет имя рабочей группы.)

server string = UNDEGROUND SAMBA SERVER  (содержит произвольную текстовую строку, содержащую описание сервера и отображаемую пользователям,например, при просмотре из Microsoft Windows папки “Сетевое окружение”.)

encrypt passwords = Yes (использование зашифрованных паролей)

security = user (разрешать доступ только пользователям, удачно прошедшим аутентификацию с использованием учетных записей, сохраненных в файле smbpasswd)

smb passwd file = /etc/samba/smbpasswd (определяет местоположение файла, содержащего пароли пользователей сервера Samba)

log file = /var/log/samba/log.%m (предписывает вести отдельные файлы регистрации для каждой системы (Samba-сервера и рабочих станций),участвующих в доступе к общим ресурсам, и сохранять их в файлах с именами вида: log.xx.xx.xx.xx.)

max log size = 0 (снимает ограничения на размер файлов регистрации)

socket options = IPTOS_LOWDELAY TCP_NODELAY (устанавливает параметры сетевых соединений, максимально повышающие производительность вашего сервера)

deadtime = 15 (определяет величину интервала времени, измеряемого в минутах, в течение которого осуществляется автоматическое рассоединение с клиентом при отсутствии активности со стороны последнего. Увеличение этого интервала позволяет повысить производительность сервера.)

getwd cache = Yes

lpq cache time = 45

(эти настройки позволяют повысить производительность сервера за счет организации кэширования данных.)

name resolve order = wins lmhosts host bcast (определяет порядок обращения к различным ресурсам для определения соответствия IP-адресов именам систем.)

bind interfaces only = True ()

interfaces = eth0 172.16.181.0/24 127.0.0.1

(ограничивают обслуживаемые сервером сетевые интерфейсы.)

hosts deny = ALL

hosts allow = 172.16.181. 127.0.0.1

(ограничивают IP-адреса, с которых разрешен доступ к серверу.)

debug level = 1 (определяет объем информации, выводимой в файлы регистрации. Вы можете увеличить этот параметр до 2 при настройке сервера и поиске различных неполадок. В режиме штатной эксплуатации увеличение этого параметра приводит к снижению производительности сервера.)

create mask = 0644 (определяет и устанавливает права доступа к файлам, создаваемым или копируемым в общие каталоги, обслуживаемые сервером.)

directory mask = 0755 (определяет и устанавливает права доступа к каталогам, создаваемым или копируемым в общие каталоги, обслуживаемые сервером.)

unix charset = koi8-r

display charset = koi8-r

dos charset = cp866

(эти директивы предназначены для корректного отображения русских кодировок.)

[homes]

comment = Home Directories

path = /home/osmaster

browseable = No

read only = No

valid users osmaster

invalid users = root bin daemon sync nobody sys tty disk mem kmem

здесь разрешается доступ к домашнему каталогу /home/osmaster пользователя osmaster после прохождения удачной аутентификации (что задано выше директивой security = user для всех пользователей сервера) и запрещает доступ к этому каталогу всех специальных пользователей системы.

[printers]

comment = Remote Printers

path = /var/spool/samba

browseable = No

printable = Yes

valid users = osmaster nick

invalid users = root bin daemon sync nobody sys tty disk mem kmem

разрешает доступ к принтеру пользователям osmaster и  nick

Создание пользователя Samba

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

sudo smbpasswd -a

Теперь надо разобраться с пользователями, Samba использует пользователей которые уже есть в системе, возьмем для примера имя user, допустим что он уже есть в системе, надо внести его в базу данных SMB и назначить пароль для доступа к расшаренным ресурсам, сделаем это командой

smbpasswd -a user

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

smbpasswd -e user

Далее создадим алиас для имени пользователя user что бы облегчить себе доступ с Windows машины на которой у нас например пользователь с именем Admin, для этого создадим и отредактируем файл /etc/samba/smbusers

touch /etc/samba/smbusers
vim /etc/samba/smbusers

Впишите в файл пару строк

# Unix_name = SMB_name1 SMB_name2
user = Admin

На этом настройка закончена, перезапустите Samba командой /etc/init.d/smbd restart  или же restart smbd - и можно пользоваться расшаренными ресурсами.
Удачной вам настройки.