Файловый сервер Samba. Samba — первые шаги Доступ к дискам Windows из Linux

Сейчас уже довольно часто в одной локальной сети можно встретить компьютеры под управлением Linux и Windows. Причины такого симбиоза могут быть разными: например, у владельцев интернет-кафе не хватило средств на приобретение лицензионной ОС для всех компьютеров, или системного администратора просто привлекли положительные стороны Linux. Популярность операционных систем от Microsoft во многом определятся клиентским ПО для Windows. Не секрет, что этот сектор программного обеспечения развит очень сильно. Множество фирм приложили к этому серьезные усилия и создали действительно хорошие, а главное, удобные в использовании программы, которые без труда может освоить даже рядовой пользователь. Зато в качестве сервера позиция Windows уже не так однозначна. Сервер под управлением Unix традиционно отличается надежностью, стабильностью в работе, безопасностью и зачастую меньшими требованиями к системным ресурсам. Но в любом случае, просто подключив компьютеры с разными программными платформами в сеть, мы не получим ожидаемого результата. Вся проблема в том, что у этих двух систем используются разные принципы организации сетевых ресурсов, несовместимые между собой.
Так как милости Microsoft ждать не приходится, и Windows вряд ли научится работать с сетевой файловой системой Unix (NFS) стандартными средствами, а программ сторонних производителей, если честно, я не знаю, то наиболее популярным способом является попытка научить Unix «притворяться», будто бы он — Windows NT.

Взаимодействие в сети компьютеров под управлением Windows построено на использовании протокола SMB (Server Message Block) — блоках серверных сообщений. Он обеспечивает выполнение всех необходимых в этих случаях задач по открытию и закрытию, чтению и записи, поиску файлов, созданию и удалению каталогов, постановке задания на печать и удалению его оттуда. Все необходимые для этого действия реализуются в Unix-подобных операционных системах посредством использования пакета SAMBA . Возможности его условно можно разделить на две категории: предоставление ресурсов (под коими понимается доступ к системе принтеров и файлам) для клиентов Windows и доступ к ресурсам клиентов. То есть, компьютер под управлением Linux может выступать как в роли сервера, так и клиента. Для начала рассмотрим вариант SAMBA-сервера.

Что же должен обеспечить SAMBA для нормальной работы в сети Windows-машин? Во-первых, контроль доступа, который может быть реализован либо на уровне ресурсов (share level), когда какому-либо ресурсу в сети назначается пароль и соответствующие правила использования (например, «только для чтения»), при этом имя пользователя не имеет абсолютно никакого значения; либо же более совершенную и гибкую организацию на уровне пользователя, когда для каждого пользователя создается учетная запись, где помимо имени и пароля содержится вся необходимая информация о правах доступа к ресурсу. Прежде чем получить доступ к требуемому ресурсу, каждый пользователь проходит аутентификацию, после чего ему и предоставляются права согласно учетным записям. Во-вторых, необходима эмуляция прав доступа, определяемых файловой системой. Все дело в том, что у рассматриваемых систем права доступа к файлам и каталогам на диске организованы по-разному. В Unix традиционно существует три категории пользователей файлов: владелец (owner) , группа (group) и остальные (other) . Каждому из этих субъектов могут быть предоставлены права на чтение (read) , запись (write) и выполнение (execute) . В Windows NT система доступа несколько гибче, доступ предоставляется нескольким группам или пользователям, причем соответствующие права доступа определяются раздельно для каждого субъекта. Поэтому полноценно эмулировать средствами SAMBA права доступа, заложенные в NTFS, невозможно.

С клиентами, работающими под управлением Windows 9x , дело обстоит иначе. Еще со времен дедушки ДОСа, по причине того, что система однопользовательская и о никаких пользователях и тем более группах и не могло быть речи, для файловой системы FAT определено всего четыре атрибута — только чтение (read only), системный (system), архивный (archive) и скрытый (hidden) . Плюс ко всему в Windows, в отличие от Unix, имеет особое значение расширение файла — те, что предназначены для выполнения, имеют расширения.exe, .com или.bat. При копировании файлов с Unix-машин на компьютеры под управлением Windows атрибуты устанавливаются так:

только для чтения — чтение, запись для владельца;

архивный — выполнение для владельца;

системный — выполнение для группы;

скрытый — выполнение для группы.

Сеть Windows-машин может быть организована как рабочая группа (workgroup), когда компьютеры независимы друг от друга и на каждом имеется своя база паролей и логинов со своей политикой безопасности, а также как домен NT. Вся база для аутентификации пользователей и компьютеров управляется главным контролером домена (PDC, Primary Domain Controler) , т.е. централизовано. Samba позволяет ограничивать доступ на всех этих уровнях и выполняет функции «главного браузера» в контексте рабочей группы или контролера домена.

С общеорганизационными вопросами разобрались. Давайте посмотрим теперь конкретно на реализацию и настройку SAMBA-сервера в Linux. Для работы Samba-сервера необходимо, чтобы были запущены два демона: smbd , обеспечивающий работу службы печати и разделения файлов для клиентов Samba (таких как Windows всех мастей), и nmbd , обеспечивающий работу службы имен NetBIOS (он может использоваться и для запроса других демонов служб имен). Для доступа к клиентам используется протокол TCP/IP . Как правило, Samba устанавливается вместе с дистрибутивом Linux. Как проверить? Просто дайте команду:

$ whereis samba

и вы должны получить что-то вроде этого:

Samba: /usr/sbin/samba /etc/samba /usr/share/man/man7/samba.7.gz

Если его не окажется в стандартной поставке, то добро пожаловать на ftp://ftp.samba.org/pub/samba/samba-latest.tar.gz или практически на любой сервер с программами для Linux. Пакет прост в установке, поэтому, чтобы не занимать места, будем считать, что он у вас установлен. Теперь давайте проверим, запущен ли демон:

$ ps -aux | grep smbd root 1122 0.0 0.6 4440 380 ? S 16:36 0:00 smbd -D

У меня уже, как видите, запущен. Если у вас нет, а вы хотите, чтобы он запускался при загрузке системы, то в Linux Mandrake, например, отметьте нужный пункт в DrakConfстартовые сервисы или в Red Hat Сontrol-panelServise Configuration , обычно этого бывает достаточно. Или запускайте вручную: ./etc/rc.d/init.d/smb start. Единственный конфигурационный файл Samba называется smb.conf и обычно находится в каталоге /еtc (хотя в AltLinux, например, он лежит в каталоге /etc/samba). Сервис SAMBA считывает его каждые 60 секунд, поэтому изменения, внесенные в конфигурацию, вступают в силу без перезагрузки, но не распространяются на уже установленные соединения.

Вот за что я люблю Linux, это за то, что конфигурационные файлы являются обычными текстовыми (к тому же хорошо комментированными внутри), и для того чтобы задействовать большинство параметров, достаточно только раскомментировать соответствующую строчку. Файл smb.conf — не исключение. Он состоит из именованных разделов, начинающихся с имени раздела, заключенного в квадратные скобки. Внутри каждого раздела находится ряд параметров в виде key=value. Файл конфигурации содержит четыре специальных раздела: , , и отдельные ресурсы (shares). Как следует из названия, раздел содержит наиболее общие характеристики, которые будут применяться везде, но которые, впрочем, затем можно переопределить в секциях для отдельных ресурсов. Некоторые параметры этого раздела имеют отношение и к настройке клиентской части Samba.

Значения типичных параметров секции global :

Workgroup = имя_группы # название рабочей группы в сети Windows netbios name = имя сервера в сети server string = комментарий, который виден в окне свойств просмотра сети guest ok = yes # разрешение гостевого входа (guest ok = no — гостевой вход запрещен) guest account = nobody # имя, под которым разрешен гостевой вход в систему security = user # Уровень доступа. user — на уровне пользователя, security = share — аутентификация на основе имени и пароля. При хранении базы паролей на другом SMB-сервере используется значения security = server и password server = name_server_NT. В случае, если сервер является членом домена, используется значение security = domain, пароль для доступа указывается в файле, определенном с помощью опции smb passwd file = /path/to/file.

Кроме того, при регистрации могут использоваться шифрованные (encrypted) и незашифрованные (plain-text) пароли . Последние используются в старых Windows (Windows for Workgroups, Windows 95 (OSR2), всех версиях Windows NT 3.x, Windows NT 4 (до Service Pack 3)). Для включения варианта использования шифрованного пароля используется опция encrypt password = yes. Прошу обратить особое внимание на эту опцию. В старых дистрибутивах Linux, которые создавались в эпоху Windows 95 (и с более старой версией Samba) по умолчанию шифрование паролей отключено, а samba до версии 2.0 данного режима вообще не поддерживает (кстати, эта опция и подобные ей — те, что не касаются доступа к конкретным ресурсам — используются и в клиенте).

Для правильного отображения русских имен файлов нужны следующие опции: client code page = 866 и character set = koi8-r. В дистрибутивах с хорошей локализацией, например, производных от Mandrake и русских эта строка уже есть, иногда ее достаточно просто раскоментировать, но в большинстве других ее надо дописать самому.

Опция interfaces = 192.168.0.1/24 указывает, в какой сети (интерфейсе) должна работать программа, если сервер подключен сразу к нескольким сетям. При установке параметра bind interfaces only = yes сервер будет отвечать на запросы только из этих сетей.

hosts allow = 192.168.1. 192.168.2. 127. — определяет клиентов, для которых разрешен доступ к сервису.

В секции global возможно использование различных переменных для более гибкой настройки работы сервера. После установки соединения вместо них подставляются реальные значения. Например, в директиве log file = /var/log/samba/%m.log, параметр %m помогает определить отдельный лог-файл для каждой клиентской машины. Вот наиболее употребительные переменные используемые в секции global:

%a — архитектура ОС на клиентской машине (возможные значения — Win95, Win NT, UNKNOWN и т.д.);

%m — NetBIOS-имя компьютера клиента;

%L — NetBIOS-имя сервера SAMBA;

%v — версия SAMBA;

%I — IP-адрес компьютера клиента;

%T — дата и время;

%u — имя пользователя, работающего с сервисом;

%H — домашняя директория пользователя %u.

Также для более гибкой настройки применяется директива include, использующая приведенные выше переменные. Например: include = /etc/samba/smb.conf.%m — теперь при запросе с компьютера sales при наличии файла /etc/samba/smb.conf.sales конфигурация будет взята из этого файла. Если отдельного файла для какой-то машины не будет, то для работы с ней задействуется общий файл.

Также имеется интересная возможность создания виртуального сервера . Для этого используется параметр netbios aliases:

Netbios aliases = sales accounting admin

Теперь приказываем Самбе, чтобы для каждого виртуального сервера она использовала свой конфигурационный файл:

Include = /etc/samba/smb.conf.%L

В окне обозревателя сети будет видны три сервера: sales , accounting , admin .

Включение параметров preserve case и short preserve case заставляют сервер сохранять всю вводимую информацию с учетом регистра символов (в Windows регистр не имеет значения, во всех Unix — наоборот).

Раздел позволяет пользователям подключаться к своим рабочим каталогам без явного их описания. При запросе клиентом своего каталога //sambaserver/sergej, машина ищет соответствующее описание в файле и если не находит его, то просматривает наличие этого раздела. Если раздел существует, то просматривается файл паролей для поиска рабочего каталога пользователя, направившего запрос, и при нахождении делает его доступным для пользователя.

Типичное описание данного раздела выглядит так:

Comment = Home Directories # комментарий, который виден в окне свойств сети browseable = no # определяет, выводить ли ресурс в списке просмотра. writable = yes # разрешает (no — запрещает) запись в домашнюю директорию create mode = 0750 # права доступа для вновь созданных файлов directory mode = 0775 # тоже, но только для каталогов

После настройки параметров по умолчанию вы можете создать сетевые ресурсы, доступ к которым может получить определенный пользователь или группа пользователей. Создается такой ресурс из уже существующего каталога, для этого в файле пишем:

Comment = Public Stuff path = /home/samba public = yes writable = no printable = no write list = administrator, @sales

Параметр path указывает на каталог, в котором располагается ресурс; параметр public указывает, может ли пользоваться ресурсом гость, а printable — может ли использоваться данный ресурс для печати. Параметр write list позволяет определить пользователей, которым разрешена запись в ресурс независимо от значения writable (в данном примере это пользователь administrator и группа sales). Возможно использование и противоположного списка — read list. Если есть необходимость скрыть некоторые файлы, то в Unix/Linux для этого имя файла должно начинаться с точки (параметр hide dot files, который регулирует отображение скрытых файлов, по умолчанию равен yes ). Кроме того, есть возможность задать шаблоны имен скрытых файлов, для чего используется параметр hide files. Каждый шаблон начинается и заканчивается с символа косой черты (/) и может содержать символы, применяемые в регулярных выражениях. Например: hide files = /*.log/??.tmp/. Такие ухищрения обходятся пользователям Windows всего лишь установкой режима «Показывать скрытые и системные файлы» Проводника. Для уверенного ограничения доступности (возможности удаления) файла (каталога) используйте параметры veto files и delete veto files.

С CD-приводами дело обстоит несколько сложнее. Все дело в том, что в Unix-подобных системах понятие диска отсутствует как таковое, и для того чтобы получить доступ к нужному устройству, оно первоначально должно быть смонтировано в дерево каталогов (# mount -t iso9660 /dev/cdrom /mnt/cdrom), а после использования, чтобы не разрушить файловую систему, обязательно размонтировано (# umount /dev/cdrom), иначе устройство просто не отдаст диск. Если у вас на сервере запущен демон autofs , то проблема решается просто. Для того чтобы устройство, которое не используется в течение некоторого времени, было автоматически размонтировано, установите нужное значение параметра timeout в файле /etc/auto.master. Например:

/mnt/auto/etc/ --timeout=5

(подобная строка уже там есть, ее нужно только раскомментировать). Затем установите параметры для соответствующего устройства в файле /etc/auto.tab:

Cdrom -fstype=auto,ro:/dev/cdrom

После всего этого прописываем в /etc/smb.conf следующие строки, чтобы сделать доступным данный ресурс:

Path = /mnt/cdrom writable = no

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

Path = /mnt/cdrom read only = yes root preexec = mount /mnt/cdrom # монтировать ресурс имеет право только root root postexec = umount /mnt/cdrom # естественно, эти точки монтирования должны быть описаны в файле /etc/fstab, иначе необходимо указать и остальные данные.

Теперь при обращении к ресурсу автоматически монтируется CD-ROM, а иногда и размонтируется. Вся проблема в том, что решение о закрытии ресурса должен принять сервер — клиенты, как правило, не извещают об этом. Но обычно это происходит оттого, что ресурсом одновременно пользуются сразу несколько пользователей или на одном компьютере оставлен открытый файл на данном ресурсе (Device busy). Поэтому CD-ROM автоматически не размонтируется, единственный же приемлемый способ, чтобы освободить ресурс — посмотреть с помощью утилиты smbstatus номер процесса, использующего данный ресурс, и убить его командой # kill pid_number (или kill -s HUP pid_number).

Установив необходимую конфигурацию, теперь создадим учетные записи пользователей (за исключением гостевого входа с минимальными правами nobody). Для идентификации пользователей SAMBA используется файл /etc/samba/smbpasswd, в котором содержатся имена и зашифрованные пароли пользователей. Так как механизм шифрования в сетях Windows-машин не совместим со стандартными Unix-механизмами, для заполнения файла паролей используется отдельная утилита — smbpasswd .

# useradd -s /bin/false -d /home/samba/sergej -g sales sergej # smbpasswd -a sergej # smbpasswd -е sergej

В этом примере добавляется новый пользователь sergej , принадлежащий группе sales , с фиктивной оболочкой (возможны варианты /sbin/nologin, /dev/null) и домашним каталогом /home/samba/sergej. Затем создаем пароль для пользователя sergej и последним шагом включаем доступ пользователю, т.к. по умолчанию он отключен. Интересный момент, который может порой сбить с толку. Дело в том, что при подключении к SAMBA-серверу компьютера с Windows NT/2000 пользователю предлагается ввести, как и положено, логин и пароль, а если для доступа используется компьютер с ОС Windows 9x/Me, то пользователю предлагается ввести только пароль, а логин формируется автоматически на основе регистрационного имени.

Можно также сопоставить нескольких пользователей Windows одному пользователю Linux/Unix. Для этого создается файл сопоставления /etc/smbusers.map, в котором отдельной строкой задается каждое сопоставление:

Пользователь_ Linux = user_win1 user_win2 user_winN

В секции добавьте строку username map = /etc/smbusers.map. При этом пользователь Windows должен регистрироваться с паролем того пользователя, с которым он сопоставлен.

С помощью SAMBA можно организовать возможность сетевой печати с компьютеров под управлением Windows (если планируется отдельный сервер печати, то для этого бывает достаточно и машины на базе 486-процессора).

Для этого в секции необходимо записать такие строки:

Printcap name = /etc/printcap # файл описания принтеров, подключенных к системе load printers = yes # указывает на необходимость автоматического включения в список сетевых ресурсов printing = lprng # система печати (для Linux может еще использоваться bsd).

Path = /var/spool/samba # указывает на каталог, в который помещаются задания на печать browseable = yes printable = yes read only = yes

После создания файла протестируйте его с помощью утилиты testparm . К сожалению, при помощи данной программы можно обнаружить лишь синтаксические ошибки, а не логические, поэтому нет никакой гарантии, что описанные в файле сервисы будут корректно работать (при тестировании будут выведены все установки, даже те, которые установлены по умолчанию, — поэтому внимательно просмотрите результат). Но если программа не ругается, можете надеяться, что при запуске файл будет загружен без проблем. Корректность работы принтеров, перечисленных в файле /etc/printcap, с сервером SAMBA можно проверить с помощью утилиты testprns . Плюс не забывайте о.log-файлах: при возникновении проблем там иногда можно найти решение.

Теперь немного о хорошем. Конфигурирование Samba — довольно сложная процедура, но с дистрибутивом поставляется инструмент администрирования на основе Web, который называется swat (Samba Web Administration Tool, ). Swat запускается в виде сервиса или с помощью сервера Apache и предназначен для редактирования файла smb.conf, а также для проверки состояния, запуска и остановки демонов Samba, смены паролей пользователей. Чтобы он работал в виде сервиса, в файле /etc/services должна обязательно присутствовать строка swat 901/tcp, а в файле /etc/inetd.conf — swat stream tcp nowait.400 root /usr/local/samba/bin/swat swat (это если используется сетевой демон inetd , как правило в старых дистрибутивах; в современных дистрибутивах используется более защищенный вариант — xinetd ). Для того чтобы использовать при этом swat в каталоге /etc/xinet.d, создайте файл swat такого содержания:

Service swat { disable = no port = 901 socket_type = stream wait = no only_from = 127.0.0.1 # это строка для запуска только с локальной машины user = root server = /usr/sbin/swat log_on_failure += USERID }

Теперь для запуска Swat в окне браузера введите:

Http://localhost:901

Но перед этим обязательно создайте пользователя admin описанным выше способом. И никогда не запускайте сервис SAMBA от имени root .

После всех изменений в файле smb.conf иногда потребуется перезапустить демон:

Smb: /etc/rc.d/init.d/smb restart

Если после всех перечисленных действий так и не удалось организовать доступ к ресурсам SAMBA, то в дальнейшей настройке помогут такие утилиты как ping (для проверки доступности узла в сети), nmblookup (для запроса имен NetBIOS), или на крайний случай tcpdump . И не забывайте про права доступа, ведь назначив для пользователя каталог /gde/to/w/glubine, вы предоставите ему возможность прочитать (право на выполнение) и предыдущие каталоги.

Теперь поговорим об использовании клиента Samba, ведь нам (пользователям Linux) также хочется работать и с сетевыми ресурсами Windows. Для того чтобы узнать, какие ресурсы доступны, необходимо ввести команду /usr/bin/smbclient -L host_name. Программа запросит пароль, в ответ на что в большинстве случаев достаточно нажать Enter. Теперь, чтобы подключится к требуемому ресурсу, введите имя компьютера и требуемый ресурс. Например:

# /usr/bin/smbclient \\Alex\Sound

(здесь мы пробуем подключиться к папке Sound на компьютере Alex). В результате, если команда введена правильно и такой сетевой ресурс существует, вы должны получить приглашение на ввод пароля. Введите его или нажмите Enter, если пароль не нужен для доступа. В ответ вы получите приглашение samba-клиента: smb: >. В дальнейшем работа происходит путем набора команд, с помощью которых можно произвести все необходимые операции по работе с файлами (копирование, создание, перемещение и т.д.). Для получения справки введите smb: > help. Этот режим несколько неудобен, поэтому в большинстве случаев используют модуль smbfs , входящий в состав samba; но в старых дистрибутивах ядро может быть собрано без поддержки smbfs, и тогда его придется пересобрать. Для того чтобы смонтировать необходимый ресурс, наберите что-нибудь вроде этого:

Mount -t smbfs -o username=user,password=123456,iocharset=koi8-r,codepage=866 //alex/sound /mnt/sound.

Если не указать имя пользователя и пароль, то система сама его у вас спросит. Не забывайте, что, просмотрев файл ~HOME/.bash_history, можно по командам, которые вы набирали, узнать пароль. Еще одна тонкость: если программа smbclient правильно отображает файлы с русскими именами, то модуль smbfs иногда не обращает на другую кодировку абсолютно никакого внимания, даже если указать ее явно. Говорят, это можно исправить патчем, но я для своего Red Hat его еще не нашел.

Если вы хотите, чтобы ресурс SMB монтировался автоматически при запуске системы, добавьте в файл /etc/fstab примерно такую строку:

//[email protected]/sound /mnt/alex/sound smbfs rw, noauto 0 0.

В этом примере от имени пользователя guest (если ресурс поддерживает данного пользователя и если данный пользователь имеет доступ только по паролю, то не волнуйтесь: у вас его непременно спросят) сетевой ресурс sound на компьютере alex монтируется в папку /mnt/alex/sound с возможностью записи в данный каталог. Кстати, клиент Samba отлично видит скрытые сетевые ресурсы, т.е. те, у которых сетевое имя заканчивается знаком $.

Как видите, приходится работать с командной строкой, которая у современного пользователя вызывает тихий ужас. И здесь мир OpenSource пошел ему навстречу — создано много утилит, позволяющих работать с Samba-ресурсами более привычным путем, нажимая кнопки в графических оболочках. Самая популярная программа, входящая в дистрибутив Mandrake и производных от него, а также Debian — gnomba . В любом случае ее можно найти на большинстве серверов с ПО для Linux (на ftp://ftp.altlinux.ru/ видел точно). Данная утилита позволяет просмотреть доступные сетевые ресурсы () и при необходимости смонтировать в нужный каталог, при этом возможен вариант монтирования с указанием лог ина и пароля для тех ресурсов, которые этого требуют. Возможен запуск файлового менеджера при монтировании (по умолчанию gmc ), создание каталогов для монтируемых ресурсов, задание опции автоматического сканирования при запуске программы (возможно с использованием протокола SMB по умолчанию) и сканирования по IP-адресам (планируется с использованием WINS-протокола). По невыясненным мною причинам в некоторых дистрибутивах при сканировании с помощью SMB-протокола не выводились сетевые ресурсы, поэтому я всегда использую второй метод, благо он действует безотказно, необходимо лишь задать диапазон IP-адресов для сканирования (если знаете). Для того чтобы отображались правильно русские имена файлов, не забудьте установить шрифты koi8-r во вкладке Опции > Выбор шрифта , а также проверить строки, указывающие кодировку кириллицы в файле smb.conf (см. выше).

Если gnomba может только монтировать и размонтировать ресурсы, то программа xsmbrowser позволяет еще и заходить в них как в папки на локальном компьютере (). Правда, мне пока не удалось заставить эту программу понимать файлы с русскими названиями, но есть и положительные стороны: при работе данной программы все команды по монтированию и различные сетевые запросы выводятся на консоль, что позволяет хорошо разобраться в них. Разработчики KDE тоже постарались: через Preferences > Information доступна утилита Samba Status , отображающая все подключения к/от локального компьютера, одновременно являющаяся удобным средством просмотра.log-файлов. Аналогичную информацию представляет и утилита komba , которую можно найти на http://linux.tucows.com/ ().

Как бы я ни хотел рассказать вам больше, но журнал есть журнал — всего не уместишь. Далее в помощь вам придут вездесущие man и info. Также всю необходимую справочную информацию можно получить из утилиты SWAT, к тому же в Red Hat 7.3 обнаружилась книга Using Samba Robert"a Eckstein"a (язык английский — плохо, совершенно бесплатно — хорошо: /usr/share/swat/using_samba), доступная также из SWAT (). В каталоге /usr/share/doc/samba можно найти дополнительную документацию, FAQ и примеры конфигурационных файлов. В различных форумах можно встретить довольно противоречивые мнения о работе Samba, от крайне отрицательных до полного восторга. Лично я на стороне сторонников этого эмулятора Windows NT, к тому же по результатам тестов при одинаковом оборудовании сервер Samba показывает производительность примерно на 25-30% выше, чем компьютер под управлением системы от Microsoft. Успехов.

Настройка фаил-сервера SAMBA относительно проста, для корректной работы сервиса необходимо настроить всего один фаил - smb.conf. Этот файл определяет, к каким системным ресурсам предоставляется доступ для внешнего мира, и какие ограничения существуют на использование этих ресурсов.

Конфигурационный файл имеет текстовый формат и разбит на разделы. Каждый раздел начинается с заголовка раздела, такого как , и т.п. Названия всех разделов в файле smb.conf заключены в прямоугольные скобки .
Раздел определяет переменные, которые Samba будет использовать для определения доступа ко всем ресурсам. Все остальные секции описывают отдельный ресурс сервера.
Специальный раздел позволяет удаленным пользователям иметь доступ к своим домашним директориям. Так что, если пользователи Windows попытаются подключиться к этому разделу со своих Windows-машин, то они будут подключены к своим персональным домашним директориям.
Отдельные записи в разделах указываются в соответствии с формулой name = значение.
Далее приводится описание всех переменных, значения которых можно установить в конфигурационном файле.

Подстановка переменных

Перед описанием файла smb.conf в данном пункте описывается использование подстановки переменных. Она может использоваться во многих строках файла smb.conf. Перед тем как обработать команду, Samba выполняет подстановки.
Ниже приведен список всех возможных подстановочных переменных:
- %S Имя текущей службы,
- %Р Корневой каталог текущей службы,
- %u Пользователь текущей службы,
- %g Основная группа %u,
- %U Имя пользователя для сеанса (может отличаться от имени, запрошенного клиентом),
- %G Основная группа %U,
- %Н Домашний каталог пользователя,
- %v Версия Samba,
- %h Имя хоста, на котором работает Samba,
- %m NetBIOS-имя компьютера-клиента,
- %L NetBIOS-имя сервера. Эта переменная может оказаться полезной в том случае, если вы на одном Samba-сервере запускаете несколько NetBIOS-серверов;
- %М Имя хоста для компьютера-клиента;
- %R Выбранный после установления соединения уровень протокола; - %d Номер текущего серверного процесса;
- %а Операционная система клиента (значение может быть неверным).
В настоящее время распознаются такие системы, как Samba, Windows for Workgroups, Windows NT и Windows 95. Если система неизвестна для Samba, значением переменной является UNKNOWN.
- %I IP-адрес клиентской машины;
- %T Текущие дата и время.

Основные параметры (Base options)
Основные параметры на странице расширенных настроек определяют, как Samba-сервер выглядит со стороны клиентов и в каких рабочих группах и сетях он доступен. Ниже обсуждаются все основные параметры.

Параметр workgroup

Значение по умолчанию - workgroup. Этот параметр определяет, в какой рабочей группе будет находиться сервер. При получении запроса от клиента Samba-сервер будет сообщать, что он принадлежит к рабочей группе, заданной этим параметром.
Этот параметр также используется для задания имени домена (параметр security установлен в значение domain), если Samba-сервер должен подключиться к NT-домену или Samba сам используется в качестве контроллера домена.
В следующем примере устанавливается рабочая группа bee-hive:

Workgroup bee-hive

Параметр NetBIOS name

По умолчанию в качестве NetBIOS-имени сервера Samba использует DNS-имя компьютера. Если вы не используете DNS, то это поле будет пустым.
Этот параметр устанавливает NetBIOS-имя Samba-сервера. По умолчанию оно совпадает с первым компонентом DNS-имени хоста.
В следующем примере устанавливается NetBIOS-имя sugar:

Netbios name sugar

Параметр NetBIOS aliases

Значение по умолчанию - пустая строка (нет псевдонимов).
Параметр предназначен для создания группы NetBIOS-имен, которые nmbd будет анонсировать как дополнительные имена, для которых Samba-сервер может предоставлять службы. Однако даже если компьютер работает в качестве сервера просмотра (browser server) или сервера авторизации (logon server), то эти имена не анонсируются как имена сервера просмотра или сервера авторизации; только основное NetBIOS-имя системы будет являться именем сервера просмотра или сервера авторизации.
В следующем примере создаются NetBIOS-псевдонимы sweetie и honey:

Netbios aliases = sweetie honey

После того как вы установите этот параметр, сервер будет отзываться не только на свое основное имя (sugar), но и на имена sweetie и honey.

Параметр server string

По умолчанию строкой описания сервера является номер версии Samba (соответствующее значение в файле smb.conf - samba %v). Еще одна переменная подстановки, которую удобно использовать в строке описания сервера, - %h (она указывает имя хоста, на котором запущен сервер). Параметр определяет, какая текстовая строка появится на клиентах в качестве комментария к серверу при просмотре сети, а также при выполнении команды net view. В качестве значения может использоваться любая строка.
В следующем примере строка описания сервера sugar устанавливается в значение Sugar - The Bee-Hive Workgroup:

Server string = SuSe Samba Server

Параметр interfaces

Этот параметр позволяет задать несколько сетевых интерфейсов для того, чтобы Samba-сервер смог надлежащим образом использовать службу просмотра. Значением параметра является список пар IP-адрес - маска подсети. Маска подсети может быть задана в одном из двух видов - побитово либо длиной.
Например, следующая строка:

Interfaces = 192.168.100.240/255.255.255.0 192.168.200.250/255.255.255.0

задает два сетевых интерфейса IP-адресами 192.168.100.240 и 192.168.200.250. Маски подсетей для этих интерфейсов совпадают и установлены в значение 255.255.255.0.
Того же самого эффекта можно достичь при помощи строки:

Interfaces = 192.168.99.24/24 192.168.200.250/24

Параметр interfaces позволяет использовать оба формата.
Если значение этого параметра не задано, то Samba пытается найти основной интерфейс, но не будет использовать дополнительные интерфейсы. Если в вашем компьютере не установлено несколько сетевых карт, то оставьте значите этого параметра пустым; Samba найдет вашу сетевую карту и автоматически определит IP-адрес и маску подсети.
Если у вас две или более сетевых карты, также прочитайте ниже описание параметра bind interfaces.

Параметр bind interfaces only

Этот глобальный параметр позволяет вам ограничить список сетевых интерфейсов компьютера, для которых будет производиться обработка SMB-запросов. Файловая служба smbd и служба имен nmbd используют значение этого параметра немного по-разному.
Служба nmbd использует порты 137 и 138 сетевых интерфейсов, указанных в параметре interfaces, а также и порты 137 и 138 для адреса 0.0.0.0 с целью получения широковещательных сообщений. Если параметр bind interfaces only не установлен, то nmbd обрабатывает все запросы к службе имен, поступающие через эти сокеты. Если параметр установлен в значение yes, то для пакетов, поступивших на широковещательный сокет, производится проверка адреса отправителя, и запрос обрабатывается только в том случае, если данный адрес находится в одной из подсетей, заданных параметром interfaces; кроме того, не производится обработка пакетов, поступивших через не указанные в параметре interfaces интерфейсы. Однако это не метод обеспечения безопасности. Метод подмены IP-адреса (IP spoofing) хорошо известен и позволяет обойти эту простую проверку.
Что касается службы smbd, то если параметр bind interfaces only установлен в значение yes, будут обрабатываться только запросы с интерфейсов, указанных в параметре interfaces. Это ограничивает список сетей, для которых обрабатываются SMB-запросы. Вы также должны добавить адрес 127.0.0.1 в список адресов в параметре interfaces. IP-адрес 127.0.0.1, так называемый локальный адрес, является используемым по умолчанию адресом для тестирования и прочих функций для всех Ethernet-карт. Если вы не включите этот адрес в значение параметра interfaces локальные средства взаимодействия с сервисом могут вести себя непредсказуемым образом.
Значение параметра по умолчанию:

Bind interfaces only = No

Для того чтобы установить параметр, измените эту строчку на следующую:

Bind interfaces only = Yes

Эти параметры определяют, как служба smbd отвечает на запросы клиентов. Все описанные ниже параметры помогают вам защитить вашу систему и скрыть различия между Windows и UNIX. Один из параметров мы уже обсуждали в предыдущем разделе - параметр workgroup при использовании политики безопасности NT-домена также можно отнести к параметрам безопасности.

Параметр security

Значение по умолчанию security = user, поскольку оно чаше всего используется при взаимодействии с Windows 95/98 и Windows NT. Если имена пользователей на ваших клиентских машинах совпадают с их именами на UNIX-сервере, то тогда вам следует использовать
security = user. Однако в этом случае сложнее создать разделяемые диски для публичного доступа. Вне зависимости от того, какой вариант вы выберете для вашей сети, взаимодействие между клиентом и сервером происходит по описанной ниже схеме. Сервер следует этой процедуре для того, чтобы определить, позволит ли он произвести подключение к разделяемому ресурсу. Если все шаги заканчиваются неуспехом, в соединении будет отказано. Если один из шагов был успешен, последующие шаги не выполняются:
1) если клиент передал пару имя/пароль и система безопасности ЗОС "Феникс" подтвердила ее корректность, то производится соединение под данным именем пользователя. Этот вариант включает в себя метод передачи имени пользователя совместно с именем разделяемого ресурса, применяемый в NT: \\sugar\sharel edwardb;
2) если клиент указал имя пользователя при установлении предыдущего соединения и в этот раз передал правильный пароль для этого имени, то соединение разрешается;
3) производится сопоставление NetBIOS-имени клиента и всех использованных ранее имен пользователей с переданным паролем. Если пароль соответствует одному из имен, соединение разрешается; 4) если клиент ранее передавал пару имя/пароль, и она была признана сервером корректной, то разрешается соединение для данного имени пользователя. Если параметр revalidate установлен в значение yes, то этот шаг пропускается;
5) если для разделяемого ресурса, попытка подключения к которому производится, в файле smb.conf при помощи параметра user задан список пользователей, и клиент передал правильный пароль для одного из пользователей, то разрешается соединение для этого пользователя;
6) если разделяемый ресурс является ресурсом для публичного доступа, то производится подключение под именем пользователя, заданного для этого ресурса при помощи параметра guest account, вне зависимости от переданного пароля.
Параметр security имеет четыре доступных значения:

Security = user (безопасность на уровне пользователей);
security = share (безопасность на уровне ресурсов);
security = server (безопасность на уровне сервера);
security = domain (безопасность на уровне домена).

По умолчанию используется значение security = user. Безопасность на уровне пользователей требует от клиента подключаться к разделяемым ресурсам при помощи корректных имени пользователя и пароля (соответствие которых именам пользователей ЗОС "Феникс" может быть указано при помощи параметра username map). В этом режиме безопасности также могут использоваться шифрованные пароли (см. параметр encrypt passwords). Если установлены такие параметры, как user и guest only, то они применяются и могут изменить имя пользователя, с правами которого устанавливается соединение - но это происходит только после успешной аутентификации пользователя. Это связано с тем, что имя ресурса, запрос на соединение с которым производится, пересылается на сервер только после успешной аутентификации клиента. Именно поэтому публично доступные ресурсы не будут работать при использовании безопасности на уровне пользователей без автоматического отображения неизвестных серверу пользователей в гостевую учетную запись (см. параметр map to guest, Security options, 6).
Значение security = share не требует от клиентов подключения к серверу с использованием имени пользователя и пароля до попытки подключения к разделяемому ресурсу. Клиенты на базе Windows 95/98 и Windows NT при подключении к серверу, на котором используется безопасность на уровне ресурсов, будут по-прежнему передавать запрос на аутентификацию, в котором будет указано имя пользователя, но не будет указан пароль. Пароли для аутентификации отправляются клиентами для каждого ресурса отдельно, непосредственно при попытке подключения к нему. Служба smbd всегда выполняет запросы клиента от имени существующего пользователя ЗОС "Феникс", даже при использовании безопасности на уровне ресурса. Демон smbd использует несколько методов для определения, от имени какого конкретно пользователя он должен работать при выполнении того или иного запроса. Сначала создается список возможных пользователей для проверки пароля, потом производится проверка пароля:
Если установлен параметр smbd, то все другие стадии пропускаются и проверяется только имя гостевой учетной записи.
Если при запросе на подключение к разделяемому ресурсу клиентом было передано имя пользователя, то это имя пользователя (после отображения в локальные имена, см. параметр username map) добавляется в список.
Если клиент подключался к серверу ранее, то использованное им при предыдущем подключении имя добавляется в список. Имя ресурса, подключение к которому запрашивает клиент, также добавляется в список в качестве имени пользователя. В список также добавляется NetBIOS-имя клиента.
Если не установлен параметр guest only, то производится проверка соответствия указанного клиентом пароля всем именам из списка. Первый пользователь из списка, для которого данный пароль подошел, и будет тем UNIX-пользователем, от имени которого работает smbd.
Если параметр guest only установлен или имя пользователя, соответствующее паролю, не найдено, то производится проверка - является ли запрашиваемый ресурс публично доступным.
Если ресурс является публично доступным, то smbd работает от имени пользователя-гостя, в противном случае в подключении будет отказано.
В режиме security - server Samba пытается проверять корректность пароля для данного имени пользователя передавая их другому SMB-серверу (возможно, NT-системе). Если проверка закончилась неуспехом, то Samba переходит на использование безопасности на уровне пользователей (security = user).
С точки зрения клиента, security = server ничем не отличается от security = user. Разница заключается только в том, как сервер производит аутентификацию. Запомните, что имя запрашиваемого клиентом ресурса не передается на сервер до того, как будет произведена успешная аутентификация пользователя. Именно поэтому публично доступные ресурсы не будут работать при безопасности на уровне сервера, если только вы не разрешите серверу автоматически отображать неизвестных пользователей в гостевую учетную запись (см. параметр map to guest).
Режим security = domain правильно работает только в том случае, если Samba-сервер был добавлен в домен Windows NT при помощи программы smbclient. Ожидается, что при использовании этого режима будут включены шифрованные пароли (см. encrypted passwords). В этом режиме Samba пытается проверять корректность пароля, передавая его основному или дополнительному контроллеру домена, точно так же, как это делает Windows NT. С точки зрения клиента, security = domain ничем не отличается от security = user. Как и в случае
security =server, имя запрашиваемого ресурса не передается на сервер до успешного проведения аутентификации. Именно поэтому публично доступные ресурсы не будут работать при безопасности на уровне домена, если только вы не разрешите серверу автоматически отображать неизвестных пользователей в гостевую учетную запись (см. параметр map to guest).
По умолчанию используется значение:

Security = USER

Для того чтобы установить безопасность на уровне домена, используйте:

Security = DOMAIN

Параметр encrypt passwords

Этот параметр указывает, должны ли использоваться при коммуникациях с клиентом шифрованные пароли. Windows NT 4.0 SP3 и более поздние версии, а также Windows 95/98 по умолчанию (если не вносились специальные изменения в реестр) ожидают использование шифрованных паролей. За исключением того случая, когда у вас есть устаревшие приложения, работающие только под управлением Windows for Workgroups или DOS-клиенты, установите encrypt passwords = yes. (Неужели вы хотите редактировать реестр на каждом клиенте?).
Значение по умолчанию:

Encrypt passwords = No

Для того чтобы включить шифрованные пароли, измените эту строку на:

Encrypt passwords = Yes

Параметр update encrypted

Этот параметр предназначен для тех администраторов и пользователей, которые переходят со старых версий Samba или Windows. Он позволяет произвести постепенный переход на использование шифрованных паролей - без необходимости для каждого пользователя повторно задать свой пароль при помощи программы smbpasswd в момент перехода. Если все пользователи уже имеют шифрованное представление своего пароля в файле smbpasswd, данный параметр должен быть установлен в значение No. Для правильной работы Samba при включенном режиме плавного перехода на шифрованные пароли (Update encrypted = yes) параметр encrypt passwords должен быть установлен в значение yes.
Значение по умолчанию:

Update encrypted - No

Чтобы включить режим плавного перехода на шифрованные пароли, измените эту строку на:

Update encrypted - Yes

Параметр map to guest

Этот параметр очень важен при использовании безопасности на уровне пользователей, сервера или домена. Дело в том, что в этих режимах имя запрашиваемого ресурса не передастся на сервер до успешного завершения аутентификации пользователя. Параметр может принимать три различных значения, которые определяют поведение smbd в том случае, если указанное клиентом имя пользователя не соответствует ни одному из имен пользователей UNIX-системы:
- never значение по умолчанию. Доступ для пользователей, указавших неверный пароль, будет запрещен;
- bad user доступ для пользователей, указавших неверный пароль, будет запрещен, если указанное имя пользователя имеется в ЗОС "Феникс". В противном случае пользователь считается "гостем" и получает права гостевой учетной записи;
- bad password все пользователи, указавшие неверный пароль, считаются "гостями", и получают права гостевой учетной записи. Не используйте этот режим. Если он включен, то пользователь, неверно набравший свой пароль, без всяких предупреждений подключается к системе как "гость" и в результате не может получить доступ к своим файлам.
Значение по умолчанию:

Map to guest = never

Для того чтобы изменить значение параметра на bad user, используйте:

Map to guest = bad user

Параметр null passwords

Параметр разрешает или запрещает доступ клиентов к учетным записям, для которых не установлен пароль. Это еще один параметр, который не следует включать.
Значение по умолчанию:

Null passwords = No

Чтобы включить параметр, измените это на:

Null passwords = Yes

Параметр password server

Этот параметр позволяет вам задать имя другого SMB-сервера. При работе в режиме безопасности на уровне домена или безопасности на уровне сервера Samba будет производить проверку корректности имен/паролей при помощи указанного удаленного сервера. Вам следует указывать в качестве значения параметра NetBIOS-имя сервера. Если NetBIOS-имя сервера отличается от его Интернет-имени, укажите имя сервера в файле lmhosts (он находится в том же каталоге, что и smb.conf). Адрес сервера паролей определяется при помощи методов, перечисленных в значении параметра name resolve order, в указанном порядке. Сервер паролей должен представлять собой систему, способную использовать протокол LM 1.2X002 или LM NT 0.12, и сервер должен работать в режиме безопасности па уровне пользователей. Не указывайте вашему
Samba-серверу на самого себя в качестве сервера паролей! Это может вызвать зацикливание и "завесить" ваш сервер.
Если вы используете безопасность на уровне домена, то обсуждаемый параметр должен задавать имя основного или дополнительного контроллера вашего домена. В этом случае вы можете в качестве значения параметра password server указывать список имен, и smbd будет пытаться обращаться к данным серверам по очереди до тех пор, пока не получит ответ от одного из них. Это полезно в том случае, если ваш основной контроллер домена вдруг отказал.
Если вы используете безопасность на уровне сервера, то имеются дополнительные ограничения. Вы опять можете указать в качестве значения password server список имен; однако если один из перечисленных серверов отказал, то при его помощи более не будет производиться аутентификация пользователей. Эго ограничение протокола SMB/CIFS и не может быть исправлено в Samba.
По умолчанию значение параметра - пустая строка:

Password server =

Для того чтобы включить проверку имен и паролей при помощи NetBIOS-серверов sugar и terrapin, задайте:

Password server = sugar, terrapin

Параметр root directory

При запуске сервер сделает указанный каталог своим корневым каталогом. Смена корневого каталога с/ на какой-либо другой повышает безопасность системы. Однако за каждое улучшение безопасности нужно платить. Если вы используете этот параметр, вы можете быть уверены, что сервер никаким образом не сможет получить доступ к файлам, находящимся вне дерева каталогов, начинающегося с указанного корневого каталога. Это касается и файлов, необходимых для нормальной работы сервера. В частности, вам может потребоваться создать копии файлов, обычно находящихся в каталоге /etc.
Значение по умолчанию:

Root directory = /

Для того чтобы установить каталог /opt/samba/home в качестве корневого, используйте:

Root directory = /opt/samba/home

Параметр username map

Параметр задает файл, содержащий правила отображения имен пользователей клиента на имена пользователей ЗОС "Феникс". Этот параметр предназначен только для удобства (подумайте о том, какую дополнительную нагрузку создает отображение). Если вы собираетесь отобразить имена всех пользователей на клиентах, почему бы просто не создать для них соответствующих пользователей в UNIX-системе? А вот для того, чтобы отобразить пользователя Administrator NT-системы на пользователя root UNIX-системы (если вам нужен кросс-платформенный административный доступ) - это самое подходящее место.
Каждая строка файла, описывающего правила отображения, должна начинаться с одного имени пользователя в ЗОС "Феникс", за которым после знака = должен следовать список имен. В этом списке для обозначения произвольного имени может использоваться специальный символ *. Максимальная длина одной строки составляет 1023 символа. Ограничение на количество строк отсутствует. Файл с правилами отображения обрабатывается построчно. Если строка начинается с символа # или; - она игнорируется. Например, чтобы определить отображение имен admin и administrator на имя root в UNIX-системе, укажите в файле строку:

# запись для отображения NT-аднинистратора на root
root = admin administrator

По умолчанию отображение пользователей не включено - значением параметра является пустая строка:

В нашем примере файл правил называется user.map и находится в каталоге /usr/local/samba/1ib:

Username map = /usr/local/samba/1ib/user.map

Параметр password level

В некоторых сочетаниях "клиент-сервер" возникают трудности при использовании паролей, содержащих буквы как в верхнем, так и в нижем регистре. Большинство современных клиентов не имеют проблем при обработке паролей в смешанном регистре. Этот параметр на самом деле предназначен для работы с Windows for Workgroups, которая при использовании протокола LANMAN1 требует пароля в верхнем регистре. Значением обсуждаемого параметра является число, которое задает максимально возможное число символов в верхнем регистре в пароле. Чем оно больше, тем больше вероятность, что пароль в верхнем регистре будет признан верным, несмотря на то, что настоящий пароль содержит символы как верхнего, так и нижнего регистра. Вы должны осознавать, что использование этого параметра снижает безопасность системы и увеличивает время, затрачиваемое на установление нового соединения. Если в вашей сети пег старых клиентов на базе Windows for Workgroups или DOS, оставьте для этого параметра значение по умолчанию (ноль). В этом случае проверяются всего два пароля - пароль, присланный клиентом, и тот же пароль, все символы которого переведены в нижний регистр.
Например, если клиент прислал пароль STRAW и password level = 1, то, если сам пароль не подошел, будут также проверены следующие комбинации:

Straw, sTraw, stRaw. strAw. Straw
Если password level = 2, то будут также проверены пароли:

STraw StRaw. StrAw. StraW. sTRaw. sTrAw.
Значение по умолчанию:

Password level = 0

В примере ниже установлено значение 4:

Password level = 4

Параметр username level

Этот параметр, как и предыдущий, предназначен для работы Samba с устаревшими клиентами. DOS-клиенты передают имя пользователя всегда в верхнем регистре. По умолчанию Samba пытается использовать имя в нижнем регистре, и затем имя в нижнем регистре с первой буквой в верхнем. Если эти две попытки найти соответствующее имя на UNIX-системе не удались, то клиенту будет отказано в подключении. Однако если параметр username level имеет ненулевое значение, то поведение Samba меняется. Значением данного параметра является число различных вариаций имени (полученных путем преобразования отдельных символов в верхний регистр), которые будут проверены на соответствие имени в UNIX-системе. Чем больше число, тем больше комбинаций проверяется. Опять же, как и в случае с password level, использование этого параметра уменьшает и безопасность, и быстродействие. Чем больше значение параметра, тем медленнее производится поиск имени. Этот параметр может быть полезен в том случае, если на вашей UNIX-системе есть странные имена наподобие WhatALongStrangeNamenic или же вы используете клиенты на базе DOS или Windows for Workgroups.
Значение по умолчанию:

Username level = 0

Установлено значение 5:

Username level = 5

Параметр revalidate

Этот параметр работает только при использовании безопасности на уровне ресурсов (security = share). Он определяет, будет ли Samba позволять использовать ранее проверенную пару имя/пароль для подключения к новому ресурсу. По умолчанию разрешается подключение без проведения повторной проверки. Если вы установите параметр в значение yes, затем подключитесь к ресурсу \\sugar\lesh и, наконец, попытаетесь произвести подключение к \\sugar\hart, Samba не разрешит клиенту автоматического подключения, несмотря на то, что клиент отправит то же самое имя пользователя, что и ранее.
Значение по умолчанию:

Revalidate = No

Revalidate = Yes

Параметр username

Еще один параметр для работы с устаревшими клиентами на базе DOS и Windows for Workgroups. Как и в случае password level и username level, при использовании этого параметра ухудшаются безопасность системы и ее производительность. Значением параметра должен являться список имен пользователей, отделенных друг or друга запятыми. Пароль, переданный клиентом, проверяется на соответствие каждому из этих имен по очереди.

Параметр guest account

Этот параметр задает имя пользователя, используемое для доступа к публичным ресурсам (см. guest of). Привилегии этого пользователя получают любые клиенты, присоединяющиеся к публично доступным ресурсам. Указанный в качестве значения параметра пользователь не должен иметь возможность нормально войти в систему.

Guest account = nobody

Для того чтобы использовать в качестве гостевой учетной записи ftp, поменяйте эту строку па следующую:

Guest account = ftp

Параметр invalid users


invalid users = administrator, если вы не нуждаетесь в кросс-платформенном администрировании.

Invalid users =

Invalid users = administrator admin

Параметр valid users

Valid users = phil

Параметр admin users

Admin users = georgeh

Параметр read list

Для того чтобы разрешить для пользователей phi! и cheese доступ исключительно в режиме "только для чтения", используйте:

Read list = phil cheese

Параметр write list


Значение по умолчанию - пустая строка (ни один пользователь не получает доступа на запись к ресурсам "только для чтения"):

Write list = admin root

Параметр hosts allow

Значением этого параметра является список узлов, которым разрешен доступ к службе. В качестве разделителей могут использоваться запятая, пробел и символ табуляции. Если параметр задан в разделе globals, то он относится ко всем разделяемым ресурсам; более того, если для конкретного ресурса запрещен доступ для одного из узлов, указанных в списке hosts allow в разделе globals, то доступ все равно разрешается. Узлы в списке можно задавать при помощи имени, IP-адреса или пары IP-адрес-маска подсети. При использовании символа подстановки * для того, чтобы задать исключения, допустимо применять также ключевое слово except.

Hosts allow = localhost, 192.168.*.*

Hosts allow - localhost, 192.168.99.0/255.255.255.0

Hosts allow = localhost, terrapin, deal

Hosts allow - localhost, 192.168.99.0/255.255.255.0 except 192.168.99.222

Параметр hosts deny

Hosts deny - 192.168.111.*

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

Параметр log level

Этот параметр является синонимом debug level и задает уровень отладки. По умолчанию уровень отладки равен 0:

Debug level = 0

Чтобы установить уровень отладки 3:

Debug level = 3

Параметр syslog

Параметр задает пороговое значение для отправки сообщений в системный журнал (syslog). В системный журнал будут отправлены сообщения с уровнем отладки, меньшим порога.
Samba использует следующие значения уровня отладки:

Уровень отладки 0 соответствует LOG_ERR;
- уровень отладки 1 соответствует LOG_WARNING;
- уровень отладки 2 соответствует LOG_NOTICE;
- уровень отладки 3 соответствует LOG_INFO;
- все более высокие уровни соответствуют LOG_DEBUG.

Значение по умолчанию - 1:

Чтобы установить пороговое значение 3 (LOG_INFO):

Параметр syslog only

Если этот параметр установлен, то Samba отправляет отладочные сообщения только в системный журнал (syslog), не записывая их в собственный файл журнала.
По умолчанию отладочные сообщения как отправляются в системный журнал, так и записываются в собственный файл журнала Samba:

Syslog only = No

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

Syslog only = Yes

Параметр log file

Этот параметр позволяет изменить используемые по умолчанию расположение и имя файла журнала Samba. В значении параметра можно использовать стандартные для Samba подстановочные переменные. Наиболее часто применяются:
- %m имя узла,
- %u пользователь.
Значение по умолчанию задается при компиляции:

Log file = /var/log/samba/log.smb

Для того чтобы использовать файл журнала /opt/log/samba/samba.log:

Log file = /opt/log/samba/samba.log

Если значением параметра log file является:

Log file = /opt/log/samba/samba.%m

то для узла deal файл журнала будет называться /opt/log/samba/samba.deal. Такой поход полезен в том случае, когда вы выполняете централизованное журналирование для всех серверов.

Параметр max log size

Этот параметр задает максимальный размер файла журнала. Его значением является предельный размер в килобайтах. Samba отслеживает размер файла журнала, и при превышении им указанного значения переименовывает файл, дописывая к его имени расширение.old. Значение 0 означает, что предельного размера для файла журнала нет. Значение по умолчанию:

Max log size = 5000

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

Max log size = 10000

Параметр timestamp logs

Samba по умолчанию помечает все записи в файле журнала меткой времени. Этот параметр позволяет отключить метку времени. Используйте его, если вам нужно разобраться с проблемой, но не нужны метки времени. Значение по умолчанию:

Timestamp logs = Yes

Чтобы отключить метку времени:

Timestamp logs = No

Параметр status

Параметры протокола (Protocol options)

В этом разделе описаны параметры сетевого протокола - от версии и размера блока до текста, который ваш сервер будет использовать для идентификации своих сетевых разделяемых ресурсов. При помощи этих параметров вы сможете управлять тем, как Samba-сервер будет выглядеть с точки зрения Windows-серверов, произвести настройку для улучшения производительности, и задать, как Samba будет находить сетевые ресурсы.

Параметр protocol

Этот параметр задает максимальный уровень протокола, который будет поддерживать сервер: вам не нужно изменять его. Нужный уровень протокола будет найден во время фазы автоматического определения в SMB-протоколе. Доступные значения параметра:
- CORE Первая версия протокола. В настоящее время не используется;
- COREPLUS Более эффективный протокол, но весьма примитивный;
- LANMAN1 Следующая версия. Поддерживает длинные имена. Так называемый протокол LAN Manager;
- LANMAN2 Несколько усовершенствовании протокола LAN Manager;
- NT1 Текущая версия протокола, также называется CIFS (Common Internet File System).
Значение по умолчанию:

Для того чтобы использовать, например, протокол LANMAN1, укажите:

Protocol = LANMAN1

Параметр read bpmx

Этот параметр указываем должен ли smbd поддерживать возможность Read Block Multiplex, и используется достаточно редко.
Значение по умолчанию:

Чтобы установить этот параметр, измените его значение на yes:

Read bpmx = Yes

Параметр read raw

Этот параметр задает, должен ли сервер поддерживать SMB-запросы на "сырое" чтение (raw read smb requests) при передаче данных клиентам. Включенная поддержка таких запросов позволяет читать 65 535 байтов в одном пакете, что может существенно улучшить производительность.
Значение по умолчанию:

Для того чтобы выключить поддержку "сырого" чтения, измените значение параметра:

Параметр write raw

По умолчанию данный параметр установлен в значение yes, что разрешает оптимизированную низкоуровневую запись файлов. Некоторые сервера могут не поддерживать эту возможность, и ее отключение в таком случае улучшит производительность.
Значение по умолчанию:

Write raw = Yes

Изменение значения может улучшить производительность некоторых серверов:

Параметр NT smb support

Параметр определяет, должен ли smbd при работе с NT-клиентами использовать специфические для NT возможности протокола SMB. Параметр считается предназначенным для отладки.
Значение по умолчанию:

Nt support = Yes

Для того чтобы выключить поддержку возможностей SMB, специфичную для NT:

Nt support = No

Параметр NT pipe support

Данный параметр позволяет задать, должен ли демон smbd позволять NT-клиентам подключаться к каналам IPC$, специфичным для NT SMB, и рассматривается как отладочный параметр, предназначенный для разработчиков. Значение по умолчанию:

NT pipe support - Yes

Для того чтобы отключить поддержку каналов IPC$, установите:

NT pipe support - No

Параметр NT acl support

Этот экспериментальный параметр по умолчанию установлен в значение no. Он разрешает smbd пытаться отображать режимы доступа ЗОС "Феникс" в списки управления доступом Windows NT. Значение по умолчанию:

NT acl support =

Для того чтобы разрешить отображение режимов на списки доступа, установите:

NT acl support - Yes

Параметр announce version

Параметр задает номера версий, которые nmbd будет использовать, анонсируя себя как сервер. По умолчанию используется номер версии 4.2. Не изменяйте значение этого параметра, если только вам не нужно по какой-либо причине настроить Samba как сервер более низкого уровня. Значение по умолчанию:

Announce version = 4.2

Для того чтобы изменить анонсированную версию на 2.0, задайте:

Announce version = 2.0

Параметр announce as

Параметр определяет, как nmbd анонсирует себя для занесения в список просмотра сети. Samba 2.0 и более поздние версии по умолчанию анонсируют себя как Windows NT. He изменяйте значение параметра (если только вам не нужно, чтобы Samba-сервер перестал выглядеть как NT-сервер), поскольку это может привести к тому, что Samba-сервер перестанет корректно отображаться в списке просмотра.
Доступные значения параметра:
- NT Анонсировать себя как сервер для всех современных клиентов на базе Windows (начиная с Windows 95);
- Win 95 Также анонсировать. себя как сервер для всех современных клиентов на базе Windows.
Значение по умолчанию:

Announce as = NT

Для того чтобы Samba-сервер выглядел как сервер на базе Windows 95, задайте:

Announce as = Win95

Параметр max mux

Параметр задает наибольшее количество SMB-операций, которые клиент может выполнять одновременно. Вам никогда не потребуется изменять его значение. Значение по умолчанию:

Ниже приведен пример уменьшения предельного значения:

Параметр max xmit

Параметр задает максимальный размер пакета, который анонсирует Samba-сервер при установлении соединения с клиентом. По умолчанию используется наибольшее возможное значение - 65 535. Вы можете обнаружить, что для ваших клиентов использование меньшего значения повысит производительность. Однако значение менее 2048 с большой вероятностью вызовет проблемы.
Значение по умолчанию:

Max xmit = 65535

Ниже приведен пример уменьшения максимального размера пакета:

Max xmit = 16384

Параметр name resolve orde

Параметр задает список служб имен, которые будет использовать Samba, и порядок их использования. Значение параметра представляет собой список служб, в качестве разделителя используется пробел. Доступны следующие службы:
- lmhosts Поиск IP-адреса в файле lmhosts на Samba-сервере;
- host Поиск IP-адреса при помощи стандартного метода операционной системы, на которой работает Samba. При этом могут использоваться, например, файл hosts или служба DNS;
- wins Поиск IP-адреса при помощи опроса сервера WINS. Самое важное преимущество WINS перед другими методами заключается в том, что эта служба использует динамический, а не статический метод определения имен. Это означает, что сервер WINS "слушает" сеть и запоминает имена активных систем. Если сервер WINS не задан в файле настройки Samba, то этот метод игнорируется;
- beast Поиск IP-адреса при помощи широковещательного запроса на всех локальных сетевых интерфейсах. Для выбора интерфейсов Samba использует значение параметра interfaces. Этот метод является наименее надежным, поскольку узел, поиск адреса которого производится, должен быть подключен к одной из локальных подсетей.
Значение по умолчанию:

Name resolve order = lmhosts host wins beast

Для того чтобы после поиска в файле lmhosts выполнять широковещательный запрос, задайте:

Name resolve order = lmhosts beast host

Если ни в файле lmhosts, ни при помощи широковещательного запроса IP-адрес искомого узла обнаружить не удалось, будет выполнен поиск адреса средствами операционной системы.

Параметр max packet

Параметр задает максимальный размер пакета, который сможет использовать Samba-сервер. По умолчанию используется наибольшее возможное значение - 65 535. Вы можете обнаружить, что для ваших клиентов использование меньшего значения повысит производительность. Однако значение менее 2048 с большой вероятностью вызовет проблемы. Значение по умолчанию:

Max packet = 65535

Для того чтобы установить размер пакета равным половине размера по умолчанию, укажите:

Max packet = 32768

Параметр max ttl

Параметр задает время жизни (TTL) в секундах для имен NetBIOS, которое nmbd будет использовать по умолчанию. Время отсчитывается с момента широковещательного запроса или запроса сервера WINS. Вам не следует изменять значение данного параметра.
Значение по умолчанию - 518 400 секунд:

Max ttl = 518400

Для того чтобы установить время жизни равным трем дням (259 200 секунд), задайте:

Max ttl = 259200

Параметр min wins ttl

Данный параметр имеет смысл только в том случае, если ваш Samba-сервер настроен как сервер WINS. Он задает для nmbd минимальное время жизни имен NetBIOS (в секундах). Вам не следует изменять значение данного параметра.
Значение по умолчанию - 6 часов, или 21 600 секунд:

Min wins ttl - 21600

Для того чтобы установить минимальное время жизни равным 12 часам (43 200 секунд), задайте:

Min wins ttl = 43200

Параметр time server

Если данный параметр установлен в значение yes, то nmbd будет анонсировать себя Windows-клиентам как сервер времени. При этом демон не будет играть роль стандартной службы времени и не сможет быть использован в этих целях UNIX-клиентами.
Значение по умолчанию:

Time server = No

Для того чтобы включить службу времени, задайте:

Time server = Yes

Этот раздел отображается только на странице Global Advanced и предназначен для установки параметров, предназначенных для точной настройки Samba. Вы можете настроить Samba для работы в определенном окружении, задав время неактивности, по истечении которого пользователи будут отключены от сервера, указав, какие параметры сокета должны быть установлены, определив размер кэша, а также изменив значения многих других параметров.

Параметр change notify timeout

Параметр определяет способ обработки запроса change notify, отправленный клиентом серверу, просит последнего отслеживать изменения в определенном каталоге и ответить на запрос только при возникновении таких изменений. Реализация этого постоянного отслеживания под UNIX весьма ресурсоёмка. Для того чтобы улучшить производительность, демон smbd выполняет проверку состояния каталога не постоянно, а через интервал времени, заданный параметром change notify timeout. Значение параметра задает интервал в секундах. Значение по умолчанию - 60 секунд:

Change notify timeout = 60

Для того чтобы производить проверку состояния каталогов каждые 10 минут (600 секунд), укажите:

Change notify timeout = 600

Параметр deadtime

Параметр определяет время неактивности соединения в минутах, по истечении которого соединение начинает считаться "мертвым" и разрывается (только в том случае, если для данного соединения число открытых файлов равно 0). За счет этого освобождаются ресурсы сервера, которые в противном случае могут быть исчерпаны большим количеством неактивных соединений. Современные клиенты имеют возможность автоматического повторного подключения при разрыве соединения, поэтому использование данного параметра прозрачно для пользователей.
Значение по умолчанию - 0 (автоматическое закрытие соединений не будет производиться):

Для того чтобы установить максимальное время неактивности соединения равным пяти минутам, укажите:

Параметр getwd cache

Если этот параметр установлен в значение yes, то используется специальный алгоритм кэширования, уменьшающий время выполнения определенных системных вызовов. Для того чтобы данный параметр имел существенное влияние на производительность, параметр widelinks в разделе Miscellaneous Options должен быть установлен в значение no.
Значение по умолчанию:

Getwd cache = No

Для того чтобы включить кэширование, установите:

Getwd cache = Yes

Параметр keepalive

Параметр указывает интервал в секундах между отправкой пакетов для поддержания соединения (keepalive packets). Эти пакеты сообщают серверу, что клиент еще присутствует в сети и способен отвечать на запросы. Большинство служб используют собственные пакеты для поддержания соединения.
Значение параметра задает интервал в секундах. Используйте этот параметр при поиске и устранении проблем.
Значение по умолчанию - 0 (сервер не отправляет пакеты для поддержания соединения):

Чтобы сервер отправлял пакеты для поддержания соединения раз в минуту, задайте:

Параметр max disk size

Параметр определяет максимальный объем диска, который будет сообщаться клиентам. Если вы установите его в значение 100, то все клиентам все разделяемые ресурсы будут казаться имеющими объем не более 100 Мбайт. Ключевое слово - "казаться". Этот параметр не ограничивает объем данных, которые вы можете поместить на диск; он лишь задает предел для объема, сообщаемого сервером клиенту в ответ на запрос об общем объеме диска. Параметр полезен для того, чтобы обойти проблемы в программном обеспечении, не поддерживающем очень большие диски.
Значение по умолчанию - 0 (нет ограничений):

Max disk size = 0

Для того чтобы ограничить сообщаемый клиентам размер дисков одним гигабайтом, укажите:

Max disk size = 1000

Параметр max open files

Параметр задает максимальное число файлов, которое каждый клиент может открыть на сервере. На самом деле это число также зависит от максимально разрешенного количества открытых файлов для одного процесса в UNIX-системе, на базе которой установлен Samba-сервер. Значение по умолчанию очень велико, поскольку Samba использует всего лишь 1 бит для каждого неоткрытого файла.
Значение по умолчанию:

Max open files = 10000

Для того чтобы уменьшить предел до 5000 файлов, задайте:

Max open files = 5000

Параметр read size

Параметр задает перекрытие операций дискового чтения/записи с операциями сетевого чтения/записи. Если объем передаваемых данных превышает значение этого параметра, то сервер начинает их запись на диск до того, как из сети будет получен весь пакет. Лучше всего такое перекрытие работает в том случае, если скорости диска и сети примерно одинаковы. Для данного параметра практически не проводилось экспериментов, которые бы позволили определить его оптимальное значение, но можно сказать, что оно сильно изменяется от системы к системе. Если вы зададите значение, превышающее 65 535, то это приведет к выделению памяти, которая никогда не будет использована (поскольку 65 535 - максимально возможный размер пакета).
Значение по умолчанию:

Read size = 2048

В примере ниже значение удвоено:

Read size - 4096

Параметр socket options

Вы можете задать параметры сокетов, которые используются при взаимодействии с клиентами. Параметры сокета позволяют провести точную настройку соединений на сетевом уровне операционной системы для достижения наилучшего быстродействия Samba-сервера. Вы можете задать одновременно несколько поддерживаемых параметров сокета, если это позволяет операционная система. Однако некоторые комбинации параметров могут привести к полному отказу Samba-сервера.
Если вы - не гуру в TCP/IP, то не меняйте значение по умолчанию.
Samba поддерживает следующие параметры сокета:

SO_KEEPALIVE
SO_REUSEADDR
SO_BROADCAST
TCP_NODELAY
IPTOS_LOWDELAY
IPTOS THROUGHPUT
SO_SNDBUF #
SO_RCVBUF #
SO_SNDLOWAT #
SO_RCVLOWAT #

Параметры, помеченные символом #, требуют целого числа в качестве аргумента. Прочие параметры в качестве аргумента используют значения 1 или 0, чтобы соответственно разрешить или запретить использование данного параметра (если аргумент не указан, то использование параметра разрешается).
В примере ниже размер буфера передачи увеличивается до 8 Мбайт (вокруг второго знака равенства не должно быть пробелов):

Socket options = SO_SNDBUF=8192

Если вы используете Samba-сервер в локальной сети, попробуйте установить вот эти параметры:

Socket options = IPTOS_LOWDELAY TCP_NODELAY

Если вы используете Samba-сервер в глобальной сети, попробуйте задать:

Socket options - IPTOS_THROUGHPUT

Значение по умолчанию:

Socket options = TCP_NODELAY

Параметр stat cache size

Параметр определяет количество записей в статическом кэше. Вам не потребуется изменять его значение. Значение по умолчанию:

Stat cache size = 50

Для того чтобы удвоить значение, используемое по умолчанию, задайте:

Stat cache size = 100

Имена файлов (Filename handling)

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

Параметр strip dot

Параметр указывает, должны ли отбрасываться точки в конце UNIX-имен. Это может помочь использовать некоторые CD, на которых имена файлов заканчиваются точкой.
Значение по умолчанию:

Для того чтобы разрешить отбрасывать точки, задайте:

Strip dot - Yes

Параметр unix charset

Параметр задает карту перекодировки для имен файлов.

Unix charset = koi8-r

Параметр mangled stack

Этот параметр задает число измененных имен (mangled names), которое должны кэшироваться демоном smbd. Сервер сохраняет список недавно измененных имен файлов и их расширений, если они не длиннее трех символов или содержат символы в верхнем регистре. Значение по умолчанию достаточно, если только вы не используете в UNIX очень длинные имена файлов и каталогов. Будьте осторожны: может произойти так, что параметр в подтверждение своего названия приведет к порче длинных имен файлов.
Значение по умолчанию:

Mangled stack = 50

Для того чтобы удвоить объем памяти, выделяемый под кэш, задайте:

Mangled stack = 100

Параметр case sensitive

Case sensitive = No

Case sensitive = Yes

Параметр preserve case

Параметр определяет, сохраняется ли регистр символов в новых именах файлов, полученных от клиента. Если вы установите параметр в значение nо, то регистр символов в именах файлов будет приведен к регистру, используемому по умолчанию.
Значение по умолчанию:

Preserve case = Yes

Preserve case = No

Параметр short preserve case

Параметр указывает, должны ли сохраняться новые имена файлов в верхнем регистре и небольшой длины, или же они должны быть приведены к используемому по умолчанию регистру. Параметр имеет смысл, если параметр preserve case установлен в значение yes.
Значение по умолчанию:

Short preserve case = Yes

Short preserve case = No

Параметр mangle case

Mangle case = No

Mangle case = Yes

Параметр mangling char


Значение по умолчанию:

Mangling char = ~

Mangling char = _

Параметр hide dot files

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

Hide dot files = Yes

Hide dot files = No

Параметр delete veto files

Параметр определяет, что происходит, когда Samba попытается удалить каталог, который содержит один или несколько защищенных каталогов (vetoed directories). По умолчанию используется значение no, то есть удаление каталога закончится неуспехом, если защищенный каталог содержит обычные файлы или каталоги. Скорее всего, именно такие установки вам нужны.
Значение yes приводит к тому, что Samba попытается рекурсивно удалить все файлы и подкаталоги защищенного каталога. Это означает, что при удалении родительского каталога все такие каталоги будут удалены прозрачно для пользователя. Пользователь, выполняющий удаление каталога, должен иметь соответствующие права доступа, или же удаление закончится неуспехом вне зависимости от значения параметра delete veto files.
Значение по умолчанию:

Delete veto files = No

Delete veto files - Yes

Параметр veto files

Значением данного параметра является список файлов и каталогов, которые не являются ни видимыми, ни доступными для клиентов. Однако имейте в виду, что если каталог содержит только файлы, входящие в данный список, он будет удален вместе со всеми файлами, если пользователь имеет соответствующие права доступа на UNIX-системы. Кроме того, параметр case sensitive влияет на интерпретацию значения параметра veto files.


Если вы хотите задать непустой список, то для разделения имен в этом списке применяется символ /, что позволяет указывать имена, содержащие пробелы. В списке допустимо использовать символы подстановки * и?. Каждый элемент списка должен быть именем UNIX-файла, но не может включать в себя символ /.

Veto files - /*.tmp/*root*/

Параметр hide files

Значением параметра является список файлов и каталогов, которые невидимы, но доступны для клиентов. Для каждого из файлов или каталогов, соответствующих указанному списку, выставляется DOS-атрибут "скрытый файл" (hidden file). Для разделения имен в этом списке применяется символ /, что позволяет указывать имена, содержащие пробелы. В списке допустимо использовать символы подстановки * и?. Каждый элемент списка должен быть именем UNIX-файла, но не может включать в себя символ /.


Для того чтобы сделать скрытыми все файлы, заканчивающиеся на.log, установите:

Hide files =o /*.log/

Параметр veto oplock files



Veto oplock files - /*.cookie/

Параметр mangled names


Отображение имен позволяет клиентам работать с файлами ЗОС "Феникс" (например, скопировать файл из одного каталога системы в другой), сохраняя при этом их исходные длинные имена.
Если у вас включено отображение имен для разделяемого каталога, то два файла с одинаковыми первыми пятью символами в имени могут получить одинаковое имя после отображения, вызвав проблемы. Шанс того, что эта неприятность случится, - 1 из 1300.
Значение по умолчанию:

Mangled names = Yes

Mangled names = No

Параметр mangled map

Данный параметр позволяет непосредственно задать карту отображения имен файлов ЗОС "Феникс", не совместимых с DOS/Windows. Если вы не хотите использовать отображение имен для всех файлов, этот параметр весьма полезен.
Приведем один пример, описывающий часто встречающуюся ситуацию. В UNIX-системах для HTML-файлов обычно используется расширение.html, в то время как в Windows/DOS - расширение.htm. Обсуждаемый параметр позволяет отображать UNIX-расширение.html в Windows-расширение.htm.
Значение по умолчанию:

Mangled map = (*.html *.htm)

Параметр stat cache

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

Stat cache = Yes

Параметры домена (Domain options)

Этот раздел позволяет установить значения параметров, связанных с доменом NT.

Параметр domain groups

Значение по умолчанию - пустая строка:

Domain groups =

Не изменяйте его.

Параметр domain admin group

Значение по умолчанию:

Domain admin group =

Не изменяйте его.

Параметр domain guest groups

Значение по умолчанию:

Domain guest group =

Не изменяйте его.

Параметр domain admin users

Значение по умолчанию:

Domain admin users =

Не изменяйте его.

Параметр domain guest users

Значение по умолчанию:

Domain guest users =

Не изменяйте его.

Параметр machine password timeout

Этот параметр имеет значение только в том случае, если используется безопасность на уровне домена (security = domain). Он указывает, когда smbd будет изменять пароль для учетной записи компьютера. Значение задает интервал в секундах. Значение по умолчанию - одна неделя (604 800 секунд, это стандартное значение для компьютеров в домене Windows NT):

Machine password timeout = 604800

Значение по умолчанию соответствует поведению систем на базе Windows NT. Не изменяйте его.

Параметры входа в систему (Logon options)

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

Параметр logon script

Параметр позволяет задать имя файла, который будет загружен на каждый клиент и выполнен там после входа в домен. В значении параметра можно использовать стандартные переменные подстановки, что позволяет задать различные сценарии входа в систему для различных пользователей или рабочих станций. Имейте в виду, что в сценарии входа в систему должен использоваться конец строки в DOS-стиле. Файл сценария должен располагаться в каталоге, указанном в качестве пути для ресурса netlogon. He разрешайте доступ на запись к ресурсу netlogon! Содержание файла сценария может быть любым, вы можете поместить туда все что угодно - от синхронизации часов с сервером времени до подключения разделяемых дисков для общих приложений. Например:

NET TIME \\SUGAR /SET /YES
NET USE W \\SUGAR\workutils
NET USE Y \\SUGAR\datafiles
NET USE Z \\SUGAR\accounts

Значение параметра logon script по умолчанию - пустая строка (нет файла сценария входа в систему):

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

Logon script = setenv.bat

Ниже приводится пример использования стандартной переменной подстановки %U (задающей имя пользователя). При помощи этой переменной вы можете создать для пользователей индивидуальные сценарии:

Logon script = %U bat

Параметр logon path

Этот параметр используется только в том случае, если Samba играет роль сервера входа в домен и для профилей пользователей настроен роуминг. Параметр указывает, в каком каталоге хранятся профили. В значении параметра могут использоваться стандартные переменные подстановки, что позволяет задать различные сценарии входа в систему для различных пользователей или рабочих станций. Каталог, указанный в значении параметра, также будет использоваться для загрузки рабочего стола, меню Пуск, сетевого окружения и папки Программы для ваших клиентов на базе Windows 95/98. Данный разделяемый ресурс (и соответствующий ему каталог) должны быть доступны для чтения пользователю, или же Windows 95/98-клиент не сможет загрузить пользовательские настройки. Разделяемый ресурс должен быть доступен пользователю на запись как минимум при первом входе в домен. После первого входа в домен каталоги и их содержимое могут быть переведены в режим доступа "только для чтения". Однако не переводите в режим "только для чтения" файл user.dat, поскольку он содержит пользовательские настройки и пользователь может захотеть изменить их. Вместо этого переименуйте файл в user.man и установите режим "только для чтения" для этого файла. (Такой файл называется обязательным (mandatory) профилем) Значение по умолчанию:

Logon path = \%N\%U\profile

Для того чтобы указать, что профили пользователей находятся в каталоге \НОМЕ\имя_пользователя на сервере DEAL, задайте:

Logon path = \\DEAL\HOME\%U\PROFILE

Параметр logon drive

Этот параметр используется только в том случае, если Samba играет роль сервера входа в домен для рабочих станций на базе NT. Параметр указывает локальный каталог, который будет играть роль домашнего каталога пользователя. Значение по умолчанию - пустая строка (каталог не задан):

Для того чтобы установить домашний каталог как диск Н:, используйте:

Logon drive = h

Параметр logon home

Этот параметр задает расположение домашнего каталога в том случае, когда рабочая станция на базе Windows 95/98 или NT входит в домен, в котором Samba-сервер является PDC. В значении параметра могут использоваться стандартные переменные подстановки, позволяя определить различные домашние каталоги для различных пользователей или компьютеров-клиентов.
Ниже приведен пример, в котором задано имя сервера домашних каталогов, но для указания самого каталога используется имя пользователя, установившего сеанс:

Logon home = \\deal\%U

Параметр domain logons

Параметр определяет, будет ли Samba играть роль сервера подключения к домену для клиентов на базе Windows 95/98. Сервер входа в домен для клиентов на базе Windows NT - это не то же самое! Значение по умолчанию:

Domain logons = No

Для того чтобы включить поддержку подключения к домену для клиентов на базе Windows 95/98, задайте:

Domain logons = Yes

Параметры просмотра определяют, как ваш Samba-сервер будет играть роль сервера просмотра сети Windows. При помощи этих параметров вы можете заставить Samba всегда выигрывать выборы локального сервера просмотра (или всегда проигрывать их, или же выигрывать у одних операционных систем и проигрывать другим), а также задать информацию о сетевых ресурсах, которая будет передаваться всем клиентам.

Параметр OS level

Этот параметр задает значение, которое Samba анонсирует в качестве версии операционной системы при выборах сервера просмотра. Значение по умолчанию выбрано так, чтобы Samba-сервер проигрывал выборы любой Windows-машине. Значение по умолчанию:

Значение, установленное в примере ниже, приведет к тому, что Samba-сервер выиграет выборы у любого Windows-сервера:

Параметр lm announce

Параметр указывает, следует ли демону nmbd производить широковещательные Lanman-анонсы (это требуется для работы клиентов на базе OS/2). Если параметр установлен в значение false, то клиенты на базе OS/2 не увидят Samba-сервер в списке просмотра. Параметр может принимать одно из трех значений:
- true принимать широковещательные Lanman-анонсы и отвечать на них;
- auto отвечать, если в сети обнаружены широковещательные Lanman-анонсы;
- false нe отвечать на широковещательные Lanman-анонсы.
Значение по умолчанию - принимать широковещательные Lanman-анонсы и затем отвечать на них:

Lm announce - auto

Для того чтобы запретить Samba-серверу отвечать на широковещательные Lanman-анонсы, установите:

Lm announce = false

Параметр lm interval

Если предыдущий параметр (lm announce) установлен в одно из значений - true или auto, то при помощи параметра lm interval вы можете изменять интервал между отправкой широковещательных анонсов. Значение параметра - интервал в секундах.
Значение по умолчанию:

Lm interval = 60

Для того чтобы увеличить интервал между широковещательными Lanman-анонсами в три раза, задайте:

Lm interval = 180

Параметр preferred master

Параметр указывает, должен ли nmbd играть роль предпочитаемого сервера просмотра (preferred master browser) для своей рабочей группы. Если параметр установлен в значение yes, то немедленно после запуска nmbd инициирует выборы сервера просмотра. По умолчанию сервер, инициировавший выборы, имеет некоторое преимущество. Обсуждавшийся выше параметр OS level - еще один способ повлиять на результаты выборов.
Если вы установили параметр preferred master в значение yes, то установите также в значение yes параметр domain master. Использование preferred master = yes, domain master = yes и OS level = 65 позволяет быть уверенным в том, что nmbd станет контроллером домена.
Данный параметр может стать источником проблем с производительностью сети, если в одной и той же подсети несколько серверов настроены как предпочитаемые сервера просмотра. Не имеет значения, являются ли эти сервера серверами на базе Samba, Windows NT или Windows 95/98 - если они настроены как предпочитаемые сервера просмотра, они будут периодически пытаться стать сервером просмотра для подсети. Это приводит к появлению в сети избыточного широковещательного трафика и замедляет процесс просмотра.
Значение по умолчанию:

Preferred master = No

Для того чтобы Samba-сервер играл роль предпочитаемого сервера просмотра, задайте:

Preferred master - Yes

Параметр local master

Параметр позволяет задать, должен ли nmbd участвовать в выборах сервера просмотра для своей подсети. Если параметр установлен в значение по, то Samba-сервер никогда не будет пытаться стать сервером просмотра. В этом случае Samba будет проигрывать все выборы сервера просмотра и никогда не станет сервером просмотра подсети.
Значение по умолчанию:

Local master - Yes

Для того чтобы отключить данный параметр, измените значение по умолчанию:

Local master - No

Параметр domain master

Параметр определяет, будет ли nmbd поддерживать список просмотра глобальной сети (WAN). Если параметр установлен, то nmbd захватывает специальное Net-BIOS-имя в домене. Это имя идентифицирует сервер как основной сервер просмотра домена для данной рабочей группы. Локальные сервера просмотра в той же рабочей группе, находящиеся в разных подсетях, будут передавать nmbd свои списки просмотра, а затем запрашивать общий список просмотра для WAN. Клиенты будут получать список просмотра для всей сети с локальных серверов просмотра.
Если ваш Samba-сервер входит в сеть, содержащую сервера домена Windows NT, не изменяйте значение этого параметра. Основные контроллеры домена Windows NT захватывают специальное имя NetBIOS (зависящее от рабочей группы). Если Samba-сервер захватит это имя раньше контроллера домена, то просмотр между подсетями может работать странно или вообще отказать.
Значение по умолчанию:

Domain master = No

Для того чтобы включить параметр, установите:

Domain master = Yes

Параметр browse list

Этот параметр имеет смысл, противоположный параметру domain master, и определяет, будет ли Samba-сервер передавать список просмотра на сервер просмотра при создании расширенного списка просмотра (wide area browse list). При передаче списка просмотра Samba-сервер также получает информацию о других серверах.
Значение по умолчанию:

Browse list = Yes

Вам не следует отключать этот параметр.

Параметры WINS (Wins options)

В разделе описаны параметры WINS, определяющие как Samba будет взаимодействовать с серверами WINS и не должен ли Samba-сервер играть роль сервера WINS.

Параметр DNS proxy

Параметр имеет смысл только в том случае, если Samba-сервер играет роль сервера WINS и определяет, будет ли nmbd переправлять запросы на определение имени серверу DNS, если имя не найдено в базе данных WINS. Использование этой возможности не является хорошей идеей, если только для некоторых клиентов нет никакого другого способа получать информацию из DNS. Проблема не в производительности (nmbd запустит себя еще раз, создав второй процесс, для обработки запросов к DNS). Вот в чем проблема: если клиент ищет сетевое имя в базе WINS, то какова вероятность, что сервер DNS поможет ему? Серверу DNS будет передаваться запрашиваемое имя не длиннее 15 символов.
Значение по умолчанию:

DNS proxy = Yes

Для того чтобы выключить параметр и не переправлять серверу DNS запросы на определение имен, установите:

Параметр WINS proxy

Параметр определяет, будет ли nmbd отвечать на широковещательные запросы на определение имен, если имена принадлежат другим узлам, но nmbd знает ответ. Как и в обычной жизни, отвечать за кого-то - плохая идея. С другой стороны, установка этого параметра в значение yes может помочь в поиске проблем с сетью. Если ваши сетевые службы работают лишь при установленном параметре WINS proxy, дважды проверьте все настройки. Значение по умолчанию:

WINS proxy = No

Чтобы включить поддержку WINS-прокси, задайте:

WINS proxy - Yes

Параметр WINS server

Параметр задает IP-адрес или DNS-имя сервера WINS, на котором nmbd будет регистрировать используемые имена. Если ваша сеть состоит из нескольких подсетей, то параметр WINS server должен быть установлен, в противном случае просмотр сети не будет работать правильно. Если сервер WINS входит в вашу сеть, укажите его IP-адрес. Хотя вместо адреса вы можете использовать DNS-имя, не делайте этого (поскольку может ухудшиться производительность или параметр вообще не будет работать). Используйте IP-адрес.
Значение по умолчанию - пустая строка (сервер WINS не задан):

Например, если адрес вашего сервера WINS - 192.168.99.24, то установите:

WINS server = 192 168 99 24

Параметр WINS support

Параметр определяет, будет ли nmbd играть роль сервера WINS, и не должен быть установлен в значение yes более чем на одном компьютере в вашей сети. Значение yes должно применяться только в том случае, если ваша сеть разделена на подсети и в одной из них вы хотите, чтобы демон nmbd на конкретном компьютере играл роль сервера WINS.
Значение по умолчанию:

WINS support = No

Для того чтобы включить параметр, укажите:

WINS support = Yes

Этот раздел описывает параметры, с помощью которых вы можете установить параметры блокировки. Правильная настройка этих параметров поможет улучшить производительность Samba-сервера.

Параметр locking

Этот параметр определяет, будет ли сервер производить блокировку файлов по запросам клиентов, и предназначен для использования разработчиками Samba. Не изменяйте значение этого параметра. Установка его в значение no приведет к тому, что все запросы на блокирование и разблокирование файлов будут казаться клиентам успешно выполненными, однако на самом деле никакая блокировка производиться не будет. Если вы запретите блокировку или в разделе глобальных параметров, или для определенного разделяемого ресурса, это приведет к повреждению данных.
Значение по умолчанию:

Ниже приведен действительно глупый пример:

Параметр OLE locking compatibility

Параметр определяет, включить ли возможность блокировки байтового диапазона в файлах. Такая возможность обеспечивает совместимость с OLE-приложениями. Механизм блокировки, используемый Windows OLE, может привести к сбоям или другим проблемам в определенных диспетчерах блокировки, применяемых в ЗОС "Феникс". Значение по умолчанию позволяет Samba согласовывать запросы на блокировку от OLE-приложений и диспетчер блокировки ЗОС "Феникс". Значение по умолчанию:

OLE locking compability = Yes

Для того чтобы непосредственно передавать запросы на блокировку от OLE-приложений диспетчеру блокировки ЗОС "Феникс", задайте:

OLE locking compability = No

Параметр oplocks


Значение по умолчанию:

Параметр strict locking

Параметр определяет, как сервер обрабатывает блокировку файлов. Если он установлен в значение yes, то сервер при каждой попытке чтения или записи проверяет существовании блокировки для файла и не разрешает доступ, если файл заблокирован. Если параметр установлен в значение no, то сервер проверяет наличие блокировки для файла только по запросу клиента. Именно так сервер ведет себя по умолчанию, поскольку такой метод обеспечивает лучшую производительность.
Значение по умолчанию:

Strict locking = No

Strict locking - Yes

Параметр share modes

Share modes = Yes

Прочие параметры (Miscellaneous options)

Этот раздел собрана смесь самых разных параметров. Некоторые из них позволяют настроить файл smb.conf для конкретной системы, другие позволяют сделать Samba-сервер видимым в удаленных сетях, третьи - определить, что увидят пользователи, подключающиеся к серверу.

Параметр preload

Значением параметра является список служб, которые сервер автоматически должен добавить в списки просмотра. Наиболее полезен этот параметр для включения в списки просмотра домашних каталогов, которые в противном случае не будут видны. Службы в списке разделяются пробелами.
Значение по умолчанию - пустая строка (ни одна служба не включается в списки просмотра автоматически):

Ниже приведен пример, в котором в список просмотра автоматически включается разделяемый ресурс sugar и принтер sparc_printer:

Preload = sugar sparc_printer

Параметр lock dir

Параметр определяет каталог, в котором будут размещаться файлы блокировки. Эти файлы используются Samba для реализации функциональности параметра max connections.
По умолчанию для хранения файлов блокировки в каталоге /tmp создается каталог с именем samba:

Lock dir = /tmp/samba

Чтобы разместить файлы блокировки, например, в каталоге /var/samba/locks, задайте:

Lock dir = /var/samba/locks

Параметр default service

Параметр задает имя службы, к которой будет подключен пользователь, если запрошенная им служба не найдена. Для этого параметра нет значения по умолчанию. Если параметр не определен, то при попытке подключения к несуществующей службе клиент получит сообщение об ошибке.
Обычно в качестве службы по умолчанию используется публично доступный разделяемый ресурс с режимом доступа "только для чтения".
Значение по умолчанию - пустая строка (если запрошенная служба недоступна, вместо нее не будет подставлено никакой другой):

Default service =

Для того чтобы подключать клиентов, запросивших несуществующий ресурс, к, например, службе access_tmp, укажите:

Default service = access_tmp

Параметр message command

Параметр задает команду, которая выполняется при получении сервером Win-Popup-сообщения. Данная команда должна доставить сообщение адресату. Как именно это произойдет, зависит от набора служб, работающих на вашем сервере. Например, эта команда может отправить сообщение по почте, вывести его в окне или просто удалить его, но имейте в виду, что она выполняется с полномочиями гостевой учетной записи. Если вы придумаете метод отправки сообщений, который хорошо подходит для вашей сети, напишите о нем команде разработчиков Samba.
В значении параметра message command вы можете использовать стандартные переменные подстановки. Для всех сообщений также определены следующие три переменные:
- %s имя файла, содержащего сообщение;
- %t адресат сообщения (обычно это имя сервера);
- %f отправитель сообщения.
Значение по умолчанию - пустая строка, то есть команда обработки сообщений не определена. В этом случае Samba сообщает об ошибке клиентам, пытающимся отправить на сервер WinPopup-сообщение.

Message command =

Для того чтобы просто стирать все приходящие сообщения, задайте:

Message command = rm %s

Параметр valid chars

Параметр задает дополнительные символы, которые будут рассматриваться сервером как допустимые в именах файлов. Он может быть полезен при использовании национальных алфавитов. Значением параметра должен быть список символов либо в виде их кодов, либо в виде собственно символов. Отдельные символы разделяются пробелами. Если вы разделите два символа двоеточием, они будут считаться одним символом в нижнем и верхнем регистрах соответственно. Для того чтобы параметр работал правильно, вам необходимо сначала установить корректное значение для client code page. (По умолчанию в smb.conf параметры располагаются в нужном порядке.) Если вы установите параметр client code page после valid chars, то значение valid chars будет перезаписано. Параметр client code page обсуждался выше в разделе "Имена файлов".
Для каждой конкретной системы достаточно трудно создать правильный список символов для использования в качестве значения параметра valid chars. В дистрибутив Samba входит программа, которая поможет автоматизировать этот процесс. Программа validchars автоматически создает полную строку valid chars для данной клиентской системы. Эта программа, примеры с расширением.out и исходные тексты находятся в подкаталоге examples/validchar каталога Samba.
Значение по умолчанию - пустая строка (никакие дополнительные символы не считаются допустимыми в именах файлов):

Параметр remote announce

Параметр позволяет задать список IP-адресов, по которым демон nmbd будет периодически анонсировать себя. Адреса могут находиться в других подсетях; также вы можете указать имя рабочей группы. Если имя рабочей группы не указано, используется имя рабочей группы Samba-сервера.
Параметр полезен, если вам необходимо, чтобы Samba-сервер разделял ресурсы с удаленной рабочей группой, и предоставляет вам еще один способ управления сетевыми списками просмотра.
Удаленная рабочая группа может располагаться где угодно - главное, чтобы вы могли отправлять ей IP-пакеты. Если сетевые соединения стабильные, попробуйте задать в этом параметре IP-адреса известных серверов просмотра удаленной рабочей группы.

Значение по умолчанию - пустая строка (не производится анонсов в удаленные рабочие группы):

Remote announce =

Ниже приведен пример, в котором nmbd анонсирует себя в удаленные рабочие группы QandA и ENGINEERS:

Remote announce = 192.168.99.24/QandA 192.168.100.124/ENGINEERS

Параметр remote browse sync

Параметр относится только к взаимодействию Samba-сервера с другими Samba-серверами. Он указывает, будет ли демон nmbd запрашивать синхронизацию списков просмотра с основным сервером просмотра, являющимся Samba-сервером в удаленном сегменте сети. Этот параметр позволяет серверу получать списки просмотра для нескольких рабочих групп в маршрутизируемых сетях, но он будет работать правильно только в том случае, если Samba-сервер может отправлять IP-пакеты серверу, синхронизация с которым предполагается.
Значение по умолчанию - пустая строка (синхронизация не выполняется):

Remote browse sync =

Ниже приведен пример, в котором Samba будет пытаться синхронизировать списки просмотра с Samba-серверами по адресам 192.168.99.24 и 192.168.100.100.

Remote browse sync = 192.168.99.24 192.168.100.100

Имейте в виду, что Samba просто отправляет пакеты по указанным адресам. Не производится никакой проверки.

Параметр socket address

Параметр определяет адрес, на котором Samba ожидает соединений. Он используется, для того чтобы настроить несколько виртуальных интерфейсов на одном сервере. Samba-сервер на каждом из интерфейсов может иметь свою настройку.
Значение по умолчанию - 0.0.0.0 (Samba будет принимать подключения на всех адресах):

Socket address =0.0.0.0

Например, чтобы демоны Samba ожидали подключения на адресе 192.168.200.250, задайте:

Socket address = 192.168.200.250

Параметр time offset

Параметр задает смешение в минутах, которое добавляется к времени по Гринвичу (GMT), перед нормальной процедурой определения местного времени. Это устаревший параметр, предназначенный для работы со старыми клиентами, которые не могут нормально обрабатывать летнее время (daylight savings time, DST).
Значение по умолчанию - ноль (смещение не используется):

Time offset = 0

Если в вашей сети есть клиенты, не поддерживающее летнее время, вы можете установить:

Time offset = 60

Параметр wide links

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

Значение по умолчанию позволяет клиентам переходить по любым ссылкам:

Wide links = Yes

Для того чтобы отключить эту возможность задайте:

Wide links = No

Параметр follow symlinks

Параметр определяет, будет ли демон smbd позволять клиентам переходить по символическим ссылкам. Если он установлен в значение no то пользователи будут получать сообщение об ошибке при попытке осуществить доступ к файлу или каталогу, являющемуся символической ссылкой. При этом пользователи не смогут не только следовать символическим ссыпкам, но и создавать их. Такая настройка может улучшить безопасность системы (например, иначе пользователь может в своем домашнем каталог создать ссылки на важные системные файлы) Значение по умолчанию разрешает клиентам следовать символическим ссылкам:

Follow symlinks - Yes

Follow symlinks = No

Параметр delete readonly

Параметр определяет, могут ли быть удалены файлы с DOS атрибутом "только для чтения" Значение yes позволяет режимам доступа ЗОС "Феникс" иметь приоритет над DOS-режимами доступа, что полезно, например, для таких приложений, как система управления версиями (RCS). Может сложиться ситуация, в которой UNIX-режим доступа запрещает изменять режим доступа к файлу, а DOS-режим запрещает удалять данный файл.

Delete readonly = No

Delete readonly = Yes



DOS filetime resolution = No

Этот параметр позволяет Samba "придумывать" время создания каталогов для обеспечения совместимости языков программирования Microsoft Visual с разделяемыми ресурсами Samba. Даже наиболее новые файловые системы, такие как NTFS и Windows VFAT, сохраняют время создания, не совпадающее с используемой в UNIX меткой времени ctime (временем изменения состояния). По умолчанию Samba сообщает клиентам самое раннее время из всех меток времени, поддерживаемых UNIX. Это может привести к тому, что компилятор будет перестраивать объекты, которые не изменились. Установка параметра fake directory create times в значение yes приведет к тому, что Samba всегда будет сообщать полночь первого января 1980 года как время создания каталога.
По умолчанию Samba сообщает клиентам метку времени создания, используемую в UNIX:

Параметр panic action

Этот параметр предназначен для использования разработчиками Samba. Он определяет команду, которая должна быть вызвана при сбое smbd или nmbd, уведомив разработчика, что сделанные изменения в коде Samba не работают, как предполагалось.
Значение по умолчанию - пустая строка:

3. РАЗДЕЛЯЕМЫЕ РЕСУРСЫ

В этом разделе описываются все параметры для ресурса.

Основные параметры (Base options)

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

Параметр comment

Параметр задаст текст, который будет виден на клиентах в качестве комментария для данного разделяемого ресурса.
Значение по умолчанию - пустая строка (комментарий не задан):

comment =

Ниже приведен пример установленного комментария для ресурса:

Comment = Наш сервер

Параметр path

Параметр определяет каталог, который будет являться разделяемым. Если вы настраиваете службу печати, а не разделяемый файловый ресурс, то здесь должен быть указан каталог-накопитель. Путь указывается от корневого каталога, определяемого среди глобальных параметров в разделе, посвященном настройкам безопасности.
В значении параметра могут использоваться стандартные переменные подстановки; для этого параметра из них особенно полезны следующие две:
- %u Имя учетной записи ЗОС "Феникс", с правами которой произведено подключение;
- %m NetBIOS-имя системы.
Значение по умолчанию - пустая строка. Если вы установили в качестве корневого каталога корневой каталог операционной системы (каталог /), то пустая строка обозначает этот каталог:

Если в качестве корневого каталога задан каталог /opt/samba и вы установили:

Path = /printer/spoolfiles

то служба будет использовать каталог /opt/samba/printer/spoolfiles.

Параметры безопасности (Security options)

В этом разделе вы определяете права доступа для пользователей. Также вы можете здесь определить гостевой доступ к ресурсу.

Параметр revalidate

Этот параметр работает только при использовании безопасности на уровне ресурсов (security = share). Он определяет, будет ли Samba позволять использовать ранее проверенную пару имя/пароль для подключения к новому ресурсу. По умолчанию разрешается подключение без проведения повторной проверки. Если вы установите параметр в значение yes, затем подключитесь к ресурсу \\sugar\lesh и, наконец, попытаетесь произвести подключение к \\sugar\hart, Samba не разрешит клиенту автоматического подключения, несмотря на то, что клиент отправит то же самое имя пользователя, что и ранее. Значение по умолчанию:

Revalidate = No

Чтобы включить обязательную проверку пароля при подключении к каждому новому ресурсу, используйте:

Revalidate = Yes

Параметр username

Еще один параметр для работы с устаревшими клиентами на базе DOS и Windows for Workgroups. При использовании этого параметра ухудшаются безопасность системы и ее производительность. Значением параметра должен являться список имен пользователей, отделенных друг от друга запятыми. Имейте в виду, что параметр не накладывает ограничений на то, какие пользователи могут подключиться. Он лишь указывает Samba-серверу, каким именам пользователей может соответствовать пароль. Пароль, переданный клиентом, проверяется па соответствие каждому из этих имен по очереди.
Значение по умолчанию - пустая строка (нет пользователей):

Параметр guest account

Этот параметр задает имя пользователя, используемое для доступа к публичным ресурсам (см. guest ok). Привилегии этою пользователя получают любые клиенты, подключающиеся к публично доступным ресурсам. Указанный в качестве значения параметра пользователь не должен иметь возможность нормально войти в систему.
Значение по умолчанию задается при компиляции; обычно это nobody:

Guest account = nobody

Для того чтобы использовать в качестве гостевой учетной записи ftp, поменяйте эту строку на следующую:

Guest account = ftp

Параметр invalid users

Значением параметра является список пользователей, которым запрещен доступ к системе. Хорошей идеей будет установить

invalid users = administrator, если вы не нуждаетесь в кросс-платформенном администрировании.
По умолчанию пользователей, которым запрещен доступ, нет. Значение параметра - пустая строка:

Invalid users =

Чтобы запретить доступ администраторам NT-системы, используйте:

Invalid users =administrator admin

Параметр valid users

Значением параметра является список пользователей, которым разрешен доступ к системе. Параметр не является обязательным. По умолчанию его значением является пустая строка, что означает, что доступ разрешен всем. Если пользователь указан одновременно и в списке valid users, и в списке invalid users, то доступ для него запрещен.
По умолчанию значением параметра является пустая строка, то есть всем пользователям разрешен доступ к системе:

Для того чтобы разрешить доступ к системе только пользователю phil, используйте:

Valid users = phil

Параметр admin users

Значением параметра является список пользователей, имеющих административные привилегии для ресурсов. Указанные пользователи могут работать с файлами на разделяемых ресурсах с правами пользователя root. Это еще один параметр, который не следует использовать.
По умолчанию значением параметра является пустая строка (нет пользователей с полномочиями администратора):

Для того чтобы наделить пользователя georgeh полномочиями администратора, используйте:

Admin users = georgeh

Параметр read list

Параметр представляет собой список пользователей, доступ к ресурсам которым предоставляется в режиме "только для чтения".
Значение по умолчанию - пустая строка (ни один пользователь не ограничен в доступе):

Для того чтобы разрешить для пользователей phil и cheese доступ исключительно в режиме "только для чтения", используйте:

Read list = phil, cheese

Параметр write list

Параметр представляет собой список пользователей, которым предоставляется доступ к ресурсам в режиме "чтение и запись", даже если ресурс помечен как "только для чтения". Если пользователь входит одновременно в списки read list и write list, то он получает доступ в режиме "чтение и запись".
Значение по умолчанию - пустая строка (ни один пользователь не получает доступа па запись к ресурсам "только для чтения"):

Для того чтобы разрешить для пользователей admin и root доступ в режиме "чтение и запись" к ресурсам, помеченным как "только для чтения", используйте:

Write list = admin, root

Параметр force user

Параметр задает имя учетной записи UNIX, с правами которой пользователь подключается к ресурсу. Samba устанавливает права заданной учетной записи после того, как будет установлено соединение, то есть клиентам все равно нужно указать правильные имя пользователя и пароль. Все операции с файлами, выполненные после подключения, будут считаться выполненными пользователем, которому соответствует определенная параметром учетная запись. Как следует все обдумайте, если вы хотите использовать этот параметр.
Значение по умолчанию - пустая строка (пользователи работают с ресурсом от своего имени):

Например, чтобы все операции на данном разделяемом ресурсе выполнялись с правами учетной записи cheese, установите:

Force user = cheese.

Параметр read-only

Параметр определяет, является ли режим доступа к ресурсу режимом "только для чтения". Вы должны установить его в значение no, если хотите сделать ресурс доступным для записи.
Значение по умолчанию не разрешает запись:

Read-only = Yes

Для того чтобы сделать ресурс доступным для записи, установите:

Параметр guest only

Параметр не будет работать, если в разделе глобальных параметров не разрешен гостевой доступ или если следующий параметр (guest ok) установлен в значение no. Установка параметра guest only в значение no не запрещает гостевой доступ к ресурсу.
По умолчанию к ресурсу разрешается не только гостевой доступ:

Guest only = No

Для того чтобы разрешить к данному ресурсу только гостевой доступ, задайте:

Guest only = Yes

Параметр guest ok

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

Чтобы разрешить гостевой доступ к ресурсу, установите:

Параметр only user

Параметр определяет, разрешен ли доступ к ресурсу пользователям, не перечисленным в значении параметра user.
Значение по умолчанию:

Для того чтобы разрешить доступ к ресурсу только пользователям, указанным в значении параметра user, задайте:

Only user = Yes

Параметр hosts allow

Значением этого параметра является список узлов, которым разрешен доступ к службе. В качестве разделителей могут использоваться запятая, пробел и символ табуляции. Если параметр задан в разделе Globals, то он относится ко всем разделяемым ресурсам; более того, если для конкретного ресурса запрещен доступ для одного из узлов, указанных в списке hosts allow в разделе Globals, то доступ все равно разрешается. Узлы в списке можно задавать при помощи имени, IP-адреса или пары IP-адрес-маска подсети. Вы также можете указывать в списке сетевые группы, если ваша система поддерживает их. При использовании символа подстановки *. Для того чтобы задать исключения, допустимо применять также ключевое слово except.
Если вы используете параметр hosts allow, то вы должны включить в список узлов, которым разрешен доступ, локальный узел - localhost. Samba требуется доступ к локальному интерфейсу, чтобы работать так, как вы этого ожидаете.
В следующем примере доступ к Samba разрешен для локального узла и всех узлов с IP-адресами 192.168.*.*:

Hosts allow - localhost, 192 168 * *

Чтобы разрешить доступ локальному узлу и узлам из указанной подсети, используйте:

Hosts allow = localhost. 192.168.99.0/255.255.255.0

Чтобы разрешить доступ локальному узлу и двум системам с заданными именами:

Hosts allow - localhost, terrapin deal

Чтобы разрешить доступ локальному узлу и подсети с одним исключением:

Hosts allow = localhost, 192.168.99.0/255.255.255.0 except 192.168.99.222

Значение по умолчанию - пустая строка (доступ разрешен всем узлам):

Параметр hosts deny

Этот параметр играет обратную hosts allow роль. Узлам из заданного при его помощи списка будет запрещен доступ к Samba. Даже если для какого-то ресурса указано, что доступ для конкретного узла разрешен, при наличии этого узла в списке hosts deny в разделе Globals доступ будет запрещен.
Значение по умолчанию - пустая строка (доступ разрешен всем узлам):

Ниже приведен пример, запрещающий доступ для всей подсети 192.168.111.*:

Hosts deny = 192.168.111.*

Параметры журналирования (Logging options)

Этот раздел содержит в настоящее время только один параметр.

Параметр status

Вы не должны изменять этот параметр. Если вы установите его в значение no, программа smbstatus не сможет определить, какие соединения активны. Значение по умолчанию:

Пример изменения значения этого параметра (smbstatus не сможет определять активные соединения!):

Дополнительная настройка (Tuning options)

Раздел содержит несколько параметров настройки разделяемых ресурсов, которые могут повлиять на производительность вашего Samba-сервера. Правильная настройка этих параметров может увеличить производительность, а неправильная - уменьшить.

Параметр max connections

Параметр задает максимальное разрешенное количество одновременных подключений к ресурсу. Значение по умолчанию (ноль) указывает, что количество одновременных подключений не ограничено. Любое другое значение приведет к тому, что клиентам будет отказано в подключении к ресурсу, если число уже открытых соединений совпадает с данным значением. Для реализации этой возможности Samba использует файлы блокировки. Они располагаются в каталоге, заданном параметром lock directory.
Значение по умолчанию не ограничивает количество одновременных подключений к ресурсу:

Max connections = 0

Для того чтобы установить максимальное разрешенное количество одновременных подключений в 100, укажите:

Max connections = 100

Параметр strict sync

Используйте этот параметр для сглаживания различий между тем, как Windows-клиенты смотрят на sync, и тем, как это делает ЗОС "Феникс". В ЗОС "Феникс" при записи буферов на жесткий диск работающий процесс останавливается до тех пор, пока содержимое буферов не будет записано. Это очень медленный метод. Использование этого метода было необходимо для того, чтобы быть уверенным в сохранности данных.
По умолчанию smbd игнорирует запросы на sync от приложений, работающих на Windows-клиентах. Это означает, что при отказе сервера имеется опасность потерять данные. На самом деле, на ЗОС "Феникс" шансы на это очень малы. Кроме того, такое поведение smbd позволяет справиться с проблемами производительности, возникающими при копировании файлов в Windows 98.
По умолчанию значение параметра strict sync - no, что запрещает smbd производить запись буферов на диск при получении запроса от клиента:

Strict sync = no

Установка этого параметра в значение yes уменьшит производительность. Используйте только при поиске неисправностей:

Strict sync = yes

Параметр sync always

Этот параметр игнорируется, если strict sync установлен в значение no. В противном случае параметр определяет, должен ли перед тем, как сервер сообщит о выполнении запроса на запись, закончиться процесс записи на диск. Если вы установите параметр в значение yes, то после выполнения каждого запроса на запись (но до того, как о выполнении будет сообщено клиенту) производится системный вызов fsync(), записывающий содержимое буферов на диск.
Значение по умолчанию:

Sync always = no

Чтобы форсировать запись на диск (параметр strict sync должен быть установлен в значение yes), используйте:

Sync always = yes

Имена файлов (File handling)

Данный раздел содержит параметры, определяющие, как Samba-сервер обрабатывает имена файлов и как он показывает эти имена пользователям, подключающимся к ресурсу с различных клиентов. Также некоторые параметры позволяют вам скрыть определенные файлы от пользователей.

Параметр default case

Параметр задает используемый по умолчанию регистр символов для всех файлов и каталогов, создаваемых клиентами на Samba-сервере. Значение этого параметра влияет на работу параметров mangle case, preserve case и short preserve case.
По умолчанию в именах файлов и каталогов, создаваемых клиентами на Samba-сервере, используются символы в нижнем регистре:

Default case = lower

Для того чтобы использовать верхний регистр, установите:

Default case = upper

Параметр case sensitive

Этот параметр определяет, имеет ли значение регистр символов в именах файлов (по умолчанию - нет). Если параметр установлен в значение nо, то Samba производит поиск имени файла независимо от регистра символов. Значение по умолчанию:

Case sensitive = No

Для того чтобы различать имена с разным регистром символов, укажите:

Case sensitive = Yes

Параметр preserve case

Параметр определяет, сохраняется ли регистр символов в новых именах файлов, полученных от клиента. Если вы установите параметр в значение по, то регистр символов в именах файлов будет приведен к регистру, используемому по умолчанию.
Значение по умолчанию:

Preserve case = Yes

Для того чтобы разрешить автоматически приводить новые имена файлов к используемому по умолчанию регистру, установите:

Preserve case = No

Параметр short preserve case

Параметр указывает, должны ли сохраняться новые имена файлов в верхнем регистре и небольшой длины или же они должны быть приведены к используемому по умолчанию регистру. Параметр имеет смысл, если параметр preserve case установлен в значение yes.
Значение по умолчанию:

Short preserve case = Yes

Для того чтобы не сохранять регистр символов в коротких именах, укажите:

Short preserve case = No

Параметр mangle case

Параметр определяет, изменяются ли (are mangled) имена, содержащие символы не в регистре по умолчанию. Например, если параметр установлен в значение yes, то такие имена, как Mail, будут изменяться. Значение по умолчанию:

Mangle case = No

Значение yes повлияет только на имена файлов, содержащих символы в верхнем регистре. Например, имя FranklinsTower.txt будет приведено к регистру по умолчанию.
Для того чтобы включить преобразование, задайте:

Mangle case = yes

Параметр mangling char

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

Mangling char = ~

Например, для того, чтобы использовать символ подчеркивания, укажите:

Mangling char = _

Параметр hide dot files

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

Hide dot files = Yes

Для того чтобы показывать в каталогах файлы, начинающиеся с точки, установите:

Hide dot files = No

Параметр delete veto files

Параметр определяет, что происходит, когда Samba попытается удалить каталог, который содержит один или несколько защищенных каталогов (vetoed directories). По умолчанию используется значение по, то есть удаление каталога закончится неуспехом, если защищенный каталог содержит обычные файлы или каталоги. Скорее всего, именно такие установки вам нужны.
Значение yes приводит к тому, что Samba попытается рекурсивно удалить все файлы и подкаталоги защищенного каталога. Это означает, что при удалении родительского каталога все такие каталоги будут удалены прозрачно для пользователя. Пользователь, выполняющий удаление каталога, должен иметь соответствующие права доступа или же удаление закончится неуспехом вне зависимости от значения параметра delete veto files.
Значение по умолчанию:

Delete veto files = No

Для того чтобы изменить значение параметра, установите:

Delete veto files = Yes

Параметр veto files

Значением данного параметра является список файлов и каталогов, которые не являются ни видимыми, ни доступными для клиентов. Однако имейте в виду, что если каталог содержит только файлы, входящие в данный список, он будет удален вместе со всеми файлами, если пользователь имеет соответствующие права доступа. Кроме того, параметр case sensitive влияет на интерпретацию значения параметра veto files.
Параметр veto files влияет на производительность Samba-сервера. Если параметр установлен, то сервер должен проверять все файлы и каталоги на соответствие указанному списку.
Значение по умолчанию - пустая строка (нет защищенных файлов и каталогов).
Если вы хотите задать непустой список, то для разделения имен в этом списке применяется символ /, что позволяет указывать имена, содержащие пробелы. В списке допустимо использовать символы подстановки * и?. Каждый элемент списка должен быть именем файла, но не может включать в себя символ /.
Например, чтобы скрыть от пользователей все файлы, заканчивающиеся на.tmp, а также файлы, содержащие строку root, задайте:

Veto files = /* tmp/*root*/

Параметр hide files

Значением параметра является список файлов и каталогов, которые невидимы, но доступны для клиентов. Для каждого из файлов пли каталогов, соответствующих указанному списку, выставляется DOS-атрибут "скрытый файл" (hidden file). Для разделения имен в этом списке применяется символ /, что позволяет указывать имена, содержащие пробелы. В списке допустимо использовать символы подстановки * и?. Каждый элемент списка должен быть именем -файла, но не может включать в себя символ /.
Параметр hide files влияет на производительность Samba-сервера. Если параметр установлен, то сервер должен проверять все файлы и каталоги на соответствие указанному списку.
Значение по умолчанию - пустая строка, то есть ни для каких файлов или каталогов не выставляется атрибут "скрытый файл".
Для того чтобы сделать скрытыми все файлы, закапчивающиеся на.log, установите:

Hide files = /* log/

Параметр veto oplock files

Параметр может применяться только в том случае, если для разделяемого ресурса установлен параметр oplocks. Данный параметр позволяет администратору Samba выборочно отключить своевременную блокировку (oplocks) для файлов. Формат списка такой же, как и для параметра veto files. Параметр полезен в том случае, если определенные файлы активно используются несколькими различными клиентами.
Значение по умолчанию - пустая строка, то есть своевременная блокировка разрешена для всех файлов.
Для того чтобы запретить механизм oplocks для всех файлов вида *.cookie, укажите:

Veto oplock files = /* cookie/

Параметр mangled names

Параметр определяет, как клиенты будут видеть файлы ЗОС "Феникс". Либо файлы, имеющие несовместимые с DOS имена не будут показываться пользователям, либо их имена будут отображаться в имена, совместимые с DOS. Всего имеется пять параметров, которые управляют процессом отображения имен. Данный параметр определяет, будет ли отображение имен вообще происходить.
Отображение имен позволяет клиентам работать с файлами (например, скопировать файл из одною каталога системы в другой) сохраняя при этом их исходные длинные имена.
Если у вас включено отображение имен для разделяемого каталога, то два файла с одинаковыми первыми пятью символами в имени могут получить одинаковое имя после отображения, вызвав проблемы. Шанс того, что эта неприятность случится - 1 из 1300. Значение по умолчанию:

Mangled names = Yes

Для того чтобы отключить отображение имен, задайте:

Mangled names - No

Параметр mangled map

Данный параметр позволяет непосредственно задать карту отображения имен, не совместимых с DOS/Windows. Если вы не хотите использовать отображение имен для всех файлов, этот параметр весьма полезен.
Приведем один пример, описывающий часто встречающуюся ситуацию. В UNIX-системах для HTML-файлов обычно используется расширение.html, в то время как в Windows/DOS - расширение. htm. Обсуждаемый параметр позволяет отображать UNIX-расширение.html в Windows-расширение.htm.
Значение по умолчанию:

Для того чтобы отображать html в htm:

Mangled map = (* html * htm)

Параметры просмотра (Browse options)

Данный раздел в настоящее время содержит только один параметр.

Параметр browseable

Этот параметр определяет, будет ли разделяемый ресурс видим в списке доступных ресурсов при просмотре сети. Данный параметр не делает ресурс недоступным - только невидимым. По умолчанию все разделяемые ресурсы доступны для просмотра.
Значение по умолчанию:

Browseable = Yes

Для того чтобы исключить ресурс из списка просмотра сети, задайте:

Browseable = No

Параметры блокировки (Locking options)

В этом разделе вы можете задать параметры блокировки файлов. Правильное использование этих параметров позволит улучшить производительность сервера.

Параметр blocking locks

Параметр определяет, может ли smbd по запросу клиента блокировать определенную часть открытого файла. Такой запрос также содержит продолжительность запрашиваемой блокировки. Если параметр установлен в значение yes и указанная область файла не может быть блокирована, Samba, ставит запрос на блокировку во внутреннюю очередь, после чего периодически, до наступления тайм-аута, пытается выполнить его. Если параметр установлен в значение по, то клиенту немедленно сообщается о невозможности выполнить блокировку. Если вы используете данный параметр, он должен устанавливаться индивидуально для каждого разделяемого ресурса.
По умолчанию Samba будет поддерживать запросы на блокировку части файла:

Blocking locks = Yes

Для того чтобы отключить этот параметр, задайте:

Blocking locks = No

Параметр fake oplocks

Вы можете использовать механизм fake oplocks для файловых систем, доступных клиентам только для чтения, или для разделяемых ресурсов, доступных ровно одному клиенту. Использование fake oplocks для ресурсов, запись в которые производится несколькими клиентами, может привести к порче данных.
Суть fake oplocks в том, что клиенту сообщается, что механизм oplocks поддерживается, что на самом деле не так. Понятно, что если ресурс доступен только для чтения, то ничего страшного не произойдет, хотя и выигрыша в производительности тоже не будет. Если ресурс доступен только одному клиенту, то использование fake oplocks безопасно и может привести к определенному выигрышу в производительности.
По умолчанию механизм fake oplocks отключен:

Fake oplocks = No

Чтобы включить его, используйте:

Fake oplocks - Yes

Параметр locking

Этот параметр определяет, будет ли сервер производить блокировку файлов по запросам клиентов, и предназначен для использования разработчиками. Не изменяйте значение этого параметра. Установка его в значение no приведет к тому, что все запросы на блокирование и разблокирование файлов будут казаться клиентам успешно выполненными, однако на самом деле никакая блокировка производиться не будет. Если вы запретите блокировку или в разделе глобальных параметров, или для определенного разделяемого ресурса, это приведет к повреждению данных.
Значение по умолчанию:

Параметр oplocks

Параметр определяет, будет ли smbd использовать механизм своевременной блокировки (oplocks) при получении запросов на открытие файлов на разделяемых ресурсах. Использование этого механизма может увеличить скорость доступа к файлам на Samba-сервере, поскольку он позволяет клиентам локально кэшировать файлы. Сервера Windows NT по умолчанию используют этот механизм. Механизм своевременной блокировки может быть отключен для определенных файлов, расположенных на определенных разделяемых ресурсах, - для этого применяется параметр veto oplock files.
Значение по умолчанию:

Для того чтобы отключить механизм своевременного блокирования, установите:

Параметр strict locking

Параметр определяет, как сервер обрабатывает блокировку файлов. Если он установлен в значение yes, то сервер при каждой попытке чтения или записи проверяет существование блокировки для файла и не разрешает доступ, если файл заблокирован. Если параметр установлен в значение no, то сервер проверяет наличие блокировки для файла только по запросу клиента. Именно так сервер ведет себя по умолчанию, поскольку такой метод обеспечивает лучшую производительность.
Значение по умолчанию:

Strict locking = No

Для того чтобы включить проверку блокировки при каждой операции чтения/записи, задайте:

Strict locking = Yes

Параметр share modes

Параметр определяет, какие режимы доступа используются при открытии файла. Клиент может запросить режим доступа, который подразумевает эксклюзивное право на чтение или на запись. Если вы установите параметр share modes в значение no, то в этом случае Windows-приложению не удастся открыть файл.
Значение по умолчанию - yes, что обеспечивает полную совместимость разделяемых ресурсов с приложениями Windows:

Share modes = Yes

Нет никакого смысла изменять это значение.

Прочие параметры (Miscellaneous Options)

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

Параметр available

Параметр определяет, является ли данный разделяемый ресурс доступным пользователям. Если вы установите его в значение no, то все попытки подключения к ресурсу будут заканчиваться неудачей (а также будут записываться в файл журнала). По умолчанию ресурс доступен для пользователей:

Available = Yes

Для того чтобы отключить ресурс, задайте:

Параметр volume

Параметр определяет метку тома для разделяемого ресурса. Он может быть полезен при использовании в качестве разделяемого ресурса CD-ROM на Samba-сервере, если Windows- или DOS-программы инсталляции требуют определенной метки тома.
Значение по умолчанию - имя ресурса.
Для того чтобы установить в качестве метки тома, например CD_WIN, задайте:

Volume = CD_WIN

Параметр fstype

Параметр задает тип файловой системы, который Samba-сервер сообщает клиентам для данного разделяемого ресурса. Он не влияет на тип используемой файловой системы.
Значение по умолчанию - NTFS, для обеспечения совместимости с Windows NT:

Для того чтобы Samba-сервер сообщал клиентам, что ресурс использует файловую систему FAT, укажите:

Параметр set directory

Параметр используется при работе с клиентами Digital Pathworks. Он указывает, может ли клиент использовать команду setdir для смены каталогов.
Значение по умолчанию - no, поскольку большая часть клиентов не является клиентами Digital Pathworks:

Set directory = No

Для того чтобы включить совместимость с клиентами Digital Pathworks, установите:

Set directory = Yes

Параметр wide links

Параметр определяет, позволит ли Samba клиентам следовать ссылкам в файловой системе ЗОС "Феникс", ведущим в области, не входящие в экспортируемые каталоги. Он предназначен для системных администраторов, страдающих паранойей. Если режимы доступа в вашей системе установлены правильно, установка этого параметра в значение yes не ухудшит безопасность системы.
Значение по умолчанию позволяет клиентам переходить по любым ссылкам:

Wide links = Yes

Для того чтобы отключить эту возможность, задайте:

Wide links = No

Параметр follow symlinks

Параметр определяет, будет ли smbd позволять клиентам переходить по символическим ссылкам. Если он установлен в значение no, то пользователи будут получать сообщение об ошибке при попытке осуществить доступ к файлу или каталогу, являющемуся символической ссылкой. При этом пользователи не смогут не только следовать символическим ссылкам, но и создавать их. Такая настройка может улучшить безопасность системы (например, иначе пользователь может в своем домашнем каталоге создать ссылки на важные системные файлы).
Значение по умолчанию разрешает клиентам следовать символическим ссылкам:

Follow symlinks = Yes

Для того чтобы запретить клиентам переходить по ссылкам, установите:

Follow symlinks = No

Параметр dont descend

Параметр задает список каталогов, которые будут казаться клиентам пустыми.
Этот параметр предназначен для удобства, а не для обеспечения безопасности. Он влияет на список каталогов, но не на доступ к ним. Если пользователь имеет соответствующие права доступа, он сможет записывать или удалять файлы в указанных каталогах. Вы можете указать несколько каталогов, разделяя их запятыми.
Значение по умолчанию - пустая строка (показываются все каталоги):

Для того чтобы клиенты видели каталоги /dev и /ргос пустыми, укажите:

Dont descend = /proc,/dev

Параметр delete readonly

Параметр определяет, могут ли быть удалены файлы с DOS-атрибутом "только для чтения". Значение yes позволяет режимам доступа ЗОС "Феникс" иметь приоритет над DOS-режимами доступа, что полезно, например, для таких приложений, как система управления версиями (RCS). Может сложиться ситуация, в которой режим доступа ЗОС "Феникс" запрещает изменять режим доступа к файлу, а DOS-режим запрещает удалять данный файл.
Значение по умолчанию - no, что не разрешает удаление файлов с атрибутом "только для чтения":

Delete readonly = no

Для того чтобы разрешить удаление файлов с атрибутом "только для чтения", задайте:

Delete readonly = Yes

Параметр DOS filetime resolution

Этот параметр применяется для устранения проблем, которые возникают при использовании файловой системы DOS/Windows FAT. Наилучшее разрешение, которое может использовать FAT для метки времени - 2 секунды. Это может вызвать проблемы совместимости при использовании некоторых программных продуктов (например, серии языков программирования Microsoft Visual) с разделяемыми ресурсами на Samba-сервере. Проблема возникает в том случае, когда для разделяемого ресурса разрешен механизм своевременного блокирования (см. параметр oplocks в разделе "Параметры блокировки"). При этом программный продукт, такой как один из языков программирования Microsoft Visual, использует два различных вызова для чтения метки времени, чтобы проверить, был ли файл изменен с момента последнего его чтения. Первый из этих вызовов использует разрешение в одну секунду, второй - разрешение в две секунды, и округляет нечетное число секунд до меньшего четного. Поэтому если файл имеет метку времени, содержащую нечетное число секунд, результаты двух вызовов окажутся различными, и метки времени будут казаться несовпадающими. В результате программный продукт сообщит, что файл был изменен.
Если для разделяемого ресурса параметр DOS filetime resolution установлен в значение yes, то Samba будет округлять метку времени до меньшего четного числа секунд. В этом случае продукты Microsoft Visual остаются счастливы и правильно сообщают время создания файла.
Значение по умолчанию - no (время создания файла не округляется):

DOS filetime resolution = No

Для того чтобы Samba округляла время создания файла, дурача такие продукты, как языки программирования Microsoft Visual, задайте:

DOS filetime resolution = Yes

Параметр fake directory create times

Эот параметр позволяет Samba "придумывать" время создания каталогов для обеспечения совместимости языков программирования Microsoft Visual с разделяемыми ресурсами Samba. Даже наиболее новые файловые системы, такие как NTFS и Windows VFAT, сохраняют время создания, не совпадающее с используемой в ЗОС "Феникс" меткой времени ctime (временем изменения состояния). По умолчанию Samba сообщает клиентами самое раннее время из всех меток времени, поддерживаемых ЗОС "Феникс". Это может привести к тому, что компилятор будет перестраивать объекты, которые не изменились. Установка параметра fake directory create times в значение yes приведет к тому, что Samba всегда будет сообщать полночь первого января 1980 года как время создания каталога.
По умолчанию Samba сообщает клиентам метку времени создания, используемую в ЗОС "Феникс":

Fake directory create times = No

Для того чтобы Samba сообщала клиентам время создания, совместимое с компиляторами Microsoft Visual, укажите:

Fake directory create times = Yes

Samba - это программа, которая позволяет компьютерам UNIX/Linux имитировать машины Windows. При помощи Samba компьютеры могут обмениваться файлами или управлять заданиями на печать как файл-серверы или серверы печати под Windows. Подобно операционной системе UNIX/Linux, на которой она работает, Samba представляет собой разработанное множеством программистов ПО с открытым исходным кодом.

Протокол SMB используется Microsoft Windows 2000, NT и 95/98 для организации доступа к дискам и принтерам. Используя набор утилит Samba от Andrew Tridgell ([email protected]), UNIX-машины (включая Linux) могут организовывать доступ к дискам и принтерам для Windows-машин. Утилиты smbfs, написанные Paal-Kr. Engstad ([email protected]) и Volker Lendecke ([email protected]), дают возможность машинам с UNIX монтировать SMB-ресурсы, доступные на машинах с Windows или Samba.

C помощью Samba можно реализовать следующие наиболее распространенные:

  1. Давать доступ к дискам Linux Windows-машинам.
  2. Получать доступ к дискам Windows для машин под Linux.
  3. Давать доступ к принтерам Linux для Windows-машин.
  4. Получать доступ к принтерам Windows из Linux-систем.

Инсталляция и тестирование Samba

Инсталляцию, как известно, следует начинать с подробного изучения документации. Правда, большинство системных администраторов пренебрегают этим правилом, руководствуясь другим: «Если уже ничего не помогает, почитайте документацию». В общем, советуем начать инсталляцию Samba с простой команды: $ man samba (рис. 1).

А также c чтения документации, доступной на сайте http://www.samba.org/ . Следует отметить, что для использования Samba ваша машина должна находиться в одиночном Ethernet-сегменте локальной сети, при этом используя протокол TCP/IP. Samba не будет работать при использовании других сетевых протоколов. Это, в принципе, легко, поскольку Linux и Windows 95/98/NT поставляются с поддержкой TCP/IP. Однако если вы используете машины с Windows 3.x, то вам необходимо добавить поддержку TCP/IP.

Где взять

Для того чтобы получить исходные тексты последней версии Samba, свяжитесь с сайтом http://www.samba.org/ и выберите ближайший к вам сервер-зеркало: ftp://ftp.samba.org/. Пакет Samba входит в состав дистрибутивов ряда UNIX/Linux-систем, например Rad Hat или Suse Linux. Внимательно изучите документацию вашего Linux, и, вполне возможно, что вам будет достаточно только вставить CD и инсталлировать пакеты Samba. В этом случае вы можете продолжать чтение статьи со следующей главы.

После получения данного пакета извлекаем все то, что находится под «грифом» *.tar.gz, например, в директорию /tmp (причем для этого не обязательно быть root"ом:), то есть:

$ tar -zxvf samba-latest.tar.gz

Если у вас не возникло никаких проблем при извлечении данного пакета, вы обнаружите новую директорию, например samba-latest, и в ней извлеченные файлы. Перейдите в нее, загляните в файлы «README» и «Manifest» - инструкция по инсталляции находится в последнем файле и выглядит примерно так:

$ ./configure $ make $ su # make install

Теперь надо обратить внимание на то, где находятся ваши файлы конфигурации. Большинство дистрибутивов Samba по умолчанию помещает их в директорию /etc, а себя - в директорию /usr/local/samba.

Конфигурирование Samba

Основная информация о конфигурации Samba находится в файле smb.conf. С этим файлом следует обращаться осторожно. Если вы планируете каким-либо образом изменить работающую версию, обязательно сделайте копию.

Для того чтобы первый раз запустить сервер, необходимо иметь рабочую версию файла smb.conf. Перейдите в директорию, в которой должен находиться ваш конфигурационный файл. Скорее всего это будет /etc или /usr/local/samba/lib. Сделайте копию данного файла, например smb.old, - это возможно при наличии прав root. Теперь, когда у вас есть «чистый» файл, можно ввести самую простую конфигурацию, то есть набрать следующие строки:

#Basic Samba configuration file (smb.conf) workgroup = PTO netbios name = GALKA

Ниже мы разберемся, что означают эти строки в файле конфигурации, но сначала временно отвлечемся от него и перейдем к демонам SMB.

Запуск демонов

Имеется два демона SMB: /usr/sbin/smbd и /usr/sbin/nmbd. Вы можете запустить демоны Samba из inetd или как автономный процесс. Samba будет отвечать чуть быстрее в случае, если она запущена как автономный процесс.

Иногда бывает необходимо проверить наличие в файле /etc/services примерно таких строк:

Netbios-ns 137/tcp nbns netbios-ns 137/udp nbns netbios-dgm 138/tcp nbdgm netbios-dgm 138/udp nbdgm netbios-ssn 139/tcp nbssn

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

Для запуска демонов из inetd поместите следующие строки в конфигурационный файл inetd, /etc/inetd.conf:

# SAMBA NetBIOS services (for PC file and print sharing) netbios-ssn stream tcp nowait root /usr/sbin/smbd smbd netbios-ns dgram udp wait root /usr/sbin/nmbd nmbd

Затем перезапустите демон inetd, выполнив команду:

Kill -HUP 1 `cat /var/run/inetd.pid`

Для запуска демонов из системных стартовых скриптов поместите следующий скрипт в файл /etc/rc.d/init.d/smb (для дистрибутива RedHat) или /etc/rc.d (для дистрибутива Suse Linux) и создайте на него символические ссылки с именами вида /etc/rc.d/rcX.d/S91smb (запускает сервисы SMB в многопользовательском режиме), /etc/rc.d/rcX.d/K91smb (убивает сервисы SMB при выключении), /etc/rc.d/rc6.d/K91smb (убивает сервисы SMB при перезагрузке), где X - номер загрузочного уровня системы, обычно это цифра 2 или 3.

#! /bin/sh . /etc/rc.config # Determine the base and follow a runlevel link name. base=${0##*/} link=${base#*} # Force execution if not called by a runlevel directory. test $link = $base && START_SMB=yes test "$START_SMB" = "yes" || exit 0 # The echo return value for success (defined in /etc/rc.config). return=$rc_done case "$1" in start) echo -n "Starting SMB services:" startproc /usr/sbin/nmbd -D || return=$rc_failed startproc /usr/sbin/smbd -D || return=$rc_failed echo -e "$return" ;; startd) echo -n "Starting SMB services:" startproc /usr/sbin/nmbd -D -d 10 || return=$rc_failed startproc /usr/sbin/smbd -D -d 10 || return=$rc_failed echo -e "$return" ;; stop) echo -n "Shutting down SMB services:" killproc -TERM /usr/sbin/nmbd || return=$rc_failed killproc -TERM /usr/sbin/smbd || return=$rc_failed echo -e "$return" ;; restart|reload) $0 stop && $0 start || return=$rc_failed ;; status) echo -n "Checking for service smb: " checkproc /usr/sbin/nmbd && echo -n "OK " || echo -n "No process " checkproc /usr/sbin/smbd && echo "OK " || echo "No process" ;; *) echo "Usage: $0 {start|stop|restart|reload|status}" exit 1 esac # Inform the caller not only verbosely and set an exit status. test "$return" = "$rc_done" || exit 1 exit 0

Если при старте Samba вы получаете сообщение, в котором говорится, что демон не может подключиться к порту 139, то скорее всего у вас уже есть запущенные процессы Samba, которые не были завершены. Посмотрите список процессов (используя команду "ps ax | grep mbd") для того, чтобы определить, есть ли еще запущенные сервисы Samba. Если же демоны отказываются запускаться по каким-либо другим причинам, то вероятнее всего этот скрипт не подходит к вашему UNIX/Linux и вам придется еще раз покопаться в документации, что-то в нем поправить, а может быть, и переписать.

Основная настройка smb.conf

Очевидно, что в описанной выше конфигурации Samba может функционировать, но практически не может ничего делать. Ниже будут рассмотрены более полезные и сложные примеры. Но сначала надо разобраться в директивах smb.conf.

Каждый раздел файла начинается с заголовка раздела, такого как , , и т.п.

Теперь переходите в самую первую закладку «Конфигурация» (Configuration) и нажмите на кнопке «Доступ к файлам и принтерам» (File and print sharing). В появившемся окне необходимо поставить флажки в поле «Файлы этого компьютера можно сделать общими» (I want to be able to give others access to my files) и «Принтеры этого компьютера можно сделать общими» (I want to be able to allow others to print to my printer(s)).

И наконец, мы указываем Windows, что Samba является сервером WINS и именно он будет browse master"ом. Для этого переходим в свойства TCP/IP-протокола (рис. 4). В появившемся окне выбираем «Конфигурация WINS» (WINS Configuration). Ставим флажок в поле «Включить распознавание WINS» (Enable WINS Resolution). В появившемся поле «Основной сервер WINS» (WINS Server Search Order) прописываем IP-адрес сервера (Samba) - 192.168.0.1 и нажимаем «Добавить» (Add) или просто . Переходим на закладку «Дополнительно» (Advanced) и нажимаем на «Browse Master» в левом окне, а в правом устанавливаем значение «Disabled». Вот и все. Теперь остается только несколько раз нажать кнопку «ОК» и перезагрузить Windows.

В Windows NT экраны свойств сети немного различаются (показаны на рисунках), но главная концепция построения остается той же.

После перезагрузки Windows смело жмите на «Сетевое окружение» (Network Neighborhood) и вы сможете увидеть Samba-сервер, а также свою домашнюю директорию на Linux-сервере. Теперь вы можете просто подключить данные ресурсы как сетевые диски и присвоить им drive letters.

Немного усложним конфигурацию: сделаем директорию /home/public доступной для чтения всеми, но разрешим помещать в нее информацию только людям из группы ADMINS. Для этого изменим запись следующим образом:

Comment = Public Stuff path = /home/public public = yes writable = yes printable = no write list = @ADMINS

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

Доступ к дискам Windows из Linux

Вряд ли начинающие пользователи Linux OS смогут быстро разобраться с системой доступа к Linux-файлам из-под Windows, и наоборот. Но не все так сложно. Доступ к Linux-ресурсам из под Windows был кратко описан выше, а доступ к Windows-ресурсам из под Linux мы сейчас рассмотрим.

Программа клиента SMB для UNIX/Linux-машин включена в дистрибутив Samba. Она обеспечивает ftp-подобный интерфейс командной строки. Вы можете использовать эту утилиту для переноса файлов между «сервером» под управлением Windows и клиентом под Linux.

Для того чтобы увидеть, какие ресурсы доступны на данной машине, выполните команду:

/usr/sbin/smbclient -L host

где host - это имя машины, которую вы хотите видеть. Эта команда вернет список имен сервисов - то есть имен дисков или принтеров, к которым может быть получен доступ. До тех пор пока SMB-сервер не будет настроен без управления доступом, он будет запрашивать у вас пароль. Введите в ответ на запрос пароль для пользователя «гость (guest)» или ваш персональный пароль на этой машине.

Для использования клиента выполните следующую команду:

/usr/sbin/smbclient service

где service - имя машины и сервиса. Например, если вы пытаетесь обратиться к директории, которая доступна под именем public на машине, названной galka, то имя сервиса должно звучать как \\galka\public.

Вы получите приглашение smbclient:

Server time is Wen May 22 15:58:44 2001 Timezone is UTC+10.0 Domain= OS= Server= smb: \>

Команды для использования Samba аналогичны командам ftp, но если вы не умеете пользоваться ни тем ни другим, напечатайте h, чтобы получить помощь.

Вы, конечно, можете использовать smbclient для тестирования, однако очень скоро вам это надоест. Для работы вам вероятнее всего понадобится пакет smbfs. Smbfs поставляется с двумя простыми утилитами - smbmount и smbumount. Они работают подобно mount и umount для SMB-ресурсов. Например,

Smbmount//computer_name/catalog/Mountpoint -U user_name

В итоге вы получите «подмонтированный» ресурс с возможностью обращения к нему привычными методами проводника.

Принт-сервер под Linux

Для организации доступа к Linux-принтеру с Windows-машин вам необходимо убедиться, что принтер работает под Linux. Если вы можете печатать под Linux, то организация доступа к принтеру будет очень проста.

Добавьте настройку принтера в ваш файл smb.conf:

Printing = bsd printcap name = /etc/printcap load printers = yes log file = /var/log/samba-log.%m lock directory = /var/lock/samba comment = All Printers security = server path = /var/spool/lpd/lp browseable = no printable = yes public = yes writable = no create mode = 0700 security = server path = /var/spool/lpd/lp printer name = lp writable = yes public = yes printable = yes print command = lpr -r -h -P %p %s

Убедитесь, что путь к принтеру (в нашем случае для ) соответствует буферной директории, указанной в файле /etc/printcap, то есть проверьте наличие строк:

Printcap name = /etc/printcap load printers = yes

Эти строки контролируют, должны ли все принтеры, перечисленные в /etc/printcap, быть загружены по умолчанию. В этом случае нет нужды в настройке каждого принтера в отдельности. Раздел указывает настройки для принтеров, которые вы хотите определить явно. Если используемая вами подсистема печати не работает подобным образом (BSD), то вам необходимо настроить фальшивый файл printcap (либо использовать "print command", см. ниже). Для получения дополнительной информации о системе printcap см. Printing-HOWTO.

Доступ к принтеру Windows с машин, работающих под Linux

Для доступа к принтеру на Windows-машине необходимо соблюдение следующих условий:

  1. Вам необходимо иметь в файле /etc/printcap правильные записи, которые должны соответствовать локальной структуре директорий (для буферной директории и т.п.)
  2. У вас должен быть скрипт /usr/bin/smbprint. Он поставляется вместе с исходными текстами Samba, но не со всеми двоичными дистрибутивами Samba.
  3. Если вы хотите преобразовывать ASCII-файлы в PostScript, вы должны иметь программу nenscript или ее эквивалент. Программа nenscript - это конвертор PostScript, который обычно устанавливается в директорию /usr/bin.

Запись в приведенном ниже файле /etc/printcap сделана для принтера HP 5MP на сервере Windows NT. Используются следующие поля файла /etc/printcap:

Cm - комментарий; lp - имя устройства, открываемого для вывода; sd - директория спула принтера (на локальной машине); af - файл учета пользования принтером; mx - максимальный размер файла (ноль - без ограничений); if - имя входного фильтра (скрипта).

Фрагмент файла /etc/printcap:

# /etc/printcap # # //galka/oreilly via smbprint # lp:\ :cm=HP 5MP Postscript OReilly on galka:\ :lp=/dev/lp1:\ :sd=/var/spool/lpd/lp:\ :af=/var/spool/lpd/lp/acct:\ :mx#0:\ :if=/usr/bin/smbprint:

Убедитесь, что буферные директории и директория, применяемая для учета пользования, существуют и имеют право на запись. Убедитесь, что строка «if» содержит правильный путь к скрипту smbprint (дан ниже) и что записи указывают на правильное устройство вывода (специальный файл /dev).

#!/bin/sh –x # # Debugging log file, change to /dev/null if you like. # logfile=/tmp/smb-print.log # logfile=/dev/null # # The last parameter to the filter is the accounting file name. # spool_dir=/var/spool/lpd/lp config_file=$spool_dir/.config # Should read the following variables set in the config file: # server # service # password # user eval `cat $config_file` # # Some debugging help, change the >> to > if you want to same space. # echo "server $server, service $service" >> $logfile (# NOTE You may wish to add the line `echo translate" if you want automatic # CR/LF translation when printing. echo translate echo "print -" cat) | /usr/bin/smbclient "\\\\$server\\$service" $password -U $user -N -P >> $logfile

Большинство дистрибутивов Linux поставляется с программой nenscript для преобразования ASCII-документов в PostScript.

Заключение

Еще совсем недавно возможности Samba ограничивались лишь перечисленными выше. Однако можно с уверенностью говорить о том, что новая версия Samba 2.2 догоняет Windows 2000 по функциональным возможностям и содержит дополнительные усовершенствования. Один из ведущих разработчиков Samba Джереми Эллисон (Jeremy Allison) называет ее «важным обновлением», которое поможет системам Samba легче внедряться в сети Microsoft. ПО обеспечивает экономию не только потому, что не нужно платить за серверную ОС, но и потому, что не приходится оплачивать «клиентские» лицензии за все компьютеры, которые используют сервер.

О новых возможностях Samba 2.2. читайте в нашей статье «Samba 2.2 - что нового » .

КомпьютерПресс 10"2001

Реализация сетевых протоколов Server Message Block (SMB) и Common Internet File System (CIFS) . Основное предназначение - расшаривание файлов и принтеров между Linux и Windows системами.

Samba состоит из нескольких демонов, работающих в фоновом режиме и предоставляющих сервисы и ряд инструментов командной строки для взаимодействия со службами Windows:

  • smbd - демон, являющийся SMB-сервером файловых служб и служб печати;
  • nmbd - демон, предоставляющий службы имен NetBIOS;
  • smblient - утилита предоставляет доступ из командной строки к ресурсам SMB. Она также позволяет получить списки общих ресурсов на удаленных серверах и просматривать сетевое окружение;
  • smb.conf - конфигурационный файл, содержащий настройки для всех инструментов Samba;

Список портов, используемых Samba

  • share - этот режим безопасности эмулирует метод аутентификации, используемый операционными системами Windows 9x/Windows Me. В этом режиме имена пользователей игнорируются, а пароли назначаются общим ресурсам. В этом режиме Samba пытается использовать предоставленный клиентом пароль, которым могут пользоваться разные пользователи.
  • user * - этот режим безопасности установлен по умолчанию и использует для аутентификации имя пользователя и пароль, как это обычно делается в Linux. В большинстве случаев в современных операционных системах пароли хранятся в зашифрованной базе данных, которую использует только Samba.
  • server - этот режим безопасности используется тогда, когда необходимо, чтобы Samba выполняла аутентификацию, обращаясь к другому серверу. Для клиентов этот режим выглядит так же, как аутентификация на уровне пользователя (режим user), но фактически для выполнения аутентификации Samba обращается к серверу, указанному в параметре password server.
  • domain - используя этот режим безопасности, вы можете полностью присоединиться к домену Windows; для клиентов это выглядит так же, как аутентификация на уровне пользователя. В отличие от аутентификации на уровне сервера, доменная аутентификация использует более защищенный обмен паролями на уровне домена. Для полного присоединения к домену требуется выполнить дополнительные команды в системе Samba и, возможно, на контроллере домена.
  • ads - этот режим безопасности похож на метод аутентификации в домене, но требует наличия контроллера домена Active Directory Domain Services.

Полный список параметров Samba есть в manpages .

Выше был приведен пример с доступом для директории с общим доступом. Рассмотрим еще пример с приватной директорией, к которой доступ только по логину и паролю.

Создадим группу и добавим в нее пользователя

Sudo groupadd smbgrp sudo usermod -a -G smbgrp proft

Создадим директорию для пользователя и установим права

Sudo mkdir -p /srv/samba/proft sudo chown -R proft:smbgrp /srv/samba/proft sudo chmod -R 0770 /srv/samba/proft

Создадим samba-пользователя

Sudo smbpasswd -a proft

Добавим в /etc/samba/smb.conf новый ресурс

Path = /srv/samba/proft valid users = @smbgrp guest ok = no writable = yes browsable = yes

Перезапустим сервер

Sudo systemctl restart smbd

Пример настройки ресурса в котором есть симлинк на папку пользователя (/srv/samba/media/video » /home/proft/video )

Path = /srv/samba/media guest ok = yes read only = yes browsable = yes force user = proft

Настройка клиента

Просмотр общих ресурсов компьютера

Smbclient -L 192.168.24.101 -U%

Еще один способ подключения для анонимного пользователя с командной строкой

Smbclient -U nobody //192.168.24.101/public ls

Если на сервере настроен более высокий уровень безопасности, то может потребоваться передать имя пользователя или домена с помощью параметров -W и -U соответственно.

Smbclient -L 192.168.24.101 -U proft -W WORKGROUP

Монтирование samba-ресурса

# создание точки монтирования mkdir -p ~/shares/public # монтирование ресурса # для анонимного пользователя nobody mount -t cifs //192.168.24.101/public /home/proft/shares/public -o user=nobody,password=,workgroup=WORKGROUP,ip=192.168.24.101,utf8 # для пользователя proft mount -t cifs //192.168.24.101/public /home/proft/shares/public -o user=proft,password=1,workgroup=WORKGROUP,ip=192.168.24.101,utf8

Еще лучше пароли хранить в отдельном файле

# sudo vim /etc/samba/sambacreds username=proft password=1 username=noboy password=

Выставим права доступа 0600

Sudo chmod 0600 /etc/samba/sambacreds

Новая строка для монтирования

Mount -t cifs //192.168.24.101/public /home/proft/shares/public -o user=proft,credentials=/etc/samba/sambacreds,workgroup=WORKGROUP,ip=192.168.24.101

И пример для /etc/fstab

//192.168.24.101/public /home/proft/shares/public cifs noauto,username=proft,credentials=/etc/samba/sambacreds,workgroup=WORKGROUP,ip=192.168.24.101 0 0

Открыть ресурс в файловом менеджере Nautilus/Nemo/etc можно по такому пути smb://192.268.24.101 .

Если Nemo пишет Nemo cannot handle "smb" locations. значит не хватает пакета gvfs-smb .

Доступ к серверу с Windows и Android клиента

Под Windows узнать рабочую группу с консоли можно с помощью

Net config workstation

Открыть ресурсы на удаленной машине можно набрав в строке Explorer (Проводник) или в Run (Start - Run) UNC-адрес: \192.168.24.101 .

Под Android подключится к серверу можно с помощью ES File Explorer , на вкладке Network добавляем сервер, просто по IP (без указания схемы, smb). После чего можно открывать расшаренные ресурсы. Для статистики: HDRIP-фильм идет без подтормаживания.

Дополнительное чтиво

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

Мне, к примеру, недавно подобное понадобилось, чтобы открыть доступ к резервным копиям, которые хранились на сервере. Самому разбираться и искать информацию не хотелось, нужно было быстро дать человеку доступ на чтение, чтобы он сам нашел все, что ему нужно.

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

Итак, устанавливаем самбу любым подходящим способом для вашей операционной системы. Конфигурации справедливы для 3-й версии самбы. Дальше решаем, что нам нужно:

  • доступ по пользователю и паролю,
  • доступ по ip адресу,
  • доступ всем подряд без ограничений.

В зависимости от этого настройки будут немного разные.

Для доступа по паролю рисуем такой конфиг:

Security = user passdb backend = tdbsam workgroup = MYGROUP server string = Samba path = /mnt/shara valid users = @users force group = users create mask = 0660 directory mask = 0771 writable = yes browseable = yes

# useradd share-user -M -G users -s /sbin/nologin

Импортируем этого пользователя в самбу и задаем пароль:

# smbpasswd -a share-user

И пробуем зайти на шару по адресу:

\\ip-сервера\share

Чтоб организовать доступ в зависимости от ip адреса , делаем такие настройки в smb.conf:

Security = share workgroup = MYGROUP server string = Samba map to guest = bad user path = /mnt/files browsable = yes writable = yes guest ok = yes read only = no hosts allow = 192.168.0.171

В данном случае полный доступ будет у адреса 192.168.0.171. Чтобы добавить всю подсеть, то указать нужно следующее:

Hosts allow = 192.168.0.

Комбинировать можно разные подсети и адреса, разделяя их пробелами. Для того, чтобы отключить доступ каким-то отдельным адресам из разрешенной подсети, можно сделать вот так:

Hosts allow = 192.168.0. except 192.168.0.15

Доступ будет разрешен всей подсети 192.168.0.0/24, кроме адреса 192.168.0.15.

Делаем перезапуск самбы и проверяем.

Если у вас установлена samba 4, то эта конфигурация не заработает и вы получите ошибку:

WARNING: Ignoring invalid value "share" for parameter "security"

Чтобы доступ по ip нормально заработал, вам необходимо внести следующие изменения в приведенный выше конфиг:

Security = user map to guest = Bad Password

Остальные параметры оставляете те же. После этого доступ по ip будет работать и на 4-й версии самбы.

Если доступ будет предоставлен всем без ограничений , то простейшая конфигурация самбы будет такой:

Security = user workgroup = MYGROUP server string = Samba guest account = nobody map to guest = Bad User path = /mnt/files browseable = Yes guest ok = Yes writeable = Yes public = yes

Не забываем сделать права для всех на папку:

# chmod 0777 /mnt/files

Перезапускаем самбу и пробуем зайти. Должно пустить без лишних вопросов.

Вот так буквально за 5 минут можно организовать простейший файловый сервер с помощью samba. А часто сложнее и не надо. Для какой-нибудь файловой помойки подойдет самый последний вариант.

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

Онлайн курс "Сетевой инженер"

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные сети, рекомендую познакомиться с онлайн-курсом «Сетевой инженер» в OTUS. Это авторская программа в сочетании с удалённой практикой на реальном оборудовании и академическим сертификатом Cisco! Студенты получают практические навыки работы на оборудовании при помощи удалённой онлайн-лаборатории, работающей на базе партнёра по обучению - РТУ МИРЭА: маршрутизаторы Cisco 1921, Cisco 2801, Cisco 2811; коммутаторы Cisco 2950, Cisco 2960. Особенности курса:
  • Курс содержит две проектные работы.;
  • Студенты зачисляются в официальную академию Cisco (OTUS, Cisco Academy, ID 400051208) и получают доступ ко всем частям курса «CCNA Routing and Switching»;
  • Студенты могут сдать экзамен и получить вместе с сертификатом OTUS ещё сертификат курса «CCNA Routing and Switching: Scaling Networks»;
Проверьте себя на вступительном тесте и смотрите программу детальнее по.